diff --git a/src/main/java/dk/camelot64/kickc/model/values/ConstantInteger.java b/src/main/java/dk/camelot64/kickc/model/values/ConstantInteger.java index 078ded4d4..c56e01657 100644 --- a/src/main/java/dk/camelot64/kickc/model/values/ConstantInteger.java +++ b/src/main/java/dk/camelot64/kickc/model/values/ConstantInteger.java @@ -1,5 +1,6 @@ package dk.camelot64.kickc.model.values; +import dk.camelot64.kickc.fragment.AsmFormat; import dk.camelot64.kickc.model.*; import dk.camelot64.kickc.model.symbols.ProgramScope; import dk.camelot64.kickc.model.types.SymbolType; @@ -49,9 +50,9 @@ public class ConstantInteger implements ConstantEnumerable { @Override public String toString(Program program) { if(program == null) { - return Long.toString(number); + return AsmFormat.getAsmNumber(number); } else { - return "(" + getType(program.getScope()).getTypeName() + ") " + Long.toString(number); + return "(" + getType(program.getScope()).getTypeName() + ") " + AsmFormat.getAsmNumber(number); } } diff --git a/src/test/ref/array-length-symbolic-min.log b/src/test/ref/array-length-symbolic-min.log index e322ea5ea..342a3b8ac 100644 --- a/src/test/ref/array-length-symbolic-min.log +++ b/src/test/ref/array-length-symbolic-min.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte) SZ#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) SZ#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f (byte[SZ#0]) items#0 ← { fill( SZ#0, 0) } to:@1 main: scope:[main] from @1 @@ -66,7 +66,7 @@ Redundant Phi (byte) SZ#1 (byte) SZ#2 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) main::$0 [9] if((byte) main::sub#1!=rangelast(0,SZ#0)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte) SZ#0 = 15 +Constant (const byte) SZ#0 = $f Constant (const byte) main::sub#0 = 0 Successful SSA optimization Pass2ConstantIdentification Constant (const byte[SZ#0]) items#0 = { fill( SZ#0, 0) } @@ -289,7 +289,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte) SZ -(const byte) SZ#0 SZ = (byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte) SZ#0 SZ = (byte/signed byte/word/signed word/dword/signed dword) $f (byte[SZ#0]) items (const byte[SZ#0]) items#0 items = { fill( SZ#0, 0) } (void()) main() diff --git a/src/test/ref/array-length-symbolic-min.sym b/src/test/ref/array-length-symbolic-min.sym index a2ef79d91..495c95eff 100644 --- a/src/test/ref/array-length-symbolic-min.sym +++ b/src/test/ref/array-length-symbolic-min.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte) SZ -(const byte) SZ#0 SZ = (byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte) SZ#0 SZ = (byte/signed byte/word/signed word/dword/signed dword) $f (byte[SZ#0]) items (const byte[SZ#0]) items#0 items = { fill( SZ#0, 0) } (void()) main() diff --git a/src/test/ref/arrays-init.log b/src/test/ref/arrays-init.log index d930342ca..e06e052f8 100644 --- a/src/test/ref/arrays-init.log +++ b/src/test/ref/arrays-init.log @@ -4,7 +4,7 @@ CONTROL FLOW GRAPH SSA (byte[3]) b#0 ← { fill( 3, 0) } (byte[]) c#0 ← { (byte) 'c', (byte) 'm', (byte) 'l' } (byte[]) d#0 ← (const string) $0 - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@1 main: scope:[main] from @1 (byte*) SCREEN#1 ← phi( @1/(byte*) SCREEN#2 ) @@ -56,7 +56,7 @@ Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte[3]) b#0 = { fill( 3, 0) } Constant (const byte[]) c#0 = { 'c', 'm', 'l' } Constant (const byte[]) d#0 = $0 -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$0 = SCREEN#0+1 Constant (const byte*) main::$1 = SCREEN#0+2 @@ -245,7 +245,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte[3]) b (const byte[3]) b#0 b = { fill( 3, 0) } (byte[]) c diff --git a/src/test/ref/arrays-init.sym b/src/test/ref/arrays-init.sym index b1294d6ef..1d84ae9b1 100644 --- a/src/test/ref/arrays-init.sym +++ b/src/test/ref/arrays-init.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte[3]) b (const byte[3]) b#0 b = { fill( 3, 0) } (byte[]) c diff --git a/src/test/ref/asm-clobber.cfg b/src/test/ref/asm-clobber.cfg index dd168d721..9b2c00318 100644 --- a/src/test/ref/asm-clobber.cfg +++ b/src/test/ref/asm-clobber.cfg @@ -17,11 +17,11 @@ main::@2: scope:[main] from main::@1 main::@2 [6] (byte) main::j#2 ← phi( main::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@2/(byte) main::j#1 ) [7] *((const byte*) SCREEN#0 + (byte) main::i#4) ← (byte) main::j#2 [8] (byte) main::j#1 ← ++ (byte) main::j#2 - [9] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@2 + [9] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@2 to:main::@5 main::@5: scope:[main] from main::@2 [10] (byte) main::i#1 ← ++ (byte) main::i#4 - [11] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 + [11] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 to:main::@3 main::@3: scope:[main] from main::@5 main::@7 [12] (byte) main::k#4 ← phi( main::@5/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@7/(byte) main::k#1 ) @@ -31,11 +31,11 @@ main::@4: scope:[main] from main::@3 main::@4 asm { eor#$55 tax } [15] *((const byte*) SCREEN#0 + (byte) main::k#4) ← (byte) main::l#2 [16] (byte) main::l#1 ← ++ (byte) main::l#2 - [17] if((byte) main::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@4 + [17] if((byte) main::l#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@4 to:main::@7 main::@7: scope:[main] from main::@4 [18] (byte) main::k#1 ← ++ (byte) main::k#4 - [19] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@3 + [19] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@3 to:main::@return main::@return: scope:[main] from main::@7 [20] return diff --git a/src/test/ref/asm-clobber.log b/src/test/ref/asm-clobber.log index 695ec4849..f1fde80cd 100644 --- a/src/test/ref/asm-clobber.log +++ b/src/test/ref/asm-clobber.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@1 main: scope:[main] from @1 (byte*) SCREEN#5 ← phi( @1/(byte*) SCREEN#9 ) @@ -17,15 +17,15 @@ main::@2: scope:[main] from main::@1 main::@2 (byte*) SCREEN#1 ← phi( main::@1/(byte*) SCREEN#3 main::@2/(byte*) SCREEN#1 ) (byte) main::j#2 ← phi( main::@1/(byte) main::j#0 main::@2/(byte) main::j#1 ) *((byte*) SCREEN#1 + (byte) main::i#2) ← (byte) main::j#2 - (byte) main::j#1 ← (byte) main::j#2 + rangenext(0,100) - (bool~) main::$0 ← (byte) main::j#1 != rangelast(0,100) + (byte) main::j#1 ← (byte) main::j#2 + rangenext(0,$64) + (bool~) main::$0 ← (byte) main::j#1 != rangelast(0,$64) if((bool~) main::$0) goto main::@2 to:main::@5 main::@5: scope:[main] from main::@2 (byte*) SCREEN#6 ← phi( main::@2/(byte*) SCREEN#1 ) (byte) main::i#3 ← phi( main::@2/(byte) main::i#2 ) - (byte) main::i#1 ← (byte) main::i#3 + rangenext(0,100) - (bool~) main::$1 ← (byte) main::i#1 != rangelast(0,100) + (byte) main::i#1 ← (byte) main::i#3 + rangenext(0,$64) + (bool~) main::$1 ← (byte) main::i#1 != rangelast(0,$64) if((bool~) main::$1) goto main::@1 to:main::@6 main::@6: scope:[main] from main::@5 @@ -43,15 +43,15 @@ main::@4: scope:[main] from main::@3 main::@4 (byte) main::l#2 ← phi( main::@3/(byte) main::l#0 main::@4/(byte) main::l#1 ) asm { eor#$55 tax } *((byte*) SCREEN#2 + (byte) main::k#2) ← (byte) main::l#2 - (byte) main::l#1 ← (byte) main::l#2 + rangenext(0,100) - (bool~) main::$2 ← (byte) main::l#1 != rangelast(0,100) + (byte) main::l#1 ← (byte) main::l#2 + rangenext(0,$64) + (bool~) main::$2 ← (byte) main::l#1 != rangelast(0,$64) if((bool~) main::$2) goto main::@4 to:main::@7 main::@7: scope:[main] from main::@4 (byte*) SCREEN#8 ← phi( main::@4/(byte*) SCREEN#2 ) (byte) main::k#3 ← phi( main::@4/(byte) main::k#2 ) - (byte) main::k#1 ← (byte) main::k#3 + rangenext(0,100) - (bool~) main::$3 ← (byte) main::k#1 != rangelast(0,100) + (byte) main::k#1 ← (byte) main::k#3 + rangenext(0,$64) + (bool~) main::$3 ← (byte) main::k#1 != rangelast(0,$64) if((bool~) main::$3) goto main::@3 to:main::@return main::@return: scope:[main] from main::@7 @@ -134,25 +134,25 @@ Redundant Phi (byte) main::i#2 (byte) main::i#4 Redundant Phi (byte*) SCREEN#2 (byte*) SCREEN#4 Redundant Phi (byte) main::k#2 (byte) main::k#4 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$0 [9] if((byte) main::j#1!=rangelast(0,100)) goto main::@2 -Simple Condition (bool~) main::$1 [13] if((byte) main::i#1!=rangelast(0,100)) goto main::@1 -Simple Condition (bool~) main::$2 [23] if((byte) main::l#1!=rangelast(0,100)) goto main::@4 -Simple Condition (bool~) main::$3 [27] if((byte) main::k#1!=rangelast(0,100)) goto main::@3 +Simple Condition (bool~) main::$0 [9] if((byte) main::j#1!=rangelast(0,$64)) goto main::@2 +Simple Condition (bool~) main::$1 [13] if((byte) main::i#1!=rangelast(0,$64)) goto main::@1 +Simple Condition (bool~) main::$2 [23] if((byte) main::l#1!=rangelast(0,$64)) goto main::@4 +Simple Condition (bool~) main::$3 [27] if((byte) main::k#1!=rangelast(0,$64)) goto main::@3 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Constant (const byte) main::i#0 = 0 Constant (const byte) main::j#0 = 0 Constant (const byte) main::k#0 = 0 Constant (const byte) main::l#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::j#1 ← ++ main::j#2 to ++ -Resolved ranged comparison value if(main::j#1!=rangelast(0,100)) goto main::@2 to (byte/signed byte/word/signed word/dword/signed dword) 101 +Resolved ranged comparison value if(main::j#1!=rangelast(0,$64)) goto main::@2 to (byte/signed byte/word/signed word/dword/signed dword) $65 Resolved ranged next value main::i#1 ← ++ main::i#4 to ++ -Resolved ranged comparison value if(main::i#1!=rangelast(0,100)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 101 +Resolved ranged comparison value if(main::i#1!=rangelast(0,$64)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $65 Resolved ranged next value main::l#1 ← ++ main::l#2 to ++ -Resolved ranged comparison value if(main::l#1!=rangelast(0,100)) goto main::@4 to (byte/signed byte/word/signed word/dword/signed dword) 101 +Resolved ranged comparison value if(main::l#1!=rangelast(0,$64)) goto main::@4 to (byte/signed byte/word/signed word/dword/signed dword) $65 Resolved ranged next value main::k#1 ← ++ main::k#4 to ++ -Resolved ranged comparison value if(main::k#1!=rangelast(0,100)) goto main::@3 to (byte/signed byte/word/signed word/dword/signed dword) 101 +Resolved ranged comparison value if(main::k#1!=rangelast(0,$64)) goto main::@3 to (byte/signed byte/word/signed word/dword/signed dword) $65 Culled Empty Block (label) main::@6 Successful SSA optimization Pass2CullEmptyBlocks Self Phi Eliminated (byte*) SCREEN#3 @@ -216,11 +216,11 @@ main::@2: scope:[main] from main::@1 main::@2 [6] (byte) main::j#2 ← phi( main::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@2/(byte) main::j#1 ) [7] *((const byte*) SCREEN#0 + (byte) main::i#4) ← (byte) main::j#2 [8] (byte) main::j#1 ← ++ (byte) main::j#2 - [9] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@2 + [9] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@2 to:main::@5 main::@5: scope:[main] from main::@2 [10] (byte) main::i#1 ← ++ (byte) main::i#4 - [11] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 + [11] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 to:main::@3 main::@3: scope:[main] from main::@5 main::@7 [12] (byte) main::k#4 ← phi( main::@5/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@7/(byte) main::k#1 ) @@ -230,11 +230,11 @@ main::@4: scope:[main] from main::@3 main::@4 asm { eor#$55 tax } [15] *((const byte*) SCREEN#0 + (byte) main::k#4) ← (byte) main::l#2 [16] (byte) main::l#1 ← ++ (byte) main::l#2 - [17] if((byte) main::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@4 + [17] if((byte) main::l#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@4 to:main::@7 main::@7: scope:[main] from main::@4 [18] (byte) main::k#1 ← ++ (byte) main::k#4 - [19] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@3 + [19] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@3 to:main::@return main::@return: scope:[main] from main::@7 [20] return @@ -334,7 +334,7 @@ main: { sta SCREEN,y //SEG22 [8] (byte) main::j#1 ← ++ (byte) main::j#2 -- vbuz1=_inc_vbuz1 inc j - //SEG23 [9] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG23 [9] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@2 -- vbuz1_neq_vbuc1_then_la1 lda j cmp #$65 bne b2_from_b2 @@ -343,7 +343,7 @@ main: { b5: //SEG25 [10] (byte) main::i#1 ← ++ (byte) main::i#4 -- vbuz1=_inc_vbuz1 inc i - //SEG26 [11] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG26 [11] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$65 bne b1_from_b5 @@ -381,7 +381,7 @@ main: { sta SCREEN,y //SEG39 [16] (byte) main::l#1 ← ++ (byte) main::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG40 [17] if((byte) main::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG40 [17] if((byte) main::l#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@4 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #$65 bne b4_from_b4 @@ -390,7 +390,7 @@ main: { b7: //SEG42 [18] (byte) main::k#1 ← ++ (byte) main::k#4 -- vbuz1=_inc_vbuz1 inc k - //SEG43 [19] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG43 [19] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@3 -- vbuz1_neq_vbuc1_then_la1 lda k cmp #$65 bne b3_from_b7 @@ -481,7 +481,7 @@ main: { //SEG22 [8] (byte) main::j#1 ← ++ (byte) main::j#2 -- vbuaa=_inc_vbuaa clc adc #1 - //SEG23 [9] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@2 -- vbuaa_neq_vbuc1_then_la1 + //SEG23 [9] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@2 -- vbuaa_neq_vbuc1_then_la1 cmp #$65 bne b2_from_b2 jmp b5 @@ -489,7 +489,7 @@ main: { b5: //SEG25 [10] (byte) main::i#1 ← ++ (byte) main::i#4 -- vbuxx=_inc_vbuxx inx - //SEG26 [11] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG26 [11] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$65 bne b1_from_b5 //SEG27 [12] phi from main::@5 to main::@3 [phi:main::@5->main::@3] @@ -524,7 +524,7 @@ main: { sta SCREEN,y //SEG39 [16] (byte) main::l#1 ← ++ (byte) main::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG40 [17] if((byte) main::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG40 [17] if((byte) main::l#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@4 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #$65 bne b4_from_b4 @@ -533,7 +533,7 @@ main: { b7: //SEG42 [18] (byte) main::k#1 ← ++ (byte) main::k#4 -- vbuyy=_inc_vbuyy iny - //SEG43 [19] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@3 -- vbuyy_neq_vbuc1_then_la1 + //SEG43 [19] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@3 -- vbuyy_neq_vbuc1_then_la1 cpy #$65 bne b3_from_b7 jmp breturn @@ -592,7 +592,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@1 (label) main::@2 @@ -661,13 +661,13 @@ main: { //SEG22 [8] (byte) main::j#1 ← ++ (byte) main::j#2 -- vbuaa=_inc_vbuaa clc adc #1 - //SEG23 [9] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@2 -- vbuaa_neq_vbuc1_then_la1 + //SEG23 [9] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@2 -- vbuaa_neq_vbuc1_then_la1 cmp #$65 bne b2 //SEG24 main::@5 //SEG25 [10] (byte) main::i#1 ← ++ (byte) main::i#4 -- vbuxx=_inc_vbuxx inx - //SEG26 [11] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG26 [11] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$65 bne b1 //SEG27 [12] phi from main::@5 to main::@3 [phi:main::@5->main::@3] @@ -694,14 +694,14 @@ main: { sta SCREEN,y //SEG39 [16] (byte) main::l#1 ← ++ (byte) main::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG40 [17] if((byte) main::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG40 [17] if((byte) main::l#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@4 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #$65 bne b4 //SEG41 main::@7 //SEG42 [18] (byte) main::k#1 ← ++ (byte) main::k#4 -- vbuyy=_inc_vbuyy iny - //SEG43 [19] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@3 -- vbuyy_neq_vbuc1_then_la1 + //SEG43 [19] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@3 -- vbuyy_neq_vbuc1_then_la1 cpy #$65 bne b3 //SEG44 main::@return diff --git a/src/test/ref/asm-clobber.sym b/src/test/ref/asm-clobber.sym index 8fbd73008..b7b1d7e8d 100644 --- a/src/test/ref/asm-clobber.sym +++ b/src/test/ref/asm-clobber.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@1 (label) main::@2 diff --git a/src/test/ref/assignment-chained.cfg b/src/test/ref/assignment-chained.cfg index 7af8d1948..b3ccf8b93 100644 --- a/src/test/ref/assignment-chained.cfg +++ b/src/test/ref/assignment-chained.cfg @@ -9,12 +9,12 @@ [3] phi() main: scope:[main] from @1 [4] *((const byte*) main::screen#0) ← (byte) 'c' - [5] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte) 'c' + [5] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte) 'c' [6] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) 'm' [7] (byte) main::a#2 ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 1) - [8] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 41) ← (byte) main::a#2 + [8] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $29) ← (byte) main::a#2 [9] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 1+(byte) 'l' - [10] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 42) ← (byte) 'l' + [10] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $2a) ← (byte) 'l' to:main::@return main::@return: scope:[main] from main [11] return diff --git a/src/test/ref/assignment-chained.log b/src/test/ref/assignment-chained.log index 6bd9b292a..b4c8f2b63 100644 --- a/src/test/ref/assignment-chained.log +++ b/src/test/ref/assignment-chained.log @@ -3,18 +3,18 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) main::a#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) main::a#1 ← (byte) 'c' *((byte*) main::screen#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) main::a#1 - *((byte*) main::screen#0 + (byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte) main::a#1 + *((byte*) main::screen#0 + (byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte) main::a#1 *((byte*) main::screen#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) 'm' (byte) main::a#2 ← *((byte*) main::screen#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) - *((byte*) main::screen#0 + (byte/signed byte/word/signed word/dword/signed dword) 41) ← (byte) main::a#2 + *((byte*) main::screen#0 + (byte/signed byte/word/signed word/dword/signed dword) $29) ← (byte) main::a#2 (byte) main::a#3 ← (byte) 'l' (byte/signed word/word/dword/signed dword~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) main::a#3 *((byte*) main::screen#0 + (byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed word/word/dword/signed dword~) main::$0 - *((byte*) main::screen#0 + (byte/signed byte/word/signed word/dword/signed dword) 42) ← (byte) main::a#3 + *((byte*) main::screen#0 + (byte/signed byte/word/signed word/dword/signed dword) $2a) ← (byte) main::a#3 to:main::@return main::@return: scope:[main] from main return @@ -44,7 +44,7 @@ SYMBOL TABLE SSA Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks -Constant (const byte*) main::screen#0 = ((byte*))1024 +Constant (const byte*) main::screen#0 = ((byte*))$400 Constant (const byte) main::a#0 = 0 Constant (const byte) main::a#1 = 'c' Constant (const byte) main::a#3 = 'l' @@ -52,12 +52,12 @@ Successful SSA optimization Pass2ConstantIdentification Constant (const byte/signed word/word/dword/signed dword) main::$0 = 1+main::a#3 Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(main::screen#0+0) -Consolidated array index constant in *(main::screen#0+40) +Consolidated array index constant in *(main::screen#0+$28) Consolidated array index constant in *(main::screen#0+1) Consolidated array index constant in *(main::screen#0+1) -Consolidated array index constant in *(main::screen#0+41) +Consolidated array index constant in *(main::screen#0+$29) Consolidated array index constant in *(main::screen#0+2) -Consolidated array index constant in *(main::screen#0+42) +Consolidated array index constant in *(main::screen#0+$2a) Successful SSA optimization Pass2ConstantAdditionElimination Successful SSA optimization PassNEliminateUnusedVars Inlining constant with var siblings (const byte) main::a#1 @@ -91,12 +91,12 @@ FINAL CONTROL FLOW GRAPH [3] phi() main: scope:[main] from @1 [4] *((const byte*) main::screen#0) ← (byte) 'c' - [5] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte) 'c' + [5] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte) 'c' [6] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) 'm' [7] (byte) main::a#2 ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 1) - [8] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 41) ← (byte) main::a#2 + [8] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $29) ← (byte) main::a#2 [9] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 1+(byte) 'l' - [10] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 42) ← (byte) 'l' + [10] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $2a) ← (byte) 'l' to:main::@return main::@return: scope:[main] from main [11] return @@ -144,7 +144,7 @@ main: { //SEG10 [4] *((const byte*) main::screen#0) ← (byte) 'c' -- _deref_pbuc1=vbuc2 lda #'c' sta screen - //SEG11 [5] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte) 'c' -- _deref_pbuc1=vbuc2 + //SEG11 [5] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte) 'c' -- _deref_pbuc1=vbuc2 lda #'c' sta screen+$28 //SEG12 [6] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) 'm' -- _deref_pbuc1=vbuc2 @@ -153,13 +153,13 @@ main: { //SEG13 [7] (byte) main::a#2 ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 1) -- vbuz1=_deref_pbuc1 lda screen+1 sta a - //SEG14 [8] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 41) ← (byte) main::a#2 -- _deref_pbuc1=vbuz1 + //SEG14 [8] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $29) ← (byte) main::a#2 -- _deref_pbuc1=vbuz1 lda a sta screen+$29 //SEG15 [9] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 1+(byte) 'l' -- _deref_pbuc1=vbuc2 lda #1+'l' sta screen+2 - //SEG16 [10] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 42) ← (byte) 'l' -- _deref_pbuc1=vbuc2 + //SEG16 [10] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $2a) ← (byte) 'l' -- _deref_pbuc1=vbuc2 // Chained assignment with a modification of the result lda #'l' sta screen+$2a @@ -172,10 +172,10 @@ main: { REGISTER UPLIFT POTENTIAL REGISTERS Statement [4] *((const byte*) main::screen#0) ← (byte) 'c' [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [5] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte) 'c' [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [5] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte) 'c' [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [6] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) 'm' [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [9] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 1+(byte) 'l' [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [10] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 42) ← (byte) 'l' [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [10] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $2a) ← (byte) 'l' [ ] ( main:2 [ ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ main::a#2 ] : zp ZP_BYTE:2 , reg byte a , reg byte x , reg byte y , REGISTER UPLIFT SCOPES @@ -213,7 +213,7 @@ main: { //SEG10 [4] *((const byte*) main::screen#0) ← (byte) 'c' -- _deref_pbuc1=vbuc2 lda #'c' sta screen - //SEG11 [5] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte) 'c' -- _deref_pbuc1=vbuc2 + //SEG11 [5] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte) 'c' -- _deref_pbuc1=vbuc2 lda #'c' sta screen+$28 //SEG12 [6] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) 'm' -- _deref_pbuc1=vbuc2 @@ -221,12 +221,12 @@ main: { sta screen+1 //SEG13 [7] (byte) main::a#2 ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 1) -- vbuaa=_deref_pbuc1 lda screen+1 - //SEG14 [8] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 41) ← (byte) main::a#2 -- _deref_pbuc1=vbuaa + //SEG14 [8] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $29) ← (byte) main::a#2 -- _deref_pbuc1=vbuaa sta screen+$29 //SEG15 [9] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 1+(byte) 'l' -- _deref_pbuc1=vbuc2 lda #1+'l' sta screen+2 - //SEG16 [10] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 42) ← (byte) 'l' -- _deref_pbuc1=vbuc2 + //SEG16 [10] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $2a) ← (byte) 'l' -- _deref_pbuc1=vbuc2 // Chained assignment with a modification of the result lda #'l' sta screen+$2a @@ -267,7 +267,7 @@ FINAL SYMBOL TABLE (byte) main::a (byte) main::a#2 reg byte a 4.0 (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 reg byte a [ main::a#2 ] @@ -294,18 +294,18 @@ main: { //SEG10 [4] *((const byte*) main::screen#0) ← (byte) 'c' -- _deref_pbuc1=vbuc2 lda #'c' sta screen - //SEG11 [5] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte) 'c' -- _deref_pbuc1=vbuc2 + //SEG11 [5] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte) 'c' -- _deref_pbuc1=vbuc2 sta screen+$28 //SEG12 [6] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) 'm' -- _deref_pbuc1=vbuc2 lda #'m' sta screen+1 //SEG13 [7] (byte) main::a#2 ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 1) -- vbuaa=_deref_pbuc1 - //SEG14 [8] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 41) ← (byte) main::a#2 -- _deref_pbuc1=vbuaa + //SEG14 [8] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $29) ← (byte) main::a#2 -- _deref_pbuc1=vbuaa sta screen+$29 //SEG15 [9] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 1+(byte) 'l' -- _deref_pbuc1=vbuc2 lda #1+'l' sta screen+2 - //SEG16 [10] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 42) ← (byte) 'l' -- _deref_pbuc1=vbuc2 + //SEG16 [10] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $2a) ← (byte) 'l' -- _deref_pbuc1=vbuc2 // Chained assignment with a modification of the result lda #'l' sta screen+$2a diff --git a/src/test/ref/assignment-chained.sym b/src/test/ref/assignment-chained.sym index dc0fc5c42..b4dd2a233 100644 --- a/src/test/ref/assignment-chained.sym +++ b/src/test/ref/assignment-chained.sym @@ -6,6 +6,6 @@ (byte) main::a (byte) main::a#2 reg byte a 4.0 (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 reg byte a [ main::a#2 ] diff --git a/src/test/ref/assignment-compound.cfg b/src/test/ref/assignment-compound.cfg index 1deebf795..3d1355214 100644 --- a/src/test/ref/assignment-compound.cfg +++ b/src/test/ref/assignment-compound.cfg @@ -55,7 +55,7 @@ main::@return: scope:[main] from main::@10 [26] return to:@return test: scope:[test] from main main::@1 main::@10 main::@2 main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 - [27] (byte) test::i#11 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 1 main::@10/(byte/signed byte/word/signed word/dword/signed dword) 10 main::@2/(byte/signed byte/word/signed word/dword/signed dword) 2 main::@3/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@4/(byte/signed byte/word/signed word/dword/signed dword) 4 main::@5/(byte/signed byte/word/signed word/dword/signed dword) 5 main::@6/(byte/signed byte/word/signed word/dword/signed dword) 6 main::@7/(byte/signed byte/word/signed word/dword/signed dword) 7 main::@8/(byte/signed byte/word/signed word/dword/signed dword) 8 main::@9/(byte/signed byte/word/signed word/dword/signed dword) 9 ) + [27] (byte) test::i#11 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 1 main::@10/(byte/signed byte/word/signed word/dword/signed dword) $a main::@2/(byte/signed byte/word/signed word/dword/signed dword) 2 main::@3/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@4/(byte/signed byte/word/signed word/dword/signed dword) 4 main::@5/(byte/signed byte/word/signed word/dword/signed dword) 5 main::@6/(byte/signed byte/word/signed word/dword/signed dword) 6 main::@7/(byte/signed byte/word/signed word/dword/signed dword) 7 main::@8/(byte/signed byte/word/signed word/dword/signed dword) 8 main::@9/(byte/signed byte/word/signed word/dword/signed dword) 9 ) [27] (byte) test::a#11 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1 main::@10/(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1-(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 6/(byte/signed byte/word/signed word/dword/signed dword) 2%(byte/signed byte/word/signed word/dword/signed dword) 2<<(byte/signed byte/word/signed word/dword/signed dword) 2>>(byte/signed byte/word/signed word/dword/signed dword) 1^(byte/signed byte/word/signed word/dword/signed dword) 6|(byte/signed byte/word/signed word/dword/signed dword) 1&(byte/signed byte/word/signed word/dword/signed dword) 1 main::@2/(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1-(byte/signed byte/word/signed word/dword/signed dword) 1 main::@3/(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1-(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 6 main::@4/(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1-(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 6/(byte/signed byte/word/signed word/dword/signed dword) 2 main::@5/(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1-(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 6/(byte/signed byte/word/signed word/dword/signed dword) 2%(byte/signed byte/word/signed word/dword/signed dword) 2 main::@6/(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1-(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 6/(byte/signed byte/word/signed word/dword/signed dword) 2%(byte/signed byte/word/signed word/dword/signed dword) 2<<(byte/signed byte/word/signed word/dword/signed dword) 2 main::@7/(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1-(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 6/(byte/signed byte/word/signed word/dword/signed dword) 2%(byte/signed byte/word/signed word/dword/signed dword) 2<<(byte/signed byte/word/signed word/dword/signed dword) 2>>(byte/signed byte/word/signed word/dword/signed dword) 1 main::@8/(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1-(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 6/(byte/signed byte/word/signed word/dword/signed dword) 2%(byte/signed byte/word/signed word/dword/signed dword) 2<<(byte/signed byte/word/signed word/dword/signed dword) 2>>(byte/signed byte/word/signed word/dword/signed dword) 1^(byte/signed byte/word/signed word/dword/signed dword) 6 main::@9/(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1-(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 6/(byte/signed byte/word/signed word/dword/signed dword) 2%(byte/signed byte/word/signed word/dword/signed dword) 2<<(byte/signed byte/word/signed word/dword/signed dword) 2>>(byte/signed byte/word/signed word/dword/signed dword) 1^(byte/signed byte/word/signed word/dword/signed dword) 6|(byte/signed byte/word/signed word/dword/signed dword) 1 ) [28] *((const byte*) screen1#0 + (byte) test::i#11) ← (byte) test::a#11 [29] *((const byte*) screen2#0 + (byte) test::i#11) ← *((const byte[]) ref#0 + (byte) test::i#11) diff --git a/src/test/ref/assignment-compound.log b/src/test/ref/assignment-compound.log index 7e3bd5092..0b01a33a0 100644 --- a/src/test/ref/assignment-compound.log +++ b/src/test/ref/assignment-compound.log @@ -1,11 +1,11 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte[]) ref#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 18, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 4, (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) 5, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0 } - (byte*) screen1#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte*~) $0 ← (byte*) screen1#0 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte[]) ref#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) $12, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 4, (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) 5, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0 } + (byte*) screen1#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte*~) $0 ← (byte*) screen1#0 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) screen2#0 ← (byte*~) $0 - (byte*) cols#0 ← ((byte*)) (word/dword/signed dword) 55296 + (byte*) cols#0 ← ((byte*)) (word/dword/signed dword) $d800 (byte) GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 5 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:@2 @@ -439,15 +439,15 @@ Redundant Phi (byte) RED#1 (byte) RED#10 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) test::$0 [80] if(*((byte[]) ref#0 + (byte) test::i#11)==(byte) test::a#11) goto test::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte[]) ref#0 = { 3, 4, 3, 18, 9, 1, 4, 2, 4, 5, 1, 0 } -Constant (const byte*) screen1#0 = ((byte*))1024 -Constant (const byte*) cols#0 = ((byte*))55296 +Constant (const byte[]) ref#0 = { 3, 4, 3, $12, 9, 1, 4, 2, 4, 5, 1, 0 } +Constant (const byte*) screen1#0 = ((byte*))$400 +Constant (const byte*) cols#0 = ((byte*))$d800 Constant (const byte) GREEN#0 = 5 Constant (const byte) RED#0 = 2 Constant (const byte) main::i#0 = 0 Constant (const byte) main::a#0 = 3 Successful SSA optimization Pass2ConstantIdentification -Constant (const byte*) screen2#0 = screen1#0+40 +Constant (const byte*) screen2#0 = screen1#0+$28 Constant (const byte) test::i#0 = main::i#0 Constant (const byte) test::a#0 = main::a#0 Constant (const byte) main::i#1 = ++main::i#0 @@ -709,7 +709,7 @@ main::@return: scope:[main] from main::@10 [26] return to:@return test: scope:[test] from main main::@1 main::@10 main::@2 main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 - [27] (byte) test::i#11 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 1 main::@10/(byte/signed byte/word/signed word/dword/signed dword) 10 main::@2/(byte/signed byte/word/signed word/dword/signed dword) 2 main::@3/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@4/(byte/signed byte/word/signed word/dword/signed dword) 4 main::@5/(byte/signed byte/word/signed word/dword/signed dword) 5 main::@6/(byte/signed byte/word/signed word/dword/signed dword) 6 main::@7/(byte/signed byte/word/signed word/dword/signed dword) 7 main::@8/(byte/signed byte/word/signed word/dword/signed dword) 8 main::@9/(byte/signed byte/word/signed word/dword/signed dword) 9 ) + [27] (byte) test::i#11 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 1 main::@10/(byte/signed byte/word/signed word/dword/signed dword) $a main::@2/(byte/signed byte/word/signed word/dword/signed dword) 2 main::@3/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@4/(byte/signed byte/word/signed word/dword/signed dword) 4 main::@5/(byte/signed byte/word/signed word/dword/signed dword) 5 main::@6/(byte/signed byte/word/signed word/dword/signed dword) 6 main::@7/(byte/signed byte/word/signed word/dword/signed dword) 7 main::@8/(byte/signed byte/word/signed word/dword/signed dword) 8 main::@9/(byte/signed byte/word/signed word/dword/signed dword) 9 ) [27] (byte) test::a#11 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1 main::@10/(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1-(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 6/(byte/signed byte/word/signed word/dword/signed dword) 2%(byte/signed byte/word/signed word/dword/signed dword) 2<<(byte/signed byte/word/signed word/dword/signed dword) 2>>(byte/signed byte/word/signed word/dword/signed dword) 1^(byte/signed byte/word/signed word/dword/signed dword) 6|(byte/signed byte/word/signed word/dword/signed dword) 1&(byte/signed byte/word/signed word/dword/signed dword) 1 main::@2/(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1-(byte/signed byte/word/signed word/dword/signed dword) 1 main::@3/(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1-(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 6 main::@4/(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1-(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 6/(byte/signed byte/word/signed word/dword/signed dword) 2 main::@5/(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1-(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 6/(byte/signed byte/word/signed word/dword/signed dword) 2%(byte/signed byte/word/signed word/dword/signed dword) 2 main::@6/(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1-(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 6/(byte/signed byte/word/signed word/dword/signed dword) 2%(byte/signed byte/word/signed word/dword/signed dword) 2<<(byte/signed byte/word/signed word/dword/signed dword) 2 main::@7/(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1-(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 6/(byte/signed byte/word/signed word/dword/signed dword) 2%(byte/signed byte/word/signed word/dword/signed dword) 2<<(byte/signed byte/word/signed word/dword/signed dword) 2>>(byte/signed byte/word/signed word/dword/signed dword) 1 main::@8/(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1-(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 6/(byte/signed byte/word/signed word/dword/signed dword) 2%(byte/signed byte/word/signed word/dword/signed dword) 2<<(byte/signed byte/word/signed word/dword/signed dword) 2>>(byte/signed byte/word/signed word/dword/signed dword) 1^(byte/signed byte/word/signed word/dword/signed dword) 6 main::@9/(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1-(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 6/(byte/signed byte/word/signed word/dword/signed dword) 2%(byte/signed byte/word/signed word/dword/signed dword) 2<<(byte/signed byte/word/signed word/dword/signed dword) 2>>(byte/signed byte/word/signed word/dword/signed dword) 1^(byte/signed byte/word/signed word/dword/signed dword) 6|(byte/signed byte/word/signed word/dword/signed dword) 1 ) [28] *((const byte*) screen1#0 + (byte) test::i#11) ← (byte) test::a#11 [29] *((const byte*) screen2#0 + (byte) test::i#11) ← *((const byte[]) ref#0 + (byte) test::i#11) @@ -935,7 +935,7 @@ main: { //SEG71 [25] call test //SEG72 [27] phi from main::@10 to test [phi:main::@10->test] test_from_b10: - //SEG73 [27] phi (byte) test::i#11 = (byte/signed byte/word/signed word/dword/signed dword) 10 [phi:main::@10->test#0] -- vbuz1=vbuc1 + //SEG73 [27] phi (byte) test::i#11 = (byte/signed byte/word/signed word/dword/signed dword) $a [phi:main::@10->test#0] -- vbuz1=vbuc1 lda #$a sta test.i //SEG74 [27] phi (byte) test::a#11 = (byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1-(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 6/(byte/signed byte/word/signed word/dword/signed dword) 2%(byte/signed byte/word/signed word/dword/signed dword) 2<<(byte/signed byte/word/signed word/dword/signed dword) 2>>(byte/signed byte/word/signed word/dword/signed dword) 1^(byte/signed byte/word/signed word/dword/signed dword) 6|(byte/signed byte/word/signed word/dword/signed dword) 1&(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:main::@10->test#1] -- vbuz1=vbuc1 @@ -1188,7 +1188,7 @@ main: { //SEG71 [25] call test //SEG72 [27] phi from main::@10 to test [phi:main::@10->test] test_from_b10: - //SEG73 [27] phi (byte) test::i#11 = (byte/signed byte/word/signed word/dword/signed dword) 10 [phi:main::@10->test#0] -- vbuxx=vbuc1 + //SEG73 [27] phi (byte) test::i#11 = (byte/signed byte/word/signed word/dword/signed dword) $a [phi:main::@10->test#0] -- vbuxx=vbuc1 ldx #$a //SEG74 [27] phi (byte) test::a#11 = (byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1-(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 6/(byte/signed byte/word/signed word/dword/signed dword) 2%(byte/signed byte/word/signed word/dword/signed dword) 2<<(byte/signed byte/word/signed word/dword/signed dword) 2>>(byte/signed byte/word/signed word/dword/signed dword) 1^(byte/signed byte/word/signed word/dword/signed dword) 6|(byte/signed byte/word/signed word/dword/signed dword) 1&(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:main::@10->test#1] -- vbuz1=vbuc1 lda #(mod((3+1-1)*6/2,2)<<2>>1^6|1)&1 @@ -1306,7 +1306,7 @@ FINAL SYMBOL TABLE (byte) RED (const byte) RED#0 RED = (byte/signed byte/word/signed word/dword/signed dword) 2 (byte*) cols -(const byte*) cols#0 cols = ((byte*))(word/dword/signed dword) 55296 +(const byte*) cols#0 cols = ((byte*))(word/dword/signed dword) $d800 (void()) main() (label) main::@1 (label) main::@10 @@ -1322,11 +1322,11 @@ FINAL SYMBOL TABLE (byte) main::a (byte) main::i (byte[]) ref -(const byte[]) ref#0 ref = { (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 18, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 4, (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) 5, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0 } +(const byte[]) ref#0 ref = { (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) $12, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 4, (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) 5, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte*) screen1 -(const byte*) screen1#0 screen1 = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen1#0 screen1 = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) screen2 -(const byte*) screen2#0 screen2 = (const byte*) screen1#0+(byte/signed byte/word/signed word/dword/signed dword) 40 +(const byte*) screen2#0 screen2 = (const byte*) screen1#0+(byte/signed byte/word/signed word/dword/signed dword) $28 (void()) test((byte) test::i , (byte) test::a) (label) test::@1 (label) test::@3 @@ -1466,7 +1466,7 @@ main: { //SEG70 main::@10 //SEG71 [25] call test //SEG72 [27] phi from main::@10 to test [phi:main::@10->test] - //SEG73 [27] phi (byte) test::i#11 = (byte/signed byte/word/signed word/dword/signed dword) 10 [phi:main::@10->test#0] -- vbuxx=vbuc1 + //SEG73 [27] phi (byte) test::i#11 = (byte/signed byte/word/signed word/dword/signed dword) $a [phi:main::@10->test#0] -- vbuxx=vbuc1 ldx #$a //SEG74 [27] phi (byte) test::a#11 = (byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1-(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 6/(byte/signed byte/word/signed word/dword/signed dword) 2%(byte/signed byte/word/signed word/dword/signed dword) 2<<(byte/signed byte/word/signed word/dword/signed dword) 2>>(byte/signed byte/word/signed word/dword/signed dword) 1^(byte/signed byte/word/signed word/dword/signed dword) 6|(byte/signed byte/word/signed word/dword/signed dword) 1&(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:main::@10->test#1] -- vbuz1=vbuc1 lda #(mod((3+1-1)*6/2,2)<<2>>1^6|1)&1 diff --git a/src/test/ref/assignment-compound.sym b/src/test/ref/assignment-compound.sym index 3615eb3f4..0ad626c48 100644 --- a/src/test/ref/assignment-compound.sym +++ b/src/test/ref/assignment-compound.sym @@ -6,7 +6,7 @@ (byte) RED (const byte) RED#0 RED = (byte/signed byte/word/signed word/dword/signed dword) 2 (byte*) cols -(const byte*) cols#0 cols = ((byte*))(word/dword/signed dword) 55296 +(const byte*) cols#0 cols = ((byte*))(word/dword/signed dword) $d800 (void()) main() (label) main::@1 (label) main::@10 @@ -22,11 +22,11 @@ (byte) main::a (byte) main::i (byte[]) ref -(const byte[]) ref#0 ref = { (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 18, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 4, (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) 5, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0 } +(const byte[]) ref#0 ref = { (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) $12, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 4, (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) 5, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte*) screen1 -(const byte*) screen1#0 screen1 = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen1#0 screen1 = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) screen2 -(const byte*) screen2#0 screen2 = (const byte*) screen1#0+(byte/signed byte/word/signed word/dword/signed dword) 40 +(const byte*) screen2#0 screen2 = (const byte*) screen1#0+(byte/signed byte/word/signed word/dword/signed dword) $28 (void()) test((byte) test::i , (byte) test::a) (label) test::@1 (label) test::@3 diff --git a/src/test/ref/bgblack.log b/src/test/ref/bgblack.log index 80d2275ed..4e111c4ed 100644 --- a/src/test/ref/bgblack.log +++ b/src/test/ref/bgblack.log @@ -5,66 +5,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -75,12 +75,12 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@5 main: scope:[main] from @5 *((byte*) BGCOL#0) ← (byte) BLACK#0 @@ -266,66 +266,66 @@ Successful SSA optimization Pass2CullEmptyBlocks Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -336,12 +336,12 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f Successful SSA optimization Pass2ConstantIdentification Successful SSA optimization PassNEliminateUnusedVars Adding NOP phi() at start of @begin @@ -564,7 +564,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL1 (byte*) BGCOL2 (byte*) BGCOL3 diff --git a/src/test/ref/bgblack.sym b/src/test/ref/bgblack.sym index ef8f64796..651af6a29 100644 --- a/src/test/ref/bgblack.sym +++ b/src/test/ref/bgblack.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL1 (byte*) BGCOL2 (byte*) BGCOL3 diff --git a/src/test/ref/bitmap-plotter.cfg b/src/test/ref/bitmap-plotter.cfg index 85d32e8f6..d46830cdc 100644 --- a/src/test/ref/bitmap-plotter.cfg +++ b/src/test/ref/bitmap-plotter.cfg @@ -11,7 +11,7 @@ main: scope:[main] from @5 [4] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [5] *((const byte*) FGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [6] *((const byte*) D011#0) ← (const byte) BMM#0|(const byte) DEN#0|(const byte) RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 - [7] *((const byte*) D018#0) ← ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) BITMAP#0/(word/signed word/dword/signed dword) 1024 + [7] *((const byte*) D018#0) ← ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) BITMAP#0/(word/signed word/dword/signed dword) $400 [8] call init_screen to:main::@5 main::@5: scope:[main] from main @@ -19,7 +19,7 @@ main::@5: scope:[main] from main [10] call init_plot_tables to:main::@2 main::@2: scope:[main] from main::@2 main::@5 main::@7 - [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 + [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 [12] *((const byte*) BGCOL#0) ← ++ *((const byte*) BGCOL#0) @@ -45,16 +45,16 @@ plots::@return: scope:[plots] from plots::@3 [22] return to:@return plot: scope:[plot] from plots::@1 - [23] (byte~) plot::$6 ← *((const byte[256]) plot_xhi#0 + (byte) plot::x#0) + [23] (byte~) plot::$6 ← *((const byte[$100]) plot_xhi#0 + (byte) plot::x#0) [24] (byte*) plot::plotter_x#1 ← ((byte*))(byte/signed byte/word/signed word/dword/signed dword) 0 hi= (byte~) plot::$6 - [25] (byte~) plot::$7 ← *((const byte[256]) plot_xlo#0 + (byte) plot::x#0) + [25] (byte~) plot::$7 ← *((const byte[$100]) plot_xlo#0 + (byte) plot::x#0) [26] (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$7 - [27] (byte~) plot::$8 ← *((const byte[256]) plot_yhi#0 + (byte) plot::y#0) + [27] (byte~) plot::$8 ← *((const byte[$100]) plot_yhi#0 + (byte) plot::y#0) [28] (word) plot::plotter_y#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 hi= (byte~) plot::$8 - [29] (byte~) plot::$9 ← *((const byte[256]) plot_ylo#0 + (byte) plot::y#0) + [29] (byte~) plot::$9 ← *((const byte[$100]) plot_ylo#0 + (byte) plot::y#0) [30] (word) plot::plotter_y#2 ← (word) plot::plotter_y#1 lo= (byte~) plot::$9 [31] (byte*) plot::plotter#0 ← (byte*) plot::plotter_x#2 + (word) plot::plotter_y#2 - [32] (byte~) plot::$5 ← *((byte*) plot::plotter#0) | *((const byte[256]) plot_bit#0 + (byte) plot::x#0) + [32] (byte~) plot::$5 ← *((byte*) plot::plotter#0) | *((const byte[$100]) plot_bit#0 + (byte) plot::x#0) [33] *((byte*) plot::plotter#0) ← (byte~) plot::$5 to:plot::@return plot::@return: scope:[plot] from plot @@ -64,17 +64,17 @@ init_plot_tables: scope:[init_plot_tables] from main::@5 [35] phi() to:init_plot_tables::@1 init_plot_tables::@1: scope:[init_plot_tables] from init_plot_tables init_plot_tables::@2 - [36] (byte) init_plot_tables::bits#3 ← phi( init_plot_tables/(byte/word/signed word/dword/signed dword) 128 init_plot_tables::@2/(byte) init_plot_tables::bits#4 ) + [36] (byte) init_plot_tables::bits#3 ← phi( init_plot_tables/(byte/word/signed word/dword/signed dword) $80 init_plot_tables::@2/(byte) init_plot_tables::bits#4 ) [36] (byte) init_plot_tables::x#2 ← phi( init_plot_tables/(byte/signed byte/word/signed word/dword/signed dword) 0 init_plot_tables::@2/(byte) init_plot_tables::x#1 ) - [37] (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word/dword/signed dword) 248 - [38] *((const byte[256]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 - [39] *((const byte[256]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← >(const byte*) BITMAP#0 - [40] *((const byte[256]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 + [37] (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word/dword/signed dword) $f8 + [38] *((const byte[$100]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 + [39] *((const byte[$100]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← >(const byte*) BITMAP#0 + [40] *((const byte[$100]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 [41] (byte) init_plot_tables::bits#1 ← (byte) init_plot_tables::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [42] if((byte) init_plot_tables::bits#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto init_plot_tables::@10 to:init_plot_tables::@2 init_plot_tables::@2: scope:[init_plot_tables] from init_plot_tables::@1 init_plot_tables::@10 - [43] (byte) init_plot_tables::bits#4 ← phi( init_plot_tables::@10/(byte) init_plot_tables::bits#1 init_plot_tables::@1/(byte/word/signed word/dword/signed dword) 128 ) + [43] (byte) init_plot_tables::bits#4 ← phi( init_plot_tables::@10/(byte) init_plot_tables::bits#1 init_plot_tables::@1/(byte/word/signed word/dword/signed dword) $80 ) [44] (byte) init_plot_tables::x#1 ← ++ (byte) init_plot_tables::x#2 [45] if((byte) init_plot_tables::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto init_plot_tables::@1 to:init_plot_tables::@3 @@ -84,14 +84,14 @@ init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@2 init_p [47] (byte~) init_plot_tables::$6 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [48] (byte~) init_plot_tables::$7 ← < (byte*) init_plot_tables::yoffs#2 [49] (byte~) init_plot_tables::$8 ← (byte~) init_plot_tables::$6 | (byte~) init_plot_tables::$7 - [50] *((const byte[256]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 + [50] *((const byte[$100]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 [51] (byte~) init_plot_tables::$9 ← > (byte*) init_plot_tables::yoffs#2 - [52] *((const byte[256]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 + [52] *((const byte[$100]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 [53] (byte~) init_plot_tables::$10 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [54] if((byte~) init_plot_tables::$10!=(byte/signed byte/word/signed word/dword/signed dword) 7) goto init_plot_tables::@4 to:init_plot_tables::@7 init_plot_tables::@7: scope:[init_plot_tables] from init_plot_tables::@3 - [55] (byte*) init_plot_tables::yoffs#1 ← (byte*) init_plot_tables::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 + [55] (byte*) init_plot_tables::yoffs#1 ← (byte*) init_plot_tables::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 to:init_plot_tables::@4 init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_plot_tables::@7 [56] (byte*) init_plot_tables::yoffs#4 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 init_plot_tables::@7/(byte*) init_plot_tables::yoffs#1 ) @@ -111,13 +111,13 @@ init_screen::@1: scope:[init_screen] from init_screen init_screen::@1 [62] (byte*) init_screen::b#2 ← phi( init_screen/(const byte*) BITMAP#0 init_screen::@1/(byte*) init_screen::b#1 ) [63] *((byte*) init_screen::b#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [64] (byte*) init_screen::b#1 ← ++ (byte*) init_screen::b#2 - [65] if((byte*) init_screen::b#1!=(const byte*) BITMAP#0+(word/signed word/dword/signed dword) 8192) goto init_screen::@1 + [65] if((byte*) init_screen::b#1!=(const byte*) BITMAP#0+(word/signed word/dword/signed dword) $2000) goto init_screen::@1 to:init_screen::@2 init_screen::@2: scope:[init_screen] from init_screen::@1 init_screen::@2 [66] (byte*) init_screen::c#2 ← phi( init_screen::@2/(byte*) init_screen::c#1 init_screen::@1/(const byte*) SCREEN#0 ) - [67] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) 20 + [67] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) $14 [68] (byte*) init_screen::c#1 ← ++ (byte*) init_screen::c#2 - [69] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1024) goto init_screen::@2 + [69] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $400) goto init_screen::@2 to:init_screen::@return init_screen::@return: scope:[init_screen] from init_screen::@2 [70] return diff --git a/src/test/ref/bitmap-plotter.log b/src/test/ref/bitmap-plotter.log index 190f573d7..3d5ae71a6 100644 --- a/src/test/ref/bitmap-plotter.log +++ b/src/test/ref/bitmap-plotter.log @@ -1,22 +1,22 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) FGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte*) BITMAP#0 ← ((byte*)) (word/signed word/dword/signed dword) 8192 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) FGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte*) BITMAP#0 ← ((byte*)) (word/signed word/dword/signed dword) $2000 to:@1 main: scope:[main] from @5 (byte) plots_cnt#10 ← phi( @5/(byte) plots_cnt#11 ) @@ -36,9 +36,9 @@ main: scope:[main] from @5 (byte/word/dword~) main::$2 ← (byte~) main::$1 | (byte/signed byte/word/signed word/dword/signed dword) 3 *((byte*) D011#1) ← (byte/word/dword~) main::$2 (word~) main::$3 ← ((word)) (byte*) SCREEN#1 - (word/signed dword/dword~) main::$4 ← (word~) main::$3 / (byte/signed byte/word/signed word/dword/signed dword) 64 + (word/signed dword/dword~) main::$4 ← (word~) main::$3 / (byte/signed byte/word/signed word/dword/signed dword) $40 (word~) main::$5 ← ((word)) (byte*) BITMAP#0 - (word/signed dword/dword~) main::$6 ← (word~) main::$5 / (word/signed word/dword/signed dword) 1024 + (word/signed dword/dword~) main::$6 ← (word~) main::$5 / (word/signed word/dword/signed dword) $400 (word/dword~) main::$7 ← (word/signed dword/dword~) main::$4 | (word/signed dword/dword~) main::$6 (byte~) main::$8 ← ((byte)) (word/dword~) main::$7 *((byte*) D018#1) ← (byte~) main::$8 @@ -64,7 +64,7 @@ main::@2: scope:[main] from main::@1 main::@2 main::@6 (byte) plots_cnt#5 ← phi( main::@1/(byte) plots_cnt#6 main::@2/(byte) plots_cnt#5 main::@6/(byte) plots_cnt#7 ) (byte*) BGCOL#5 ← phi( main::@1/(byte*) BGCOL#6 main::@2/(byte*) BGCOL#5 main::@6/(byte*) BGCOL#7 ) (byte*) RASTER#1 ← phi( main::@1/(byte*) RASTER#2 main::@2/(byte*) RASTER#1 main::@6/(byte*) RASTER#3 ) - (bool~) main::$11 ← *((byte*) RASTER#1) != (byte/word/signed word/dword/signed dword) 255 + (bool~) main::$11 ← *((byte*) RASTER#1) != (byte/word/signed word/dword/signed dword) $ff if((bool~) main::$11) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 @@ -94,8 +94,8 @@ main::@return: scope:[main] from main::@7 (byte) BMM#4 ← phi( @begin/(byte) BMM#0 ) (byte*) FGCOL#4 ← phi( @begin/(byte*) FGCOL#0 ) (byte*) BGCOL#10 ← phi( @begin/(byte*) BGCOL#0 ) - (byte[]) plots_x#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 80, (byte/signed byte/word/signed word/dword/signed dword) 110, (byte/signed byte/word/signed word/dword/signed dword) 80, (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 40, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 40 } - (byte[]) plots_y#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 40, (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 80, (byte/signed byte/word/signed word/dword/signed dword) 110, (byte/signed byte/word/signed word/dword/signed dword) 80, (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 40 } + (byte[]) plots_x#0 ← { (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $50, (byte/signed byte/word/signed word/dword/signed dword) $6e, (byte/signed byte/word/signed word/dword/signed dword) $50, (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $28, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $28 } + (byte[]) plots_y#0 ← { (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $28, (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $50, (byte/signed byte/word/signed word/dword/signed dword) $6e, (byte/signed byte/word/signed word/dword/signed dword) $50, (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $28 } (byte) plots_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 to:@2 plots: scope:[plots] from main::@3 @@ -130,45 +130,45 @@ plots::@return: scope:[plots] from plots::@3 (byte) BMM#3 ← phi( @1/(byte) BMM#4 ) (byte*) FGCOL#3 ← phi( @1/(byte*) FGCOL#4 ) (byte*) BGCOL#8 ← phi( @1/(byte*) BGCOL#10 ) - (byte[256]) plot_xlo#0 ← { fill( 256, 0) } - (byte[256]) plot_xhi#0 ← { fill( 256, 0) } - (byte[256]) plot_ylo#0 ← { fill( 256, 0) } - (byte[256]) plot_yhi#0 ← { fill( 256, 0) } - (byte[256]) plot_bit#0 ← { fill( 256, 0) } + (byte[$100]) plot_xlo#0 ← { fill( $100, 0) } + (byte[$100]) plot_xhi#0 ← { fill( $100, 0) } + (byte[$100]) plot_ylo#0 ← { fill( $100, 0) } + (byte[$100]) plot_yhi#0 ← { fill( $100, 0) } + (byte[$100]) plot_bit#0 ← { fill( $100, 0) } to:@5 plot: scope:[plot] from plots::@1 (byte) plot::y#1 ← phi( plots::@1/(byte) plot::y#0 ) (byte) plot::x#1 ← phi( plots::@1/(byte) plot::x#0 ) (byte*) plot::plotter_x#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (word) plot::plotter_y#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte~) plot::$6 ← *((byte[256]) plot_xhi#0 + (byte) plot::x#1) + (byte~) plot::$6 ← *((byte[$100]) plot_xhi#0 + (byte) plot::x#1) (byte*) plot::plotter_x#1 ← (byte*) plot::plotter_x#0 hi= (byte~) plot::$6 - (byte~) plot::$7 ← *((byte[256]) plot_xlo#0 + (byte) plot::x#1) + (byte~) plot::$7 ← *((byte[$100]) plot_xlo#0 + (byte) plot::x#1) (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$7 - (byte~) plot::$8 ← *((byte[256]) plot_yhi#0 + (byte) plot::y#1) + (byte~) plot::$8 ← *((byte[$100]) plot_yhi#0 + (byte) plot::y#1) (word) plot::plotter_y#1 ← (word) plot::plotter_y#0 hi= (byte~) plot::$8 - (byte~) plot::$9 ← *((byte[256]) plot_ylo#0 + (byte) plot::y#1) + (byte~) plot::$9 ← *((byte[$100]) plot_ylo#0 + (byte) plot::y#1) (word) plot::plotter_y#2 ← (word) plot::plotter_y#1 lo= (byte~) plot::$9 (byte*~) plot::$4 ← (byte*) plot::plotter_x#2 + (word) plot::plotter_y#2 (byte*) plot::plotter#0 ← (byte*~) plot::$4 - (byte~) plot::$5 ← *((byte*) plot::plotter#0) | *((byte[256]) plot_bit#0 + (byte) plot::x#1) + (byte~) plot::$5 ← *((byte*) plot::plotter#0) | *((byte[$100]) plot_bit#0 + (byte) plot::x#1) *((byte*) plot::plotter#0) ← (byte~) plot::$5 to:plot::@return plot::@return: scope:[plot] from plot return to:@return init_plot_tables: scope:[init_plot_tables] from main::@5 - (byte) init_plot_tables::bits#0 ← (byte/word/signed word/dword/signed dword) 128 + (byte) init_plot_tables::bits#0 ← (byte/word/signed word/dword/signed dword) $80 (byte) init_plot_tables::x#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:init_plot_tables::@1 init_plot_tables::@1: scope:[init_plot_tables] from init_plot_tables init_plot_tables::@2 (byte) init_plot_tables::bits#3 ← phi( init_plot_tables/(byte) init_plot_tables::bits#0 init_plot_tables::@2/(byte) init_plot_tables::bits#4 ) (byte) init_plot_tables::x#2 ← phi( init_plot_tables/(byte) init_plot_tables::x#0 init_plot_tables::@2/(byte) init_plot_tables::x#1 ) - (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word/dword/signed dword) 248 - *((byte[256]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 + (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word/dword/signed dword) $f8 + *((byte[$100]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#0 - *((byte[256]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 - *((byte[256]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 + *((byte[$100]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 + *((byte[$100]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 (byte~) init_plot_tables::$2 ← (byte) init_plot_tables::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) init_plot_tables::bits#1 ← (byte~) init_plot_tables::$2 (bool~) init_plot_tables::$3 ← (byte) init_plot_tables::bits#1 == (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -178,13 +178,13 @@ init_plot_tables::@1: scope:[init_plot_tables] from init_plot_tables init_plot_ init_plot_tables::@2: scope:[init_plot_tables] from init_plot_tables::@1 init_plot_tables::@5 (byte) init_plot_tables::bits#4 ← phi( init_plot_tables::@1/(byte) init_plot_tables::bits#1 init_plot_tables::@5/(byte) init_plot_tables::bits#2 ) (byte) init_plot_tables::x#3 ← phi( init_plot_tables::@1/(byte) init_plot_tables::x#2 init_plot_tables::@5/(byte) init_plot_tables::x#4 ) - (byte) init_plot_tables::x#1 ← (byte) init_plot_tables::x#3 + rangenext(0,255) - (bool~) init_plot_tables::$5 ← (byte) init_plot_tables::x#1 != rangelast(0,255) + (byte) init_plot_tables::x#1 ← (byte) init_plot_tables::x#3 + rangenext(0,$ff) + (bool~) init_plot_tables::$5 ← (byte) init_plot_tables::x#1 != rangelast(0,$ff) if((bool~) init_plot_tables::$5) goto init_plot_tables::@1 to:init_plot_tables::@6 init_plot_tables::@5: scope:[init_plot_tables] from init_plot_tables::@1 (byte) init_plot_tables::x#4 ← phi( init_plot_tables::@1/(byte) init_plot_tables::x#2 ) - (byte) init_plot_tables::bits#2 ← (byte/word/signed word/dword/signed dword) 128 + (byte) init_plot_tables::bits#2 ← (byte/word/signed word/dword/signed dword) $80 to:init_plot_tables::@2 init_plot_tables::@6: scope:[init_plot_tables] from init_plot_tables::@2 (byte*) init_plot_tables::yoffs#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -196,9 +196,9 @@ init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@4 init_p (byte~) init_plot_tables::$6 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 (byte~) init_plot_tables::$7 ← < (byte*) init_plot_tables::yoffs#2 (byte~) init_plot_tables::$8 ← (byte~) init_plot_tables::$6 | (byte~) init_plot_tables::$7 - *((byte[256]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 + *((byte[$100]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 (byte~) init_plot_tables::$9 ← > (byte*) init_plot_tables::yoffs#2 - *((byte[256]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 + *((byte[$100]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 (byte~) init_plot_tables::$10 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 (bool~) init_plot_tables::$11 ← (byte~) init_plot_tables::$10 == (byte/signed byte/word/signed word/dword/signed dword) 7 (bool~) init_plot_tables::$12 ← ! (bool~) init_plot_tables::$11 @@ -207,14 +207,14 @@ init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@4 init_p init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_plot_tables::@7 (byte*) init_plot_tables::yoffs#4 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 init_plot_tables::@7/(byte*) init_plot_tables::yoffs#1 ) (byte) init_plot_tables::y#3 ← phi( init_plot_tables::@3/(byte) init_plot_tables::y#2 init_plot_tables::@7/(byte) init_plot_tables::y#4 ) - (byte) init_plot_tables::y#1 ← (byte) init_plot_tables::y#3 + rangenext(0,255) - (bool~) init_plot_tables::$15 ← (byte) init_plot_tables::y#1 != rangelast(0,255) + (byte) init_plot_tables::y#1 ← (byte) init_plot_tables::y#3 + rangenext(0,$ff) + (bool~) init_plot_tables::$15 ← (byte) init_plot_tables::y#1 != rangelast(0,$ff) if((bool~) init_plot_tables::$15) goto init_plot_tables::@3 to:init_plot_tables::@return init_plot_tables::@7: scope:[init_plot_tables] from init_plot_tables::@3 (byte) init_plot_tables::y#4 ← phi( init_plot_tables::@3/(byte) init_plot_tables::y#2 ) (byte*) init_plot_tables::yoffs#3 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 ) - (word/signed word/dword/signed dword~) init_plot_tables::$13 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 8 + (word/signed word/dword/signed dword~) init_plot_tables::$13 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 8 (byte*~) init_plot_tables::$14 ← (byte*) init_plot_tables::yoffs#3 + (word/signed word/dword/signed dword~) init_plot_tables::$13 (byte*) init_plot_tables::yoffs#1 ← (byte*~) init_plot_tables::$14 to:init_plot_tables::@4 @@ -230,7 +230,7 @@ init_screen::@1: scope:[init_screen] from init_screen init_screen::@1 (byte*) init_screen::b#2 ← phi( init_screen/(byte*) init_screen::b#0 init_screen::@1/(byte*) init_screen::b#1 ) *((byte*) init_screen::b#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) init_screen::b#1 ← ++ (byte*) init_screen::b#2 - (byte*~) init_screen::$0 ← (byte*) BITMAP#0 + (word/signed word/dword/signed dword) 8192 + (byte*~) init_screen::$0 ← (byte*) BITMAP#0 + (word/signed word/dword/signed dword) $2000 (bool~) init_screen::$1 ← (byte*) init_screen::b#1 != (byte*~) init_screen::$0 if((bool~) init_screen::$1) goto init_screen::@1 to:init_screen::@3 @@ -241,9 +241,9 @@ init_screen::@3: scope:[init_screen] from init_screen::@1 init_screen::@2: scope:[init_screen] from init_screen::@2 init_screen::@3 (byte*) SCREEN#3 ← phi( init_screen::@2/(byte*) SCREEN#3 init_screen::@3/(byte*) SCREEN#2 ) (byte*) init_screen::c#2 ← phi( init_screen::@2/(byte*) init_screen::c#1 init_screen::@3/(byte*) init_screen::c#0 ) - *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) 20 + *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) $14 (byte*) init_screen::c#1 ← ++ (byte*) init_screen::c#2 - (byte*~) init_screen::$2 ← (byte*) SCREEN#3 + (word/signed word/dword/signed dword) 1024 + (byte*~) init_screen::$2 ← (byte*) SCREEN#3 + (word/signed word/dword/signed dword) $400 (bool~) init_screen::$3 ← (byte*) init_screen::c#1 != (byte*~) init_screen::$2 if((bool~) init_screen::$3) goto init_screen::@2 to:init_screen::@return @@ -466,16 +466,16 @@ SYMBOL TABLE SSA (byte) plot::y (byte) plot::y#0 (byte) plot::y#1 -(byte[256]) plot_bit -(byte[256]) plot_bit#0 -(byte[256]) plot_xhi -(byte[256]) plot_xhi#0 -(byte[256]) plot_xlo -(byte[256]) plot_xlo#0 -(byte[256]) plot_yhi -(byte[256]) plot_yhi#0 -(byte[256]) plot_ylo -(byte[256]) plot_ylo#0 +(byte[$100]) plot_bit +(byte[$100]) plot_bit#0 +(byte[$100]) plot_xhi +(byte[$100]) plot_xhi#0 +(byte[$100]) plot_xlo +(byte[$100]) plot_xlo#0 +(byte[$100]) plot_yhi +(byte[$100]) plot_yhi#0 +(byte[$100]) plot_ylo +(byte[$100]) plot_ylo#0 (void()) plots() (bool~) plots::$1 (label) plots::@1 @@ -570,61 +570,61 @@ Redundant Phi (byte*) SCREEN#6 (byte*) SCREEN#1 Redundant Phi (byte*) SCREEN#2 (byte*) SCREEN#6 Redundant Phi (byte*) SCREEN#3 (byte*) SCREEN#2 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$11 [37] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 +Simple Condition (bool~) main::$11 [37] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 Simple Condition (bool~) plots::$1 [58] if((byte) plots::i#1<(byte) plots_cnt#0) goto plots::@1 Simple Condition (bool~) init_plot_tables::$4 [94] if((byte) init_plot_tables::bits#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto init_plot_tables::@2 -Simple Condition (bool~) init_plot_tables::$5 [98] if((byte) init_plot_tables::x#1!=rangelast(0,255)) goto init_plot_tables::@1 +Simple Condition (bool~) init_plot_tables::$5 [98] if((byte) init_plot_tables::x#1!=rangelast(0,$ff)) goto init_plot_tables::@1 Simple Condition (bool~) init_plot_tables::$12 [113] if((byte~) init_plot_tables::$10!=(byte/signed byte/word/signed word/dword/signed dword) 7) goto init_plot_tables::@4 -Simple Condition (bool~) init_plot_tables::$15 [117] if((byte) init_plot_tables::y#1!=rangelast(0,255)) goto init_plot_tables::@3 +Simple Condition (bool~) init_plot_tables::$15 [117] if((byte) init_plot_tables::y#1!=rangelast(0,$ff)) goto init_plot_tables::@3 Simple Condition (bool~) init_screen::$1 [130] if((byte*) init_screen::b#1!=(byte*~) init_screen::$0) goto init_screen::@1 Simple Condition (bool~) init_screen::$3 [138] if((byte*) init_screen::c#1!=(byte*~) init_screen::$2) goto init_screen::@2 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) RST8#0 = 128 -Constant (const byte) ECM#0 = 64 -Constant (const byte) BMM#0 = 32 -Constant (const byte) DEN#0 = 16 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) RST8#0 = $80 +Constant (const byte) ECM#0 = $40 +Constant (const byte) BMM#0 = $20 +Constant (const byte) DEN#0 = $10 Constant (const byte) RSEL#0 = 8 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) MCM#0 = 16 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) MCM#0 = $10 Constant (const byte) CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) BGCOL#0 = ((byte*))53280 -Constant (const byte*) FGCOL#0 = ((byte*))53281 -Constant (const byte*) COLS#0 = ((byte*))55296 -Constant (const byte*) SCREEN#0 = ((byte*))1024 -Constant (const byte*) BITMAP#0 = ((byte*))8192 -Constant (const byte[]) plots_x#0 = { 60, 80, 110, 80, 60, 40, 10, 40 } -Constant (const byte[]) plots_y#0 = { 10, 40, 60, 80, 110, 80, 60, 40 } +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) BGCOL#0 = ((byte*))$d020 +Constant (const byte*) FGCOL#0 = ((byte*))$d021 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) SCREEN#0 = ((byte*))$400 +Constant (const byte*) BITMAP#0 = ((byte*))$2000 +Constant (const byte[]) plots_x#0 = { $3c, $50, $6e, $50, $3c, $28, $a, $28 } +Constant (const byte[]) plots_y#0 = { $a, $28, $3c, $50, $6e, $50, $3c, $28 } Constant (const byte) plots_cnt#0 = 8 Constant (const byte) plots::i#0 = 0 -Constant (const byte[256]) plot_xlo#0 = { fill( 256, 0) } -Constant (const byte[256]) plot_xhi#0 = { fill( 256, 0) } -Constant (const byte[256]) plot_ylo#0 = { fill( 256, 0) } -Constant (const byte[256]) plot_yhi#0 = { fill( 256, 0) } -Constant (const byte[256]) plot_bit#0 = { fill( 256, 0) } +Constant (const byte[$100]) plot_xlo#0 = { fill( $100, 0) } +Constant (const byte[$100]) plot_xhi#0 = { fill( $100, 0) } +Constant (const byte[$100]) plot_ylo#0 = { fill( $100, 0) } +Constant (const byte[$100]) plot_yhi#0 = { fill( $100, 0) } +Constant (const byte[$100]) plot_bit#0 = { fill( $100, 0) } Constant (const byte*) plot::plotter_x#0 = ((byte*))0 Constant (const word) plot::plotter_y#0 = 0 -Constant (const byte) init_plot_tables::bits#0 = 128 +Constant (const byte) init_plot_tables::bits#0 = $80 Constant (const byte) init_plot_tables::x#0 = 0 -Constant (const byte) init_plot_tables::bits#2 = 128 +Constant (const byte) init_plot_tables::bits#2 = $80 Constant (const byte*) init_plot_tables::yoffs#0 = ((byte*))0 Constant (const byte) init_plot_tables::y#0 = 0 -Constant (const word/signed word/dword/signed dword) init_plot_tables::$13 = 40*8 +Constant (const word/signed word/dword/signed dword) init_plot_tables::$13 = $28*8 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::$0 = BMM#0|DEN#0 Constant (const word) main::$3 = ((word))SCREEN#0 Constant (const word) main::$5 = ((word))BITMAP#0 Constant (const byte) init_plot_tables::$1 = >BITMAP#0 Constant (const byte*) init_screen::b#0 = BITMAP#0 -Constant (const byte*) init_screen::$0 = BITMAP#0+8192 +Constant (const byte*) init_screen::$0 = BITMAP#0+$2000 Constant (const byte*) init_screen::c#0 = SCREEN#0 -Constant (const byte*) init_screen::$2 = SCREEN#0+1024 +Constant (const byte*) init_screen::$2 = SCREEN#0+$400 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::$1 = main::$0|RSEL#0 -Constant (const word/signed dword/dword) main::$4 = main::$3/64 -Constant (const word/signed dword/dword) main::$6 = main::$5/1024 +Constant (const word/signed dword/dword) main::$4 = main::$3/$40 +Constant (const word/signed dword/dword) main::$6 = main::$5/$400 Successful SSA optimization Pass2ConstantIdentification Constant (const byte/word/dword) main::$2 = main::$1|3 Constant (const word/dword) main::$7 = main::$4|main::$6 @@ -637,9 +637,9 @@ Successful SSA optimization PassNEliminateUnusedVars Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks Resolved ranged next value init_plot_tables::x#1 ← ++ init_plot_tables::x#2 to ++ -Resolved ranged comparison value if(init_plot_tables::x#1!=rangelast(0,255)) goto init_plot_tables::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(init_plot_tables::x#1!=rangelast(0,$ff)) goto init_plot_tables::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 Resolved ranged next value init_plot_tables::y#1 ← ++ init_plot_tables::y#2 to ++ -Resolved ranged comparison value if(init_plot_tables::y#1!=rangelast(0,255)) goto init_plot_tables::@3 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(init_plot_tables::y#1!=rangelast(0,$ff)) goto init_plot_tables::@3 to (byte/signed byte/word/signed word/dword/signed dword) 0 Culled Empty Block (label) main::@6 Culled Empty Block (label) main::@1 Culled Empty Block (label) @1 @@ -658,28 +658,28 @@ Inlining constant with var siblings (const byte) init_plot_tables::y#0 Inlining constant with var siblings (const byte*) init_screen::b#0 Inlining constant with var siblings (const byte*) init_screen::c#0 Constant inlined plots::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined init_plot_tables::bits#2 = (byte/word/signed word/dword/signed dword) 128 -Constant inlined init_plot_tables::bits#0 = (byte/word/signed word/dword/signed dword) 128 +Constant inlined init_plot_tables::bits#2 = (byte/word/signed word/dword/signed dword) $80 +Constant inlined init_plot_tables::bits#0 = (byte/word/signed word/dword/signed dword) $80 Constant inlined plot::plotter_y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined plot::plotter_x#0 = ((byte*))(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined init_screen::$2 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1024 +Constant inlined init_screen::$2 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) $400 Constant inlined main::$1 = (const byte) BMM#0|(const byte) DEN#0|(const byte) RSEL#0 Constant inlined init_plot_tables::$1 = >(const byte*) BITMAP#0 Constant inlined main::$2 = (const byte) BMM#0|(const byte) DEN#0|(const byte) RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 Constant inlined main::$0 = (const byte) BMM#0|(const byte) DEN#0 Constant inlined main::$5 = ((word))(const byte*) BITMAP#0 Constant inlined init_plot_tables::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$6 = ((word))(const byte*) BITMAP#0/(word/signed word/dword/signed dword) 1024 +Constant inlined main::$6 = ((word))(const byte*) BITMAP#0/(word/signed word/dword/signed dword) $400 Constant inlined init_plot_tables::yoffs#0 = ((byte*))(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::$3 = ((word))(const byte*) SCREEN#0 -Constant inlined main::$4 = ((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) 64 -Constant inlined init_plot_tables::$13 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 +Constant inlined main::$4 = ((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) $40 +Constant inlined init_plot_tables::$13 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 Constant inlined init_plot_tables::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined init_screen::c#0 = (const byte*) SCREEN#0 Constant inlined init_screen::b#0 = (const byte*) BITMAP#0 -Constant inlined main::$7 = ((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) BITMAP#0/(word/signed word/dword/signed dword) 1024 -Constant inlined init_screen::$0 = (const byte*) BITMAP#0+(word/signed word/dword/signed dword) 8192 -Constant inlined main::$8 = ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) BITMAP#0/(word/signed word/dword/signed dword) 1024 +Constant inlined main::$7 = ((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) BITMAP#0/(word/signed word/dword/signed dword) $400 +Constant inlined init_screen::$0 = (const byte*) BITMAP#0+(word/signed word/dword/signed dword) $2000 +Constant inlined main::$8 = ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) BITMAP#0/(word/signed word/dword/signed dword) $400 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting plots::@4(between plots::@3 and plots::@1) Added new block during phi lifting init_plot_tables::@9(between init_plot_tables::@2 and init_plot_tables::@1) @@ -743,7 +743,7 @@ main: scope:[main] from @5 [4] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [5] *((const byte*) FGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [6] *((const byte*) D011#0) ← (const byte) BMM#0|(const byte) DEN#0|(const byte) RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 - [7] *((const byte*) D018#0) ← ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) BITMAP#0/(word/signed word/dword/signed dword) 1024 + [7] *((const byte*) D018#0) ← ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) BITMAP#0/(word/signed word/dword/signed dword) $400 [8] call init_screen to:main::@5 main::@5: scope:[main] from main @@ -751,7 +751,7 @@ main::@5: scope:[main] from main [10] call init_plot_tables to:main::@2 main::@2: scope:[main] from main::@2 main::@5 main::@7 - [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 + [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 [12] *((const byte*) BGCOL#0) ← ++ *((const byte*) BGCOL#0) @@ -777,16 +777,16 @@ plots::@return: scope:[plots] from plots::@3 [22] return to:@return plot: scope:[plot] from plots::@1 - [23] (byte~) plot::$6 ← *((const byte[256]) plot_xhi#0 + (byte) plot::x#0) + [23] (byte~) plot::$6 ← *((const byte[$100]) plot_xhi#0 + (byte) plot::x#0) [24] (byte*) plot::plotter_x#1 ← ((byte*))(byte/signed byte/word/signed word/dword/signed dword) 0 hi= (byte~) plot::$6 - [25] (byte~) plot::$7 ← *((const byte[256]) plot_xlo#0 + (byte) plot::x#0) + [25] (byte~) plot::$7 ← *((const byte[$100]) plot_xlo#0 + (byte) plot::x#0) [26] (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$7 - [27] (byte~) plot::$8 ← *((const byte[256]) plot_yhi#0 + (byte) plot::y#0) + [27] (byte~) plot::$8 ← *((const byte[$100]) plot_yhi#0 + (byte) plot::y#0) [28] (word) plot::plotter_y#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 hi= (byte~) plot::$8 - [29] (byte~) plot::$9 ← *((const byte[256]) plot_ylo#0 + (byte) plot::y#0) + [29] (byte~) plot::$9 ← *((const byte[$100]) plot_ylo#0 + (byte) plot::y#0) [30] (word) plot::plotter_y#2 ← (word) plot::plotter_y#1 lo= (byte~) plot::$9 [31] (byte*) plot::plotter#0 ← (byte*) plot::plotter_x#2 + (word) plot::plotter_y#2 - [32] (byte~) plot::$5 ← *((byte*) plot::plotter#0) | *((const byte[256]) plot_bit#0 + (byte) plot::x#0) + [32] (byte~) plot::$5 ← *((byte*) plot::plotter#0) | *((const byte[$100]) plot_bit#0 + (byte) plot::x#0) [33] *((byte*) plot::plotter#0) ← (byte~) plot::$5 to:plot::@return plot::@return: scope:[plot] from plot @@ -796,17 +796,17 @@ init_plot_tables: scope:[init_plot_tables] from main::@5 [35] phi() to:init_plot_tables::@1 init_plot_tables::@1: scope:[init_plot_tables] from init_plot_tables init_plot_tables::@2 - [36] (byte) init_plot_tables::bits#3 ← phi( init_plot_tables/(byte/word/signed word/dword/signed dword) 128 init_plot_tables::@2/(byte) init_plot_tables::bits#4 ) + [36] (byte) init_plot_tables::bits#3 ← phi( init_plot_tables/(byte/word/signed word/dword/signed dword) $80 init_plot_tables::@2/(byte) init_plot_tables::bits#4 ) [36] (byte) init_plot_tables::x#2 ← phi( init_plot_tables/(byte/signed byte/word/signed word/dword/signed dword) 0 init_plot_tables::@2/(byte) init_plot_tables::x#1 ) - [37] (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word/dword/signed dword) 248 - [38] *((const byte[256]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 - [39] *((const byte[256]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← >(const byte*) BITMAP#0 - [40] *((const byte[256]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 + [37] (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word/dword/signed dword) $f8 + [38] *((const byte[$100]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 + [39] *((const byte[$100]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← >(const byte*) BITMAP#0 + [40] *((const byte[$100]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 [41] (byte) init_plot_tables::bits#1 ← (byte) init_plot_tables::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [42] if((byte) init_plot_tables::bits#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto init_plot_tables::@10 to:init_plot_tables::@2 init_plot_tables::@2: scope:[init_plot_tables] from init_plot_tables::@1 init_plot_tables::@10 - [43] (byte) init_plot_tables::bits#4 ← phi( init_plot_tables::@10/(byte) init_plot_tables::bits#1 init_plot_tables::@1/(byte/word/signed word/dword/signed dword) 128 ) + [43] (byte) init_plot_tables::bits#4 ← phi( init_plot_tables::@10/(byte) init_plot_tables::bits#1 init_plot_tables::@1/(byte/word/signed word/dword/signed dword) $80 ) [44] (byte) init_plot_tables::x#1 ← ++ (byte) init_plot_tables::x#2 [45] if((byte) init_plot_tables::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto init_plot_tables::@1 to:init_plot_tables::@3 @@ -816,14 +816,14 @@ init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@2 init_p [47] (byte~) init_plot_tables::$6 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [48] (byte~) init_plot_tables::$7 ← < (byte*) init_plot_tables::yoffs#2 [49] (byte~) init_plot_tables::$8 ← (byte~) init_plot_tables::$6 | (byte~) init_plot_tables::$7 - [50] *((const byte[256]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 + [50] *((const byte[$100]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 [51] (byte~) init_plot_tables::$9 ← > (byte*) init_plot_tables::yoffs#2 - [52] *((const byte[256]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 + [52] *((const byte[$100]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 [53] (byte~) init_plot_tables::$10 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [54] if((byte~) init_plot_tables::$10!=(byte/signed byte/word/signed word/dword/signed dword) 7) goto init_plot_tables::@4 to:init_plot_tables::@7 init_plot_tables::@7: scope:[init_plot_tables] from init_plot_tables::@3 - [55] (byte*) init_plot_tables::yoffs#1 ← (byte*) init_plot_tables::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 + [55] (byte*) init_plot_tables::yoffs#1 ← (byte*) init_plot_tables::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 to:init_plot_tables::@4 init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_plot_tables::@7 [56] (byte*) init_plot_tables::yoffs#4 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 init_plot_tables::@7/(byte*) init_plot_tables::yoffs#1 ) @@ -843,13 +843,13 @@ init_screen::@1: scope:[init_screen] from init_screen init_screen::@1 [62] (byte*) init_screen::b#2 ← phi( init_screen/(const byte*) BITMAP#0 init_screen::@1/(byte*) init_screen::b#1 ) [63] *((byte*) init_screen::b#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [64] (byte*) init_screen::b#1 ← ++ (byte*) init_screen::b#2 - [65] if((byte*) init_screen::b#1!=(const byte*) BITMAP#0+(word/signed word/dword/signed dword) 8192) goto init_screen::@1 + [65] if((byte*) init_screen::b#1!=(const byte*) BITMAP#0+(word/signed word/dword/signed dword) $2000) goto init_screen::@1 to:init_screen::@2 init_screen::@2: scope:[init_screen] from init_screen::@1 init_screen::@2 [66] (byte*) init_screen::c#2 ← phi( init_screen::@2/(byte*) init_screen::c#1 init_screen::@1/(const byte*) SCREEN#0 ) - [67] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) 20 + [67] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) $14 [68] (byte*) init_screen::c#1 ← ++ (byte*) init_screen::c#2 - [69] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1024) goto init_screen::@2 + [69] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $400) goto init_screen::@2 to:init_screen::@return init_screen::@return: scope:[init_screen] from init_screen::@2 [70] return @@ -920,11 +920,11 @@ VARIABLE REGISTER WEIGHTS (byte) plot::x#0 9.727272727272727 (byte) plot::y (byte) plot::y#0 15.000000000000002 -(byte[256]) plot_bit -(byte[256]) plot_xhi -(byte[256]) plot_xlo -(byte[256]) plot_yhi -(byte[256]) plot_ylo +(byte[$100]) plot_bit +(byte[$100]) plot_xhi +(byte[$100]) plot_xlo +(byte[$100]) plot_yhi +(byte[$100]) plot_ylo (void()) plots() (byte) plots::i (byte) plots::i#1 151.5 @@ -1054,7 +1054,7 @@ main: { //SEG12 [6] *((const byte*) D011#0) ← (const byte) BMM#0|(const byte) DEN#0|(const byte) RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #BMM|DEN|RSEL|3 sta D011 - //SEG13 [7] *((const byte*) D018#0) ← ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) BITMAP#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG13 [7] *((const byte*) D018#0) ← ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) BITMAP#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #SCREEN/$40|BITMAP/$400 sta D018 //SEG14 [8] call init_screen @@ -1073,7 +1073,7 @@ main: { jmp b2 //SEG20 main::@2 b2: - //SEG21 [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG21 [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b2 @@ -1148,7 +1148,7 @@ plot: { .label plotter_y = $15 .label plotter_y_2 = $18 .label plotter = $1a - //SEG43 [23] (byte~) plot::$6 ← *((const byte[256]) plot_xhi#0 + (byte) plot::x#0) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG43 [23] (byte~) plot::$6 ← *((const byte[$100]) plot_xhi#0 + (byte) plot::x#0) -- vbuz1=pbuc1_derefidx_vbuz2 ldy x lda plot_xhi,y sta _6 @@ -1157,7 +1157,7 @@ plot: { sta plotter_x+1 lda #<0 sta plotter_x - //SEG45 [25] (byte~) plot::$7 ← *((const byte[256]) plot_xlo#0 + (byte) plot::x#0) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG45 [25] (byte~) plot::$7 ← *((const byte[$100]) plot_xlo#0 + (byte) plot::x#0) -- vbuz1=pbuc1_derefidx_vbuz2 ldy x lda plot_xlo,y sta _7 @@ -1166,7 +1166,7 @@ plot: { sta plotter_x_2 lda plotter_x+1 sta plotter_x_2+1 - //SEG47 [27] (byte~) plot::$8 ← *((const byte[256]) plot_yhi#0 + (byte) plot::y#0) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG47 [27] (byte~) plot::$8 ← *((const byte[$100]) plot_yhi#0 + (byte) plot::y#0) -- vbuz1=pbuc1_derefidx_vbuz2 ldy y lda plot_yhi,y sta _8 @@ -1175,7 +1175,7 @@ plot: { sta plotter_y+1 lda #<0 sta plotter_y - //SEG49 [29] (byte~) plot::$9 ← *((const byte[256]) plot_ylo#0 + (byte) plot::y#0) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG49 [29] (byte~) plot::$9 ← *((const byte[$100]) plot_ylo#0 + (byte) plot::y#0) -- vbuz1=pbuc1_derefidx_vbuz2 ldy y lda plot_ylo,y sta _9 @@ -1192,7 +1192,7 @@ plot: { lda plotter_x_2+1 adc plotter_y_2+1 sta plotter+1 - //SEG52 [32] (byte~) plot::$5 ← *((byte*) plot::plotter#0) | *((const byte[256]) plot_bit#0 + (byte) plot::x#0) -- vbuz1=_deref_pbuz2_bor_pbuc1_derefidx_vbuz3 + //SEG52 [32] (byte~) plot::$5 ← *((byte*) plot::plotter#0) | *((const byte[$100]) plot_bit#0 + (byte) plot::x#0) -- vbuz1=_deref_pbuz2_bor_pbuc1_derefidx_vbuz3 ldy #0 lda (plotter),y ldy x @@ -1222,7 +1222,7 @@ init_plot_tables: { .label yoffs = 6 //SEG57 [36] phi from init_plot_tables to init_plot_tables::@1 [phi:init_plot_tables->init_plot_tables::@1] b1_from_init_plot_tables: - //SEG58 [36] phi (byte) init_plot_tables::bits#3 = (byte/word/signed word/dword/signed dword) 128 [phi:init_plot_tables->init_plot_tables::@1#0] -- vbuz1=vbuc1 + //SEG58 [36] phi (byte) init_plot_tables::bits#3 = (byte/word/signed word/dword/signed dword) $80 [phi:init_plot_tables->init_plot_tables::@1#0] -- vbuz1=vbuc1 lda #$80 sta bits //SEG59 [36] phi (byte) init_plot_tables::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init_plot_tables->init_plot_tables::@1#1] -- vbuz1=vbuc1 @@ -1236,19 +1236,19 @@ init_plot_tables: { jmp b1 //SEG63 init_plot_tables::@1 b1: - //SEG64 [37] (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word/dword/signed dword) 248 -- vbuz1=vbuz2_band_vbuc1 + //SEG64 [37] (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word/dword/signed dword) $f8 -- vbuz1=vbuz2_band_vbuc1 lda #$f8 and x sta _0 - //SEG65 [38] *((const byte[256]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG65 [38] *((const byte[$100]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 -- pbuc1_derefidx_vbuz1=vbuz2 lda _0 ldy x sta plot_xlo,y - //SEG66 [39] *((const byte[256]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← >(const byte*) BITMAP#0 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG66 [39] *((const byte[$100]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← >(const byte*) BITMAP#0 -- pbuc1_derefidx_vbuz1=vbuc2 ldy x lda #>BITMAP sta plot_xhi,y - //SEG67 [40] *((const byte[256]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG67 [40] *((const byte[$100]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 -- pbuc1_derefidx_vbuz1=vbuz2 lda bits ldy x sta plot_bit,y @@ -1260,7 +1260,7 @@ init_plot_tables: { bne b10_from_b1 //SEG70 [43] phi from init_plot_tables::@1 to init_plot_tables::@2 [phi:init_plot_tables::@1->init_plot_tables::@2] b2_from_b1: - //SEG71 [43] phi (byte) init_plot_tables::bits#4 = (byte/word/signed word/dword/signed dword) 128 [phi:init_plot_tables::@1->init_plot_tables::@2#0] -- vbuz1=vbuc1 + //SEG71 [43] phi (byte) init_plot_tables::bits#4 = (byte/word/signed word/dword/signed dword) $80 [phi:init_plot_tables::@1->init_plot_tables::@2#0] -- vbuz1=vbuc1 lda #$80 sta bits jmp b2 @@ -1301,14 +1301,14 @@ init_plot_tables: { lda _6 ora _7 sta _8 - //SEG85 [50] *((const byte[256]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG85 [50] *((const byte[$100]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 -- pbuc1_derefidx_vbuz1=vbuz2 lda _8 ldy y sta plot_ylo,y //SEG86 [51] (byte~) init_plot_tables::$9 ← > (byte*) init_plot_tables::yoffs#2 -- vbuz1=_hi_pbuz2 lda yoffs+1 sta _9 - //SEG87 [52] *((const byte[256]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG87 [52] *((const byte[$100]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 -- pbuc1_derefidx_vbuz1=vbuz2 lda _9 ldy y sta plot_yhi,y @@ -1323,7 +1323,7 @@ init_plot_tables: { jmp b7 //SEG90 init_plot_tables::@7 b7: - //SEG91 [55] (byte*) init_plot_tables::yoffs#1 ← (byte*) init_plot_tables::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 + //SEG91 [55] (byte*) init_plot_tables::yoffs#1 ← (byte*) init_plot_tables::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 clc lda yoffs adc #<$28*8 @@ -1386,7 +1386,7 @@ init_screen: { bne !+ inc b+1 !: - //SEG111 [65] if((byte*) init_screen::b#1!=(const byte*) BITMAP#0+(word/signed word/dword/signed dword) 8192) goto init_screen::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG111 [65] if((byte*) init_screen::b#1!=(const byte*) BITMAP#0+(word/signed word/dword/signed dword) $2000) goto init_screen::@1 -- pbuz1_neq_pbuc1_then_la1 lda b+1 cmp #>BITMAP+$2000 bne b1_from_b1 @@ -1407,7 +1407,7 @@ init_screen: { jmp b2 //SEG116 init_screen::@2 b2: - //SEG117 [67] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) 20 -- _deref_pbuz1=vbuc1 + //SEG117 [67] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) $14 -- _deref_pbuz1=vbuc1 lda #$14 ldy #0 sta (c),y @@ -1416,7 +1416,7 @@ init_screen: { bne !+ inc c+1 !: - //SEG119 [69] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1024) goto init_screen::@2 -- pbuz1_neq_pbuc1_then_la1 + //SEG119 [69] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $400) goto init_screen::@2 -- pbuz1_neq_pbuc1_then_la1 lda c+1 cmp #>SCREEN+$400 bne b2_from_b2 @@ -1442,50 +1442,50 @@ Equivalence Class zp ZP_BYTE:31 [ init_plot_tables::$7 ] has ALU potential. Statement [4] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [5] *((const byte*) FGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [6] *((const byte*) D011#0) ← (const byte) BMM#0|(const byte) DEN#0|(const byte) RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [7] *((const byte*) D018#0) ← ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) BITMAP#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [7] *((const byte*) D018#0) ← ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) BITMAP#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [26] (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$7 [ plot::x#0 plot::y#0 plot::plotter_x#2 ] ( main:2::plots:13::plot:19 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ plots::i#2 plots::i#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:12 [ plot::x#0 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:13 [ plot::y#0 ] Statement [30] (word) plot::plotter_y#2 ← (word) plot::plotter_y#1 lo= (byte~) plot::$9 [ plot::x#0 plot::plotter_x#2 plot::plotter_y#2 ] ( main:2::plots:13::plot:19 [ plots::i#2 plot::x#0 plot::plotter_x#2 plot::plotter_y#2 ] ) always clobbers reg byte a Statement [31] (byte*) plot::plotter#0 ← (byte*) plot::plotter_x#2 + (word) plot::plotter_y#2 [ plot::x#0 plot::plotter#0 ] ( main:2::plots:13::plot:19 [ plots::i#2 plot::x#0 plot::plotter#0 ] ) always clobbers reg byte a -Statement [32] (byte~) plot::$5 ← *((byte*) plot::plotter#0) | *((const byte[256]) plot_bit#0 + (byte) plot::x#0) [ plot::plotter#0 plot::$5 ] ( main:2::plots:13::plot:19 [ plots::i#2 plot::plotter#0 plot::$5 ] ) always clobbers reg byte a reg byte y +Statement [32] (byte~) plot::$5 ← *((byte*) plot::plotter#0) | *((const byte[$100]) plot_bit#0 + (byte) plot::x#0) [ plot::plotter#0 plot::$5 ] ( main:2::plots:13::plot:19 [ plots::i#2 plot::plotter#0 plot::$5 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ plots::i#2 plots::i#1 ] Statement [33] *((byte*) plot::plotter#0) ← (byte~) plot::$5 [ ] ( main:2::plots:13::plot:19 [ plots::i#2 ] ) always clobbers reg byte y -Statement [37] (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word/dword/signed dword) 248 [ init_plot_tables::x#2 init_plot_tables::bits#3 init_plot_tables::$0 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 init_plot_tables::$0 ] ) always clobbers reg byte a +Statement [37] (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word/dword/signed dword) $f8 [ init_plot_tables::x#2 init_plot_tables::bits#3 init_plot_tables::$0 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 init_plot_tables::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ init_plot_tables::x#2 init_plot_tables::x#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ init_plot_tables::bits#3 init_plot_tables::bits#4 init_plot_tables::bits#1 ] -Statement [39] *((const byte[256]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← >(const byte*) BITMAP#0 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ) always clobbers reg byte a -Statement [40] *((const byte[256]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ) always clobbers reg byte a +Statement [39] *((const byte[$100]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← >(const byte*) BITMAP#0 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ) always clobbers reg byte a +Statement [40] *((const byte[$100]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ) always clobbers reg byte a Statement [47] (byte~) init_plot_tables::$6 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ init_plot_tables::y#2 init_plot_tables::y#1 ] Statement [53] (byte~) init_plot_tables::$10 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$10 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$10 ] ) always clobbers reg byte a -Statement [55] (byte*) init_plot_tables::yoffs#1 ← (byte*) init_plot_tables::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] ) always clobbers reg byte a +Statement [55] (byte*) init_plot_tables::yoffs#1 ← (byte*) init_plot_tables::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] ) always clobbers reg byte a Statement [63] *((byte*) init_screen::b#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ init_screen::b#2 ] ( main:2::init_screen:8 [ init_screen::b#2 ] ) always clobbers reg byte a reg byte y -Statement [65] if((byte*) init_screen::b#1!=(const byte*) BITMAP#0+(word/signed word/dword/signed dword) 8192) goto init_screen::@1 [ init_screen::b#1 ] ( main:2::init_screen:8 [ init_screen::b#1 ] ) always clobbers reg byte a -Statement [67] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) 20 [ init_screen::c#2 ] ( main:2::init_screen:8 [ init_screen::c#2 ] ) always clobbers reg byte a reg byte y -Statement [69] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1024) goto init_screen::@2 [ init_screen::c#1 ] ( main:2::init_screen:8 [ init_screen::c#1 ] ) always clobbers reg byte a +Statement [65] if((byte*) init_screen::b#1!=(const byte*) BITMAP#0+(word/signed word/dword/signed dword) $2000) goto init_screen::@1 [ init_screen::b#1 ] ( main:2::init_screen:8 [ init_screen::b#1 ] ) always clobbers reg byte a +Statement [67] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) $14 [ init_screen::c#2 ] ( main:2::init_screen:8 [ init_screen::c#2 ] ) always clobbers reg byte a reg byte y +Statement [69] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $400) goto init_screen::@2 [ init_screen::c#1 ] ( main:2::init_screen:8 [ init_screen::c#1 ] ) always clobbers reg byte a Statement [4] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [5] *((const byte*) FGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [6] *((const byte*) D011#0) ← (const byte) BMM#0|(const byte) DEN#0|(const byte) RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [7] *((const byte*) D018#0) ← ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) BITMAP#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [7] *((const byte*) D018#0) ← ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) BITMAP#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [26] (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$7 [ plot::x#0 plot::y#0 plot::plotter_x#2 ] ( main:2::plots:13::plot:19 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#2 ] ) always clobbers reg byte a Statement [30] (word) plot::plotter_y#2 ← (word) plot::plotter_y#1 lo= (byte~) plot::$9 [ plot::x#0 plot::plotter_x#2 plot::plotter_y#2 ] ( main:2::plots:13::plot:19 [ plots::i#2 plot::x#0 plot::plotter_x#2 plot::plotter_y#2 ] ) always clobbers reg byte a Statement [31] (byte*) plot::plotter#0 ← (byte*) plot::plotter_x#2 + (word) plot::plotter_y#2 [ plot::x#0 plot::plotter#0 ] ( main:2::plots:13::plot:19 [ plots::i#2 plot::x#0 plot::plotter#0 ] ) always clobbers reg byte a -Statement [32] (byte~) plot::$5 ← *((byte*) plot::plotter#0) | *((const byte[256]) plot_bit#0 + (byte) plot::x#0) [ plot::plotter#0 plot::$5 ] ( main:2::plots:13::plot:19 [ plots::i#2 plot::plotter#0 plot::$5 ] ) always clobbers reg byte a reg byte y +Statement [32] (byte~) plot::$5 ← *((byte*) plot::plotter#0) | *((const byte[$100]) plot_bit#0 + (byte) plot::x#0) [ plot::plotter#0 plot::$5 ] ( main:2::plots:13::plot:19 [ plots::i#2 plot::plotter#0 plot::$5 ] ) always clobbers reg byte a reg byte y Statement [33] *((byte*) plot::plotter#0) ← (byte~) plot::$5 [ ] ( main:2::plots:13::plot:19 [ plots::i#2 ] ) always clobbers reg byte y -Statement [37] (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word/dword/signed dword) 248 [ init_plot_tables::x#2 init_plot_tables::bits#3 init_plot_tables::$0 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 init_plot_tables::$0 ] ) always clobbers reg byte a -Statement [39] *((const byte[256]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← >(const byte*) BITMAP#0 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ) always clobbers reg byte a -Statement [40] *((const byte[256]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ) always clobbers reg byte a +Statement [37] (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word/dword/signed dword) $f8 [ init_plot_tables::x#2 init_plot_tables::bits#3 init_plot_tables::$0 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 init_plot_tables::$0 ] ) always clobbers reg byte a +Statement [39] *((const byte[$100]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← >(const byte*) BITMAP#0 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ) always clobbers reg byte a +Statement [40] *((const byte[$100]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ) always clobbers reg byte a Statement [47] (byte~) init_plot_tables::$6 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 ] ) always clobbers reg byte a Statement [53] (byte~) init_plot_tables::$10 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$10 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$10 ] ) always clobbers reg byte a -Statement [55] (byte*) init_plot_tables::yoffs#1 ← (byte*) init_plot_tables::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] ) always clobbers reg byte a +Statement [55] (byte*) init_plot_tables::yoffs#1 ← (byte*) init_plot_tables::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] ) always clobbers reg byte a Statement [63] *((byte*) init_screen::b#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ init_screen::b#2 ] ( main:2::init_screen:8 [ init_screen::b#2 ] ) always clobbers reg byte a reg byte y -Statement [65] if((byte*) init_screen::b#1!=(const byte*) BITMAP#0+(word/signed word/dword/signed dword) 8192) goto init_screen::@1 [ init_screen::b#1 ] ( main:2::init_screen:8 [ init_screen::b#1 ] ) always clobbers reg byte a -Statement [67] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) 20 [ init_screen::c#2 ] ( main:2::init_screen:8 [ init_screen::c#2 ] ) always clobbers reg byte a reg byte y -Statement [69] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1024) goto init_screen::@2 [ init_screen::c#1 ] ( main:2::init_screen:8 [ init_screen::c#1 ] ) always clobbers reg byte a +Statement [65] if((byte*) init_screen::b#1!=(const byte*) BITMAP#0+(word/signed word/dword/signed dword) $2000) goto init_screen::@1 [ init_screen::b#1 ] ( main:2::init_screen:8 [ init_screen::b#1 ] ) always clobbers reg byte a +Statement [67] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) $14 [ init_screen::c#2 ] ( main:2::init_screen:8 [ init_screen::c#2 ] ) always clobbers reg byte a reg byte y +Statement [69] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $400) goto init_screen::@2 [ init_screen::c#1 ] ( main:2::init_screen:8 [ init_screen::c#1 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ plots::i#2 plots::i#1 ] : zp ZP_BYTE:2 , reg byte x , Potential registers zp ZP_BYTE:3 [ init_plot_tables::x#2 init_plot_tables::x#1 ] : zp ZP_BYTE:3 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:4 [ init_plot_tables::bits#3 init_plot_tables::bits#4 init_plot_tables::bits#1 ] : zp ZP_BYTE:4 , reg byte x , reg byte y , @@ -1603,7 +1603,7 @@ main: { //SEG12 [6] *((const byte*) D011#0) ← (const byte) BMM#0|(const byte) DEN#0|(const byte) RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #BMM|DEN|RSEL|3 sta D011 - //SEG13 [7] *((const byte*) D018#0) ← ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) BITMAP#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG13 [7] *((const byte*) D018#0) ← ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) BITMAP#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #SCREEN/$40|BITMAP/$400 sta D018 //SEG14 [8] call init_screen @@ -1622,7 +1622,7 @@ main: { jmp b2 //SEG20 main::@2 b2: - //SEG21 [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG21 [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b2 @@ -1685,26 +1685,26 @@ plot: { .label plotter_x = 2 .label plotter_y = 6 .label plotter = 2 - //SEG43 [23] (byte~) plot::$6 ← *((const byte[256]) plot_xhi#0 + (byte) plot::x#0) -- vbuaa=pbuc1_derefidx_vbuz1 + //SEG43 [23] (byte~) plot::$6 ← *((const byte[$100]) plot_xhi#0 + (byte) plot::x#0) -- vbuaa=pbuc1_derefidx_vbuz1 ldy x lda plot_xhi,y //SEG44 [24] (byte*) plot::plotter_x#1 ← ((byte*))(byte/signed byte/word/signed word/dword/signed dword) 0 hi= (byte~) plot::$6 -- pbuz1=pbuc1_sethi_vbuaa sta plotter_x+1 lda #<0 sta plotter_x - //SEG45 [25] (byte~) plot::$7 ← *((const byte[256]) plot_xlo#0 + (byte) plot::x#0) -- vbuaa=pbuc1_derefidx_vbuz1 + //SEG45 [25] (byte~) plot::$7 ← *((const byte[$100]) plot_xlo#0 + (byte) plot::x#0) -- vbuaa=pbuc1_derefidx_vbuz1 ldy x lda plot_xlo,y //SEG46 [26] (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$7 -- pbuz1=pbuz1_setlo_vbuaa sta plotter_x - //SEG47 [27] (byte~) plot::$8 ← *((const byte[256]) plot_yhi#0 + (byte) plot::y#0) -- vbuaa=pbuc1_derefidx_vbuz1 + //SEG47 [27] (byte~) plot::$8 ← *((const byte[$100]) plot_yhi#0 + (byte) plot::y#0) -- vbuaa=pbuc1_derefidx_vbuz1 ldy y lda plot_yhi,y //SEG48 [28] (word) plot::plotter_y#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 hi= (byte~) plot::$8 -- vwuz1=vbuc1_sethi_vbuaa sta plotter_y+1 lda #<0 sta plotter_y - //SEG49 [29] (byte~) plot::$9 ← *((const byte[256]) plot_ylo#0 + (byte) plot::y#0) -- vbuaa=pbuc1_derefidx_vbuz1 + //SEG49 [29] (byte~) plot::$9 ← *((const byte[$100]) plot_ylo#0 + (byte) plot::y#0) -- vbuaa=pbuc1_derefidx_vbuz1 ldy y lda plot_ylo,y //SEG50 [30] (word) plot::plotter_y#2 ← (word) plot::plotter_y#1 lo= (byte~) plot::$9 -- vwuz1=vwuz1_setlo_vbuaa @@ -1717,7 +1717,7 @@ plot: { lda plotter+1 adc plotter_y+1 sta plotter+1 - //SEG52 [32] (byte~) plot::$5 ← *((byte*) plot::plotter#0) | *((const byte[256]) plot_bit#0 + (byte) plot::x#0) -- vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2 + //SEG52 [32] (byte~) plot::$5 ← *((byte*) plot::plotter#0) | *((const byte[$100]) plot_bit#0 + (byte) plot::x#0) -- vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2 ldy #0 lda (plotter),y ldy x @@ -1737,7 +1737,7 @@ init_plot_tables: { .label yoffs = 2 //SEG57 [36] phi from init_plot_tables to init_plot_tables::@1 [phi:init_plot_tables->init_plot_tables::@1] b1_from_init_plot_tables: - //SEG58 [36] phi (byte) init_plot_tables::bits#3 = (byte/word/signed word/dword/signed dword) 128 [phi:init_plot_tables->init_plot_tables::@1#0] -- vbuyy=vbuc1 + //SEG58 [36] phi (byte) init_plot_tables::bits#3 = (byte/word/signed word/dword/signed dword) $80 [phi:init_plot_tables->init_plot_tables::@1#0] -- vbuyy=vbuc1 ldy #$80 //SEG59 [36] phi (byte) init_plot_tables::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init_plot_tables->init_plot_tables::@1#1] -- vbuxx=vbuc1 ldx #0 @@ -1749,15 +1749,15 @@ init_plot_tables: { jmp b1 //SEG63 init_plot_tables::@1 b1: - //SEG64 [37] (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word/dword/signed dword) 248 -- vbuaa=vbuxx_band_vbuc1 + //SEG64 [37] (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word/dword/signed dword) $f8 -- vbuaa=vbuxx_band_vbuc1 txa and #$f8 - //SEG65 [38] *((const byte[256]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG65 [38] *((const byte[$100]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 -- pbuc1_derefidx_vbuxx=vbuaa sta plot_xlo,x - //SEG66 [39] *((const byte[256]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← >(const byte*) BITMAP#0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG66 [39] *((const byte[$100]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← >(const byte*) BITMAP#0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #>BITMAP sta plot_xhi,x - //SEG67 [40] *((const byte[256]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 -- pbuc1_derefidx_vbuxx=vbuyy + //SEG67 [40] *((const byte[$100]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 -- pbuc1_derefidx_vbuxx=vbuyy tya sta plot_bit,x //SEG68 [41] (byte) init_plot_tables::bits#1 ← (byte) init_plot_tables::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuyy_ror_1 @@ -1769,7 +1769,7 @@ init_plot_tables: { bne b10_from_b1 //SEG70 [43] phi from init_plot_tables::@1 to init_plot_tables::@2 [phi:init_plot_tables::@1->init_plot_tables::@2] b2_from_b1: - //SEG71 [43] phi (byte) init_plot_tables::bits#4 = (byte/word/signed word/dword/signed dword) 128 [phi:init_plot_tables::@1->init_plot_tables::@2#0] -- vbuyy=vbuc1 + //SEG71 [43] phi (byte) init_plot_tables::bits#4 = (byte/word/signed word/dword/signed dword) $80 [phi:init_plot_tables::@1->init_plot_tables::@2#0] -- vbuyy=vbuc1 ldy #$80 jmp b2 //SEG72 init_plot_tables::@2 @@ -1804,11 +1804,11 @@ init_plot_tables: { lda yoffs //SEG84 [49] (byte~) init_plot_tables::$8 ← (byte~) init_plot_tables::$6 | (byte~) init_plot_tables::$7 -- vbuaa=vbuz1_bor_vbuaa ora _6 - //SEG85 [50] *((const byte[256]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG85 [50] *((const byte[$100]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 -- pbuc1_derefidx_vbuxx=vbuaa sta plot_ylo,x //SEG86 [51] (byte~) init_plot_tables::$9 ← > (byte*) init_plot_tables::yoffs#2 -- vbuaa=_hi_pbuz1 lda yoffs+1 - //SEG87 [52] *((const byte[256]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG87 [52] *((const byte[$100]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 -- pbuc1_derefidx_vbuxx=vbuaa sta plot_yhi,x //SEG88 [53] (byte~) init_plot_tables::$10 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuxx_band_vbuc1 txa @@ -1819,7 +1819,7 @@ init_plot_tables: { jmp b7 //SEG90 init_plot_tables::@7 b7: - //SEG91 [55] (byte*) init_plot_tables::yoffs#1 ← (byte*) init_plot_tables::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 + //SEG91 [55] (byte*) init_plot_tables::yoffs#1 ← (byte*) init_plot_tables::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 clc lda yoffs adc #<$28*8 @@ -1881,7 +1881,7 @@ init_screen: { bne !+ inc b+1 !: - //SEG111 [65] if((byte*) init_screen::b#1!=(const byte*) BITMAP#0+(word/signed word/dword/signed dword) 8192) goto init_screen::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG111 [65] if((byte*) init_screen::b#1!=(const byte*) BITMAP#0+(word/signed word/dword/signed dword) $2000) goto init_screen::@1 -- pbuz1_neq_pbuc1_then_la1 lda b+1 cmp #>BITMAP+$2000 bne b1_from_b1 @@ -1902,7 +1902,7 @@ init_screen: { jmp b2 //SEG116 init_screen::@2 b2: - //SEG117 [67] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) 20 -- _deref_pbuz1=vbuc1 + //SEG117 [67] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) $14 -- _deref_pbuz1=vbuc1 lda #$14 ldy #0 sta (c),y @@ -1911,7 +1911,7 @@ init_screen: { bne !+ inc c+1 !: - //SEG119 [69] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1024) goto init_screen::@2 -- pbuz1_neq_pbuc1_then_la1 + //SEG119 [69] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $400) goto init_screen::@2 -- pbuz1_neq_pbuc1_then_la1 lda c+1 cmp #>SCREEN+$400 bne b2_from_b2 @@ -2026,31 +2026,31 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d020 (byte*) BITMAP -(const byte*) BITMAP#0 BITMAP = ((byte*))(word/signed word/dword/signed dword) 8192 +(const byte*) BITMAP#0 BITMAP = ((byte*))(word/signed word/dword/signed dword) $2000 (byte) BMM -(const byte) BMM#0 BMM = (byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte) BMM#0 BMM = (byte/signed byte/word/signed word/dword/signed dword) $20 (byte*) COLS (byte) CSEL (byte*) D011 -(const byte*) D011#0 D011 = ((byte*))(word/dword/signed dword) 53265 +(const byte*) D011#0 D011 = ((byte*))(word/dword/signed dword) $d011 (byte*) D016 (byte*) D018 -(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) 53272 +(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) $d018 (byte) DEN -(const byte) DEN#0 DEN = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) DEN#0 DEN = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) ECM (byte*) FGCOL -(const byte*) FGCOL#0 FGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) FGCOL#0 FGCOL = ((byte*))(word/dword/signed dword) $d021 (byte) MCM (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RSEL (const byte) RSEL#0 RSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) RST8 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) init_plot_tables() (byte~) init_plot_tables::$0 reg byte a 22.0 (byte~) init_plot_tables::$10 reg byte a 22.0 @@ -2113,16 +2113,16 @@ FINAL SYMBOL TABLE (byte) plot::x#0 x zp ZP_BYTE:4 9.727272727272727 (byte) plot::y (byte) plot::y#0 y zp ZP_BYTE:5 15.000000000000002 -(byte[256]) plot_bit -(const byte[256]) plot_bit#0 plot_bit = { fill( 256, 0) } -(byte[256]) plot_xhi -(const byte[256]) plot_xhi#0 plot_xhi = { fill( 256, 0) } -(byte[256]) plot_xlo -(const byte[256]) plot_xlo#0 plot_xlo = { fill( 256, 0) } -(byte[256]) plot_yhi -(const byte[256]) plot_yhi#0 plot_yhi = { fill( 256, 0) } -(byte[256]) plot_ylo -(const byte[256]) plot_ylo#0 plot_ylo = { fill( 256, 0) } +(byte[$100]) plot_bit +(const byte[$100]) plot_bit#0 plot_bit = { fill( $100, 0) } +(byte[$100]) plot_xhi +(const byte[$100]) plot_xhi#0 plot_xhi = { fill( $100, 0) } +(byte[$100]) plot_xlo +(const byte[$100]) plot_xlo#0 plot_xlo = { fill( $100, 0) } +(byte[$100]) plot_yhi +(const byte[$100]) plot_yhi#0 plot_yhi = { fill( $100, 0) } +(byte[$100]) plot_ylo +(const byte[$100]) plot_ylo#0 plot_ylo = { fill( $100, 0) } (void()) plots() (label) plots::@1 (label) plots::@3 @@ -2133,9 +2133,9 @@ FINAL SYMBOL TABLE (byte) plots_cnt (const byte) plots_cnt#0 plots_cnt = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte[]) plots_x -(const byte[]) plots_x#0 plots_x = { (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 80, (byte/signed byte/word/signed word/dword/signed dword) 110, (byte/signed byte/word/signed word/dword/signed dword) 80, (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 40, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 40 } +(const byte[]) plots_x#0 plots_x = { (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $50, (byte/signed byte/word/signed word/dword/signed dword) $6e, (byte/signed byte/word/signed word/dword/signed dword) $50, (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $28, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $28 } (byte[]) plots_y -(const byte[]) plots_y#0 plots_y = { (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 40, (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 80, (byte/signed byte/word/signed word/dword/signed dword) 110, (byte/signed byte/word/signed word/dword/signed dword) 80, (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 40 } +(const byte[]) plots_y#0 plots_y = { (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $28, (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $50, (byte/signed byte/word/signed word/dword/signed dword) $6e, (byte/signed byte/word/signed word/dword/signed dword) $50, (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $28 } reg byte x [ plots::i#2 plots::i#1 ] reg byte x [ init_plot_tables::x#2 init_plot_tables::x#1 ] @@ -2193,7 +2193,7 @@ main: { //SEG12 [6] *((const byte*) D011#0) ← (const byte) BMM#0|(const byte) DEN#0|(const byte) RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #BMM|DEN|RSEL|3 sta D011 - //SEG13 [7] *((const byte*) D018#0) ← ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) BITMAP#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG13 [7] *((const byte*) D018#0) ← ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) BITMAP#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #SCREEN/$40|BITMAP/$400 sta D018 //SEG14 [8] call init_screen @@ -2206,7 +2206,7 @@ main: { jsr init_plot_tables //SEG20 main::@2 b2: - //SEG21 [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG21 [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b2 @@ -2256,25 +2256,25 @@ plot: { .label plotter_x = 2 .label plotter_y = 6 .label plotter = 2 - //SEG43 [23] (byte~) plot::$6 ← *((const byte[256]) plot_xhi#0 + (byte) plot::x#0) -- vbuaa=pbuc1_derefidx_vbuz1 + //SEG43 [23] (byte~) plot::$6 ← *((const byte[$100]) plot_xhi#0 + (byte) plot::x#0) -- vbuaa=pbuc1_derefidx_vbuz1 ldy x lda plot_xhi,y //SEG44 [24] (byte*) plot::plotter_x#1 ← ((byte*))(byte/signed byte/word/signed word/dword/signed dword) 0 hi= (byte~) plot::$6 -- pbuz1=pbuc1_sethi_vbuaa sta plotter_x+1 lda #<0 sta plotter_x - //SEG45 [25] (byte~) plot::$7 ← *((const byte[256]) plot_xlo#0 + (byte) plot::x#0) -- vbuaa=pbuc1_derefidx_vbuz1 + //SEG45 [25] (byte~) plot::$7 ← *((const byte[$100]) plot_xlo#0 + (byte) plot::x#0) -- vbuaa=pbuc1_derefidx_vbuz1 lda plot_xlo,y //SEG46 [26] (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$7 -- pbuz1=pbuz1_setlo_vbuaa sta plotter_x - //SEG47 [27] (byte~) plot::$8 ← *((const byte[256]) plot_yhi#0 + (byte) plot::y#0) -- vbuaa=pbuc1_derefidx_vbuz1 + //SEG47 [27] (byte~) plot::$8 ← *((const byte[$100]) plot_yhi#0 + (byte) plot::y#0) -- vbuaa=pbuc1_derefidx_vbuz1 ldy y lda plot_yhi,y //SEG48 [28] (word) plot::plotter_y#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 hi= (byte~) plot::$8 -- vwuz1=vbuc1_sethi_vbuaa sta plotter_y+1 lda #<0 sta plotter_y - //SEG49 [29] (byte~) plot::$9 ← *((const byte[256]) plot_ylo#0 + (byte) plot::y#0) -- vbuaa=pbuc1_derefidx_vbuz1 + //SEG49 [29] (byte~) plot::$9 ← *((const byte[$100]) plot_ylo#0 + (byte) plot::y#0) -- vbuaa=pbuc1_derefidx_vbuz1 lda plot_ylo,y //SEG50 [30] (word) plot::plotter_y#2 ← (word) plot::plotter_y#1 lo= (byte~) plot::$9 -- vwuz1=vwuz1_setlo_vbuaa sta plotter_y @@ -2286,7 +2286,7 @@ plot: { lda plotter+1 adc plotter_y+1 sta plotter+1 - //SEG52 [32] (byte~) plot::$5 ← *((byte*) plot::plotter#0) | *((const byte[256]) plot_bit#0 + (byte) plot::x#0) -- vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2 + //SEG52 [32] (byte~) plot::$5 ← *((byte*) plot::plotter#0) | *((const byte[$100]) plot_bit#0 + (byte) plot::x#0) -- vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2 ldy #0 lda (plotter),y ldy x @@ -2303,7 +2303,7 @@ init_plot_tables: { .label _6 = 4 .label yoffs = 2 //SEG57 [36] phi from init_plot_tables to init_plot_tables::@1 [phi:init_plot_tables->init_plot_tables::@1] - //SEG58 [36] phi (byte) init_plot_tables::bits#3 = (byte/word/signed word/dword/signed dword) 128 [phi:init_plot_tables->init_plot_tables::@1#0] -- vbuyy=vbuc1 + //SEG58 [36] phi (byte) init_plot_tables::bits#3 = (byte/word/signed word/dword/signed dword) $80 [phi:init_plot_tables->init_plot_tables::@1#0] -- vbuyy=vbuc1 ldy #$80 //SEG59 [36] phi (byte) init_plot_tables::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init_plot_tables->init_plot_tables::@1#1] -- vbuxx=vbuc1 ldx #0 @@ -2312,15 +2312,15 @@ init_plot_tables: { //SEG62 [36] phi (byte) init_plot_tables::x#2 = (byte) init_plot_tables::x#1 [phi:init_plot_tables::@2->init_plot_tables::@1#1] -- register_copy //SEG63 init_plot_tables::@1 b1: - //SEG64 [37] (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word/dword/signed dword) 248 -- vbuaa=vbuxx_band_vbuc1 + //SEG64 [37] (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word/dword/signed dword) $f8 -- vbuaa=vbuxx_band_vbuc1 txa and #$f8 - //SEG65 [38] *((const byte[256]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG65 [38] *((const byte[$100]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 -- pbuc1_derefidx_vbuxx=vbuaa sta plot_xlo,x - //SEG66 [39] *((const byte[256]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← >(const byte*) BITMAP#0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG66 [39] *((const byte[$100]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← >(const byte*) BITMAP#0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #>BITMAP sta plot_xhi,x - //SEG67 [40] *((const byte[256]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 -- pbuc1_derefidx_vbuxx=vbuyy + //SEG67 [40] *((const byte[$100]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 -- pbuc1_derefidx_vbuxx=vbuyy tya sta plot_bit,x //SEG68 [41] (byte) init_plot_tables::bits#1 ← (byte) init_plot_tables::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuyy_ror_1 @@ -2331,7 +2331,7 @@ init_plot_tables: { cpy #0 bne b2 //SEG70 [43] phi from init_plot_tables::@1 to init_plot_tables::@2 [phi:init_plot_tables::@1->init_plot_tables::@2] - //SEG71 [43] phi (byte) init_plot_tables::bits#4 = (byte/word/signed word/dword/signed dword) 128 [phi:init_plot_tables::@1->init_plot_tables::@2#0] -- vbuyy=vbuc1 + //SEG71 [43] phi (byte) init_plot_tables::bits#4 = (byte/word/signed word/dword/signed dword) $80 [phi:init_plot_tables::@1->init_plot_tables::@2#0] -- vbuyy=vbuc1 ldy #$80 //SEG72 init_plot_tables::@2 b2: @@ -2360,11 +2360,11 @@ init_plot_tables: { lda yoffs //SEG84 [49] (byte~) init_plot_tables::$8 ← (byte~) init_plot_tables::$6 | (byte~) init_plot_tables::$7 -- vbuaa=vbuz1_bor_vbuaa ora _6 - //SEG85 [50] *((const byte[256]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG85 [50] *((const byte[$100]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 -- pbuc1_derefidx_vbuxx=vbuaa sta plot_ylo,x //SEG86 [51] (byte~) init_plot_tables::$9 ← > (byte*) init_plot_tables::yoffs#2 -- vbuaa=_hi_pbuz1 lda yoffs+1 - //SEG87 [52] *((const byte[256]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG87 [52] *((const byte[$100]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 -- pbuc1_derefidx_vbuxx=vbuaa sta plot_yhi,x //SEG88 [53] (byte~) init_plot_tables::$10 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuxx_band_vbuc1 txa @@ -2373,7 +2373,7 @@ init_plot_tables: { cmp #7 bne b4 //SEG90 init_plot_tables::@7 - //SEG91 [55] (byte*) init_plot_tables::yoffs#1 ← (byte*) init_plot_tables::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 + //SEG91 [55] (byte*) init_plot_tables::yoffs#1 ← (byte*) init_plot_tables::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 clc lda yoffs adc #<$28*8 @@ -2421,7 +2421,7 @@ init_screen: { bne !+ inc b+1 !: - //SEG111 [65] if((byte*) init_screen::b#1!=(const byte*) BITMAP#0+(word/signed word/dword/signed dword) 8192) goto init_screen::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG111 [65] if((byte*) init_screen::b#1!=(const byte*) BITMAP#0+(word/signed word/dword/signed dword) $2000) goto init_screen::@1 -- pbuz1_neq_pbuc1_then_la1 lda b+1 cmp #>BITMAP+$2000 bne b1 @@ -2438,7 +2438,7 @@ init_screen: { //SEG115 [66] phi (byte*) init_screen::c#2 = (byte*) init_screen::c#1 [phi:init_screen::@2->init_screen::@2#0] -- register_copy //SEG116 init_screen::@2 b2: - //SEG117 [67] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) 20 -- _deref_pbuz1=vbuc1 + //SEG117 [67] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) $14 -- _deref_pbuz1=vbuc1 lda #$14 ldy #0 sta (c),y @@ -2447,7 +2447,7 @@ init_screen: { bne !+ inc c+1 !: - //SEG119 [69] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1024) goto init_screen::@2 -- pbuz1_neq_pbuc1_then_la1 + //SEG119 [69] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $400) goto init_screen::@2 -- pbuz1_neq_pbuc1_then_la1 lda c+1 cmp #>SCREEN+$400 bne b2 diff --git a/src/test/ref/bitmap-plotter.sym b/src/test/ref/bitmap-plotter.sym index 11ee2b869..1de0b5f49 100644 --- a/src/test/ref/bitmap-plotter.sym +++ b/src/test/ref/bitmap-plotter.sym @@ -2,31 +2,31 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d020 (byte*) BITMAP -(const byte*) BITMAP#0 BITMAP = ((byte*))(word/signed word/dword/signed dword) 8192 +(const byte*) BITMAP#0 BITMAP = ((byte*))(word/signed word/dword/signed dword) $2000 (byte) BMM -(const byte) BMM#0 BMM = (byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte) BMM#0 BMM = (byte/signed byte/word/signed word/dword/signed dword) $20 (byte*) COLS (byte) CSEL (byte*) D011 -(const byte*) D011#0 D011 = ((byte*))(word/dword/signed dword) 53265 +(const byte*) D011#0 D011 = ((byte*))(word/dword/signed dword) $d011 (byte*) D016 (byte*) D018 -(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) 53272 +(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) $d018 (byte) DEN -(const byte) DEN#0 DEN = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) DEN#0 DEN = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) ECM (byte*) FGCOL -(const byte*) FGCOL#0 FGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) FGCOL#0 FGCOL = ((byte*))(word/dword/signed dword) $d021 (byte) MCM (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RSEL (const byte) RSEL#0 RSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) RST8 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) init_plot_tables() (byte~) init_plot_tables::$0 reg byte a 22.0 (byte~) init_plot_tables::$10 reg byte a 22.0 @@ -89,16 +89,16 @@ (byte) plot::x#0 x zp ZP_BYTE:4 9.727272727272727 (byte) plot::y (byte) plot::y#0 y zp ZP_BYTE:5 15.000000000000002 -(byte[256]) plot_bit -(const byte[256]) plot_bit#0 plot_bit = { fill( 256, 0) } -(byte[256]) plot_xhi -(const byte[256]) plot_xhi#0 plot_xhi = { fill( 256, 0) } -(byte[256]) plot_xlo -(const byte[256]) plot_xlo#0 plot_xlo = { fill( 256, 0) } -(byte[256]) plot_yhi -(const byte[256]) plot_yhi#0 plot_yhi = { fill( 256, 0) } -(byte[256]) plot_ylo -(const byte[256]) plot_ylo#0 plot_ylo = { fill( 256, 0) } +(byte[$100]) plot_bit +(const byte[$100]) plot_bit#0 plot_bit = { fill( $100, 0) } +(byte[$100]) plot_xhi +(const byte[$100]) plot_xhi#0 plot_xhi = { fill( $100, 0) } +(byte[$100]) plot_xlo +(const byte[$100]) plot_xlo#0 plot_xlo = { fill( $100, 0) } +(byte[$100]) plot_yhi +(const byte[$100]) plot_yhi#0 plot_yhi = { fill( $100, 0) } +(byte[$100]) plot_ylo +(const byte[$100]) plot_ylo#0 plot_ylo = { fill( $100, 0) } (void()) plots() (label) plots::@1 (label) plots::@3 @@ -109,9 +109,9 @@ (byte) plots_cnt (const byte) plots_cnt#0 plots_cnt = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte[]) plots_x -(const byte[]) plots_x#0 plots_x = { (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 80, (byte/signed byte/word/signed word/dword/signed dword) 110, (byte/signed byte/word/signed word/dword/signed dword) 80, (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 40, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 40 } +(const byte[]) plots_x#0 plots_x = { (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $50, (byte/signed byte/word/signed word/dword/signed dword) $6e, (byte/signed byte/word/signed word/dword/signed dword) $50, (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $28, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $28 } (byte[]) plots_y -(const byte[]) plots_y#0 plots_y = { (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 40, (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 80, (byte/signed byte/word/signed word/dword/signed dword) 110, (byte/signed byte/word/signed word/dword/signed dword) 80, (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 40 } +(const byte[]) plots_y#0 plots_y = { (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $28, (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $50, (byte/signed byte/word/signed word/dword/signed dword) $6e, (byte/signed byte/word/signed word/dword/signed dword) $50, (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $28 } reg byte x [ plots::i#2 plots::i#1 ] reg byte x [ init_plot_tables::x#2 init_plot_tables::x#1 ] diff --git a/src/test/ref/bitwise-not.cfg b/src/test/ref/bitwise-not.cfg index 45d448d93..47ddddea5 100644 --- a/src/test/ref/bitwise-not.cfg +++ b/src/test/ref/bitwise-not.cfg @@ -15,7 +15,7 @@ main::@1: scope:[main] from main main::@1 [6] (byte~) main::$1 ← ~ (byte) main::c#2 [7] *((const byte*) main::SCREEN#0 + (byte) main::c#2) ← (byte~) main::$1 [8] (byte) main::c#1 ← ++ (byte) main::c#2 - [9] if((byte) main::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 27) goto main::@1 + [9] if((byte) main::c#1!=(byte/signed byte/word/signed word/dword/signed dword) $1b) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [10] return diff --git a/src/test/ref/bitwise-not.log b/src/test/ref/bitwise-not.log index 5d71222a6..21d3ae484 100644 --- a/src/test/ref/bitwise-not.log +++ b/src/test/ref/bitwise-not.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← ~ (byte/signed byte/word/signed word/dword/signed dword) 1 *((byte*) main::SCREEN#0) ← (byte/signed byte/word/signed word/dword/signed dword~) main::$0 (byte) main::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -13,8 +13,8 @@ main::@1: scope:[main] from main main::@1 (byte) main::c#2 ← phi( main/(byte) main::c#0 main::@1/(byte) main::c#1 ) (byte~) main::$1 ← ~ (byte) main::c#2 *((byte*) main::SCREEN#1 + (byte) main::c#2) ← (byte~) main::$1 - (byte) main::c#1 ← (byte) main::c#2 + rangenext(1,26) - (bool~) main::$2 ← (byte) main::c#1 != rangelast(1,26) + (byte) main::c#1 ← (byte) main::c#2 + rangenext(1,$1a) + (bool~) main::$2 ← (byte) main::c#1 != rangelast(1,$1a) if((bool~) main::$2) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 @@ -52,14 +52,14 @@ Self Phi Eliminated (byte*) main::SCREEN#1 Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) main::SCREEN#1 (byte*) main::SCREEN#0 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$2 [9] if((byte) main::c#1!=rangelast(1,26)) goto main::@1 +Simple Condition (bool~) main::$2 [9] if((byte) main::c#1!=rangelast(1,$1a)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) main::SCREEN#0 = ((byte*))1024 +Constant (const byte*) main::SCREEN#0 = ((byte*))$400 Constant (const byte/signed byte/word/signed word/dword/signed dword) main::$0 = ~1 Constant (const byte) main::c#0 = 1 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::c#1 ← ++ main::c#2 to ++ -Resolved ranged comparison value if(main::c#1!=rangelast(1,26)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 27 +Resolved ranged comparison value if(main::c#1!=rangelast(1,$1a)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $1b Inlining constant with var siblings (const byte) main::c#0 Constant inlined main::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined main::$0 = ~(byte/signed byte/word/signed word/dword/signed dword) 1 @@ -97,7 +97,7 @@ main::@1: scope:[main] from main main::@1 [6] (byte~) main::$1 ← ~ (byte) main::c#2 [7] *((const byte*) main::SCREEN#0 + (byte) main::c#2) ← (byte~) main::$1 [8] (byte) main::c#1 ← ++ (byte) main::c#2 - [9] if((byte) main::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 27) goto main::@1 + [9] if((byte) main::c#1!=(byte/signed byte/word/signed word/dword/signed dword) $1b) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [10] return @@ -172,7 +172,7 @@ main: { sta SCREEN,y //SEG18 [8] (byte) main::c#1 ← ++ (byte) main::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG19 [9] if((byte) main::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 27) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG19 [9] if((byte) main::c#1!=(byte/signed byte/word/signed word/dword/signed dword) $1b) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #$1b bne b1_from_b1 @@ -244,7 +244,7 @@ main: { sta SCREEN,x //SEG18 [8] (byte) main::c#1 ← ++ (byte) main::c#2 -- vbuxx=_inc_vbuxx inx - //SEG19 [9] if((byte) main::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 27) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG19 [9] if((byte) main::c#1!=(byte/signed byte/word/signed word/dword/signed dword) $1b) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$1b bne b1_from_b1 jmp breturn @@ -287,7 +287,7 @@ FINAL SYMBOL TABLE (label) main::@1 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::c (byte) main::c#1 reg byte x 16.5 (byte) main::c#2 reg byte x 14.666666666666666 @@ -331,7 +331,7 @@ main: { sta SCREEN,x //SEG18 [8] (byte) main::c#1 ← ++ (byte) main::c#2 -- vbuxx=_inc_vbuxx inx - //SEG19 [9] if((byte) main::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 27) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG19 [9] if((byte) main::c#1!=(byte/signed byte/word/signed word/dword/signed dword) $1b) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$1b bne b1 //SEG20 main::@return diff --git a/src/test/ref/bitwise-not.sym b/src/test/ref/bitwise-not.sym index b163ad7e8..1d64f34ef 100644 --- a/src/test/ref/bitwise-not.sym +++ b/src/test/ref/bitwise-not.sym @@ -6,7 +6,7 @@ (label) main::@1 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::c (byte) main::c#1 reg byte x 16.5 (byte) main::c#2 reg byte x 14.666666666666666 diff --git a/src/test/ref/bool-const.log b/src/test/ref/bool-const.log index ae0c5f896..04e6385bb 100644 --- a/src/test/ref/bool-const.log +++ b/src/test/ref/bool-const.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@4 main: scope:[main] from @4 call bool_const_if @@ -31,13 +31,13 @@ bool_const_if::@return: scope:[bool_const_if] from bool_const_if::@1 bool_const return to:@return bool_const_vars: scope:[bool_const_vars] from main::@1 - (byte) bool_const_vars::a#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (bool~) bool_const_vars::$0 ← (byte) bool_const_vars::a#0 == (byte/signed byte/word/signed word/dword/signed dword) 15 - (bool~) bool_const_vars::$1 ← (byte/signed byte/word/signed word/dword/signed dword) 21 < (byte) bool_const_vars::a#0 + (byte) bool_const_vars::a#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (bool~) bool_const_vars::$0 ← (byte) bool_const_vars::a#0 == (byte/signed byte/word/signed word/dword/signed dword) $f + (bool~) bool_const_vars::$1 ← (byte/signed byte/word/signed word/dword/signed dword) $15 < (byte) bool_const_vars::a#0 (bool~) bool_const_vars::$2 ← ! (bool~) bool_const_vars::$1 (bool~) bool_const_vars::$3 ← (bool~) bool_const_vars::$0 || (bool~) bool_const_vars::$2 (bool) bool_const_vars::b1#0 ← (bool~) bool_const_vars::$3 - (bool~) bool_const_vars::$4 ← (byte) bool_const_vars::a#0 != (byte/signed byte/word/signed word/dword/signed dword) 44 + (bool~) bool_const_vars::$4 ← (byte) bool_const_vars::a#0 != (byte/signed byte/word/signed word/dword/signed dword) $2c (signed byte/signed word/signed dword~) bool_const_vars::$5 ← - (byte/signed byte/word/signed word/dword/signed dword) 8 (bool~) bool_const_vars::$6 ← (byte) bool_const_vars::a#0 >= (signed byte/signed word/signed dword~) bool_const_vars::$5 (bool~) bool_const_vars::$7 ← (bool~) bool_const_vars::$4 || (bool~) bool_const_vars::$6 @@ -58,14 +58,14 @@ bool_const_vars::@return: scope:[bool_const_vars] from bool_const_vars::@1 bool return to:@return bool_const_inline: scope:[bool_const_inline] from main::@2 - (byte) bool_const_inline::a#0 ← (byte/signed byte/word/signed word/dword/signed dword) 23 - (bool~) bool_const_inline::$0 ← (byte) bool_const_inline::a#0 != (byte/signed byte/word/signed word/dword/signed dword) 44 + (byte) bool_const_inline::a#0 ← (byte/signed byte/word/signed word/dword/signed dword) $17 + (bool~) bool_const_inline::$0 ← (byte) bool_const_inline::a#0 != (byte/signed byte/word/signed word/dword/signed dword) $2c (signed byte/signed word/signed dword~) bool_const_inline::$1 ← - (byte/signed byte/word/signed word/dword/signed dword) 8 (bool~) bool_const_inline::$2 ← (byte) bool_const_inline::a#0 >= (signed byte/signed word/signed dword~) bool_const_inline::$1 - (bool~) bool_const_inline::$3 ← (byte) bool_const_inline::a#0 == (byte/signed byte/word/signed word/dword/signed dword) 15 + (bool~) bool_const_inline::$3 ← (byte) bool_const_inline::a#0 == (byte/signed byte/word/signed word/dword/signed dword) $f (bool~) bool_const_inline::$4 ← (bool~) bool_const_inline::$2 && (bool~) bool_const_inline::$3 (bool~) bool_const_inline::$5 ← (bool~) bool_const_inline::$0 || (bool~) bool_const_inline::$4 - (bool~) bool_const_inline::$6 ← (byte/signed byte/word/signed word/dword/signed dword) 21 < (byte) bool_const_inline::a#0 + (bool~) bool_const_inline::$6 ← (byte/signed byte/word/signed word/dword/signed dword) $15 < (byte) bool_const_inline::a#0 (bool~) bool_const_inline::$7 ← ! (bool~) bool_const_inline::$6 (bool~) bool_const_inline::$8 ← (bool~) bool_const_inline::$5 || (bool~) bool_const_inline::$7 if((bool~) bool_const_inline::$8) goto bool_const_inline::@1 @@ -146,8 +146,8 @@ SYMBOL TABLE SSA Culled Empty Block (label) main::@3 Culled Empty Block (label) @5 Successful SSA optimization Pass2CullEmptyBlocks -Inversing boolean not [13] (bool~) bool_const_vars::$2 ← (byte/signed byte/word/signed word/dword/signed dword) 21 >= (byte) bool_const_vars::a#0 from [12] (bool~) bool_const_vars::$1 ← (byte/signed byte/word/signed word/dword/signed dword) 21 < (byte) bool_const_vars::a#0 -Inversing boolean not [37] (bool~) bool_const_inline::$7 ← (byte/signed byte/word/signed word/dword/signed dword) 21 >= (byte) bool_const_inline::a#0 from [36] (bool~) bool_const_inline::$6 ← (byte/signed byte/word/signed word/dword/signed dword) 21 < (byte) bool_const_inline::a#0 +Inversing boolean not [13] (bool~) bool_const_vars::$2 ← (byte/signed byte/word/signed word/dword/signed dword) $15 >= (byte) bool_const_vars::a#0 from [12] (bool~) bool_const_vars::$1 ← (byte/signed byte/word/signed word/dword/signed dword) $15 < (byte) bool_const_vars::a#0 +Inversing boolean not [37] (bool~) bool_const_inline::$7 ← (byte/signed byte/word/signed word/dword/signed dword) $15 >= (byte) bool_const_inline::a#0 from [36] (bool~) bool_const_inline::$6 ← (byte/signed byte/word/signed word/dword/signed dword) $15 < (byte) bool_const_inline::a#0 Successful SSA optimization Pass2UnaryNotSimplification Alias (bool) bool_const_vars::b1#0 = (bool~) bool_const_vars::$3 Alias (bool) bool_const_vars::b2#0 = (bool~) bool_const_vars::$7 @@ -169,21 +169,21 @@ Rewriting || if()-condition to two if()s [19] (bool) bool_const_vars::b2#0 ← ( Successful SSA optimization Pass2ConditionalAndOrRewriting Rewriting && if()-condition to two if()s [34] (bool~) bool_const_inline::$4 ← (bool~) bool_const_inline::$2 && (bool~) bool_const_inline::$3 Successful SSA optimization Pass2ConditionalAndOrRewriting -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Constant (const bool) bool_const_if::b#0 = true -Constant (const byte) bool_const_vars::a#0 = 14 +Constant (const byte) bool_const_vars::a#0 = $e Constant (const signed byte/signed word/signed dword) bool_const_vars::$5 = -8 -Constant (const byte) bool_const_inline::a#0 = 23 +Constant (const byte) bool_const_inline::a#0 = $17 Constant (const signed byte/signed word/signed dword) bool_const_inline::$1 = -8 Successful SSA optimization Pass2ConstantIdentification -Constant (const bool) bool_const_vars::$0 = bool_const_vars::a#0==15 -Constant (const bool) bool_const_vars::$2 = 21>=bool_const_vars::a#0 -Constant (const bool) bool_const_vars::$4 = bool_const_vars::a#0!=44 +Constant (const bool) bool_const_vars::$0 = bool_const_vars::a#0==$f +Constant (const bool) bool_const_vars::$2 = $15>=bool_const_vars::a#0 +Constant (const bool) bool_const_vars::$4 = bool_const_vars::a#0!=$2c Constant (const bool) bool_const_vars::$6 = bool_const_vars::a#0>=bool_const_vars::$5 -Constant (const bool) bool_const_inline::$0 = bool_const_inline::a#0!=44 +Constant (const bool) bool_const_inline::$0 = bool_const_inline::a#0!=$2c Constant (const bool) bool_const_inline::$2 = bool_const_inline::a#0>=bool_const_inline::$1 -Constant (const bool) bool_const_inline::$3 = bool_const_inline::a#0==15 -Constant (const bool) bool_const_inline::$7 = 21>=bool_const_inline::a#0 +Constant (const bool) bool_const_inline::$3 = bool_const_inline::a#0==$f +Constant (const bool) bool_const_inline::$7 = $15>=bool_const_inline::a#0 Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(SCREEN#0+0) Consolidated array index constant in *(SCREEN#0+0) @@ -578,7 +578,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) bool_const_if() (label) bool_const_if::@1 (label) bool_const_if::@return diff --git a/src/test/ref/bool-const.sym b/src/test/ref/bool-const.sym index ede294d4e..5128d4f47 100644 --- a/src/test/ref/bool-const.sym +++ b/src/test/ref/bool-const.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) bool_const_if() (label) bool_const_if::@1 (label) bool_const_if::@return diff --git a/src/test/ref/bool-function.cfg b/src/test/ref/bool-function.cfg index 8ae223fcd..22e24a7c8 100644 --- a/src/test/ref/bool-function.cfg +++ b/src/test/ref/bool-function.cfg @@ -27,7 +27,7 @@ main::@4: scope:[main] from main::@7 to:main::@3 main::@3: scope:[main] from main::@2 main::@4 [14] (byte) main::i#1 ← ++ (byte) main::i#2 - [15] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 + [15] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 to:main::@return main::@return: scope:[main] from main::@3 [16] return diff --git a/src/test/ref/bool-function.log b/src/test/ref/bool-function.log index ca068ad55..64b870afa 100644 --- a/src/test/ref/bool-function.log +++ b/src/test/ref/bool-function.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@2 main: scope:[main] from @2 - (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main main::@3 @@ -36,8 +36,8 @@ main::@4: scope:[main] from main::@7 main::@3: scope:[main] from main::@2 main::@4 (byte*) main::screen#5 ← phi( main::@2/(byte*) main::screen#1 main::@4/(byte*) main::screen#2 ) (byte) main::i#5 ← phi( main::@2/(byte) main::i#3 main::@4/(byte) main::i#4 ) - (byte) main::i#1 ← (byte) main::i#5 + rangenext(0,100) - (bool~) main::$3 ← (byte) main::i#1 != rangelast(0,100) + (byte) main::i#1 ← (byte) main::i#5 + rangenext(0,$64) + (bool~) main::$3 ← (byte) main::i#1 != rangelast(0,$64) if((bool~) main::$3) goto main::@1 to:main::@return main::@return: scope:[main] from main::@3 @@ -129,13 +129,13 @@ Redundant Phi (byte*) main::screen#1 (byte*) main::screen#0 Redundant Phi (byte) isSet::i#1 (byte) isSet::i#0 Redundant Phi (bool) isSet::b#1 (bool) isSet::b#0 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$3 [19] if((byte) main::i#1!=rangelast(0,100)) goto main::@1 +Simple Condition (bool~) main::$3 [19] if((byte) main::i#1!=rangelast(0,$64)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) main::screen#0 = ((byte*))1024 +Constant (const byte*) main::screen#0 = ((byte*))$400 Constant (const byte) main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ -Resolved ranged comparison value if(main::i#1!=rangelast(0,100)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 101 +Resolved ranged comparison value if(main::i#1!=rangelast(0,$64)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $65 Inlining constant with var siblings (const byte) main::i#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining @@ -187,7 +187,7 @@ main::@4: scope:[main] from main::@7 to:main::@3 main::@3: scope:[main] from main::@2 main::@4 [14] (byte) main::i#1 ← ++ (byte) main::i#2 - [15] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 + [15] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 to:main::@return main::@return: scope:[main] from main::@3 [16] return @@ -338,7 +338,7 @@ main: { b3: //SEG27 [14] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG28 [15] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG28 [15] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$65 bne b1_from_b3 @@ -496,7 +496,7 @@ main: { b3: //SEG27 [14] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG28 [15] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG28 [15] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$65 bne b1_from_b3 jmp breturn @@ -594,7 +594,7 @@ FINAL SYMBOL TABLE (byte) main::i#1 reg byte x 16.5 (byte) main::i#2 reg byte x 6.6 (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$0 ] @@ -661,7 +661,7 @@ main: { b3: //SEG27 [14] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG28 [15] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG28 [15] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$65 bne b1 //SEG29 main::@return diff --git a/src/test/ref/bool-function.sym b/src/test/ref/bool-function.sym index f8c426ab9..224553dba 100644 --- a/src/test/ref/bool-function.sym +++ b/src/test/ref/bool-function.sym @@ -25,7 +25,7 @@ (byte) main::i#1 reg byte x 16.5 (byte) main::i#2 reg byte x 6.6 (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$0 ] diff --git a/src/test/ref/bool-ifs.cfg b/src/test/ref/bool-ifs.cfg index 4d737fa55..eb4ccaa69 100644 --- a/src/test/ref/bool-ifs.cfg +++ b/src/test/ref/bool-ifs.cfg @@ -33,10 +33,10 @@ bool_complex::@1: scope:[bool_complex] from bool_complex bool_complex::@3 [14] (byte) bool_complex::i#2 ← phi( bool_complex/(byte/signed byte/word/signed word/dword/signed dword) 0 bool_complex::@3/(byte) bool_complex::i#1 ) [15] (byte~) bool_complex::$1 ← (byte) bool_complex::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [16] (byte~) bool_complex::$5 ← (byte) bool_complex::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 - [17] if((byte) bool_complex::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_complex::@8 + [17] if((byte) bool_complex::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_complex::@8 to:bool_complex::@7 bool_complex::@7: scope:[bool_complex] from bool_complex::@1 bool_complex::@8 - [18] if((byte) bool_complex::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_complex::@4 + [18] if((byte) bool_complex::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_complex::@4 to:bool_complex::@9 bool_complex::@9: scope:[bool_complex] from bool_complex::@7 [19] if((byte~) bool_complex::$5==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_complex::@4 @@ -46,7 +46,7 @@ bool_complex::@2: scope:[bool_complex] from bool_complex::@8 bool_complex::@9 to:bool_complex::@3 bool_complex::@3: scope:[bool_complex] from bool_complex::@2 bool_complex::@4 [21] (byte) bool_complex::i#1 ← ++ (byte) bool_complex::i#2 - [22] if((byte) bool_complex::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_complex::@1 + [22] if((byte) bool_complex::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_complex::@1 to:bool_complex::@return bool_complex::@return: scope:[bool_complex] from bool_complex::@3 [23] return @@ -63,7 +63,7 @@ bool_not: scope:[bool_not] from main::@2 bool_not::@1: scope:[bool_not] from bool_not bool_not::@3 [27] (byte) bool_not::i#2 ← phi( bool_not/(byte/signed byte/word/signed word/dword/signed dword) 0 bool_not::@3/(byte) bool_not::i#1 ) [28] (byte~) bool_not::$1 ← (byte) bool_not::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 - [29] if((byte) bool_not::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_not::@4 + [29] if((byte) bool_not::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_not::@4 to:bool_not::@7 bool_not::@7: scope:[bool_not] from bool_not::@1 [30] if((byte~) bool_not::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_not::@4 @@ -73,7 +73,7 @@ bool_not::@2: scope:[bool_not] from bool_not::@7 to:bool_not::@3 bool_not::@3: scope:[bool_not] from bool_not::@2 bool_not::@4 [32] (byte) bool_not::i#1 ← ++ (byte) bool_not::i#2 - [33] if((byte) bool_not::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_not::@1 + [33] if((byte) bool_not::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_not::@1 to:bool_not::@return bool_not::@return: scope:[bool_not] from bool_not::@3 [34] return @@ -87,7 +87,7 @@ bool_or: scope:[bool_or] from main::@1 bool_or::@1: scope:[bool_or] from bool_or bool_or::@3 [37] (byte) bool_or::i#2 ← phi( bool_or/(byte/signed byte/word/signed word/dword/signed dword) 0 bool_or::@3/(byte) bool_or::i#1 ) [38] (byte~) bool_or::$1 ← (byte) bool_or::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 - [39] if((byte) bool_or::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_or::@2 + [39] if((byte) bool_or::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_or::@2 to:bool_or::@7 bool_or::@7: scope:[bool_or] from bool_or::@1 [40] if((byte~) bool_or::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_or::@2 @@ -97,7 +97,7 @@ bool_or::@4: scope:[bool_or] from bool_or::@7 to:bool_or::@3 bool_or::@3: scope:[bool_or] from bool_or::@2 bool_or::@4 [42] (byte) bool_or::i#1 ← ++ (byte) bool_or::i#2 - [43] if((byte) bool_or::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_or::@1 + [43] if((byte) bool_or::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_or::@1 to:bool_or::@return bool_or::@return: scope:[bool_or] from bool_or::@3 [44] return @@ -111,14 +111,14 @@ bool_and: scope:[bool_and] from main bool_and::@1: scope:[bool_and] from bool_and bool_and::@3 [47] (byte) bool_and::i#2 ← phi( bool_and/(byte/signed byte/word/signed word/dword/signed dword) 0 bool_and::@3/(byte) bool_and::i#1 ) [48] (byte~) bool_and::$1 ← (byte) bool_and::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 - [49] if((byte) bool_and::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_and::@7 + [49] if((byte) bool_and::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_and::@7 to:bool_and::@4 bool_and::@4: scope:[bool_and] from bool_and::@1 bool_and::@7 [50] *((const byte*) bool_and::screen#0 + (byte) bool_and::i#2) ← (byte) ' ' to:bool_and::@3 bool_and::@3: scope:[bool_and] from bool_and::@2 bool_and::@4 [51] (byte) bool_and::i#1 ← ++ (byte) bool_and::i#2 - [52] if((byte) bool_and::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_and::@1 + [52] if((byte) bool_and::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_and::@1 to:bool_and::@return bool_and::@return: scope:[bool_and] from bool_and::@3 [53] return diff --git a/src/test/ref/bool-ifs.log b/src/test/ref/bool-ifs.log index 5642b5fdb..deb33ab77 100644 --- a/src/test/ref/bool-ifs.log +++ b/src/test/ref/bool-ifs.log @@ -20,12 +20,12 @@ main::@return: scope:[main] from main::@4 return to:@return bool_and: scope:[bool_and] from main - (byte*) bool_and::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) bool_and::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) bool_and::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:bool_and::@1 bool_and::@1: scope:[bool_and] from bool_and bool_and::@3 (byte) bool_and::i#2 ← phi( bool_and/(byte) bool_and::i#0 bool_and::@3/(byte) bool_and::i#1 ) - (bool~) bool_and::$0 ← (byte) bool_and::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 10 + (bool~) bool_and::$0 ← (byte) bool_and::i#2 < (byte/signed byte/word/signed word/dword/signed dword) $a (byte~) bool_and::$1 ← (byte) bool_and::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 (bool~) bool_and::$2 ← (byte~) bool_and::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) bool_and::$3 ← (bool~) bool_and::$0 && (bool~) bool_and::$2 @@ -41,20 +41,20 @@ bool_and::@4: scope:[bool_and] from bool_and::@1 to:bool_and::@3 bool_and::@3: scope:[bool_and] from bool_and::@2 bool_and::@4 (byte) bool_and::i#5 ← phi( bool_and::@2/(byte) bool_and::i#3 bool_and::@4/(byte) bool_and::i#4 ) - (byte) bool_and::i#1 ← (byte) bool_and::i#5 + rangenext(0,20) - (bool~) bool_and::$4 ← (byte) bool_and::i#1 != rangelast(0,20) + (byte) bool_and::i#1 ← (byte) bool_and::i#5 + rangenext(0,$14) + (bool~) bool_and::$4 ← (byte) bool_and::i#1 != rangelast(0,$14) if((bool~) bool_and::$4) goto bool_and::@1 to:bool_and::@return bool_and::@return: scope:[bool_and] from bool_and::@3 return to:@return bool_or: scope:[bool_or] from main::@1 - (byte*) bool_or::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1064 + (byte*) bool_or::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $428 (byte) bool_or::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:bool_or::@1 bool_or::@1: scope:[bool_or] from bool_or bool_or::@3 (byte) bool_or::i#2 ← phi( bool_or/(byte) bool_or::i#0 bool_or::@3/(byte) bool_or::i#1 ) - (bool~) bool_or::$0 ← (byte) bool_or::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 10 + (bool~) bool_or::$0 ← (byte) bool_or::i#2 < (byte/signed byte/word/signed word/dword/signed dword) $a (byte~) bool_or::$1 ← (byte) bool_or::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 (bool~) bool_or::$2 ← (byte~) bool_or::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) bool_or::$3 ← (bool~) bool_or::$0 || (bool~) bool_or::$2 @@ -70,20 +70,20 @@ bool_or::@4: scope:[bool_or] from bool_or::@1 to:bool_or::@3 bool_or::@3: scope:[bool_or] from bool_or::@2 bool_or::@4 (byte) bool_or::i#5 ← phi( bool_or::@2/(byte) bool_or::i#3 bool_or::@4/(byte) bool_or::i#4 ) - (byte) bool_or::i#1 ← (byte) bool_or::i#5 + rangenext(0,20) - (bool~) bool_or::$4 ← (byte) bool_or::i#1 != rangelast(0,20) + (byte) bool_or::i#1 ← (byte) bool_or::i#5 + rangenext(0,$14) + (bool~) bool_or::$4 ← (byte) bool_or::i#1 != rangelast(0,$14) if((bool~) bool_or::$4) goto bool_or::@1 to:bool_or::@return bool_or::@return: scope:[bool_or] from bool_or::@3 return to:@return bool_not: scope:[bool_not] from main::@2 - (byte*) bool_not::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1104 + (byte*) bool_not::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $450 (byte) bool_not::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:bool_not::@1 bool_not::@1: scope:[bool_not] from bool_not bool_not::@3 (byte) bool_not::i#2 ← phi( bool_not/(byte) bool_not::i#0 bool_not::@3/(byte) bool_not::i#1 ) - (bool~) bool_not::$0 ← (byte) bool_not::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 10 + (bool~) bool_not::$0 ← (byte) bool_not::i#2 < (byte/signed byte/word/signed word/dword/signed dword) $a (byte~) bool_not::$1 ← (byte) bool_not::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 (bool~) bool_not::$2 ← (byte~) bool_not::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) bool_not::$3 ← (bool~) bool_not::$0 || (bool~) bool_not::$2 @@ -100,24 +100,24 @@ bool_not::@4: scope:[bool_not] from bool_not::@1 to:bool_not::@3 bool_not::@3: scope:[bool_not] from bool_not::@2 bool_not::@4 (byte) bool_not::i#5 ← phi( bool_not::@2/(byte) bool_not::i#3 bool_not::@4/(byte) bool_not::i#4 ) - (byte) bool_not::i#1 ← (byte) bool_not::i#5 + rangenext(0,20) - (bool~) bool_not::$5 ← (byte) bool_not::i#1 != rangelast(0,20) + (byte) bool_not::i#1 ← (byte) bool_not::i#5 + rangenext(0,$14) + (bool~) bool_not::$5 ← (byte) bool_not::i#1 != rangelast(0,$14) if((bool~) bool_not::$5) goto bool_not::@1 to:bool_not::@return bool_not::@return: scope:[bool_not] from bool_not::@3 return to:@return bool_complex: scope:[bool_complex] from main::@3 - (byte*) bool_complex::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1144 + (byte*) bool_complex::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $478 (byte) bool_complex::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:bool_complex::@1 bool_complex::@1: scope:[bool_complex] from bool_complex bool_complex::@3 (byte) bool_complex::i#2 ← phi( bool_complex/(byte) bool_complex::i#0 bool_complex::@3/(byte) bool_complex::i#1 ) - (bool~) bool_complex::$0 ← (byte) bool_complex::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 10 + (bool~) bool_complex::$0 ← (byte) bool_complex::i#2 < (byte/signed byte/word/signed word/dword/signed dword) $a (byte~) bool_complex::$1 ← (byte) bool_complex::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 (bool~) bool_complex::$2 ← (byte~) bool_complex::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) bool_complex::$3 ← (bool~) bool_complex::$0 && (bool~) bool_complex::$2 - (bool~) bool_complex::$4 ← (byte) bool_complex::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 10 + (bool~) bool_complex::$4 ← (byte) bool_complex::i#2 < (byte/signed byte/word/signed word/dword/signed dword) $a (byte~) bool_complex::$5 ← (byte) bool_complex::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 (bool~) bool_complex::$6 ← (byte~) bool_complex::$5 == (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) bool_complex::$7 ← (bool~) bool_complex::$4 || (bool~) bool_complex::$6 @@ -135,8 +135,8 @@ bool_complex::@4: scope:[bool_complex] from bool_complex::@1 to:bool_complex::@3 bool_complex::@3: scope:[bool_complex] from bool_complex::@2 bool_complex::@4 (byte) bool_complex::i#5 ← phi( bool_complex::@2/(byte) bool_complex::i#3 bool_complex::@4/(byte) bool_complex::i#4 ) - (byte) bool_complex::i#1 ← (byte) bool_complex::i#5 + rangenext(0,20) - (bool~) bool_complex::$10 ← (byte) bool_complex::i#1 != rangelast(0,20) + (byte) bool_complex::i#1 ← (byte) bool_complex::i#5 + rangenext(0,$14) + (bool~) bool_complex::$10 ← (byte) bool_complex::i#1 != rangelast(0,$14) if((bool~) bool_complex::$10) goto bool_complex::@1 to:bool_complex::@return bool_complex::@return: scope:[bool_complex] from bool_complex::@3 @@ -261,10 +261,10 @@ Alias (byte) bool_or::i#2 = (byte) bool_or::i#5 Alias (byte) bool_not::i#2 = (byte) bool_not::i#5 Alias (byte) bool_complex::i#2 = (byte) bool_complex::i#5 Successful SSA optimization Pass2AliasElimination -Simple Condition (bool~) bool_and::$4 [20] if((byte) bool_and::i#1!=rangelast(0,20)) goto bool_and::@1 -Simple Condition (bool~) bool_or::$4 [37] if((byte) bool_or::i#1!=rangelast(0,20)) goto bool_or::@1 -Simple Condition (bool~) bool_not::$5 [55] if((byte) bool_not::i#1!=rangelast(0,20)) goto bool_not::@1 -Simple Condition (bool~) bool_complex::$10 [78] if((byte) bool_complex::i#1!=rangelast(0,20)) goto bool_complex::@1 +Simple Condition (bool~) bool_and::$4 [20] if((byte) bool_and::i#1!=rangelast(0,$14)) goto bool_and::@1 +Simple Condition (bool~) bool_or::$4 [37] if((byte) bool_or::i#1!=rangelast(0,$14)) goto bool_or::@1 +Simple Condition (bool~) bool_not::$5 [55] if((byte) bool_not::i#1!=rangelast(0,$14)) goto bool_not::@1 +Simple Condition (bool~) bool_complex::$10 [78] if((byte) bool_complex::i#1!=rangelast(0,$14)) goto bool_complex::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Rewriting && if()-condition to two if()s [11] (bool~) bool_and::$3 ← (bool~) bool_and::$0 && (bool~) bool_and::$2 Successful SSA optimization Pass2ConditionalAndOrRewriting @@ -282,31 +282,31 @@ Rewriting ! if()-condition to reversed if() [68] (bool~) bool_complex::$8 ← ! Successful SSA optimization Pass2ConditionalAndOrRewriting Rewriting || if()-condition to two if()s [67] (bool~) bool_complex::$7 ← (bool~) bool_complex::$4 || (bool~) bool_complex::$6 Successful SSA optimization Pass2ConditionalAndOrRewriting -Constant (const byte*) bool_and::screen#0 = ((byte*))1024 +Constant (const byte*) bool_and::screen#0 = ((byte*))$400 Constant (const byte) bool_and::i#0 = 0 -Constant (const byte*) bool_or::screen#0 = ((byte*))1064 +Constant (const byte*) bool_or::screen#0 = ((byte*))$428 Constant (const byte) bool_or::i#0 = 0 -Constant (const byte*) bool_not::screen#0 = ((byte*))1104 +Constant (const byte*) bool_not::screen#0 = ((byte*))$450 Constant (const byte) bool_not::i#0 = 0 -Constant (const byte*) bool_complex::screen#0 = ((byte*))1144 +Constant (const byte*) bool_complex::screen#0 = ((byte*))$478 Constant (const byte) bool_complex::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value bool_and::i#1 ← ++ bool_and::i#2 to ++ -Resolved ranged comparison value if(bool_and::i#1!=rangelast(0,20)) goto bool_and::@1 to (byte/signed byte/word/signed word/dword/signed dword) 21 +Resolved ranged comparison value if(bool_and::i#1!=rangelast(0,$14)) goto bool_and::@1 to (byte/signed byte/word/signed word/dword/signed dword) $15 Resolved ranged next value bool_or::i#1 ← ++ bool_or::i#2 to ++ -Resolved ranged comparison value if(bool_or::i#1!=rangelast(0,20)) goto bool_or::@1 to (byte/signed byte/word/signed word/dword/signed dword) 21 +Resolved ranged comparison value if(bool_or::i#1!=rangelast(0,$14)) goto bool_or::@1 to (byte/signed byte/word/signed word/dword/signed dword) $15 Resolved ranged next value bool_not::i#1 ← ++ bool_not::i#2 to ++ -Resolved ranged comparison value if(bool_not::i#1!=rangelast(0,20)) goto bool_not::@1 to (byte/signed byte/word/signed word/dword/signed dword) 21 +Resolved ranged comparison value if(bool_not::i#1!=rangelast(0,$14)) goto bool_not::@1 to (byte/signed byte/word/signed word/dword/signed dword) $15 Resolved ranged next value bool_complex::i#1 ← ++ bool_complex::i#2 to ++ -Resolved ranged comparison value if(bool_complex::i#1!=rangelast(0,20)) goto bool_complex::@1 to (byte/signed byte/word/signed word/dword/signed dword) 21 -Simple Condition (bool~) bool_and::$0 [9] if((byte) bool_and::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_and::@7 -Simple Condition (bool~) bool_or::$0 [19] if((byte) bool_or::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_or::@2 -Simple Condition (bool~) bool_not::$0 [29] if((byte) bool_not::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_not::@4 -Simple Condition (bool~) bool_complex::$0 [42] if((byte) bool_complex::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_complex::@8 +Resolved ranged comparison value if(bool_complex::i#1!=rangelast(0,$14)) goto bool_complex::@1 to (byte/signed byte/word/signed word/dword/signed dword) $15 +Simple Condition (bool~) bool_and::$0 [9] if((byte) bool_and::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_and::@7 +Simple Condition (bool~) bool_or::$0 [19] if((byte) bool_or::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_or::@2 +Simple Condition (bool~) bool_not::$0 [29] if((byte) bool_not::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_not::@4 +Simple Condition (bool~) bool_complex::$0 [42] if((byte) bool_complex::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_complex::@8 Simple Condition (bool~) bool_and::$2 [49] if((byte~) bool_and::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_and::@2 Simple Condition (bool~) bool_or::$2 [50] if((byte~) bool_or::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_or::@2 Simple Condition (bool~) bool_not::$2 [51] if((byte~) bool_not::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_not::@4 -Simple Condition (bool~) bool_complex::$4 [52] if((byte) bool_complex::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_complex::@4 +Simple Condition (bool~) bool_complex::$4 [52] if((byte) bool_complex::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_complex::@4 Simple Condition (bool~) bool_complex::$2 [53] if((byte~) bool_complex::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_complex::@2 Simple Condition (bool~) bool_complex::$6 [54] if((byte~) bool_complex::$5==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_complex::@4 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -396,10 +396,10 @@ bool_complex::@1: scope:[bool_complex] from bool_complex bool_complex::@3 [14] (byte) bool_complex::i#2 ← phi( bool_complex/(byte/signed byte/word/signed word/dword/signed dword) 0 bool_complex::@3/(byte) bool_complex::i#1 ) [15] (byte~) bool_complex::$1 ← (byte) bool_complex::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [16] (byte~) bool_complex::$5 ← (byte) bool_complex::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 - [17] if((byte) bool_complex::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_complex::@8 + [17] if((byte) bool_complex::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_complex::@8 to:bool_complex::@7 bool_complex::@7: scope:[bool_complex] from bool_complex::@1 bool_complex::@8 - [18] if((byte) bool_complex::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_complex::@4 + [18] if((byte) bool_complex::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_complex::@4 to:bool_complex::@9 bool_complex::@9: scope:[bool_complex] from bool_complex::@7 [19] if((byte~) bool_complex::$5==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_complex::@4 @@ -409,7 +409,7 @@ bool_complex::@2: scope:[bool_complex] from bool_complex::@8 bool_complex::@9 to:bool_complex::@3 bool_complex::@3: scope:[bool_complex] from bool_complex::@2 bool_complex::@4 [21] (byte) bool_complex::i#1 ← ++ (byte) bool_complex::i#2 - [22] if((byte) bool_complex::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_complex::@1 + [22] if((byte) bool_complex::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_complex::@1 to:bool_complex::@return bool_complex::@return: scope:[bool_complex] from bool_complex::@3 [23] return @@ -426,7 +426,7 @@ bool_not: scope:[bool_not] from main::@2 bool_not::@1: scope:[bool_not] from bool_not bool_not::@3 [27] (byte) bool_not::i#2 ← phi( bool_not/(byte/signed byte/word/signed word/dword/signed dword) 0 bool_not::@3/(byte) bool_not::i#1 ) [28] (byte~) bool_not::$1 ← (byte) bool_not::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 - [29] if((byte) bool_not::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_not::@4 + [29] if((byte) bool_not::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_not::@4 to:bool_not::@7 bool_not::@7: scope:[bool_not] from bool_not::@1 [30] if((byte~) bool_not::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_not::@4 @@ -436,7 +436,7 @@ bool_not::@2: scope:[bool_not] from bool_not::@7 to:bool_not::@3 bool_not::@3: scope:[bool_not] from bool_not::@2 bool_not::@4 [32] (byte) bool_not::i#1 ← ++ (byte) bool_not::i#2 - [33] if((byte) bool_not::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_not::@1 + [33] if((byte) bool_not::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_not::@1 to:bool_not::@return bool_not::@return: scope:[bool_not] from bool_not::@3 [34] return @@ -450,7 +450,7 @@ bool_or: scope:[bool_or] from main::@1 bool_or::@1: scope:[bool_or] from bool_or bool_or::@3 [37] (byte) bool_or::i#2 ← phi( bool_or/(byte/signed byte/word/signed word/dword/signed dword) 0 bool_or::@3/(byte) bool_or::i#1 ) [38] (byte~) bool_or::$1 ← (byte) bool_or::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 - [39] if((byte) bool_or::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_or::@2 + [39] if((byte) bool_or::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_or::@2 to:bool_or::@7 bool_or::@7: scope:[bool_or] from bool_or::@1 [40] if((byte~) bool_or::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_or::@2 @@ -460,7 +460,7 @@ bool_or::@4: scope:[bool_or] from bool_or::@7 to:bool_or::@3 bool_or::@3: scope:[bool_or] from bool_or::@2 bool_or::@4 [42] (byte) bool_or::i#1 ← ++ (byte) bool_or::i#2 - [43] if((byte) bool_or::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_or::@1 + [43] if((byte) bool_or::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_or::@1 to:bool_or::@return bool_or::@return: scope:[bool_or] from bool_or::@3 [44] return @@ -474,14 +474,14 @@ bool_and: scope:[bool_and] from main bool_and::@1: scope:[bool_and] from bool_and bool_and::@3 [47] (byte) bool_and::i#2 ← phi( bool_and/(byte/signed byte/word/signed word/dword/signed dword) 0 bool_and::@3/(byte) bool_and::i#1 ) [48] (byte~) bool_and::$1 ← (byte) bool_and::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 - [49] if((byte) bool_and::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_and::@7 + [49] if((byte) bool_and::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_and::@7 to:bool_and::@4 bool_and::@4: scope:[bool_and] from bool_and::@1 bool_and::@7 [50] *((const byte*) bool_and::screen#0 + (byte) bool_and::i#2) ← (byte) ' ' to:bool_and::@3 bool_and::@3: scope:[bool_and] from bool_and::@2 bool_and::@4 [51] (byte) bool_and::i#1 ← ++ (byte) bool_and::i#2 - [52] if((byte) bool_and::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_and::@1 + [52] if((byte) bool_and::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_and::@1 to:bool_and::@return bool_and::@return: scope:[bool_and] from bool_and::@3 [53] return @@ -641,14 +641,14 @@ bool_complex: { lda #1 and i sta _5 - //SEG35 [17] if((byte) bool_complex::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_complex::@8 -- vbuz1_lt_vbuc1_then_la1 + //SEG35 [17] if((byte) bool_complex::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_complex::@8 -- vbuz1_lt_vbuc1_then_la1 lda i cmp #$a bcc b8 jmp b7 //SEG36 bool_complex::@7 b7: - //SEG37 [18] if((byte) bool_complex::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_complex::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG37 [18] if((byte) bool_complex::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_complex::@4 -- vbuz1_lt_vbuc1_then_la1 lda i cmp #$a bcc b4 @@ -671,7 +671,7 @@ bool_complex: { b3: //SEG43 [21] (byte) bool_complex::i#1 ← ++ (byte) bool_complex::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG44 [22] if((byte) bool_complex::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_complex::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG44 [22] if((byte) bool_complex::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_complex::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$15 bne b1_from_b3 @@ -716,7 +716,7 @@ bool_not: { lda #1 and i sta _1 - //SEG58 [29] if((byte) bool_not::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_not::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG58 [29] if((byte) bool_not::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_not::@4 -- vbuz1_lt_vbuc1_then_la1 lda i cmp #$a bcc b4 @@ -739,7 +739,7 @@ bool_not: { b3: //SEG64 [32] (byte) bool_not::i#1 ← ++ (byte) bool_not::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG65 [33] if((byte) bool_not::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_not::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG65 [33] if((byte) bool_not::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_not::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$15 bne b1_from_b3 @@ -777,7 +777,7 @@ bool_or: { lda #1 and i sta _1 - //SEG77 [39] if((byte) bool_or::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_or::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG77 [39] if((byte) bool_or::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_or::@2 -- vbuz1_lt_vbuc1_then_la1 lda i cmp #$a bcc b2 @@ -800,7 +800,7 @@ bool_or: { b3: //SEG83 [42] (byte) bool_or::i#1 ← ++ (byte) bool_or::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG84 [43] if((byte) bool_or::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_or::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG84 [43] if((byte) bool_or::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_or::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$15 bne b1_from_b3 @@ -838,7 +838,7 @@ bool_and: { lda #1 and i sta _1 - //SEG96 [49] if((byte) bool_and::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_and::@7 -- vbuz1_lt_vbuc1_then_la1 + //SEG96 [49] if((byte) bool_and::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_and::@7 -- vbuz1_lt_vbuc1_then_la1 lda i cmp #$a bcc b7 @@ -854,7 +854,7 @@ bool_and: { b3: //SEG100 [51] (byte) bool_and::i#1 ← ++ (byte) bool_and::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG101 [52] if((byte) bool_and::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_and::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG101 [52] if((byte) bool_and::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_and::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$15 bne b1_from_b3 @@ -1020,13 +1020,13 @@ bool_complex: { //SEG34 [16] (byte~) bool_complex::$5 ← (byte) bool_complex::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuyy_band_vbuc1 tya and #1 - //SEG35 [17] if((byte) bool_complex::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_complex::@8 -- vbuyy_lt_vbuc1_then_la1 + //SEG35 [17] if((byte) bool_complex::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_complex::@8 -- vbuyy_lt_vbuc1_then_la1 cpy #$a bcc b8 jmp b7 //SEG36 bool_complex::@7 b7: - //SEG37 [18] if((byte) bool_complex::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_complex::@4 -- vbuyy_lt_vbuc1_then_la1 + //SEG37 [18] if((byte) bool_complex::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_complex::@4 -- vbuyy_lt_vbuc1_then_la1 cpy #$a bcc b4 jmp b9 @@ -1046,7 +1046,7 @@ bool_complex: { b3: //SEG43 [21] (byte) bool_complex::i#1 ← ++ (byte) bool_complex::i#2 -- vbuyy=_inc_vbuyy iny - //SEG44 [22] if((byte) bool_complex::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_complex::@1 -- vbuyy_neq_vbuc1_then_la1 + //SEG44 [22] if((byte) bool_complex::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_complex::@1 -- vbuyy_neq_vbuc1_then_la1 cpy #$15 bne b1_from_b3 jmp breturn @@ -1084,7 +1084,7 @@ bool_not: { //SEG57 [28] (byte~) bool_not::$1 ← (byte) bool_not::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_band_vbuc1 txa and #1 - //SEG58 [29] if((byte) bool_not::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_not::@4 -- vbuxx_lt_vbuc1_then_la1 + //SEG58 [29] if((byte) bool_not::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_not::@4 -- vbuxx_lt_vbuc1_then_la1 cpx #$a bcc b4 jmp b7 @@ -1104,7 +1104,7 @@ bool_not: { b3: //SEG64 [32] (byte) bool_not::i#1 ← ++ (byte) bool_not::i#2 -- vbuxx=_inc_vbuxx inx - //SEG65 [33] if((byte) bool_not::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_not::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG65 [33] if((byte) bool_not::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_not::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$15 bne b1_from_b3 jmp breturn @@ -1136,7 +1136,7 @@ bool_or: { //SEG76 [38] (byte~) bool_or::$1 ← (byte) bool_or::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_band_vbuc1 txa and #1 - //SEG77 [39] if((byte) bool_or::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_or::@2 -- vbuxx_lt_vbuc1_then_la1 + //SEG77 [39] if((byte) bool_or::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_or::@2 -- vbuxx_lt_vbuc1_then_la1 cpx #$a bcc b2 jmp b7 @@ -1156,7 +1156,7 @@ bool_or: { b3: //SEG83 [42] (byte) bool_or::i#1 ← ++ (byte) bool_or::i#2 -- vbuxx=_inc_vbuxx inx - //SEG84 [43] if((byte) bool_or::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_or::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG84 [43] if((byte) bool_or::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_or::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$15 bne b1_from_b3 jmp breturn @@ -1188,7 +1188,7 @@ bool_and: { //SEG95 [48] (byte~) bool_and::$1 ← (byte) bool_and::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_band_vbuc1 txa and #1 - //SEG96 [49] if((byte) bool_and::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_and::@7 -- vbuxx_lt_vbuc1_then_la1 + //SEG96 [49] if((byte) bool_and::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_and::@7 -- vbuxx_lt_vbuc1_then_la1 cpx #$a bcc b7 jmp b4 @@ -1202,7 +1202,7 @@ bool_and: { b3: //SEG100 [51] (byte) bool_and::i#1 ← ++ (byte) bool_and::i#2 -- vbuxx=_inc_vbuxx inx - //SEG101 [52] if((byte) bool_and::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_and::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG101 [52] if((byte) bool_and::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_and::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$15 bne b1_from_b3 jmp breturn @@ -1318,7 +1318,7 @@ FINAL SYMBOL TABLE (byte) bool_and::i#1 reg byte x 16.5 (byte) bool_and::i#2 reg byte x 11.0 (byte*) bool_and::screen -(const byte*) bool_and::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) bool_and::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 (void()) bool_complex() (byte~) bool_complex::$1 reg byte x 7.333333333333333 (byte~) bool_complex::$5 reg byte a 5.5 @@ -1334,7 +1334,7 @@ FINAL SYMBOL TABLE (byte) bool_complex::i#1 reg byte y 16.5 (byte) bool_complex::i#2 reg byte y 9.777777777777779 (byte*) bool_complex::screen -(const byte*) bool_complex::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1144 +(const byte*) bool_complex::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $478 (void()) bool_not() (byte~) bool_not::$1 reg byte a 11.0 (label) bool_not::@1 @@ -1347,7 +1347,7 @@ FINAL SYMBOL TABLE (byte) bool_not::i#1 reg byte x 16.5 (byte) bool_not::i#2 reg byte x 11.0 (byte*) bool_not::screen -(const byte*) bool_not::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1104 +(const byte*) bool_not::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $450 (void()) bool_or() (byte~) bool_or::$1 reg byte a 11.0 (label) bool_or::@1 @@ -1360,7 +1360,7 @@ FINAL SYMBOL TABLE (byte) bool_or::i#1 reg byte x 16.5 (byte) bool_or::i#2 reg byte x 11.0 (byte*) bool_or::screen -(const byte*) bool_or::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1064 +(const byte*) bool_or::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $428 (void()) main() (label) main::@1 (label) main::@2 @@ -1436,12 +1436,12 @@ bool_complex: { //SEG34 [16] (byte~) bool_complex::$5 ← (byte) bool_complex::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuyy_band_vbuc1 tya and #1 - //SEG35 [17] if((byte) bool_complex::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_complex::@8 -- vbuyy_lt_vbuc1_then_la1 + //SEG35 [17] if((byte) bool_complex::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_complex::@8 -- vbuyy_lt_vbuc1_then_la1 cpy #$a bcc b8 //SEG36 bool_complex::@7 b7: - //SEG37 [18] if((byte) bool_complex::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_complex::@4 -- vbuyy_lt_vbuc1_then_la1 + //SEG37 [18] if((byte) bool_complex::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_complex::@4 -- vbuyy_lt_vbuc1_then_la1 cpy #$a bcc b4 //SEG38 bool_complex::@9 @@ -1457,7 +1457,7 @@ bool_complex: { b3: //SEG43 [21] (byte) bool_complex::i#1 ← ++ (byte) bool_complex::i#2 -- vbuyy=_inc_vbuyy iny - //SEG44 [22] if((byte) bool_complex::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_complex::@1 -- vbuyy_neq_vbuc1_then_la1 + //SEG44 [22] if((byte) bool_complex::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_complex::@1 -- vbuyy_neq_vbuc1_then_la1 cpy #$15 bne b1 //SEG45 bool_complex::@return @@ -1489,7 +1489,7 @@ bool_not: { //SEG57 [28] (byte~) bool_not::$1 ← (byte) bool_not::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_band_vbuc1 txa and #1 - //SEG58 [29] if((byte) bool_not::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_not::@4 -- vbuxx_lt_vbuc1_then_la1 + //SEG58 [29] if((byte) bool_not::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_not::@4 -- vbuxx_lt_vbuc1_then_la1 cpx #$a bcc b4 //SEG59 bool_not::@7 @@ -1504,7 +1504,7 @@ bool_not: { b3: //SEG64 [32] (byte) bool_not::i#1 ← ++ (byte) bool_not::i#2 -- vbuxx=_inc_vbuxx inx - //SEG65 [33] if((byte) bool_not::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_not::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG65 [33] if((byte) bool_not::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_not::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$15 bne b1 //SEG66 bool_not::@return @@ -1530,7 +1530,7 @@ bool_or: { //SEG76 [38] (byte~) bool_or::$1 ← (byte) bool_or::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_band_vbuc1 txa and #1 - //SEG77 [39] if((byte) bool_or::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_or::@2 -- vbuxx_lt_vbuc1_then_la1 + //SEG77 [39] if((byte) bool_or::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_or::@2 -- vbuxx_lt_vbuc1_then_la1 cpx #$a bcc b2 //SEG78 bool_or::@7 @@ -1545,7 +1545,7 @@ bool_or: { b3: //SEG83 [42] (byte) bool_or::i#1 ← ++ (byte) bool_or::i#2 -- vbuxx=_inc_vbuxx inx - //SEG84 [43] if((byte) bool_or::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_or::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG84 [43] if((byte) bool_or::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_or::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$15 bne b1 //SEG85 bool_or::@return @@ -1571,7 +1571,7 @@ bool_and: { //SEG95 [48] (byte~) bool_and::$1 ← (byte) bool_and::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_band_vbuc1 txa and #1 - //SEG96 [49] if((byte) bool_and::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_and::@7 -- vbuxx_lt_vbuc1_then_la1 + //SEG96 [49] if((byte) bool_and::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_and::@7 -- vbuxx_lt_vbuc1_then_la1 cpx #$a bcc b7 //SEG97 bool_and::@4 @@ -1583,7 +1583,7 @@ bool_and: { b3: //SEG100 [51] (byte) bool_and::i#1 ← ++ (byte) bool_and::i#2 -- vbuxx=_inc_vbuxx inx - //SEG101 [52] if((byte) bool_and::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_and::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG101 [52] if((byte) bool_and::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_and::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$15 bne b1 //SEG102 bool_and::@return diff --git a/src/test/ref/bool-ifs.sym b/src/test/ref/bool-ifs.sym index 244458d71..c68163ac2 100644 --- a/src/test/ref/bool-ifs.sym +++ b/src/test/ref/bool-ifs.sym @@ -13,7 +13,7 @@ (byte) bool_and::i#1 reg byte x 16.5 (byte) bool_and::i#2 reg byte x 11.0 (byte*) bool_and::screen -(const byte*) bool_and::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) bool_and::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 (void()) bool_complex() (byte~) bool_complex::$1 reg byte x 7.333333333333333 (byte~) bool_complex::$5 reg byte a 5.5 @@ -29,7 +29,7 @@ (byte) bool_complex::i#1 reg byte y 16.5 (byte) bool_complex::i#2 reg byte y 9.777777777777779 (byte*) bool_complex::screen -(const byte*) bool_complex::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1144 +(const byte*) bool_complex::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $478 (void()) bool_not() (byte~) bool_not::$1 reg byte a 11.0 (label) bool_not::@1 @@ -42,7 +42,7 @@ (byte) bool_not::i#1 reg byte x 16.5 (byte) bool_not::i#2 reg byte x 11.0 (byte*) bool_not::screen -(const byte*) bool_not::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1104 +(const byte*) bool_not::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $450 (void()) bool_or() (byte~) bool_or::$1 reg byte a 11.0 (label) bool_or::@1 @@ -55,7 +55,7 @@ (byte) bool_or::i#1 reg byte x 16.5 (byte) bool_or::i#2 reg byte x 11.0 (byte*) bool_or::screen -(const byte*) bool_or::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1064 +(const byte*) bool_or::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $428 (void()) main() (label) main::@1 (label) main::@2 diff --git a/src/test/ref/bool-pointer.cfg b/src/test/ref/bool-pointer.cfg index d8d372459..a393a4a24 100644 --- a/src/test/ref/bool-pointer.cfg +++ b/src/test/ref/bool-pointer.cfg @@ -8,14 +8,14 @@ @end: scope:[] from @1 [3] phi() main: scope:[main] from @1 - [4] *(((bool*))(word/signed word/dword/signed dword) 1024) ← true - [5] *(((bool*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 1) ← false - [6] *(((bool*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 2) ← true - [7] if(*(((bool*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 2)) goto main::@2 + [4] *(((bool*))(word/signed word/dword/signed dword) $400) ← true + [5] *(((bool*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 1) ← false + [6] *(((bool*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 2) ← true + [7] if(*(((bool*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 2)) goto main::@2 to:main::@return main::@return: scope:[main] from main main::@2 [8] return to:@return main::@2: scope:[main] from main - [9] *(++((bool*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 2) ← true + [9] *(++((bool*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 2) ← true to:main::@return diff --git a/src/test/ref/bool-pointer.log b/src/test/ref/bool-pointer.log index 6610d952d..b1bf53d55 100644 --- a/src/test/ref/bool-pointer.log +++ b/src/test/ref/bool-pointer.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (bool*) main::bscreen#0 ← ((bool*)) (word/signed word/dword/signed dword) 1024 + (bool*) main::bscreen#0 ← ((bool*)) (word/signed word/dword/signed dword) $400 *((bool*) main::bscreen#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← true *((bool*) main::bscreen#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) ← false (bool*~) main::$0 ← (bool*) main::bscreen#0 + (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -53,7 +53,7 @@ Alias (bool*) main::bscreen#1 = (bool*~) main::$0 (bool*) main::bscreen#3 Successful SSA optimization Pass2AliasElimination Rewriting ! if()-condition to reversed if() [6] (bool~) main::$1 ← ! *((bool*) main::bscreen#1) Successful SSA optimization Pass2ConditionalAndOrRewriting -Constant (const bool*) main::bscreen#0 = ((bool*))1024 +Constant (const bool*) main::bscreen#0 = ((bool*))$400 Successful SSA optimization Pass2ConstantIdentification Constant (const bool*) main::bscreen#1 = main::bscreen#0+2 Successful SSA optimization Pass2ConstantIdentification @@ -65,11 +65,11 @@ Successful SSA optimization Pass2ConstantAdditionElimination Inlining constant with different constant siblings (const bool*) main::bscreen#0 Inlining constant with different constant siblings (const bool*) main::bscreen#1 Inlining constant with different constant siblings (const bool*) main::bscreen#2 -Constant inlined main::bscreen#2 = ++((bool*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined main::bscreen#0 = ((bool*))(word/signed word/dword/signed dword) 1024 -Constant inlined main::bscreen#1 = ((bool*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined main::bscreen#2 = ++((bool*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined main::bscreen#0 = ((bool*))(word/signed word/dword/signed dword) $400 +Constant inlined main::bscreen#1 = ((bool*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 2 Successful SSA optimization Pass2ConstantInlining -Simplifying constant plus zero ((bool*))1024+0 +Simplifying constant plus zero ((bool*))$400+0 Adding NOP phi() at start of @begin Adding NOP phi() at start of @1 Adding NOP phi() at start of @end @@ -93,16 +93,16 @@ FINAL CONTROL FLOW GRAPH @end: scope:[] from @1 [3] phi() main: scope:[main] from @1 - [4] *(((bool*))(word/signed word/dword/signed dword) 1024) ← true - [5] *(((bool*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 1) ← false - [6] *(((bool*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 2) ← true - [7] if(*(((bool*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 2)) goto main::@2 + [4] *(((bool*))(word/signed word/dword/signed dword) $400) ← true + [5] *(((bool*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 1) ← false + [6] *(((bool*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 2) ← true + [7] if(*(((bool*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 2)) goto main::@2 to:main::@return main::@return: scope:[main] from main main::@2 [8] return to:@return main::@2: scope:[main] from main - [9] *(++((bool*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 2) ← true + [9] *(++((bool*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 2) ← true to:main::@return @@ -137,16 +137,16 @@ bend_from_b1: bend: //SEG9 main main: { - //SEG10 [4] *(((bool*))(word/signed word/dword/signed dword) 1024) ← true -- _deref_pboc1=vboc2 + //SEG10 [4] *(((bool*))(word/signed word/dword/signed dword) $400) ← true -- _deref_pboc1=vboc2 lda #1 sta $400 - //SEG11 [5] *(((bool*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 1) ← false -- _deref_pboc1=vboc2 + //SEG11 [5] *(((bool*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 1) ← false -- _deref_pboc1=vboc2 lda #0 sta $400+1 - //SEG12 [6] *(((bool*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 2) ← true -- _deref_pboc1=vboc2 + //SEG12 [6] *(((bool*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 2) ← true -- _deref_pboc1=vboc2 lda #1 sta $400+2 - //SEG13 [7] if(*(((bool*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 2)) goto main::@2 -- _deref_pboc1_then_la1 + //SEG13 [7] if(*(((bool*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 2)) goto main::@2 -- _deref_pboc1_then_la1 lda $400+2 cmp #0 bne b2 @@ -157,18 +157,18 @@ main: { rts //SEG16 main::@2 b2: - //SEG17 [9] *(++((bool*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 2) ← true -- _deref_pboc1=vboc2 + //SEG17 [9] *(++((bool*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 2) ← true -- _deref_pboc1=vboc2 lda #1 sta $400+2+1 jmp breturn } REGISTER UPLIFT POTENTIAL REGISTERS -Statement [4] *(((bool*))(word/signed word/dword/signed dword) 1024) ← true [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [5] *(((bool*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 1) ← false [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [6] *(((bool*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 2) ← true [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [7] if(*(((bool*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 2)) goto main::@2 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [9] *(++((bool*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 2) ← true [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [4] *(((bool*))(word/signed word/dword/signed dword) $400) ← true [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [5] *(((bool*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 1) ← false [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [6] *(((bool*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 2) ← true [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [7] if(*(((bool*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 2)) goto main::@2 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [9] *(++((bool*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 2) ← true [ ] ( main:2 [ ] ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [main] @@ -201,16 +201,16 @@ bend_from_b1: bend: //SEG9 main main: { - //SEG10 [4] *(((bool*))(word/signed word/dword/signed dword) 1024) ← true -- _deref_pboc1=vboc2 + //SEG10 [4] *(((bool*))(word/signed word/dword/signed dword) $400) ← true -- _deref_pboc1=vboc2 lda #1 sta $400 - //SEG11 [5] *(((bool*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 1) ← false -- _deref_pboc1=vboc2 + //SEG11 [5] *(((bool*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 1) ← false -- _deref_pboc1=vboc2 lda #0 sta $400+1 - //SEG12 [6] *(((bool*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 2) ← true -- _deref_pboc1=vboc2 + //SEG12 [6] *(((bool*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 2) ← true -- _deref_pboc1=vboc2 lda #1 sta $400+2 - //SEG13 [7] if(*(((bool*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 2)) goto main::@2 -- _deref_pboc1_then_la1 + //SEG13 [7] if(*(((bool*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 2)) goto main::@2 -- _deref_pboc1_then_la1 lda $400+2 cmp #0 bne b2 @@ -221,7 +221,7 @@ main: { rts //SEG16 main::@2 b2: - //SEG17 [9] *(++((bool*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 2) ← true -- _deref_pboc1=vboc2 + //SEG17 [9] *(++((bool*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 2) ← true -- _deref_pboc1=vboc2 lda #1 sta $400+2+1 jmp breturn @@ -275,16 +275,16 @@ Score: 37 //SEG8 @end //SEG9 main main: { - //SEG10 [4] *(((bool*))(word/signed word/dword/signed dword) 1024) ← true -- _deref_pboc1=vboc2 + //SEG10 [4] *(((bool*))(word/signed word/dword/signed dword) $400) ← true -- _deref_pboc1=vboc2 lda #1 sta $400 - //SEG11 [5] *(((bool*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 1) ← false -- _deref_pboc1=vboc2 + //SEG11 [5] *(((bool*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 1) ← false -- _deref_pboc1=vboc2 lda #0 sta $400+1 - //SEG12 [6] *(((bool*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 2) ← true -- _deref_pboc1=vboc2 + //SEG12 [6] *(((bool*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 2) ← true -- _deref_pboc1=vboc2 lda #1 sta $400+2 - //SEG13 [7] if(*(((bool*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 2)) goto main::@2 -- _deref_pboc1_then_la1 + //SEG13 [7] if(*(((bool*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 2)) goto main::@2 -- _deref_pboc1_then_la1 cmp #0 bne b2 //SEG14 main::@return @@ -293,7 +293,7 @@ main: { rts //SEG16 main::@2 b2: - //SEG17 [9] *(++((bool*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 2) ← true -- _deref_pboc1=vboc2 + //SEG17 [9] *(++((bool*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 2) ← true -- _deref_pboc1=vboc2 lda #1 sta $400+2+1 jmp breturn diff --git a/src/test/ref/bool-vars.cfg b/src/test/ref/bool-vars.cfg index 596701b35..ce8cc7f43 100644 --- a/src/test/ref/bool-vars.cfg +++ b/src/test/ref/bool-vars.cfg @@ -31,7 +31,7 @@ bool_complex: scope:[bool_complex] from main::@3 to:bool_complex::@1 bool_complex::@1: scope:[bool_complex] from bool_complex bool_complex::@3 [14] (byte) bool_complex::i#2 ← phi( bool_complex/(byte/signed byte/word/signed word/dword/signed dword) 0 bool_complex::@3/(byte) bool_complex::i#1 ) - [15] (bool) bool_complex::o1#0 ← (byte) bool_complex::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 10 + [15] (bool) bool_complex::o1#0 ← (byte) bool_complex::i#2 < (byte/signed byte/word/signed word/dword/signed dword) $a [16] (byte~) bool_complex::$1 ← (byte) bool_complex::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [17] (bool) bool_complex::o2#0 ← (byte~) bool_complex::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 [18] if((bool) bool_complex::o1#0) goto bool_complex::@8 @@ -47,7 +47,7 @@ bool_complex::@2: scope:[bool_complex] from bool_complex::@8 bool_complex::@9 to:bool_complex::@3 bool_complex::@3: scope:[bool_complex] from bool_complex::@2 bool_complex::@4 [22] (byte) bool_complex::i#1 ← ++ (byte) bool_complex::i#2 - [23] if((byte) bool_complex::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_complex::@1 + [23] if((byte) bool_complex::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_complex::@1 to:bool_complex::@return bool_complex::@return: scope:[bool_complex] from bool_complex::@3 [24] return @@ -64,7 +64,7 @@ bool_not: scope:[bool_not] from main::@2 bool_not::@1: scope:[bool_not] from bool_not bool_not::@3 [28] (byte) bool_not::i#2 ← phi( bool_not/(byte/signed byte/word/signed word/dword/signed dword) 0 bool_not::@3/(byte) bool_not::i#1 ) [29] (byte~) bool_not::$1 ← (byte) bool_not::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 - [30] if((byte) bool_not::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_not::@4 + [30] if((byte) bool_not::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_not::@4 to:bool_not::@7 bool_not::@7: scope:[bool_not] from bool_not::@1 [31] if((byte~) bool_not::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_not::@4 @@ -74,7 +74,7 @@ bool_not::@2: scope:[bool_not] from bool_not::@7 to:bool_not::@3 bool_not::@3: scope:[bool_not] from bool_not::@2 bool_not::@4 [33] (byte) bool_not::i#1 ← ++ (byte) bool_not::i#2 - [34] if((byte) bool_not::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_not::@1 + [34] if((byte) bool_not::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_not::@1 to:bool_not::@return bool_not::@return: scope:[bool_not] from bool_not::@3 [35] return @@ -88,7 +88,7 @@ bool_or: scope:[bool_or] from main::@1 bool_or::@1: scope:[bool_or] from bool_or bool_or::@3 [38] (byte) bool_or::i#2 ← phi( bool_or/(byte/signed byte/word/signed word/dword/signed dword) 0 bool_or::@3/(byte) bool_or::i#1 ) [39] (byte~) bool_or::$1 ← (byte) bool_or::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 - [40] if((byte) bool_or::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_or::@2 + [40] if((byte) bool_or::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_or::@2 to:bool_or::@7 bool_or::@7: scope:[bool_or] from bool_or::@1 [41] if((byte~) bool_or::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_or::@2 @@ -98,7 +98,7 @@ bool_or::@4: scope:[bool_or] from bool_or::@7 to:bool_or::@3 bool_or::@3: scope:[bool_or] from bool_or::@2 bool_or::@4 [43] (byte) bool_or::i#1 ← ++ (byte) bool_or::i#2 - [44] if((byte) bool_or::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_or::@1 + [44] if((byte) bool_or::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_or::@1 to:bool_or::@return bool_or::@return: scope:[bool_or] from bool_or::@3 [45] return @@ -112,14 +112,14 @@ bool_and: scope:[bool_and] from main bool_and::@1: scope:[bool_and] from bool_and bool_and::@3 [48] (byte) bool_and::i#2 ← phi( bool_and/(byte/signed byte/word/signed word/dword/signed dword) 0 bool_and::@3/(byte) bool_and::i#1 ) [49] (byte~) bool_and::$1 ← (byte) bool_and::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 - [50] if((byte) bool_and::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_and::@7 + [50] if((byte) bool_and::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_and::@7 to:bool_and::@4 bool_and::@4: scope:[bool_and] from bool_and::@1 bool_and::@7 [51] *((const byte*) bool_and::screen#0 + (byte) bool_and::i#2) ← (byte) ' ' to:bool_and::@3 bool_and::@3: scope:[bool_and] from bool_and::@2 bool_and::@4 [52] (byte) bool_and::i#1 ← ++ (byte) bool_and::i#2 - [53] if((byte) bool_and::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_and::@1 + [53] if((byte) bool_and::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_and::@1 to:bool_and::@return bool_and::@return: scope:[bool_and] from bool_and::@3 [54] return diff --git a/src/test/ref/bool-vars.log b/src/test/ref/bool-vars.log index 93f783fd0..680189d3d 100644 --- a/src/test/ref/bool-vars.log +++ b/src/test/ref/bool-vars.log @@ -20,12 +20,12 @@ main::@return: scope:[main] from main::@4 return to:@return bool_and: scope:[bool_and] from main - (byte*) bool_and::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) bool_and::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) bool_and::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:bool_and::@1 bool_and::@1: scope:[bool_and] from bool_and bool_and::@3 (byte) bool_and::i#2 ← phi( bool_and/(byte) bool_and::i#0 bool_and::@3/(byte) bool_and::i#1 ) - (bool~) bool_and::$0 ← (byte) bool_and::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 10 + (bool~) bool_and::$0 ← (byte) bool_and::i#2 < (byte/signed byte/word/signed word/dword/signed dword) $a (bool) bool_and::o1#0 ← (bool~) bool_and::$0 (byte~) bool_and::$1 ← (byte) bool_and::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 (bool~) bool_and::$2 ← (byte~) bool_and::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -44,20 +44,20 @@ bool_and::@4: scope:[bool_and] from bool_and::@1 to:bool_and::@3 bool_and::@3: scope:[bool_and] from bool_and::@2 bool_and::@4 (byte) bool_and::i#5 ← phi( bool_and::@2/(byte) bool_and::i#3 bool_and::@4/(byte) bool_and::i#4 ) - (byte) bool_and::i#1 ← (byte) bool_and::i#5 + rangenext(0,20) - (bool~) bool_and::$4 ← (byte) bool_and::i#1 != rangelast(0,20) + (byte) bool_and::i#1 ← (byte) bool_and::i#5 + rangenext(0,$14) + (bool~) bool_and::$4 ← (byte) bool_and::i#1 != rangelast(0,$14) if((bool~) bool_and::$4) goto bool_and::@1 to:bool_and::@return bool_and::@return: scope:[bool_and] from bool_and::@3 return to:@return bool_or: scope:[bool_or] from main::@1 - (byte*) bool_or::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1064 + (byte*) bool_or::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $428 (byte) bool_or::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:bool_or::@1 bool_or::@1: scope:[bool_or] from bool_or bool_or::@3 (byte) bool_or::i#2 ← phi( bool_or/(byte) bool_or::i#0 bool_or::@3/(byte) bool_or::i#1 ) - (bool~) bool_or::$0 ← (byte) bool_or::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 10 + (bool~) bool_or::$0 ← (byte) bool_or::i#2 < (byte/signed byte/word/signed word/dword/signed dword) $a (bool) bool_or::o1#0 ← (bool~) bool_or::$0 (byte~) bool_or::$1 ← (byte) bool_or::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 (bool~) bool_or::$2 ← (byte~) bool_or::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -76,20 +76,20 @@ bool_or::@4: scope:[bool_or] from bool_or::@1 to:bool_or::@3 bool_or::@3: scope:[bool_or] from bool_or::@2 bool_or::@4 (byte) bool_or::i#5 ← phi( bool_or::@2/(byte) bool_or::i#3 bool_or::@4/(byte) bool_or::i#4 ) - (byte) bool_or::i#1 ← (byte) bool_or::i#5 + rangenext(0,20) - (bool~) bool_or::$4 ← (byte) bool_or::i#1 != rangelast(0,20) + (byte) bool_or::i#1 ← (byte) bool_or::i#5 + rangenext(0,$14) + (bool~) bool_or::$4 ← (byte) bool_or::i#1 != rangelast(0,$14) if((bool~) bool_or::$4) goto bool_or::@1 to:bool_or::@return bool_or::@return: scope:[bool_or] from bool_or::@3 return to:@return bool_not: scope:[bool_not] from main::@2 - (byte*) bool_not::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1104 + (byte*) bool_not::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $450 (byte) bool_not::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:bool_not::@1 bool_not::@1: scope:[bool_not] from bool_not bool_not::@3 (byte) bool_not::i#2 ← phi( bool_not/(byte) bool_not::i#0 bool_not::@3/(byte) bool_not::i#1 ) - (bool~) bool_not::$0 ← (byte) bool_not::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 10 + (bool~) bool_not::$0 ← (byte) bool_not::i#2 < (byte/signed byte/word/signed word/dword/signed dword) $a (bool) bool_not::o1#0 ← (bool~) bool_not::$0 (byte~) bool_not::$1 ← (byte) bool_not::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 (bool~) bool_not::$2 ← (byte~) bool_not::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -109,20 +109,20 @@ bool_not::@4: scope:[bool_not] from bool_not::@1 to:bool_not::@3 bool_not::@3: scope:[bool_not] from bool_not::@2 bool_not::@4 (byte) bool_not::i#5 ← phi( bool_not::@2/(byte) bool_not::i#3 bool_not::@4/(byte) bool_not::i#4 ) - (byte) bool_not::i#1 ← (byte) bool_not::i#5 + rangenext(0,20) - (bool~) bool_not::$5 ← (byte) bool_not::i#1 != rangelast(0,20) + (byte) bool_not::i#1 ← (byte) bool_not::i#5 + rangenext(0,$14) + (bool~) bool_not::$5 ← (byte) bool_not::i#1 != rangelast(0,$14) if((bool~) bool_not::$5) goto bool_not::@1 to:bool_not::@return bool_not::@return: scope:[bool_not] from bool_not::@3 return to:@return bool_complex: scope:[bool_complex] from main::@3 - (byte*) bool_complex::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1144 + (byte*) bool_complex::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $478 (byte) bool_complex::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:bool_complex::@1 bool_complex::@1: scope:[bool_complex] from bool_complex bool_complex::@3 (byte) bool_complex::i#2 ← phi( bool_complex/(byte) bool_complex::i#0 bool_complex::@3/(byte) bool_complex::i#1 ) - (bool~) bool_complex::$0 ← (byte) bool_complex::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 10 + (bool~) bool_complex::$0 ← (byte) bool_complex::i#2 < (byte/signed byte/word/signed word/dword/signed dword) $a (bool) bool_complex::o1#0 ← (bool~) bool_complex::$0 (byte~) bool_complex::$1 ← (byte) bool_complex::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 (bool~) bool_complex::$2 ← (byte~) bool_complex::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -146,8 +146,8 @@ bool_complex::@4: scope:[bool_complex] from bool_complex::@1 to:bool_complex::@3 bool_complex::@3: scope:[bool_complex] from bool_complex::@2 bool_complex::@4 (byte) bool_complex::i#5 ← phi( bool_complex::@2/(byte) bool_complex::i#3 bool_complex::@4/(byte) bool_complex::i#4 ) - (byte) bool_complex::i#1 ← (byte) bool_complex::i#5 + rangenext(0,20) - (bool~) bool_complex::$7 ← (byte) bool_complex::i#1 != rangelast(0,20) + (byte) bool_complex::i#1 ← (byte) bool_complex::i#5 + rangenext(0,$14) + (bool~) bool_complex::$7 ← (byte) bool_complex::i#1 != rangelast(0,$14) if((bool~) bool_complex::$7) goto bool_complex::@1 to:bool_complex::@return bool_complex::@return: scope:[bool_complex] from bool_complex::@3 @@ -311,10 +311,10 @@ Alias (byte) bool_or::i#2 = (byte) bool_or::i#5 Alias (byte) bool_not::i#2 = (byte) bool_not::i#5 Alias (byte) bool_complex::i#2 = (byte) bool_complex::i#5 Successful SSA optimization Pass2AliasElimination -Simple Condition (bool~) bool_and::$4 [23] if((byte) bool_and::i#1!=rangelast(0,20)) goto bool_and::@1 -Simple Condition (bool~) bool_or::$4 [43] if((byte) bool_or::i#1!=rangelast(0,20)) goto bool_or::@1 -Simple Condition (bool~) bool_not::$5 [64] if((byte) bool_not::i#1!=rangelast(0,20)) goto bool_not::@1 -Simple Condition (bool~) bool_complex::$7 [89] if((byte) bool_complex::i#1!=rangelast(0,20)) goto bool_complex::@1 +Simple Condition (bool~) bool_and::$4 [23] if((byte) bool_and::i#1!=rangelast(0,$14)) goto bool_and::@1 +Simple Condition (bool~) bool_or::$4 [43] if((byte) bool_or::i#1!=rangelast(0,$14)) goto bool_or::@1 +Simple Condition (bool~) bool_not::$5 [64] if((byte) bool_not::i#1!=rangelast(0,$14)) goto bool_not::@1 +Simple Condition (bool~) bool_complex::$7 [89] if((byte) bool_complex::i#1!=rangelast(0,$14)) goto bool_complex::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Rewriting && if()-condition to two if()s [13] (bool) bool_and::o3#0 ← (bool) bool_and::o1#0 && (bool) bool_and::o2#0 Successful SSA optimization Pass2ConditionalAndOrRewriting @@ -332,26 +332,26 @@ Rewriting ! if()-condition to reversed if() [77] (bool) bool_complex::o4#0 ← ! Successful SSA optimization Pass2ConditionalAndOrRewriting Rewriting || if()-condition to two if()s [76] (bool~) bool_complex::$4 ← (bool) bool_complex::o1#0 || (bool) bool_complex::o2#0 Successful SSA optimization Pass2ConditionalAndOrRewriting -Constant (const byte*) bool_and::screen#0 = ((byte*))1024 +Constant (const byte*) bool_and::screen#0 = ((byte*))$400 Constant (const byte) bool_and::i#0 = 0 -Constant (const byte*) bool_or::screen#0 = ((byte*))1064 +Constant (const byte*) bool_or::screen#0 = ((byte*))$428 Constant (const byte) bool_or::i#0 = 0 -Constant (const byte*) bool_not::screen#0 = ((byte*))1104 +Constant (const byte*) bool_not::screen#0 = ((byte*))$450 Constant (const byte) bool_not::i#0 = 0 -Constant (const byte*) bool_complex::screen#0 = ((byte*))1144 +Constant (const byte*) bool_complex::screen#0 = ((byte*))$478 Constant (const byte) bool_complex::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value bool_and::i#1 ← ++ bool_and::i#2 to ++ -Resolved ranged comparison value if(bool_and::i#1!=rangelast(0,20)) goto bool_and::@1 to (byte/signed byte/word/signed word/dword/signed dword) 21 +Resolved ranged comparison value if(bool_and::i#1!=rangelast(0,$14)) goto bool_and::@1 to (byte/signed byte/word/signed word/dword/signed dword) $15 Resolved ranged next value bool_or::i#1 ← ++ bool_or::i#2 to ++ -Resolved ranged comparison value if(bool_or::i#1!=rangelast(0,20)) goto bool_or::@1 to (byte/signed byte/word/signed word/dword/signed dword) 21 +Resolved ranged comparison value if(bool_or::i#1!=rangelast(0,$14)) goto bool_or::@1 to (byte/signed byte/word/signed word/dword/signed dword) $15 Resolved ranged next value bool_not::i#1 ← ++ bool_not::i#2 to ++ -Resolved ranged comparison value if(bool_not::i#1!=rangelast(0,20)) goto bool_not::@1 to (byte/signed byte/word/signed word/dword/signed dword) 21 +Resolved ranged comparison value if(bool_not::i#1!=rangelast(0,$14)) goto bool_not::@1 to (byte/signed byte/word/signed word/dword/signed dword) $15 Resolved ranged next value bool_complex::i#1 ← ++ bool_complex::i#2 to ++ -Resolved ranged comparison value if(bool_complex::i#1!=rangelast(0,20)) goto bool_complex::@1 to (byte/signed byte/word/signed word/dword/signed dword) 21 -Simple Condition (bool) bool_and::o1#0 [9] if((byte) bool_and::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_and::@7 -Simple Condition (bool) bool_or::o1#0 [19] if((byte) bool_or::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_or::@2 -Simple Condition (bool) bool_not::o1#0 [29] if((byte) bool_not::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_not::@4 +Resolved ranged comparison value if(bool_complex::i#1!=rangelast(0,$14)) goto bool_complex::@1 to (byte/signed byte/word/signed word/dword/signed dword) $15 +Simple Condition (bool) bool_and::o1#0 [9] if((byte) bool_and::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_and::@7 +Simple Condition (bool) bool_or::o1#0 [19] if((byte) bool_or::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_or::@2 +Simple Condition (bool) bool_not::o1#0 [29] if((byte) bool_not::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_not::@4 Simple Condition (bool) bool_and::o2#0 [46] if((byte~) bool_and::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_and::@2 Simple Condition (bool) bool_or::o2#0 [47] if((byte~) bool_or::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_or::@2 Simple Condition (bool) bool_not::o2#0 [48] if((byte~) bool_not::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_not::@4 @@ -440,7 +440,7 @@ bool_complex: scope:[bool_complex] from main::@3 to:bool_complex::@1 bool_complex::@1: scope:[bool_complex] from bool_complex bool_complex::@3 [14] (byte) bool_complex::i#2 ← phi( bool_complex/(byte/signed byte/word/signed word/dword/signed dword) 0 bool_complex::@3/(byte) bool_complex::i#1 ) - [15] (bool) bool_complex::o1#0 ← (byte) bool_complex::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 10 + [15] (bool) bool_complex::o1#0 ← (byte) bool_complex::i#2 < (byte/signed byte/word/signed word/dword/signed dword) $a [16] (byte~) bool_complex::$1 ← (byte) bool_complex::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [17] (bool) bool_complex::o2#0 ← (byte~) bool_complex::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 [18] if((bool) bool_complex::o1#0) goto bool_complex::@8 @@ -456,7 +456,7 @@ bool_complex::@2: scope:[bool_complex] from bool_complex::@8 bool_complex::@9 to:bool_complex::@3 bool_complex::@3: scope:[bool_complex] from bool_complex::@2 bool_complex::@4 [22] (byte) bool_complex::i#1 ← ++ (byte) bool_complex::i#2 - [23] if((byte) bool_complex::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_complex::@1 + [23] if((byte) bool_complex::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_complex::@1 to:bool_complex::@return bool_complex::@return: scope:[bool_complex] from bool_complex::@3 [24] return @@ -473,7 +473,7 @@ bool_not: scope:[bool_not] from main::@2 bool_not::@1: scope:[bool_not] from bool_not bool_not::@3 [28] (byte) bool_not::i#2 ← phi( bool_not/(byte/signed byte/word/signed word/dword/signed dword) 0 bool_not::@3/(byte) bool_not::i#1 ) [29] (byte~) bool_not::$1 ← (byte) bool_not::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 - [30] if((byte) bool_not::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_not::@4 + [30] if((byte) bool_not::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_not::@4 to:bool_not::@7 bool_not::@7: scope:[bool_not] from bool_not::@1 [31] if((byte~) bool_not::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_not::@4 @@ -483,7 +483,7 @@ bool_not::@2: scope:[bool_not] from bool_not::@7 to:bool_not::@3 bool_not::@3: scope:[bool_not] from bool_not::@2 bool_not::@4 [33] (byte) bool_not::i#1 ← ++ (byte) bool_not::i#2 - [34] if((byte) bool_not::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_not::@1 + [34] if((byte) bool_not::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_not::@1 to:bool_not::@return bool_not::@return: scope:[bool_not] from bool_not::@3 [35] return @@ -497,7 +497,7 @@ bool_or: scope:[bool_or] from main::@1 bool_or::@1: scope:[bool_or] from bool_or bool_or::@3 [38] (byte) bool_or::i#2 ← phi( bool_or/(byte/signed byte/word/signed word/dword/signed dword) 0 bool_or::@3/(byte) bool_or::i#1 ) [39] (byte~) bool_or::$1 ← (byte) bool_or::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 - [40] if((byte) bool_or::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_or::@2 + [40] if((byte) bool_or::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_or::@2 to:bool_or::@7 bool_or::@7: scope:[bool_or] from bool_or::@1 [41] if((byte~) bool_or::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_or::@2 @@ -507,7 +507,7 @@ bool_or::@4: scope:[bool_or] from bool_or::@7 to:bool_or::@3 bool_or::@3: scope:[bool_or] from bool_or::@2 bool_or::@4 [43] (byte) bool_or::i#1 ← ++ (byte) bool_or::i#2 - [44] if((byte) bool_or::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_or::@1 + [44] if((byte) bool_or::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_or::@1 to:bool_or::@return bool_or::@return: scope:[bool_or] from bool_or::@3 [45] return @@ -521,14 +521,14 @@ bool_and: scope:[bool_and] from main bool_and::@1: scope:[bool_and] from bool_and bool_and::@3 [48] (byte) bool_and::i#2 ← phi( bool_and/(byte/signed byte/word/signed word/dword/signed dword) 0 bool_and::@3/(byte) bool_and::i#1 ) [49] (byte~) bool_and::$1 ← (byte) bool_and::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 - [50] if((byte) bool_and::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_and::@7 + [50] if((byte) bool_and::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_and::@7 to:bool_and::@4 bool_and::@4: scope:[bool_and] from bool_and::@1 bool_and::@7 [51] *((const byte*) bool_and::screen#0 + (byte) bool_and::i#2) ← (byte) ' ' to:bool_and::@3 bool_and::@3: scope:[bool_and] from bool_and::@2 bool_and::@4 [52] (byte) bool_and::i#1 ← ++ (byte) bool_and::i#2 - [53] if((byte) bool_and::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_and::@1 + [53] if((byte) bool_and::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_and::@1 to:bool_and::@return bool_and::@return: scope:[bool_and] from bool_and::@3 [54] return @@ -699,7 +699,7 @@ bool_complex: { jmp b1 //SEG32 bool_complex::@1 b1: - //SEG33 [15] (bool) bool_complex::o1#0 ← (byte) bool_complex::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 10 -- vboz1=vbuz2_lt_vbuc1 + //SEG33 [15] (bool) bool_complex::o1#0 ← (byte) bool_complex::i#2 < (byte/signed byte/word/signed word/dword/signed dword) $a -- vboz1=vbuz2_lt_vbuc1 lda i cmp #$a lda #0 @@ -748,7 +748,7 @@ bool_complex: { b3: //SEG44 [22] (byte) bool_complex::i#1 ← ++ (byte) bool_complex::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG45 [23] if((byte) bool_complex::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_complex::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG45 [23] if((byte) bool_complex::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_complex::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$15 bne b1_from_b3 @@ -793,7 +793,7 @@ bool_not: { lda #1 and i sta _1 - //SEG59 [30] if((byte) bool_not::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_not::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG59 [30] if((byte) bool_not::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_not::@4 -- vbuz1_lt_vbuc1_then_la1 lda i cmp #$a bcc b4 @@ -816,7 +816,7 @@ bool_not: { b3: //SEG65 [33] (byte) bool_not::i#1 ← ++ (byte) bool_not::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG66 [34] if((byte) bool_not::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_not::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG66 [34] if((byte) bool_not::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_not::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$15 bne b1_from_b3 @@ -854,7 +854,7 @@ bool_or: { lda #1 and i sta _1 - //SEG78 [40] if((byte) bool_or::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_or::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG78 [40] if((byte) bool_or::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_or::@2 -- vbuz1_lt_vbuc1_then_la1 lda i cmp #$a bcc b2 @@ -877,7 +877,7 @@ bool_or: { b3: //SEG84 [43] (byte) bool_or::i#1 ← ++ (byte) bool_or::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG85 [44] if((byte) bool_or::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_or::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG85 [44] if((byte) bool_or::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_or::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$15 bne b1_from_b3 @@ -915,7 +915,7 @@ bool_and: { lda #1 and i sta _1 - //SEG97 [50] if((byte) bool_and::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_and::@7 -- vbuz1_lt_vbuc1_then_la1 + //SEG97 [50] if((byte) bool_and::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_and::@7 -- vbuz1_lt_vbuc1_then_la1 lda i cmp #$a bcc b7 @@ -931,7 +931,7 @@ bool_and: { b3: //SEG101 [52] (byte) bool_and::i#1 ← ++ (byte) bool_and::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG102 [53] if((byte) bool_and::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_and::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG102 [53] if((byte) bool_and::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_and::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$15 bne b1_from_b3 @@ -957,7 +957,7 @@ bool_and: { } REGISTER UPLIFT POTENTIAL REGISTERS -Statement [15] (bool) bool_complex::o1#0 ← (byte) bool_complex::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 10 [ bool_complex::i#2 bool_complex::o1#0 ] ( main:2::bool_complex:11 [ bool_complex::i#2 bool_complex::o1#0 ] ) always clobbers reg byte a +Statement [15] (bool) bool_complex::o1#0 ← (byte) bool_complex::i#2 < (byte/signed byte/word/signed word/dword/signed dword) $a [ bool_complex::i#2 bool_complex::o1#0 ] ( main:2::bool_complex:11 [ bool_complex::i#2 bool_complex::o1#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ bool_complex::i#2 bool_complex::i#1 ] Statement [16] (byte~) bool_complex::$1 ← (byte) bool_complex::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ bool_complex::i#2 bool_complex::o1#0 bool_complex::$1 ] ( main:2::bool_complex:11 [ bool_complex::i#2 bool_complex::o1#0 bool_complex::$1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BOOL:6 [ bool_complex::o1#0 ] @@ -981,7 +981,7 @@ Statement [49] (byte~) bool_and::$1 ← (byte) bool_and::i#2 & (byte/signed byte Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ bool_and::i#2 bool_and::i#1 ] Statement [51] *((const byte*) bool_and::screen#0 + (byte) bool_and::i#2) ← (byte) ' ' [ bool_and::i#2 ] ( main:2::bool_and:5 [ bool_and::i#2 ] ) always clobbers reg byte a Statement [56] *((const byte*) bool_and::screen#0 + (byte) bool_and::i#2) ← (byte) '*' [ bool_and::i#2 ] ( main:2::bool_and:5 [ bool_and::i#2 ] ) always clobbers reg byte a -Statement [15] (bool) bool_complex::o1#0 ← (byte) bool_complex::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 10 [ bool_complex::i#2 bool_complex::o1#0 ] ( main:2::bool_complex:11 [ bool_complex::i#2 bool_complex::o1#0 ] ) always clobbers reg byte a +Statement [15] (bool) bool_complex::o1#0 ← (byte) bool_complex::i#2 < (byte/signed byte/word/signed word/dword/signed dword) $a [ bool_complex::i#2 bool_complex::o1#0 ] ( main:2::bool_complex:11 [ bool_complex::i#2 bool_complex::o1#0 ] ) always clobbers reg byte a Statement [16] (byte~) bool_complex::$1 ← (byte) bool_complex::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ bool_complex::i#2 bool_complex::o1#0 bool_complex::$1 ] ( main:2::bool_complex:11 [ bool_complex::i#2 bool_complex::o1#0 bool_complex::$1 ] ) always clobbers reg byte a Statement [17] (bool) bool_complex::o2#0 ← (byte~) bool_complex::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 [ bool_complex::i#2 bool_complex::o1#0 bool_complex::o2#0 ] ( main:2::bool_complex:11 [ bool_complex::i#2 bool_complex::o1#0 bool_complex::o2#0 ] ) always clobbers reg byte a Statement [18] if((bool) bool_complex::o1#0) goto bool_complex::@8 [ bool_complex::i#2 bool_complex::o1#0 bool_complex::o2#0 ] ( main:2::bool_complex:11 [ bool_complex::i#2 bool_complex::o1#0 bool_complex::o2#0 ] ) always clobbers reg byte a @@ -1106,7 +1106,7 @@ bool_complex: { jmp b1 //SEG32 bool_complex::@1 b1: - //SEG33 [15] (bool) bool_complex::o1#0 ← (byte) bool_complex::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 10 -- vboz1=vbuxx_lt_vbuc1 + //SEG33 [15] (bool) bool_complex::o1#0 ← (byte) bool_complex::i#2 < (byte/signed byte/word/signed word/dword/signed dword) $a -- vboz1=vbuxx_lt_vbuc1 cpx #$a lda #0 rol @@ -1151,7 +1151,7 @@ bool_complex: { b3: //SEG44 [22] (byte) bool_complex::i#1 ← ++ (byte) bool_complex::i#2 -- vbuxx=_inc_vbuxx inx - //SEG45 [23] if((byte) bool_complex::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_complex::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG45 [23] if((byte) bool_complex::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_complex::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$15 bne b1_from_b3 jmp breturn @@ -1190,7 +1190,7 @@ bool_not: { //SEG58 [29] (byte~) bool_not::$1 ← (byte) bool_not::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_band_vbuc1 txa and #1 - //SEG59 [30] if((byte) bool_not::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_not::@4 -- vbuxx_lt_vbuc1_then_la1 + //SEG59 [30] if((byte) bool_not::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_not::@4 -- vbuxx_lt_vbuc1_then_la1 cpx #$a bcc b4 jmp b7 @@ -1210,7 +1210,7 @@ bool_not: { b3: //SEG65 [33] (byte) bool_not::i#1 ← ++ (byte) bool_not::i#2 -- vbuxx=_inc_vbuxx inx - //SEG66 [34] if((byte) bool_not::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_not::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG66 [34] if((byte) bool_not::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_not::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$15 bne b1_from_b3 jmp breturn @@ -1242,7 +1242,7 @@ bool_or: { //SEG77 [39] (byte~) bool_or::$1 ← (byte) bool_or::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_band_vbuc1 txa and #1 - //SEG78 [40] if((byte) bool_or::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_or::@2 -- vbuxx_lt_vbuc1_then_la1 + //SEG78 [40] if((byte) bool_or::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_or::@2 -- vbuxx_lt_vbuc1_then_la1 cpx #$a bcc b2 jmp b7 @@ -1262,7 +1262,7 @@ bool_or: { b3: //SEG84 [43] (byte) bool_or::i#1 ← ++ (byte) bool_or::i#2 -- vbuxx=_inc_vbuxx inx - //SEG85 [44] if((byte) bool_or::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_or::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG85 [44] if((byte) bool_or::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_or::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$15 bne b1_from_b3 jmp breturn @@ -1294,7 +1294,7 @@ bool_and: { //SEG96 [49] (byte~) bool_and::$1 ← (byte) bool_and::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_band_vbuc1 txa and #1 - //SEG97 [50] if((byte) bool_and::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_and::@7 -- vbuxx_lt_vbuc1_then_la1 + //SEG97 [50] if((byte) bool_and::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_and::@7 -- vbuxx_lt_vbuc1_then_la1 cpx #$a bcc b7 jmp b4 @@ -1308,7 +1308,7 @@ bool_and: { b3: //SEG101 [52] (byte) bool_and::i#1 ← ++ (byte) bool_and::i#2 -- vbuxx=_inc_vbuxx inx - //SEG102 [53] if((byte) bool_and::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_and::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG102 [53] if((byte) bool_and::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_and::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$15 bne b1_from_b3 jmp breturn @@ -1427,7 +1427,7 @@ FINAL SYMBOL TABLE (bool) bool_and::o2 (bool) bool_and::o3 (byte*) bool_and::screen -(const byte*) bool_and::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) bool_and::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 (void()) bool_complex() (byte~) bool_complex::$1 reg byte a 22.0 (label) bool_complex::@1 @@ -1449,7 +1449,7 @@ FINAL SYMBOL TABLE (bool) bool_complex::o4 (bool) bool_complex::o5 (byte*) bool_complex::screen -(const byte*) bool_complex::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1144 +(const byte*) bool_complex::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $478 (void()) bool_not() (byte~) bool_not::$1 reg byte a 11.0 (label) bool_not::@1 @@ -1465,7 +1465,7 @@ FINAL SYMBOL TABLE (bool) bool_not::o2 (bool) bool_not::o3 (byte*) bool_not::screen -(const byte*) bool_not::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1104 +(const byte*) bool_not::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $450 (void()) bool_or() (byte~) bool_or::$1 reg byte a 11.0 (label) bool_or::@1 @@ -1481,7 +1481,7 @@ FINAL SYMBOL TABLE (bool) bool_or::o2 (bool) bool_or::o3 (byte*) bool_or::screen -(const byte*) bool_or::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1064 +(const byte*) bool_or::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $428 (void()) main() (label) main::@1 (label) main::@2 @@ -1553,7 +1553,7 @@ bool_complex: { //SEG31 [14] phi (byte) bool_complex::i#2 = (byte) bool_complex::i#1 [phi:bool_complex::@3->bool_complex::@1#0] -- register_copy //SEG32 bool_complex::@1 b1: - //SEG33 [15] (bool) bool_complex::o1#0 ← (byte) bool_complex::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 10 -- vboz1=vbuxx_lt_vbuc1 + //SEG33 [15] (bool) bool_complex::o1#0 ← (byte) bool_complex::i#2 < (byte/signed byte/word/signed word/dword/signed dword) $a -- vboz1=vbuxx_lt_vbuc1 cpx #$a lda #0 rol @@ -1593,7 +1593,7 @@ bool_complex: { b3: //SEG44 [22] (byte) bool_complex::i#1 ← ++ (byte) bool_complex::i#2 -- vbuxx=_inc_vbuxx inx - //SEG45 [23] if((byte) bool_complex::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_complex::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG45 [23] if((byte) bool_complex::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_complex::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$15 bne b1 //SEG46 bool_complex::@return @@ -1626,7 +1626,7 @@ bool_not: { //SEG58 [29] (byte~) bool_not::$1 ← (byte) bool_not::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_band_vbuc1 txa and #1 - //SEG59 [30] if((byte) bool_not::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_not::@4 -- vbuxx_lt_vbuc1_then_la1 + //SEG59 [30] if((byte) bool_not::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_not::@4 -- vbuxx_lt_vbuc1_then_la1 cpx #$a bcc b4 //SEG60 bool_not::@7 @@ -1641,7 +1641,7 @@ bool_not: { b3: //SEG65 [33] (byte) bool_not::i#1 ← ++ (byte) bool_not::i#2 -- vbuxx=_inc_vbuxx inx - //SEG66 [34] if((byte) bool_not::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_not::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG66 [34] if((byte) bool_not::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_not::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$15 bne b1 //SEG67 bool_not::@return @@ -1667,7 +1667,7 @@ bool_or: { //SEG77 [39] (byte~) bool_or::$1 ← (byte) bool_or::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_band_vbuc1 txa and #1 - //SEG78 [40] if((byte) bool_or::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_or::@2 -- vbuxx_lt_vbuc1_then_la1 + //SEG78 [40] if((byte) bool_or::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_or::@2 -- vbuxx_lt_vbuc1_then_la1 cpx #$a bcc b2 //SEG79 bool_or::@7 @@ -1682,7 +1682,7 @@ bool_or: { b3: //SEG84 [43] (byte) bool_or::i#1 ← ++ (byte) bool_or::i#2 -- vbuxx=_inc_vbuxx inx - //SEG85 [44] if((byte) bool_or::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_or::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG85 [44] if((byte) bool_or::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_or::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$15 bne b1 //SEG86 bool_or::@return @@ -1708,7 +1708,7 @@ bool_and: { //SEG96 [49] (byte~) bool_and::$1 ← (byte) bool_and::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_band_vbuc1 txa and #1 - //SEG97 [50] if((byte) bool_and::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto bool_and::@7 -- vbuxx_lt_vbuc1_then_la1 + //SEG97 [50] if((byte) bool_and::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto bool_and::@7 -- vbuxx_lt_vbuc1_then_la1 cpx #$a bcc b7 //SEG98 bool_and::@4 @@ -1720,7 +1720,7 @@ bool_and: { b3: //SEG101 [52] (byte) bool_and::i#1 ← ++ (byte) bool_and::i#2 -- vbuxx=_inc_vbuxx inx - //SEG102 [53] if((byte) bool_and::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto bool_and::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG102 [53] if((byte) bool_and::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $15) goto bool_and::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$15 bne b1 //SEG103 bool_and::@return diff --git a/src/test/ref/bool-vars.sym b/src/test/ref/bool-vars.sym index aac695742..63e7701a0 100644 --- a/src/test/ref/bool-vars.sym +++ b/src/test/ref/bool-vars.sym @@ -16,7 +16,7 @@ (bool) bool_and::o2 (bool) bool_and::o3 (byte*) bool_and::screen -(const byte*) bool_and::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) bool_and::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 (void()) bool_complex() (byte~) bool_complex::$1 reg byte a 22.0 (label) bool_complex::@1 @@ -38,7 +38,7 @@ (bool) bool_complex::o4 (bool) bool_complex::o5 (byte*) bool_complex::screen -(const byte*) bool_complex::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1144 +(const byte*) bool_complex::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $478 (void()) bool_not() (byte~) bool_not::$1 reg byte a 11.0 (label) bool_not::@1 @@ -54,7 +54,7 @@ (bool) bool_not::o2 (bool) bool_not::o3 (byte*) bool_not::screen -(const byte*) bool_not::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1104 +(const byte*) bool_not::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $450 (void()) bool_or() (byte~) bool_or::$1 reg byte a 11.0 (label) bool_or::@1 @@ -70,7 +70,7 @@ (bool) bool_or::o2 (bool) bool_or::o3 (byte*) bool_or::screen -(const byte*) bool_or::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1064 +(const byte*) bool_or::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $428 (void()) main() (label) main::@1 (label) main::@2 diff --git a/src/test/ref/bresenham.cfg b/src/test/ref/bresenham.cfg index 1b89c95d5..a63e2b128 100644 --- a/src/test/ref/bresenham.cfg +++ b/src/test/ref/bresenham.cfg @@ -14,7 +14,7 @@ main::@1: scope:[main] from main main::@2 [5] (byte) main::y#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 4 main::@2/(byte) main::y#4 ) [5] (byte) main::e#3 ← phi( main/(const byte) main::yd#0/(byte/signed byte/word/signed word/dword/signed dword) 2 main::@2/(byte) main::e#5 ) [5] (byte) main::x#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 4 main::@2/(byte) main::x#1 ) - [5] (byte*) main::cursor#3 ← phi( main/(const byte[40*25]) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4 main::@2/(byte*) main::cursor#5 ) + [5] (byte*) main::cursor#3 ← phi( main/(const byte[$28*$19]) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4 main::@2/(byte*) main::cursor#5 ) [6] *((byte*) main::cursor#3) ← (const byte) STAR#0 [7] (byte) main::x#1 ← (byte) main::x#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 [8] (byte*) main::cursor#1 ← (byte*) main::cursor#3 + (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -23,7 +23,7 @@ main::@1: scope:[main] from main main::@2 to:main::@3 main::@3: scope:[main] from main::@1 [11] (byte) main::y#1 ← (byte) main::y#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [12] (byte*) main::cursor#2 ← (byte*) main::cursor#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [12] (byte*) main::cursor#2 ← (byte*) main::cursor#1 + (byte/signed byte/word/signed word/dword/signed dword) $28 [13] (byte) main::e#2 ← (byte) main::e#1 - (const byte) main::xd#0 to:main::@2 main::@2: scope:[main] from main::@1 main::@3 diff --git a/src/test/ref/bresenham.log b/src/test/ref/bresenham.log index 287c448bd..d61e9acd7 100644 --- a/src/test/ref/bresenham.log +++ b/src/test/ref/bresenham.log @@ -1,16 +1,16 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte) STAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 81 - (word/signed word/dword/signed dword~) $0 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 25 - (byte[$0]) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte) STAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $51 + (word/signed word/dword/signed dword~) $0 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) $19 + (byte[$0]) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@1 main: scope:[main] from @1 (byte) STAR#2 ← phi( @1/(byte) STAR#4 ) (byte) main::x0#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) main::y0#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte) main::x1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 39 - (byte) main::y1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 24 + (byte) main::x1#0 ← (byte/signed byte/word/signed word/dword/signed dword) $27 + (byte) main::y1#0 ← (byte/signed byte/word/signed word/dword/signed dword) $18 (byte~) main::$0 ← (byte) main::x1#0 - (byte) main::x0#0 (byte) main::xd#0 ← (byte~) main::$0 (byte~) main::$1 ← (byte) main::y1#0 - (byte) main::y0#0 @@ -19,7 +19,7 @@ main: scope:[main] from @1 (byte) main::y#0 ← (byte) main::y0#0 (byte/signed word/word/dword/signed dword~) main::$2 ← (byte) main::yd#0 / (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) main::e#0 ← (byte/signed word/word/dword/signed dword~) main::$2 - (byte/signed word/word/dword/signed dword~) main::$3 ← (byte) main::y#0 * (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte/signed word/word/dword/signed dword~) main::$3 ← (byte) main::y#0 * (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*~) main::$4 ← (byte[$0]) SCREEN#0 + (byte/signed word/word/dword/signed dword~) main::$3 (byte*~) main::$5 ← (byte*~) main::$4 + (byte) main::x#0 (byte*) main::cursor#0 ← (byte*~) main::$5 @@ -68,7 +68,7 @@ main::@3: scope:[main] from main::@1 (byte) main::y#2 ← phi( main::@1/(byte) main::y#3 ) (byte/signed word/word/dword/signed dword~) main::$11 ← (byte) main::y#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) main::y#1 ← (byte/signed word/word/dword/signed dword~) main::$11 - (byte*~) main::$12 ← (byte*) main::cursor#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) main::$12 ← (byte*) main::cursor#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) main::cursor#2 ← (byte*~) main::$12 (byte~) main::$13 ← (byte) main::e#4 - (byte) main::xd#2 (byte) main::e#2 ← (byte~) main::$13 @@ -211,17 +211,17 @@ Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) main::$10 [30] if((byte) main::xd#0>(byte) main::e#1) goto main::@2 Simple Condition (bool~) main::$15 [34] if((byte) main::x#1<(byte/signed word/word/dword/signed dword~) main::$14) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte) STAR#0 = 81 -Constant (const word/signed word/dword/signed dword) $0 = 40*25 -Constant (const byte[$0]) SCREEN#0 = ((byte*))1024 +Constant (const byte) STAR#0 = $51 +Constant (const word/signed word/dword/signed dword) $0 = $28*$19 +Constant (const byte[$0]) SCREEN#0 = ((byte*))$400 Constant (const byte) main::x#0 = 4 Constant (const byte) main::y#0 = 4 -Constant (const byte) main::x1#0 = 39 -Constant (const byte) main::y1#0 = 24 +Constant (const byte) main::x1#0 = $27 +Constant (const byte) main::y1#0 = $18 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::xd#0 = main::x1#0-main::x#0 Constant (const byte) main::yd#0 = main::y1#0-main::y#0 -Constant (const byte/signed word/word/dword/signed dword) main::$3 = main::y#0*40 +Constant (const byte/signed word/word/dword/signed dword) main::$3 = main::y#0*$28 Constant (const byte/signed word/word/dword/signed dword) main::$14 = main::x1#0+1 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::e#0 = main::yd#0/2 @@ -233,13 +233,13 @@ Inlining constant with var siblings (const byte) main::x#0 Inlining constant with var siblings (const byte) main::y#0 Inlining constant with var siblings (const byte) main::e#0 Inlining constant with var siblings (const byte*) main::cursor#0 -Constant inlined main::cursor#0 = (const byte[40*25]) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4 -Constant inlined main::$3 = (byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::cursor#0 = (const byte[$28*$19]) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4 +Constant inlined main::$3 = (byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::$14 = (const byte) main::x1#0+(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined main::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 4 -Constant inlined main::$4 = (const byte[40*25]) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$4 = (const byte[$28*$19]) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 4 -Constant inlined $0 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 25 +Constant inlined $0 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $19 Constant inlined main::e#0 = (const byte) main::yd#0/(byte/signed byte/word/signed word/dword/signed dword) 2 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@5(between main::@2 and main::@1) @@ -287,7 +287,7 @@ main::@1: scope:[main] from main main::@2 [5] (byte) main::y#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 4 main::@2/(byte) main::y#4 ) [5] (byte) main::e#3 ← phi( main/(const byte) main::yd#0/(byte/signed byte/word/signed word/dword/signed dword) 2 main::@2/(byte) main::e#5 ) [5] (byte) main::x#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 4 main::@2/(byte) main::x#1 ) - [5] (byte*) main::cursor#3 ← phi( main/(const byte[40*25]) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4 main::@2/(byte*) main::cursor#5 ) + [5] (byte*) main::cursor#3 ← phi( main/(const byte[$28*$19]) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4 main::@2/(byte*) main::cursor#5 ) [6] *((byte*) main::cursor#3) ← (const byte) STAR#0 [7] (byte) main::x#1 ← (byte) main::x#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 [8] (byte*) main::cursor#1 ← (byte*) main::cursor#3 + (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -296,7 +296,7 @@ main::@1: scope:[main] from main main::@2 to:main::@3 main::@3: scope:[main] from main::@1 [11] (byte) main::y#1 ← (byte) main::y#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [12] (byte*) main::cursor#2 ← (byte*) main::cursor#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [12] (byte*) main::cursor#2 ← (byte*) main::cursor#1 + (byte/signed byte/word/signed word/dword/signed dword) $28 [13] (byte) main::e#2 ← (byte) main::e#1 - (const byte) main::xd#0 to:main::@2 main::@2: scope:[main] from main::@1 main::@3 @@ -311,7 +311,7 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS -(byte[40*25]) SCREEN +(byte[$28*$19]) SCREEN (byte) STAR (void()) main() (byte*) main::cursor @@ -399,7 +399,7 @@ main: { //SEG14 [5] phi (byte) main::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 4 [phi:main->main::@1#2] -- vbuz1=vbuc1 lda #4 sta x - //SEG15 [5] phi (byte*) main::cursor#3 = (const byte[40*25]) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4 [phi:main->main::@1#3] -- pbuz1=pbuc1 + //SEG15 [5] phi (byte*) main::cursor#3 = (const byte[$28*$19]) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4 [phi:main->main::@1#3] -- pbuz1=pbuc1 lda #SCREEN+4*$28+4 @@ -439,7 +439,7 @@ main: { b3: //SEG28 [11] (byte) main::y#1 ← (byte) main::y#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_plus_1 inc y - //SEG29 [12] (byte*) main::cursor#2 ← (byte*) main::cursor#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG29 [12] (byte*) main::cursor#2 ← (byte*) main::cursor#1 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda cursor clc adc #$28 @@ -481,11 +481,11 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:5 [ ma Removing always clobbered register reg byte a as potential for zp ZP_BYTE:6 [ main::y#2 main::y#4 main::y#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:6 [ main::y#2 main::y#4 main::y#1 ] Statement [9] (byte) main::e#1 ← (byte) main::e#3 + (const byte) main::yd#0 [ main::y#2 main::x#1 main::cursor#1 main::e#1 ] ( main:2 [ main::y#2 main::x#1 main::cursor#1 main::e#1 ] ) always clobbers reg byte a -Statement [12] (byte*) main::cursor#2 ← (byte*) main::cursor#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::x#1 main::e#1 main::y#1 main::cursor#2 ] ( main:2 [ main::x#1 main::e#1 main::y#1 main::cursor#2 ] ) always clobbers reg byte a +Statement [12] (byte*) main::cursor#2 ← (byte*) main::cursor#1 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ main::x#1 main::e#1 main::y#1 main::cursor#2 ] ( main:2 [ main::x#1 main::e#1 main::y#1 main::cursor#2 ] ) always clobbers reg byte a Statement [13] (byte) main::e#2 ← (byte) main::e#1 - (const byte) main::xd#0 [ main::x#1 main::y#1 main::cursor#2 main::e#2 ] ( main:2 [ main::x#1 main::y#1 main::cursor#2 main::e#2 ] ) always clobbers reg byte a Statement [6] *((byte*) main::cursor#3) ← (const byte) STAR#0 [ main::cursor#3 main::x#2 main::e#3 main::y#2 ] ( main:2 [ main::cursor#3 main::x#2 main::e#3 main::y#2 ] ) always clobbers reg byte a reg byte y Statement [9] (byte) main::e#1 ← (byte) main::e#3 + (const byte) main::yd#0 [ main::y#2 main::x#1 main::cursor#1 main::e#1 ] ( main:2 [ main::y#2 main::x#1 main::cursor#1 main::e#1 ] ) always clobbers reg byte a -Statement [12] (byte*) main::cursor#2 ← (byte*) main::cursor#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::x#1 main::e#1 main::y#1 main::cursor#2 ] ( main:2 [ main::x#1 main::e#1 main::y#1 main::cursor#2 ] ) always clobbers reg byte a +Statement [12] (byte*) main::cursor#2 ← (byte*) main::cursor#1 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ main::x#1 main::e#1 main::y#1 main::cursor#2 ] ( main:2 [ main::x#1 main::e#1 main::y#1 main::cursor#2 ] ) always clobbers reg byte a Statement [13] (byte) main::e#2 ← (byte) main::e#1 - (const byte) main::xd#0 [ main::x#1 main::y#1 main::cursor#2 main::e#2 ] ( main:2 [ main::x#1 main::y#1 main::cursor#2 main::e#2 ] ) always clobbers reg byte a Potential registers zp ZP_WORD:2 [ main::cursor#3 main::cursor#5 main::cursor#1 main::cursor#2 ] : zp ZP_WORD:2 , Potential registers zp ZP_BYTE:4 [ main::x#2 main::x#1 ] : zp ZP_BYTE:4 , reg byte x , @@ -548,7 +548,7 @@ main: { //SEG14 [5] phi (byte) main::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 4 [phi:main->main::@1#2] -- vbuz1=vbuc1 lda #4 sta x - //SEG15 [5] phi (byte*) main::cursor#3 = (const byte[40*25]) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4 [phi:main->main::@1#3] -- pbuz1=pbuc1 + //SEG15 [5] phi (byte*) main::cursor#3 = (const byte[$28*$19]) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4 [phi:main->main::@1#3] -- pbuz1=pbuc1 lda #SCREEN+4*$28+4 @@ -587,7 +587,7 @@ main: { b3: //SEG28 [11] (byte) main::y#1 ← (byte) main::y#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_plus_1 inc y - //SEG29 [12] (byte*) main::cursor#2 ← (byte*) main::cursor#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG29 [12] (byte*) main::cursor#2 ← (byte*) main::cursor#1 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda cursor clc adc #$28 @@ -657,10 +657,10 @@ FINAL SYMBOL TABLE (label) @1 (label) @begin (label) @end -(byte[40*25]) SCREEN -(const byte[40*25]) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(byte[$28*$19]) SCREEN +(const byte[$28*$19]) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) STAR -(const byte) STAR#0 STAR = (byte/signed byte/word/signed word/dword/signed dword) 81 +(const byte) STAR#0 STAR = (byte/signed byte/word/signed word/dword/signed dword) $51 (void()) main() (label) main::@1 (label) main::@2 @@ -681,7 +681,7 @@ FINAL SYMBOL TABLE (byte) main::x#2 x zp ZP_BYTE:4 11.0 (byte) main::x0 (byte) main::x1 -(const byte) main::x1#0 x1 = (byte/signed byte/word/signed word/dword/signed dword) 39 +(const byte) main::x1#0 x1 = (byte/signed byte/word/signed word/dword/signed dword) $27 (byte) main::xd (const byte) main::xd#0 xd = (const byte) main::x1#0-(byte/signed byte/word/signed word/dword/signed dword) 4 (byte) main::y @@ -690,7 +690,7 @@ FINAL SYMBOL TABLE (byte) main::y#4 y zp ZP_BYTE:5 16.5 (byte) main::y0 (byte) main::y1 -(const byte) main::y1#0 y1 = (byte/signed byte/word/signed word/dword/signed dword) 24 +(const byte) main::y1#0 y1 = (byte/signed byte/word/signed word/dword/signed dword) $18 (byte) main::yd (const byte) main::yd#0 yd = (const byte) main::y1#0-(byte/signed byte/word/signed word/dword/signed dword) 4 @@ -735,7 +735,7 @@ main: { ldx #yd/2 //SEG14 [5] phi (byte) main::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 4 [phi:main->main::@1#2] -- vbuz1=vbuc1 sta x - //SEG15 [5] phi (byte*) main::cursor#3 = (const byte[40*25]) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4 [phi:main->main::@1#3] -- pbuz1=pbuc1 + //SEG15 [5] phi (byte*) main::cursor#3 = (const byte[$28*$19]) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4 [phi:main->main::@1#3] -- pbuz1=pbuc1 lda #SCREEN+4*$28+4 @@ -769,7 +769,7 @@ main: { //SEG27 main::@3 //SEG28 [11] (byte) main::y#1 ← (byte) main::y#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_plus_1 inc y - //SEG29 [12] (byte*) main::cursor#2 ← (byte*) main::cursor#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG29 [12] (byte*) main::cursor#2 ← (byte*) main::cursor#1 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda cursor clc adc #$28 diff --git a/src/test/ref/bresenham.sym b/src/test/ref/bresenham.sym index 5ec99ec96..221ec026c 100644 --- a/src/test/ref/bresenham.sym +++ b/src/test/ref/bresenham.sym @@ -1,10 +1,10 @@ (label) @1 (label) @begin (label) @end -(byte[40*25]) SCREEN -(const byte[40*25]) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(byte[$28*$19]) SCREEN +(const byte[$28*$19]) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) STAR -(const byte) STAR#0 STAR = (byte/signed byte/word/signed word/dword/signed dword) 81 +(const byte) STAR#0 STAR = (byte/signed byte/word/signed word/dword/signed dword) $51 (void()) main() (label) main::@1 (label) main::@2 @@ -25,7 +25,7 @@ (byte) main::x#2 x zp ZP_BYTE:4 11.0 (byte) main::x0 (byte) main::x1 -(const byte) main::x1#0 x1 = (byte/signed byte/word/signed word/dword/signed dword) 39 +(const byte) main::x1#0 x1 = (byte/signed byte/word/signed word/dword/signed dword) $27 (byte) main::xd (const byte) main::xd#0 xd = (const byte) main::x1#0-(byte/signed byte/word/signed word/dword/signed dword) 4 (byte) main::y @@ -34,7 +34,7 @@ (byte) main::y#4 y zp ZP_BYTE:5 16.5 (byte) main::y0 (byte) main::y1 -(const byte) main::y1#0 y1 = (byte/signed byte/word/signed word/dword/signed dword) 24 +(const byte) main::y1#0 y1 = (byte/signed byte/word/signed word/dword/signed dword) $18 (byte) main::yd (const byte) main::yd#0 yd = (const byte) main::y1#0-(byte/signed byte/word/signed word/dword/signed dword) 4 diff --git a/src/test/ref/bresenhamarr.cfg b/src/test/ref/bresenhamarr.cfg index 61b2e7962..a1a74d1e9 100644 --- a/src/test/ref/bresenhamarr.cfg +++ b/src/test/ref/bresenhamarr.cfg @@ -15,7 +15,7 @@ main::@1: scope:[main] from main main::@2 [5] (byte) main::e#3 ← phi( main/(const byte) main::yd#0/(byte/signed byte/word/signed word/dword/signed dword) 2 main::@2/(byte) main::e#5 ) [5] (byte) main::x#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@2/(byte) main::x#1 ) [5] (word) main::idx#3 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@2/(word) main::idx#5 ) - [6] *((const byte[40*25]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 + [6] *((const byte[$28*$19]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 [7] (byte) main::x#1 ← (byte) main::x#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 [8] (word) main::idx#1 ← (word) main::idx#3 + (byte/signed byte/word/signed word/dword/signed dword) 1 [9] (byte) main::e#1 ← (byte) main::e#3 + (const byte) main::yd#0 @@ -23,7 +23,7 @@ main::@1: scope:[main] from main main::@2 to:main::@3 main::@3: scope:[main] from main::@1 [11] (byte) main::y#1 ← (byte) main::y#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [12] (word) main::idx#2 ← (word) main::idx#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [12] (word) main::idx#2 ← (word) main::idx#1 + (byte/signed byte/word/signed word/dword/signed dword) $28 [13] (byte) main::e#2 ← (byte) main::e#1 - (const byte) main::xd#0 to:main::@2 main::@2: scope:[main] from main::@1 main::@3 diff --git a/src/test/ref/bresenhamarr.log b/src/test/ref/bresenhamarr.log index e061bc279..69e512e5b 100644 --- a/src/test/ref/bresenhamarr.log +++ b/src/test/ref/bresenhamarr.log @@ -3,13 +3,13 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte) main::STAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 81 - (word/signed word/dword/signed dword~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 25 - (byte[main::$0]) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte) main::STAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $51 + (word/signed word/dword/signed dword~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) $19 + (byte[main::$0]) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) main::x0#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) main::y0#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte) main::x1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 39 - (byte) main::y1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 24 + (byte) main::x1#0 ← (byte/signed byte/word/signed word/dword/signed dword) $27 + (byte) main::y1#0 ← (byte/signed byte/word/signed word/dword/signed dword) $18 (byte~) main::$1 ← (byte) main::x1#0 - (byte) main::x0#0 (byte) main::xd#0 ← (byte~) main::$1 (byte~) main::$2 ← (byte) main::y1#0 - (byte) main::y0#0 @@ -18,7 +18,7 @@ main: scope:[main] from @1 (byte) main::y#0 ← (byte) main::y0#0 (byte/signed word/word/dword/signed dword~) main::$3 ← (byte) main::yd#0 / (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) main::e#0 ← (byte/signed word/word/dword/signed dword~) main::$3 - (byte/signed word/word/dword/signed dword~) main::$4 ← (byte) main::y#0 * (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte/signed word/word/dword/signed dword~) main::$4 ← (byte) main::y#0 * (byte/signed byte/word/signed word/dword/signed dword) $28 (byte/signed word/word/dword/signed dword~) main::$5 ← (byte) main::x#0 + (byte/signed word/word/dword/signed dword~) main::$4 (word) main::idx#0 ← (byte/signed word/word/dword/signed dword~) main::$5 to:main::@1 @@ -66,7 +66,7 @@ main::@3: scope:[main] from main::@1 (byte) main::y#2 ← phi( main::@1/(byte) main::y#3 ) (byte/signed word/word/dword/signed dword~) main::$11 ← (byte) main::y#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) main::y#1 ← (byte/signed word/word/dword/signed dword~) main::$11 - (word/signed dword/dword~) main::$12 ← (word) main::idx#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (word/signed dword/dword~) main::$12 ← (word) main::idx#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 (word) main::idx#2 ← (word/signed dword/dword~) main::$12 (byte~) main::$13 ← (byte) main::e#4 - (byte) main::xd#2 (byte) main::e#2 ← (byte~) main::$13 @@ -203,17 +203,17 @@ Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) main::$10 [28] if((byte) main::xd#0>=(byte) main::e#1) goto main::@2 Simple Condition (bool~) main::$15 [32] if((byte) main::x#1<(byte/signed word/word/dword/signed dword~) main::$14) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte) main::STAR#0 = 81 -Constant (const word/signed word/dword/signed dword) main::$0 = 40*25 -Constant (const byte[main::$0]) main::screen#0 = ((byte*))1024 +Constant (const byte) main::STAR#0 = $51 +Constant (const word/signed word/dword/signed dword) main::$0 = $28*$19 +Constant (const byte[main::$0]) main::screen#0 = ((byte*))$400 Constant (const byte) main::x#0 = 0 Constant (const byte) main::y#0 = 0 -Constant (const byte) main::x1#0 = 39 -Constant (const byte) main::y1#0 = 24 +Constant (const byte) main::x1#0 = $27 +Constant (const byte) main::y1#0 = $18 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::xd#0 = main::x1#0-main::x#0 Constant (const byte) main::yd#0 = main::y1#0-main::y#0 -Constant (const byte/signed word/word/dword/signed dword) main::$4 = main::y#0*40 +Constant (const byte/signed word/word/dword/signed dword) main::$4 = main::y#0*$28 Constant (const byte/signed word/word/dword/signed dword) main::$14 = main::x1#0+1 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::e#0 = main::yd#0/2 @@ -223,16 +223,16 @@ Inlining constant with var siblings (const byte) main::x#0 Inlining constant with var siblings (const byte) main::y#0 Inlining constant with var siblings (const byte) main::e#0 Inlining constant with var siblings (const word) main::idx#0 -Constant inlined main::idx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0+(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$0 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 25 +Constant inlined main::idx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0+(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$0 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $19 Constant inlined main::$14 = (const byte) main::x1#0+(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined main::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$4 = (byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$4 = (byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::e#0 = (const byte) main::yd#0/(byte/signed byte/word/signed word/dword/signed dword) 2 Successful SSA optimization Pass2ConstantInlining -Simplifying constant plus zero 0+0*40 -Simplifying constant multiply by zero 0*40 +Simplifying constant plus zero 0+0*$28 +Simplifying constant multiply by zero 0*$28 Added new block during phi lifting main::@5(between main::@2 and main::@1) Added new block during phi lifting main::@6(between main::@1 and main::@2) Adding NOP phi() at start of @begin @@ -279,7 +279,7 @@ main::@1: scope:[main] from main main::@2 [5] (byte) main::e#3 ← phi( main/(const byte) main::yd#0/(byte/signed byte/word/signed word/dword/signed dword) 2 main::@2/(byte) main::e#5 ) [5] (byte) main::x#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@2/(byte) main::x#1 ) [5] (word) main::idx#3 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@2/(word) main::idx#5 ) - [6] *((const byte[40*25]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 + [6] *((const byte[$28*$19]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 [7] (byte) main::x#1 ← (byte) main::x#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 [8] (word) main::idx#1 ← (word) main::idx#3 + (byte/signed byte/word/signed word/dword/signed dword) 1 [9] (byte) main::e#1 ← (byte) main::e#3 + (const byte) main::yd#0 @@ -287,7 +287,7 @@ main::@1: scope:[main] from main main::@2 to:main::@3 main::@3: scope:[main] from main::@1 [11] (byte) main::y#1 ← (byte) main::y#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [12] (word) main::idx#2 ← (word) main::idx#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [12] (word) main::idx#2 ← (word) main::idx#1 + (byte/signed byte/word/signed word/dword/signed dword) $28 [13] (byte) main::e#2 ← (byte) main::e#1 - (const byte) main::xd#0 to:main::@2 main::@2: scope:[main] from main::@1 main::@3 @@ -314,7 +314,7 @@ VARIABLE REGISTER WEIGHTS (word) main::idx#2 11.0 (word) main::idx#3 11.0 (word) main::idx#5 16.5 -(byte[40*25]) main::screen +(byte[$28*$19]) main::screen (byte) main::x (byte) main::x#1 3.666666666666667 (byte) main::x#2 11.0 @@ -405,7 +405,7 @@ main: { jmp b1 //SEG21 main::@1 b1: - //SEG22 [6] *((const byte[40*25]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 -- pbuc1_derefidx_vwuz1=vbuc2 + //SEG22 [6] *((const byte[$28*$19]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 -- pbuc1_derefidx_vwuz1=vbuc2 lda #main::@1#3] -- register_copy //SEG21 main::@1 b1: - //SEG22 [6] *((const byte[40*25]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 -- pbuc1_derefidx_vwuz1=vbuc2 + //SEG22 [6] *((const byte[$28*$19]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 -- pbuc1_derefidx_vwuz1=vbuc2 lda #>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 2 + [25] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) SCREEN#0/(word/signed word/dword/signed dword) $4000 + [26] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 2 to:main::@1 main::@1: scope:[main] from main::@1 main::@17 [27] (byte) main::j#2 ← phi( main::@1/(byte) main::j#1 main::@17/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [28] *((const byte*) DTV_PALETTE#0 + (byte) main::j#2) ← (byte) main::j#2 [29] (byte) main::j#1 ← ++ (byte) main::j#2 - [30] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto main::@1 + [30] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto main::@1 to:main::@3 main::@3: scope:[main] from main::@1 main::@8 asm { ldx#$ff rff: cpxRASTER bnerff stabilize: nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop cpxRASTER beqeat+0 eat: inx cpx#$08 bnestabilize } @@ -46,7 +46,7 @@ main::@3: scope:[main] from main::@1 main::@8 [33] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@5 main::@5: scope:[main] from main::@3 main::@5 - [34] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 66) goto main::@5 + [34] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $42) goto main::@5 to:main::@7 main::@7: scope:[main] from main::@5 asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } @@ -59,7 +59,7 @@ main::@8: scope:[main] from main::@7 main::@8 [40] (byte~) main::$34 ← (byte) main::rst#1 << (byte/signed byte/word/signed word/dword/signed dword) 4 [41] *((const byte*) BORDERCOL#0) ← (byte~) main::$34 asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } - [43] if((byte) main::rst#1!=(byte/word/signed word/dword/signed dword) 242) goto main::@8 + [43] if((byte) main::rst#1!=(byte/word/signed word/dword/signed dword) $f2) goto main::@8 to:main::@3 gfx_init: scope:[gfx_init] from main [44] phi() @@ -82,7 +82,7 @@ gfx_init_plane_charset8::@9: scope:[gfx_init_plane_charset8] from gfx_init_plan gfx_init_plane_charset8::@1: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@7 gfx_init_plane_charset8::@9 [52] (byte) gfx_init_plane_charset8::ch#8 ← phi( gfx_init_plane_charset8::@7/(byte) gfx_init_plane_charset8::ch#1 gfx_init_plane_charset8::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [52] (byte) gfx_init_plane_charset8::col#6 ← phi( gfx_init_plane_charset8::@7/(byte) gfx_init_plane_charset8::col#1 gfx_init_plane_charset8::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [52] (byte*) gfx_init_plane_charset8::gfxa#6 ← phi( gfx_init_plane_charset8::@7/(byte*) gfx_init_plane_charset8::gfxa#1 gfx_init_plane_charset8::@9/((byte*))(word/signed word/dword/signed dword) 16384+((word))(const byte*) CHARSET8#0&(word/signed word/dword/signed dword) 16383 ) + [52] (byte*) gfx_init_plane_charset8::gfxa#6 ← phi( gfx_init_plane_charset8::@7/(byte*) gfx_init_plane_charset8::gfxa#1 gfx_init_plane_charset8::@9/((byte*))(word/signed word/dword/signed dword) $4000+((word))(const byte*) CHARSET8#0&(word/signed word/dword/signed dword) $3fff ) [52] (byte*) gfx_init_plane_charset8::chargen#3 ← phi( gfx_init_plane_charset8::@7/(byte*) gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::@9/(const byte*) CHARGEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1 ) to:gfx_init_plane_charset8::@2 gfx_init_plane_charset8::@2: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@1 gfx_init_plane_charset8::@6 @@ -98,7 +98,7 @@ gfx_init_plane_charset8::@3: scope:[gfx_init_plane_charset8] from gfx_init_plan [56] (byte) gfx_init_plane_charset8::col#2 ← phi( gfx_init_plane_charset8::@2/(byte) gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::@4/(byte) gfx_init_plane_charset8::col#1 ) [56] (byte*) gfx_init_plane_charset8::gfxa#2 ← phi( gfx_init_plane_charset8::@2/(byte*) gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::@4/(byte*) gfx_init_plane_charset8::gfxa#1 ) [56] (byte) gfx_init_plane_charset8::bits#2 ← phi( gfx_init_plane_charset8::@2/(byte) gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::@4/(byte) gfx_init_plane_charset8::bits#1 ) - [57] (byte~) gfx_init_plane_charset8::$7 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) 128 + [57] (byte~) gfx_init_plane_charset8::$7 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) $80 [58] if((byte~) gfx_init_plane_charset8::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_plane_charset8::@4 to:gfx_init_plane_charset8::@5 gfx_init_plane_charset8::@5: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@3 @@ -129,7 +129,7 @@ gfx_init_plane_charset8::@return: scope:[gfx_init_plane_charset8] from gfx_init [73] return to:@return dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_plane_charset8 gfx_init_plane_charset8::@8 - [74] (byte) dtvSetCpuBankSegment1::cpuBankIdx#2 ← phi( gfx_init_plane_charset8/(const byte) gfx_init_plane_charset8::gfxbCpuBank#0 gfx_init_plane_charset8::@8/((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 ) + [74] (byte) dtvSetCpuBankSegment1::cpuBankIdx#2 ← phi( gfx_init_plane_charset8/(const byte) gfx_init_plane_charset8::gfxbCpuBank#0 gfx_init_plane_charset8::@8/((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 ) [75] *((const byte*) dtvSetCpuBankSegment1::cpuBank#0) ← (byte) dtvSetCpuBankSegment1::cpuBankIdx#2 asm { .byte$32,$dd lda$ff .byte$32,$00 } to:dtvSetCpuBankSegment1::@return @@ -146,18 +146,18 @@ gfx_init_screen0::@1: scope:[gfx_init_screen0] from gfx_init_screen0 gfx_init_s gfx_init_screen0::@2: scope:[gfx_init_screen0] from gfx_init_screen0::@1 gfx_init_screen0::@2 [80] (byte*) gfx_init_screen0::ch#2 ← phi( gfx_init_screen0::@1/(byte*) gfx_init_screen0::ch#3 gfx_init_screen0::@2/(byte*) gfx_init_screen0::ch#1 ) [80] (byte) gfx_init_screen0::cx#2 ← phi( gfx_init_screen0::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 gfx_init_screen0::@2/(byte) gfx_init_screen0::cx#1 ) - [81] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [81] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [82] (byte~) gfx_init_screen0::$1 ← (byte~) gfx_init_screen0::$0 << (byte/signed byte/word/signed word/dword/signed dword) 4 - [83] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [83] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [84] (byte~) gfx_init_screen0::$3 ← (byte~) gfx_init_screen0::$1 | (byte~) gfx_init_screen0::$2 [85] *((byte*) gfx_init_screen0::ch#2) ← (byte~) gfx_init_screen0::$3 [86] (byte*) gfx_init_screen0::ch#1 ← ++ (byte*) gfx_init_screen0::ch#2 [87] (byte) gfx_init_screen0::cx#1 ← ++ (byte) gfx_init_screen0::cx#2 - [88] if((byte) gfx_init_screen0::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen0::@2 + [88] if((byte) gfx_init_screen0::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen0::@2 to:gfx_init_screen0::@3 gfx_init_screen0::@3: scope:[gfx_init_screen0] from gfx_init_screen0::@2 [89] (byte) gfx_init_screen0::cy#1 ← ++ (byte) gfx_init_screen0::cy#4 - [90] if((byte) gfx_init_screen0::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen0::@1 + [90] if((byte) gfx_init_screen0::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen0::@1 to:gfx_init_screen0::@return gfx_init_screen0::@return: scope:[gfx_init_screen0] from gfx_init_screen0::@3 [91] return diff --git a/src/test/ref/c64dtv-8bppcharstretch.log b/src/test/ref/c64dtv-8bppcharstretch.log index 0f69668be..46361bff4 100644 --- a/src/test/ref/c64dtv-8bppcharstretch.log +++ b/src/test/ref/c64dtv-8bppcharstretch.log @@ -5,66 +5,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -75,49 +75,49 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@4 @4: scope:[] from @begin - (byte*) DTV_FEATURE#0 ← ((byte*)) (word/dword/signed dword) 53311 + (byte*) DTV_FEATURE#0 ← ((byte*)) (word/dword/signed dword) $d03f (byte) DTV_FEATURE_ENABLE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_FEATURE_DISABLE_TIL_RESET#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte*) DTV_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53308 + (byte*) DTV_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d03c (byte) DTV_LINEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BORDER_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_HIGHCOLOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DTV_OVERSCAN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte) DTV_COLORRAM_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte) DTV_BADLINE_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) DTV_CHUNKY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte*) DTV_PALETTE#0 ← ((byte*)) (word/dword/signed dword) 53760 - (byte[16]) DTV_PALETTE_DEFAULT#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 54, (byte/word/signed word/dword/signed dword) 190, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 219, (byte/word/signed word/dword/signed dword) 134, (byte/word/signed word/dword/signed dword) 255, (byte/signed byte/word/signed word/dword/signed dword) 41, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 59, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 154, (byte/signed byte/word/signed word/dword/signed dword) 10 } - (byte*) DTV_PLANEA_START_LO#0 ← ((byte*)) (word/dword/signed dword) 53306 - (byte*) DTV_PLANEA_START_MI#0 ← ((byte*)) (word/dword/signed dword) 53307 - (byte*) DTV_PLANEA_START_HI#0 ← ((byte*)) (word/dword/signed dword) 53317 - (byte*) DTV_PLANEA_STEP#0 ← ((byte*)) (word/dword/signed dword) 53318 - (byte*) DTV_PLANEA_MODULO_LO#0 ← ((byte*)) (word/dword/signed dword) 53304 - (byte*) DTV_PLANEA_MODULO_HI#0 ← ((byte*)) (word/dword/signed dword) 53305 - (byte*) DTV_PLANEB_START_LO#0 ← ((byte*)) (word/dword/signed dword) 53321 - (byte*) DTV_PLANEB_START_MI#0 ← ((byte*)) (word/dword/signed dword) 53322 - (byte*) DTV_PLANEB_START_HI#0 ← ((byte*)) (word/dword/signed dword) 53323 - (byte*) DTV_PLANEB_STEP#0 ← ((byte*)) (word/dword/signed dword) 53324 - (byte*) DTV_PLANEB_MODULO_LO#0 ← ((byte*)) (word/dword/signed dword) 53319 - (byte*) DTV_PLANEB_MODULO_HI#0 ← ((byte*)) (word/dword/signed dword) 53320 - (byte*) DTV_SPRITE_BANK#0 ← ((byte*)) (word/dword/signed dword) 53325 - (byte*) DTV_COLOR_BANK_LO#0 ← ((byte*)) (word/dword/signed dword) 53302 - (byte*) DTV_COLOR_BANK_HI#0 ← ((byte*)) (word/dword/signed dword) 53303 - (dword) DTV_COLOR_BANK_DEFAULT#0 ← (dword/signed dword) 120832 - (byte*) DTV_GRAPHICS_VIC_BANK#0 ← ((byte*)) (word/dword/signed dword) 53309 - (byte*) DTV_GRAPHICS_HICOL_BANK#0 ← ((byte*)) (word/dword/signed dword) 53310 + (byte) DTV_COLORRAM_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte) DTV_BADLINE_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) DTV_CHUNKY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte*) DTV_PALETTE#0 ← ((byte*)) (word/dword/signed dword) $d200 + (byte[$10]) DTV_PALETTE_DEFAULT#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $36, (byte/word/signed word/dword/signed dword) $be, (byte/signed byte/word/signed word/dword/signed dword) $58, (byte/word/signed word/dword/signed dword) $db, (byte/word/signed word/dword/signed dword) $86, (byte/word/signed word/dword/signed dword) $ff, (byte/signed byte/word/signed word/dword/signed dword) $29, (byte/signed byte/word/signed word/dword/signed dword) $26, (byte/signed byte/word/signed word/dword/signed dword) $3b, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $9a, (byte/signed byte/word/signed word/dword/signed dword) $a } + (byte*) DTV_PLANEA_START_LO#0 ← ((byte*)) (word/dword/signed dword) $d03a + (byte*) DTV_PLANEA_START_MI#0 ← ((byte*)) (word/dword/signed dword) $d03b + (byte*) DTV_PLANEA_START_HI#0 ← ((byte*)) (word/dword/signed dword) $d045 + (byte*) DTV_PLANEA_STEP#0 ← ((byte*)) (word/dword/signed dword) $d046 + (byte*) DTV_PLANEA_MODULO_LO#0 ← ((byte*)) (word/dword/signed dword) $d038 + (byte*) DTV_PLANEA_MODULO_HI#0 ← ((byte*)) (word/dword/signed dword) $d039 + (byte*) DTV_PLANEB_START_LO#0 ← ((byte*)) (word/dword/signed dword) $d049 + (byte*) DTV_PLANEB_START_MI#0 ← ((byte*)) (word/dword/signed dword) $d04a + (byte*) DTV_PLANEB_START_HI#0 ← ((byte*)) (word/dword/signed dword) $d04b + (byte*) DTV_PLANEB_STEP#0 ← ((byte*)) (word/dword/signed dword) $d04c + (byte*) DTV_PLANEB_MODULO_LO#0 ← ((byte*)) (word/dword/signed dword) $d047 + (byte*) DTV_PLANEB_MODULO_HI#0 ← ((byte*)) (word/dword/signed dword) $d048 + (byte*) DTV_SPRITE_BANK#0 ← ((byte*)) (word/dword/signed dword) $d04d + (byte*) DTV_COLOR_BANK_LO#0 ← ((byte*)) (word/dword/signed dword) $d036 + (byte*) DTV_COLOR_BANK_HI#0 ← ((byte*)) (word/dword/signed dword) $d037 + (dword) DTV_COLOR_BANK_DEFAULT#0 ← (dword/signed dword) $1d800 + (byte*) DTV_GRAPHICS_VIC_BANK#0 ← ((byte*)) (word/dword/signed dword) $d03d + (byte*) DTV_GRAPHICS_HICOL_BANK#0 ← ((byte*)) (word/dword/signed dword) $d03e to:@5 dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_plane_charset8 gfx_init_plane_charset8::@8 (byte) dtvSetCpuBankSegment1::cpuBankIdx#2 ← phi( gfx_init_plane_charset8/(byte) dtvSetCpuBankSegment1::cpuBankIdx#0 gfx_init_plane_charset8::@8/(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 ) - (byte*) dtvSetCpuBankSegment1::cpuBank#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) 255 + (byte*) dtvSetCpuBankSegment1::cpuBank#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) $ff *((byte*) dtvSetCpuBankSegment1::cpuBank#0) ← (byte) dtvSetCpuBankSegment1::cpuBankIdx#2 asm { .byte$32,$dd lda$ff .byte$32,$00 } to:dtvSetCpuBankSegment1::@return @@ -125,47 +125,47 @@ dtvSetCpuBankSegment1::@return: scope:[dtvSetCpuBankSegment1] from dtvSetCpuBan return to:@return @5: scope:[] from @4 - (byte*) DTV_BLITTER_SRCA_LO#0 ← ((byte*)) (word/dword/signed dword) 54048 - (byte*) DTV_BLITTER_SRCA_MI#0 ← ((byte*)) (word/dword/signed dword) 54049 - (byte*) DTV_BLITTER_SRCA_HI#0 ← ((byte*)) (word/dword/signed dword) 54050 - (byte*) DTV_BLITTER_SRCA_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) 54051 - (byte*) DTV_BLITTER_SRCA_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) 54052 - (byte*) DTV_BLITTER_SRCA_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) 54053 - (byte*) DTV_BLITTER_SRCA_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) 54054 - (byte*) DTV_BLITTER_SRCA_STEP#0 ← ((byte*)) (word/dword/signed dword) 54055 - (byte*) DTV_BLITTER_SRCB_LO#0 ← ((byte*)) (word/dword/signed dword) 54056 - (byte*) DTV_BLITTER_SRCB_MI#0 ← ((byte*)) (word/dword/signed dword) 54057 - (byte*) DTV_BLITTER_SRCB_HI#0 ← ((byte*)) (word/dword/signed dword) 54058 - (byte*) DTV_BLITTER_SRCB_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) 54059 - (byte*) DTV_BLITTER_SRCB_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) 54060 - (byte*) DTV_BLITTER_SRCB_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) 54061 - (byte*) DTV_BLITTER_SRCB_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) 54062 - (byte*) DTV_BLITTER_SRCB_STEP#0 ← ((byte*)) (word/dword/signed dword) 54063 - (byte*) DTV_BLITTER_DEST_LO#0 ← ((byte*)) (word/dword/signed dword) 54064 - (byte*) DTV_BLITTER_DEST_MI#0 ← ((byte*)) (word/dword/signed dword) 54065 - (byte*) DTV_BLITTER_DEST_HI#0 ← ((byte*)) (word/dword/signed dword) 54066 - (byte*) DTV_BLITTER_DEST_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) 54067 - (byte*) DTV_BLITTER_DEST_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) 54068 - (byte*) DTV_BLITTER_DEST_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) 54069 - (byte*) DTV_BLITTER_DEST_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) 54070 - (byte*) DTV_BLITTER_DEST_STEP#0 ← ((byte*)) (word/dword/signed dword) 54071 - (byte*) DTV_BLITTER_LEN_LO#0 ← ((byte*)) (word/dword/signed dword) 54072 - (byte*) DTV_BLITTER_LEN_HI#0 ← ((byte*)) (word/dword/signed dword) 54073 - (byte*) DTV_BLITTER_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 54074 + (byte*) DTV_BLITTER_SRCA_LO#0 ← ((byte*)) (word/dword/signed dword) $d320 + (byte*) DTV_BLITTER_SRCA_MI#0 ← ((byte*)) (word/dword/signed dword) $d321 + (byte*) DTV_BLITTER_SRCA_HI#0 ← ((byte*)) (word/dword/signed dword) $d322 + (byte*) DTV_BLITTER_SRCA_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) $d323 + (byte*) DTV_BLITTER_SRCA_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) $d324 + (byte*) DTV_BLITTER_SRCA_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) $d325 + (byte*) DTV_BLITTER_SRCA_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) $d326 + (byte*) DTV_BLITTER_SRCA_STEP#0 ← ((byte*)) (word/dword/signed dword) $d327 + (byte*) DTV_BLITTER_SRCB_LO#0 ← ((byte*)) (word/dword/signed dword) $d328 + (byte*) DTV_BLITTER_SRCB_MI#0 ← ((byte*)) (word/dword/signed dword) $d329 + (byte*) DTV_BLITTER_SRCB_HI#0 ← ((byte*)) (word/dword/signed dword) $d32a + (byte*) DTV_BLITTER_SRCB_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) $d32b + (byte*) DTV_BLITTER_SRCB_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) $d32c + (byte*) DTV_BLITTER_SRCB_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) $d32d + (byte*) DTV_BLITTER_SRCB_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) $d32e + (byte*) DTV_BLITTER_SRCB_STEP#0 ← ((byte*)) (word/dword/signed dword) $d32f + (byte*) DTV_BLITTER_DEST_LO#0 ← ((byte*)) (word/dword/signed dword) $d330 + (byte*) DTV_BLITTER_DEST_MI#0 ← ((byte*)) (word/dword/signed dword) $d331 + (byte*) DTV_BLITTER_DEST_HI#0 ← ((byte*)) (word/dword/signed dword) $d332 + (byte*) DTV_BLITTER_DEST_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) $d333 + (byte*) DTV_BLITTER_DEST_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) $d334 + (byte*) DTV_BLITTER_DEST_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) $d335 + (byte*) DTV_BLITTER_DEST_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) $d336 + (byte*) DTV_BLITTER_DEST_STEP#0 ← ((byte*)) (word/dword/signed dword) $d337 + (byte*) DTV_BLITTER_LEN_LO#0 ← ((byte*)) (word/dword/signed dword) $d338 + (byte*) DTV_BLITTER_LEN_HI#0 ← ((byte*)) (word/dword/signed dword) $d339 + (byte*) DTV_BLITTER_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d33a (byte) DTV_BLIT_FORCE_START#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_SRCA_FWD#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_BLIT_SRCB_FWD#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DTV_BLIT_DEST_FWD#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte) DTV_BLIT_VIC_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte) DTV_BLIT_CIA_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) DTV_BLIT_VBLANK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) DTV_BLIT_IRQ_EN#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte*) DTV_BLITTER_TRANSPARANCY#0 ← ((byte*)) (word/dword/signed dword) 54075 + (byte) DTV_BLIT_VIC_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte) DTV_BLIT_CIA_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) DTV_BLIT_VBLANK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) DTV_BLIT_IRQ_EN#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte*) DTV_BLITTER_TRANSPARANCY#0 ← ((byte*)) (word/dword/signed dword) $d33b (byte) DTV_BLIT_DISABLE_B#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_WRITE_TRANSPARENT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_BLIT_WRITE_NONTRANSPARENT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DTV_BLIT_TRANSPARANCY_NONE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte*) DTV_BLITTER_ALU#0 ← ((byte*)) (word/dword/signed dword) 54078 + (byte*) DTV_BLITTER_ALU#0 ← ((byte*)) (word/dword/signed dword) $d33e (byte) DTV_BLIT_SHIFT0#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) DTV_BLIT_SHIFT1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_SHIFT2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -176,21 +176,21 @@ dtvSetCpuBankSegment1::@return: scope:[dtvSetCpuBankSegment1] from dtvSetCpuBan (byte) DTV_BLIT_SHIFT7#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) DTV_BLIT_AND#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) DTV_BLIT_NAND#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte) DTV_BLIT_NOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte) DTV_BLIT_OR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 24 - (byte) DTV_BLIT_XOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) DTV_BLIT_XNOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte) DTV_BLIT_ADD#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) DTV_BLIT_SUB#0 ← (byte/signed byte/word/signed word/dword/signed dword) 56 - (byte*) DTV_BLITTER_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 54079 + (byte) DTV_BLIT_NOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte) DTV_BLIT_OR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $18 + (byte) DTV_BLIT_XOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) DTV_BLIT_XNOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) DTV_BLIT_ADD#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) DTV_BLIT_SUB#0 ← (byte/signed byte/word/signed word/dword/signed dword) $38 + (byte*) DTV_BLITTER_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d33f (byte) DTV_BLIT_CLEAR_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_SRCA_CONT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_BLIT_SRCB_CONT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DTV_BLIT_DEST_CONT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) DTV_BLIT_STATUS_BUSY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_STATUS_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 31744 - (byte*) CHARSET8#0 ← ((byte*)) (word/dword/signed dword) 32768 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $7c00 + (byte*) CHARSET8#0 ← ((byte*)) (word/dword/signed dword) $8000 to:@9 main: scope:[main] from @9 asm { sei } @@ -228,16 +228,16 @@ main::@17: scope:[main] from main *((byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 (word~) main::$12 ← ((word)) (byte*) SCREEN#0 - (word/signed dword/dword~) main::$13 ← (word~) main::$12 / (word/signed word/dword/signed dword) 16384 + (word/signed dword/dword~) main::$13 ← (word~) main::$12 / (word/signed word/dword/signed dword) $4000 (byte~) main::$14 ← ((byte)) (word/signed dword/dword~) main::$13 (byte/word/dword~) main::$15 ← (byte/signed byte/word/signed word/dword/signed dword) 3 ^ (byte~) main::$14 *((byte*) CIA2_PORT_A#0) ← (byte/word/dword~) main::$15 (word~) main::$16 ← ((word)) (byte*) SCREEN#0 - (word~) main::$17 ← (word~) main::$16 & (word/signed word/dword/signed dword) 16383 + (word~) main::$17 ← (word~) main::$16 & (word/signed word/dword/signed dword) $3fff (word~) main::$18 ← (word~) main::$17 >> (byte/signed byte/word/signed word/dword/signed dword) 6 (byte~) main::$19 ← ((byte)) (word~) main::$18 (word~) main::$20 ← ((word)) (byte*) SCREEN#0 - (word~) main::$21 ← (word~) main::$20 & (word/signed word/dword/signed dword) 16383 + (word~) main::$21 ← (word~) main::$20 & (word/signed word/dword/signed dword) $3fff (byte~) main::$22 ← > (word~) main::$21 (byte~) main::$23 ← (byte~) main::$22 >> (byte/signed byte/word/signed word/dword/signed dword) 2 (byte~) main::$24 ← (byte~) main::$19 | (byte~) main::$23 @@ -247,8 +247,8 @@ main::@17: scope:[main] from main main::@1: scope:[main] from main::@1 main::@17 (byte) main::j#2 ← phi( main::@1/(byte) main::j#1 main::@17/(byte) main::j#0 ) *((byte*) DTV_PALETTE#0 + (byte) main::j#2) ← (byte) main::j#2 - (byte) main::j#1 ← (byte) main::j#2 + rangenext(0,15) - (bool~) main::$25 ← (byte) main::j#1 != rangelast(0,15) + (byte) main::j#1 ← (byte) main::j#2 + rangenext(0,$f) + (bool~) main::$25 ← (byte) main::j#1 != rangelast(0,$f) if((bool~) main::$25) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@8 @@ -261,7 +261,7 @@ main::@3: scope:[main] from main::@2 (byte/word/dword~) main::$28 ← (byte~) main::$27 | (byte/signed byte/word/signed word/dword/signed dword) 3 *((byte*) VIC_CONTROL#0) ← (byte/word/dword~) main::$28 *((byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte) main::rst#0 ← (byte/signed byte/word/signed word/dword/signed dword) 66 + (byte) main::rst#0 ← (byte/signed byte/word/signed word/dword/signed dword) $42 to:main::@5 main::@5: scope:[main] from main::@3 main::@6 (byte) main::rst#2 ← phi( main::@3/(byte) main::rst#0 main::@6/(byte) main::rst#3 ) @@ -284,7 +284,7 @@ main::@8: scope:[main] from main::@7 main::@8 (byte~) main::$34 ← (byte) main::rst#1 << (byte/signed byte/word/signed word/dword/signed dword) 4 *((byte*) BORDERCOL#0) ← (byte~) main::$34 asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } - (bool~) main::$35 ← (byte) main::rst#1 != (byte/word/signed word/dword/signed dword) 242 + (bool~) main::$35 ← (byte) main::rst#1 != (byte/word/signed word/dword/signed dword) $f2 if((bool~) main::$35) goto main::@8 to:main::@2 main::@return: scope:[main] from main::@2 @@ -314,28 +314,28 @@ gfx_init_screen0::@2: scope:[gfx_init_screen0] from gfx_init_screen0::@1 gfx_in (byte*) gfx_init_screen0::ch#2 ← phi( gfx_init_screen0::@1/(byte*) gfx_init_screen0::ch#3 gfx_init_screen0::@2/(byte*) gfx_init_screen0::ch#1 ) (byte) gfx_init_screen0::cx#2 ← phi( gfx_init_screen0::@1/(byte) gfx_init_screen0::cx#0 gfx_init_screen0::@2/(byte) gfx_init_screen0::cx#1 ) (byte) gfx_init_screen0::cy#2 ← phi( gfx_init_screen0::@1/(byte) gfx_init_screen0::cy#4 gfx_init_screen0::@2/(byte) gfx_init_screen0::cy#2 ) - (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#2 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte~) gfx_init_screen0::$1 ← (byte~) gfx_init_screen0::$0 << (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte~) gfx_init_screen0::$3 ← (byte~) gfx_init_screen0::$1 | (byte~) gfx_init_screen0::$2 *((byte*) gfx_init_screen0::ch#2) ← (byte~) gfx_init_screen0::$3 (byte*) gfx_init_screen0::ch#1 ← ++ (byte*) gfx_init_screen0::ch#2 - (byte) gfx_init_screen0::cx#1 ← (byte) gfx_init_screen0::cx#2 + rangenext(0,39) - (bool~) gfx_init_screen0::$4 ← (byte) gfx_init_screen0::cx#1 != rangelast(0,39) + (byte) gfx_init_screen0::cx#1 ← (byte) gfx_init_screen0::cx#2 + rangenext(0,$27) + (bool~) gfx_init_screen0::$4 ← (byte) gfx_init_screen0::cx#1 != rangelast(0,$27) if((bool~) gfx_init_screen0::$4) goto gfx_init_screen0::@2 to:gfx_init_screen0::@3 gfx_init_screen0::@3: scope:[gfx_init_screen0] from gfx_init_screen0::@2 (byte*) gfx_init_screen0::ch#4 ← phi( gfx_init_screen0::@2/(byte*) gfx_init_screen0::ch#1 ) (byte) gfx_init_screen0::cy#3 ← phi( gfx_init_screen0::@2/(byte) gfx_init_screen0::cy#2 ) - (byte) gfx_init_screen0::cy#1 ← (byte) gfx_init_screen0::cy#3 + rangenext(0,24) - (bool~) gfx_init_screen0::$5 ← (byte) gfx_init_screen0::cy#1 != rangelast(0,24) + (byte) gfx_init_screen0::cy#1 ← (byte) gfx_init_screen0::cy#3 + rangenext(0,$18) + (bool~) gfx_init_screen0::$5 ← (byte) gfx_init_screen0::cy#1 != rangelast(0,$18) if((bool~) gfx_init_screen0::$5) goto gfx_init_screen0::@1 to:gfx_init_screen0::@return gfx_init_screen0::@return: scope:[gfx_init_screen0] from gfx_init_screen0::@3 return to:@return gfx_init_plane_charset8: scope:[gfx_init_plane_charset8] from gfx_init::@1 - (byte*~) gfx_init_plane_charset8::$0 ← (byte*) CHARSET8#0 / (word/signed word/dword/signed dword) 16384 + (byte*~) gfx_init_plane_charset8::$0 ← (byte*) CHARSET8#0 / (word/signed word/dword/signed dword) $4000 (byte~) gfx_init_plane_charset8::$1 ← ((byte)) (byte*~) gfx_init_plane_charset8::$0 (byte) gfx_init_plane_charset8::gfxbCpuBank#0 ← (byte~) gfx_init_plane_charset8::$1 (byte) dtvSetCpuBankSegment1::cpuBankIdx#0 ← (byte) gfx_init_plane_charset8::gfxbCpuBank#0 @@ -345,8 +345,8 @@ gfx_init_plane_charset8::@9: scope:[gfx_init_plane_charset8] from gfx_init_plan (byte) gfx_init_plane_charset8::gfxbCpuBank#2 ← phi( gfx_init_plane_charset8/(byte) gfx_init_plane_charset8::gfxbCpuBank#0 ) (byte) gfx_init_plane_charset8::gfxbCpuBank#1 ← ++ (byte) gfx_init_plane_charset8::gfxbCpuBank#2 (word~) gfx_init_plane_charset8::$3 ← ((word)) (byte*) CHARSET8#0 - (word~) gfx_init_plane_charset8::$4 ← (word~) gfx_init_plane_charset8::$3 & (word/signed word/dword/signed dword) 16383 - (word/signed dword/dword~) gfx_init_plane_charset8::$5 ← (word/signed word/dword/signed dword) 16384 + (word~) gfx_init_plane_charset8::$4 + (word~) gfx_init_plane_charset8::$4 ← (word~) gfx_init_plane_charset8::$3 & (word/signed word/dword/signed dword) $3fff + (word/signed dword/dword~) gfx_init_plane_charset8::$5 ← (word/signed word/dword/signed dword) $4000 + (word~) gfx_init_plane_charset8::$4 (byte*) gfx_init_plane_charset8::gfxa#0 ← ((byte*)) (word/signed dword/dword~) gfx_init_plane_charset8::$5 (byte*~) gfx_init_plane_charset8::$6 ← (byte*) CHARGEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) gfx_init_plane_charset8::chargen#0 ← (byte*~) gfx_init_plane_charset8::$6 @@ -380,7 +380,7 @@ gfx_init_plane_charset8::@3: scope:[gfx_init_plane_charset8] from gfx_init_plan (byte*) gfx_init_plane_charset8::gfxa#3 ← phi( gfx_init_plane_charset8::@2/(byte*) gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::@4/(byte*) gfx_init_plane_charset8::gfxa#1 ) (byte) gfx_init_plane_charset8::bits#2 ← phi( gfx_init_plane_charset8::@2/(byte) gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::@4/(byte) gfx_init_plane_charset8::bits#1 ) (byte) gfx_init_plane_charset8::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte~) gfx_init_plane_charset8::$7 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) 128 + (byte~) gfx_init_plane_charset8::$7 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) $80 (bool~) gfx_init_plane_charset8::$8 ← (byte~) gfx_init_plane_charset8::$7 != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) gfx_init_plane_charset8::$9 ← ! (bool~) gfx_init_plane_charset8::$8 if((bool~) gfx_init_plane_charset8::$9) goto gfx_init_plane_charset8::@4 @@ -428,13 +428,13 @@ gfx_init_plane_charset8::@7: scope:[gfx_init_plane_charset8] from gfx_init_plan (byte*) gfx_init_plane_charset8::gfxa#8 ← phi( gfx_init_plane_charset8::@6/(byte*) gfx_init_plane_charset8::gfxa#7 ) (byte*) gfx_init_plane_charset8::chargen#5 ← phi( gfx_init_plane_charset8::@6/(byte*) gfx_init_plane_charset8::chargen#4 ) (byte) gfx_init_plane_charset8::ch#2 ← phi( gfx_init_plane_charset8::@6/(byte) gfx_init_plane_charset8::ch#3 ) - (byte) gfx_init_plane_charset8::ch#1 ← (byte) gfx_init_plane_charset8::ch#2 + rangenext(0,255) - (bool~) gfx_init_plane_charset8::$13 ← (byte) gfx_init_plane_charset8::ch#1 != rangelast(0,255) + (byte) gfx_init_plane_charset8::ch#1 ← (byte) gfx_init_plane_charset8::ch#2 + rangenext(0,$ff) + (bool~) gfx_init_plane_charset8::$13 ← (byte) gfx_init_plane_charset8::ch#1 != rangelast(0,$ff) if((bool~) gfx_init_plane_charset8::$13) goto gfx_init_plane_charset8::@1 to:gfx_init_plane_charset8::@8 gfx_init_plane_charset8::@8: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@7 *((byte*) PROCPORT#0) ← (byte) PROCPORT_RAM_IO#0 - (byte/signed byte/word/signed word/dword/signed dword~) gfx_init_plane_charset8::$14 ← (word/signed word/dword/signed dword) 16384 / (word/signed word/dword/signed dword) 16384 + (byte/signed byte/word/signed word/dword/signed dword~) gfx_init_plane_charset8::$14 ← (word/signed word/dword/signed dword) $4000 / (word/signed word/dword/signed dword) $4000 (byte~) gfx_init_plane_charset8::$15 ← ((byte)) (byte/signed byte/word/signed word/dword/signed dword~) gfx_init_plane_charset8::$14 (byte) dtvSetCpuBankSegment1::cpuBankIdx#1 ← (byte~) gfx_init_plane_charset8::$15 call dtvSetCpuBankSegment1 @@ -676,8 +676,8 @@ SYMBOL TABLE SSA (byte) DTV_OVERSCAN#0 (byte*) DTV_PALETTE (byte*) DTV_PALETTE#0 -(byte[16]) DTV_PALETTE_DEFAULT -(byte[16]) DTV_PALETTE_DEFAULT#0 +(byte[$10]) DTV_PALETTE_DEFAULT +(byte[$10]) DTV_PALETTE_DEFAULT#0 (byte*) DTV_PLANEA_MODULO_HI (byte*) DTV_PLANEA_MODULO_HI#0 (byte*) DTV_PLANEA_MODULO_LO @@ -1045,79 +1045,79 @@ Redundant Phi (byte) gfx_init_plane_charset8::cr#2 (byte) gfx_init_plane_charset Redundant Phi (byte*) gfx_init_plane_charset8::chargen#4 (byte*) gfx_init_plane_charset8::chargen#1 Redundant Phi (byte) gfx_init_plane_charset8::ch#2 (byte) gfx_init_plane_charset8::ch#7 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$25 [233] if((byte) main::j#1!=rangelast(0,15)) goto main::@1 +Simple Condition (bool~) main::$25 [233] if((byte) main::j#1!=rangelast(0,$f)) goto main::@1 Simple Condition (bool~) main::$29 [244] if(*((byte*) RASTER#0)!=(byte) main::rst#0) goto main::@6 -Simple Condition (bool~) main::$35 [257] if((byte) main::rst#1!=(byte/word/signed word/dword/signed dword) 242) goto main::@8 -Simple Condition (bool~) gfx_init_screen0::$4 [275] if((byte) gfx_init_screen0::cx#1!=rangelast(0,39)) goto gfx_init_screen0::@2 -Simple Condition (bool~) gfx_init_screen0::$5 [279] if((byte) gfx_init_screen0::cy#1!=rangelast(0,24)) goto gfx_init_screen0::@1 +Simple Condition (bool~) main::$35 [257] if((byte) main::rst#1!=(byte/word/signed word/dword/signed dword) $f2) goto main::@8 +Simple Condition (bool~) gfx_init_screen0::$4 [275] if((byte) gfx_init_screen0::cx#1!=rangelast(0,$27)) goto gfx_init_screen0::@2 +Simple Condition (bool~) gfx_init_screen0::$5 [279] if((byte) gfx_init_screen0::cy#1!=rangelast(0,$18)) goto gfx_init_screen0::@1 Simple Condition (bool~) gfx_init_plane_charset8::$9 [308] if((byte~) gfx_init_plane_charset8::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_plane_charset8::@4 Simple Condition (bool~) gfx_init_plane_charset8::$11 [317] if((byte) gfx_init_plane_charset8::cp#1!=rangelast(0,7)) goto gfx_init_plane_charset8::@3 Simple Condition (bool~) gfx_init_plane_charset8::$12 [323] if((byte) gfx_init_plane_charset8::cr#1!=rangelast(0,7)) goto gfx_init_plane_charset8::@2 -Simple Condition (bool~) gfx_init_plane_charset8::$13 [327] if((byte) gfx_init_plane_charset8::ch#1!=rangelast(0,255)) goto gfx_init_plane_charset8::@1 +Simple Condition (bool~) gfx_init_plane_charset8::$13 [327] if((byte) gfx_init_plane_charset8::ch#1!=rangelast(0,$ff)) goto gfx_init_plane_charset8::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -1128,85 +1128,85 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 -Constant (const byte*) DTV_FEATURE#0 = ((byte*))53311 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f +Constant (const byte*) DTV_FEATURE#0 = ((byte*))$d03f Constant (const byte) DTV_FEATURE_ENABLE#0 = 1 Constant (const byte) DTV_FEATURE_DISABLE_TIL_RESET#0 = 2 -Constant (const byte*) DTV_CONTROL#0 = ((byte*))53308 +Constant (const byte*) DTV_CONTROL#0 = ((byte*))$d03c Constant (const byte) DTV_LINEAR#0 = 1 Constant (const byte) DTV_BORDER_OFF#0 = 2 Constant (const byte) DTV_HIGHCOLOR#0 = 4 Constant (const byte) DTV_OVERSCAN#0 = 8 -Constant (const byte) DTV_COLORRAM_OFF#0 = 16 -Constant (const byte) DTV_BADLINE_OFF#0 = 32 -Constant (const byte) DTV_CHUNKY#0 = 64 -Constant (const byte*) DTV_PALETTE#0 = ((byte*))53760 -Constant (const byte[16]) DTV_PALETTE_DEFAULT#0 = { 0, 15, 54, 190, 88, 219, 134, 255, 41, 38, 59, 5, 7, 223, 154, 10 } -Constant (const byte*) DTV_PLANEA_START_LO#0 = ((byte*))53306 -Constant (const byte*) DTV_PLANEA_START_MI#0 = ((byte*))53307 -Constant (const byte*) DTV_PLANEA_START_HI#0 = ((byte*))53317 -Constant (const byte*) DTV_PLANEA_STEP#0 = ((byte*))53318 -Constant (const byte*) DTV_PLANEA_MODULO_LO#0 = ((byte*))53304 -Constant (const byte*) DTV_PLANEA_MODULO_HI#0 = ((byte*))53305 -Constant (const byte*) DTV_PLANEB_START_LO#0 = ((byte*))53321 -Constant (const byte*) DTV_PLANEB_START_MI#0 = ((byte*))53322 -Constant (const byte*) DTV_PLANEB_START_HI#0 = ((byte*))53323 -Constant (const byte*) DTV_PLANEB_STEP#0 = ((byte*))53324 -Constant (const byte*) DTV_PLANEB_MODULO_LO#0 = ((byte*))53319 -Constant (const byte*) DTV_PLANEB_MODULO_HI#0 = ((byte*))53320 -Constant (const byte*) DTV_SPRITE_BANK#0 = ((byte*))53325 -Constant (const byte*) DTV_COLOR_BANK_LO#0 = ((byte*))53302 -Constant (const byte*) DTV_COLOR_BANK_HI#0 = ((byte*))53303 -Constant (const dword) DTV_COLOR_BANK_DEFAULT#0 = 120832 -Constant (const byte*) DTV_GRAPHICS_VIC_BANK#0 = ((byte*))53309 -Constant (const byte*) DTV_GRAPHICS_HICOL_BANK#0 = ((byte*))53310 -Constant (const byte*) dtvSetCpuBankSegment1::cpuBank#0 = ((byte*))255 -Constant (const byte*) DTV_BLITTER_SRCA_LO#0 = ((byte*))54048 -Constant (const byte*) DTV_BLITTER_SRCA_MI#0 = ((byte*))54049 -Constant (const byte*) DTV_BLITTER_SRCA_HI#0 = ((byte*))54050 -Constant (const byte*) DTV_BLITTER_SRCA_MOD_LO#0 = ((byte*))54051 -Constant (const byte*) DTV_BLITTER_SRCA_MOD_HI#0 = ((byte*))54052 -Constant (const byte*) DTV_BLITTER_SRCA_LIN_LO#0 = ((byte*))54053 -Constant (const byte*) DTV_BLITTER_SRCA_LIN_HI#0 = ((byte*))54054 -Constant (const byte*) DTV_BLITTER_SRCA_STEP#0 = ((byte*))54055 -Constant (const byte*) DTV_BLITTER_SRCB_LO#0 = ((byte*))54056 -Constant (const byte*) DTV_BLITTER_SRCB_MI#0 = ((byte*))54057 -Constant (const byte*) DTV_BLITTER_SRCB_HI#0 = ((byte*))54058 -Constant (const byte*) DTV_BLITTER_SRCB_MOD_LO#0 = ((byte*))54059 -Constant (const byte*) DTV_BLITTER_SRCB_MOD_HI#0 = ((byte*))54060 -Constant (const byte*) DTV_BLITTER_SRCB_LIN_LO#0 = ((byte*))54061 -Constant (const byte*) DTV_BLITTER_SRCB_LIN_HI#0 = ((byte*))54062 -Constant (const byte*) DTV_BLITTER_SRCB_STEP#0 = ((byte*))54063 -Constant (const byte*) DTV_BLITTER_DEST_LO#0 = ((byte*))54064 -Constant (const byte*) DTV_BLITTER_DEST_MI#0 = ((byte*))54065 -Constant (const byte*) DTV_BLITTER_DEST_HI#0 = ((byte*))54066 -Constant (const byte*) DTV_BLITTER_DEST_MOD_LO#0 = ((byte*))54067 -Constant (const byte*) DTV_BLITTER_DEST_MOD_HI#0 = ((byte*))54068 -Constant (const byte*) DTV_BLITTER_DEST_LIN_LO#0 = ((byte*))54069 -Constant (const byte*) DTV_BLITTER_DEST_LIN_HI#0 = ((byte*))54070 -Constant (const byte*) DTV_BLITTER_DEST_STEP#0 = ((byte*))54071 -Constant (const byte*) DTV_BLITTER_LEN_LO#0 = ((byte*))54072 -Constant (const byte*) DTV_BLITTER_LEN_HI#0 = ((byte*))54073 -Constant (const byte*) DTV_BLITTER_CONTROL#0 = ((byte*))54074 +Constant (const byte) DTV_COLORRAM_OFF#0 = $10 +Constant (const byte) DTV_BADLINE_OFF#0 = $20 +Constant (const byte) DTV_CHUNKY#0 = $40 +Constant (const byte*) DTV_PALETTE#0 = ((byte*))$d200 +Constant (const byte[$10]) DTV_PALETTE_DEFAULT#0 = { 0, $f, $36, $be, $58, $db, $86, $ff, $29, $26, $3b, 5, 7, $df, $9a, $a } +Constant (const byte*) DTV_PLANEA_START_LO#0 = ((byte*))$d03a +Constant (const byte*) DTV_PLANEA_START_MI#0 = ((byte*))$d03b +Constant (const byte*) DTV_PLANEA_START_HI#0 = ((byte*))$d045 +Constant (const byte*) DTV_PLANEA_STEP#0 = ((byte*))$d046 +Constant (const byte*) DTV_PLANEA_MODULO_LO#0 = ((byte*))$d038 +Constant (const byte*) DTV_PLANEA_MODULO_HI#0 = ((byte*))$d039 +Constant (const byte*) DTV_PLANEB_START_LO#0 = ((byte*))$d049 +Constant (const byte*) DTV_PLANEB_START_MI#0 = ((byte*))$d04a +Constant (const byte*) DTV_PLANEB_START_HI#0 = ((byte*))$d04b +Constant (const byte*) DTV_PLANEB_STEP#0 = ((byte*))$d04c +Constant (const byte*) DTV_PLANEB_MODULO_LO#0 = ((byte*))$d047 +Constant (const byte*) DTV_PLANEB_MODULO_HI#0 = ((byte*))$d048 +Constant (const byte*) DTV_SPRITE_BANK#0 = ((byte*))$d04d +Constant (const byte*) DTV_COLOR_BANK_LO#0 = ((byte*))$d036 +Constant (const byte*) DTV_COLOR_BANK_HI#0 = ((byte*))$d037 +Constant (const dword) DTV_COLOR_BANK_DEFAULT#0 = $1d800 +Constant (const byte*) DTV_GRAPHICS_VIC_BANK#0 = ((byte*))$d03d +Constant (const byte*) DTV_GRAPHICS_HICOL_BANK#0 = ((byte*))$d03e +Constant (const byte*) dtvSetCpuBankSegment1::cpuBank#0 = ((byte*))$ff +Constant (const byte*) DTV_BLITTER_SRCA_LO#0 = ((byte*))$d320 +Constant (const byte*) DTV_BLITTER_SRCA_MI#0 = ((byte*))$d321 +Constant (const byte*) DTV_BLITTER_SRCA_HI#0 = ((byte*))$d322 +Constant (const byte*) DTV_BLITTER_SRCA_MOD_LO#0 = ((byte*))$d323 +Constant (const byte*) DTV_BLITTER_SRCA_MOD_HI#0 = ((byte*))$d324 +Constant (const byte*) DTV_BLITTER_SRCA_LIN_LO#0 = ((byte*))$d325 +Constant (const byte*) DTV_BLITTER_SRCA_LIN_HI#0 = ((byte*))$d326 +Constant (const byte*) DTV_BLITTER_SRCA_STEP#0 = ((byte*))$d327 +Constant (const byte*) DTV_BLITTER_SRCB_LO#0 = ((byte*))$d328 +Constant (const byte*) DTV_BLITTER_SRCB_MI#0 = ((byte*))$d329 +Constant (const byte*) DTV_BLITTER_SRCB_HI#0 = ((byte*))$d32a +Constant (const byte*) DTV_BLITTER_SRCB_MOD_LO#0 = ((byte*))$d32b +Constant (const byte*) DTV_BLITTER_SRCB_MOD_HI#0 = ((byte*))$d32c +Constant (const byte*) DTV_BLITTER_SRCB_LIN_LO#0 = ((byte*))$d32d +Constant (const byte*) DTV_BLITTER_SRCB_LIN_HI#0 = ((byte*))$d32e +Constant (const byte*) DTV_BLITTER_SRCB_STEP#0 = ((byte*))$d32f +Constant (const byte*) DTV_BLITTER_DEST_LO#0 = ((byte*))$d330 +Constant (const byte*) DTV_BLITTER_DEST_MI#0 = ((byte*))$d331 +Constant (const byte*) DTV_BLITTER_DEST_HI#0 = ((byte*))$d332 +Constant (const byte*) DTV_BLITTER_DEST_MOD_LO#0 = ((byte*))$d333 +Constant (const byte*) DTV_BLITTER_DEST_MOD_HI#0 = ((byte*))$d334 +Constant (const byte*) DTV_BLITTER_DEST_LIN_LO#0 = ((byte*))$d335 +Constant (const byte*) DTV_BLITTER_DEST_LIN_HI#0 = ((byte*))$d336 +Constant (const byte*) DTV_BLITTER_DEST_STEP#0 = ((byte*))$d337 +Constant (const byte*) DTV_BLITTER_LEN_LO#0 = ((byte*))$d338 +Constant (const byte*) DTV_BLITTER_LEN_HI#0 = ((byte*))$d339 +Constant (const byte*) DTV_BLITTER_CONTROL#0 = ((byte*))$d33a Constant (const byte) DTV_BLIT_FORCE_START#0 = 1 Constant (const byte) DTV_BLIT_SRCA_FWD#0 = 2 Constant (const byte) DTV_BLIT_SRCB_FWD#0 = 4 Constant (const byte) DTV_BLIT_DEST_FWD#0 = 8 -Constant (const byte) DTV_BLIT_VIC_IRQ#0 = 16 -Constant (const byte) DTV_BLIT_CIA_IRQ#0 = 32 -Constant (const byte) DTV_BLIT_VBLANK#0 = 64 -Constant (const byte) DTV_BLIT_IRQ_EN#0 = 128 -Constant (const byte*) DTV_BLITTER_TRANSPARANCY#0 = ((byte*))54075 +Constant (const byte) DTV_BLIT_VIC_IRQ#0 = $10 +Constant (const byte) DTV_BLIT_CIA_IRQ#0 = $20 +Constant (const byte) DTV_BLIT_VBLANK#0 = $40 +Constant (const byte) DTV_BLIT_IRQ_EN#0 = $80 +Constant (const byte*) DTV_BLITTER_TRANSPARANCY#0 = ((byte*))$d33b Constant (const byte) DTV_BLIT_DISABLE_B#0 = 1 Constant (const byte) DTV_BLIT_WRITE_TRANSPARENT#0 = 2 Constant (const byte) DTV_BLIT_WRITE_NONTRANSPARENT#0 = 4 Constant (const byte) DTV_BLIT_TRANSPARANCY_NONE#0 = 0 -Constant (const byte*) DTV_BLITTER_ALU#0 = ((byte*))54078 +Constant (const byte*) DTV_BLITTER_ALU#0 = ((byte*))$d33e Constant (const byte) DTV_BLIT_SHIFT0#0 = 0 Constant (const byte) DTV_BLIT_SHIFT1#0 = 1 Constant (const byte) DTV_BLIT_SHIFT2#0 = 2 @@ -1217,23 +1217,23 @@ Constant (const byte) DTV_BLIT_SHIFT6#0 = 6 Constant (const byte) DTV_BLIT_SHIFT7#0 = 7 Constant (const byte) DTV_BLIT_AND#0 = 0 Constant (const byte) DTV_BLIT_NAND#0 = 8 -Constant (const byte) DTV_BLIT_NOR#0 = 16 -Constant (const byte) DTV_BLIT_OR#0 = 24 -Constant (const byte) DTV_BLIT_XOR#0 = 32 -Constant (const byte) DTV_BLIT_XNOR#0 = 40 -Constant (const byte) DTV_BLIT_ADD#0 = 48 -Constant (const byte) DTV_BLIT_SUB#0 = 56 -Constant (const byte*) DTV_BLITTER_CONTROL2#0 = ((byte*))54079 +Constant (const byte) DTV_BLIT_NOR#0 = $10 +Constant (const byte) DTV_BLIT_OR#0 = $18 +Constant (const byte) DTV_BLIT_XOR#0 = $20 +Constant (const byte) DTV_BLIT_XNOR#0 = $28 +Constant (const byte) DTV_BLIT_ADD#0 = $30 +Constant (const byte) DTV_BLIT_SUB#0 = $38 +Constant (const byte*) DTV_BLITTER_CONTROL2#0 = ((byte*))$d33f Constant (const byte) DTV_BLIT_CLEAR_IRQ#0 = 1 Constant (const byte) DTV_BLIT_SRCA_CONT#0 = 2 Constant (const byte) DTV_BLIT_SRCB_CONT#0 = 4 Constant (const byte) DTV_BLIT_DEST_CONT#0 = 8 Constant (const byte) DTV_BLIT_STATUS_BUSY#0 = 1 Constant (const byte) DTV_BLIT_STATUS_IRQ#0 = 2 -Constant (const byte*) SCREEN#0 = ((byte*))31744 -Constant (const byte*) CHARSET8#0 = ((byte*))32768 +Constant (const byte*) SCREEN#0 = ((byte*))$7c00 +Constant (const byte*) CHARSET8#0 = ((byte*))$8000 Constant (const byte) main::j#0 = 0 -Constant (const byte) main::rst#0 = 66 +Constant (const byte) main::rst#0 = $42 Constant (const byte) gfx_init_screen0::cy#0 = 0 Constant (const byte) gfx_init_screen0::cx#0 = 0 Constant (const byte) gfx_init_plane_charset8::col#0 = 0 @@ -1241,7 +1241,7 @@ Constant (const byte) gfx_init_plane_charset8::ch#0 = 0 Constant (const byte) gfx_init_plane_charset8::cr#0 = 0 Constant (const byte) gfx_init_plane_charset8::cp#0 = 0 Constant (const byte) gfx_init_plane_charset8::c#0 = 0 -Constant (const byte/signed byte/word/signed word/dword/signed dword) gfx_init_plane_charset8::$14 = 16384/16384 +Constant (const byte/signed byte/word/signed word/dword/signed dword) gfx_init_plane_charset8::$14 = $4000/$4000 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::$1 = DTV_HIGHCOLOR#0|DTV_LINEAR#0 Constant (const byte) main::$4 = VIC_DEN#0|VIC_ECM#0 @@ -1256,20 +1256,20 @@ Constant (const word) main::$20 = ((word))SCREEN#0 Constant (const byte) main::$26 = VIC_DEN#0|VIC_ECM#0 Constant (const byte) main::$30 = VIC_DEN#0|VIC_ECM#0 Constant (const byte*) gfx_init_screen0::ch#0 = SCREEN#0 -Constant (const byte*) gfx_init_plane_charset8::$0 = CHARSET8#0/16384 +Constant (const byte*) gfx_init_plane_charset8::$0 = CHARSET8#0/$4000 Constant (const word) gfx_init_plane_charset8::$3 = ((word))CHARSET8#0 Constant (const byte*) gfx_init_plane_charset8::chargen#0 = CHARGEN#0+1 Constant (const byte) dtvSetCpuBankSegment1::cpuBankIdx#1 = ((byte))gfx_init_plane_charset8::$14 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::$2 = main::$1|DTV_CHUNKY#0 Constant (const byte) main::$5 = main::$4|VIC_RSEL#0 -Constant (const word/signed dword/dword) main::$13 = main::$12/16384 -Constant (const word) main::$17 = main::$16&16383 -Constant (const word) main::$21 = main::$20&16383 +Constant (const word/signed dword/dword) main::$13 = main::$12/$4000 +Constant (const word) main::$17 = main::$16&$3fff +Constant (const word) main::$21 = main::$20&$3fff Constant (const byte) main::$27 = main::$26|VIC_RSEL#0 Constant (const byte) main::$31 = main::$30|VIC_RSEL#0 Constant (const byte) gfx_init_plane_charset8::gfxbCpuBank#0 = ((byte))gfx_init_plane_charset8::$0 -Constant (const word) gfx_init_plane_charset8::$4 = gfx_init_plane_charset8::$3&16383 +Constant (const word) gfx_init_plane_charset8::$4 = gfx_init_plane_charset8::$3&$3fff Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::$3 = main::$2|DTV_BADLINE_OFF#0 Constant (const byte/word/dword) main::$6 = main::$5|3 @@ -1279,7 +1279,7 @@ Constant (const byte) main::$22 = >main::$21 Constant (const byte/word/dword) main::$28 = main::$27|3 Constant (const byte) dtvSetCpuBankSegment1::cpuBankIdx#0 = gfx_init_plane_charset8::gfxbCpuBank#0 Constant (const byte) gfx_init_plane_charset8::gfxbCpuBank#1 = ++gfx_init_plane_charset8::gfxbCpuBank#0 -Constant (const word/signed dword/dword) gfx_init_plane_charset8::$5 = 16384+gfx_init_plane_charset8::$4 +Constant (const word/signed dword/dword) gfx_init_plane_charset8::$5 = $4000+gfx_init_plane_charset8::$4 Successful SSA optimization Pass2ConstantIdentification Constant (const byte/word/dword) main::$15 = 3^main::$14 Constant (const byte) main::$19 = ((byte))main::$18 @@ -1294,17 +1294,17 @@ Successful SSA optimization PassNEliminateUnusedVars Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks Resolved ranged next value main::j#1 ← ++ main::j#2 to ++ -Resolved ranged comparison value if(main::j#1!=rangelast(0,15)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(main::j#1!=rangelast(0,$f)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value gfx_init_screen0::cx#1 ← ++ gfx_init_screen0::cx#2 to ++ -Resolved ranged comparison value if(gfx_init_screen0::cx#1!=rangelast(0,39)) goto gfx_init_screen0::@2 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(gfx_init_screen0::cx#1!=rangelast(0,$27)) goto gfx_init_screen0::@2 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value gfx_init_screen0::cy#1 ← ++ gfx_init_screen0::cy#4 to ++ -Resolved ranged comparison value if(gfx_init_screen0::cy#1!=rangelast(0,24)) goto gfx_init_screen0::@1 to (byte/signed byte/word/signed word/dword/signed dword) 25 +Resolved ranged comparison value if(gfx_init_screen0::cy#1!=rangelast(0,$18)) goto gfx_init_screen0::@1 to (byte/signed byte/word/signed word/dword/signed dword) $19 Resolved ranged next value gfx_init_plane_charset8::cp#1 ← ++ gfx_init_plane_charset8::cp#2 to ++ Resolved ranged comparison value if(gfx_init_plane_charset8::cp#1!=rangelast(0,7)) goto gfx_init_plane_charset8::@3 to (byte/signed byte/word/signed word/dword/signed dword) 8 Resolved ranged next value gfx_init_plane_charset8::cr#1 ← ++ gfx_init_plane_charset8::cr#6 to ++ Resolved ranged comparison value if(gfx_init_plane_charset8::cr#1!=rangelast(0,7)) goto gfx_init_plane_charset8::@2 to (byte/signed byte/word/signed word/dword/signed dword) 8 Resolved ranged next value gfx_init_plane_charset8::ch#1 ← ++ gfx_init_plane_charset8::ch#7 to ++ -Resolved ranged comparison value if(gfx_init_plane_charset8::ch#1!=rangelast(0,255)) goto gfx_init_plane_charset8::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(gfx_init_plane_charset8::ch#1!=rangelast(0,$ff)) goto gfx_init_plane_charset8::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 Culled Empty Block (label) @4 Culled Empty Block (label) @5 Culled Empty Block (label) main::@2 @@ -1328,16 +1328,16 @@ Inlining constant with var siblings (const byte) gfx_init_plane_charset8::cp#0 Inlining constant with var siblings (const byte) gfx_init_plane_charset8::c#0 Inlining constant with var siblings (const byte*) gfx_init_plane_charset8::chargen#0 Inlining constant with var siblings (const byte*) gfx_init_plane_charset8::gfxa#0 -Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#1 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 +Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#1 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#0 = (const byte) gfx_init_plane_charset8::gfxbCpuBank#0 -Constant inlined gfx_init_plane_charset8::gfxa#0 = ((byte*))(word/signed word/dword/signed dword) 16384+((word))(const byte*) CHARSET8#0&(word/signed word/dword/signed dword) 16383 -Constant inlined main::rst#0 = (byte/signed byte/word/signed word/dword/signed dword) 66 +Constant inlined gfx_init_plane_charset8::gfxa#0 = ((byte*))(word/signed word/dword/signed dword) $4000+((word))(const byte*) CHARSET8#0&(word/signed word/dword/signed dword) $3fff +Constant inlined main::rst#0 = (byte/signed byte/word/signed word/dword/signed dword) $42 Constant inlined gfx_init_plane_charset8::cp#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined gfx_init_plane_charset8::cr#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::$12 = ((word))(const byte*) SCREEN#0 -Constant inlined main::$13 = ((word))(const byte*) SCREEN#0/(word/signed word/dword/signed dword) 16384 -Constant inlined main::$14 = ((byte))((word))(const byte*) SCREEN#0/(word/signed word/dword/signed dword) 16384 -Constant inlined main::$15 = (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) SCREEN#0/(word/signed word/dword/signed dword) 16384 +Constant inlined main::$13 = ((word))(const byte*) SCREEN#0/(word/signed word/dword/signed dword) $4000 +Constant inlined main::$14 = ((byte))((word))(const byte*) SCREEN#0/(word/signed word/dword/signed dword) $4000 +Constant inlined main::$15 = (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) SCREEN#0/(word/signed word/dword/signed dword) $4000 Constant inlined gfx_init_plane_charset8::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::$30 = (const byte) VIC_DEN#0|(const byte) VIC_ECM#0 Constant inlined main::$31 = (const byte) VIC_DEN#0|(const byte) VIC_ECM#0|(const byte) VIC_RSEL#0 @@ -1345,23 +1345,23 @@ Constant inlined main::$10 = <(const byte*) CHARSET8#0 Constant inlined main::$11 = >(const byte*) CHARSET8#0 Constant inlined gfx_init_plane_charset8::chargen#0 = (const byte*) CHARGEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined main::$16 = ((word))(const byte*) SCREEN#0 -Constant inlined main::$17 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383 -Constant inlined main::$18 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 6 -Constant inlined main::$19 = ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 6 +Constant inlined main::$17 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff +Constant inlined main::$18 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 6 +Constant inlined main::$19 = ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 6 Constant inlined gfx_init_plane_charset8::ch#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined gfx_init_plane_charset8::$14 = (word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 +Constant inlined gfx_init_plane_charset8::$14 = (word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 Constant inlined gfx_init_screen0::cx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined gfx_init_screen0::cy#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$23 = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined main::$24 = ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined main::$23 = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined main::$24 = ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined main::$26 = (const byte) VIC_DEN#0|(const byte) VIC_ECM#0 Constant inlined main::$20 = ((word))(const byte*) SCREEN#0 -Constant inlined main::$21 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383 -Constant inlined main::$22 = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383 -Constant inlined gfx_init_plane_charset8::$4 = ((word))(const byte*) CHARSET8#0&(word/signed word/dword/signed dword) 16383 +Constant inlined main::$21 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff +Constant inlined main::$22 = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff +Constant inlined gfx_init_plane_charset8::$4 = ((word))(const byte*) CHARSET8#0&(word/signed word/dword/signed dword) $3fff Constant inlined gfx_init_screen0::ch#0 = (const byte*) SCREEN#0 -Constant inlined gfx_init_plane_charset8::$5 = (word/signed word/dword/signed dword) 16384+((word))(const byte*) CHARSET8#0&(word/signed word/dword/signed dword) 16383 +Constant inlined gfx_init_plane_charset8::$5 = (word/signed word/dword/signed dword) $4000+((word))(const byte*) CHARSET8#0&(word/signed word/dword/signed dword) $3fff Constant inlined main::$1 = (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0 Constant inlined main::$27 = (const byte) VIC_DEN#0|(const byte) VIC_ECM#0|(const byte) VIC_RSEL#0 Constant inlined main::$2 = (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0|(const byte) DTV_CHUNKY#0 @@ -1372,7 +1372,7 @@ Constant inlined main::$3 = (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR Constant inlined gfx_init_plane_charset8::col#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::$4 = (const byte) VIC_DEN#0|(const byte) VIC_ECM#0 Constant inlined main::$9 = >(const byte*) SCREEN#0 -Constant inlined gfx_init_plane_charset8::$0 = (const byte*) CHARSET8#0/(word/signed word/dword/signed dword) 16384 +Constant inlined gfx_init_plane_charset8::$0 = (const byte*) CHARSET8#0/(word/signed word/dword/signed dword) $4000 Constant inlined main::$7 = (const byte) VIC_MCM#0|(const byte) VIC_CSEL#0 Constant inlined main::$8 = <(const byte*) SCREEN#0 Constant inlined gfx_init_plane_charset8::$3 = ((word))(const byte*) CHARSET8#0 @@ -1471,14 +1471,14 @@ main::@17: scope:[main] from main [22] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [23] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [24] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 - [25] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) SCREEN#0/(word/signed word/dword/signed dword) 16384 - [26] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 2 + [25] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) SCREEN#0/(word/signed word/dword/signed dword) $4000 + [26] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 2 to:main::@1 main::@1: scope:[main] from main::@1 main::@17 [27] (byte) main::j#2 ← phi( main::@1/(byte) main::j#1 main::@17/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [28] *((const byte*) DTV_PALETTE#0 + (byte) main::j#2) ← (byte) main::j#2 [29] (byte) main::j#1 ← ++ (byte) main::j#2 - [30] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto main::@1 + [30] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto main::@1 to:main::@3 main::@3: scope:[main] from main::@1 main::@8 asm { ldx#$ff rff: cpxRASTER bnerff stabilize: nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop cpxRASTER beqeat+0 eat: inx cpx#$08 bnestabilize } @@ -1486,7 +1486,7 @@ main::@3: scope:[main] from main::@1 main::@8 [33] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@5 main::@5: scope:[main] from main::@3 main::@5 - [34] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 66) goto main::@5 + [34] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $42) goto main::@5 to:main::@7 main::@7: scope:[main] from main::@5 asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } @@ -1499,7 +1499,7 @@ main::@8: scope:[main] from main::@7 main::@8 [40] (byte~) main::$34 ← (byte) main::rst#1 << (byte/signed byte/word/signed word/dword/signed dword) 4 [41] *((const byte*) BORDERCOL#0) ← (byte~) main::$34 asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } - [43] if((byte) main::rst#1!=(byte/word/signed word/dword/signed dword) 242) goto main::@8 + [43] if((byte) main::rst#1!=(byte/word/signed word/dword/signed dword) $f2) goto main::@8 to:main::@3 gfx_init: scope:[gfx_init] from main [44] phi() @@ -1522,7 +1522,7 @@ gfx_init_plane_charset8::@9: scope:[gfx_init_plane_charset8] from gfx_init_plan gfx_init_plane_charset8::@1: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@7 gfx_init_plane_charset8::@9 [52] (byte) gfx_init_plane_charset8::ch#8 ← phi( gfx_init_plane_charset8::@7/(byte) gfx_init_plane_charset8::ch#1 gfx_init_plane_charset8::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [52] (byte) gfx_init_plane_charset8::col#6 ← phi( gfx_init_plane_charset8::@7/(byte) gfx_init_plane_charset8::col#1 gfx_init_plane_charset8::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [52] (byte*) gfx_init_plane_charset8::gfxa#6 ← phi( gfx_init_plane_charset8::@7/(byte*) gfx_init_plane_charset8::gfxa#1 gfx_init_plane_charset8::@9/((byte*))(word/signed word/dword/signed dword) 16384+((word))(const byte*) CHARSET8#0&(word/signed word/dword/signed dword) 16383 ) + [52] (byte*) gfx_init_plane_charset8::gfxa#6 ← phi( gfx_init_plane_charset8::@7/(byte*) gfx_init_plane_charset8::gfxa#1 gfx_init_plane_charset8::@9/((byte*))(word/signed word/dword/signed dword) $4000+((word))(const byte*) CHARSET8#0&(word/signed word/dword/signed dword) $3fff ) [52] (byte*) gfx_init_plane_charset8::chargen#3 ← phi( gfx_init_plane_charset8::@7/(byte*) gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::@9/(const byte*) CHARGEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1 ) to:gfx_init_plane_charset8::@2 gfx_init_plane_charset8::@2: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@1 gfx_init_plane_charset8::@6 @@ -1538,7 +1538,7 @@ gfx_init_plane_charset8::@3: scope:[gfx_init_plane_charset8] from gfx_init_plan [56] (byte) gfx_init_plane_charset8::col#2 ← phi( gfx_init_plane_charset8::@2/(byte) gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::@4/(byte) gfx_init_plane_charset8::col#1 ) [56] (byte*) gfx_init_plane_charset8::gfxa#2 ← phi( gfx_init_plane_charset8::@2/(byte*) gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::@4/(byte*) gfx_init_plane_charset8::gfxa#1 ) [56] (byte) gfx_init_plane_charset8::bits#2 ← phi( gfx_init_plane_charset8::@2/(byte) gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::@4/(byte) gfx_init_plane_charset8::bits#1 ) - [57] (byte~) gfx_init_plane_charset8::$7 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) 128 + [57] (byte~) gfx_init_plane_charset8::$7 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) $80 [58] if((byte~) gfx_init_plane_charset8::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_plane_charset8::@4 to:gfx_init_plane_charset8::@5 gfx_init_plane_charset8::@5: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@3 @@ -1569,7 +1569,7 @@ gfx_init_plane_charset8::@return: scope:[gfx_init_plane_charset8] from gfx_init [73] return to:@return dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_plane_charset8 gfx_init_plane_charset8::@8 - [74] (byte) dtvSetCpuBankSegment1::cpuBankIdx#2 ← phi( gfx_init_plane_charset8/(const byte) gfx_init_plane_charset8::gfxbCpuBank#0 gfx_init_plane_charset8::@8/((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 ) + [74] (byte) dtvSetCpuBankSegment1::cpuBankIdx#2 ← phi( gfx_init_plane_charset8/(const byte) gfx_init_plane_charset8::gfxbCpuBank#0 gfx_init_plane_charset8::@8/((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 ) [75] *((const byte*) dtvSetCpuBankSegment1::cpuBank#0) ← (byte) dtvSetCpuBankSegment1::cpuBankIdx#2 asm { .byte$32,$dd lda$ff .byte$32,$00 } to:dtvSetCpuBankSegment1::@return @@ -1586,18 +1586,18 @@ gfx_init_screen0::@1: scope:[gfx_init_screen0] from gfx_init_screen0 gfx_init_s gfx_init_screen0::@2: scope:[gfx_init_screen0] from gfx_init_screen0::@1 gfx_init_screen0::@2 [80] (byte*) gfx_init_screen0::ch#2 ← phi( gfx_init_screen0::@1/(byte*) gfx_init_screen0::ch#3 gfx_init_screen0::@2/(byte*) gfx_init_screen0::ch#1 ) [80] (byte) gfx_init_screen0::cx#2 ← phi( gfx_init_screen0::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 gfx_init_screen0::@2/(byte) gfx_init_screen0::cx#1 ) - [81] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [81] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [82] (byte~) gfx_init_screen0::$1 ← (byte~) gfx_init_screen0::$0 << (byte/signed byte/word/signed word/dword/signed dword) 4 - [83] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [83] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [84] (byte~) gfx_init_screen0::$3 ← (byte~) gfx_init_screen0::$1 | (byte~) gfx_init_screen0::$2 [85] *((byte*) gfx_init_screen0::ch#2) ← (byte~) gfx_init_screen0::$3 [86] (byte*) gfx_init_screen0::ch#1 ← ++ (byte*) gfx_init_screen0::ch#2 [87] (byte) gfx_init_screen0::cx#1 ← ++ (byte) gfx_init_screen0::cx#2 - [88] if((byte) gfx_init_screen0::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen0::@2 + [88] if((byte) gfx_init_screen0::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen0::@2 to:gfx_init_screen0::@3 gfx_init_screen0::@3: scope:[gfx_init_screen0] from gfx_init_screen0::@2 [89] (byte) gfx_init_screen0::cy#1 ← ++ (byte) gfx_init_screen0::cy#4 - [90] if((byte) gfx_init_screen0::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen0::@1 + [90] if((byte) gfx_init_screen0::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen0::@1 to:gfx_init_screen0::@return gfx_init_screen0::@return: scope:[gfx_init_screen0] from gfx_init_screen0::@3 [91] return @@ -1714,7 +1714,7 @@ VARIABLE REGISTER WEIGHTS (byte) DTV_LINEAR (byte) DTV_OVERSCAN (byte*) DTV_PALETTE -(byte[16]) DTV_PALETTE_DEFAULT +(byte[$10]) DTV_PALETTE_DEFAULT (byte*) DTV_PLANEA_MODULO_HI (byte*) DTV_PLANEA_MODULO_LO (byte*) DTV_PLANEA_START_HI @@ -2070,11 +2070,11 @@ main: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG33 [25] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) SCREEN#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG33 [25] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) SCREEN#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^SCREEN/$4000 sta CIA2_PORT_A - //SEG34 [26] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG34 [26] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 // Set VIC Bank // VIC memory lda #(SCREEN&$3fff)>>6|(>(SCREEN&$3fff))>>2 @@ -2098,7 +2098,7 @@ main: { sta DTV_PALETTE,y //SEG41 [29] (byte) main::j#1 ← ++ (byte) main::j#2 -- vbuz1=_inc_vbuz1 inc j - //SEG42 [30] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG42 [30] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda j cmp #$10 bne b1_from_b1 @@ -2152,7 +2152,7 @@ main: { jmp b5 //SEG47 main::@5 b5: - //SEG48 [34] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 66) goto main::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG48 [34] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $42) goto main::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$42 bne b5 @@ -2221,7 +2221,7 @@ main: { nop nop nop - //SEG59 [43] if((byte) main::rst#1!=(byte/word/signed word/dword/signed dword) 242) goto main::@8 -- vbuz1_neq_vbuc1_then_la1 + //SEG59 [43] if((byte) main::rst#1!=(byte/word/signed word/dword/signed dword) $f2) goto main::@8 -- vbuz1_neq_vbuc1_then_la1 lda rst cmp #$f2 bne b8 @@ -2283,7 +2283,7 @@ gfx_init_plane_charset8: { //SEG77 [52] phi (byte) gfx_init_plane_charset8::col#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#1] -- vbuz1=vbuc1 lda #0 sta col - //SEG78 [52] phi (byte*) gfx_init_plane_charset8::gfxa#6 = ((byte*))(word/signed word/dword/signed dword) 16384+((word))(const byte*) CHARSET8#0&(word/signed word/dword/signed dword) 16383 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#2] -- pbuz1=pbuc1 + //SEG78 [52] phi (byte*) gfx_init_plane_charset8::gfxa#6 = ((byte*))(word/signed word/dword/signed dword) $4000+((word))(const byte*) CHARSET8#0&(word/signed word/dword/signed dword) $3fff [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#2] -- pbuz1=pbuc1 lda #<$4000+(CHARSET8&$3fff) sta gfxa lda #>$4000+(CHARSET8&$3fff) @@ -2348,7 +2348,7 @@ gfx_init_plane_charset8: { jmp b3 //SEG109 gfx_init_plane_charset8::@3 b3: - //SEG110 [57] (byte~) gfx_init_plane_charset8::$7 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG110 [57] (byte~) gfx_init_plane_charset8::$7 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) $80 -- vbuz1=vbuz2_band_vbuc1 lda #$80 and bits sta _7 @@ -2420,7 +2420,7 @@ gfx_init_plane_charset8: { //SEG133 [72] call dtvSetCpuBankSegment1 //SEG134 [74] phi from gfx_init_plane_charset8::@8 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from_b8: - //SEG135 [74] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#2 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1#0] -- vbuz1=vbuc1 + //SEG135 [74] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#2 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1#0] -- vbuz1=vbuc1 lda #$4000/$4000 sta dtvSetCpuBankSegment1.cpuBankIdx jsr dtvSetCpuBankSegment1 @@ -2494,7 +2494,7 @@ gfx_init_screen0: { jmp b2 //SEG157 gfx_init_screen0::@2 b2: - //SEG158 [81] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG158 [81] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and cy sta _0 @@ -2505,7 +2505,7 @@ gfx_init_screen0: { asl asl sta _1 - //SEG160 [83] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG160 [83] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and cx sta _2 @@ -2524,7 +2524,7 @@ gfx_init_screen0: { !: //SEG164 [87] (byte) gfx_init_screen0::cx#1 ← ++ (byte) gfx_init_screen0::cx#2 -- vbuz1=_inc_vbuz1 inc cx - //SEG165 [88] if((byte) gfx_init_screen0::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen0::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG165 [88] if((byte) gfx_init_screen0::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen0::@2 -- vbuz1_neq_vbuc1_then_la1 lda cx cmp #$28 bne b2_from_b2 @@ -2533,7 +2533,7 @@ gfx_init_screen0: { b3: //SEG167 [89] (byte) gfx_init_screen0::cy#1 ← ++ (byte) gfx_init_screen0::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG168 [90] if((byte) gfx_init_screen0::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen0::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG168 [90] if((byte) gfx_init_screen0::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen0::@1 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b1_from_b3 @@ -2564,12 +2564,12 @@ Statement [21] *((const byte*) DTV_PLANEB_STEP#0) ← (byte/signed byte/word/sig Statement [22] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [23] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [24] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [25] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) SCREEN#0/(word/signed word/dword/signed dword) 16384 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [26] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [25] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) SCREEN#0/(word/signed word/dword/signed dword) $4000 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [26] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement asm { ldx#$ff rff: cpxRASTER bnerff stabilize: nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop cpxRASTER beqeat+0 eat: inx cpx#$08 bnestabilize } always clobbers reg byte x Statement [32] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_ECM#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [33] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [34] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 66) goto main::@5 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [34] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $42) goto main::@5 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [37] (byte~) main::$32 ← (byte) main::rst#1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ main::rst#1 main::$32 ] ( main:2 [ main::rst#1 main::$32 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:18 [ main::rst#1 ] Statement [38] (byte~) main::$33 ← (const byte) VIC_DEN#0|(const byte) VIC_ECM#0|(const byte) VIC_RSEL#0 | (byte~) main::$32 [ main::rst#1 main::$33 ] ( main:2 [ main::rst#1 main::$33 ] ) always clobbers reg byte a @@ -2582,7 +2582,7 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:10 [ g Removing always clobbered register reg byte y as potential for zp ZP_BYTE:10 [ gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:6 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:6 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] -Statement [57] (byte~) gfx_init_plane_charset8::$7 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) 128 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::$7 ] ( main:2::gfx_init:7::gfx_init_plane_charset8:47 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::$7 ] ) always clobbers reg byte a +Statement [57] (byte~) gfx_init_plane_charset8::$7 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) $80 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::$7 ] ( main:2::gfx_init:7::gfx_init_plane_charset8:47 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::$7 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:7 [ gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:11 [ gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::cp#1 ] Statement [61] *((byte*) gfx_init_plane_charset8::gfxa#2) ← (byte) gfx_init_plane_charset8::c#2 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 ] ( main:2::gfx_init:7::gfx_init_plane_charset8:47 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 ] ) always clobbers reg byte y @@ -2590,11 +2590,11 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:7 [ gf Removing always clobbered register reg byte y as potential for zp ZP_BYTE:11 [ gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::cp#1 ] Statement [71] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:2::gfx_init:7::gfx_init_plane_charset8:47 [ ] ) always clobbers reg byte a Statement asm { .byte$32,$dd lda$ff .byte$32,$00 } always clobbers reg byte a -Statement [81] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$0 ] ( main:2::gfx_init:7::gfx_init_screen0:45 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$0 ] ) always clobbers reg byte a +Statement [81] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$0 ] ( main:2::gfx_init:7::gfx_init_screen0:45 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:14 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:15 [ gfx_init_screen0::cx#2 gfx_init_screen0::cx#1 ] Statement [82] (byte~) gfx_init_screen0::$1 ← (byte~) gfx_init_screen0::$0 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$1 ] ( main:2::gfx_init:7::gfx_init_screen0:45 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$1 ] ) always clobbers reg byte a -Statement [83] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$1 gfx_init_screen0::$2 ] ( main:2::gfx_init:7::gfx_init_screen0:45 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$1 gfx_init_screen0::$2 ] ) always clobbers reg byte a +Statement [83] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$1 gfx_init_screen0::$2 ] ( main:2::gfx_init:7::gfx_init_screen0:45 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$1 gfx_init_screen0::$2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:24 [ gfx_init_screen0::$1 ] Statement [85] *((byte*) gfx_init_screen0::ch#2) ← (byte~) gfx_init_screen0::$3 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 ] ( main:2::gfx_init:7::gfx_init_screen0:45 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:14 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 ] @@ -2618,24 +2618,24 @@ Statement [21] *((const byte*) DTV_PLANEB_STEP#0) ← (byte/signed byte/word/sig Statement [22] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [23] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [24] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [25] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) SCREEN#0/(word/signed word/dword/signed dword) 16384 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [26] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [25] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) SCREEN#0/(word/signed word/dword/signed dword) $4000 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [26] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement asm { ldx#$ff rff: cpxRASTER bnerff stabilize: nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop cpxRASTER beqeat+0 eat: inx cpx#$08 bnestabilize } always clobbers reg byte x Statement [32] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_ECM#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [33] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [34] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 66) goto main::@5 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [34] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $42) goto main::@5 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [37] (byte~) main::$32 ← (byte) main::rst#1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ main::rst#1 main::$32 ] ( main:2 [ main::rst#1 main::$32 ] ) always clobbers reg byte a Statement [38] (byte~) main::$33 ← (const byte) VIC_DEN#0|(const byte) VIC_ECM#0|(const byte) VIC_RSEL#0 | (byte~) main::$32 [ main::rst#1 main::$33 ] ( main:2 [ main::rst#1 main::$33 ] ) always clobbers reg byte a Statement [40] (byte~) main::$34 ← (byte) main::rst#1 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ main::rst#1 main::$34 ] ( main:2 [ main::rst#1 main::$34 ] ) always clobbers reg byte a Statement [51] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_CHARROM#0 [ ] ( main:2::gfx_init:7::gfx_init_plane_charset8:47 [ ] ) always clobbers reg byte a Statement [54] (byte) gfx_init_plane_charset8::bits#0 ← *((byte*) gfx_init_plane_charset8::chargen#2) [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#0 ] ( main:2::gfx_init:7::gfx_init_plane_charset8:47 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#0 ] ) always clobbers reg byte a reg byte y -Statement [57] (byte~) gfx_init_plane_charset8::$7 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) 128 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::$7 ] ( main:2::gfx_init:7::gfx_init_plane_charset8:47 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::$7 ] ) always clobbers reg byte a +Statement [57] (byte~) gfx_init_plane_charset8::$7 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) $80 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::$7 ] ( main:2::gfx_init:7::gfx_init_plane_charset8:47 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::$7 ] ) always clobbers reg byte a Statement [61] *((byte*) gfx_init_plane_charset8::gfxa#2) ← (byte) gfx_init_plane_charset8::c#2 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 ] ( main:2::gfx_init:7::gfx_init_plane_charset8:47 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 ] ) always clobbers reg byte y Statement [71] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:2::gfx_init:7::gfx_init_plane_charset8:47 [ ] ) always clobbers reg byte a Statement asm { .byte$32,$dd lda$ff .byte$32,$00 } always clobbers reg byte a -Statement [81] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$0 ] ( main:2::gfx_init:7::gfx_init_screen0:45 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$0 ] ) always clobbers reg byte a +Statement [81] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$0 ] ( main:2::gfx_init:7::gfx_init_screen0:45 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$0 ] ) always clobbers reg byte a Statement [82] (byte~) gfx_init_screen0::$1 ← (byte~) gfx_init_screen0::$0 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$1 ] ( main:2::gfx_init:7::gfx_init_screen0:45 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$1 ] ) always clobbers reg byte a -Statement [83] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$1 gfx_init_screen0::$2 ] ( main:2::gfx_init:7::gfx_init_screen0:45 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$1 gfx_init_screen0::$2 ] ) always clobbers reg byte a +Statement [83] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$1 gfx_init_screen0::$2 ] ( main:2::gfx_init:7::gfx_init_screen0:45 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$1 gfx_init_screen0::$2 ] ) always clobbers reg byte a Statement [85] *((byte*) gfx_init_screen0::ch#2) ← (byte~) gfx_init_screen0::$3 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 ] ( main:2::gfx_init:7::gfx_init_screen0:45 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 ] ) always clobbers reg byte y Potential registers zp ZP_BYTE:2 [ main::j#2 main::j#1 ] : zp ZP_BYTE:2 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:3 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ] : zp ZP_BYTE:3 , reg byte x , @@ -2853,11 +2853,11 @@ main: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG33 [25] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) SCREEN#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG33 [25] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) SCREEN#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^SCREEN/$4000 sta CIA2_PORT_A - //SEG34 [26] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG34 [26] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 // Set VIC Bank // VIC memory lda #(SCREEN&$3fff)>>6|(>(SCREEN&$3fff))>>2 @@ -2879,7 +2879,7 @@ main: { sta DTV_PALETTE,x //SEG41 [29] (byte) main::j#1 ← ++ (byte) main::j#2 -- vbuxx=_inc_vbuxx inx - //SEG42 [30] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG42 [30] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1_from_b1 jmp b3 @@ -2932,7 +2932,7 @@ main: { jmp b5 //SEG47 main::@5 b5: - //SEG48 [34] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 66) goto main::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG48 [34] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $42) goto main::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$42 bne b5 @@ -2994,7 +2994,7 @@ main: { nop nop nop - //SEG59 [43] if((byte) main::rst#1!=(byte/word/signed word/dword/signed dword) 242) goto main::@8 -- vbuxx_neq_vbuc1_then_la1 + //SEG59 [43] if((byte) main::rst#1!=(byte/word/signed word/dword/signed dword) $f2) goto main::@8 -- vbuxx_neq_vbuc1_then_la1 cpx #$f2 bne b8 jmp b3 @@ -3051,7 +3051,7 @@ gfx_init_plane_charset8: { //SEG77 [52] phi (byte) gfx_init_plane_charset8::col#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#1] -- vbuz1=vbuc1 lda #0 sta col - //SEG78 [52] phi (byte*) gfx_init_plane_charset8::gfxa#6 = ((byte*))(word/signed word/dword/signed dword) 16384+((word))(const byte*) CHARSET8#0&(word/signed word/dword/signed dword) 16383 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#2] -- pbuz1=pbuc1 + //SEG78 [52] phi (byte*) gfx_init_plane_charset8::gfxa#6 = ((byte*))(word/signed word/dword/signed dword) $4000+((word))(const byte*) CHARSET8#0&(word/signed word/dword/signed dword) $3fff [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#2] -- pbuz1=pbuc1 lda #<$4000+(CHARSET8&$3fff) sta gfxa lda #>$4000+(CHARSET8&$3fff) @@ -3115,7 +3115,7 @@ gfx_init_plane_charset8: { jmp b3 //SEG109 gfx_init_plane_charset8::@3 b3: - //SEG110 [57] (byte~) gfx_init_plane_charset8::$7 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG110 [57] (byte~) gfx_init_plane_charset8::$7 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuz1_band_vbuc1 lda #$80 and bits //SEG111 [58] if((byte~) gfx_init_plane_charset8::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_plane_charset8::@4 -- vbuaa_eq_0_then_la1 @@ -3181,7 +3181,7 @@ gfx_init_plane_charset8: { //SEG133 [72] call dtvSetCpuBankSegment1 //SEG134 [74] phi from gfx_init_plane_charset8::@8 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from_b8: - //SEG135 [74] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#2 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + //SEG135 [74] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#2 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #$4000/$4000 jsr dtvSetCpuBankSegment1 jmp breturn @@ -3247,7 +3247,7 @@ gfx_init_screen0: { jmp b2 //SEG157 gfx_init_screen0::@2 b2: - //SEG158 [81] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG158 [81] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and cy //SEG159 [82] (byte~) gfx_init_screen0::$1 ← (byte~) gfx_init_screen0::$0 << (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuaa_rol_4 @@ -3256,7 +3256,7 @@ gfx_init_screen0: { asl asl sta _1 - //SEG160 [83] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG160 [83] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG161 [84] (byte~) gfx_init_screen0::$3 ← (byte~) gfx_init_screen0::$1 | (byte~) gfx_init_screen0::$2 -- vbuaa=vbuz1_bor_vbuaa @@ -3271,7 +3271,7 @@ gfx_init_screen0: { !: //SEG164 [87] (byte) gfx_init_screen0::cx#1 ← ++ (byte) gfx_init_screen0::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG165 [88] if((byte) gfx_init_screen0::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen0::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG165 [88] if((byte) gfx_init_screen0::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen0::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b2_from_b2 jmp b3 @@ -3279,7 +3279,7 @@ gfx_init_screen0: { b3: //SEG167 [89] (byte) gfx_init_screen0::cy#1 ← ++ (byte) gfx_init_screen0::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG168 [90] if((byte) gfx_init_screen0::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen0::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG168 [90] if((byte) gfx_init_screen0::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen0::@1 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b1_from_b3 @@ -3394,12 +3394,12 @@ FINAL SYMBOL TABLE (byte) BLACK (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN -(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word/dword/signed dword) 53248 +(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word/dword/signed dword) $d000 (byte*) CHARSET8 -(const byte*) CHARSET8#0 CHARSET8 = ((byte*))(word/dword/signed dword) 32768 +(const byte*) CHARSET8#0 CHARSET8 = ((byte*))(word/dword/signed dword) $8000 (byte*) CIA1_INTERRUPT (byte*) CIA1_PORT_A (byte*) CIA1_PORT_A_DDR @@ -3407,9 +3407,9 @@ FINAL SYMBOL TABLE (byte*) CIA1_PORT_B_DDR (byte*) CIA2_INTERRUPT (byte*) CIA2_PORT_A -(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) 56576 +(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) $dd00 (byte*) CIA2_PORT_A_DDR -(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56578 +(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) $dd02 (byte*) CIA2_PORT_B (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR @@ -3420,7 +3420,7 @@ FINAL SYMBOL TABLE (byte*) D018 (byte) DARK_GREY (byte) DTV_BADLINE_OFF -(const byte) DTV_BADLINE_OFF#0 DTV_BADLINE_OFF = (byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte) DTV_BADLINE_OFF#0 DTV_BADLINE_OFF = (byte/signed byte/word/signed word/dword/signed dword) $20 (byte*) DTV_BLITTER_ALU (byte*) DTV_BLITTER_CONTROL (byte*) DTV_BLITTER_CONTROL2 @@ -3487,15 +3487,15 @@ FINAL SYMBOL TABLE (byte) DTV_BLIT_XOR (byte) DTV_BORDER_OFF (byte) DTV_CHUNKY -(const byte) DTV_CHUNKY#0 DTV_CHUNKY = (byte/signed byte/word/signed word/dword/signed dword) 64 +(const byte) DTV_CHUNKY#0 DTV_CHUNKY = (byte/signed byte/word/signed word/dword/signed dword) $40 (byte) DTV_COLORRAM_OFF (dword) DTV_COLOR_BANK_DEFAULT (byte*) DTV_COLOR_BANK_HI (byte*) DTV_COLOR_BANK_LO (byte*) DTV_CONTROL -(const byte*) DTV_CONTROL#0 DTV_CONTROL = ((byte*))(word/dword/signed dword) 53308 +(const byte*) DTV_CONTROL#0 DTV_CONTROL = ((byte*))(word/dword/signed dword) $d03c (byte*) DTV_FEATURE -(const byte*) DTV_FEATURE#0 DTV_FEATURE = ((byte*))(word/dword/signed dword) 53311 +(const byte*) DTV_FEATURE#0 DTV_FEATURE = ((byte*))(word/dword/signed dword) $d03f (byte) DTV_FEATURE_DISABLE_TIL_RESET (byte) DTV_FEATURE_ENABLE (const byte) DTV_FEATURE_ENABLE#0 DTV_FEATURE_ENABLE = (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -3507,32 +3507,32 @@ FINAL SYMBOL TABLE (const byte) DTV_LINEAR#0 DTV_LINEAR = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_OVERSCAN (byte*) DTV_PALETTE -(const byte*) DTV_PALETTE#0 DTV_PALETTE = ((byte*))(word/dword/signed dword) 53760 -(byte[16]) DTV_PALETTE_DEFAULT +(const byte*) DTV_PALETTE#0 DTV_PALETTE = ((byte*))(word/dword/signed dword) $d200 +(byte[$10]) DTV_PALETTE_DEFAULT (byte*) DTV_PLANEA_MODULO_HI -(const byte*) DTV_PLANEA_MODULO_HI#0 DTV_PLANEA_MODULO_HI = ((byte*))(word/dword/signed dword) 53305 +(const byte*) DTV_PLANEA_MODULO_HI#0 DTV_PLANEA_MODULO_HI = ((byte*))(word/dword/signed dword) $d039 (byte*) DTV_PLANEA_MODULO_LO -(const byte*) DTV_PLANEA_MODULO_LO#0 DTV_PLANEA_MODULO_LO = ((byte*))(word/dword/signed dword) 53304 +(const byte*) DTV_PLANEA_MODULO_LO#0 DTV_PLANEA_MODULO_LO = ((byte*))(word/dword/signed dword) $d038 (byte*) DTV_PLANEA_START_HI -(const byte*) DTV_PLANEA_START_HI#0 DTV_PLANEA_START_HI = ((byte*))(word/dword/signed dword) 53317 +(const byte*) DTV_PLANEA_START_HI#0 DTV_PLANEA_START_HI = ((byte*))(word/dword/signed dword) $d045 (byte*) DTV_PLANEA_START_LO -(const byte*) DTV_PLANEA_START_LO#0 DTV_PLANEA_START_LO = ((byte*))(word/dword/signed dword) 53306 +(const byte*) DTV_PLANEA_START_LO#0 DTV_PLANEA_START_LO = ((byte*))(word/dword/signed dword) $d03a (byte*) DTV_PLANEA_START_MI -(const byte*) DTV_PLANEA_START_MI#0 DTV_PLANEA_START_MI = ((byte*))(word/dword/signed dword) 53307 +(const byte*) DTV_PLANEA_START_MI#0 DTV_PLANEA_START_MI = ((byte*))(word/dword/signed dword) $d03b (byte*) DTV_PLANEA_STEP -(const byte*) DTV_PLANEA_STEP#0 DTV_PLANEA_STEP = ((byte*))(word/dword/signed dword) 53318 +(const byte*) DTV_PLANEA_STEP#0 DTV_PLANEA_STEP = ((byte*))(word/dword/signed dword) $d046 (byte*) DTV_PLANEB_MODULO_HI -(const byte*) DTV_PLANEB_MODULO_HI#0 DTV_PLANEB_MODULO_HI = ((byte*))(word/dword/signed dword) 53320 +(const byte*) DTV_PLANEB_MODULO_HI#0 DTV_PLANEB_MODULO_HI = ((byte*))(word/dword/signed dword) $d048 (byte*) DTV_PLANEB_MODULO_LO -(const byte*) DTV_PLANEB_MODULO_LO#0 DTV_PLANEB_MODULO_LO = ((byte*))(word/dword/signed dword) 53319 +(const byte*) DTV_PLANEB_MODULO_LO#0 DTV_PLANEB_MODULO_LO = ((byte*))(word/dword/signed dword) $d047 (byte*) DTV_PLANEB_START_HI -(const byte*) DTV_PLANEB_START_HI#0 DTV_PLANEB_START_HI = ((byte*))(word/dword/signed dword) 53323 +(const byte*) DTV_PLANEB_START_HI#0 DTV_PLANEB_START_HI = ((byte*))(word/dword/signed dword) $d04b (byte*) DTV_PLANEB_START_LO -(const byte*) DTV_PLANEB_START_LO#0 DTV_PLANEB_START_LO = ((byte*))(word/dword/signed dword) 53321 +(const byte*) DTV_PLANEB_START_LO#0 DTV_PLANEB_START_LO = ((byte*))(word/dword/signed dword) $d049 (byte*) DTV_PLANEB_START_MI -(const byte*) DTV_PLANEB_START_MI#0 DTV_PLANEB_START_MI = ((byte*))(word/dword/signed dword) 53322 +(const byte*) DTV_PLANEB_START_MI#0 DTV_PLANEB_START_MI = ((byte*))(word/dword/signed dword) $d04a (byte*) DTV_PLANEB_STEP -(const byte*) DTV_PLANEB_STEP#0 DTV_PLANEB_STEP = ((byte*))(word/dword/signed dword) 53324 +(const byte*) DTV_PLANEB_STEP#0 DTV_PLANEB_STEP = ((byte*))(word/dword/signed dword) $d04c (byte*) DTV_SPRITE_BANK (byte) GREEN (byte) GREY @@ -3561,15 +3561,15 @@ FINAL SYMBOL TABLE (byte) PROCPORT_KERNEL_IO (byte) PROCPORT_RAM_ALL (byte) PROCPORT_RAM_CHARROM -(const byte) PROCPORT_RAM_CHARROM#0 PROCPORT_RAM_CHARROM = (byte/signed byte/word/signed word/dword/signed dword) 49 +(const byte) PROCPORT_RAM_CHARROM#0 PROCPORT_RAM_CHARROM = (byte/signed byte/word/signed word/dword/signed dword) $31 (byte) PROCPORT_RAM_IO -(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) 53 +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) $35 (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 31744 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $7c00 (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE (byte*) SPRITES_EXPAND_X @@ -3584,19 +3584,19 @@ FINAL SYMBOL TABLE (word) SPRITE_PTRS (byte) VIC_BMM (byte*) VIC_CONTROL -(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) 53265 +(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) $d011 (byte*) VIC_CONTROL2 -(const byte*) VIC_CONTROL2#0 VIC_CONTROL2 = ((byte*))(word/dword/signed dword) 53270 +(const byte*) VIC_CONTROL2#0 VIC_CONTROL2 = ((byte*))(word/dword/signed dword) $d016 (byte) VIC_CSEL (const byte) VIC_CSEL#0 VIC_CSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) VIC_DEN -(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_ECM -(const byte) VIC_ECM#0 VIC_ECM = (byte/signed byte/word/signed word/dword/signed dword) 64 +(const byte) VIC_ECM#0 VIC_ECM = (byte/signed byte/word/signed word/dword/signed dword) $40 (byte) VIC_MCM -(const byte) VIC_MCM#0 VIC_MCM = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_MCM#0 VIC_MCM = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte*) VIC_MEMORY -(const byte*) VIC_MEMORY#0 VIC_MEMORY = ((byte*))(word/dword/signed dword) 53272 +(const byte*) VIC_MEMORY#0 VIC_MEMORY = ((byte*))(word/dword/signed dword) $d018 (byte) VIC_RSEL (const byte) VIC_RSEL#0 VIC_RSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) VIC_RST8 @@ -3605,7 +3605,7 @@ FINAL SYMBOL TABLE (void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx) (label) dtvSetCpuBankSegment1::@return (byte*) dtvSetCpuBankSegment1::cpuBank -(const byte*) dtvSetCpuBankSegment1::cpuBank#0 cpuBank = ((byte*))(byte/word/signed word/dword/signed dword) 255 +(const byte*) dtvSetCpuBankSegment1::cpuBank#0 cpuBank = ((byte*))(byte/word/signed word/dword/signed dword) $ff (byte) dtvSetCpuBankSegment1::cpuBankIdx (byte) dtvSetCpuBankSegment1::cpuBankIdx#2 reg byte a 2.0 (void()) gfx_init() @@ -3654,7 +3654,7 @@ FINAL SYMBOL TABLE (byte*) gfx_init_plane_charset8::gfxa#5 gfxa zp ZP_WORD:7 71.0 (byte*) gfx_init_plane_charset8::gfxa#6 gfxa zp ZP_WORD:7 22.0 (byte) gfx_init_plane_charset8::gfxbCpuBank -(const byte) gfx_init_plane_charset8::gfxbCpuBank#0 gfxbCpuBank = ((byte))(const byte*) CHARSET8#0/(word/signed word/dword/signed dword) 16384 +(const byte) gfx_init_plane_charset8::gfxbCpuBank#0 gfxbCpuBank = ((byte))(const byte*) CHARSET8#0/(word/signed word/dword/signed dword) $4000 (void()) gfx_init_screen0() (byte~) gfx_init_screen0::$0 reg byte a 202.0 (byte~) gfx_init_screen0::$1 $1 zp ZP_BYTE:5 101.0 @@ -3850,11 +3850,11 @@ main: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG33 [25] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) SCREEN#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG33 [25] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) SCREEN#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^SCREEN/$4000 sta CIA2_PORT_A - //SEG34 [26] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG34 [26] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 // Set VIC Bank // VIC memory lda #(SCREEN&$3fff)>>6|(>(SCREEN&$3fff))>>2 @@ -3872,7 +3872,7 @@ main: { sta DTV_PALETTE,x //SEG41 [29] (byte) main::j#1 ← ++ (byte) main::j#2 -- vbuxx=_inc_vbuxx inx - //SEG42 [30] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG42 [30] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1 //SEG43 main::@3 @@ -3923,7 +3923,7 @@ main: { sta BORDERCOL //SEG47 main::@5 b5: - //SEG48 [34] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 66) goto main::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG48 [34] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $42) goto main::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$42 bne b5 @@ -3982,7 +3982,7 @@ main: { nop nop nop - //SEG59 [43] if((byte) main::rst#1!=(byte/word/signed word/dword/signed dword) 242) goto main::@8 -- vbuxx_neq_vbuc1_then_la1 + //SEG59 [43] if((byte) main::rst#1!=(byte/word/signed word/dword/signed dword) $f2) goto main::@8 -- vbuxx_neq_vbuc1_then_la1 cpx #$f2 bne b8 jmp b3 @@ -4027,7 +4027,7 @@ gfx_init_plane_charset8: { sta ch //SEG77 [52] phi (byte) gfx_init_plane_charset8::col#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#1] -- vbuz1=vbuc1 sta col - //SEG78 [52] phi (byte*) gfx_init_plane_charset8::gfxa#6 = ((byte*))(word/signed word/dword/signed dword) 16384+((word))(const byte*) CHARSET8#0&(word/signed word/dword/signed dword) 16383 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#2] -- pbuz1=pbuc1 + //SEG78 [52] phi (byte*) gfx_init_plane_charset8::gfxa#6 = ((byte*))(word/signed word/dword/signed dword) $4000+((word))(const byte*) CHARSET8#0&(word/signed word/dword/signed dword) $3fff [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#2] -- pbuz1=pbuc1 lda #<$4000+(CHARSET8&$3fff) sta gfxa lda #>$4000+(CHARSET8&$3fff) @@ -4080,7 +4080,7 @@ gfx_init_plane_charset8: { //SEG108 [56] phi (byte) gfx_init_plane_charset8::bits#2 = (byte) gfx_init_plane_charset8::bits#1 [phi:gfx_init_plane_charset8::@4->gfx_init_plane_charset8::@3#3] -- register_copy //SEG109 gfx_init_plane_charset8::@3 b3: - //SEG110 [57] (byte~) gfx_init_plane_charset8::$7 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG110 [57] (byte~) gfx_init_plane_charset8::$7 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuz1_band_vbuc1 lda #$80 and bits //SEG111 [58] if((byte~) gfx_init_plane_charset8::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_plane_charset8::@4 -- vbuaa_eq_0_then_la1 @@ -4135,7 +4135,7 @@ gfx_init_plane_charset8: { sta PROCPORT //SEG133 [72] call dtvSetCpuBankSegment1 //SEG134 [74] phi from gfx_init_plane_charset8::@8 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1] - //SEG135 [74] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#2 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + //SEG135 [74] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#2 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #$4000/$4000 jsr dtvSetCpuBankSegment1 //SEG136 gfx_init_plane_charset8::@return @@ -4189,7 +4189,7 @@ gfx_init_screen0: { //SEG156 [80] phi (byte) gfx_init_screen0::cx#2 = (byte) gfx_init_screen0::cx#1 [phi:gfx_init_screen0::@2->gfx_init_screen0::@2#1] -- register_copy //SEG157 gfx_init_screen0::@2 b2: - //SEG158 [81] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG158 [81] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and cy //SEG159 [82] (byte~) gfx_init_screen0::$1 ← (byte~) gfx_init_screen0::$0 << (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuaa_rol_4 @@ -4198,7 +4198,7 @@ gfx_init_screen0: { asl asl sta _1 - //SEG160 [83] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG160 [83] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG161 [84] (byte~) gfx_init_screen0::$3 ← (byte~) gfx_init_screen0::$1 | (byte~) gfx_init_screen0::$2 -- vbuaa=vbuz1_bor_vbuaa @@ -4213,13 +4213,13 @@ gfx_init_screen0: { !: //SEG164 [87] (byte) gfx_init_screen0::cx#1 ← ++ (byte) gfx_init_screen0::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG165 [88] if((byte) gfx_init_screen0::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen0::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG165 [88] if((byte) gfx_init_screen0::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen0::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b2 //SEG166 gfx_init_screen0::@3 //SEG167 [89] (byte) gfx_init_screen0::cy#1 ← ++ (byte) gfx_init_screen0::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG168 [90] if((byte) gfx_init_screen0::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen0::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG168 [90] if((byte) gfx_init_screen0::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen0::@1 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b1 diff --git a/src/test/ref/c64dtv-8bppcharstretch.sym b/src/test/ref/c64dtv-8bppcharstretch.sym index a0d88f07a..5bd44032a 100644 --- a/src/test/ref/c64dtv-8bppcharstretch.sym +++ b/src/test/ref/c64dtv-8bppcharstretch.sym @@ -9,12 +9,12 @@ (byte) BLACK (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN -(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word/dword/signed dword) 53248 +(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word/dword/signed dword) $d000 (byte*) CHARSET8 -(const byte*) CHARSET8#0 CHARSET8 = ((byte*))(word/dword/signed dword) 32768 +(const byte*) CHARSET8#0 CHARSET8 = ((byte*))(word/dword/signed dword) $8000 (byte*) CIA1_INTERRUPT (byte*) CIA1_PORT_A (byte*) CIA1_PORT_A_DDR @@ -22,9 +22,9 @@ (byte*) CIA1_PORT_B_DDR (byte*) CIA2_INTERRUPT (byte*) CIA2_PORT_A -(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) 56576 +(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) $dd00 (byte*) CIA2_PORT_A_DDR -(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56578 +(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) $dd02 (byte*) CIA2_PORT_B (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR @@ -35,7 +35,7 @@ (byte*) D018 (byte) DARK_GREY (byte) DTV_BADLINE_OFF -(const byte) DTV_BADLINE_OFF#0 DTV_BADLINE_OFF = (byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte) DTV_BADLINE_OFF#0 DTV_BADLINE_OFF = (byte/signed byte/word/signed word/dword/signed dword) $20 (byte*) DTV_BLITTER_ALU (byte*) DTV_BLITTER_CONTROL (byte*) DTV_BLITTER_CONTROL2 @@ -102,15 +102,15 @@ (byte) DTV_BLIT_XOR (byte) DTV_BORDER_OFF (byte) DTV_CHUNKY -(const byte) DTV_CHUNKY#0 DTV_CHUNKY = (byte/signed byte/word/signed word/dword/signed dword) 64 +(const byte) DTV_CHUNKY#0 DTV_CHUNKY = (byte/signed byte/word/signed word/dword/signed dword) $40 (byte) DTV_COLORRAM_OFF (dword) DTV_COLOR_BANK_DEFAULT (byte*) DTV_COLOR_BANK_HI (byte*) DTV_COLOR_BANK_LO (byte*) DTV_CONTROL -(const byte*) DTV_CONTROL#0 DTV_CONTROL = ((byte*))(word/dword/signed dword) 53308 +(const byte*) DTV_CONTROL#0 DTV_CONTROL = ((byte*))(word/dword/signed dword) $d03c (byte*) DTV_FEATURE -(const byte*) DTV_FEATURE#0 DTV_FEATURE = ((byte*))(word/dword/signed dword) 53311 +(const byte*) DTV_FEATURE#0 DTV_FEATURE = ((byte*))(word/dword/signed dword) $d03f (byte) DTV_FEATURE_DISABLE_TIL_RESET (byte) DTV_FEATURE_ENABLE (const byte) DTV_FEATURE_ENABLE#0 DTV_FEATURE_ENABLE = (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -122,32 +122,32 @@ (const byte) DTV_LINEAR#0 DTV_LINEAR = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_OVERSCAN (byte*) DTV_PALETTE -(const byte*) DTV_PALETTE#0 DTV_PALETTE = ((byte*))(word/dword/signed dword) 53760 -(byte[16]) DTV_PALETTE_DEFAULT +(const byte*) DTV_PALETTE#0 DTV_PALETTE = ((byte*))(word/dword/signed dword) $d200 +(byte[$10]) DTV_PALETTE_DEFAULT (byte*) DTV_PLANEA_MODULO_HI -(const byte*) DTV_PLANEA_MODULO_HI#0 DTV_PLANEA_MODULO_HI = ((byte*))(word/dword/signed dword) 53305 +(const byte*) DTV_PLANEA_MODULO_HI#0 DTV_PLANEA_MODULO_HI = ((byte*))(word/dword/signed dword) $d039 (byte*) DTV_PLANEA_MODULO_LO -(const byte*) DTV_PLANEA_MODULO_LO#0 DTV_PLANEA_MODULO_LO = ((byte*))(word/dword/signed dword) 53304 +(const byte*) DTV_PLANEA_MODULO_LO#0 DTV_PLANEA_MODULO_LO = ((byte*))(word/dword/signed dword) $d038 (byte*) DTV_PLANEA_START_HI -(const byte*) DTV_PLANEA_START_HI#0 DTV_PLANEA_START_HI = ((byte*))(word/dword/signed dword) 53317 +(const byte*) DTV_PLANEA_START_HI#0 DTV_PLANEA_START_HI = ((byte*))(word/dword/signed dword) $d045 (byte*) DTV_PLANEA_START_LO -(const byte*) DTV_PLANEA_START_LO#0 DTV_PLANEA_START_LO = ((byte*))(word/dword/signed dword) 53306 +(const byte*) DTV_PLANEA_START_LO#0 DTV_PLANEA_START_LO = ((byte*))(word/dword/signed dword) $d03a (byte*) DTV_PLANEA_START_MI -(const byte*) DTV_PLANEA_START_MI#0 DTV_PLANEA_START_MI = ((byte*))(word/dword/signed dword) 53307 +(const byte*) DTV_PLANEA_START_MI#0 DTV_PLANEA_START_MI = ((byte*))(word/dword/signed dword) $d03b (byte*) DTV_PLANEA_STEP -(const byte*) DTV_PLANEA_STEP#0 DTV_PLANEA_STEP = ((byte*))(word/dword/signed dword) 53318 +(const byte*) DTV_PLANEA_STEP#0 DTV_PLANEA_STEP = ((byte*))(word/dword/signed dword) $d046 (byte*) DTV_PLANEB_MODULO_HI -(const byte*) DTV_PLANEB_MODULO_HI#0 DTV_PLANEB_MODULO_HI = ((byte*))(word/dword/signed dword) 53320 +(const byte*) DTV_PLANEB_MODULO_HI#0 DTV_PLANEB_MODULO_HI = ((byte*))(word/dword/signed dword) $d048 (byte*) DTV_PLANEB_MODULO_LO -(const byte*) DTV_PLANEB_MODULO_LO#0 DTV_PLANEB_MODULO_LO = ((byte*))(word/dword/signed dword) 53319 +(const byte*) DTV_PLANEB_MODULO_LO#0 DTV_PLANEB_MODULO_LO = ((byte*))(word/dword/signed dword) $d047 (byte*) DTV_PLANEB_START_HI -(const byte*) DTV_PLANEB_START_HI#0 DTV_PLANEB_START_HI = ((byte*))(word/dword/signed dword) 53323 +(const byte*) DTV_PLANEB_START_HI#0 DTV_PLANEB_START_HI = ((byte*))(word/dword/signed dword) $d04b (byte*) DTV_PLANEB_START_LO -(const byte*) DTV_PLANEB_START_LO#0 DTV_PLANEB_START_LO = ((byte*))(word/dword/signed dword) 53321 +(const byte*) DTV_PLANEB_START_LO#0 DTV_PLANEB_START_LO = ((byte*))(word/dword/signed dword) $d049 (byte*) DTV_PLANEB_START_MI -(const byte*) DTV_PLANEB_START_MI#0 DTV_PLANEB_START_MI = ((byte*))(word/dword/signed dword) 53322 +(const byte*) DTV_PLANEB_START_MI#0 DTV_PLANEB_START_MI = ((byte*))(word/dword/signed dword) $d04a (byte*) DTV_PLANEB_STEP -(const byte*) DTV_PLANEB_STEP#0 DTV_PLANEB_STEP = ((byte*))(word/dword/signed dword) 53324 +(const byte*) DTV_PLANEB_STEP#0 DTV_PLANEB_STEP = ((byte*))(word/dword/signed dword) $d04c (byte*) DTV_SPRITE_BANK (byte) GREEN (byte) GREY @@ -176,15 +176,15 @@ (byte) PROCPORT_KERNEL_IO (byte) PROCPORT_RAM_ALL (byte) PROCPORT_RAM_CHARROM -(const byte) PROCPORT_RAM_CHARROM#0 PROCPORT_RAM_CHARROM = (byte/signed byte/word/signed word/dword/signed dword) 49 +(const byte) PROCPORT_RAM_CHARROM#0 PROCPORT_RAM_CHARROM = (byte/signed byte/word/signed word/dword/signed dword) $31 (byte) PROCPORT_RAM_IO -(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) 53 +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) $35 (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 31744 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $7c00 (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE (byte*) SPRITES_EXPAND_X @@ -199,19 +199,19 @@ (word) SPRITE_PTRS (byte) VIC_BMM (byte*) VIC_CONTROL -(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) 53265 +(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) $d011 (byte*) VIC_CONTROL2 -(const byte*) VIC_CONTROL2#0 VIC_CONTROL2 = ((byte*))(word/dword/signed dword) 53270 +(const byte*) VIC_CONTROL2#0 VIC_CONTROL2 = ((byte*))(word/dword/signed dword) $d016 (byte) VIC_CSEL (const byte) VIC_CSEL#0 VIC_CSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) VIC_DEN -(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_ECM -(const byte) VIC_ECM#0 VIC_ECM = (byte/signed byte/word/signed word/dword/signed dword) 64 +(const byte) VIC_ECM#0 VIC_ECM = (byte/signed byte/word/signed word/dword/signed dword) $40 (byte) VIC_MCM -(const byte) VIC_MCM#0 VIC_MCM = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_MCM#0 VIC_MCM = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte*) VIC_MEMORY -(const byte*) VIC_MEMORY#0 VIC_MEMORY = ((byte*))(word/dword/signed dword) 53272 +(const byte*) VIC_MEMORY#0 VIC_MEMORY = ((byte*))(word/dword/signed dword) $d018 (byte) VIC_RSEL (const byte) VIC_RSEL#0 VIC_RSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) VIC_RST8 @@ -220,7 +220,7 @@ (void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx) (label) dtvSetCpuBankSegment1::@return (byte*) dtvSetCpuBankSegment1::cpuBank -(const byte*) dtvSetCpuBankSegment1::cpuBank#0 cpuBank = ((byte*))(byte/word/signed word/dword/signed dword) 255 +(const byte*) dtvSetCpuBankSegment1::cpuBank#0 cpuBank = ((byte*))(byte/word/signed word/dword/signed dword) $ff (byte) dtvSetCpuBankSegment1::cpuBankIdx (byte) dtvSetCpuBankSegment1::cpuBankIdx#2 reg byte a 2.0 (void()) gfx_init() @@ -269,7 +269,7 @@ (byte*) gfx_init_plane_charset8::gfxa#5 gfxa zp ZP_WORD:7 71.0 (byte*) gfx_init_plane_charset8::gfxa#6 gfxa zp ZP_WORD:7 22.0 (byte) gfx_init_plane_charset8::gfxbCpuBank -(const byte) gfx_init_plane_charset8::gfxbCpuBank#0 gfxbCpuBank = ((byte))(const byte*) CHARSET8#0/(word/signed word/dword/signed dword) 16384 +(const byte) gfx_init_plane_charset8::gfxbCpuBank#0 gfxbCpuBank = ((byte))(const byte*) CHARSET8#0/(word/signed word/dword/signed dword) $4000 (void()) gfx_init_screen0() (byte~) gfx_init_screen0::$0 reg byte a 202.0 (byte~) gfx_init_screen0::$1 $1 zp ZP_BYTE:5 101.0 diff --git a/src/test/ref/c64dtv-8bppchunkystretch.cfg b/src/test/ref/c64dtv-8bppchunkystretch.cfg index 43fc5540a..2856873c9 100644 --- a/src/test/ref/c64dtv-8bppchunkystretch.cfg +++ b/src/test/ref/c64dtv-8bppchunkystretch.cfg @@ -25,14 +25,14 @@ main::@17: scope:[main] from main [16] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [17] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [18] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 - [19] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) 16384 - [20] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 2 + [19] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) $4000 + [20] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 2 to:main::@1 main::@1: scope:[main] from main::@1 main::@17 [21] (byte) main::j#2 ← phi( main::@1/(byte) main::j#1 main::@17/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [22] *((const byte*) DTV_PALETTE#0 + (byte) main::j#2) ← (byte) main::j#2 [23] (byte) main::j#1 ← ++ (byte) main::j#2 - [24] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto main::@1 + [24] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto main::@1 to:main::@3 main::@3: scope:[main] from main::@1 main::@8 asm { ldx#$ff rff: cpxRASTER bnerff stabilize: nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop cpxRASTER beqeat+0 eat: inx cpx#$08 bnestabilize } @@ -40,7 +40,7 @@ main::@3: scope:[main] from main::@1 main::@8 [27] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@5 main::@5: scope:[main] from main::@3 main::@5 - [28] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 66) goto main::@5 + [28] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $42) goto main::@5 to:main::@7 main::@7: scope:[main] from main::@5 asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } @@ -53,22 +53,22 @@ main::@8: scope:[main] from main::@7 main::@8 [34] (byte~) main::$33 ← (byte) main::rst#1 << (byte/signed byte/word/signed word/dword/signed dword) 4 [35] *((const byte*) BORDERCOL#0) ← (byte~) main::$33 asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } - [37] if((byte) main::rst#1!=(byte/word/signed word/dword/signed dword) 242) goto main::@8 + [37] if((byte) main::rst#1!=(byte/word/signed word/dword/signed dword) $f2) goto main::@8 to:main::@3 gfx_init_chunky: scope:[gfx_init_chunky] from main [38] phi() [39] call dtvSetCpuBankSegment1 to:gfx_init_chunky::@1 gfx_init_chunky::@1: scope:[gfx_init_chunky] from gfx_init_chunky gfx_init_chunky::@5 - [40] (byte) gfx_init_chunky::gfxbCpuBank#7 ← phi( gfx_init_chunky::@5/(byte) gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky/++((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) 16384 ) + [40] (byte) gfx_init_chunky::gfxbCpuBank#7 ← phi( gfx_init_chunky::@5/(byte) gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky/++((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) $4000 ) [40] (byte) gfx_init_chunky::y#6 ← phi( gfx_init_chunky::@5/(byte) gfx_init_chunky::y#1 gfx_init_chunky/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [40] (byte*) gfx_init_chunky::gfxb#5 ← phi( gfx_init_chunky::@5/(byte*) gfx_init_chunky::gfxb#1 gfx_init_chunky/((byte*))(word/signed word/dword/signed dword) 16384 ) + [40] (byte*) gfx_init_chunky::gfxb#5 ← phi( gfx_init_chunky::@5/(byte*) gfx_init_chunky::gfxb#1 gfx_init_chunky/((byte*))(word/signed word/dword/signed dword) $4000 ) to:gfx_init_chunky::@2 gfx_init_chunky::@2: scope:[gfx_init_chunky] from gfx_init_chunky::@1 gfx_init_chunky::@3 [41] (byte) gfx_init_chunky::gfxbCpuBank#4 ← phi( gfx_init_chunky::@1/(byte) gfx_init_chunky::gfxbCpuBank#7 gfx_init_chunky::@3/(byte) gfx_init_chunky::gfxbCpuBank#8 ) [41] (word) gfx_init_chunky::x#2 ← phi( gfx_init_chunky::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 gfx_init_chunky::@3/(word) gfx_init_chunky::x#1 ) [41] (byte*) gfx_init_chunky::gfxb#3 ← phi( gfx_init_chunky::@1/(byte*) gfx_init_chunky::gfxb#5 gfx_init_chunky::@3/(byte*) gfx_init_chunky::gfxb#1 ) - [42] if((byte*) gfx_init_chunky::gfxb#3!=(word/dword/signed dword) 32768) goto gfx_init_chunky::@3 + [42] if((byte*) gfx_init_chunky::gfxb#3!=(word/dword/signed dword) $8000) goto gfx_init_chunky::@3 to:gfx_init_chunky::@4 gfx_init_chunky::@4: scope:[gfx_init_chunky] from gfx_init_chunky::@2 [43] (byte) dtvSetCpuBankSegment1::cpuBankIdx#1 ← (byte) gfx_init_chunky::gfxbCpuBank#4 @@ -79,17 +79,17 @@ gfx_init_chunky::@8: scope:[gfx_init_chunky] from gfx_init_chunky::@4 to:gfx_init_chunky::@3 gfx_init_chunky::@3: scope:[gfx_init_chunky] from gfx_init_chunky::@2 gfx_init_chunky::@8 [46] (byte) gfx_init_chunky::gfxbCpuBank#8 ← phi( gfx_init_chunky::@2/(byte) gfx_init_chunky::gfxbCpuBank#4 gfx_init_chunky::@8/(byte) gfx_init_chunky::gfxbCpuBank#2 ) - [46] (byte*) gfx_init_chunky::gfxb#4 ← phi( gfx_init_chunky::@2/(byte*) gfx_init_chunky::gfxb#3 gfx_init_chunky::@8/((byte*))(word/signed word/dword/signed dword) 16384 ) + [46] (byte*) gfx_init_chunky::gfxb#4 ← phi( gfx_init_chunky::@2/(byte*) gfx_init_chunky::gfxb#3 gfx_init_chunky::@8/((byte*))(word/signed word/dword/signed dword) $4000 ) [47] (word~) gfx_init_chunky::$6 ← (word) gfx_init_chunky::x#2 + (byte) gfx_init_chunky::y#6 [48] (byte) gfx_init_chunky::c#0 ← ((byte)) (word~) gfx_init_chunky::$6 [49] *((byte*) gfx_init_chunky::gfxb#4) ← (byte) gfx_init_chunky::c#0 [50] (byte*) gfx_init_chunky::gfxb#1 ← ++ (byte*) gfx_init_chunky::gfxb#4 [51] (word) gfx_init_chunky::x#1 ← ++ (word) gfx_init_chunky::x#2 - [52] if((word) gfx_init_chunky::x#1!=(word/signed word/dword/signed dword) 320) goto gfx_init_chunky::@2 + [52] if((word) gfx_init_chunky::x#1!=(word/signed word/dword/signed dword) $140) goto gfx_init_chunky::@2 to:gfx_init_chunky::@5 gfx_init_chunky::@5: scope:[gfx_init_chunky] from gfx_init_chunky::@3 [53] (byte) gfx_init_chunky::y#1 ← ++ (byte) gfx_init_chunky::y#6 - [54] if((byte) gfx_init_chunky::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 51) goto gfx_init_chunky::@1 + [54] if((byte) gfx_init_chunky::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $33) goto gfx_init_chunky::@1 to:gfx_init_chunky::@6 gfx_init_chunky::@6: scope:[gfx_init_chunky] from gfx_init_chunky::@5 [55] phi() @@ -99,7 +99,7 @@ gfx_init_chunky::@return: scope:[gfx_init_chunky] from gfx_init_chunky::@6 [57] return to:@return dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_chunky gfx_init_chunky::@4 gfx_init_chunky::@6 - [58] (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 ← phi( gfx_init_chunky/((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) 16384 gfx_init_chunky::@4/(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 gfx_init_chunky::@6/((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 ) + [58] (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 ← phi( gfx_init_chunky/((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) $4000 gfx_init_chunky::@4/(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 gfx_init_chunky::@6/((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 ) [59] *((const byte*) dtvSetCpuBankSegment1::cpuBank#0) ← (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 asm { .byte$32,$dd lda$ff .byte$32,$00 } to:dtvSetCpuBankSegment1::@return diff --git a/src/test/ref/c64dtv-8bppchunkystretch.log b/src/test/ref/c64dtv-8bppchunkystretch.log index 4bfd5d29f..8496b2a83 100644 --- a/src/test/ref/c64dtv-8bppchunkystretch.log +++ b/src/test/ref/c64dtv-8bppchunkystretch.log @@ -5,66 +5,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -75,49 +75,49 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@4 @4: scope:[] from @begin - (byte*) DTV_FEATURE#0 ← ((byte*)) (word/dword/signed dword) 53311 + (byte*) DTV_FEATURE#0 ← ((byte*)) (word/dword/signed dword) $d03f (byte) DTV_FEATURE_ENABLE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_FEATURE_DISABLE_TIL_RESET#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte*) DTV_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53308 + (byte*) DTV_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d03c (byte) DTV_LINEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BORDER_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_HIGHCOLOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DTV_OVERSCAN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte) DTV_COLORRAM_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte) DTV_BADLINE_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) DTV_CHUNKY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte*) DTV_PALETTE#0 ← ((byte*)) (word/dword/signed dword) 53760 - (byte[16]) DTV_PALETTE_DEFAULT#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 54, (byte/word/signed word/dword/signed dword) 190, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 219, (byte/word/signed word/dword/signed dword) 134, (byte/word/signed word/dword/signed dword) 255, (byte/signed byte/word/signed word/dword/signed dword) 41, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 59, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 154, (byte/signed byte/word/signed word/dword/signed dword) 10 } - (byte*) DTV_PLANEA_START_LO#0 ← ((byte*)) (word/dword/signed dword) 53306 - (byte*) DTV_PLANEA_START_MI#0 ← ((byte*)) (word/dword/signed dword) 53307 - (byte*) DTV_PLANEA_START_HI#0 ← ((byte*)) (word/dword/signed dword) 53317 - (byte*) DTV_PLANEA_STEP#0 ← ((byte*)) (word/dword/signed dword) 53318 - (byte*) DTV_PLANEA_MODULO_LO#0 ← ((byte*)) (word/dword/signed dword) 53304 - (byte*) DTV_PLANEA_MODULO_HI#0 ← ((byte*)) (word/dword/signed dword) 53305 - (byte*) DTV_PLANEB_START_LO#0 ← ((byte*)) (word/dword/signed dword) 53321 - (byte*) DTV_PLANEB_START_MI#0 ← ((byte*)) (word/dword/signed dword) 53322 - (byte*) DTV_PLANEB_START_HI#0 ← ((byte*)) (word/dword/signed dword) 53323 - (byte*) DTV_PLANEB_STEP#0 ← ((byte*)) (word/dword/signed dword) 53324 - (byte*) DTV_PLANEB_MODULO_LO#0 ← ((byte*)) (word/dword/signed dword) 53319 - (byte*) DTV_PLANEB_MODULO_HI#0 ← ((byte*)) (word/dword/signed dword) 53320 - (byte*) DTV_SPRITE_BANK#0 ← ((byte*)) (word/dword/signed dword) 53325 - (byte*) DTV_COLOR_BANK_LO#0 ← ((byte*)) (word/dword/signed dword) 53302 - (byte*) DTV_COLOR_BANK_HI#0 ← ((byte*)) (word/dword/signed dword) 53303 - (dword) DTV_COLOR_BANK_DEFAULT#0 ← (dword/signed dword) 120832 - (byte*) DTV_GRAPHICS_VIC_BANK#0 ← ((byte*)) (word/dword/signed dword) 53309 - (byte*) DTV_GRAPHICS_HICOL_BANK#0 ← ((byte*)) (word/dword/signed dword) 53310 + (byte) DTV_COLORRAM_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte) DTV_BADLINE_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) DTV_CHUNKY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte*) DTV_PALETTE#0 ← ((byte*)) (word/dword/signed dword) $d200 + (byte[$10]) DTV_PALETTE_DEFAULT#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $36, (byte/word/signed word/dword/signed dword) $be, (byte/signed byte/word/signed word/dword/signed dword) $58, (byte/word/signed word/dword/signed dword) $db, (byte/word/signed word/dword/signed dword) $86, (byte/word/signed word/dword/signed dword) $ff, (byte/signed byte/word/signed word/dword/signed dword) $29, (byte/signed byte/word/signed word/dword/signed dword) $26, (byte/signed byte/word/signed word/dword/signed dword) $3b, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $9a, (byte/signed byte/word/signed word/dword/signed dword) $a } + (byte*) DTV_PLANEA_START_LO#0 ← ((byte*)) (word/dword/signed dword) $d03a + (byte*) DTV_PLANEA_START_MI#0 ← ((byte*)) (word/dword/signed dword) $d03b + (byte*) DTV_PLANEA_START_HI#0 ← ((byte*)) (word/dword/signed dword) $d045 + (byte*) DTV_PLANEA_STEP#0 ← ((byte*)) (word/dword/signed dword) $d046 + (byte*) DTV_PLANEA_MODULO_LO#0 ← ((byte*)) (word/dword/signed dword) $d038 + (byte*) DTV_PLANEA_MODULO_HI#0 ← ((byte*)) (word/dword/signed dword) $d039 + (byte*) DTV_PLANEB_START_LO#0 ← ((byte*)) (word/dword/signed dword) $d049 + (byte*) DTV_PLANEB_START_MI#0 ← ((byte*)) (word/dword/signed dword) $d04a + (byte*) DTV_PLANEB_START_HI#0 ← ((byte*)) (word/dword/signed dword) $d04b + (byte*) DTV_PLANEB_STEP#0 ← ((byte*)) (word/dword/signed dword) $d04c + (byte*) DTV_PLANEB_MODULO_LO#0 ← ((byte*)) (word/dword/signed dword) $d047 + (byte*) DTV_PLANEB_MODULO_HI#0 ← ((byte*)) (word/dword/signed dword) $d048 + (byte*) DTV_SPRITE_BANK#0 ← ((byte*)) (word/dword/signed dword) $d04d + (byte*) DTV_COLOR_BANK_LO#0 ← ((byte*)) (word/dword/signed dword) $d036 + (byte*) DTV_COLOR_BANK_HI#0 ← ((byte*)) (word/dword/signed dword) $d037 + (dword) DTV_COLOR_BANK_DEFAULT#0 ← (dword/signed dword) $1d800 + (byte*) DTV_GRAPHICS_VIC_BANK#0 ← ((byte*)) (word/dword/signed dword) $d03d + (byte*) DTV_GRAPHICS_HICOL_BANK#0 ← ((byte*)) (word/dword/signed dword) $d03e to:@5 dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_chunky gfx_init_chunky::@4 gfx_init_chunky::@6 (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 ← phi( gfx_init_chunky/(byte) dtvSetCpuBankSegment1::cpuBankIdx#0 gfx_init_chunky::@4/(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 gfx_init_chunky::@6/(byte) dtvSetCpuBankSegment1::cpuBankIdx#2 ) - (byte*) dtvSetCpuBankSegment1::cpuBank#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) 255 + (byte*) dtvSetCpuBankSegment1::cpuBank#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) $ff *((byte*) dtvSetCpuBankSegment1::cpuBank#0) ← (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 asm { .byte$32,$dd lda$ff .byte$32,$00 } to:dtvSetCpuBankSegment1::@return @@ -125,47 +125,47 @@ dtvSetCpuBankSegment1::@return: scope:[dtvSetCpuBankSegment1] from dtvSetCpuBan return to:@return @5: scope:[] from @4 - (byte*) DTV_BLITTER_SRCA_LO#0 ← ((byte*)) (word/dword/signed dword) 54048 - (byte*) DTV_BLITTER_SRCA_MI#0 ← ((byte*)) (word/dword/signed dword) 54049 - (byte*) DTV_BLITTER_SRCA_HI#0 ← ((byte*)) (word/dword/signed dword) 54050 - (byte*) DTV_BLITTER_SRCA_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) 54051 - (byte*) DTV_BLITTER_SRCA_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) 54052 - (byte*) DTV_BLITTER_SRCA_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) 54053 - (byte*) DTV_BLITTER_SRCA_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) 54054 - (byte*) DTV_BLITTER_SRCA_STEP#0 ← ((byte*)) (word/dword/signed dword) 54055 - (byte*) DTV_BLITTER_SRCB_LO#0 ← ((byte*)) (word/dword/signed dword) 54056 - (byte*) DTV_BLITTER_SRCB_MI#0 ← ((byte*)) (word/dword/signed dword) 54057 - (byte*) DTV_BLITTER_SRCB_HI#0 ← ((byte*)) (word/dword/signed dword) 54058 - (byte*) DTV_BLITTER_SRCB_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) 54059 - (byte*) DTV_BLITTER_SRCB_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) 54060 - (byte*) DTV_BLITTER_SRCB_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) 54061 - (byte*) DTV_BLITTER_SRCB_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) 54062 - (byte*) DTV_BLITTER_SRCB_STEP#0 ← ((byte*)) (word/dword/signed dword) 54063 - (byte*) DTV_BLITTER_DEST_LO#0 ← ((byte*)) (word/dword/signed dword) 54064 - (byte*) DTV_BLITTER_DEST_MI#0 ← ((byte*)) (word/dword/signed dword) 54065 - (byte*) DTV_BLITTER_DEST_HI#0 ← ((byte*)) (word/dword/signed dword) 54066 - (byte*) DTV_BLITTER_DEST_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) 54067 - (byte*) DTV_BLITTER_DEST_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) 54068 - (byte*) DTV_BLITTER_DEST_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) 54069 - (byte*) DTV_BLITTER_DEST_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) 54070 - (byte*) DTV_BLITTER_DEST_STEP#0 ← ((byte*)) (word/dword/signed dword) 54071 - (byte*) DTV_BLITTER_LEN_LO#0 ← ((byte*)) (word/dword/signed dword) 54072 - (byte*) DTV_BLITTER_LEN_HI#0 ← ((byte*)) (word/dword/signed dword) 54073 - (byte*) DTV_BLITTER_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 54074 + (byte*) DTV_BLITTER_SRCA_LO#0 ← ((byte*)) (word/dword/signed dword) $d320 + (byte*) DTV_BLITTER_SRCA_MI#0 ← ((byte*)) (word/dword/signed dword) $d321 + (byte*) DTV_BLITTER_SRCA_HI#0 ← ((byte*)) (word/dword/signed dword) $d322 + (byte*) DTV_BLITTER_SRCA_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) $d323 + (byte*) DTV_BLITTER_SRCA_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) $d324 + (byte*) DTV_BLITTER_SRCA_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) $d325 + (byte*) DTV_BLITTER_SRCA_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) $d326 + (byte*) DTV_BLITTER_SRCA_STEP#0 ← ((byte*)) (word/dword/signed dword) $d327 + (byte*) DTV_BLITTER_SRCB_LO#0 ← ((byte*)) (word/dword/signed dword) $d328 + (byte*) DTV_BLITTER_SRCB_MI#0 ← ((byte*)) (word/dword/signed dword) $d329 + (byte*) DTV_BLITTER_SRCB_HI#0 ← ((byte*)) (word/dword/signed dword) $d32a + (byte*) DTV_BLITTER_SRCB_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) $d32b + (byte*) DTV_BLITTER_SRCB_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) $d32c + (byte*) DTV_BLITTER_SRCB_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) $d32d + (byte*) DTV_BLITTER_SRCB_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) $d32e + (byte*) DTV_BLITTER_SRCB_STEP#0 ← ((byte*)) (word/dword/signed dword) $d32f + (byte*) DTV_BLITTER_DEST_LO#0 ← ((byte*)) (word/dword/signed dword) $d330 + (byte*) DTV_BLITTER_DEST_MI#0 ← ((byte*)) (word/dword/signed dword) $d331 + (byte*) DTV_BLITTER_DEST_HI#0 ← ((byte*)) (word/dword/signed dword) $d332 + (byte*) DTV_BLITTER_DEST_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) $d333 + (byte*) DTV_BLITTER_DEST_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) $d334 + (byte*) DTV_BLITTER_DEST_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) $d335 + (byte*) DTV_BLITTER_DEST_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) $d336 + (byte*) DTV_BLITTER_DEST_STEP#0 ← ((byte*)) (word/dword/signed dword) $d337 + (byte*) DTV_BLITTER_LEN_LO#0 ← ((byte*)) (word/dword/signed dword) $d338 + (byte*) DTV_BLITTER_LEN_HI#0 ← ((byte*)) (word/dword/signed dword) $d339 + (byte*) DTV_BLITTER_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d33a (byte) DTV_BLIT_FORCE_START#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_SRCA_FWD#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_BLIT_SRCB_FWD#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DTV_BLIT_DEST_FWD#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte) DTV_BLIT_VIC_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte) DTV_BLIT_CIA_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) DTV_BLIT_VBLANK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) DTV_BLIT_IRQ_EN#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte*) DTV_BLITTER_TRANSPARANCY#0 ← ((byte*)) (word/dword/signed dword) 54075 + (byte) DTV_BLIT_VIC_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte) DTV_BLIT_CIA_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) DTV_BLIT_VBLANK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) DTV_BLIT_IRQ_EN#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte*) DTV_BLITTER_TRANSPARANCY#0 ← ((byte*)) (word/dword/signed dword) $d33b (byte) DTV_BLIT_DISABLE_B#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_WRITE_TRANSPARENT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_BLIT_WRITE_NONTRANSPARENT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DTV_BLIT_TRANSPARANCY_NONE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte*) DTV_BLITTER_ALU#0 ← ((byte*)) (word/dword/signed dword) 54078 + (byte*) DTV_BLITTER_ALU#0 ← ((byte*)) (word/dword/signed dword) $d33e (byte) DTV_BLIT_SHIFT0#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) DTV_BLIT_SHIFT1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_SHIFT2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -176,20 +176,20 @@ dtvSetCpuBankSegment1::@return: scope:[dtvSetCpuBankSegment1] from dtvSetCpuBan (byte) DTV_BLIT_SHIFT7#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) DTV_BLIT_AND#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) DTV_BLIT_NAND#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte) DTV_BLIT_NOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte) DTV_BLIT_OR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 24 - (byte) DTV_BLIT_XOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) DTV_BLIT_XNOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte) DTV_BLIT_ADD#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) DTV_BLIT_SUB#0 ← (byte/signed byte/word/signed word/dword/signed dword) 56 - (byte*) DTV_BLITTER_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 54079 + (byte) DTV_BLIT_NOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte) DTV_BLIT_OR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $18 + (byte) DTV_BLIT_XOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) DTV_BLIT_XNOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) DTV_BLIT_ADD#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) DTV_BLIT_SUB#0 ← (byte/signed byte/word/signed word/dword/signed dword) $38 + (byte*) DTV_BLITTER_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d33f (byte) DTV_BLIT_CLEAR_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_SRCA_CONT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_BLIT_SRCB_CONT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DTV_BLIT_DEST_CONT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) DTV_BLIT_STATUS_BUSY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_STATUS_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte*) CHUNKY#0 ← ((byte*)) (word/dword/signed dword) 32768 + (byte*) CHUNKY#0 ← ((byte*)) (word/dword/signed dword) $8000 to:@7 main: scope:[main] from @7 asm { sei } @@ -220,16 +220,16 @@ main::@17: scope:[main] from main *((byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 (word~) main::$11 ← ((word)) (byte*) CHUNKY#0 - (word/signed dword/dword~) main::$12 ← (word~) main::$11 / (word/signed word/dword/signed dword) 16384 + (word/signed dword/dword~) main::$12 ← (word~) main::$11 / (word/signed word/dword/signed dword) $4000 (byte~) main::$13 ← ((byte)) (word/signed dword/dword~) main::$12 (byte/word/dword~) main::$14 ← (byte/signed byte/word/signed word/dword/signed dword) 3 ^ (byte~) main::$13 *((byte*) CIA2_PORT_A#0) ← (byte/word/dword~) main::$14 (word~) main::$15 ← ((word)) (byte*) CHUNKY#0 - (word~) main::$16 ← (word~) main::$15 & (word/signed word/dword/signed dword) 16383 + (word~) main::$16 ← (word~) main::$15 & (word/signed word/dword/signed dword) $3fff (word~) main::$17 ← (word~) main::$16 >> (byte/signed byte/word/signed word/dword/signed dword) 6 (byte~) main::$18 ← ((byte)) (word~) main::$17 (word~) main::$19 ← ((word)) (byte*) CHUNKY#0 - (word~) main::$20 ← (word~) main::$19 & (word/signed word/dword/signed dword) 16383 + (word~) main::$20 ← (word~) main::$19 & (word/signed word/dword/signed dword) $3fff (byte~) main::$21 ← > (word~) main::$20 (byte~) main::$22 ← (byte~) main::$21 >> (byte/signed byte/word/signed word/dword/signed dword) 2 (byte~) main::$23 ← (byte~) main::$18 | (byte~) main::$22 @@ -239,8 +239,8 @@ main::@17: scope:[main] from main main::@1: scope:[main] from main::@1 main::@17 (byte) main::j#2 ← phi( main::@1/(byte) main::j#1 main::@17/(byte) main::j#0 ) *((byte*) DTV_PALETTE#0 + (byte) main::j#2) ← (byte) main::j#2 - (byte) main::j#1 ← (byte) main::j#2 + rangenext(0,15) - (bool~) main::$24 ← (byte) main::j#1 != rangelast(0,15) + (byte) main::j#1 ← (byte) main::j#2 + rangenext(0,$f) + (bool~) main::$24 ← (byte) main::j#1 != rangelast(0,$f) if((bool~) main::$24) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@8 @@ -253,7 +253,7 @@ main::@3: scope:[main] from main::@2 (byte/word/dword~) main::$27 ← (byte~) main::$26 | (byte/signed byte/word/signed word/dword/signed dword) 3 *((byte*) VIC_CONTROL#0) ← (byte/word/dword~) main::$27 *((byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte) main::rst#0 ← (byte/signed byte/word/signed word/dword/signed dword) 66 + (byte) main::rst#0 ← (byte/signed byte/word/signed word/dword/signed dword) $42 to:main::@5 main::@5: scope:[main] from main::@3 main::@6 (byte) main::rst#2 ← phi( main::@3/(byte) main::rst#0 main::@6/(byte) main::rst#3 ) @@ -276,14 +276,14 @@ main::@8: scope:[main] from main::@7 main::@8 (byte~) main::$33 ← (byte) main::rst#1 << (byte/signed byte/word/signed word/dword/signed dword) 4 *((byte*) BORDERCOL#0) ← (byte~) main::$33 asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } - (bool~) main::$34 ← (byte) main::rst#1 != (byte/word/signed word/dword/signed dword) 242 + (bool~) main::$34 ← (byte) main::rst#1 != (byte/word/signed word/dword/signed dword) $f2 if((bool~) main::$34) goto main::@8 to:main::@2 main::@return: scope:[main] from main::@2 return to:@return gfx_init_chunky: scope:[gfx_init_chunky] from main - (byte*~) gfx_init_chunky::$0 ← (byte*) CHUNKY#0 / (word/signed word/dword/signed dword) 16384 + (byte*~) gfx_init_chunky::$0 ← (byte*) CHUNKY#0 / (word/signed word/dword/signed dword) $4000 (byte~) gfx_init_chunky::$1 ← ((byte)) (byte*~) gfx_init_chunky::$0 (byte) gfx_init_chunky::gfxbCpuBank#0 ← (byte~) gfx_init_chunky::$1 (byte) dtvSetCpuBankSegment1::cpuBankIdx#0 ← (byte) gfx_init_chunky::gfxbCpuBank#0 @@ -292,7 +292,7 @@ gfx_init_chunky: scope:[gfx_init_chunky] from main gfx_init_chunky::@7: scope:[gfx_init_chunky] from gfx_init_chunky (byte) gfx_init_chunky::gfxbCpuBank#3 ← phi( gfx_init_chunky/(byte) gfx_init_chunky::gfxbCpuBank#0 ) (byte) gfx_init_chunky::gfxbCpuBank#1 ← ++ (byte) gfx_init_chunky::gfxbCpuBank#3 - (byte*) gfx_init_chunky::gfxb#0 ← ((byte*)) (word/signed word/dword/signed dword) 16384 + (byte*) gfx_init_chunky::gfxb#0 ← ((byte*)) (word/signed word/dword/signed dword) $4000 (byte) gfx_init_chunky::y#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:gfx_init_chunky::@1 gfx_init_chunky::@1: scope:[gfx_init_chunky] from gfx_init_chunky::@5 gfx_init_chunky::@7 @@ -306,7 +306,7 @@ gfx_init_chunky::@2: scope:[gfx_init_chunky] from gfx_init_chunky::@1 gfx_init_ (byte) gfx_init_chunky::y#4 ← phi( gfx_init_chunky::@1/(byte) gfx_init_chunky::y#6 gfx_init_chunky::@3/(byte) gfx_init_chunky::y#2 ) (word) gfx_init_chunky::x#3 ← phi( gfx_init_chunky::@1/(word) gfx_init_chunky::x#0 gfx_init_chunky::@3/(word) gfx_init_chunky::x#1 ) (byte*) gfx_init_chunky::gfxb#3 ← phi( gfx_init_chunky::@1/(byte*) gfx_init_chunky::gfxb#5 gfx_init_chunky::@3/(byte*) gfx_init_chunky::gfxb#1 ) - (bool~) gfx_init_chunky::$3 ← (byte*) gfx_init_chunky::gfxb#3 == (word/dword/signed dword) 32768 + (bool~) gfx_init_chunky::$3 ← (byte*) gfx_init_chunky::gfxb#3 == (word/dword/signed dword) $8000 (bool~) gfx_init_chunky::$4 ← ! (bool~) gfx_init_chunky::$3 if((bool~) gfx_init_chunky::$4) goto gfx_init_chunky::@3 to:gfx_init_chunky::@4 @@ -320,8 +320,8 @@ gfx_init_chunky::@3: scope:[gfx_init_chunky] from gfx_init_chunky::@2 gfx_init_ (byte) gfx_init_chunky::c#0 ← (byte~) gfx_init_chunky::$7 *((byte*) gfx_init_chunky::gfxb#4) ← (byte) gfx_init_chunky::c#0 (byte*) gfx_init_chunky::gfxb#1 ← ++ (byte*) gfx_init_chunky::gfxb#4 - (word) gfx_init_chunky::x#1 ← (word) gfx_init_chunky::x#2 + rangenext(0,319) - (bool~) gfx_init_chunky::$8 ← (word) gfx_init_chunky::x#1 != rangelast(0,319) + (word) gfx_init_chunky::x#1 ← (word) gfx_init_chunky::x#2 + rangenext(0,$13f) + (bool~) gfx_init_chunky::$8 ← (word) gfx_init_chunky::x#1 != rangelast(0,$13f) if((bool~) gfx_init_chunky::$8) goto gfx_init_chunky::@2 to:gfx_init_chunky::@5 gfx_init_chunky::@4: scope:[gfx_init_chunky] from gfx_init_chunky::@2 @@ -336,18 +336,18 @@ gfx_init_chunky::@8: scope:[gfx_init_chunky] from gfx_init_chunky::@4 (word) gfx_init_chunky::x#4 ← phi( gfx_init_chunky::@4/(word) gfx_init_chunky::x#5 ) (byte) gfx_init_chunky::gfxbCpuBank#5 ← phi( gfx_init_chunky::@4/(byte) gfx_init_chunky::gfxbCpuBank#4 ) (byte) gfx_init_chunky::gfxbCpuBank#2 ← ++ (byte) gfx_init_chunky::gfxbCpuBank#5 - (byte*) gfx_init_chunky::gfxb#2 ← ((byte*)) (word/signed word/dword/signed dword) 16384 + (byte*) gfx_init_chunky::gfxb#2 ← ((byte*)) (word/signed word/dword/signed dword) $4000 to:gfx_init_chunky::@3 gfx_init_chunky::@5: scope:[gfx_init_chunky] from gfx_init_chunky::@3 (byte) gfx_init_chunky::gfxbCpuBank#9 ← phi( gfx_init_chunky::@3/(byte) gfx_init_chunky::gfxbCpuBank#8 ) (byte*) gfx_init_chunky::gfxb#6 ← phi( gfx_init_chunky::@3/(byte*) gfx_init_chunky::gfxb#1 ) (byte) gfx_init_chunky::y#3 ← phi( gfx_init_chunky::@3/(byte) gfx_init_chunky::y#2 ) - (byte) gfx_init_chunky::y#1 ← (byte) gfx_init_chunky::y#3 + rangenext(0,50) - (bool~) gfx_init_chunky::$9 ← (byte) gfx_init_chunky::y#1 != rangelast(0,50) + (byte) gfx_init_chunky::y#1 ← (byte) gfx_init_chunky::y#3 + rangenext(0,$32) + (bool~) gfx_init_chunky::$9 ← (byte) gfx_init_chunky::y#1 != rangelast(0,$32) if((bool~) gfx_init_chunky::$9) goto gfx_init_chunky::@1 to:gfx_init_chunky::@6 gfx_init_chunky::@6: scope:[gfx_init_chunky] from gfx_init_chunky::@5 - (byte/signed byte/word/signed word/dword/signed dword~) gfx_init_chunky::$10 ← (word/signed word/dword/signed dword) 16384 / (word/signed word/dword/signed dword) 16384 + (byte/signed byte/word/signed word/dword/signed dword~) gfx_init_chunky::$10 ← (word/signed word/dword/signed dword) $4000 / (word/signed word/dword/signed dword) $4000 (byte~) gfx_init_chunky::$11 ← ((byte)) (byte/signed byte/word/signed word/dword/signed dword~) gfx_init_chunky::$10 (byte) dtvSetCpuBankSegment1::cpuBankIdx#2 ← (byte~) gfx_init_chunky::$11 call dtvSetCpuBankSegment1 @@ -589,8 +589,8 @@ SYMBOL TABLE SSA (byte) DTV_OVERSCAN#0 (byte*) DTV_PALETTE (byte*) DTV_PALETTE#0 -(byte[16]) DTV_PALETTE_DEFAULT -(byte[16]) DTV_PALETTE_DEFAULT#0 +(byte[$10]) DTV_PALETTE_DEFAULT +(byte[$10]) DTV_PALETTE_DEFAULT#0 (byte*) DTV_PLANEA_MODULO_HI (byte*) DTV_PLANEA_MODULO_HI#0 (byte*) DTV_PLANEA_MODULO_LO @@ -845,7 +845,7 @@ SYMBOL TABLE SSA Culled Empty Block (label) gfx_init_chunky::@9 Culled Empty Block (label) @8 Successful SSA optimization Pass2CullEmptyBlocks -Inversing boolean not [264] (bool~) gfx_init_chunky::$4 ← (byte*) gfx_init_chunky::gfxb#3 != (word/dword/signed dword) 32768 from [263] (bool~) gfx_init_chunky::$3 ← (byte*) gfx_init_chunky::gfxb#3 == (word/dword/signed dword) 32768 +Inversing boolean not [264] (bool~) gfx_init_chunky::$4 ← (byte*) gfx_init_chunky::gfxb#3 != (word/dword/signed dword) $8000 from [263] (bool~) gfx_init_chunky::$3 ← (byte*) gfx_init_chunky::gfxb#3 == (word/dword/signed dword) $8000 Successful SSA optimization Pass2UnaryNotSimplification Alias (byte) main::rst#2 = (byte) main::rst#3 Alias (byte) gfx_init_chunky::gfxbCpuBank#0 = (byte~) gfx_init_chunky::$1 (byte) gfx_init_chunky::gfxbCpuBank#3 @@ -867,76 +867,76 @@ Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte) main::rst#2 (byte) main::rst#0 Redundant Phi (byte) gfx_init_chunky::y#2 (byte) gfx_init_chunky::y#6 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$24 [225] if((byte) main::j#1!=rangelast(0,15)) goto main::@1 +Simple Condition (bool~) main::$24 [225] if((byte) main::j#1!=rangelast(0,$f)) goto main::@1 Simple Condition (bool~) main::$28 [236] if(*((byte*) RASTER#0)!=(byte) main::rst#0) goto main::@6 -Simple Condition (bool~) main::$34 [249] if((byte) main::rst#1!=(byte/word/signed word/dword/signed dword) 242) goto main::@8 -Simple Condition (bool~) gfx_init_chunky::$4 [265] if((byte*) gfx_init_chunky::gfxb#3!=(word/dword/signed dword) 32768) goto gfx_init_chunky::@3 -Simple Condition (bool~) gfx_init_chunky::$8 [274] if((word) gfx_init_chunky::x#1!=rangelast(0,319)) goto gfx_init_chunky::@2 -Simple Condition (bool~) gfx_init_chunky::$9 [284] if((byte) gfx_init_chunky::y#1!=rangelast(0,50)) goto gfx_init_chunky::@1 +Simple Condition (bool~) main::$34 [249] if((byte) main::rst#1!=(byte/word/signed word/dword/signed dword) $f2) goto main::@8 +Simple Condition (bool~) gfx_init_chunky::$4 [265] if((byte*) gfx_init_chunky::gfxb#3!=(word/dword/signed dword) $8000) goto gfx_init_chunky::@3 +Simple Condition (bool~) gfx_init_chunky::$8 [274] if((word) gfx_init_chunky::x#1!=rangelast(0,$13f)) goto gfx_init_chunky::@2 +Simple Condition (bool~) gfx_init_chunky::$9 [284] if((byte) gfx_init_chunky::y#1!=rangelast(0,$32)) goto gfx_init_chunky::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -947,85 +947,85 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 -Constant (const byte*) DTV_FEATURE#0 = ((byte*))53311 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f +Constant (const byte*) DTV_FEATURE#0 = ((byte*))$d03f Constant (const byte) DTV_FEATURE_ENABLE#0 = 1 Constant (const byte) DTV_FEATURE_DISABLE_TIL_RESET#0 = 2 -Constant (const byte*) DTV_CONTROL#0 = ((byte*))53308 +Constant (const byte*) DTV_CONTROL#0 = ((byte*))$d03c Constant (const byte) DTV_LINEAR#0 = 1 Constant (const byte) DTV_BORDER_OFF#0 = 2 Constant (const byte) DTV_HIGHCOLOR#0 = 4 Constant (const byte) DTV_OVERSCAN#0 = 8 -Constant (const byte) DTV_COLORRAM_OFF#0 = 16 -Constant (const byte) DTV_BADLINE_OFF#0 = 32 -Constant (const byte) DTV_CHUNKY#0 = 64 -Constant (const byte*) DTV_PALETTE#0 = ((byte*))53760 -Constant (const byte[16]) DTV_PALETTE_DEFAULT#0 = { 0, 15, 54, 190, 88, 219, 134, 255, 41, 38, 59, 5, 7, 223, 154, 10 } -Constant (const byte*) DTV_PLANEA_START_LO#0 = ((byte*))53306 -Constant (const byte*) DTV_PLANEA_START_MI#0 = ((byte*))53307 -Constant (const byte*) DTV_PLANEA_START_HI#0 = ((byte*))53317 -Constant (const byte*) DTV_PLANEA_STEP#0 = ((byte*))53318 -Constant (const byte*) DTV_PLANEA_MODULO_LO#0 = ((byte*))53304 -Constant (const byte*) DTV_PLANEA_MODULO_HI#0 = ((byte*))53305 -Constant (const byte*) DTV_PLANEB_START_LO#0 = ((byte*))53321 -Constant (const byte*) DTV_PLANEB_START_MI#0 = ((byte*))53322 -Constant (const byte*) DTV_PLANEB_START_HI#0 = ((byte*))53323 -Constant (const byte*) DTV_PLANEB_STEP#0 = ((byte*))53324 -Constant (const byte*) DTV_PLANEB_MODULO_LO#0 = ((byte*))53319 -Constant (const byte*) DTV_PLANEB_MODULO_HI#0 = ((byte*))53320 -Constant (const byte*) DTV_SPRITE_BANK#0 = ((byte*))53325 -Constant (const byte*) DTV_COLOR_BANK_LO#0 = ((byte*))53302 -Constant (const byte*) DTV_COLOR_BANK_HI#0 = ((byte*))53303 -Constant (const dword) DTV_COLOR_BANK_DEFAULT#0 = 120832 -Constant (const byte*) DTV_GRAPHICS_VIC_BANK#0 = ((byte*))53309 -Constant (const byte*) DTV_GRAPHICS_HICOL_BANK#0 = ((byte*))53310 -Constant (const byte*) dtvSetCpuBankSegment1::cpuBank#0 = ((byte*))255 -Constant (const byte*) DTV_BLITTER_SRCA_LO#0 = ((byte*))54048 -Constant (const byte*) DTV_BLITTER_SRCA_MI#0 = ((byte*))54049 -Constant (const byte*) DTV_BLITTER_SRCA_HI#0 = ((byte*))54050 -Constant (const byte*) DTV_BLITTER_SRCA_MOD_LO#0 = ((byte*))54051 -Constant (const byte*) DTV_BLITTER_SRCA_MOD_HI#0 = ((byte*))54052 -Constant (const byte*) DTV_BLITTER_SRCA_LIN_LO#0 = ((byte*))54053 -Constant (const byte*) DTV_BLITTER_SRCA_LIN_HI#0 = ((byte*))54054 -Constant (const byte*) DTV_BLITTER_SRCA_STEP#0 = ((byte*))54055 -Constant (const byte*) DTV_BLITTER_SRCB_LO#0 = ((byte*))54056 -Constant (const byte*) DTV_BLITTER_SRCB_MI#0 = ((byte*))54057 -Constant (const byte*) DTV_BLITTER_SRCB_HI#0 = ((byte*))54058 -Constant (const byte*) DTV_BLITTER_SRCB_MOD_LO#0 = ((byte*))54059 -Constant (const byte*) DTV_BLITTER_SRCB_MOD_HI#0 = ((byte*))54060 -Constant (const byte*) DTV_BLITTER_SRCB_LIN_LO#0 = ((byte*))54061 -Constant (const byte*) DTV_BLITTER_SRCB_LIN_HI#0 = ((byte*))54062 -Constant (const byte*) DTV_BLITTER_SRCB_STEP#0 = ((byte*))54063 -Constant (const byte*) DTV_BLITTER_DEST_LO#0 = ((byte*))54064 -Constant (const byte*) DTV_BLITTER_DEST_MI#0 = ((byte*))54065 -Constant (const byte*) DTV_BLITTER_DEST_HI#0 = ((byte*))54066 -Constant (const byte*) DTV_BLITTER_DEST_MOD_LO#0 = ((byte*))54067 -Constant (const byte*) DTV_BLITTER_DEST_MOD_HI#0 = ((byte*))54068 -Constant (const byte*) DTV_BLITTER_DEST_LIN_LO#0 = ((byte*))54069 -Constant (const byte*) DTV_BLITTER_DEST_LIN_HI#0 = ((byte*))54070 -Constant (const byte*) DTV_BLITTER_DEST_STEP#0 = ((byte*))54071 -Constant (const byte*) DTV_BLITTER_LEN_LO#0 = ((byte*))54072 -Constant (const byte*) DTV_BLITTER_LEN_HI#0 = ((byte*))54073 -Constant (const byte*) DTV_BLITTER_CONTROL#0 = ((byte*))54074 +Constant (const byte) DTV_COLORRAM_OFF#0 = $10 +Constant (const byte) DTV_BADLINE_OFF#0 = $20 +Constant (const byte) DTV_CHUNKY#0 = $40 +Constant (const byte*) DTV_PALETTE#0 = ((byte*))$d200 +Constant (const byte[$10]) DTV_PALETTE_DEFAULT#0 = { 0, $f, $36, $be, $58, $db, $86, $ff, $29, $26, $3b, 5, 7, $df, $9a, $a } +Constant (const byte*) DTV_PLANEA_START_LO#0 = ((byte*))$d03a +Constant (const byte*) DTV_PLANEA_START_MI#0 = ((byte*))$d03b +Constant (const byte*) DTV_PLANEA_START_HI#0 = ((byte*))$d045 +Constant (const byte*) DTV_PLANEA_STEP#0 = ((byte*))$d046 +Constant (const byte*) DTV_PLANEA_MODULO_LO#0 = ((byte*))$d038 +Constant (const byte*) DTV_PLANEA_MODULO_HI#0 = ((byte*))$d039 +Constant (const byte*) DTV_PLANEB_START_LO#0 = ((byte*))$d049 +Constant (const byte*) DTV_PLANEB_START_MI#0 = ((byte*))$d04a +Constant (const byte*) DTV_PLANEB_START_HI#0 = ((byte*))$d04b +Constant (const byte*) DTV_PLANEB_STEP#0 = ((byte*))$d04c +Constant (const byte*) DTV_PLANEB_MODULO_LO#0 = ((byte*))$d047 +Constant (const byte*) DTV_PLANEB_MODULO_HI#0 = ((byte*))$d048 +Constant (const byte*) DTV_SPRITE_BANK#0 = ((byte*))$d04d +Constant (const byte*) DTV_COLOR_BANK_LO#0 = ((byte*))$d036 +Constant (const byte*) DTV_COLOR_BANK_HI#0 = ((byte*))$d037 +Constant (const dword) DTV_COLOR_BANK_DEFAULT#0 = $1d800 +Constant (const byte*) DTV_GRAPHICS_VIC_BANK#0 = ((byte*))$d03d +Constant (const byte*) DTV_GRAPHICS_HICOL_BANK#0 = ((byte*))$d03e +Constant (const byte*) dtvSetCpuBankSegment1::cpuBank#0 = ((byte*))$ff +Constant (const byte*) DTV_BLITTER_SRCA_LO#0 = ((byte*))$d320 +Constant (const byte*) DTV_BLITTER_SRCA_MI#0 = ((byte*))$d321 +Constant (const byte*) DTV_BLITTER_SRCA_HI#0 = ((byte*))$d322 +Constant (const byte*) DTV_BLITTER_SRCA_MOD_LO#0 = ((byte*))$d323 +Constant (const byte*) DTV_BLITTER_SRCA_MOD_HI#0 = ((byte*))$d324 +Constant (const byte*) DTV_BLITTER_SRCA_LIN_LO#0 = ((byte*))$d325 +Constant (const byte*) DTV_BLITTER_SRCA_LIN_HI#0 = ((byte*))$d326 +Constant (const byte*) DTV_BLITTER_SRCA_STEP#0 = ((byte*))$d327 +Constant (const byte*) DTV_BLITTER_SRCB_LO#0 = ((byte*))$d328 +Constant (const byte*) DTV_BLITTER_SRCB_MI#0 = ((byte*))$d329 +Constant (const byte*) DTV_BLITTER_SRCB_HI#0 = ((byte*))$d32a +Constant (const byte*) DTV_BLITTER_SRCB_MOD_LO#0 = ((byte*))$d32b +Constant (const byte*) DTV_BLITTER_SRCB_MOD_HI#0 = ((byte*))$d32c +Constant (const byte*) DTV_BLITTER_SRCB_LIN_LO#0 = ((byte*))$d32d +Constant (const byte*) DTV_BLITTER_SRCB_LIN_HI#0 = ((byte*))$d32e +Constant (const byte*) DTV_BLITTER_SRCB_STEP#0 = ((byte*))$d32f +Constant (const byte*) DTV_BLITTER_DEST_LO#0 = ((byte*))$d330 +Constant (const byte*) DTV_BLITTER_DEST_MI#0 = ((byte*))$d331 +Constant (const byte*) DTV_BLITTER_DEST_HI#0 = ((byte*))$d332 +Constant (const byte*) DTV_BLITTER_DEST_MOD_LO#0 = ((byte*))$d333 +Constant (const byte*) DTV_BLITTER_DEST_MOD_HI#0 = ((byte*))$d334 +Constant (const byte*) DTV_BLITTER_DEST_LIN_LO#0 = ((byte*))$d335 +Constant (const byte*) DTV_BLITTER_DEST_LIN_HI#0 = ((byte*))$d336 +Constant (const byte*) DTV_BLITTER_DEST_STEP#0 = ((byte*))$d337 +Constant (const byte*) DTV_BLITTER_LEN_LO#0 = ((byte*))$d338 +Constant (const byte*) DTV_BLITTER_LEN_HI#0 = ((byte*))$d339 +Constant (const byte*) DTV_BLITTER_CONTROL#0 = ((byte*))$d33a Constant (const byte) DTV_BLIT_FORCE_START#0 = 1 Constant (const byte) DTV_BLIT_SRCA_FWD#0 = 2 Constant (const byte) DTV_BLIT_SRCB_FWD#0 = 4 Constant (const byte) DTV_BLIT_DEST_FWD#0 = 8 -Constant (const byte) DTV_BLIT_VIC_IRQ#0 = 16 -Constant (const byte) DTV_BLIT_CIA_IRQ#0 = 32 -Constant (const byte) DTV_BLIT_VBLANK#0 = 64 -Constant (const byte) DTV_BLIT_IRQ_EN#0 = 128 -Constant (const byte*) DTV_BLITTER_TRANSPARANCY#0 = ((byte*))54075 +Constant (const byte) DTV_BLIT_VIC_IRQ#0 = $10 +Constant (const byte) DTV_BLIT_CIA_IRQ#0 = $20 +Constant (const byte) DTV_BLIT_VBLANK#0 = $40 +Constant (const byte) DTV_BLIT_IRQ_EN#0 = $80 +Constant (const byte*) DTV_BLITTER_TRANSPARANCY#0 = ((byte*))$d33b Constant (const byte) DTV_BLIT_DISABLE_B#0 = 1 Constant (const byte) DTV_BLIT_WRITE_TRANSPARENT#0 = 2 Constant (const byte) DTV_BLIT_WRITE_NONTRANSPARENT#0 = 4 Constant (const byte) DTV_BLIT_TRANSPARANCY_NONE#0 = 0 -Constant (const byte*) DTV_BLITTER_ALU#0 = ((byte*))54078 +Constant (const byte*) DTV_BLITTER_ALU#0 = ((byte*))$d33e Constant (const byte) DTV_BLIT_SHIFT0#0 = 0 Constant (const byte) DTV_BLIT_SHIFT1#0 = 1 Constant (const byte) DTV_BLIT_SHIFT2#0 = 2 @@ -1036,27 +1036,27 @@ Constant (const byte) DTV_BLIT_SHIFT6#0 = 6 Constant (const byte) DTV_BLIT_SHIFT7#0 = 7 Constant (const byte) DTV_BLIT_AND#0 = 0 Constant (const byte) DTV_BLIT_NAND#0 = 8 -Constant (const byte) DTV_BLIT_NOR#0 = 16 -Constant (const byte) DTV_BLIT_OR#0 = 24 -Constant (const byte) DTV_BLIT_XOR#0 = 32 -Constant (const byte) DTV_BLIT_XNOR#0 = 40 -Constant (const byte) DTV_BLIT_ADD#0 = 48 -Constant (const byte) DTV_BLIT_SUB#0 = 56 -Constant (const byte*) DTV_BLITTER_CONTROL2#0 = ((byte*))54079 +Constant (const byte) DTV_BLIT_NOR#0 = $10 +Constant (const byte) DTV_BLIT_OR#0 = $18 +Constant (const byte) DTV_BLIT_XOR#0 = $20 +Constant (const byte) DTV_BLIT_XNOR#0 = $28 +Constant (const byte) DTV_BLIT_ADD#0 = $30 +Constant (const byte) DTV_BLIT_SUB#0 = $38 +Constant (const byte*) DTV_BLITTER_CONTROL2#0 = ((byte*))$d33f Constant (const byte) DTV_BLIT_CLEAR_IRQ#0 = 1 Constant (const byte) DTV_BLIT_SRCA_CONT#0 = 2 Constant (const byte) DTV_BLIT_SRCB_CONT#0 = 4 Constant (const byte) DTV_BLIT_DEST_CONT#0 = 8 Constant (const byte) DTV_BLIT_STATUS_BUSY#0 = 1 Constant (const byte) DTV_BLIT_STATUS_IRQ#0 = 2 -Constant (const byte*) CHUNKY#0 = ((byte*))32768 +Constant (const byte*) CHUNKY#0 = ((byte*))$8000 Constant (const byte) main::j#0 = 0 -Constant (const byte) main::rst#0 = 66 -Constant (const byte*) gfx_init_chunky::gfxb#0 = ((byte*))16384 +Constant (const byte) main::rst#0 = $42 +Constant (const byte*) gfx_init_chunky::gfxb#0 = ((byte*))$4000 Constant (const byte) gfx_init_chunky::y#0 = 0 Constant (const word) gfx_init_chunky::x#0 = 0 -Constant (const byte*) gfx_init_chunky::gfxb#2 = ((byte*))16384 -Constant (const byte/signed byte/word/signed word/dword/signed dword) gfx_init_chunky::$10 = 16384/16384 +Constant (const byte*) gfx_init_chunky::gfxb#2 = ((byte*))$4000 +Constant (const byte/signed byte/word/signed word/dword/signed dword) gfx_init_chunky::$10 = $4000/$4000 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::$1 = DTV_HIGHCOLOR#0|DTV_LINEAR#0 Constant (const byte) main::$5 = VIC_DEN#0|VIC_ECM#0 @@ -1068,14 +1068,14 @@ Constant (const word) main::$15 = ((word))CHUNKY#0 Constant (const word) main::$19 = ((word))CHUNKY#0 Constant (const byte) main::$25 = VIC_DEN#0|VIC_ECM#0 Constant (const byte) main::$29 = VIC_DEN#0|VIC_ECM#0 -Constant (const byte*) gfx_init_chunky::$0 = CHUNKY#0/16384 +Constant (const byte*) gfx_init_chunky::$0 = CHUNKY#0/$4000 Constant (const byte) dtvSetCpuBankSegment1::cpuBankIdx#2 = ((byte))gfx_init_chunky::$10 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::$2 = main::$1|DTV_COLORRAM_OFF#0 Constant (const byte) main::$6 = main::$5|VIC_RSEL#0 -Constant (const word/signed dword/dword) main::$12 = main::$11/16384 -Constant (const word) main::$16 = main::$15&16383 -Constant (const word) main::$20 = main::$19&16383 +Constant (const word/signed dword/dword) main::$12 = main::$11/$4000 +Constant (const word) main::$16 = main::$15&$3fff +Constant (const word) main::$20 = main::$19&$3fff Constant (const byte) main::$26 = main::$25|VIC_RSEL#0 Constant (const byte) main::$30 = main::$29|VIC_RSEL#0 Constant (const byte) gfx_init_chunky::gfxbCpuBank#0 = ((byte))gfx_init_chunky::$0 @@ -1102,11 +1102,11 @@ Successful SSA optimization PassNEliminateUnusedVars Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks Resolved ranged next value main::j#1 ← ++ main::j#2 to ++ -Resolved ranged comparison value if(main::j#1!=rangelast(0,15)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(main::j#1!=rangelast(0,$f)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value gfx_init_chunky::x#1 ← ++ gfx_init_chunky::x#2 to ++ -Resolved ranged comparison value if(gfx_init_chunky::x#1!=rangelast(0,319)) goto gfx_init_chunky::@2 to (word/signed word/dword/signed dword) 320 +Resolved ranged comparison value if(gfx_init_chunky::x#1!=rangelast(0,$13f)) goto gfx_init_chunky::@2 to (word/signed word/dword/signed dword) $140 Resolved ranged next value gfx_init_chunky::y#1 ← ++ gfx_init_chunky::y#6 to ++ -Resolved ranged comparison value if(gfx_init_chunky::y#1!=rangelast(0,50)) goto gfx_init_chunky::@1 to (byte/signed byte/word/signed word/dword/signed dword) 51 +Resolved ranged comparison value if(gfx_init_chunky::y#1!=rangelast(0,$32)) goto gfx_init_chunky::@1 to (byte/signed byte/word/signed word/dword/signed dword) $33 Culled Empty Block (label) @4 Culled Empty Block (label) @5 Culled Empty Block (label) main::@2 @@ -1123,43 +1123,43 @@ Inlining constant with var siblings (const word) gfx_init_chunky::x#0 Inlining constant with var siblings (const byte*) gfx_init_chunky::gfxb#2 Inlining constant with var siblings (const byte) gfx_init_chunky::gfxbCpuBank#0 Inlining constant with var siblings (const byte) gfx_init_chunky::gfxbCpuBank#1 -Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#0 = ((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) 16384 -Constant inlined main::rst#0 = (byte/signed byte/word/signed word/dword/signed dword) 66 -Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#2 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 -Constant inlined main::$12 = ((word))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) 16384 -Constant inlined main::$13 = ((byte))((word))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) 16384 -Constant inlined main::$14 = (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) 16384 +Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#0 = ((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) $4000 +Constant inlined main::rst#0 = (byte/signed byte/word/signed word/dword/signed dword) $42 +Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#2 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 +Constant inlined main::$12 = ((word))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) $4000 +Constant inlined main::$13 = ((byte))((word))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) $4000 +Constant inlined main::$14 = (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) $4000 Constant inlined gfx_init_chunky::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::$15 = ((word))(const byte*) CHUNKY#0 Constant inlined gfx_init_chunky::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::$30 = (const byte) VIC_DEN#0|(const byte) VIC_ECM#0|(const byte) VIC_RSEL#0 Constant inlined main::$10 = >(const byte*) CHUNKY#0 Constant inlined main::$11 = ((word))(const byte*) CHUNKY#0 -Constant inlined main::$16 = ((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) 16383 -Constant inlined main::$17 = ((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 6 -Constant inlined main::$18 = ((byte))((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 6 +Constant inlined main::$16 = ((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) $3fff +Constant inlined main::$17 = ((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 6 +Constant inlined main::$18 = ((byte))((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 6 Constant inlined main::$19 = ((word))(const byte*) CHUNKY#0 Constant inlined main::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$23 = ((byte))((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined gfx_init_chunky::gfxbCpuBank#1 = ++((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) 16384 +Constant inlined main::$23 = ((byte))((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined gfx_init_chunky::gfxbCpuBank#1 = ++((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) $4000 Constant inlined main::$25 = (const byte) VIC_DEN#0|(const byte) VIC_ECM#0 Constant inlined main::$26 = (const byte) VIC_DEN#0|(const byte) VIC_ECM#0|(const byte) VIC_RSEL#0 -Constant inlined gfx_init_chunky::gfxb#2 = ((byte*))(word/signed word/dword/signed dword) 16384 -Constant inlined main::$20 = ((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) 16383 -Constant inlined gfx_init_chunky::gfxb#0 = ((byte*))(word/signed word/dword/signed dword) 16384 -Constant inlined main::$21 = >((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) 16383 -Constant inlined main::$22 = >((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined gfx_init_chunky::gfxbCpuBank#0 = ((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) 16384 +Constant inlined gfx_init_chunky::gfxb#2 = ((byte*))(word/signed word/dword/signed dword) $4000 +Constant inlined main::$20 = ((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) $3fff +Constant inlined gfx_init_chunky::gfxb#0 = ((byte*))(word/signed word/dword/signed dword) $4000 +Constant inlined main::$21 = >((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) $3fff +Constant inlined main::$22 = >((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined gfx_init_chunky::gfxbCpuBank#0 = ((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) $4000 Constant inlined main::$1 = (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0 Constant inlined main::$27 = (const byte) VIC_DEN#0|(const byte) VIC_ECM#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 -Constant inlined gfx_init_chunky::$10 = (word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 +Constant inlined gfx_init_chunky::$10 = (word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 Constant inlined main::$2 = (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0|(const byte) DTV_COLORRAM_OFF#0 Constant inlined main::$29 = (const byte) VIC_DEN#0|(const byte) VIC_ECM#0 Constant inlined main::$5 = (const byte) VIC_DEN#0|(const byte) VIC_ECM#0 Constant inlined main::$6 = (const byte) VIC_DEN#0|(const byte) VIC_ECM#0|(const byte) VIC_RSEL#0 Constant inlined main::$3 = (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0|(const byte) DTV_COLORRAM_OFF#0|(const byte) DTV_CHUNKY#0 Constant inlined main::$4 = (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0|(const byte) DTV_COLORRAM_OFF#0|(const byte) DTV_CHUNKY#0|(const byte) DTV_BADLINE_OFF#0 -Constant inlined gfx_init_chunky::$0 = (const byte*) CHUNKY#0/(word/signed word/dword/signed dword) 16384 +Constant inlined gfx_init_chunky::$0 = (const byte*) CHUNKY#0/(word/signed word/dword/signed dword) $4000 Constant inlined main::$9 = <(const byte*) CHUNKY#0 Constant inlined main::$7 = (const byte) VIC_DEN#0|(const byte) VIC_ECM#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 Constant inlined main::$8 = (const byte) VIC_MCM#0|(const byte) VIC_CSEL#0 @@ -1231,14 +1231,14 @@ main::@17: scope:[main] from main [16] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [17] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [18] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 - [19] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) 16384 - [20] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 2 + [19] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) $4000 + [20] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 2 to:main::@1 main::@1: scope:[main] from main::@1 main::@17 [21] (byte) main::j#2 ← phi( main::@1/(byte) main::j#1 main::@17/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [22] *((const byte*) DTV_PALETTE#0 + (byte) main::j#2) ← (byte) main::j#2 [23] (byte) main::j#1 ← ++ (byte) main::j#2 - [24] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto main::@1 + [24] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto main::@1 to:main::@3 main::@3: scope:[main] from main::@1 main::@8 asm { ldx#$ff rff: cpxRASTER bnerff stabilize: nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop cpxRASTER beqeat+0 eat: inx cpx#$08 bnestabilize } @@ -1246,7 +1246,7 @@ main::@3: scope:[main] from main::@1 main::@8 [27] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@5 main::@5: scope:[main] from main::@3 main::@5 - [28] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 66) goto main::@5 + [28] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $42) goto main::@5 to:main::@7 main::@7: scope:[main] from main::@5 asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } @@ -1259,22 +1259,22 @@ main::@8: scope:[main] from main::@7 main::@8 [34] (byte~) main::$33 ← (byte) main::rst#1 << (byte/signed byte/word/signed word/dword/signed dword) 4 [35] *((const byte*) BORDERCOL#0) ← (byte~) main::$33 asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } - [37] if((byte) main::rst#1!=(byte/word/signed word/dword/signed dword) 242) goto main::@8 + [37] if((byte) main::rst#1!=(byte/word/signed word/dword/signed dword) $f2) goto main::@8 to:main::@3 gfx_init_chunky: scope:[gfx_init_chunky] from main [38] phi() [39] call dtvSetCpuBankSegment1 to:gfx_init_chunky::@1 gfx_init_chunky::@1: scope:[gfx_init_chunky] from gfx_init_chunky gfx_init_chunky::@5 - [40] (byte) gfx_init_chunky::gfxbCpuBank#7 ← phi( gfx_init_chunky::@5/(byte) gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky/++((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) 16384 ) + [40] (byte) gfx_init_chunky::gfxbCpuBank#7 ← phi( gfx_init_chunky::@5/(byte) gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky/++((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) $4000 ) [40] (byte) gfx_init_chunky::y#6 ← phi( gfx_init_chunky::@5/(byte) gfx_init_chunky::y#1 gfx_init_chunky/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [40] (byte*) gfx_init_chunky::gfxb#5 ← phi( gfx_init_chunky::@5/(byte*) gfx_init_chunky::gfxb#1 gfx_init_chunky/((byte*))(word/signed word/dword/signed dword) 16384 ) + [40] (byte*) gfx_init_chunky::gfxb#5 ← phi( gfx_init_chunky::@5/(byte*) gfx_init_chunky::gfxb#1 gfx_init_chunky/((byte*))(word/signed word/dword/signed dword) $4000 ) to:gfx_init_chunky::@2 gfx_init_chunky::@2: scope:[gfx_init_chunky] from gfx_init_chunky::@1 gfx_init_chunky::@3 [41] (byte) gfx_init_chunky::gfxbCpuBank#4 ← phi( gfx_init_chunky::@1/(byte) gfx_init_chunky::gfxbCpuBank#7 gfx_init_chunky::@3/(byte) gfx_init_chunky::gfxbCpuBank#8 ) [41] (word) gfx_init_chunky::x#2 ← phi( gfx_init_chunky::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 gfx_init_chunky::@3/(word) gfx_init_chunky::x#1 ) [41] (byte*) gfx_init_chunky::gfxb#3 ← phi( gfx_init_chunky::@1/(byte*) gfx_init_chunky::gfxb#5 gfx_init_chunky::@3/(byte*) gfx_init_chunky::gfxb#1 ) - [42] if((byte*) gfx_init_chunky::gfxb#3!=(word/dword/signed dword) 32768) goto gfx_init_chunky::@3 + [42] if((byte*) gfx_init_chunky::gfxb#3!=(word/dword/signed dword) $8000) goto gfx_init_chunky::@3 to:gfx_init_chunky::@4 gfx_init_chunky::@4: scope:[gfx_init_chunky] from gfx_init_chunky::@2 [43] (byte) dtvSetCpuBankSegment1::cpuBankIdx#1 ← (byte) gfx_init_chunky::gfxbCpuBank#4 @@ -1285,17 +1285,17 @@ gfx_init_chunky::@8: scope:[gfx_init_chunky] from gfx_init_chunky::@4 to:gfx_init_chunky::@3 gfx_init_chunky::@3: scope:[gfx_init_chunky] from gfx_init_chunky::@2 gfx_init_chunky::@8 [46] (byte) gfx_init_chunky::gfxbCpuBank#8 ← phi( gfx_init_chunky::@2/(byte) gfx_init_chunky::gfxbCpuBank#4 gfx_init_chunky::@8/(byte) gfx_init_chunky::gfxbCpuBank#2 ) - [46] (byte*) gfx_init_chunky::gfxb#4 ← phi( gfx_init_chunky::@2/(byte*) gfx_init_chunky::gfxb#3 gfx_init_chunky::@8/((byte*))(word/signed word/dword/signed dword) 16384 ) + [46] (byte*) gfx_init_chunky::gfxb#4 ← phi( gfx_init_chunky::@2/(byte*) gfx_init_chunky::gfxb#3 gfx_init_chunky::@8/((byte*))(word/signed word/dword/signed dword) $4000 ) [47] (word~) gfx_init_chunky::$6 ← (word) gfx_init_chunky::x#2 + (byte) gfx_init_chunky::y#6 [48] (byte) gfx_init_chunky::c#0 ← ((byte)) (word~) gfx_init_chunky::$6 [49] *((byte*) gfx_init_chunky::gfxb#4) ← (byte) gfx_init_chunky::c#0 [50] (byte*) gfx_init_chunky::gfxb#1 ← ++ (byte*) gfx_init_chunky::gfxb#4 [51] (word) gfx_init_chunky::x#1 ← ++ (word) gfx_init_chunky::x#2 - [52] if((word) gfx_init_chunky::x#1!=(word/signed word/dword/signed dword) 320) goto gfx_init_chunky::@2 + [52] if((word) gfx_init_chunky::x#1!=(word/signed word/dword/signed dword) $140) goto gfx_init_chunky::@2 to:gfx_init_chunky::@5 gfx_init_chunky::@5: scope:[gfx_init_chunky] from gfx_init_chunky::@3 [53] (byte) gfx_init_chunky::y#1 ← ++ (byte) gfx_init_chunky::y#6 - [54] if((byte) gfx_init_chunky::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 51) goto gfx_init_chunky::@1 + [54] if((byte) gfx_init_chunky::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $33) goto gfx_init_chunky::@1 to:gfx_init_chunky::@6 gfx_init_chunky::@6: scope:[gfx_init_chunky] from gfx_init_chunky::@5 [55] phi() @@ -1305,7 +1305,7 @@ gfx_init_chunky::@return: scope:[gfx_init_chunky] from gfx_init_chunky::@6 [57] return to:@return dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_chunky gfx_init_chunky::@4 gfx_init_chunky::@6 - [58] (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 ← phi( gfx_init_chunky/((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) 16384 gfx_init_chunky::@4/(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 gfx_init_chunky::@6/((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 ) + [58] (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 ← phi( gfx_init_chunky/((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) $4000 gfx_init_chunky::@4/(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 gfx_init_chunky::@6/((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 ) [59] *((const byte*) dtvSetCpuBankSegment1::cpuBank#0) ← (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 asm { .byte$32,$dd lda$ff .byte$32,$00 } to:dtvSetCpuBankSegment1::@return @@ -1424,7 +1424,7 @@ VARIABLE REGISTER WEIGHTS (byte) DTV_LINEAR (byte) DTV_OVERSCAN (byte*) DTV_PALETTE -(byte[16]) DTV_PALETTE_DEFAULT +(byte[$10]) DTV_PALETTE_DEFAULT (byte*) DTV_PLANEA_MODULO_HI (byte*) DTV_PLANEA_MODULO_LO (byte*) DTV_PLANEA_START_HI @@ -1690,11 +1690,11 @@ main: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG27 [19] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG27 [19] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^CHUNKY/$4000 sta CIA2_PORT_A - //SEG28 [20] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG28 [20] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 // Set VIC Bank // VIC memory lda #(CHUNKY&$3fff)>>6|(0)>>2 @@ -1718,7 +1718,7 @@ main: { sta DTV_PALETTE,y //SEG35 [23] (byte) main::j#1 ← ++ (byte) main::j#2 -- vbuz1=_inc_vbuz1 inc j - //SEG36 [24] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG36 [24] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda j cmp #$10 bne b1_from_b1 @@ -1772,7 +1772,7 @@ main: { jmp b5 //SEG41 main::@5 b5: - //SEG42 [28] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 66) goto main::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG42 [28] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $42) goto main::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$42 bne b5 @@ -1841,7 +1841,7 @@ main: { nop nop nop - //SEG53 [37] if((byte) main::rst#1!=(byte/word/signed word/dword/signed dword) 242) goto main::@8 -- vbuz1_neq_vbuc1_then_la1 + //SEG53 [37] if((byte) main::rst#1!=(byte/word/signed word/dword/signed dword) $f2) goto main::@8 -- vbuz1_neq_vbuc1_then_la1 lda rst cmp #$f2 bne b8 @@ -1859,19 +1859,19 @@ gfx_init_chunky: { //SEG55 [39] call dtvSetCpuBankSegment1 //SEG56 [58] phi from gfx_init_chunky to dtvSetCpuBankSegment1 [phi:gfx_init_chunky->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from_gfx_init_chunky: - //SEG57 [58] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 = ((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_chunky->dtvSetCpuBankSegment1#0] -- vbuz1=vbuc1 + //SEG57 [58] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 = ((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_chunky->dtvSetCpuBankSegment1#0] -- vbuz1=vbuc1 lda #$ff&CHUNKY/$4000 sta dtvSetCpuBankSegment1.cpuBankIdx jsr dtvSetCpuBankSegment1 //SEG58 [40] phi from gfx_init_chunky to gfx_init_chunky::@1 [phi:gfx_init_chunky->gfx_init_chunky::@1] b1_from_gfx_init_chunky: - //SEG59 [40] phi (byte) gfx_init_chunky::gfxbCpuBank#7 = ++((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_chunky->gfx_init_chunky::@1#0] -- vbuz1=vbuc1 + //SEG59 [40] phi (byte) gfx_init_chunky::gfxbCpuBank#7 = ++((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_chunky->gfx_init_chunky::@1#0] -- vbuz1=vbuc1 lda #($ff&CHUNKY/$4000)+1 sta gfxbCpuBank //SEG60 [40] phi (byte) gfx_init_chunky::y#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:gfx_init_chunky->gfx_init_chunky::@1#1] -- vbuz1=vbuc1 lda #0 sta y - //SEG61 [40] phi (byte*) gfx_init_chunky::gfxb#5 = ((byte*))(word/signed word/dword/signed dword) 16384 [phi:gfx_init_chunky->gfx_init_chunky::@1#2] -- pbuz1=pbuc1 + //SEG61 [40] phi (byte*) gfx_init_chunky::gfxb#5 = ((byte*))(word/signed word/dword/signed dword) $4000 [phi:gfx_init_chunky->gfx_init_chunky::@1#2] -- pbuz1=pbuc1 lda #<$4000 sta gfxb lda #>$4000 @@ -1903,7 +1903,7 @@ gfx_init_chunky: { jmp b2 //SEG75 gfx_init_chunky::@2 b2: - //SEG76 [42] if((byte*) gfx_init_chunky::gfxb#3!=(word/dword/signed dword) 32768) goto gfx_init_chunky::@3 -- pbuz1_neq_vwuc1_then_la1 + //SEG76 [42] if((byte*) gfx_init_chunky::gfxb#3!=(word/dword/signed dword) $8000) goto gfx_init_chunky::@3 -- pbuz1_neq_vwuc1_then_la1 lda gfxb+1 cmp #>$8000 bne b3_from_b2 @@ -1929,7 +1929,7 @@ gfx_init_chunky: { //SEG84 [46] phi from gfx_init_chunky::@8 to gfx_init_chunky::@3 [phi:gfx_init_chunky::@8->gfx_init_chunky::@3] b3_from_b8: //SEG85 [46] phi (byte) gfx_init_chunky::gfxbCpuBank#8 = (byte) gfx_init_chunky::gfxbCpuBank#2 [phi:gfx_init_chunky::@8->gfx_init_chunky::@3#0] -- register_copy - //SEG86 [46] phi (byte*) gfx_init_chunky::gfxb#4 = ((byte*))(word/signed word/dword/signed dword) 16384 [phi:gfx_init_chunky::@8->gfx_init_chunky::@3#1] -- pbuz1=pbuc1 + //SEG86 [46] phi (byte*) gfx_init_chunky::gfxb#4 = ((byte*))(word/signed word/dword/signed dword) $4000 [phi:gfx_init_chunky::@8->gfx_init_chunky::@3#1] -- pbuz1=pbuc1 lda #<$4000 sta gfxb lda #>$4000 @@ -1967,7 +1967,7 @@ gfx_init_chunky: { bne !+ inc x+1 !: - //SEG96 [52] if((word) gfx_init_chunky::x#1!=(word/signed word/dword/signed dword) 320) goto gfx_init_chunky::@2 -- vwuz1_neq_vwuc1_then_la1 + //SEG96 [52] if((word) gfx_init_chunky::x#1!=(word/signed word/dword/signed dword) $140) goto gfx_init_chunky::@2 -- vwuz1_neq_vwuc1_then_la1 lda x+1 cmp #>$140 bne b2_from_b3 @@ -1979,7 +1979,7 @@ gfx_init_chunky: { b5: //SEG98 [53] (byte) gfx_init_chunky::y#1 ← ++ (byte) gfx_init_chunky::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG99 [54] if((byte) gfx_init_chunky::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 51) goto gfx_init_chunky::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG99 [54] if((byte) gfx_init_chunky::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $33) goto gfx_init_chunky::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$33 bne b1_from_b5 @@ -1991,7 +1991,7 @@ gfx_init_chunky: { //SEG102 [56] call dtvSetCpuBankSegment1 //SEG103 [58] phi from gfx_init_chunky::@6 to dtvSetCpuBankSegment1 [phi:gfx_init_chunky::@6->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from_b6: - //SEG104 [58] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_chunky::@6->dtvSetCpuBankSegment1#0] -- vbuz1=vbuc1 + //SEG104 [58] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_chunky::@6->dtvSetCpuBankSegment1#0] -- vbuz1=vbuc1 lda #$4000/$4000 sta dtvSetCpuBankSegment1.cpuBankIdx jsr dtvSetCpuBankSegment1 @@ -2038,17 +2038,17 @@ Statement [15] *((const byte*) DTV_PLANEB_STEP#0) ← (byte/signed byte/word/sig Statement [16] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [17] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [18] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [19] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) 16384 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [20] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [19] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) $4000 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [20] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement asm { ldx#$ff rff: cpxRASTER bnerff stabilize: nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop cpxRASTER beqeat+0 eat: inx cpx#$08 bnestabilize } always clobbers reg byte x Statement [26] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_ECM#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [27] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [28] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 66) goto main::@5 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [28] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $42) goto main::@5 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [31] (byte~) main::$31 ← (byte) main::rst#1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ main::rst#1 main::$31 ] ( main:2 [ main::rst#1 main::$31 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:10 [ main::rst#1 ] Statement [32] (byte~) main::$32 ← (const byte) VIC_DEN#0|(const byte) VIC_ECM#0|(const byte) VIC_RSEL#0 | (byte~) main::$31 [ main::rst#1 main::$32 ] ( main:2 [ main::rst#1 main::$32 ] ) always clobbers reg byte a Statement [34] (byte~) main::$33 ← (byte) main::rst#1 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ main::rst#1 main::$33 ] ( main:2 [ main::rst#1 main::$33 ] ) always clobbers reg byte a -Statement [42] if((byte*) gfx_init_chunky::gfxb#3!=(word/dword/signed dword) 32768) goto gfx_init_chunky::@3 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#3 gfx_init_chunky::x#2 gfx_init_chunky::gfxbCpuBank#4 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#3 gfx_init_chunky::x#2 gfx_init_chunky::gfxbCpuBank#4 ] ) always clobbers reg byte a +Statement [42] if((byte*) gfx_init_chunky::gfxb#3!=(word/dword/signed dword) $8000) goto gfx_init_chunky::@3 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#3 gfx_init_chunky::x#2 gfx_init_chunky::gfxbCpuBank#4 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#3 gfx_init_chunky::x#2 gfx_init_chunky::gfxbCpuBank#4 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ gfx_init_chunky::y#6 gfx_init_chunky::y#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:6 [ gfx_init_chunky::gfxbCpuBank#4 gfx_init_chunky::gfxbCpuBank#7 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::gfxbCpuBank#2 ] Statement [47] (word~) gfx_init_chunky::$6 ← (word) gfx_init_chunky::x#2 + (byte) gfx_init_chunky::y#6 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#2 gfx_init_chunky::gfxb#4 gfx_init_chunky::$6 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#2 gfx_init_chunky::gfxb#4 gfx_init_chunky::$6 ] ) always clobbers reg byte a @@ -2056,7 +2056,7 @@ Statement [48] (byte) gfx_init_chunky::c#0 ← ((byte)) (word~) gfx_init_chunky: Statement [49] *((byte*) gfx_init_chunky::gfxb#4) ← (byte) gfx_init_chunky::c#0 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#2 gfx_init_chunky::gfxb#4 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#2 gfx_init_chunky::gfxb#4 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:3 [ gfx_init_chunky::y#6 gfx_init_chunky::y#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:6 [ gfx_init_chunky::gfxbCpuBank#4 gfx_init_chunky::gfxbCpuBank#7 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::gfxbCpuBank#2 ] -Statement [52] if((word) gfx_init_chunky::x#1!=(word/signed word/dword/signed dword) 320) goto gfx_init_chunky::@2 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#1 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#1 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#1 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#1 ] ) always clobbers reg byte a +Statement [52] if((word) gfx_init_chunky::x#1!=(word/signed word/dword/signed dword) $140) goto gfx_init_chunky::@2 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#1 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#1 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#1 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#1 ] ) always clobbers reg byte a Statement asm { .byte$32,$dd lda$ff .byte$32,$00 } always clobbers reg byte a Statement [5] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [6] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:2 [ ] ) always clobbers reg byte a @@ -2071,20 +2071,20 @@ Statement [15] *((const byte*) DTV_PLANEB_STEP#0) ← (byte/signed byte/word/sig Statement [16] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [17] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [18] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [19] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) 16384 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [20] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [19] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) $4000 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [20] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement asm { ldx#$ff rff: cpxRASTER bnerff stabilize: nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop cpxRASTER beqeat+0 eat: inx cpx#$08 bnestabilize } always clobbers reg byte x Statement [26] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_ECM#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [27] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [28] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 66) goto main::@5 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [28] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $42) goto main::@5 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [31] (byte~) main::$31 ← (byte) main::rst#1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ main::rst#1 main::$31 ] ( main:2 [ main::rst#1 main::$31 ] ) always clobbers reg byte a Statement [32] (byte~) main::$32 ← (const byte) VIC_DEN#0|(const byte) VIC_ECM#0|(const byte) VIC_RSEL#0 | (byte~) main::$31 [ main::rst#1 main::$32 ] ( main:2 [ main::rst#1 main::$32 ] ) always clobbers reg byte a Statement [34] (byte~) main::$33 ← (byte) main::rst#1 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ main::rst#1 main::$33 ] ( main:2 [ main::rst#1 main::$33 ] ) always clobbers reg byte a -Statement [42] if((byte*) gfx_init_chunky::gfxb#3!=(word/dword/signed dword) 32768) goto gfx_init_chunky::@3 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#3 gfx_init_chunky::x#2 gfx_init_chunky::gfxbCpuBank#4 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#3 gfx_init_chunky::x#2 gfx_init_chunky::gfxbCpuBank#4 ] ) always clobbers reg byte a +Statement [42] if((byte*) gfx_init_chunky::gfxb#3!=(word/dword/signed dword) $8000) goto gfx_init_chunky::@3 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#3 gfx_init_chunky::x#2 gfx_init_chunky::gfxbCpuBank#4 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#3 gfx_init_chunky::x#2 gfx_init_chunky::gfxbCpuBank#4 ] ) always clobbers reg byte a Statement [47] (word~) gfx_init_chunky::$6 ← (word) gfx_init_chunky::x#2 + (byte) gfx_init_chunky::y#6 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#2 gfx_init_chunky::gfxb#4 gfx_init_chunky::$6 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#2 gfx_init_chunky::gfxb#4 gfx_init_chunky::$6 ] ) always clobbers reg byte a Statement [48] (byte) gfx_init_chunky::c#0 ← ((byte)) (word~) gfx_init_chunky::$6 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#2 gfx_init_chunky::gfxb#4 gfx_init_chunky::c#0 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#2 gfx_init_chunky::gfxb#4 gfx_init_chunky::c#0 ] ) always clobbers reg byte a Statement [49] *((byte*) gfx_init_chunky::gfxb#4) ← (byte) gfx_init_chunky::c#0 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#2 gfx_init_chunky::gfxb#4 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#2 gfx_init_chunky::gfxb#4 ] ) always clobbers reg byte y -Statement [52] if((word) gfx_init_chunky::x#1!=(word/signed word/dword/signed dword) 320) goto gfx_init_chunky::@2 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#1 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#1 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#1 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#1 ] ) always clobbers reg byte a +Statement [52] if((word) gfx_init_chunky::x#1!=(word/signed word/dword/signed dword) $140) goto gfx_init_chunky::@2 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#1 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#1 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#1 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#1 ] ) always clobbers reg byte a Statement asm { .byte$32,$dd lda$ff .byte$32,$00 } always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ main::j#2 main::j#1 ] : zp ZP_BYTE:2 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:3 [ gfx_init_chunky::y#6 gfx_init_chunky::y#1 ] : zp ZP_BYTE:3 , reg byte x , @@ -2240,11 +2240,11 @@ main: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG27 [19] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG27 [19] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^CHUNKY/$4000 sta CIA2_PORT_A - //SEG28 [20] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG28 [20] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 // Set VIC Bank // VIC memory lda #(CHUNKY&$3fff)>>6|(0)>>2 @@ -2266,7 +2266,7 @@ main: { sta DTV_PALETTE,x //SEG35 [23] (byte) main::j#1 ← ++ (byte) main::j#2 -- vbuxx=_inc_vbuxx inx - //SEG36 [24] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG36 [24] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1_from_b1 jmp b3 @@ -2319,7 +2319,7 @@ main: { jmp b5 //SEG41 main::@5 b5: - //SEG42 [28] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 66) goto main::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG42 [28] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $42) goto main::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$42 bne b5 @@ -2381,7 +2381,7 @@ main: { nop nop nop - //SEG53 [37] if((byte) main::rst#1!=(byte/word/signed word/dword/signed dword) 242) goto main::@8 -- vbuxx_neq_vbuc1_then_la1 + //SEG53 [37] if((byte) main::rst#1!=(byte/word/signed word/dword/signed dword) $f2) goto main::@8 -- vbuxx_neq_vbuc1_then_la1 cpx #$f2 bne b8 jmp b3 @@ -2396,17 +2396,17 @@ gfx_init_chunky: { //SEG55 [39] call dtvSetCpuBankSegment1 //SEG56 [58] phi from gfx_init_chunky to dtvSetCpuBankSegment1 [phi:gfx_init_chunky->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from_gfx_init_chunky: - //SEG57 [58] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 = ((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_chunky->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + //SEG57 [58] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 = ((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_chunky->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #$ff&CHUNKY/$4000 jsr dtvSetCpuBankSegment1 //SEG58 [40] phi from gfx_init_chunky to gfx_init_chunky::@1 [phi:gfx_init_chunky->gfx_init_chunky::@1] b1_from_gfx_init_chunky: - //SEG59 [40] phi (byte) gfx_init_chunky::gfxbCpuBank#7 = ++((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_chunky->gfx_init_chunky::@1#0] -- vbuxx=vbuc1 + //SEG59 [40] phi (byte) gfx_init_chunky::gfxbCpuBank#7 = ++((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_chunky->gfx_init_chunky::@1#0] -- vbuxx=vbuc1 ldx #($ff&CHUNKY/$4000)+1 //SEG60 [40] phi (byte) gfx_init_chunky::y#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:gfx_init_chunky->gfx_init_chunky::@1#1] -- vbuz1=vbuc1 lda #0 sta y - //SEG61 [40] phi (byte*) gfx_init_chunky::gfxb#5 = ((byte*))(word/signed word/dword/signed dword) 16384 [phi:gfx_init_chunky->gfx_init_chunky::@1#2] -- pbuz1=pbuc1 + //SEG61 [40] phi (byte*) gfx_init_chunky::gfxb#5 = ((byte*))(word/signed word/dword/signed dword) $4000 [phi:gfx_init_chunky->gfx_init_chunky::@1#2] -- pbuz1=pbuc1 lda #<$4000 sta gfxb lda #>$4000 @@ -2438,7 +2438,7 @@ gfx_init_chunky: { jmp b2 //SEG75 gfx_init_chunky::@2 b2: - //SEG76 [42] if((byte*) gfx_init_chunky::gfxb#3!=(word/dword/signed dword) 32768) goto gfx_init_chunky::@3 -- pbuz1_neq_vwuc1_then_la1 + //SEG76 [42] if((byte*) gfx_init_chunky::gfxb#3!=(word/dword/signed dword) $8000) goto gfx_init_chunky::@3 -- pbuz1_neq_vwuc1_then_la1 lda gfxb+1 cmp #>$8000 bne b3_from_b2 @@ -2463,7 +2463,7 @@ gfx_init_chunky: { //SEG84 [46] phi from gfx_init_chunky::@8 to gfx_init_chunky::@3 [phi:gfx_init_chunky::@8->gfx_init_chunky::@3] b3_from_b8: //SEG85 [46] phi (byte) gfx_init_chunky::gfxbCpuBank#8 = (byte) gfx_init_chunky::gfxbCpuBank#2 [phi:gfx_init_chunky::@8->gfx_init_chunky::@3#0] -- register_copy - //SEG86 [46] phi (byte*) gfx_init_chunky::gfxb#4 = ((byte*))(word/signed word/dword/signed dword) 16384 [phi:gfx_init_chunky::@8->gfx_init_chunky::@3#1] -- pbuz1=pbuc1 + //SEG86 [46] phi (byte*) gfx_init_chunky::gfxb#4 = ((byte*))(word/signed word/dword/signed dword) $4000 [phi:gfx_init_chunky::@8->gfx_init_chunky::@3#1] -- pbuz1=pbuc1 lda #<$4000 sta gfxb lda #>$4000 @@ -2499,7 +2499,7 @@ gfx_init_chunky: { bne !+ inc x+1 !: - //SEG96 [52] if((word) gfx_init_chunky::x#1!=(word/signed word/dword/signed dword) 320) goto gfx_init_chunky::@2 -- vwuz1_neq_vwuc1_then_la1 + //SEG96 [52] if((word) gfx_init_chunky::x#1!=(word/signed word/dword/signed dword) $140) goto gfx_init_chunky::@2 -- vwuz1_neq_vwuc1_then_la1 lda x+1 cmp #>$140 bne b2_from_b3 @@ -2511,7 +2511,7 @@ gfx_init_chunky: { b5: //SEG98 [53] (byte) gfx_init_chunky::y#1 ← ++ (byte) gfx_init_chunky::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG99 [54] if((byte) gfx_init_chunky::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 51) goto gfx_init_chunky::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG99 [54] if((byte) gfx_init_chunky::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $33) goto gfx_init_chunky::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$33 bne b1_from_b5 @@ -2523,7 +2523,7 @@ gfx_init_chunky: { //SEG102 [56] call dtvSetCpuBankSegment1 //SEG103 [58] phi from gfx_init_chunky::@6 to dtvSetCpuBankSegment1 [phi:gfx_init_chunky::@6->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from_b6: - //SEG104 [58] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_chunky::@6->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + //SEG104 [58] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_chunky::@6->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #$4000/$4000 jsr dtvSetCpuBankSegment1 jmp breturn @@ -2631,11 +2631,11 @@ FINAL SYMBOL TABLE (byte) BLACK (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN (byte*) CHUNKY -(const byte*) CHUNKY#0 CHUNKY = ((byte*))(word/dword/signed dword) 32768 +(const byte*) CHUNKY#0 CHUNKY = ((byte*))(word/dword/signed dword) $8000 (byte*) CIA1_INTERRUPT (byte*) CIA1_PORT_A (byte*) CIA1_PORT_A_DDR @@ -2643,9 +2643,9 @@ FINAL SYMBOL TABLE (byte*) CIA1_PORT_B_DDR (byte*) CIA2_INTERRUPT (byte*) CIA2_PORT_A -(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) 56576 +(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) $dd00 (byte*) CIA2_PORT_A_DDR -(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56578 +(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) $dd02 (byte*) CIA2_PORT_B (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR @@ -2656,7 +2656,7 @@ FINAL SYMBOL TABLE (byte*) D018 (byte) DARK_GREY (byte) DTV_BADLINE_OFF -(const byte) DTV_BADLINE_OFF#0 DTV_BADLINE_OFF = (byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte) DTV_BADLINE_OFF#0 DTV_BADLINE_OFF = (byte/signed byte/word/signed word/dword/signed dword) $20 (byte*) DTV_BLITTER_ALU (byte*) DTV_BLITTER_CONTROL (byte*) DTV_BLITTER_CONTROL2 @@ -2723,16 +2723,16 @@ FINAL SYMBOL TABLE (byte) DTV_BLIT_XOR (byte) DTV_BORDER_OFF (byte) DTV_CHUNKY -(const byte) DTV_CHUNKY#0 DTV_CHUNKY = (byte/signed byte/word/signed word/dword/signed dword) 64 +(const byte) DTV_CHUNKY#0 DTV_CHUNKY = (byte/signed byte/word/signed word/dword/signed dword) $40 (byte) DTV_COLORRAM_OFF -(const byte) DTV_COLORRAM_OFF#0 DTV_COLORRAM_OFF = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) DTV_COLORRAM_OFF#0 DTV_COLORRAM_OFF = (byte/signed byte/word/signed word/dword/signed dword) $10 (dword) DTV_COLOR_BANK_DEFAULT (byte*) DTV_COLOR_BANK_HI (byte*) DTV_COLOR_BANK_LO (byte*) DTV_CONTROL -(const byte*) DTV_CONTROL#0 DTV_CONTROL = ((byte*))(word/dword/signed dword) 53308 +(const byte*) DTV_CONTROL#0 DTV_CONTROL = ((byte*))(word/dword/signed dword) $d03c (byte*) DTV_FEATURE -(const byte*) DTV_FEATURE#0 DTV_FEATURE = ((byte*))(word/dword/signed dword) 53311 +(const byte*) DTV_FEATURE#0 DTV_FEATURE = ((byte*))(word/dword/signed dword) $d03f (byte) DTV_FEATURE_DISABLE_TIL_RESET (byte) DTV_FEATURE_ENABLE (const byte) DTV_FEATURE_ENABLE#0 DTV_FEATURE_ENABLE = (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -2744,8 +2744,8 @@ FINAL SYMBOL TABLE (const byte) DTV_LINEAR#0 DTV_LINEAR = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_OVERSCAN (byte*) DTV_PALETTE -(const byte*) DTV_PALETTE#0 DTV_PALETTE = ((byte*))(word/dword/signed dword) 53760 -(byte[16]) DTV_PALETTE_DEFAULT +(const byte*) DTV_PALETTE#0 DTV_PALETTE = ((byte*))(word/dword/signed dword) $d200 +(byte[$10]) DTV_PALETTE_DEFAULT (byte*) DTV_PLANEA_MODULO_HI (byte*) DTV_PLANEA_MODULO_LO (byte*) DTV_PLANEA_START_HI @@ -2753,17 +2753,17 @@ FINAL SYMBOL TABLE (byte*) DTV_PLANEA_START_MI (byte*) DTV_PLANEA_STEP (byte*) DTV_PLANEB_MODULO_HI -(const byte*) DTV_PLANEB_MODULO_HI#0 DTV_PLANEB_MODULO_HI = ((byte*))(word/dword/signed dword) 53320 +(const byte*) DTV_PLANEB_MODULO_HI#0 DTV_PLANEB_MODULO_HI = ((byte*))(word/dword/signed dword) $d048 (byte*) DTV_PLANEB_MODULO_LO -(const byte*) DTV_PLANEB_MODULO_LO#0 DTV_PLANEB_MODULO_LO = ((byte*))(word/dword/signed dword) 53319 +(const byte*) DTV_PLANEB_MODULO_LO#0 DTV_PLANEB_MODULO_LO = ((byte*))(word/dword/signed dword) $d047 (byte*) DTV_PLANEB_START_HI -(const byte*) DTV_PLANEB_START_HI#0 DTV_PLANEB_START_HI = ((byte*))(word/dword/signed dword) 53323 +(const byte*) DTV_PLANEB_START_HI#0 DTV_PLANEB_START_HI = ((byte*))(word/dword/signed dword) $d04b (byte*) DTV_PLANEB_START_LO -(const byte*) DTV_PLANEB_START_LO#0 DTV_PLANEB_START_LO = ((byte*))(word/dword/signed dword) 53321 +(const byte*) DTV_PLANEB_START_LO#0 DTV_PLANEB_START_LO = ((byte*))(word/dword/signed dword) $d049 (byte*) DTV_PLANEB_START_MI -(const byte*) DTV_PLANEB_START_MI#0 DTV_PLANEB_START_MI = ((byte*))(word/dword/signed dword) 53322 +(const byte*) DTV_PLANEB_START_MI#0 DTV_PLANEB_START_MI = ((byte*))(word/dword/signed dword) $d04a (byte*) DTV_PLANEB_STEP -(const byte*) DTV_PLANEB_STEP#0 DTV_PLANEB_STEP = ((byte*))(word/dword/signed dword) 53324 +(const byte*) DTV_PLANEB_STEP#0 DTV_PLANEB_STEP = ((byte*))(word/dword/signed dword) $d04c (byte*) DTV_SPRITE_BANK (byte) GREEN (byte) GREY @@ -2793,10 +2793,10 @@ FINAL SYMBOL TABLE (byte) PROCPORT_RAM_ALL (byte) PROCPORT_RAM_CHARROM (byte) PROCPORT_RAM_IO -(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) 53 +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) $35 (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE @@ -2812,19 +2812,19 @@ FINAL SYMBOL TABLE (word) SPRITE_PTRS (byte) VIC_BMM (byte*) VIC_CONTROL -(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) 53265 +(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) $d011 (byte*) VIC_CONTROL2 -(const byte*) VIC_CONTROL2#0 VIC_CONTROL2 = ((byte*))(word/dword/signed dword) 53270 +(const byte*) VIC_CONTROL2#0 VIC_CONTROL2 = ((byte*))(word/dword/signed dword) $d016 (byte) VIC_CSEL (const byte) VIC_CSEL#0 VIC_CSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) VIC_DEN -(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_ECM -(const byte) VIC_ECM#0 VIC_ECM = (byte/signed byte/word/signed word/dword/signed dword) 64 +(const byte) VIC_ECM#0 VIC_ECM = (byte/signed byte/word/signed word/dword/signed dword) $40 (byte) VIC_MCM -(const byte) VIC_MCM#0 VIC_MCM = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_MCM#0 VIC_MCM = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte*) VIC_MEMORY -(const byte*) VIC_MEMORY#0 VIC_MEMORY = ((byte*))(word/dword/signed dword) 53272 +(const byte*) VIC_MEMORY#0 VIC_MEMORY = ((byte*))(word/dword/signed dword) $d018 (byte) VIC_RSEL (const byte) VIC_RSEL#0 VIC_RSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) VIC_RST8 @@ -2833,7 +2833,7 @@ FINAL SYMBOL TABLE (void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx) (label) dtvSetCpuBankSegment1::@return (byte*) dtvSetCpuBankSegment1::cpuBank -(const byte*) dtvSetCpuBankSegment1::cpuBank#0 cpuBank = ((byte*))(byte/word/signed word/dword/signed dword) 255 +(const byte*) dtvSetCpuBankSegment1::cpuBank#0 cpuBank = ((byte*))(byte/word/signed word/dword/signed dword) $ff (byte) dtvSetCpuBankSegment1::cpuBankIdx (byte) dtvSetCpuBankSegment1::cpuBankIdx#1 reg byte a 202.0 (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 reg byte a 103.0 @@ -3006,11 +3006,11 @@ main: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG27 [19] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG27 [19] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^CHUNKY/$4000 sta CIA2_PORT_A - //SEG28 [20] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG28 [20] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) $3fff>>(byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 // Set VIC Bank // VIC memory lda #(CHUNKY&$3fff)>>6|(0)>>2 @@ -3028,7 +3028,7 @@ main: { sta DTV_PALETTE,x //SEG35 [23] (byte) main::j#1 ← ++ (byte) main::j#2 -- vbuxx=_inc_vbuxx inx - //SEG36 [24] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG36 [24] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1 //SEG37 main::@3 @@ -3079,7 +3079,7 @@ main: { sta BORDERCOL //SEG41 main::@5 b5: - //SEG42 [28] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 66) goto main::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG42 [28] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $42) goto main::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$42 bne b5 @@ -3138,7 +3138,7 @@ main: { nop nop nop - //SEG53 [37] if((byte) main::rst#1!=(byte/word/signed word/dword/signed dword) 242) goto main::@8 -- vbuxx_neq_vbuc1_then_la1 + //SEG53 [37] if((byte) main::rst#1!=(byte/word/signed word/dword/signed dword) $f2) goto main::@8 -- vbuxx_neq_vbuc1_then_la1 cpx #$f2 bne b8 jmp b3 @@ -3152,16 +3152,16 @@ gfx_init_chunky: { .label y = 2 //SEG55 [39] call dtvSetCpuBankSegment1 //SEG56 [58] phi from gfx_init_chunky to dtvSetCpuBankSegment1 [phi:gfx_init_chunky->dtvSetCpuBankSegment1] - //SEG57 [58] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 = ((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_chunky->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + //SEG57 [58] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 = ((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_chunky->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #$ff&CHUNKY/$4000 jsr dtvSetCpuBankSegment1 //SEG58 [40] phi from gfx_init_chunky to gfx_init_chunky::@1 [phi:gfx_init_chunky->gfx_init_chunky::@1] - //SEG59 [40] phi (byte) gfx_init_chunky::gfxbCpuBank#7 = ++((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_chunky->gfx_init_chunky::@1#0] -- vbuxx=vbuc1 + //SEG59 [40] phi (byte) gfx_init_chunky::gfxbCpuBank#7 = ++((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_chunky->gfx_init_chunky::@1#0] -- vbuxx=vbuc1 ldx #($ff&CHUNKY/$4000)+1 //SEG60 [40] phi (byte) gfx_init_chunky::y#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:gfx_init_chunky->gfx_init_chunky::@1#1] -- vbuz1=vbuc1 lda #0 sta y - //SEG61 [40] phi (byte*) gfx_init_chunky::gfxb#5 = ((byte*))(word/signed word/dword/signed dword) 16384 [phi:gfx_init_chunky->gfx_init_chunky::@1#2] -- pbuz1=pbuc1 + //SEG61 [40] phi (byte*) gfx_init_chunky::gfxb#5 = ((byte*))(word/signed word/dword/signed dword) $4000 [phi:gfx_init_chunky->gfx_init_chunky::@1#2] -- pbuz1=pbuc1 lda #<$4000 sta gfxb lda #>$4000 @@ -3185,7 +3185,7 @@ gfx_init_chunky: { //SEG74 [41] phi (byte*) gfx_init_chunky::gfxb#3 = (byte*) gfx_init_chunky::gfxb#1 [phi:gfx_init_chunky::@3->gfx_init_chunky::@2#2] -- register_copy //SEG75 gfx_init_chunky::@2 b2: - //SEG76 [42] if((byte*) gfx_init_chunky::gfxb#3!=(word/dword/signed dword) 32768) goto gfx_init_chunky::@3 -- pbuz1_neq_vwuc1_then_la1 + //SEG76 [42] if((byte*) gfx_init_chunky::gfxb#3!=(word/dword/signed dword) $8000) goto gfx_init_chunky::@3 -- pbuz1_neq_vwuc1_then_la1 lda gfxb+1 cmp #>$8000 bne b3 @@ -3204,7 +3204,7 @@ gfx_init_chunky: { inx //SEG84 [46] phi from gfx_init_chunky::@8 to gfx_init_chunky::@3 [phi:gfx_init_chunky::@8->gfx_init_chunky::@3] //SEG85 [46] phi (byte) gfx_init_chunky::gfxbCpuBank#8 = (byte) gfx_init_chunky::gfxbCpuBank#2 [phi:gfx_init_chunky::@8->gfx_init_chunky::@3#0] -- register_copy - //SEG86 [46] phi (byte*) gfx_init_chunky::gfxb#4 = ((byte*))(word/signed word/dword/signed dword) 16384 [phi:gfx_init_chunky::@8->gfx_init_chunky::@3#1] -- pbuz1=pbuc1 + //SEG86 [46] phi (byte*) gfx_init_chunky::gfxb#4 = ((byte*))(word/signed word/dword/signed dword) $4000 [phi:gfx_init_chunky::@8->gfx_init_chunky::@3#1] -- pbuz1=pbuc1 lda #<$4000 sta gfxb lda #>$4000 @@ -3237,7 +3237,7 @@ gfx_init_chunky: { bne !+ inc x+1 !: - //SEG96 [52] if((word) gfx_init_chunky::x#1!=(word/signed word/dword/signed dword) 320) goto gfx_init_chunky::@2 -- vwuz1_neq_vwuc1_then_la1 + //SEG96 [52] if((word) gfx_init_chunky::x#1!=(word/signed word/dword/signed dword) $140) goto gfx_init_chunky::@2 -- vwuz1_neq_vwuc1_then_la1 lda x+1 cmp #>$140 bne b2 @@ -3247,7 +3247,7 @@ gfx_init_chunky: { //SEG97 gfx_init_chunky::@5 //SEG98 [53] (byte) gfx_init_chunky::y#1 ← ++ (byte) gfx_init_chunky::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG99 [54] if((byte) gfx_init_chunky::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 51) goto gfx_init_chunky::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG99 [54] if((byte) gfx_init_chunky::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $33) goto gfx_init_chunky::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$33 bne b1 @@ -3255,7 +3255,7 @@ gfx_init_chunky: { //SEG101 gfx_init_chunky::@6 //SEG102 [56] call dtvSetCpuBankSegment1 //SEG103 [58] phi from gfx_init_chunky::@6 to dtvSetCpuBankSegment1 [phi:gfx_init_chunky::@6->dtvSetCpuBankSegment1] - //SEG104 [58] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_chunky::@6->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + //SEG104 [58] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_chunky::@6->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #$4000/$4000 jsr dtvSetCpuBankSegment1 //SEG105 gfx_init_chunky::@return diff --git a/src/test/ref/c64dtv-8bppchunkystretch.sym b/src/test/ref/c64dtv-8bppchunkystretch.sym index 4ecb8b533..ea0ebec71 100644 --- a/src/test/ref/c64dtv-8bppchunkystretch.sym +++ b/src/test/ref/c64dtv-8bppchunkystretch.sym @@ -9,11 +9,11 @@ (byte) BLACK (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN (byte*) CHUNKY -(const byte*) CHUNKY#0 CHUNKY = ((byte*))(word/dword/signed dword) 32768 +(const byte*) CHUNKY#0 CHUNKY = ((byte*))(word/dword/signed dword) $8000 (byte*) CIA1_INTERRUPT (byte*) CIA1_PORT_A (byte*) CIA1_PORT_A_DDR @@ -21,9 +21,9 @@ (byte*) CIA1_PORT_B_DDR (byte*) CIA2_INTERRUPT (byte*) CIA2_PORT_A -(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) 56576 +(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) $dd00 (byte*) CIA2_PORT_A_DDR -(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56578 +(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) $dd02 (byte*) CIA2_PORT_B (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR @@ -34,7 +34,7 @@ (byte*) D018 (byte) DARK_GREY (byte) DTV_BADLINE_OFF -(const byte) DTV_BADLINE_OFF#0 DTV_BADLINE_OFF = (byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte) DTV_BADLINE_OFF#0 DTV_BADLINE_OFF = (byte/signed byte/word/signed word/dword/signed dword) $20 (byte*) DTV_BLITTER_ALU (byte*) DTV_BLITTER_CONTROL (byte*) DTV_BLITTER_CONTROL2 @@ -101,16 +101,16 @@ (byte) DTV_BLIT_XOR (byte) DTV_BORDER_OFF (byte) DTV_CHUNKY -(const byte) DTV_CHUNKY#0 DTV_CHUNKY = (byte/signed byte/word/signed word/dword/signed dword) 64 +(const byte) DTV_CHUNKY#0 DTV_CHUNKY = (byte/signed byte/word/signed word/dword/signed dword) $40 (byte) DTV_COLORRAM_OFF -(const byte) DTV_COLORRAM_OFF#0 DTV_COLORRAM_OFF = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) DTV_COLORRAM_OFF#0 DTV_COLORRAM_OFF = (byte/signed byte/word/signed word/dword/signed dword) $10 (dword) DTV_COLOR_BANK_DEFAULT (byte*) DTV_COLOR_BANK_HI (byte*) DTV_COLOR_BANK_LO (byte*) DTV_CONTROL -(const byte*) DTV_CONTROL#0 DTV_CONTROL = ((byte*))(word/dword/signed dword) 53308 +(const byte*) DTV_CONTROL#0 DTV_CONTROL = ((byte*))(word/dword/signed dword) $d03c (byte*) DTV_FEATURE -(const byte*) DTV_FEATURE#0 DTV_FEATURE = ((byte*))(word/dword/signed dword) 53311 +(const byte*) DTV_FEATURE#0 DTV_FEATURE = ((byte*))(word/dword/signed dword) $d03f (byte) DTV_FEATURE_DISABLE_TIL_RESET (byte) DTV_FEATURE_ENABLE (const byte) DTV_FEATURE_ENABLE#0 DTV_FEATURE_ENABLE = (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -122,8 +122,8 @@ (const byte) DTV_LINEAR#0 DTV_LINEAR = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_OVERSCAN (byte*) DTV_PALETTE -(const byte*) DTV_PALETTE#0 DTV_PALETTE = ((byte*))(word/dword/signed dword) 53760 -(byte[16]) DTV_PALETTE_DEFAULT +(const byte*) DTV_PALETTE#0 DTV_PALETTE = ((byte*))(word/dword/signed dword) $d200 +(byte[$10]) DTV_PALETTE_DEFAULT (byte*) DTV_PLANEA_MODULO_HI (byte*) DTV_PLANEA_MODULO_LO (byte*) DTV_PLANEA_START_HI @@ -131,17 +131,17 @@ (byte*) DTV_PLANEA_START_MI (byte*) DTV_PLANEA_STEP (byte*) DTV_PLANEB_MODULO_HI -(const byte*) DTV_PLANEB_MODULO_HI#0 DTV_PLANEB_MODULO_HI = ((byte*))(word/dword/signed dword) 53320 +(const byte*) DTV_PLANEB_MODULO_HI#0 DTV_PLANEB_MODULO_HI = ((byte*))(word/dword/signed dword) $d048 (byte*) DTV_PLANEB_MODULO_LO -(const byte*) DTV_PLANEB_MODULO_LO#0 DTV_PLANEB_MODULO_LO = ((byte*))(word/dword/signed dword) 53319 +(const byte*) DTV_PLANEB_MODULO_LO#0 DTV_PLANEB_MODULO_LO = ((byte*))(word/dword/signed dword) $d047 (byte*) DTV_PLANEB_START_HI -(const byte*) DTV_PLANEB_START_HI#0 DTV_PLANEB_START_HI = ((byte*))(word/dword/signed dword) 53323 +(const byte*) DTV_PLANEB_START_HI#0 DTV_PLANEB_START_HI = ((byte*))(word/dword/signed dword) $d04b (byte*) DTV_PLANEB_START_LO -(const byte*) DTV_PLANEB_START_LO#0 DTV_PLANEB_START_LO = ((byte*))(word/dword/signed dword) 53321 +(const byte*) DTV_PLANEB_START_LO#0 DTV_PLANEB_START_LO = ((byte*))(word/dword/signed dword) $d049 (byte*) DTV_PLANEB_START_MI -(const byte*) DTV_PLANEB_START_MI#0 DTV_PLANEB_START_MI = ((byte*))(word/dword/signed dword) 53322 +(const byte*) DTV_PLANEB_START_MI#0 DTV_PLANEB_START_MI = ((byte*))(word/dword/signed dword) $d04a (byte*) DTV_PLANEB_STEP -(const byte*) DTV_PLANEB_STEP#0 DTV_PLANEB_STEP = ((byte*))(word/dword/signed dword) 53324 +(const byte*) DTV_PLANEB_STEP#0 DTV_PLANEB_STEP = ((byte*))(word/dword/signed dword) $d04c (byte*) DTV_SPRITE_BANK (byte) GREEN (byte) GREY @@ -171,10 +171,10 @@ (byte) PROCPORT_RAM_ALL (byte) PROCPORT_RAM_CHARROM (byte) PROCPORT_RAM_IO -(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) 53 +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) $35 (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE @@ -190,19 +190,19 @@ (word) SPRITE_PTRS (byte) VIC_BMM (byte*) VIC_CONTROL -(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) 53265 +(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) $d011 (byte*) VIC_CONTROL2 -(const byte*) VIC_CONTROL2#0 VIC_CONTROL2 = ((byte*))(word/dword/signed dword) 53270 +(const byte*) VIC_CONTROL2#0 VIC_CONTROL2 = ((byte*))(word/dword/signed dword) $d016 (byte) VIC_CSEL (const byte) VIC_CSEL#0 VIC_CSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) VIC_DEN -(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_ECM -(const byte) VIC_ECM#0 VIC_ECM = (byte/signed byte/word/signed word/dword/signed dword) 64 +(const byte) VIC_ECM#0 VIC_ECM = (byte/signed byte/word/signed word/dword/signed dword) $40 (byte) VIC_MCM -(const byte) VIC_MCM#0 VIC_MCM = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_MCM#0 VIC_MCM = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte*) VIC_MEMORY -(const byte*) VIC_MEMORY#0 VIC_MEMORY = ((byte*))(word/dword/signed dword) 53272 +(const byte*) VIC_MEMORY#0 VIC_MEMORY = ((byte*))(word/dword/signed dword) $d018 (byte) VIC_RSEL (const byte) VIC_RSEL#0 VIC_RSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) VIC_RST8 @@ -211,7 +211,7 @@ (void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx) (label) dtvSetCpuBankSegment1::@return (byte*) dtvSetCpuBankSegment1::cpuBank -(const byte*) dtvSetCpuBankSegment1::cpuBank#0 cpuBank = ((byte*))(byte/word/signed word/dword/signed dword) 255 +(const byte*) dtvSetCpuBankSegment1::cpuBank#0 cpuBank = ((byte*))(byte/word/signed word/dword/signed dword) $ff (byte) dtvSetCpuBankSegment1::cpuBankIdx (byte) dtvSetCpuBankSegment1::cpuBankIdx#1 reg byte a 202.0 (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 reg byte a 103.0 diff --git a/src/test/ref/c64dtv-blittermin.cfg b/src/test/ref/c64dtv-blittermin.cfg index ba08a30e1..68876a61d 100644 --- a/src/test/ref/c64dtv-blittermin.cfg +++ b/src/test/ref/c64dtv-blittermin.cfg @@ -15,25 +15,25 @@ main: scope:[main] from @6 [8] *((const byte*) DTV_BLITTER_SRCA_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [9] *((const byte*) DTV_BLITTER_SRCA_MOD_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [10] *((const byte*) DTV_BLITTER_SRCA_MOD_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [11] *((const byte*) DTV_BLITTER_SRCA_LIN_LO#0) ← <(word/signed word/dword/signed dword) 256 - [12] *((const byte*) DTV_BLITTER_SRCA_LIN_HI#0) ← >(word/signed word/dword/signed dword) 256 - [13] *((const byte*) DTV_BLITTER_SRCA_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 16 + [11] *((const byte*) DTV_BLITTER_SRCA_LIN_LO#0) ← <(word/signed word/dword/signed dword) $100 + [12] *((const byte*) DTV_BLITTER_SRCA_LIN_HI#0) ← >(word/signed word/dword/signed dword) $100 + [13] *((const byte*) DTV_BLITTER_SRCA_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) $10 [14] *((const byte*) DTV_BLITTER_SRCB_LO#0) ← <(const byte[]) SRCB#0 [15] *((const byte*) DTV_BLITTER_SRCB_MI#0) ← >(const byte[]) SRCB#0 [16] *((const byte*) DTV_BLITTER_SRCB_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [17] *((const byte*) DTV_BLITTER_SRCB_MOD_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [18] *((const byte*) DTV_BLITTER_SRCB_MOD_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [19] *((const byte*) DTV_BLITTER_SRCB_LIN_LO#0) ← <(word/signed word/dword/signed dword) 256 - [20] *((const byte*) DTV_BLITTER_SRCB_LIN_HI#0) ← >(word/signed word/dword/signed dword) 256 + [19] *((const byte*) DTV_BLITTER_SRCB_LIN_LO#0) ← <(word/signed word/dword/signed dword) $100 + [20] *((const byte*) DTV_BLITTER_SRCB_LIN_HI#0) ← >(word/signed word/dword/signed dword) $100 [21] *((const byte*) DTV_BLITTER_SRCB_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [22] *((const byte*) DTV_BLITTER_DEST_LO#0) ← <(const byte*) SCREEN#0 [23] *((const byte*) DTV_BLITTER_DEST_MI#0) ← >(const byte*) SCREEN#0 [24] *((const byte*) DTV_BLITTER_DEST_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [25] *((const byte*) DTV_BLITTER_DEST_MOD_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [26] *((const byte*) DTV_BLITTER_DEST_MOD_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [27] *((const byte*) DTV_BLITTER_DEST_LIN_LO#0) ← <(word/signed word/dword/signed dword) 256 - [28] *((const byte*) DTV_BLITTER_DEST_LIN_HI#0) ← >(word/signed word/dword/signed dword) 256 - [29] *((const byte*) DTV_BLITTER_DEST_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 16 + [27] *((const byte*) DTV_BLITTER_DEST_LIN_LO#0) ← <(word/signed word/dword/signed dword) $100 + [28] *((const byte*) DTV_BLITTER_DEST_LIN_HI#0) ← >(word/signed word/dword/signed dword) $100 + [29] *((const byte*) DTV_BLITTER_DEST_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) $10 [30] *((const byte*) DTV_BLITTER_LEN_LO#0) ← (const byte) SRCA_LEN#0 [31] *((const byte*) DTV_BLITTER_LEN_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [32] *((const byte*) DTV_BLITTER_ALU#0) ← (const byte) DTV_BLIT_ADD#0 diff --git a/src/test/ref/c64dtv-blittermin.log b/src/test/ref/c64dtv-blittermin.log index 73a84b7e8..d888b5a76 100644 --- a/src/test/ref/c64dtv-blittermin.log +++ b/src/test/ref/c64dtv-blittermin.log @@ -5,66 +5,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -75,88 +75,88 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@4 @4: scope:[] from @begin - (byte*) DTV_FEATURE#0 ← ((byte*)) (word/dword/signed dword) 53311 + (byte*) DTV_FEATURE#0 ← ((byte*)) (word/dword/signed dword) $d03f (byte) DTV_FEATURE_ENABLE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_FEATURE_DISABLE_TIL_RESET#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte*) DTV_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53308 + (byte*) DTV_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d03c (byte) DTV_LINEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BORDER_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_HIGHCOLOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DTV_OVERSCAN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte) DTV_COLORRAM_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte) DTV_BADLINE_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) DTV_CHUNKY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte*) DTV_PALETTE#0 ← ((byte*)) (word/dword/signed dword) 53760 - (byte[16]) DTV_PALETTE_DEFAULT#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 54, (byte/word/signed word/dword/signed dword) 190, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 219, (byte/word/signed word/dword/signed dword) 134, (byte/word/signed word/dword/signed dword) 255, (byte/signed byte/word/signed word/dword/signed dword) 41, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 59, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 154, (byte/signed byte/word/signed word/dword/signed dword) 10 } - (byte*) DTV_PLANEA_START_LO#0 ← ((byte*)) (word/dword/signed dword) 53306 - (byte*) DTV_PLANEA_START_MI#0 ← ((byte*)) (word/dword/signed dword) 53307 - (byte*) DTV_PLANEA_START_HI#0 ← ((byte*)) (word/dword/signed dword) 53317 - (byte*) DTV_PLANEA_STEP#0 ← ((byte*)) (word/dword/signed dword) 53318 - (byte*) DTV_PLANEA_MODULO_LO#0 ← ((byte*)) (word/dword/signed dword) 53304 - (byte*) DTV_PLANEA_MODULO_HI#0 ← ((byte*)) (word/dword/signed dword) 53305 - (byte*) DTV_PLANEB_START_LO#0 ← ((byte*)) (word/dword/signed dword) 53321 - (byte*) DTV_PLANEB_START_MI#0 ← ((byte*)) (word/dword/signed dword) 53322 - (byte*) DTV_PLANEB_START_HI#0 ← ((byte*)) (word/dword/signed dword) 53323 - (byte*) DTV_PLANEB_STEP#0 ← ((byte*)) (word/dword/signed dword) 53324 - (byte*) DTV_PLANEB_MODULO_LO#0 ← ((byte*)) (word/dword/signed dword) 53319 - (byte*) DTV_PLANEB_MODULO_HI#0 ← ((byte*)) (word/dword/signed dword) 53320 - (byte*) DTV_SPRITE_BANK#0 ← ((byte*)) (word/dword/signed dword) 53325 - (byte*) DTV_COLOR_BANK_LO#0 ← ((byte*)) (word/dword/signed dword) 53302 - (byte*) DTV_COLOR_BANK_HI#0 ← ((byte*)) (word/dword/signed dword) 53303 - (dword) DTV_COLOR_BANK_DEFAULT#0 ← (dword/signed dword) 120832 - (byte*) DTV_GRAPHICS_VIC_BANK#0 ← ((byte*)) (word/dword/signed dword) 53309 - (byte*) DTV_GRAPHICS_HICOL_BANK#0 ← ((byte*)) (word/dword/signed dword) 53310 + (byte) DTV_COLORRAM_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte) DTV_BADLINE_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) DTV_CHUNKY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte*) DTV_PALETTE#0 ← ((byte*)) (word/dword/signed dword) $d200 + (byte[$10]) DTV_PALETTE_DEFAULT#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $36, (byte/word/signed word/dword/signed dword) $be, (byte/signed byte/word/signed word/dword/signed dword) $58, (byte/word/signed word/dword/signed dword) $db, (byte/word/signed word/dword/signed dword) $86, (byte/word/signed word/dword/signed dword) $ff, (byte/signed byte/word/signed word/dword/signed dword) $29, (byte/signed byte/word/signed word/dword/signed dword) $26, (byte/signed byte/word/signed word/dword/signed dword) $3b, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $9a, (byte/signed byte/word/signed word/dword/signed dword) $a } + (byte*) DTV_PLANEA_START_LO#0 ← ((byte*)) (word/dword/signed dword) $d03a + (byte*) DTV_PLANEA_START_MI#0 ← ((byte*)) (word/dword/signed dword) $d03b + (byte*) DTV_PLANEA_START_HI#0 ← ((byte*)) (word/dword/signed dword) $d045 + (byte*) DTV_PLANEA_STEP#0 ← ((byte*)) (word/dword/signed dword) $d046 + (byte*) DTV_PLANEA_MODULO_LO#0 ← ((byte*)) (word/dword/signed dword) $d038 + (byte*) DTV_PLANEA_MODULO_HI#0 ← ((byte*)) (word/dword/signed dword) $d039 + (byte*) DTV_PLANEB_START_LO#0 ← ((byte*)) (word/dword/signed dword) $d049 + (byte*) DTV_PLANEB_START_MI#0 ← ((byte*)) (word/dword/signed dword) $d04a + (byte*) DTV_PLANEB_START_HI#0 ← ((byte*)) (word/dword/signed dword) $d04b + (byte*) DTV_PLANEB_STEP#0 ← ((byte*)) (word/dword/signed dword) $d04c + (byte*) DTV_PLANEB_MODULO_LO#0 ← ((byte*)) (word/dword/signed dword) $d047 + (byte*) DTV_PLANEB_MODULO_HI#0 ← ((byte*)) (word/dword/signed dword) $d048 + (byte*) DTV_SPRITE_BANK#0 ← ((byte*)) (word/dword/signed dword) $d04d + (byte*) DTV_COLOR_BANK_LO#0 ← ((byte*)) (word/dword/signed dword) $d036 + (byte*) DTV_COLOR_BANK_HI#0 ← ((byte*)) (word/dword/signed dword) $d037 + (dword) DTV_COLOR_BANK_DEFAULT#0 ← (dword/signed dword) $1d800 + (byte*) DTV_GRAPHICS_VIC_BANK#0 ← ((byte*)) (word/dword/signed dword) $d03d + (byte*) DTV_GRAPHICS_HICOL_BANK#0 ← ((byte*)) (word/dword/signed dword) $d03e to:@5 @5: scope:[] from @4 - (byte*) DTV_BLITTER_SRCA_LO#0 ← ((byte*)) (word/dword/signed dword) 54048 - (byte*) DTV_BLITTER_SRCA_MI#0 ← ((byte*)) (word/dword/signed dword) 54049 - (byte*) DTV_BLITTER_SRCA_HI#0 ← ((byte*)) (word/dword/signed dword) 54050 - (byte*) DTV_BLITTER_SRCA_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) 54051 - (byte*) DTV_BLITTER_SRCA_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) 54052 - (byte*) DTV_BLITTER_SRCA_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) 54053 - (byte*) DTV_BLITTER_SRCA_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) 54054 - (byte*) DTV_BLITTER_SRCA_STEP#0 ← ((byte*)) (word/dword/signed dword) 54055 - (byte*) DTV_BLITTER_SRCB_LO#0 ← ((byte*)) (word/dword/signed dword) 54056 - (byte*) DTV_BLITTER_SRCB_MI#0 ← ((byte*)) (word/dword/signed dword) 54057 - (byte*) DTV_BLITTER_SRCB_HI#0 ← ((byte*)) (word/dword/signed dword) 54058 - (byte*) DTV_BLITTER_SRCB_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) 54059 - (byte*) DTV_BLITTER_SRCB_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) 54060 - (byte*) DTV_BLITTER_SRCB_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) 54061 - (byte*) DTV_BLITTER_SRCB_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) 54062 - (byte*) DTV_BLITTER_SRCB_STEP#0 ← ((byte*)) (word/dword/signed dword) 54063 - (byte*) DTV_BLITTER_DEST_LO#0 ← ((byte*)) (word/dword/signed dword) 54064 - (byte*) DTV_BLITTER_DEST_MI#0 ← ((byte*)) (word/dword/signed dword) 54065 - (byte*) DTV_BLITTER_DEST_HI#0 ← ((byte*)) (word/dword/signed dword) 54066 - (byte*) DTV_BLITTER_DEST_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) 54067 - (byte*) DTV_BLITTER_DEST_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) 54068 - (byte*) DTV_BLITTER_DEST_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) 54069 - (byte*) DTV_BLITTER_DEST_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) 54070 - (byte*) DTV_BLITTER_DEST_STEP#0 ← ((byte*)) (word/dword/signed dword) 54071 - (byte*) DTV_BLITTER_LEN_LO#0 ← ((byte*)) (word/dword/signed dword) 54072 - (byte*) DTV_BLITTER_LEN_HI#0 ← ((byte*)) (word/dword/signed dword) 54073 - (byte*) DTV_BLITTER_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 54074 + (byte*) DTV_BLITTER_SRCA_LO#0 ← ((byte*)) (word/dword/signed dword) $d320 + (byte*) DTV_BLITTER_SRCA_MI#0 ← ((byte*)) (word/dword/signed dword) $d321 + (byte*) DTV_BLITTER_SRCA_HI#0 ← ((byte*)) (word/dword/signed dword) $d322 + (byte*) DTV_BLITTER_SRCA_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) $d323 + (byte*) DTV_BLITTER_SRCA_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) $d324 + (byte*) DTV_BLITTER_SRCA_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) $d325 + (byte*) DTV_BLITTER_SRCA_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) $d326 + (byte*) DTV_BLITTER_SRCA_STEP#0 ← ((byte*)) (word/dword/signed dword) $d327 + (byte*) DTV_BLITTER_SRCB_LO#0 ← ((byte*)) (word/dword/signed dword) $d328 + (byte*) DTV_BLITTER_SRCB_MI#0 ← ((byte*)) (word/dword/signed dword) $d329 + (byte*) DTV_BLITTER_SRCB_HI#0 ← ((byte*)) (word/dword/signed dword) $d32a + (byte*) DTV_BLITTER_SRCB_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) $d32b + (byte*) DTV_BLITTER_SRCB_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) $d32c + (byte*) DTV_BLITTER_SRCB_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) $d32d + (byte*) DTV_BLITTER_SRCB_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) $d32e + (byte*) DTV_BLITTER_SRCB_STEP#0 ← ((byte*)) (word/dword/signed dword) $d32f + (byte*) DTV_BLITTER_DEST_LO#0 ← ((byte*)) (word/dword/signed dword) $d330 + (byte*) DTV_BLITTER_DEST_MI#0 ← ((byte*)) (word/dword/signed dword) $d331 + (byte*) DTV_BLITTER_DEST_HI#0 ← ((byte*)) (word/dword/signed dword) $d332 + (byte*) DTV_BLITTER_DEST_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) $d333 + (byte*) DTV_BLITTER_DEST_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) $d334 + (byte*) DTV_BLITTER_DEST_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) $d335 + (byte*) DTV_BLITTER_DEST_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) $d336 + (byte*) DTV_BLITTER_DEST_STEP#0 ← ((byte*)) (word/dword/signed dword) $d337 + (byte*) DTV_BLITTER_LEN_LO#0 ← ((byte*)) (word/dword/signed dword) $d338 + (byte*) DTV_BLITTER_LEN_HI#0 ← ((byte*)) (word/dword/signed dword) $d339 + (byte*) DTV_BLITTER_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d33a (byte) DTV_BLIT_FORCE_START#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_SRCA_FWD#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_BLIT_SRCB_FWD#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DTV_BLIT_DEST_FWD#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte) DTV_BLIT_VIC_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte) DTV_BLIT_CIA_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) DTV_BLIT_VBLANK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) DTV_BLIT_IRQ_EN#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte*) DTV_BLITTER_TRANSPARANCY#0 ← ((byte*)) (word/dword/signed dword) 54075 + (byte) DTV_BLIT_VIC_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte) DTV_BLIT_CIA_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) DTV_BLIT_VBLANK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) DTV_BLIT_IRQ_EN#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte*) DTV_BLITTER_TRANSPARANCY#0 ← ((byte*)) (word/dword/signed dword) $d33b (byte) DTV_BLIT_DISABLE_B#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_WRITE_TRANSPARENT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_BLIT_WRITE_NONTRANSPARENT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DTV_BLIT_TRANSPARANCY_NONE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte*) DTV_BLITTER_ALU#0 ← ((byte*)) (word/dword/signed dword) 54078 + (byte*) DTV_BLITTER_ALU#0 ← ((byte*)) (word/dword/signed dword) $d33e (byte) DTV_BLIT_SHIFT0#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) DTV_BLIT_SHIFT1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_SHIFT2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -167,23 +167,23 @@ CONTROL FLOW GRAPH SSA (byte) DTV_BLIT_SHIFT7#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) DTV_BLIT_AND#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) DTV_BLIT_NAND#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte) DTV_BLIT_NOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte) DTV_BLIT_OR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 24 - (byte) DTV_BLIT_XOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) DTV_BLIT_XNOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte) DTV_BLIT_ADD#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) DTV_BLIT_SUB#0 ← (byte/signed byte/word/signed word/dword/signed dword) 56 - (byte*) DTV_BLITTER_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 54079 + (byte) DTV_BLIT_NOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte) DTV_BLIT_OR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $18 + (byte) DTV_BLIT_XOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) DTV_BLIT_XNOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) DTV_BLIT_ADD#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) DTV_BLIT_SUB#0 ← (byte/signed byte/word/signed word/dword/signed dword) $38 + (byte*) DTV_BLITTER_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d33f (byte) DTV_BLIT_CLEAR_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_SRCA_CONT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_BLIT_SRCB_CONT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DTV_BLIT_DEST_CONT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) DTV_BLIT_STATUS_BUSY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_STATUS_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte[]) SRCA#0 ← { (byte) 'c', (byte) 'a', (byte) 'm', (byte) 'e', (byte) 'l', (byte) 'o', (byte) 't', (byte) '!', (byte) ' ' } (byte) SRCA_LEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte[]) SRCB#0 ← { (byte/word/signed word/dword/signed dword) 128 } + (byte[]) SRCB#0 ← { (byte/word/signed word/dword/signed dword) $80 } to:@6 main: scope:[main] from @6 (byte*) DTV_BLITTER_ALU#1 ← phi( @6/(byte*) DTV_BLITTER_ALU#2 ) @@ -196,11 +196,11 @@ main: scope:[main] from @6 *((byte*) DTV_BLITTER_SRCA_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) DTV_BLITTER_SRCA_MOD_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) DTV_BLITTER_SRCA_MOD_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte/signed byte/word/signed word/dword/signed dword~) main::$2 ← < (word/signed word/dword/signed dword) 256 + (byte/signed byte/word/signed word/dword/signed dword~) main::$2 ← < (word/signed word/dword/signed dword) $100 *((byte*) DTV_BLITTER_SRCA_LIN_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword~) main::$2 - (byte/signed byte/word/signed word/dword/signed dword~) main::$3 ← > (word/signed word/dword/signed dword) 256 + (byte/signed byte/word/signed word/dword/signed dword~) main::$3 ← > (word/signed word/dword/signed dword) $100 *((byte*) DTV_BLITTER_SRCA_LIN_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword~) main::$3 - *((byte*) DTV_BLITTER_SRCA_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 16 + *((byte*) DTV_BLITTER_SRCA_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte~) main::$4 ← < (byte[]) SRCB#0 *((byte*) DTV_BLITTER_SRCB_LO#0) ← (byte~) main::$4 (byte~) main::$5 ← > (byte[]) SRCB#0 @@ -208,9 +208,9 @@ main: scope:[main] from @6 *((byte*) DTV_BLITTER_SRCB_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) DTV_BLITTER_SRCB_MOD_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) DTV_BLITTER_SRCB_MOD_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte/signed byte/word/signed word/dword/signed dword~) main::$6 ← < (word/signed word/dword/signed dword) 256 + (byte/signed byte/word/signed word/dword/signed dword~) main::$6 ← < (word/signed word/dword/signed dword) $100 *((byte*) DTV_BLITTER_SRCB_LIN_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword~) main::$6 - (byte/signed byte/word/signed word/dword/signed dword~) main::$7 ← > (word/signed word/dword/signed dword) 256 + (byte/signed byte/word/signed word/dword/signed dword~) main::$7 ← > (word/signed word/dword/signed dword) $100 *((byte*) DTV_BLITTER_SRCB_LIN_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword~) main::$7 *((byte*) DTV_BLITTER_SRCB_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte~) main::$8 ← < (byte*) SCREEN#0 @@ -220,11 +220,11 @@ main: scope:[main] from @6 *((byte*) DTV_BLITTER_DEST_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) DTV_BLITTER_DEST_MOD_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) DTV_BLITTER_DEST_MOD_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte/signed byte/word/signed word/dword/signed dword~) main::$10 ← < (word/signed word/dword/signed dword) 256 + (byte/signed byte/word/signed word/dword/signed dword~) main::$10 ← < (word/signed word/dword/signed dword) $100 *((byte*) DTV_BLITTER_DEST_LIN_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword~) main::$10 - (byte/signed byte/word/signed word/dword/signed dword~) main::$11 ← > (word/signed word/dword/signed dword) 256 + (byte/signed byte/word/signed word/dword/signed dword~) main::$11 ← > (word/signed word/dword/signed dword) $100 *((byte*) DTV_BLITTER_DEST_LIN_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword~) main::$11 - *((byte*) DTV_BLITTER_DEST_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 16 + *((byte*) DTV_BLITTER_DEST_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) $10 *((byte*) DTV_BLITTER_LEN_LO#0) ← (byte) SRCA_LEN#0 *((byte*) DTV_BLITTER_LEN_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) DTV_BLITTER_ALU#1) ← (byte) DTV_BLIT_ADD#0 @@ -491,8 +491,8 @@ SYMBOL TABLE SSA (byte) DTV_OVERSCAN#0 (byte*) DTV_PALETTE (byte*) DTV_PALETTE#0 -(byte[16]) DTV_PALETTE_DEFAULT -(byte[16]) DTV_PALETTE_DEFAULT#0 +(byte[$10]) DTV_PALETTE_DEFAULT +(byte[$10]) DTV_PALETTE_DEFAULT#0 (byte*) DTV_PLANEA_MODULO_HI (byte*) DTV_PLANEA_MODULO_HI#0 (byte*) DTV_PLANEA_MODULO_LO @@ -680,66 +680,66 @@ Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -750,84 +750,84 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 -Constant (const byte*) DTV_FEATURE#0 = ((byte*))53311 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f +Constant (const byte*) DTV_FEATURE#0 = ((byte*))$d03f Constant (const byte) DTV_FEATURE_ENABLE#0 = 1 Constant (const byte) DTV_FEATURE_DISABLE_TIL_RESET#0 = 2 -Constant (const byte*) DTV_CONTROL#0 = ((byte*))53308 +Constant (const byte*) DTV_CONTROL#0 = ((byte*))$d03c Constant (const byte) DTV_LINEAR#0 = 1 Constant (const byte) DTV_BORDER_OFF#0 = 2 Constant (const byte) DTV_HIGHCOLOR#0 = 4 Constant (const byte) DTV_OVERSCAN#0 = 8 -Constant (const byte) DTV_COLORRAM_OFF#0 = 16 -Constant (const byte) DTV_BADLINE_OFF#0 = 32 -Constant (const byte) DTV_CHUNKY#0 = 64 -Constant (const byte*) DTV_PALETTE#0 = ((byte*))53760 -Constant (const byte[16]) DTV_PALETTE_DEFAULT#0 = { 0, 15, 54, 190, 88, 219, 134, 255, 41, 38, 59, 5, 7, 223, 154, 10 } -Constant (const byte*) DTV_PLANEA_START_LO#0 = ((byte*))53306 -Constant (const byte*) DTV_PLANEA_START_MI#0 = ((byte*))53307 -Constant (const byte*) DTV_PLANEA_START_HI#0 = ((byte*))53317 -Constant (const byte*) DTV_PLANEA_STEP#0 = ((byte*))53318 -Constant (const byte*) DTV_PLANEA_MODULO_LO#0 = ((byte*))53304 -Constant (const byte*) DTV_PLANEA_MODULO_HI#0 = ((byte*))53305 -Constant (const byte*) DTV_PLANEB_START_LO#0 = ((byte*))53321 -Constant (const byte*) DTV_PLANEB_START_MI#0 = ((byte*))53322 -Constant (const byte*) DTV_PLANEB_START_HI#0 = ((byte*))53323 -Constant (const byte*) DTV_PLANEB_STEP#0 = ((byte*))53324 -Constant (const byte*) DTV_PLANEB_MODULO_LO#0 = ((byte*))53319 -Constant (const byte*) DTV_PLANEB_MODULO_HI#0 = ((byte*))53320 -Constant (const byte*) DTV_SPRITE_BANK#0 = ((byte*))53325 -Constant (const byte*) DTV_COLOR_BANK_LO#0 = ((byte*))53302 -Constant (const byte*) DTV_COLOR_BANK_HI#0 = ((byte*))53303 -Constant (const dword) DTV_COLOR_BANK_DEFAULT#0 = 120832 -Constant (const byte*) DTV_GRAPHICS_VIC_BANK#0 = ((byte*))53309 -Constant (const byte*) DTV_GRAPHICS_HICOL_BANK#0 = ((byte*))53310 -Constant (const byte*) DTV_BLITTER_SRCA_LO#0 = ((byte*))54048 -Constant (const byte*) DTV_BLITTER_SRCA_MI#0 = ((byte*))54049 -Constant (const byte*) DTV_BLITTER_SRCA_HI#0 = ((byte*))54050 -Constant (const byte*) DTV_BLITTER_SRCA_MOD_LO#0 = ((byte*))54051 -Constant (const byte*) DTV_BLITTER_SRCA_MOD_HI#0 = ((byte*))54052 -Constant (const byte*) DTV_BLITTER_SRCA_LIN_LO#0 = ((byte*))54053 -Constant (const byte*) DTV_BLITTER_SRCA_LIN_HI#0 = ((byte*))54054 -Constant (const byte*) DTV_BLITTER_SRCA_STEP#0 = ((byte*))54055 -Constant (const byte*) DTV_BLITTER_SRCB_LO#0 = ((byte*))54056 -Constant (const byte*) DTV_BLITTER_SRCB_MI#0 = ((byte*))54057 -Constant (const byte*) DTV_BLITTER_SRCB_HI#0 = ((byte*))54058 -Constant (const byte*) DTV_BLITTER_SRCB_MOD_LO#0 = ((byte*))54059 -Constant (const byte*) DTV_BLITTER_SRCB_MOD_HI#0 = ((byte*))54060 -Constant (const byte*) DTV_BLITTER_SRCB_LIN_LO#0 = ((byte*))54061 -Constant (const byte*) DTV_BLITTER_SRCB_LIN_HI#0 = ((byte*))54062 -Constant (const byte*) DTV_BLITTER_SRCB_STEP#0 = ((byte*))54063 -Constant (const byte*) DTV_BLITTER_DEST_LO#0 = ((byte*))54064 -Constant (const byte*) DTV_BLITTER_DEST_MI#0 = ((byte*))54065 -Constant (const byte*) DTV_BLITTER_DEST_HI#0 = ((byte*))54066 -Constant (const byte*) DTV_BLITTER_DEST_MOD_LO#0 = ((byte*))54067 -Constant (const byte*) DTV_BLITTER_DEST_MOD_HI#0 = ((byte*))54068 -Constant (const byte*) DTV_BLITTER_DEST_LIN_LO#0 = ((byte*))54069 -Constant (const byte*) DTV_BLITTER_DEST_LIN_HI#0 = ((byte*))54070 -Constant (const byte*) DTV_BLITTER_DEST_STEP#0 = ((byte*))54071 -Constant (const byte*) DTV_BLITTER_LEN_LO#0 = ((byte*))54072 -Constant (const byte*) DTV_BLITTER_LEN_HI#0 = ((byte*))54073 -Constant (const byte*) DTV_BLITTER_CONTROL#0 = ((byte*))54074 +Constant (const byte) DTV_COLORRAM_OFF#0 = $10 +Constant (const byte) DTV_BADLINE_OFF#0 = $20 +Constant (const byte) DTV_CHUNKY#0 = $40 +Constant (const byte*) DTV_PALETTE#0 = ((byte*))$d200 +Constant (const byte[$10]) DTV_PALETTE_DEFAULT#0 = { 0, $f, $36, $be, $58, $db, $86, $ff, $29, $26, $3b, 5, 7, $df, $9a, $a } +Constant (const byte*) DTV_PLANEA_START_LO#0 = ((byte*))$d03a +Constant (const byte*) DTV_PLANEA_START_MI#0 = ((byte*))$d03b +Constant (const byte*) DTV_PLANEA_START_HI#0 = ((byte*))$d045 +Constant (const byte*) DTV_PLANEA_STEP#0 = ((byte*))$d046 +Constant (const byte*) DTV_PLANEA_MODULO_LO#0 = ((byte*))$d038 +Constant (const byte*) DTV_PLANEA_MODULO_HI#0 = ((byte*))$d039 +Constant (const byte*) DTV_PLANEB_START_LO#0 = ((byte*))$d049 +Constant (const byte*) DTV_PLANEB_START_MI#0 = ((byte*))$d04a +Constant (const byte*) DTV_PLANEB_START_HI#0 = ((byte*))$d04b +Constant (const byte*) DTV_PLANEB_STEP#0 = ((byte*))$d04c +Constant (const byte*) DTV_PLANEB_MODULO_LO#0 = ((byte*))$d047 +Constant (const byte*) DTV_PLANEB_MODULO_HI#0 = ((byte*))$d048 +Constant (const byte*) DTV_SPRITE_BANK#0 = ((byte*))$d04d +Constant (const byte*) DTV_COLOR_BANK_LO#0 = ((byte*))$d036 +Constant (const byte*) DTV_COLOR_BANK_HI#0 = ((byte*))$d037 +Constant (const dword) DTV_COLOR_BANK_DEFAULT#0 = $1d800 +Constant (const byte*) DTV_GRAPHICS_VIC_BANK#0 = ((byte*))$d03d +Constant (const byte*) DTV_GRAPHICS_HICOL_BANK#0 = ((byte*))$d03e +Constant (const byte*) DTV_BLITTER_SRCA_LO#0 = ((byte*))$d320 +Constant (const byte*) DTV_BLITTER_SRCA_MI#0 = ((byte*))$d321 +Constant (const byte*) DTV_BLITTER_SRCA_HI#0 = ((byte*))$d322 +Constant (const byte*) DTV_BLITTER_SRCA_MOD_LO#0 = ((byte*))$d323 +Constant (const byte*) DTV_BLITTER_SRCA_MOD_HI#0 = ((byte*))$d324 +Constant (const byte*) DTV_BLITTER_SRCA_LIN_LO#0 = ((byte*))$d325 +Constant (const byte*) DTV_BLITTER_SRCA_LIN_HI#0 = ((byte*))$d326 +Constant (const byte*) DTV_BLITTER_SRCA_STEP#0 = ((byte*))$d327 +Constant (const byte*) DTV_BLITTER_SRCB_LO#0 = ((byte*))$d328 +Constant (const byte*) DTV_BLITTER_SRCB_MI#0 = ((byte*))$d329 +Constant (const byte*) DTV_BLITTER_SRCB_HI#0 = ((byte*))$d32a +Constant (const byte*) DTV_BLITTER_SRCB_MOD_LO#0 = ((byte*))$d32b +Constant (const byte*) DTV_BLITTER_SRCB_MOD_HI#0 = ((byte*))$d32c +Constant (const byte*) DTV_BLITTER_SRCB_LIN_LO#0 = ((byte*))$d32d +Constant (const byte*) DTV_BLITTER_SRCB_LIN_HI#0 = ((byte*))$d32e +Constant (const byte*) DTV_BLITTER_SRCB_STEP#0 = ((byte*))$d32f +Constant (const byte*) DTV_BLITTER_DEST_LO#0 = ((byte*))$d330 +Constant (const byte*) DTV_BLITTER_DEST_MI#0 = ((byte*))$d331 +Constant (const byte*) DTV_BLITTER_DEST_HI#0 = ((byte*))$d332 +Constant (const byte*) DTV_BLITTER_DEST_MOD_LO#0 = ((byte*))$d333 +Constant (const byte*) DTV_BLITTER_DEST_MOD_HI#0 = ((byte*))$d334 +Constant (const byte*) DTV_BLITTER_DEST_LIN_LO#0 = ((byte*))$d335 +Constant (const byte*) DTV_BLITTER_DEST_LIN_HI#0 = ((byte*))$d336 +Constant (const byte*) DTV_BLITTER_DEST_STEP#0 = ((byte*))$d337 +Constant (const byte*) DTV_BLITTER_LEN_LO#0 = ((byte*))$d338 +Constant (const byte*) DTV_BLITTER_LEN_HI#0 = ((byte*))$d339 +Constant (const byte*) DTV_BLITTER_CONTROL#0 = ((byte*))$d33a Constant (const byte) DTV_BLIT_FORCE_START#0 = 1 Constant (const byte) DTV_BLIT_SRCA_FWD#0 = 2 Constant (const byte) DTV_BLIT_SRCB_FWD#0 = 4 Constant (const byte) DTV_BLIT_DEST_FWD#0 = 8 -Constant (const byte) DTV_BLIT_VIC_IRQ#0 = 16 -Constant (const byte) DTV_BLIT_CIA_IRQ#0 = 32 -Constant (const byte) DTV_BLIT_VBLANK#0 = 64 -Constant (const byte) DTV_BLIT_IRQ_EN#0 = 128 -Constant (const byte*) DTV_BLITTER_TRANSPARANCY#0 = ((byte*))54075 +Constant (const byte) DTV_BLIT_VIC_IRQ#0 = $10 +Constant (const byte) DTV_BLIT_CIA_IRQ#0 = $20 +Constant (const byte) DTV_BLIT_VBLANK#0 = $40 +Constant (const byte) DTV_BLIT_IRQ_EN#0 = $80 +Constant (const byte*) DTV_BLITTER_TRANSPARANCY#0 = ((byte*))$d33b Constant (const byte) DTV_BLIT_DISABLE_B#0 = 1 Constant (const byte) DTV_BLIT_WRITE_TRANSPARENT#0 = 2 Constant (const byte) DTV_BLIT_WRITE_NONTRANSPARENT#0 = 4 Constant (const byte) DTV_BLIT_TRANSPARANCY_NONE#0 = 0 -Constant (const byte*) DTV_BLITTER_ALU#0 = ((byte*))54078 +Constant (const byte*) DTV_BLITTER_ALU#0 = ((byte*))$d33e Constant (const byte) DTV_BLIT_SHIFT0#0 = 0 Constant (const byte) DTV_BLIT_SHIFT1#0 = 1 Constant (const byte) DTV_BLIT_SHIFT2#0 = 2 @@ -838,29 +838,29 @@ Constant (const byte) DTV_BLIT_SHIFT6#0 = 6 Constant (const byte) DTV_BLIT_SHIFT7#0 = 7 Constant (const byte) DTV_BLIT_AND#0 = 0 Constant (const byte) DTV_BLIT_NAND#0 = 8 -Constant (const byte) DTV_BLIT_NOR#0 = 16 -Constant (const byte) DTV_BLIT_OR#0 = 24 -Constant (const byte) DTV_BLIT_XOR#0 = 32 -Constant (const byte) DTV_BLIT_XNOR#0 = 40 -Constant (const byte) DTV_BLIT_ADD#0 = 48 -Constant (const byte) DTV_BLIT_SUB#0 = 56 -Constant (const byte*) DTV_BLITTER_CONTROL2#0 = ((byte*))54079 +Constant (const byte) DTV_BLIT_NOR#0 = $10 +Constant (const byte) DTV_BLIT_OR#0 = $18 +Constant (const byte) DTV_BLIT_XOR#0 = $20 +Constant (const byte) DTV_BLIT_XNOR#0 = $28 +Constant (const byte) DTV_BLIT_ADD#0 = $30 +Constant (const byte) DTV_BLIT_SUB#0 = $38 +Constant (const byte*) DTV_BLITTER_CONTROL2#0 = ((byte*))$d33f Constant (const byte) DTV_BLIT_CLEAR_IRQ#0 = 1 Constant (const byte) DTV_BLIT_SRCA_CONT#0 = 2 Constant (const byte) DTV_BLIT_SRCB_CONT#0 = 4 Constant (const byte) DTV_BLIT_DEST_CONT#0 = 8 Constant (const byte) DTV_BLIT_STATUS_BUSY#0 = 1 Constant (const byte) DTV_BLIT_STATUS_IRQ#0 = 2 -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Constant (const byte[]) SRCA#0 = { 'c', 'a', 'm', 'e', 'l', 'o', 't', '!', ' ' } Constant (const byte) SRCA_LEN#0 = 9 -Constant (const byte[]) SRCB#0 = { 128 } -Constant (const byte/signed byte/word/signed word/dword/signed dword) main::$2 = <256 -Constant (const byte/signed byte/word/signed word/dword/signed dword) main::$3 = >256 -Constant (const byte/signed byte/word/signed word/dword/signed dword) main::$6 = <256 -Constant (const byte/signed byte/word/signed word/dword/signed dword) main::$7 = >256 -Constant (const byte/signed byte/word/signed word/dword/signed dword) main::$10 = <256 -Constant (const byte/signed byte/word/signed word/dword/signed dword) main::$11 = >256 +Constant (const byte[]) SRCB#0 = { $80 } +Constant (const byte/signed byte/word/signed word/dword/signed dword) main::$2 = <$100 +Constant (const byte/signed byte/word/signed word/dword/signed dword) main::$3 = >$100 +Constant (const byte/signed byte/word/signed word/dword/signed dword) main::$6 = <$100 +Constant (const byte/signed byte/word/signed word/dword/signed dword) main::$7 = >$100 +Constant (const byte/signed byte/word/signed word/dword/signed dword) main::$10 = <$100 +Constant (const byte/signed byte/word/signed word/dword/signed dword) main::$11 = >$100 Constant (const byte) main::r#0 = 0 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::$0 = (word/signed word/dword/signed dword) 256 +Constant inlined main::$10 = <(word/signed word/dword/signed dword) $100 +Constant inlined main::$11 = >(word/signed word/dword/signed dword) $100 Constant inlined main::$1 = >(const byte[]) SRCA#0 -Constant inlined main::$2 = <(word/signed word/dword/signed dword) 256 +Constant inlined main::$2 = <(word/signed word/dword/signed dword) $100 Constant inlined main::$17 = (const byte) DTV_BLIT_FORCE_START#0|(const byte) DTV_BLIT_SRCA_FWD#0 Constant inlined main::$18 = (const byte) DTV_BLIT_FORCE_START#0|(const byte) DTV_BLIT_SRCA_FWD#0|(const byte) DTV_BLIT_SRCB_FWD#0 Constant inlined main::$0 = <(const byte[]) SRCA#0 Constant inlined main::$19 = (const byte) DTV_BLIT_FORCE_START#0|(const byte) DTV_BLIT_SRCA_FWD#0|(const byte) DTV_BLIT_SRCB_FWD#0|(const byte) DTV_BLIT_DEST_FWD#0 Constant inlined main::$5 = >(const byte[]) SRCB#0 -Constant inlined main::$6 = <(word/signed word/dword/signed dword) 256 -Constant inlined main::$3 = >(word/signed word/dword/signed dword) 256 +Constant inlined main::$6 = <(word/signed word/dword/signed dword) $100 +Constant inlined main::$3 = >(word/signed word/dword/signed dword) $100 Constant inlined main::$4 = <(const byte[]) SRCB#0 Constant inlined main::$9 = >(const byte*) SCREEN#0 -Constant inlined main::$7 = >(word/signed word/dword/signed dword) 256 +Constant inlined main::$7 = >(word/signed word/dword/signed dword) $100 Constant inlined main::$8 = <(const byte*) SCREEN#0 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@5(between main::@3 and main::@2) @@ -939,25 +939,25 @@ main: scope:[main] from @6 [8] *((const byte*) DTV_BLITTER_SRCA_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [9] *((const byte*) DTV_BLITTER_SRCA_MOD_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [10] *((const byte*) DTV_BLITTER_SRCA_MOD_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [11] *((const byte*) DTV_BLITTER_SRCA_LIN_LO#0) ← <(word/signed word/dword/signed dword) 256 - [12] *((const byte*) DTV_BLITTER_SRCA_LIN_HI#0) ← >(word/signed word/dword/signed dword) 256 - [13] *((const byte*) DTV_BLITTER_SRCA_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 16 + [11] *((const byte*) DTV_BLITTER_SRCA_LIN_LO#0) ← <(word/signed word/dword/signed dword) $100 + [12] *((const byte*) DTV_BLITTER_SRCA_LIN_HI#0) ← >(word/signed word/dword/signed dword) $100 + [13] *((const byte*) DTV_BLITTER_SRCA_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) $10 [14] *((const byte*) DTV_BLITTER_SRCB_LO#0) ← <(const byte[]) SRCB#0 [15] *((const byte*) DTV_BLITTER_SRCB_MI#0) ← >(const byte[]) SRCB#0 [16] *((const byte*) DTV_BLITTER_SRCB_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [17] *((const byte*) DTV_BLITTER_SRCB_MOD_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [18] *((const byte*) DTV_BLITTER_SRCB_MOD_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [19] *((const byte*) DTV_BLITTER_SRCB_LIN_LO#0) ← <(word/signed word/dword/signed dword) 256 - [20] *((const byte*) DTV_BLITTER_SRCB_LIN_HI#0) ← >(word/signed word/dword/signed dword) 256 + [19] *((const byte*) DTV_BLITTER_SRCB_LIN_LO#0) ← <(word/signed word/dword/signed dword) $100 + [20] *((const byte*) DTV_BLITTER_SRCB_LIN_HI#0) ← >(word/signed word/dword/signed dword) $100 [21] *((const byte*) DTV_BLITTER_SRCB_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [22] *((const byte*) DTV_BLITTER_DEST_LO#0) ← <(const byte*) SCREEN#0 [23] *((const byte*) DTV_BLITTER_DEST_MI#0) ← >(const byte*) SCREEN#0 [24] *((const byte*) DTV_BLITTER_DEST_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [25] *((const byte*) DTV_BLITTER_DEST_MOD_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [26] *((const byte*) DTV_BLITTER_DEST_MOD_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [27] *((const byte*) DTV_BLITTER_DEST_LIN_LO#0) ← <(word/signed word/dword/signed dword) 256 - [28] *((const byte*) DTV_BLITTER_DEST_LIN_HI#0) ← >(word/signed word/dword/signed dword) 256 - [29] *((const byte*) DTV_BLITTER_DEST_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 16 + [27] *((const byte*) DTV_BLITTER_DEST_LIN_LO#0) ← <(word/signed word/dword/signed dword) $100 + [28] *((const byte*) DTV_BLITTER_DEST_LIN_HI#0) ← >(word/signed word/dword/signed dword) $100 + [29] *((const byte*) DTV_BLITTER_DEST_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) $10 [30] *((const byte*) DTV_BLITTER_LEN_LO#0) ← (const byte) SRCA_LEN#0 [31] *((const byte*) DTV_BLITTER_LEN_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [32] *((const byte*) DTV_BLITTER_ALU#0) ← (const byte) DTV_BLIT_ADD#0 @@ -1089,7 +1089,7 @@ VARIABLE REGISTER WEIGHTS (byte) DTV_LINEAR (byte) DTV_OVERSCAN (byte*) DTV_PALETTE -(byte[16]) DTV_PALETTE_DEFAULT +(byte[$10]) DTV_PALETTE_DEFAULT (byte*) DTV_PLANEA_MODULO_HI (byte*) DTV_PLANEA_MODULO_LO (byte*) DTV_PLANEA_START_HI @@ -1291,13 +1291,13 @@ main: { //SEG16 [10] *((const byte*) DTV_BLITTER_SRCA_MOD_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_BLITTER_SRCA_MOD_HI - //SEG17 [11] *((const byte*) DTV_BLITTER_SRCA_LIN_LO#0) ← <(word/signed word/dword/signed dword) 256 -- _deref_pbuc1=vbuc2 + //SEG17 [11] *((const byte*) DTV_BLITTER_SRCA_LIN_LO#0) ← <(word/signed word/dword/signed dword) $100 -- _deref_pbuc1=vbuc2 lda #<$100 sta DTV_BLITTER_SRCA_LIN_LO - //SEG18 [12] *((const byte*) DTV_BLITTER_SRCA_LIN_HI#0) ← >(word/signed word/dword/signed dword) 256 -- _deref_pbuc1=vbuc2 + //SEG18 [12] *((const byte*) DTV_BLITTER_SRCA_LIN_HI#0) ← >(word/signed word/dword/signed dword) $100 -- _deref_pbuc1=vbuc2 lda #>$100 sta DTV_BLITTER_SRCA_LIN_HI - //SEG19 [13] *((const byte*) DTV_BLITTER_SRCA_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 16 -- _deref_pbuc1=vbuc2 + //SEG19 [13] *((const byte*) DTV_BLITTER_SRCA_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) $10 -- _deref_pbuc1=vbuc2 lda #$10 sta DTV_BLITTER_SRCA_STEP //SEG20 [14] *((const byte*) DTV_BLITTER_SRCB_LO#0) ← <(const byte[]) SRCB#0 -- _deref_pbuc1=vbuc2 @@ -1316,10 +1316,10 @@ main: { //SEG24 [18] *((const byte*) DTV_BLITTER_SRCB_MOD_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_BLITTER_SRCB_MOD_HI - //SEG25 [19] *((const byte*) DTV_BLITTER_SRCB_LIN_LO#0) ← <(word/signed word/dword/signed dword) 256 -- _deref_pbuc1=vbuc2 + //SEG25 [19] *((const byte*) DTV_BLITTER_SRCB_LIN_LO#0) ← <(word/signed word/dword/signed dword) $100 -- _deref_pbuc1=vbuc2 lda #<$100 sta DTV_BLITTER_SRCB_LIN_LO - //SEG26 [20] *((const byte*) DTV_BLITTER_SRCB_LIN_HI#0) ← >(word/signed word/dword/signed dword) 256 -- _deref_pbuc1=vbuc2 + //SEG26 [20] *((const byte*) DTV_BLITTER_SRCB_LIN_HI#0) ← >(word/signed word/dword/signed dword) $100 -- _deref_pbuc1=vbuc2 lda #>$100 sta DTV_BLITTER_SRCB_LIN_HI //SEG27 [21] *((const byte*) DTV_BLITTER_SRCB_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 @@ -1341,13 +1341,13 @@ main: { //SEG32 [26] *((const byte*) DTV_BLITTER_DEST_MOD_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_BLITTER_DEST_MOD_HI - //SEG33 [27] *((const byte*) DTV_BLITTER_DEST_LIN_LO#0) ← <(word/signed word/dword/signed dword) 256 -- _deref_pbuc1=vbuc2 + //SEG33 [27] *((const byte*) DTV_BLITTER_DEST_LIN_LO#0) ← <(word/signed word/dword/signed dword) $100 -- _deref_pbuc1=vbuc2 lda #<$100 sta DTV_BLITTER_DEST_LIN_LO - //SEG34 [28] *((const byte*) DTV_BLITTER_DEST_LIN_HI#0) ← >(word/signed word/dword/signed dword) 256 -- _deref_pbuc1=vbuc2 + //SEG34 [28] *((const byte*) DTV_BLITTER_DEST_LIN_HI#0) ← >(word/signed word/dword/signed dword) $100 -- _deref_pbuc1=vbuc2 lda #>$100 sta DTV_BLITTER_DEST_LIN_HI - //SEG35 [29] *((const byte*) DTV_BLITTER_DEST_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 16 -- _deref_pbuc1=vbuc2 + //SEG35 [29] *((const byte*) DTV_BLITTER_DEST_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) $10 -- _deref_pbuc1=vbuc2 lda #$10 sta DTV_BLITTER_DEST_STEP //SEG36 [30] *((const byte*) DTV_BLITTER_LEN_LO#0) ← (const byte) SRCA_LEN#0 -- _deref_pbuc1=vbuc2 @@ -1425,25 +1425,25 @@ Statement [7] *((const byte*) DTV_BLITTER_SRCA_MI#0) ← >(const byte[]) SRCA#0 Statement [8] *((const byte*) DTV_BLITTER_SRCA_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [9] *((const byte*) DTV_BLITTER_SRCA_MOD_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [10] *((const byte*) DTV_BLITTER_SRCA_MOD_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [11] *((const byte*) DTV_BLITTER_SRCA_LIN_LO#0) ← <(word/signed word/dword/signed dword) 256 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [12] *((const byte*) DTV_BLITTER_SRCA_LIN_HI#0) ← >(word/signed word/dword/signed dword) 256 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [13] *((const byte*) DTV_BLITTER_SRCA_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 16 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [11] *((const byte*) DTV_BLITTER_SRCA_LIN_LO#0) ← <(word/signed word/dword/signed dword) $100 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [12] *((const byte*) DTV_BLITTER_SRCA_LIN_HI#0) ← >(word/signed word/dword/signed dword) $100 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [13] *((const byte*) DTV_BLITTER_SRCA_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) $10 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [14] *((const byte*) DTV_BLITTER_SRCB_LO#0) ← <(const byte[]) SRCB#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [15] *((const byte*) DTV_BLITTER_SRCB_MI#0) ← >(const byte[]) SRCB#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [16] *((const byte*) DTV_BLITTER_SRCB_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [17] *((const byte*) DTV_BLITTER_SRCB_MOD_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [18] *((const byte*) DTV_BLITTER_SRCB_MOD_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [19] *((const byte*) DTV_BLITTER_SRCB_LIN_LO#0) ← <(word/signed word/dword/signed dword) 256 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [20] *((const byte*) DTV_BLITTER_SRCB_LIN_HI#0) ← >(word/signed word/dword/signed dword) 256 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [19] *((const byte*) DTV_BLITTER_SRCB_LIN_LO#0) ← <(word/signed word/dword/signed dword) $100 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [20] *((const byte*) DTV_BLITTER_SRCB_LIN_HI#0) ← >(word/signed word/dword/signed dword) $100 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [21] *((const byte*) DTV_BLITTER_SRCB_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [22] *((const byte*) DTV_BLITTER_DEST_LO#0) ← <(const byte*) SCREEN#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [23] *((const byte*) DTV_BLITTER_DEST_MI#0) ← >(const byte*) SCREEN#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [24] *((const byte*) DTV_BLITTER_DEST_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [25] *((const byte*) DTV_BLITTER_DEST_MOD_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [26] *((const byte*) DTV_BLITTER_DEST_MOD_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [27] *((const byte*) DTV_BLITTER_DEST_LIN_LO#0) ← <(word/signed word/dword/signed dword) 256 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [28] *((const byte*) DTV_BLITTER_DEST_LIN_HI#0) ← >(word/signed word/dword/signed dword) 256 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [29] *((const byte*) DTV_BLITTER_DEST_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 16 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [27] *((const byte*) DTV_BLITTER_DEST_LIN_LO#0) ← <(word/signed word/dword/signed dword) $100 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [28] *((const byte*) DTV_BLITTER_DEST_LIN_HI#0) ← >(word/signed word/dword/signed dword) $100 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [29] *((const byte*) DTV_BLITTER_DEST_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) $10 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [30] *((const byte*) DTV_BLITTER_LEN_LO#0) ← (const byte) SRCA_LEN#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [31] *((const byte*) DTV_BLITTER_LEN_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [32] *((const byte*) DTV_BLITTER_ALU#0) ← (const byte) DTV_BLIT_ADD#0 [ ] ( main:2 [ ] ) always clobbers reg byte a @@ -1460,25 +1460,25 @@ Statement [7] *((const byte*) DTV_BLITTER_SRCA_MI#0) ← >(const byte[]) SRCA#0 Statement [8] *((const byte*) DTV_BLITTER_SRCA_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [9] *((const byte*) DTV_BLITTER_SRCA_MOD_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [10] *((const byte*) DTV_BLITTER_SRCA_MOD_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [11] *((const byte*) DTV_BLITTER_SRCA_LIN_LO#0) ← <(word/signed word/dword/signed dword) 256 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [12] *((const byte*) DTV_BLITTER_SRCA_LIN_HI#0) ← >(word/signed word/dword/signed dword) 256 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [13] *((const byte*) DTV_BLITTER_SRCA_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 16 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [11] *((const byte*) DTV_BLITTER_SRCA_LIN_LO#0) ← <(word/signed word/dword/signed dword) $100 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [12] *((const byte*) DTV_BLITTER_SRCA_LIN_HI#0) ← >(word/signed word/dword/signed dword) $100 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [13] *((const byte*) DTV_BLITTER_SRCA_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) $10 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [14] *((const byte*) DTV_BLITTER_SRCB_LO#0) ← <(const byte[]) SRCB#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [15] *((const byte*) DTV_BLITTER_SRCB_MI#0) ← >(const byte[]) SRCB#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [16] *((const byte*) DTV_BLITTER_SRCB_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [17] *((const byte*) DTV_BLITTER_SRCB_MOD_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [18] *((const byte*) DTV_BLITTER_SRCB_MOD_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [19] *((const byte*) DTV_BLITTER_SRCB_LIN_LO#0) ← <(word/signed word/dword/signed dword) 256 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [20] *((const byte*) DTV_BLITTER_SRCB_LIN_HI#0) ← >(word/signed word/dword/signed dword) 256 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [19] *((const byte*) DTV_BLITTER_SRCB_LIN_LO#0) ← <(word/signed word/dword/signed dword) $100 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [20] *((const byte*) DTV_BLITTER_SRCB_LIN_HI#0) ← >(word/signed word/dword/signed dword) $100 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [21] *((const byte*) DTV_BLITTER_SRCB_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [22] *((const byte*) DTV_BLITTER_DEST_LO#0) ← <(const byte*) SCREEN#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [23] *((const byte*) DTV_BLITTER_DEST_MI#0) ← >(const byte*) SCREEN#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [24] *((const byte*) DTV_BLITTER_DEST_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [25] *((const byte*) DTV_BLITTER_DEST_MOD_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [26] *((const byte*) DTV_BLITTER_DEST_MOD_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [27] *((const byte*) DTV_BLITTER_DEST_LIN_LO#0) ← <(word/signed word/dword/signed dword) 256 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [28] *((const byte*) DTV_BLITTER_DEST_LIN_HI#0) ← >(word/signed word/dword/signed dword) 256 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [29] *((const byte*) DTV_BLITTER_DEST_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 16 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [27] *((const byte*) DTV_BLITTER_DEST_LIN_LO#0) ← <(word/signed word/dword/signed dword) $100 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [28] *((const byte*) DTV_BLITTER_DEST_LIN_HI#0) ← >(word/signed word/dword/signed dword) $100 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [29] *((const byte*) DTV_BLITTER_DEST_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) $10 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [30] *((const byte*) DTV_BLITTER_LEN_LO#0) ← (const byte) SRCA_LEN#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [31] *((const byte*) DTV_BLITTER_LEN_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [32] *((const byte*) DTV_BLITTER_ALU#0) ← (const byte) DTV_BLIT_ADD#0 [ ] ( main:2 [ ] ) always clobbers reg byte a @@ -1612,13 +1612,13 @@ main: { //SEG16 [10] *((const byte*) DTV_BLITTER_SRCA_MOD_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_BLITTER_SRCA_MOD_HI - //SEG17 [11] *((const byte*) DTV_BLITTER_SRCA_LIN_LO#0) ← <(word/signed word/dword/signed dword) 256 -- _deref_pbuc1=vbuc2 + //SEG17 [11] *((const byte*) DTV_BLITTER_SRCA_LIN_LO#0) ← <(word/signed word/dword/signed dword) $100 -- _deref_pbuc1=vbuc2 lda #<$100 sta DTV_BLITTER_SRCA_LIN_LO - //SEG18 [12] *((const byte*) DTV_BLITTER_SRCA_LIN_HI#0) ← >(word/signed word/dword/signed dword) 256 -- _deref_pbuc1=vbuc2 + //SEG18 [12] *((const byte*) DTV_BLITTER_SRCA_LIN_HI#0) ← >(word/signed word/dword/signed dword) $100 -- _deref_pbuc1=vbuc2 lda #>$100 sta DTV_BLITTER_SRCA_LIN_HI - //SEG19 [13] *((const byte*) DTV_BLITTER_SRCA_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 16 -- _deref_pbuc1=vbuc2 + //SEG19 [13] *((const byte*) DTV_BLITTER_SRCA_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) $10 -- _deref_pbuc1=vbuc2 lda #$10 sta DTV_BLITTER_SRCA_STEP //SEG20 [14] *((const byte*) DTV_BLITTER_SRCB_LO#0) ← <(const byte[]) SRCB#0 -- _deref_pbuc1=vbuc2 @@ -1637,10 +1637,10 @@ main: { //SEG24 [18] *((const byte*) DTV_BLITTER_SRCB_MOD_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_BLITTER_SRCB_MOD_HI - //SEG25 [19] *((const byte*) DTV_BLITTER_SRCB_LIN_LO#0) ← <(word/signed word/dword/signed dword) 256 -- _deref_pbuc1=vbuc2 + //SEG25 [19] *((const byte*) DTV_BLITTER_SRCB_LIN_LO#0) ← <(word/signed word/dword/signed dword) $100 -- _deref_pbuc1=vbuc2 lda #<$100 sta DTV_BLITTER_SRCB_LIN_LO - //SEG26 [20] *((const byte*) DTV_BLITTER_SRCB_LIN_HI#0) ← >(word/signed word/dword/signed dword) 256 -- _deref_pbuc1=vbuc2 + //SEG26 [20] *((const byte*) DTV_BLITTER_SRCB_LIN_HI#0) ← >(word/signed word/dword/signed dword) $100 -- _deref_pbuc1=vbuc2 lda #>$100 sta DTV_BLITTER_SRCB_LIN_HI //SEG27 [21] *((const byte*) DTV_BLITTER_SRCB_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 @@ -1662,13 +1662,13 @@ main: { //SEG32 [26] *((const byte*) DTV_BLITTER_DEST_MOD_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_BLITTER_DEST_MOD_HI - //SEG33 [27] *((const byte*) DTV_BLITTER_DEST_LIN_LO#0) ← <(word/signed word/dword/signed dword) 256 -- _deref_pbuc1=vbuc2 + //SEG33 [27] *((const byte*) DTV_BLITTER_DEST_LIN_LO#0) ← <(word/signed word/dword/signed dword) $100 -- _deref_pbuc1=vbuc2 lda #<$100 sta DTV_BLITTER_DEST_LIN_LO - //SEG34 [28] *((const byte*) DTV_BLITTER_DEST_LIN_HI#0) ← >(word/signed word/dword/signed dword) 256 -- _deref_pbuc1=vbuc2 + //SEG34 [28] *((const byte*) DTV_BLITTER_DEST_LIN_HI#0) ← >(word/signed word/dword/signed dword) $100 -- _deref_pbuc1=vbuc2 lda #>$100 sta DTV_BLITTER_DEST_LIN_HI - //SEG35 [29] *((const byte*) DTV_BLITTER_DEST_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 16 -- _deref_pbuc1=vbuc2 + //SEG35 [29] *((const byte*) DTV_BLITTER_DEST_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) $10 -- _deref_pbuc1=vbuc2 lda #$10 sta DTV_BLITTER_DEST_STEP //SEG36 [30] *((const byte*) DTV_BLITTER_LEN_LO#0) ← (const byte) SRCA_LEN#0 -- _deref_pbuc1=vbuc2 @@ -1808,67 +1808,67 @@ FINAL SYMBOL TABLE (byte) DARK_GREY (byte) DTV_BADLINE_OFF (byte*) DTV_BLITTER_ALU -(const byte*) DTV_BLITTER_ALU#0 DTV_BLITTER_ALU = ((byte*))(word/dword/signed dword) 54078 +(const byte*) DTV_BLITTER_ALU#0 DTV_BLITTER_ALU = ((byte*))(word/dword/signed dword) $d33e (byte*) DTV_BLITTER_CONTROL -(const byte*) DTV_BLITTER_CONTROL#0 DTV_BLITTER_CONTROL = ((byte*))(word/dword/signed dword) 54074 +(const byte*) DTV_BLITTER_CONTROL#0 DTV_BLITTER_CONTROL = ((byte*))(word/dword/signed dword) $d33a (byte*) DTV_BLITTER_CONTROL2 -(const byte*) DTV_BLITTER_CONTROL2#0 DTV_BLITTER_CONTROL2 = ((byte*))(word/dword/signed dword) 54079 +(const byte*) DTV_BLITTER_CONTROL2#0 DTV_BLITTER_CONTROL2 = ((byte*))(word/dword/signed dword) $d33f (byte*) DTV_BLITTER_DEST_HI -(const byte*) DTV_BLITTER_DEST_HI#0 DTV_BLITTER_DEST_HI = ((byte*))(word/dword/signed dword) 54066 +(const byte*) DTV_BLITTER_DEST_HI#0 DTV_BLITTER_DEST_HI = ((byte*))(word/dword/signed dword) $d332 (byte*) DTV_BLITTER_DEST_LIN_HI -(const byte*) DTV_BLITTER_DEST_LIN_HI#0 DTV_BLITTER_DEST_LIN_HI = ((byte*))(word/dword/signed dword) 54070 +(const byte*) DTV_BLITTER_DEST_LIN_HI#0 DTV_BLITTER_DEST_LIN_HI = ((byte*))(word/dword/signed dword) $d336 (byte*) DTV_BLITTER_DEST_LIN_LO -(const byte*) DTV_BLITTER_DEST_LIN_LO#0 DTV_BLITTER_DEST_LIN_LO = ((byte*))(word/dword/signed dword) 54069 +(const byte*) DTV_BLITTER_DEST_LIN_LO#0 DTV_BLITTER_DEST_LIN_LO = ((byte*))(word/dword/signed dword) $d335 (byte*) DTV_BLITTER_DEST_LO -(const byte*) DTV_BLITTER_DEST_LO#0 DTV_BLITTER_DEST_LO = ((byte*))(word/dword/signed dword) 54064 +(const byte*) DTV_BLITTER_DEST_LO#0 DTV_BLITTER_DEST_LO = ((byte*))(word/dword/signed dword) $d330 (byte*) DTV_BLITTER_DEST_MI -(const byte*) DTV_BLITTER_DEST_MI#0 DTV_BLITTER_DEST_MI = ((byte*))(word/dword/signed dword) 54065 +(const byte*) DTV_BLITTER_DEST_MI#0 DTV_BLITTER_DEST_MI = ((byte*))(word/dword/signed dword) $d331 (byte*) DTV_BLITTER_DEST_MOD_HI -(const byte*) DTV_BLITTER_DEST_MOD_HI#0 DTV_BLITTER_DEST_MOD_HI = ((byte*))(word/dword/signed dword) 54068 +(const byte*) DTV_BLITTER_DEST_MOD_HI#0 DTV_BLITTER_DEST_MOD_HI = ((byte*))(word/dword/signed dword) $d334 (byte*) DTV_BLITTER_DEST_MOD_LO -(const byte*) DTV_BLITTER_DEST_MOD_LO#0 DTV_BLITTER_DEST_MOD_LO = ((byte*))(word/dword/signed dword) 54067 +(const byte*) DTV_BLITTER_DEST_MOD_LO#0 DTV_BLITTER_DEST_MOD_LO = ((byte*))(word/dword/signed dword) $d333 (byte*) DTV_BLITTER_DEST_STEP -(const byte*) DTV_BLITTER_DEST_STEP#0 DTV_BLITTER_DEST_STEP = ((byte*))(word/dword/signed dword) 54071 +(const byte*) DTV_BLITTER_DEST_STEP#0 DTV_BLITTER_DEST_STEP = ((byte*))(word/dword/signed dword) $d337 (byte*) DTV_BLITTER_LEN_HI -(const byte*) DTV_BLITTER_LEN_HI#0 DTV_BLITTER_LEN_HI = ((byte*))(word/dword/signed dword) 54073 +(const byte*) DTV_BLITTER_LEN_HI#0 DTV_BLITTER_LEN_HI = ((byte*))(word/dword/signed dword) $d339 (byte*) DTV_BLITTER_LEN_LO -(const byte*) DTV_BLITTER_LEN_LO#0 DTV_BLITTER_LEN_LO = ((byte*))(word/dword/signed dword) 54072 +(const byte*) DTV_BLITTER_LEN_LO#0 DTV_BLITTER_LEN_LO = ((byte*))(word/dword/signed dword) $d338 (byte*) DTV_BLITTER_SRCA_HI -(const byte*) DTV_BLITTER_SRCA_HI#0 DTV_BLITTER_SRCA_HI = ((byte*))(word/dword/signed dword) 54050 +(const byte*) DTV_BLITTER_SRCA_HI#0 DTV_BLITTER_SRCA_HI = ((byte*))(word/dword/signed dword) $d322 (byte*) DTV_BLITTER_SRCA_LIN_HI -(const byte*) DTV_BLITTER_SRCA_LIN_HI#0 DTV_BLITTER_SRCA_LIN_HI = ((byte*))(word/dword/signed dword) 54054 +(const byte*) DTV_BLITTER_SRCA_LIN_HI#0 DTV_BLITTER_SRCA_LIN_HI = ((byte*))(word/dword/signed dword) $d326 (byte*) DTV_BLITTER_SRCA_LIN_LO -(const byte*) DTV_BLITTER_SRCA_LIN_LO#0 DTV_BLITTER_SRCA_LIN_LO = ((byte*))(word/dword/signed dword) 54053 +(const byte*) DTV_BLITTER_SRCA_LIN_LO#0 DTV_BLITTER_SRCA_LIN_LO = ((byte*))(word/dword/signed dword) $d325 (byte*) DTV_BLITTER_SRCA_LO -(const byte*) DTV_BLITTER_SRCA_LO#0 DTV_BLITTER_SRCA_LO = ((byte*))(word/dword/signed dword) 54048 +(const byte*) DTV_BLITTER_SRCA_LO#0 DTV_BLITTER_SRCA_LO = ((byte*))(word/dword/signed dword) $d320 (byte*) DTV_BLITTER_SRCA_MI -(const byte*) DTV_BLITTER_SRCA_MI#0 DTV_BLITTER_SRCA_MI = ((byte*))(word/dword/signed dword) 54049 +(const byte*) DTV_BLITTER_SRCA_MI#0 DTV_BLITTER_SRCA_MI = ((byte*))(word/dword/signed dword) $d321 (byte*) DTV_BLITTER_SRCA_MOD_HI -(const byte*) DTV_BLITTER_SRCA_MOD_HI#0 DTV_BLITTER_SRCA_MOD_HI = ((byte*))(word/dword/signed dword) 54052 +(const byte*) DTV_BLITTER_SRCA_MOD_HI#0 DTV_BLITTER_SRCA_MOD_HI = ((byte*))(word/dword/signed dword) $d324 (byte*) DTV_BLITTER_SRCA_MOD_LO -(const byte*) DTV_BLITTER_SRCA_MOD_LO#0 DTV_BLITTER_SRCA_MOD_LO = ((byte*))(word/dword/signed dword) 54051 +(const byte*) DTV_BLITTER_SRCA_MOD_LO#0 DTV_BLITTER_SRCA_MOD_LO = ((byte*))(word/dword/signed dword) $d323 (byte*) DTV_BLITTER_SRCA_STEP -(const byte*) DTV_BLITTER_SRCA_STEP#0 DTV_BLITTER_SRCA_STEP = ((byte*))(word/dword/signed dword) 54055 +(const byte*) DTV_BLITTER_SRCA_STEP#0 DTV_BLITTER_SRCA_STEP = ((byte*))(word/dword/signed dword) $d327 (byte*) DTV_BLITTER_SRCB_HI -(const byte*) DTV_BLITTER_SRCB_HI#0 DTV_BLITTER_SRCB_HI = ((byte*))(word/dword/signed dword) 54058 +(const byte*) DTV_BLITTER_SRCB_HI#0 DTV_BLITTER_SRCB_HI = ((byte*))(word/dword/signed dword) $d32a (byte*) DTV_BLITTER_SRCB_LIN_HI -(const byte*) DTV_BLITTER_SRCB_LIN_HI#0 DTV_BLITTER_SRCB_LIN_HI = ((byte*))(word/dword/signed dword) 54062 +(const byte*) DTV_BLITTER_SRCB_LIN_HI#0 DTV_BLITTER_SRCB_LIN_HI = ((byte*))(word/dword/signed dword) $d32e (byte*) DTV_BLITTER_SRCB_LIN_LO -(const byte*) DTV_BLITTER_SRCB_LIN_LO#0 DTV_BLITTER_SRCB_LIN_LO = ((byte*))(word/dword/signed dword) 54061 +(const byte*) DTV_BLITTER_SRCB_LIN_LO#0 DTV_BLITTER_SRCB_LIN_LO = ((byte*))(word/dword/signed dword) $d32d (byte*) DTV_BLITTER_SRCB_LO -(const byte*) DTV_BLITTER_SRCB_LO#0 DTV_BLITTER_SRCB_LO = ((byte*))(word/dword/signed dword) 54056 +(const byte*) DTV_BLITTER_SRCB_LO#0 DTV_BLITTER_SRCB_LO = ((byte*))(word/dword/signed dword) $d328 (byte*) DTV_BLITTER_SRCB_MI -(const byte*) DTV_BLITTER_SRCB_MI#0 DTV_BLITTER_SRCB_MI = ((byte*))(word/dword/signed dword) 54057 +(const byte*) DTV_BLITTER_SRCB_MI#0 DTV_BLITTER_SRCB_MI = ((byte*))(word/dword/signed dword) $d329 (byte*) DTV_BLITTER_SRCB_MOD_HI -(const byte*) DTV_BLITTER_SRCB_MOD_HI#0 DTV_BLITTER_SRCB_MOD_HI = ((byte*))(word/dword/signed dword) 54060 +(const byte*) DTV_BLITTER_SRCB_MOD_HI#0 DTV_BLITTER_SRCB_MOD_HI = ((byte*))(word/dword/signed dword) $d32c (byte*) DTV_BLITTER_SRCB_MOD_LO -(const byte*) DTV_BLITTER_SRCB_MOD_LO#0 DTV_BLITTER_SRCB_MOD_LO = ((byte*))(word/dword/signed dword) 54059 +(const byte*) DTV_BLITTER_SRCB_MOD_LO#0 DTV_BLITTER_SRCB_MOD_LO = ((byte*))(word/dword/signed dword) $d32b (byte*) DTV_BLITTER_SRCB_STEP -(const byte*) DTV_BLITTER_SRCB_STEP#0 DTV_BLITTER_SRCB_STEP = ((byte*))(word/dword/signed dword) 54063 +(const byte*) DTV_BLITTER_SRCB_STEP#0 DTV_BLITTER_SRCB_STEP = ((byte*))(word/dword/signed dword) $d32f (byte*) DTV_BLITTER_TRANSPARANCY -(const byte*) DTV_BLITTER_TRANSPARANCY#0 DTV_BLITTER_TRANSPARANCY = ((byte*))(word/dword/signed dword) 54075 +(const byte*) DTV_BLITTER_TRANSPARANCY#0 DTV_BLITTER_TRANSPARANCY = ((byte*))(word/dword/signed dword) $d33b (byte) DTV_BLIT_ADD -(const byte) DTV_BLIT_ADD#0 DTV_BLIT_ADD = (byte/signed byte/word/signed word/dword/signed dword) 48 +(const byte) DTV_BLIT_ADD#0 DTV_BLIT_ADD = (byte/signed byte/word/signed word/dword/signed dword) $30 (byte) DTV_BLIT_AND (byte) DTV_BLIT_CIA_IRQ (byte) DTV_BLIT_CLEAR_IRQ @@ -1918,7 +1918,7 @@ FINAL SYMBOL TABLE (byte*) DTV_COLOR_BANK_LO (byte*) DTV_CONTROL (byte*) DTV_FEATURE -(const byte*) DTV_FEATURE#0 DTV_FEATURE = ((byte*))(word/dword/signed dword) 53311 +(const byte*) DTV_FEATURE#0 DTV_FEATURE = ((byte*))(word/dword/signed dword) $d03f (byte) DTV_FEATURE_DISABLE_TIL_RESET (byte) DTV_FEATURE_ENABLE (const byte) DTV_FEATURE_ENABLE#0 DTV_FEATURE_ENABLE = (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -1928,7 +1928,7 @@ FINAL SYMBOL TABLE (byte) DTV_LINEAR (byte) DTV_OVERSCAN (byte*) DTV_PALETTE -(byte[16]) DTV_PALETTE_DEFAULT +(byte[$10]) DTV_PALETTE_DEFAULT (byte*) DTV_PLANEA_MODULO_HI (byte*) DTV_PLANEA_MODULO_LO (byte*) DTV_PLANEA_START_HI @@ -1971,7 +1971,7 @@ FINAL SYMBOL TABLE (byte*) RASTER (byte) RED (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE (byte*) SPRITES_EXPAND_X @@ -1989,7 +1989,7 @@ FINAL SYMBOL TABLE (byte) SRCA_LEN (const byte) SRCA_LEN#0 SRCA_LEN = (byte/signed byte/word/signed word/dword/signed dword) 9 (byte[]) SRCB -(const byte[]) SRCB#0 SRCB = { (byte/word/signed word/dword/signed dword) 128 } +(const byte[]) SRCB#0 SRCB = { (byte/word/signed word/dword/signed dword) $80 } (byte) VIC_BMM (byte*) VIC_CONTROL (byte*) VIC_CONTROL2 @@ -2122,13 +2122,13 @@ main: { sta DTV_BLITTER_SRCA_MOD_LO //SEG16 [10] *((const byte*) DTV_BLITTER_SRCA_MOD_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 sta DTV_BLITTER_SRCA_MOD_HI - //SEG17 [11] *((const byte*) DTV_BLITTER_SRCA_LIN_LO#0) ← <(word/signed word/dword/signed dword) 256 -- _deref_pbuc1=vbuc2 + //SEG17 [11] *((const byte*) DTV_BLITTER_SRCA_LIN_LO#0) ← <(word/signed word/dword/signed dword) $100 -- _deref_pbuc1=vbuc2 lda #<$100 sta DTV_BLITTER_SRCA_LIN_LO - //SEG18 [12] *((const byte*) DTV_BLITTER_SRCA_LIN_HI#0) ← >(word/signed word/dword/signed dword) 256 -- _deref_pbuc1=vbuc2 + //SEG18 [12] *((const byte*) DTV_BLITTER_SRCA_LIN_HI#0) ← >(word/signed word/dword/signed dword) $100 -- _deref_pbuc1=vbuc2 lda #>$100 sta DTV_BLITTER_SRCA_LIN_HI - //SEG19 [13] *((const byte*) DTV_BLITTER_SRCA_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 16 -- _deref_pbuc1=vbuc2 + //SEG19 [13] *((const byte*) DTV_BLITTER_SRCA_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) $10 -- _deref_pbuc1=vbuc2 lda #$10 sta DTV_BLITTER_SRCA_STEP //SEG20 [14] *((const byte*) DTV_BLITTER_SRCB_LO#0) ← <(const byte[]) SRCB#0 -- _deref_pbuc1=vbuc2 @@ -2145,10 +2145,10 @@ main: { sta DTV_BLITTER_SRCB_MOD_LO //SEG24 [18] *((const byte*) DTV_BLITTER_SRCB_MOD_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 sta DTV_BLITTER_SRCB_MOD_HI - //SEG25 [19] *((const byte*) DTV_BLITTER_SRCB_LIN_LO#0) ← <(word/signed word/dword/signed dword) 256 -- _deref_pbuc1=vbuc2 + //SEG25 [19] *((const byte*) DTV_BLITTER_SRCB_LIN_LO#0) ← <(word/signed word/dword/signed dword) $100 -- _deref_pbuc1=vbuc2 lda #<$100 sta DTV_BLITTER_SRCB_LIN_LO - //SEG26 [20] *((const byte*) DTV_BLITTER_SRCB_LIN_HI#0) ← >(word/signed word/dword/signed dword) 256 -- _deref_pbuc1=vbuc2 + //SEG26 [20] *((const byte*) DTV_BLITTER_SRCB_LIN_HI#0) ← >(word/signed word/dword/signed dword) $100 -- _deref_pbuc1=vbuc2 lda #>$100 sta DTV_BLITTER_SRCB_LIN_HI //SEG27 [21] *((const byte*) DTV_BLITTER_SRCB_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 @@ -2168,13 +2168,13 @@ main: { sta DTV_BLITTER_DEST_MOD_LO //SEG32 [26] *((const byte*) DTV_BLITTER_DEST_MOD_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 sta DTV_BLITTER_DEST_MOD_HI - //SEG33 [27] *((const byte*) DTV_BLITTER_DEST_LIN_LO#0) ← <(word/signed word/dword/signed dword) 256 -- _deref_pbuc1=vbuc2 + //SEG33 [27] *((const byte*) DTV_BLITTER_DEST_LIN_LO#0) ← <(word/signed word/dword/signed dword) $100 -- _deref_pbuc1=vbuc2 lda #<$100 sta DTV_BLITTER_DEST_LIN_LO - //SEG34 [28] *((const byte*) DTV_BLITTER_DEST_LIN_HI#0) ← >(word/signed word/dword/signed dword) 256 -- _deref_pbuc1=vbuc2 + //SEG34 [28] *((const byte*) DTV_BLITTER_DEST_LIN_HI#0) ← >(word/signed word/dword/signed dword) $100 -- _deref_pbuc1=vbuc2 lda #>$100 sta DTV_BLITTER_DEST_LIN_HI - //SEG35 [29] *((const byte*) DTV_BLITTER_DEST_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 16 -- _deref_pbuc1=vbuc2 + //SEG35 [29] *((const byte*) DTV_BLITTER_DEST_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) $10 -- _deref_pbuc1=vbuc2 lda #$10 sta DTV_BLITTER_DEST_STEP //SEG36 [30] *((const byte*) DTV_BLITTER_LEN_LO#0) ← (const byte) SRCA_LEN#0 -- _deref_pbuc1=vbuc2 diff --git a/src/test/ref/c64dtv-blittermin.sym b/src/test/ref/c64dtv-blittermin.sym index 8e719e45e..b21724ae9 100644 --- a/src/test/ref/c64dtv-blittermin.sym +++ b/src/test/ref/c64dtv-blittermin.sym @@ -30,67 +30,67 @@ (byte) DARK_GREY (byte) DTV_BADLINE_OFF (byte*) DTV_BLITTER_ALU -(const byte*) DTV_BLITTER_ALU#0 DTV_BLITTER_ALU = ((byte*))(word/dword/signed dword) 54078 +(const byte*) DTV_BLITTER_ALU#0 DTV_BLITTER_ALU = ((byte*))(word/dword/signed dword) $d33e (byte*) DTV_BLITTER_CONTROL -(const byte*) DTV_BLITTER_CONTROL#0 DTV_BLITTER_CONTROL = ((byte*))(word/dword/signed dword) 54074 +(const byte*) DTV_BLITTER_CONTROL#0 DTV_BLITTER_CONTROL = ((byte*))(word/dword/signed dword) $d33a (byte*) DTV_BLITTER_CONTROL2 -(const byte*) DTV_BLITTER_CONTROL2#0 DTV_BLITTER_CONTROL2 = ((byte*))(word/dword/signed dword) 54079 +(const byte*) DTV_BLITTER_CONTROL2#0 DTV_BLITTER_CONTROL2 = ((byte*))(word/dword/signed dword) $d33f (byte*) DTV_BLITTER_DEST_HI -(const byte*) DTV_BLITTER_DEST_HI#0 DTV_BLITTER_DEST_HI = ((byte*))(word/dword/signed dword) 54066 +(const byte*) DTV_BLITTER_DEST_HI#0 DTV_BLITTER_DEST_HI = ((byte*))(word/dword/signed dword) $d332 (byte*) DTV_BLITTER_DEST_LIN_HI -(const byte*) DTV_BLITTER_DEST_LIN_HI#0 DTV_BLITTER_DEST_LIN_HI = ((byte*))(word/dword/signed dword) 54070 +(const byte*) DTV_BLITTER_DEST_LIN_HI#0 DTV_BLITTER_DEST_LIN_HI = ((byte*))(word/dword/signed dword) $d336 (byte*) DTV_BLITTER_DEST_LIN_LO -(const byte*) DTV_BLITTER_DEST_LIN_LO#0 DTV_BLITTER_DEST_LIN_LO = ((byte*))(word/dword/signed dword) 54069 +(const byte*) DTV_BLITTER_DEST_LIN_LO#0 DTV_BLITTER_DEST_LIN_LO = ((byte*))(word/dword/signed dword) $d335 (byte*) DTV_BLITTER_DEST_LO -(const byte*) DTV_BLITTER_DEST_LO#0 DTV_BLITTER_DEST_LO = ((byte*))(word/dword/signed dword) 54064 +(const byte*) DTV_BLITTER_DEST_LO#0 DTV_BLITTER_DEST_LO = ((byte*))(word/dword/signed dword) $d330 (byte*) DTV_BLITTER_DEST_MI -(const byte*) DTV_BLITTER_DEST_MI#0 DTV_BLITTER_DEST_MI = ((byte*))(word/dword/signed dword) 54065 +(const byte*) DTV_BLITTER_DEST_MI#0 DTV_BLITTER_DEST_MI = ((byte*))(word/dword/signed dword) $d331 (byte*) DTV_BLITTER_DEST_MOD_HI -(const byte*) DTV_BLITTER_DEST_MOD_HI#0 DTV_BLITTER_DEST_MOD_HI = ((byte*))(word/dword/signed dword) 54068 +(const byte*) DTV_BLITTER_DEST_MOD_HI#0 DTV_BLITTER_DEST_MOD_HI = ((byte*))(word/dword/signed dword) $d334 (byte*) DTV_BLITTER_DEST_MOD_LO -(const byte*) DTV_BLITTER_DEST_MOD_LO#0 DTV_BLITTER_DEST_MOD_LO = ((byte*))(word/dword/signed dword) 54067 +(const byte*) DTV_BLITTER_DEST_MOD_LO#0 DTV_BLITTER_DEST_MOD_LO = ((byte*))(word/dword/signed dword) $d333 (byte*) DTV_BLITTER_DEST_STEP -(const byte*) DTV_BLITTER_DEST_STEP#0 DTV_BLITTER_DEST_STEP = ((byte*))(word/dword/signed dword) 54071 +(const byte*) DTV_BLITTER_DEST_STEP#0 DTV_BLITTER_DEST_STEP = ((byte*))(word/dword/signed dword) $d337 (byte*) DTV_BLITTER_LEN_HI -(const byte*) DTV_BLITTER_LEN_HI#0 DTV_BLITTER_LEN_HI = ((byte*))(word/dword/signed dword) 54073 +(const byte*) DTV_BLITTER_LEN_HI#0 DTV_BLITTER_LEN_HI = ((byte*))(word/dword/signed dword) $d339 (byte*) DTV_BLITTER_LEN_LO -(const byte*) DTV_BLITTER_LEN_LO#0 DTV_BLITTER_LEN_LO = ((byte*))(word/dword/signed dword) 54072 +(const byte*) DTV_BLITTER_LEN_LO#0 DTV_BLITTER_LEN_LO = ((byte*))(word/dword/signed dword) $d338 (byte*) DTV_BLITTER_SRCA_HI -(const byte*) DTV_BLITTER_SRCA_HI#0 DTV_BLITTER_SRCA_HI = ((byte*))(word/dword/signed dword) 54050 +(const byte*) DTV_BLITTER_SRCA_HI#0 DTV_BLITTER_SRCA_HI = ((byte*))(word/dword/signed dword) $d322 (byte*) DTV_BLITTER_SRCA_LIN_HI -(const byte*) DTV_BLITTER_SRCA_LIN_HI#0 DTV_BLITTER_SRCA_LIN_HI = ((byte*))(word/dword/signed dword) 54054 +(const byte*) DTV_BLITTER_SRCA_LIN_HI#0 DTV_BLITTER_SRCA_LIN_HI = ((byte*))(word/dword/signed dword) $d326 (byte*) DTV_BLITTER_SRCA_LIN_LO -(const byte*) DTV_BLITTER_SRCA_LIN_LO#0 DTV_BLITTER_SRCA_LIN_LO = ((byte*))(word/dword/signed dword) 54053 +(const byte*) DTV_BLITTER_SRCA_LIN_LO#0 DTV_BLITTER_SRCA_LIN_LO = ((byte*))(word/dword/signed dword) $d325 (byte*) DTV_BLITTER_SRCA_LO -(const byte*) DTV_BLITTER_SRCA_LO#0 DTV_BLITTER_SRCA_LO = ((byte*))(word/dword/signed dword) 54048 +(const byte*) DTV_BLITTER_SRCA_LO#0 DTV_BLITTER_SRCA_LO = ((byte*))(word/dword/signed dword) $d320 (byte*) DTV_BLITTER_SRCA_MI -(const byte*) DTV_BLITTER_SRCA_MI#0 DTV_BLITTER_SRCA_MI = ((byte*))(word/dword/signed dword) 54049 +(const byte*) DTV_BLITTER_SRCA_MI#0 DTV_BLITTER_SRCA_MI = ((byte*))(word/dword/signed dword) $d321 (byte*) DTV_BLITTER_SRCA_MOD_HI -(const byte*) DTV_BLITTER_SRCA_MOD_HI#0 DTV_BLITTER_SRCA_MOD_HI = ((byte*))(word/dword/signed dword) 54052 +(const byte*) DTV_BLITTER_SRCA_MOD_HI#0 DTV_BLITTER_SRCA_MOD_HI = ((byte*))(word/dword/signed dword) $d324 (byte*) DTV_BLITTER_SRCA_MOD_LO -(const byte*) DTV_BLITTER_SRCA_MOD_LO#0 DTV_BLITTER_SRCA_MOD_LO = ((byte*))(word/dword/signed dword) 54051 +(const byte*) DTV_BLITTER_SRCA_MOD_LO#0 DTV_BLITTER_SRCA_MOD_LO = ((byte*))(word/dword/signed dword) $d323 (byte*) DTV_BLITTER_SRCA_STEP -(const byte*) DTV_BLITTER_SRCA_STEP#0 DTV_BLITTER_SRCA_STEP = ((byte*))(word/dword/signed dword) 54055 +(const byte*) DTV_BLITTER_SRCA_STEP#0 DTV_BLITTER_SRCA_STEP = ((byte*))(word/dword/signed dword) $d327 (byte*) DTV_BLITTER_SRCB_HI -(const byte*) DTV_BLITTER_SRCB_HI#0 DTV_BLITTER_SRCB_HI = ((byte*))(word/dword/signed dword) 54058 +(const byte*) DTV_BLITTER_SRCB_HI#0 DTV_BLITTER_SRCB_HI = ((byte*))(word/dword/signed dword) $d32a (byte*) DTV_BLITTER_SRCB_LIN_HI -(const byte*) DTV_BLITTER_SRCB_LIN_HI#0 DTV_BLITTER_SRCB_LIN_HI = ((byte*))(word/dword/signed dword) 54062 +(const byte*) DTV_BLITTER_SRCB_LIN_HI#0 DTV_BLITTER_SRCB_LIN_HI = ((byte*))(word/dword/signed dword) $d32e (byte*) DTV_BLITTER_SRCB_LIN_LO -(const byte*) DTV_BLITTER_SRCB_LIN_LO#0 DTV_BLITTER_SRCB_LIN_LO = ((byte*))(word/dword/signed dword) 54061 +(const byte*) DTV_BLITTER_SRCB_LIN_LO#0 DTV_BLITTER_SRCB_LIN_LO = ((byte*))(word/dword/signed dword) $d32d (byte*) DTV_BLITTER_SRCB_LO -(const byte*) DTV_BLITTER_SRCB_LO#0 DTV_BLITTER_SRCB_LO = ((byte*))(word/dword/signed dword) 54056 +(const byte*) DTV_BLITTER_SRCB_LO#0 DTV_BLITTER_SRCB_LO = ((byte*))(word/dword/signed dword) $d328 (byte*) DTV_BLITTER_SRCB_MI -(const byte*) DTV_BLITTER_SRCB_MI#0 DTV_BLITTER_SRCB_MI = ((byte*))(word/dword/signed dword) 54057 +(const byte*) DTV_BLITTER_SRCB_MI#0 DTV_BLITTER_SRCB_MI = ((byte*))(word/dword/signed dword) $d329 (byte*) DTV_BLITTER_SRCB_MOD_HI -(const byte*) DTV_BLITTER_SRCB_MOD_HI#0 DTV_BLITTER_SRCB_MOD_HI = ((byte*))(word/dword/signed dword) 54060 +(const byte*) DTV_BLITTER_SRCB_MOD_HI#0 DTV_BLITTER_SRCB_MOD_HI = ((byte*))(word/dword/signed dword) $d32c (byte*) DTV_BLITTER_SRCB_MOD_LO -(const byte*) DTV_BLITTER_SRCB_MOD_LO#0 DTV_BLITTER_SRCB_MOD_LO = ((byte*))(word/dword/signed dword) 54059 +(const byte*) DTV_BLITTER_SRCB_MOD_LO#0 DTV_BLITTER_SRCB_MOD_LO = ((byte*))(word/dword/signed dword) $d32b (byte*) DTV_BLITTER_SRCB_STEP -(const byte*) DTV_BLITTER_SRCB_STEP#0 DTV_BLITTER_SRCB_STEP = ((byte*))(word/dword/signed dword) 54063 +(const byte*) DTV_BLITTER_SRCB_STEP#0 DTV_BLITTER_SRCB_STEP = ((byte*))(word/dword/signed dword) $d32f (byte*) DTV_BLITTER_TRANSPARANCY -(const byte*) DTV_BLITTER_TRANSPARANCY#0 DTV_BLITTER_TRANSPARANCY = ((byte*))(word/dword/signed dword) 54075 +(const byte*) DTV_BLITTER_TRANSPARANCY#0 DTV_BLITTER_TRANSPARANCY = ((byte*))(word/dword/signed dword) $d33b (byte) DTV_BLIT_ADD -(const byte) DTV_BLIT_ADD#0 DTV_BLIT_ADD = (byte/signed byte/word/signed word/dword/signed dword) 48 +(const byte) DTV_BLIT_ADD#0 DTV_BLIT_ADD = (byte/signed byte/word/signed word/dword/signed dword) $30 (byte) DTV_BLIT_AND (byte) DTV_BLIT_CIA_IRQ (byte) DTV_BLIT_CLEAR_IRQ @@ -140,7 +140,7 @@ (byte*) DTV_COLOR_BANK_LO (byte*) DTV_CONTROL (byte*) DTV_FEATURE -(const byte*) DTV_FEATURE#0 DTV_FEATURE = ((byte*))(word/dword/signed dword) 53311 +(const byte*) DTV_FEATURE#0 DTV_FEATURE = ((byte*))(word/dword/signed dword) $d03f (byte) DTV_FEATURE_DISABLE_TIL_RESET (byte) DTV_FEATURE_ENABLE (const byte) DTV_FEATURE_ENABLE#0 DTV_FEATURE_ENABLE = (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -150,7 +150,7 @@ (byte) DTV_LINEAR (byte) DTV_OVERSCAN (byte*) DTV_PALETTE -(byte[16]) DTV_PALETTE_DEFAULT +(byte[$10]) DTV_PALETTE_DEFAULT (byte*) DTV_PLANEA_MODULO_HI (byte*) DTV_PLANEA_MODULO_LO (byte*) DTV_PLANEA_START_HI @@ -193,7 +193,7 @@ (byte*) RASTER (byte) RED (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE (byte*) SPRITES_EXPAND_X @@ -211,7 +211,7 @@ (byte) SRCA_LEN (const byte) SRCA_LEN#0 SRCA_LEN = (byte/signed byte/word/signed word/dword/signed dword) 9 (byte[]) SRCB -(const byte[]) SRCB#0 SRCB = { (byte/word/signed word/dword/signed dword) 128 } +(const byte[]) SRCB#0 SRCB = { (byte/word/signed word/dword/signed dword) $80 } (byte) VIC_BMM (byte*) VIC_CONTROL (byte*) VIC_CONTROL2 diff --git a/src/test/ref/c64dtv-color.cfg b/src/test/ref/c64dtv-color.cfg index 94696dce4..820e6a1e3 100644 --- a/src/test/ref/c64dtv-color.cfg +++ b/src/test/ref/c64dtv-color.cfg @@ -13,13 +13,13 @@ main: scope:[main] from @6 [6] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_BORDER_OFF#0|(const byte) DTV_BADLINE_OFF#0 to:main::@4 main::@4: scope:[main] from main main::@4 main::@8 - [7] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 64) goto main::@4 + [7] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $40) goto main::@4 to:main::@6 main::@6: scope:[main] from main::@4 [8] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@7 main::@7: scope:[main] from main::@6 main::@7 - [9] (byte) main::r#2 ← phi( main::@6/(byte/signed byte/word/signed word/dword/signed dword) 49 main::@7/(byte) main::r#1 ) + [9] (byte) main::r#2 ← phi( main::@6/(byte/signed byte/word/signed word/dword/signed dword) $31 main::@7/(byte) main::r#1 ) asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } [11] *((const byte*) BGCOL#0) ← ++ *((const byte*) BGCOL#0) [12] (byte) main::r#1 ← ++ (byte) main::r#2 @@ -27,8 +27,8 @@ main::@7: scope:[main] from main::@6 main::@7 to:main::@8 main::@8: scope:[main] from main::@7 main::@8 [14] (byte) main::c#2 ← phi( main::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@8/(byte) main::c#1 ) - [15] *((const byte*) DTV_PALETTE#0 + (byte) main::c#2) ← *((const byte[16]) main::palette#0 + (byte) main::c#2) - [16] *((const byte[16]) main::palette#0 + (byte) main::c#2) ← ++ *((const byte[16]) main::palette#0 + (byte) main::c#2) + [15] *((const byte*) DTV_PALETTE#0 + (byte) main::c#2) ← *((const byte[$10]) main::palette#0 + (byte) main::c#2) + [16] *((const byte[$10]) main::palette#0 + (byte) main::c#2) ← ++ *((const byte[$10]) main::palette#0 + (byte) main::c#2) [17] (byte) main::c#1 ← ++ (byte) main::c#2 - [18] if((byte) main::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto main::@8 + [18] if((byte) main::c#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto main::@8 to:main::@4 diff --git a/src/test/ref/c64dtv-color.log b/src/test/ref/c64dtv-color.log index 4af26684e..e2915226d 100644 --- a/src/test/ref/c64dtv-color.log +++ b/src/test/ref/c64dtv-color.log @@ -5,66 +5,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -75,88 +75,88 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@4 @4: scope:[] from @begin - (byte*) DTV_FEATURE#0 ← ((byte*)) (word/dword/signed dword) 53311 + (byte*) DTV_FEATURE#0 ← ((byte*)) (word/dword/signed dword) $d03f (byte) DTV_FEATURE_ENABLE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_FEATURE_DISABLE_TIL_RESET#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte*) DTV_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53308 + (byte*) DTV_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d03c (byte) DTV_LINEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BORDER_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_HIGHCOLOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DTV_OVERSCAN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte) DTV_COLORRAM_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte) DTV_BADLINE_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) DTV_CHUNKY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte*) DTV_PALETTE#0 ← ((byte*)) (word/dword/signed dword) 53760 - (byte[16]) DTV_PALETTE_DEFAULT#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 54, (byte/word/signed word/dword/signed dword) 190, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 219, (byte/word/signed word/dword/signed dword) 134, (byte/word/signed word/dword/signed dword) 255, (byte/signed byte/word/signed word/dword/signed dword) 41, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 59, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 154, (byte/signed byte/word/signed word/dword/signed dword) 10 } - (byte*) DTV_PLANEA_START_LO#0 ← ((byte*)) (word/dword/signed dword) 53306 - (byte*) DTV_PLANEA_START_MI#0 ← ((byte*)) (word/dword/signed dword) 53307 - (byte*) DTV_PLANEA_START_HI#0 ← ((byte*)) (word/dword/signed dword) 53317 - (byte*) DTV_PLANEA_STEP#0 ← ((byte*)) (word/dword/signed dword) 53318 - (byte*) DTV_PLANEA_MODULO_LO#0 ← ((byte*)) (word/dword/signed dword) 53304 - (byte*) DTV_PLANEA_MODULO_HI#0 ← ((byte*)) (word/dword/signed dword) 53305 - (byte*) DTV_PLANEB_START_LO#0 ← ((byte*)) (word/dword/signed dword) 53321 - (byte*) DTV_PLANEB_START_MI#0 ← ((byte*)) (word/dword/signed dword) 53322 - (byte*) DTV_PLANEB_START_HI#0 ← ((byte*)) (word/dword/signed dword) 53323 - (byte*) DTV_PLANEB_STEP#0 ← ((byte*)) (word/dword/signed dword) 53324 - (byte*) DTV_PLANEB_MODULO_LO#0 ← ((byte*)) (word/dword/signed dword) 53319 - (byte*) DTV_PLANEB_MODULO_HI#0 ← ((byte*)) (word/dword/signed dword) 53320 - (byte*) DTV_SPRITE_BANK#0 ← ((byte*)) (word/dword/signed dword) 53325 - (byte*) DTV_COLOR_BANK_LO#0 ← ((byte*)) (word/dword/signed dword) 53302 - (byte*) DTV_COLOR_BANK_HI#0 ← ((byte*)) (word/dword/signed dword) 53303 - (dword) DTV_COLOR_BANK_DEFAULT#0 ← (dword/signed dword) 120832 - (byte*) DTV_GRAPHICS_VIC_BANK#0 ← ((byte*)) (word/dword/signed dword) 53309 - (byte*) DTV_GRAPHICS_HICOL_BANK#0 ← ((byte*)) (word/dword/signed dword) 53310 + (byte) DTV_COLORRAM_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte) DTV_BADLINE_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) DTV_CHUNKY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte*) DTV_PALETTE#0 ← ((byte*)) (word/dword/signed dword) $d200 + (byte[$10]) DTV_PALETTE_DEFAULT#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $36, (byte/word/signed word/dword/signed dword) $be, (byte/signed byte/word/signed word/dword/signed dword) $58, (byte/word/signed word/dword/signed dword) $db, (byte/word/signed word/dword/signed dword) $86, (byte/word/signed word/dword/signed dword) $ff, (byte/signed byte/word/signed word/dword/signed dword) $29, (byte/signed byte/word/signed word/dword/signed dword) $26, (byte/signed byte/word/signed word/dword/signed dword) $3b, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $9a, (byte/signed byte/word/signed word/dword/signed dword) $a } + (byte*) DTV_PLANEA_START_LO#0 ← ((byte*)) (word/dword/signed dword) $d03a + (byte*) DTV_PLANEA_START_MI#0 ← ((byte*)) (word/dword/signed dword) $d03b + (byte*) DTV_PLANEA_START_HI#0 ← ((byte*)) (word/dword/signed dword) $d045 + (byte*) DTV_PLANEA_STEP#0 ← ((byte*)) (word/dword/signed dword) $d046 + (byte*) DTV_PLANEA_MODULO_LO#0 ← ((byte*)) (word/dword/signed dword) $d038 + (byte*) DTV_PLANEA_MODULO_HI#0 ← ((byte*)) (word/dword/signed dword) $d039 + (byte*) DTV_PLANEB_START_LO#0 ← ((byte*)) (word/dword/signed dword) $d049 + (byte*) DTV_PLANEB_START_MI#0 ← ((byte*)) (word/dword/signed dword) $d04a + (byte*) DTV_PLANEB_START_HI#0 ← ((byte*)) (word/dword/signed dword) $d04b + (byte*) DTV_PLANEB_STEP#0 ← ((byte*)) (word/dword/signed dword) $d04c + (byte*) DTV_PLANEB_MODULO_LO#0 ← ((byte*)) (word/dword/signed dword) $d047 + (byte*) DTV_PLANEB_MODULO_HI#0 ← ((byte*)) (word/dword/signed dword) $d048 + (byte*) DTV_SPRITE_BANK#0 ← ((byte*)) (word/dword/signed dword) $d04d + (byte*) DTV_COLOR_BANK_LO#0 ← ((byte*)) (word/dword/signed dword) $d036 + (byte*) DTV_COLOR_BANK_HI#0 ← ((byte*)) (word/dword/signed dword) $d037 + (dword) DTV_COLOR_BANK_DEFAULT#0 ← (dword/signed dword) $1d800 + (byte*) DTV_GRAPHICS_VIC_BANK#0 ← ((byte*)) (word/dword/signed dword) $d03d + (byte*) DTV_GRAPHICS_HICOL_BANK#0 ← ((byte*)) (word/dword/signed dword) $d03e to:@5 @5: scope:[] from @4 - (byte*) DTV_BLITTER_SRCA_LO#0 ← ((byte*)) (word/dword/signed dword) 54048 - (byte*) DTV_BLITTER_SRCA_MI#0 ← ((byte*)) (word/dword/signed dword) 54049 - (byte*) DTV_BLITTER_SRCA_HI#0 ← ((byte*)) (word/dword/signed dword) 54050 - (byte*) DTV_BLITTER_SRCA_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) 54051 - (byte*) DTV_BLITTER_SRCA_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) 54052 - (byte*) DTV_BLITTER_SRCA_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) 54053 - (byte*) DTV_BLITTER_SRCA_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) 54054 - (byte*) DTV_BLITTER_SRCA_STEP#0 ← ((byte*)) (word/dword/signed dword) 54055 - (byte*) DTV_BLITTER_SRCB_LO#0 ← ((byte*)) (word/dword/signed dword) 54056 - (byte*) DTV_BLITTER_SRCB_MI#0 ← ((byte*)) (word/dword/signed dword) 54057 - (byte*) DTV_BLITTER_SRCB_HI#0 ← ((byte*)) (word/dword/signed dword) 54058 - (byte*) DTV_BLITTER_SRCB_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) 54059 - (byte*) DTV_BLITTER_SRCB_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) 54060 - (byte*) DTV_BLITTER_SRCB_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) 54061 - (byte*) DTV_BLITTER_SRCB_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) 54062 - (byte*) DTV_BLITTER_SRCB_STEP#0 ← ((byte*)) (word/dword/signed dword) 54063 - (byte*) DTV_BLITTER_DEST_LO#0 ← ((byte*)) (word/dword/signed dword) 54064 - (byte*) DTV_BLITTER_DEST_MI#0 ← ((byte*)) (word/dword/signed dword) 54065 - (byte*) DTV_BLITTER_DEST_HI#0 ← ((byte*)) (word/dword/signed dword) 54066 - (byte*) DTV_BLITTER_DEST_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) 54067 - (byte*) DTV_BLITTER_DEST_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) 54068 - (byte*) DTV_BLITTER_DEST_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) 54069 - (byte*) DTV_BLITTER_DEST_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) 54070 - (byte*) DTV_BLITTER_DEST_STEP#0 ← ((byte*)) (word/dword/signed dword) 54071 - (byte*) DTV_BLITTER_LEN_LO#0 ← ((byte*)) (word/dword/signed dword) 54072 - (byte*) DTV_BLITTER_LEN_HI#0 ← ((byte*)) (word/dword/signed dword) 54073 - (byte*) DTV_BLITTER_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 54074 + (byte*) DTV_BLITTER_SRCA_LO#0 ← ((byte*)) (word/dword/signed dword) $d320 + (byte*) DTV_BLITTER_SRCA_MI#0 ← ((byte*)) (word/dword/signed dword) $d321 + (byte*) DTV_BLITTER_SRCA_HI#0 ← ((byte*)) (word/dword/signed dword) $d322 + (byte*) DTV_BLITTER_SRCA_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) $d323 + (byte*) DTV_BLITTER_SRCA_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) $d324 + (byte*) DTV_BLITTER_SRCA_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) $d325 + (byte*) DTV_BLITTER_SRCA_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) $d326 + (byte*) DTV_BLITTER_SRCA_STEP#0 ← ((byte*)) (word/dword/signed dword) $d327 + (byte*) DTV_BLITTER_SRCB_LO#0 ← ((byte*)) (word/dword/signed dword) $d328 + (byte*) DTV_BLITTER_SRCB_MI#0 ← ((byte*)) (word/dword/signed dword) $d329 + (byte*) DTV_BLITTER_SRCB_HI#0 ← ((byte*)) (word/dword/signed dword) $d32a + (byte*) DTV_BLITTER_SRCB_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) $d32b + (byte*) DTV_BLITTER_SRCB_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) $d32c + (byte*) DTV_BLITTER_SRCB_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) $d32d + (byte*) DTV_BLITTER_SRCB_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) $d32e + (byte*) DTV_BLITTER_SRCB_STEP#0 ← ((byte*)) (word/dword/signed dword) $d32f + (byte*) DTV_BLITTER_DEST_LO#0 ← ((byte*)) (word/dword/signed dword) $d330 + (byte*) DTV_BLITTER_DEST_MI#0 ← ((byte*)) (word/dword/signed dword) $d331 + (byte*) DTV_BLITTER_DEST_HI#0 ← ((byte*)) (word/dword/signed dword) $d332 + (byte*) DTV_BLITTER_DEST_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) $d333 + (byte*) DTV_BLITTER_DEST_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) $d334 + (byte*) DTV_BLITTER_DEST_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) $d335 + (byte*) DTV_BLITTER_DEST_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) $d336 + (byte*) DTV_BLITTER_DEST_STEP#0 ← ((byte*)) (word/dword/signed dword) $d337 + (byte*) DTV_BLITTER_LEN_LO#0 ← ((byte*)) (word/dword/signed dword) $d338 + (byte*) DTV_BLITTER_LEN_HI#0 ← ((byte*)) (word/dword/signed dword) $d339 + (byte*) DTV_BLITTER_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d33a (byte) DTV_BLIT_FORCE_START#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_SRCA_FWD#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_BLIT_SRCB_FWD#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DTV_BLIT_DEST_FWD#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte) DTV_BLIT_VIC_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte) DTV_BLIT_CIA_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) DTV_BLIT_VBLANK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) DTV_BLIT_IRQ_EN#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte*) DTV_BLITTER_TRANSPARANCY#0 ← ((byte*)) (word/dword/signed dword) 54075 + (byte) DTV_BLIT_VIC_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte) DTV_BLIT_CIA_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) DTV_BLIT_VBLANK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) DTV_BLIT_IRQ_EN#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte*) DTV_BLITTER_TRANSPARANCY#0 ← ((byte*)) (word/dword/signed dword) $d33b (byte) DTV_BLIT_DISABLE_B#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_WRITE_TRANSPARENT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_BLIT_WRITE_NONTRANSPARENT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DTV_BLIT_TRANSPARANCY_NONE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte*) DTV_BLITTER_ALU#0 ← ((byte*)) (word/dword/signed dword) 54078 + (byte*) DTV_BLITTER_ALU#0 ← ((byte*)) (word/dword/signed dword) $d33e (byte) DTV_BLIT_SHIFT0#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) DTV_BLIT_SHIFT1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_SHIFT2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -167,13 +167,13 @@ CONTROL FLOW GRAPH SSA (byte) DTV_BLIT_SHIFT7#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) DTV_BLIT_AND#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) DTV_BLIT_NAND#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte) DTV_BLIT_NOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte) DTV_BLIT_OR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 24 - (byte) DTV_BLIT_XOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) DTV_BLIT_XNOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte) DTV_BLIT_ADD#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) DTV_BLIT_SUB#0 ← (byte/signed byte/word/signed word/dword/signed dword) 56 - (byte*) DTV_BLITTER_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 54079 + (byte) DTV_BLIT_NOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte) DTV_BLIT_OR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $18 + (byte) DTV_BLIT_XOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) DTV_BLIT_XNOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) DTV_BLIT_ADD#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) DTV_BLIT_SUB#0 ← (byte/signed byte/word/signed word/dword/signed dword) $38 + (byte*) DTV_BLITTER_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d33f (byte) DTV_BLIT_CLEAR_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_SRCA_CONT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_BLIT_SRCB_CONT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 @@ -187,7 +187,7 @@ main: scope:[main] from @6 (byte~) main::$0 ← (byte) DTV_HIGHCOLOR#0 | (byte) DTV_BORDER_OFF#0 (byte~) main::$1 ← (byte~) main::$0 | (byte) DTV_BADLINE_OFF#0 *((byte*) DTV_CONTROL#0) ← (byte~) main::$1 - (byte[16]) main::palette#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 14, (byte/signed byte/word/signed word/dword/signed dword) 15 } + (byte[$10]) main::palette#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $e, (byte/signed byte/word/signed word/dword/signed dword) $f } to:main::@1 main::@1: scope:[main] from main main::@8 if(true) goto main::@2 @@ -195,21 +195,21 @@ main::@1: scope:[main] from main main::@8 main::@2: scope:[main] from main::@1 to:main::@4 main::@4: scope:[main] from main::@2 main::@5 - (bool~) main::$2 ← *((byte*) RASTER#0) != (byte/signed byte/word/signed word/dword/signed dword) 64 + (bool~) main::$2 ← *((byte*) RASTER#0) != (byte/signed byte/word/signed word/dword/signed dword) $40 if((bool~) main::$2) goto main::@5 to:main::@6 main::@5: scope:[main] from main::@4 to:main::@4 main::@6: scope:[main] from main::@4 *((byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte) main::r#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 + (byte) main::r#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 to:main::@7 main::@7: scope:[main] from main::@6 main::@7 (byte) main::r#2 ← phi( main::@6/(byte) main::r#0 main::@7/(byte) main::r#1 ) asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } *((byte*) BGCOL#0) ← ++ *((byte*) BGCOL#0) - (byte) main::r#1 ← (byte) main::r#2 + rangenext(49,255) - (bool~) main::$3 ← (byte) main::r#1 != rangelast(49,255) + (byte) main::r#1 ← (byte) main::r#2 + rangenext($31,$ff) + (bool~) main::$3 ← (byte) main::r#1 != rangelast($31,$ff) if((bool~) main::$3) goto main::@7 to:main::@14 main::@14: scope:[main] from main::@7 @@ -217,10 +217,10 @@ main::@14: scope:[main] from main::@7 to:main::@8 main::@8: scope:[main] from main::@14 main::@8 (byte) main::c#2 ← phi( main::@14/(byte) main::c#0 main::@8/(byte) main::c#1 ) - *((byte*) DTV_PALETTE#0 + (byte) main::c#2) ← *((byte[16]) main::palette#0 + (byte) main::c#2) - *((byte[16]) main::palette#0 + (byte) main::c#2) ← ++ *((byte[16]) main::palette#0 + (byte) main::c#2) - (byte) main::c#1 ← (byte) main::c#2 + rangenext(0,15) - (bool~) main::$4 ← (byte) main::c#1 != rangelast(0,15) + *((byte*) DTV_PALETTE#0 + (byte) main::c#2) ← *((byte[$10]) main::palette#0 + (byte) main::c#2) + *((byte[$10]) main::palette#0 + (byte) main::c#2) ← ++ *((byte[$10]) main::palette#0 + (byte) main::c#2) + (byte) main::c#1 ← (byte) main::c#2 + rangenext(0,$f) + (bool~) main::$4 ← (byte) main::c#1 != rangelast(0,$f) if((bool~) main::$4) goto main::@8 to:main::@1 main::@return: scope:[main] from main::@1 @@ -456,8 +456,8 @@ SYMBOL TABLE SSA (byte) DTV_OVERSCAN#0 (byte*) DTV_PALETTE (byte*) DTV_PALETTE#0 -(byte[16]) DTV_PALETTE_DEFAULT -(byte[16]) DTV_PALETTE_DEFAULT#0 +(byte[$10]) DTV_PALETTE_DEFAULT +(byte[$10]) DTV_PALETTE_DEFAULT#0 (byte*) DTV_PLANEA_MODULO_HI (byte*) DTV_PLANEA_MODULO_HI#0 (byte*) DTV_PLANEA_MODULO_LO @@ -607,8 +607,8 @@ SYMBOL TABLE SSA (byte) main::c#0 (byte) main::c#1 (byte) main::c#2 -(byte[16]) main::palette -(byte[16]) main::palette#0 +(byte[$10]) main::palette +(byte[$10]) main::palette#0 (byte) main::r (byte) main::r#0 (byte) main::r#1 @@ -618,73 +618,73 @@ Culled Empty Block (label) main::@2 Culled Empty Block (label) main::@5 Culled Empty Block (label) @7 Successful SSA optimization Pass2CullEmptyBlocks -Simple Condition (bool~) main::$2 [182] if(*((byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 64) goto main::@4 -Simple Condition (bool~) main::$3 [190] if((byte) main::r#1!=rangelast(49,255)) goto main::@7 -Simple Condition (bool~) main::$4 [197] if((byte) main::c#1!=rangelast(0,15)) goto main::@8 +Simple Condition (bool~) main::$2 [182] if(*((byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $40) goto main::@4 +Simple Condition (bool~) main::$3 [190] if((byte) main::r#1!=rangelast($31,$ff)) goto main::@7 +Simple Condition (bool~) main::$4 [197] if((byte) main::c#1!=rangelast(0,$f)) goto main::@8 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -695,84 +695,84 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 -Constant (const byte*) DTV_FEATURE#0 = ((byte*))53311 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f +Constant (const byte*) DTV_FEATURE#0 = ((byte*))$d03f Constant (const byte) DTV_FEATURE_ENABLE#0 = 1 Constant (const byte) DTV_FEATURE_DISABLE_TIL_RESET#0 = 2 -Constant (const byte*) DTV_CONTROL#0 = ((byte*))53308 +Constant (const byte*) DTV_CONTROL#0 = ((byte*))$d03c Constant (const byte) DTV_LINEAR#0 = 1 Constant (const byte) DTV_BORDER_OFF#0 = 2 Constant (const byte) DTV_HIGHCOLOR#0 = 4 Constant (const byte) DTV_OVERSCAN#0 = 8 -Constant (const byte) DTV_COLORRAM_OFF#0 = 16 -Constant (const byte) DTV_BADLINE_OFF#0 = 32 -Constant (const byte) DTV_CHUNKY#0 = 64 -Constant (const byte*) DTV_PALETTE#0 = ((byte*))53760 -Constant (const byte[16]) DTV_PALETTE_DEFAULT#0 = { 0, 15, 54, 190, 88, 219, 134, 255, 41, 38, 59, 5, 7, 223, 154, 10 } -Constant (const byte*) DTV_PLANEA_START_LO#0 = ((byte*))53306 -Constant (const byte*) DTV_PLANEA_START_MI#0 = ((byte*))53307 -Constant (const byte*) DTV_PLANEA_START_HI#0 = ((byte*))53317 -Constant (const byte*) DTV_PLANEA_STEP#0 = ((byte*))53318 -Constant (const byte*) DTV_PLANEA_MODULO_LO#0 = ((byte*))53304 -Constant (const byte*) DTV_PLANEA_MODULO_HI#0 = ((byte*))53305 -Constant (const byte*) DTV_PLANEB_START_LO#0 = ((byte*))53321 -Constant (const byte*) DTV_PLANEB_START_MI#0 = ((byte*))53322 -Constant (const byte*) DTV_PLANEB_START_HI#0 = ((byte*))53323 -Constant (const byte*) DTV_PLANEB_STEP#0 = ((byte*))53324 -Constant (const byte*) DTV_PLANEB_MODULO_LO#0 = ((byte*))53319 -Constant (const byte*) DTV_PLANEB_MODULO_HI#0 = ((byte*))53320 -Constant (const byte*) DTV_SPRITE_BANK#0 = ((byte*))53325 -Constant (const byte*) DTV_COLOR_BANK_LO#0 = ((byte*))53302 -Constant (const byte*) DTV_COLOR_BANK_HI#0 = ((byte*))53303 -Constant (const dword) DTV_COLOR_BANK_DEFAULT#0 = 120832 -Constant (const byte*) DTV_GRAPHICS_VIC_BANK#0 = ((byte*))53309 -Constant (const byte*) DTV_GRAPHICS_HICOL_BANK#0 = ((byte*))53310 -Constant (const byte*) DTV_BLITTER_SRCA_LO#0 = ((byte*))54048 -Constant (const byte*) DTV_BLITTER_SRCA_MI#0 = ((byte*))54049 -Constant (const byte*) DTV_BLITTER_SRCA_HI#0 = ((byte*))54050 -Constant (const byte*) DTV_BLITTER_SRCA_MOD_LO#0 = ((byte*))54051 -Constant (const byte*) DTV_BLITTER_SRCA_MOD_HI#0 = ((byte*))54052 -Constant (const byte*) DTV_BLITTER_SRCA_LIN_LO#0 = ((byte*))54053 -Constant (const byte*) DTV_BLITTER_SRCA_LIN_HI#0 = ((byte*))54054 -Constant (const byte*) DTV_BLITTER_SRCA_STEP#0 = ((byte*))54055 -Constant (const byte*) DTV_BLITTER_SRCB_LO#0 = ((byte*))54056 -Constant (const byte*) DTV_BLITTER_SRCB_MI#0 = ((byte*))54057 -Constant (const byte*) DTV_BLITTER_SRCB_HI#0 = ((byte*))54058 -Constant (const byte*) DTV_BLITTER_SRCB_MOD_LO#0 = ((byte*))54059 -Constant (const byte*) DTV_BLITTER_SRCB_MOD_HI#0 = ((byte*))54060 -Constant (const byte*) DTV_BLITTER_SRCB_LIN_LO#0 = ((byte*))54061 -Constant (const byte*) DTV_BLITTER_SRCB_LIN_HI#0 = ((byte*))54062 -Constant (const byte*) DTV_BLITTER_SRCB_STEP#0 = ((byte*))54063 -Constant (const byte*) DTV_BLITTER_DEST_LO#0 = ((byte*))54064 -Constant (const byte*) DTV_BLITTER_DEST_MI#0 = ((byte*))54065 -Constant (const byte*) DTV_BLITTER_DEST_HI#0 = ((byte*))54066 -Constant (const byte*) DTV_BLITTER_DEST_MOD_LO#0 = ((byte*))54067 -Constant (const byte*) DTV_BLITTER_DEST_MOD_HI#0 = ((byte*))54068 -Constant (const byte*) DTV_BLITTER_DEST_LIN_LO#0 = ((byte*))54069 -Constant (const byte*) DTV_BLITTER_DEST_LIN_HI#0 = ((byte*))54070 -Constant (const byte*) DTV_BLITTER_DEST_STEP#0 = ((byte*))54071 -Constant (const byte*) DTV_BLITTER_LEN_LO#0 = ((byte*))54072 -Constant (const byte*) DTV_BLITTER_LEN_HI#0 = ((byte*))54073 -Constant (const byte*) DTV_BLITTER_CONTROL#0 = ((byte*))54074 +Constant (const byte) DTV_COLORRAM_OFF#0 = $10 +Constant (const byte) DTV_BADLINE_OFF#0 = $20 +Constant (const byte) DTV_CHUNKY#0 = $40 +Constant (const byte*) DTV_PALETTE#0 = ((byte*))$d200 +Constant (const byte[$10]) DTV_PALETTE_DEFAULT#0 = { 0, $f, $36, $be, $58, $db, $86, $ff, $29, $26, $3b, 5, 7, $df, $9a, $a } +Constant (const byte*) DTV_PLANEA_START_LO#0 = ((byte*))$d03a +Constant (const byte*) DTV_PLANEA_START_MI#0 = ((byte*))$d03b +Constant (const byte*) DTV_PLANEA_START_HI#0 = ((byte*))$d045 +Constant (const byte*) DTV_PLANEA_STEP#0 = ((byte*))$d046 +Constant (const byte*) DTV_PLANEA_MODULO_LO#0 = ((byte*))$d038 +Constant (const byte*) DTV_PLANEA_MODULO_HI#0 = ((byte*))$d039 +Constant (const byte*) DTV_PLANEB_START_LO#0 = ((byte*))$d049 +Constant (const byte*) DTV_PLANEB_START_MI#0 = ((byte*))$d04a +Constant (const byte*) DTV_PLANEB_START_HI#0 = ((byte*))$d04b +Constant (const byte*) DTV_PLANEB_STEP#0 = ((byte*))$d04c +Constant (const byte*) DTV_PLANEB_MODULO_LO#0 = ((byte*))$d047 +Constant (const byte*) DTV_PLANEB_MODULO_HI#0 = ((byte*))$d048 +Constant (const byte*) DTV_SPRITE_BANK#0 = ((byte*))$d04d +Constant (const byte*) DTV_COLOR_BANK_LO#0 = ((byte*))$d036 +Constant (const byte*) DTV_COLOR_BANK_HI#0 = ((byte*))$d037 +Constant (const dword) DTV_COLOR_BANK_DEFAULT#0 = $1d800 +Constant (const byte*) DTV_GRAPHICS_VIC_BANK#0 = ((byte*))$d03d +Constant (const byte*) DTV_GRAPHICS_HICOL_BANK#0 = ((byte*))$d03e +Constant (const byte*) DTV_BLITTER_SRCA_LO#0 = ((byte*))$d320 +Constant (const byte*) DTV_BLITTER_SRCA_MI#0 = ((byte*))$d321 +Constant (const byte*) DTV_BLITTER_SRCA_HI#0 = ((byte*))$d322 +Constant (const byte*) DTV_BLITTER_SRCA_MOD_LO#0 = ((byte*))$d323 +Constant (const byte*) DTV_BLITTER_SRCA_MOD_HI#0 = ((byte*))$d324 +Constant (const byte*) DTV_BLITTER_SRCA_LIN_LO#0 = ((byte*))$d325 +Constant (const byte*) DTV_BLITTER_SRCA_LIN_HI#0 = ((byte*))$d326 +Constant (const byte*) DTV_BLITTER_SRCA_STEP#0 = ((byte*))$d327 +Constant (const byte*) DTV_BLITTER_SRCB_LO#0 = ((byte*))$d328 +Constant (const byte*) DTV_BLITTER_SRCB_MI#0 = ((byte*))$d329 +Constant (const byte*) DTV_BLITTER_SRCB_HI#0 = ((byte*))$d32a +Constant (const byte*) DTV_BLITTER_SRCB_MOD_LO#0 = ((byte*))$d32b +Constant (const byte*) DTV_BLITTER_SRCB_MOD_HI#0 = ((byte*))$d32c +Constant (const byte*) DTV_BLITTER_SRCB_LIN_LO#0 = ((byte*))$d32d +Constant (const byte*) DTV_BLITTER_SRCB_LIN_HI#0 = ((byte*))$d32e +Constant (const byte*) DTV_BLITTER_SRCB_STEP#0 = ((byte*))$d32f +Constant (const byte*) DTV_BLITTER_DEST_LO#0 = ((byte*))$d330 +Constant (const byte*) DTV_BLITTER_DEST_MI#0 = ((byte*))$d331 +Constant (const byte*) DTV_BLITTER_DEST_HI#0 = ((byte*))$d332 +Constant (const byte*) DTV_BLITTER_DEST_MOD_LO#0 = ((byte*))$d333 +Constant (const byte*) DTV_BLITTER_DEST_MOD_HI#0 = ((byte*))$d334 +Constant (const byte*) DTV_BLITTER_DEST_LIN_LO#0 = ((byte*))$d335 +Constant (const byte*) DTV_BLITTER_DEST_LIN_HI#0 = ((byte*))$d336 +Constant (const byte*) DTV_BLITTER_DEST_STEP#0 = ((byte*))$d337 +Constant (const byte*) DTV_BLITTER_LEN_LO#0 = ((byte*))$d338 +Constant (const byte*) DTV_BLITTER_LEN_HI#0 = ((byte*))$d339 +Constant (const byte*) DTV_BLITTER_CONTROL#0 = ((byte*))$d33a Constant (const byte) DTV_BLIT_FORCE_START#0 = 1 Constant (const byte) DTV_BLIT_SRCA_FWD#0 = 2 Constant (const byte) DTV_BLIT_SRCB_FWD#0 = 4 Constant (const byte) DTV_BLIT_DEST_FWD#0 = 8 -Constant (const byte) DTV_BLIT_VIC_IRQ#0 = 16 -Constant (const byte) DTV_BLIT_CIA_IRQ#0 = 32 -Constant (const byte) DTV_BLIT_VBLANK#0 = 64 -Constant (const byte) DTV_BLIT_IRQ_EN#0 = 128 -Constant (const byte*) DTV_BLITTER_TRANSPARANCY#0 = ((byte*))54075 +Constant (const byte) DTV_BLIT_VIC_IRQ#0 = $10 +Constant (const byte) DTV_BLIT_CIA_IRQ#0 = $20 +Constant (const byte) DTV_BLIT_VBLANK#0 = $40 +Constant (const byte) DTV_BLIT_IRQ_EN#0 = $80 +Constant (const byte*) DTV_BLITTER_TRANSPARANCY#0 = ((byte*))$d33b Constant (const byte) DTV_BLIT_DISABLE_B#0 = 1 Constant (const byte) DTV_BLIT_WRITE_TRANSPARENT#0 = 2 Constant (const byte) DTV_BLIT_WRITE_NONTRANSPARENT#0 = 4 Constant (const byte) DTV_BLIT_TRANSPARANCY_NONE#0 = 0 -Constant (const byte*) DTV_BLITTER_ALU#0 = ((byte*))54078 +Constant (const byte*) DTV_BLITTER_ALU#0 = ((byte*))$d33e Constant (const byte) DTV_BLIT_SHIFT0#0 = 0 Constant (const byte) DTV_BLIT_SHIFT1#0 = 1 Constant (const byte) DTV_BLIT_SHIFT2#0 = 2 @@ -783,21 +783,21 @@ Constant (const byte) DTV_BLIT_SHIFT6#0 = 6 Constant (const byte) DTV_BLIT_SHIFT7#0 = 7 Constant (const byte) DTV_BLIT_AND#0 = 0 Constant (const byte) DTV_BLIT_NAND#0 = 8 -Constant (const byte) DTV_BLIT_NOR#0 = 16 -Constant (const byte) DTV_BLIT_OR#0 = 24 -Constant (const byte) DTV_BLIT_XOR#0 = 32 -Constant (const byte) DTV_BLIT_XNOR#0 = 40 -Constant (const byte) DTV_BLIT_ADD#0 = 48 -Constant (const byte) DTV_BLIT_SUB#0 = 56 -Constant (const byte*) DTV_BLITTER_CONTROL2#0 = ((byte*))54079 +Constant (const byte) DTV_BLIT_NOR#0 = $10 +Constant (const byte) DTV_BLIT_OR#0 = $18 +Constant (const byte) DTV_BLIT_XOR#0 = $20 +Constant (const byte) DTV_BLIT_XNOR#0 = $28 +Constant (const byte) DTV_BLIT_ADD#0 = $30 +Constant (const byte) DTV_BLIT_SUB#0 = $38 +Constant (const byte*) DTV_BLITTER_CONTROL2#0 = ((byte*))$d33f Constant (const byte) DTV_BLIT_CLEAR_IRQ#0 = 1 Constant (const byte) DTV_BLIT_SRCA_CONT#0 = 2 Constant (const byte) DTV_BLIT_SRCB_CONT#0 = 4 Constant (const byte) DTV_BLIT_DEST_CONT#0 = 8 Constant (const byte) DTV_BLIT_STATUS_BUSY#0 = 1 Constant (const byte) DTV_BLIT_STATUS_IRQ#0 = 2 -Constant (const byte[16]) main::palette#0 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } -Constant (const byte) main::r#0 = 49 +Constant (const byte[$10]) main::palette#0 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, $a, $b, $c, $d, $e, $f } +Constant (const byte) main::r#0 = $31 Constant (const byte) main::c#0 = 0 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::$0 = DTV_HIGHCOLOR#0|DTV_BORDER_OFF#0 @@ -810,9 +810,9 @@ Successful SSA optimization PassNEliminateUnusedVars Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks Resolved ranged next value main::r#1 ← ++ main::r#2 to ++ -Resolved ranged comparison value if(main::r#1!=rangelast(49,255)) goto main::@7 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(main::r#1!=rangelast($31,$ff)) goto main::@7 to (byte/signed byte/word/signed word/dword/signed dword) 0 Resolved ranged next value main::c#1 ← ++ main::c#2 to ++ -Resolved ranged comparison value if(main::c#1!=rangelast(0,15)) goto main::@8 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(main::c#1!=rangelast(0,$f)) goto main::@8 to (byte/signed byte/word/signed word/dword/signed dword) $10 Culled Empty Block (label) @4 Culled Empty Block (label) @5 Culled Empty Block (label) main::@1 @@ -820,7 +820,7 @@ Culled Empty Block (label) main::@14 Successful SSA optimization Pass2CullEmptyBlocks Inlining constant with var siblings (const byte) main::r#0 Inlining constant with var siblings (const byte) main::c#0 -Constant inlined main::r#0 = (byte/signed byte/word/signed word/dword/signed dword) 49 +Constant inlined main::r#0 = (byte/signed byte/word/signed word/dword/signed dword) $31 Constant inlined main::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::$1 = (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_BORDER_OFF#0|(const byte) DTV_BADLINE_OFF#0 Constant inlined main::$0 = (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_BORDER_OFF#0 @@ -859,13 +859,13 @@ main: scope:[main] from @6 [6] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_BORDER_OFF#0|(const byte) DTV_BADLINE_OFF#0 to:main::@4 main::@4: scope:[main] from main main::@4 main::@8 - [7] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 64) goto main::@4 + [7] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $40) goto main::@4 to:main::@6 main::@6: scope:[main] from main::@4 [8] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@7 main::@7: scope:[main] from main::@6 main::@7 - [9] (byte) main::r#2 ← phi( main::@6/(byte/signed byte/word/signed word/dword/signed dword) 49 main::@7/(byte) main::r#1 ) + [9] (byte) main::r#2 ← phi( main::@6/(byte/signed byte/word/signed word/dword/signed dword) $31 main::@7/(byte) main::r#1 ) asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } [11] *((const byte*) BGCOL#0) ← ++ *((const byte*) BGCOL#0) [12] (byte) main::r#1 ← ++ (byte) main::r#2 @@ -873,10 +873,10 @@ main::@7: scope:[main] from main::@6 main::@7 to:main::@8 main::@8: scope:[main] from main::@7 main::@8 [14] (byte) main::c#2 ← phi( main::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@8/(byte) main::c#1 ) - [15] *((const byte*) DTV_PALETTE#0 + (byte) main::c#2) ← *((const byte[16]) main::palette#0 + (byte) main::c#2) - [16] *((const byte[16]) main::palette#0 + (byte) main::c#2) ← ++ *((const byte[16]) main::palette#0 + (byte) main::c#2) + [15] *((const byte*) DTV_PALETTE#0 + (byte) main::c#2) ← *((const byte[$10]) main::palette#0 + (byte) main::c#2) + [16] *((const byte[$10]) main::palette#0 + (byte) main::c#2) ← ++ *((const byte[$10]) main::palette#0 + (byte) main::c#2) [17] (byte) main::c#1 ← ++ (byte) main::c#2 - [18] if((byte) main::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto main::@8 + [18] if((byte) main::c#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto main::@8 to:main::@4 @@ -989,7 +989,7 @@ VARIABLE REGISTER WEIGHTS (byte) DTV_LINEAR (byte) DTV_OVERSCAN (byte*) DTV_PALETTE -(byte[16]) DTV_PALETTE_DEFAULT +(byte[$10]) DTV_PALETTE_DEFAULT (byte*) DTV_PLANEA_MODULO_HI (byte*) DTV_PLANEA_MODULO_LO (byte*) DTV_PLANEA_START_HI @@ -1059,7 +1059,7 @@ VARIABLE REGISTER WEIGHTS (byte) main::c (byte) main::c#1 151.5 (byte) main::c#2 201.99999999999997 -(byte[16]) main::palette +(byte[$10]) main::palette (byte) main::r (byte) main::r#1 151.5 (byte) main::r#2 67.33333333333333 @@ -1122,7 +1122,7 @@ main: { jmp b4 //SEG13 main::@4 b4: - //SEG14 [7] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 64) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG14 [7] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $40) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$40 bne b4 @@ -1135,7 +1135,7 @@ main: { sta BGCOL //SEG17 [9] phi from main::@6 to main::@7 [phi:main::@6->main::@7] b7_from_b6: - //SEG18 [9] phi (byte) main::r#2 = (byte/signed byte/word/signed word/dword/signed dword) 49 [phi:main::@6->main::@7#0] -- vbuz1=vbuc1 + //SEG18 [9] phi (byte) main::r#2 = (byte/signed byte/word/signed word/dword/signed dword) $31 [phi:main::@6->main::@7#0] -- vbuz1=vbuc1 lda #$31 sta r jmp b7 @@ -1192,16 +1192,16 @@ main: { jmp b8 //SEG30 main::@8 b8: - //SEG31 [15] *((const byte*) DTV_PALETTE#0 + (byte) main::c#2) ← *((const byte[16]) main::palette#0 + (byte) main::c#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 + //SEG31 [15] *((const byte*) DTV_PALETTE#0 + (byte) main::c#2) ← *((const byte[$10]) main::palette#0 + (byte) main::c#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 ldy c lda palette,y sta DTV_PALETTE,y - //SEG32 [16] *((const byte[16]) main::palette#0 + (byte) main::c#2) ← ++ *((const byte[16]) main::palette#0 + (byte) main::c#2) -- pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 + //SEG32 [16] *((const byte[$10]) main::palette#0 + (byte) main::c#2) ← ++ *((const byte[$10]) main::palette#0 + (byte) main::c#2) -- pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 ldx c inc palette,x //SEG33 [17] (byte) main::c#1 ← ++ (byte) main::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG34 [18] if((byte) main::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto main::@8 -- vbuz1_neq_vbuc1_then_la1 + //SEG34 [18] if((byte) main::c#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto main::@8 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #$10 bne b8_from_b8 @@ -1212,15 +1212,15 @@ main: { REGISTER UPLIFT POTENTIAL REGISTERS Statement [5] *((const byte*) DTV_FEATURE#0) ← (const byte) DTV_FEATURE_ENABLE#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [6] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_BORDER_OFF#0|(const byte) DTV_BADLINE_OFF#0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [7] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 64) goto main::@4 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [7] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $40) goto main::@4 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [8] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [15] *((const byte*) DTV_PALETTE#0 + (byte) main::c#2) ← *((const byte[16]) main::palette#0 + (byte) main::c#2) [ main::c#2 ] ( main:2 [ main::c#2 ] ) always clobbers reg byte a +Statement [15] *((const byte*) DTV_PALETTE#0 + (byte) main::c#2) ← *((const byte[$10]) main::palette#0 + (byte) main::c#2) [ main::c#2 ] ( main:2 [ main::c#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ main::c#2 main::c#1 ] Statement [5] *((const byte*) DTV_FEATURE#0) ← (const byte) DTV_FEATURE_ENABLE#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [6] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_BORDER_OFF#0|(const byte) DTV_BADLINE_OFF#0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [7] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 64) goto main::@4 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [7] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $40) goto main::@4 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [8] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [15] *((const byte*) DTV_PALETTE#0 + (byte) main::c#2) ← *((const byte[16]) main::palette#0 + (byte) main::c#2) [ main::c#2 ] ( main:2 [ main::c#2 ] ) always clobbers reg byte a +Statement [15] *((const byte*) DTV_PALETTE#0 + (byte) main::c#2) ← *((const byte[$10]) main::palette#0 + (byte) main::c#2) [ main::c#2 ] ( main:2 [ main::c#2 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ main::r#2 main::r#1 ] : zp ZP_BYTE:2 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:3 [ main::c#2 main::c#1 ] : zp ZP_BYTE:3 , reg byte x , reg byte y , @@ -1278,7 +1278,7 @@ main: { jmp b4 //SEG13 main::@4 b4: - //SEG14 [7] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 64) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG14 [7] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $40) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$40 bne b4 @@ -1291,7 +1291,7 @@ main: { sta BGCOL //SEG17 [9] phi from main::@6 to main::@7 [phi:main::@6->main::@7] b7_from_b6: - //SEG18 [9] phi (byte) main::r#2 = (byte/signed byte/word/signed word/dword/signed dword) 49 [phi:main::@6->main::@7#0] -- vbuxx=vbuc1 + //SEG18 [9] phi (byte) main::r#2 = (byte/signed byte/word/signed word/dword/signed dword) $31 [phi:main::@6->main::@7#0] -- vbuxx=vbuc1 ldx #$31 jmp b7 //SEG19 [9] phi from main::@7 to main::@7 [phi:main::@7->main::@7] @@ -1345,14 +1345,14 @@ main: { jmp b8 //SEG30 main::@8 b8: - //SEG31 [15] *((const byte*) DTV_PALETTE#0 + (byte) main::c#2) ← *((const byte[16]) main::palette#0 + (byte) main::c#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG31 [15] *((const byte*) DTV_PALETTE#0 + (byte) main::c#2) ← *((const byte[$10]) main::palette#0 + (byte) main::c#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda palette,x sta DTV_PALETTE,x - //SEG32 [16] *((const byte[16]) main::palette#0 + (byte) main::c#2) ← ++ *((const byte[16]) main::palette#0 + (byte) main::c#2) -- pbuc1_derefidx_vbuxx=_inc_pbuc1_derefidx_vbuxx + //SEG32 [16] *((const byte[$10]) main::palette#0 + (byte) main::c#2) ← ++ *((const byte[$10]) main::palette#0 + (byte) main::c#2) -- pbuc1_derefidx_vbuxx=_inc_pbuc1_derefidx_vbuxx inc palette,x //SEG33 [17] (byte) main::c#1 ← ++ (byte) main::c#2 -- vbuxx=_inc_vbuxx inx - //SEG34 [18] if((byte) main::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto main::@8 -- vbuxx_neq_vbuc1_then_la1 + //SEG34 [18] if((byte) main::c#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto main::@8 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b8_from_b8 jmp b4 @@ -1394,7 +1394,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL1 (byte*) BGCOL2 (byte*) BGCOL3 @@ -1422,7 +1422,7 @@ FINAL SYMBOL TABLE (byte*) D018 (byte) DARK_GREY (byte) DTV_BADLINE_OFF -(const byte) DTV_BADLINE_OFF#0 DTV_BADLINE_OFF = (byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte) DTV_BADLINE_OFF#0 DTV_BADLINE_OFF = (byte/signed byte/word/signed word/dword/signed dword) $20 (byte*) DTV_BLITTER_ALU (byte*) DTV_BLITTER_CONTROL (byte*) DTV_BLITTER_CONTROL2 @@ -1495,9 +1495,9 @@ FINAL SYMBOL TABLE (byte*) DTV_COLOR_BANK_HI (byte*) DTV_COLOR_BANK_LO (byte*) DTV_CONTROL -(const byte*) DTV_CONTROL#0 DTV_CONTROL = ((byte*))(word/dword/signed dword) 53308 +(const byte*) DTV_CONTROL#0 DTV_CONTROL = ((byte*))(word/dword/signed dword) $d03c (byte*) DTV_FEATURE -(const byte*) DTV_FEATURE#0 DTV_FEATURE = ((byte*))(word/dword/signed dword) 53311 +(const byte*) DTV_FEATURE#0 DTV_FEATURE = ((byte*))(word/dword/signed dword) $d03f (byte) DTV_FEATURE_DISABLE_TIL_RESET (byte) DTV_FEATURE_ENABLE (const byte) DTV_FEATURE_ENABLE#0 DTV_FEATURE_ENABLE = (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -1508,8 +1508,8 @@ FINAL SYMBOL TABLE (byte) DTV_LINEAR (byte) DTV_OVERSCAN (byte*) DTV_PALETTE -(const byte*) DTV_PALETTE#0 DTV_PALETTE = ((byte*))(word/dword/signed dword) 53760 -(byte[16]) DTV_PALETTE_DEFAULT +(const byte*) DTV_PALETTE#0 DTV_PALETTE = ((byte*))(word/dword/signed dword) $d200 +(byte[$10]) DTV_PALETTE_DEFAULT (byte*) DTV_PLANEA_MODULO_HI (byte*) DTV_PLANEA_MODULO_LO (byte*) DTV_PLANEA_START_HI @@ -1550,7 +1550,7 @@ FINAL SYMBOL TABLE (byte) PROCPORT_RAM_IO (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE @@ -1584,8 +1584,8 @@ FINAL SYMBOL TABLE (byte) main::c (byte) main::c#1 reg byte x 151.5 (byte) main::c#2 reg byte x 201.99999999999997 -(byte[16]) main::palette -(const byte[16]) main::palette#0 palette = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 14, (byte/signed byte/word/signed word/dword/signed dword) 15 } +(byte[$10]) main::palette +(const byte[$10]) main::palette#0 palette = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $e, (byte/signed byte/word/signed word/dword/signed dword) $f } (byte) main::r (byte) main::r#1 reg byte x 151.5 (byte) main::r#2 reg byte x 67.33333333333333 @@ -1634,7 +1634,7 @@ main: { sta DTV_CONTROL //SEG13 main::@4 b4: - //SEG14 [7] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 64) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG14 [7] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $40) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$40 bne b4 @@ -1644,7 +1644,7 @@ main: { lda #0 sta BGCOL //SEG17 [9] phi from main::@6 to main::@7 [phi:main::@6->main::@7] - //SEG18 [9] phi (byte) main::r#2 = (byte/signed byte/word/signed word/dword/signed dword) 49 [phi:main::@6->main::@7#0] -- vbuxx=vbuc1 + //SEG18 [9] phi (byte) main::r#2 = (byte/signed byte/word/signed word/dword/signed dword) $31 [phi:main::@6->main::@7#0] -- vbuxx=vbuc1 ldx #$31 //SEG19 [9] phi from main::@7 to main::@7 [phi:main::@7->main::@7] //SEG20 [9] phi (byte) main::r#2 = (byte) main::r#1 [phi:main::@7->main::@7#0] -- register_copy @@ -1691,14 +1691,14 @@ main: { //SEG29 [14] phi (byte) main::c#2 = (byte) main::c#1 [phi:main::@8->main::@8#0] -- register_copy //SEG30 main::@8 b8: - //SEG31 [15] *((const byte*) DTV_PALETTE#0 + (byte) main::c#2) ← *((const byte[16]) main::palette#0 + (byte) main::c#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG31 [15] *((const byte*) DTV_PALETTE#0 + (byte) main::c#2) ← *((const byte[$10]) main::palette#0 + (byte) main::c#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda palette,x sta DTV_PALETTE,x - //SEG32 [16] *((const byte[16]) main::palette#0 + (byte) main::c#2) ← ++ *((const byte[16]) main::palette#0 + (byte) main::c#2) -- pbuc1_derefidx_vbuxx=_inc_pbuc1_derefidx_vbuxx + //SEG32 [16] *((const byte[$10]) main::palette#0 + (byte) main::c#2) ← ++ *((const byte[$10]) main::palette#0 + (byte) main::c#2) -- pbuc1_derefidx_vbuxx=_inc_pbuc1_derefidx_vbuxx inc palette,x //SEG33 [17] (byte) main::c#1 ← ++ (byte) main::c#2 -- vbuxx=_inc_vbuxx inx - //SEG34 [18] if((byte) main::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto main::@8 -- vbuxx_neq_vbuc1_then_la1 + //SEG34 [18] if((byte) main::c#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto main::@8 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b8 jmp b4 diff --git a/src/test/ref/c64dtv-color.sym b/src/test/ref/c64dtv-color.sym index 8c15807ee..97379aeae 100644 --- a/src/test/ref/c64dtv-color.sym +++ b/src/test/ref/c64dtv-color.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL1 (byte*) BGCOL2 (byte*) BGCOL3 @@ -30,7 +30,7 @@ (byte*) D018 (byte) DARK_GREY (byte) DTV_BADLINE_OFF -(const byte) DTV_BADLINE_OFF#0 DTV_BADLINE_OFF = (byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte) DTV_BADLINE_OFF#0 DTV_BADLINE_OFF = (byte/signed byte/word/signed word/dword/signed dword) $20 (byte*) DTV_BLITTER_ALU (byte*) DTV_BLITTER_CONTROL (byte*) DTV_BLITTER_CONTROL2 @@ -103,9 +103,9 @@ (byte*) DTV_COLOR_BANK_HI (byte*) DTV_COLOR_BANK_LO (byte*) DTV_CONTROL -(const byte*) DTV_CONTROL#0 DTV_CONTROL = ((byte*))(word/dword/signed dword) 53308 +(const byte*) DTV_CONTROL#0 DTV_CONTROL = ((byte*))(word/dword/signed dword) $d03c (byte*) DTV_FEATURE -(const byte*) DTV_FEATURE#0 DTV_FEATURE = ((byte*))(word/dword/signed dword) 53311 +(const byte*) DTV_FEATURE#0 DTV_FEATURE = ((byte*))(word/dword/signed dword) $d03f (byte) DTV_FEATURE_DISABLE_TIL_RESET (byte) DTV_FEATURE_ENABLE (const byte) DTV_FEATURE_ENABLE#0 DTV_FEATURE_ENABLE = (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -116,8 +116,8 @@ (byte) DTV_LINEAR (byte) DTV_OVERSCAN (byte*) DTV_PALETTE -(const byte*) DTV_PALETTE#0 DTV_PALETTE = ((byte*))(word/dword/signed dword) 53760 -(byte[16]) DTV_PALETTE_DEFAULT +(const byte*) DTV_PALETTE#0 DTV_PALETTE = ((byte*))(word/dword/signed dword) $d200 +(byte[$10]) DTV_PALETTE_DEFAULT (byte*) DTV_PLANEA_MODULO_HI (byte*) DTV_PLANEA_MODULO_LO (byte*) DTV_PLANEA_START_HI @@ -158,7 +158,7 @@ (byte) PROCPORT_RAM_IO (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE @@ -192,8 +192,8 @@ (byte) main::c (byte) main::c#1 reg byte x 151.5 (byte) main::c#2 reg byte x 201.99999999999997 -(byte[16]) main::palette -(const byte[16]) main::palette#0 palette = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 14, (byte/signed byte/word/signed word/dword/signed dword) 15 } +(byte[$10]) main::palette +(const byte[$10]) main::palette#0 palette = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $e, (byte/signed byte/word/signed word/dword/signed dword) $f } (byte) main::r (byte) main::r#1 reg byte x 151.5 (byte) main::r#2 reg byte x 67.33333333333333 diff --git a/src/test/ref/c64dtv-gfxexplorer.cfg b/src/test/ref/c64dtv-gfxexplorer.cfg index 83b9d563f..94d1cfbd4 100644 --- a/src/test/ref/c64dtv-gfxexplorer.cfg +++ b/src/test/ref/c64dtv-gfxexplorer.cfg @@ -149,14 +149,14 @@ gfx_mode::@47: scope:[gfx_mode] from gfx_mode::@46 [90] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte~) gfx_mode::$56 [91] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [92] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 - [93] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) VIC_SCREEN0#0/(word/signed word/dword/signed dword) 16384 + [93] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) VIC_SCREEN0#0/(word/signed word/dword/signed dword) $4000 [94] (byte) get_vic_screen::idx#0 ← *((const byte*) form_vic_screen#0) [95] call get_vic_screen [96] (byte*) get_vic_screen::return#10 ← (byte*) get_vic_screen::return#5 to:gfx_mode::@48 gfx_mode::@48: scope:[gfx_mode] from gfx_mode::@47 [97] (byte*~) gfx_mode::$61 ← (byte*) get_vic_screen::return#10 - [98] (word~) gfx_mode::$63 ← (word)(byte*~) gfx_mode::$61 & (word/signed word/dword/signed dword) 16383 + [98] (word~) gfx_mode::$63 ← (word)(byte*~) gfx_mode::$61 & (word/signed word/dword/signed dword) $3fff [99] (word~) gfx_mode::$64 ← (word~) gfx_mode::$63 >> (byte/signed byte/word/signed word/dword/signed dword) 6 [100] (byte~) gfx_mode::$65 ← ((byte)) (word~) gfx_mode::$64 [101] (byte) get_vic_charset::idx#0 ← *((const byte*) form_vic_gfx#0) @@ -165,7 +165,7 @@ gfx_mode::@48: scope:[gfx_mode] from gfx_mode::@47 to:gfx_mode::@49 gfx_mode::@49: scope:[gfx_mode] from gfx_mode::@48 [104] (byte*~) gfx_mode::$66 ← (byte*) get_vic_charset::return#4 - [105] (word~) gfx_mode::$68 ← (word)(byte*~) gfx_mode::$66 & (word/signed word/dword/signed dword) 16383 + [105] (word~) gfx_mode::$68 ← (word)(byte*~) gfx_mode::$66 & (word/signed word/dword/signed dword) $3fff [106] (byte~) gfx_mode::$69 ← > (word~) gfx_mode::$68 [107] (byte~) gfx_mode::$70 ← (byte~) gfx_mode::$69 >> (byte/signed byte/word/signed word/dword/signed dword) 2 [108] (byte~) gfx_mode::$71 ← (byte~) gfx_mode::$65 | (byte~) gfx_mode::$70 @@ -190,11 +190,11 @@ gfx_mode::@11: scope:[gfx_mode] from gfx_mode::@10 gfx_mode::@11 [117] (byte*) gfx_mode::col#1 ← ++ (byte*) gfx_mode::col#2 [118] (byte*) gfx_mode::vic_colors#1 ← ++ (byte*) gfx_mode::vic_colors#2 [119] (byte) gfx_mode::cx#1 ← ++ (byte) gfx_mode::cx#2 - [120] if((byte) gfx_mode::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_mode::@11 + [120] if((byte) gfx_mode::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_mode::@11 to:gfx_mode::@32 gfx_mode::@32: scope:[gfx_mode] from gfx_mode::@11 [121] (byte) gfx_mode::cy#1 ← ++ (byte) gfx_mode::cy#4 - [122] if((byte) gfx_mode::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_mode::@10 + [122] if((byte) gfx_mode::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_mode::@10 to:gfx_mode::@33 gfx_mode::@33: scope:[gfx_mode] from gfx_mode::@32 [123] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -216,10 +216,10 @@ gfx_mode::@13: scope:[gfx_mode] from gfx_mode::@13 gfx_mode::@33 [137] (byte) gfx_mode::j#2 ← phi( gfx_mode::@13/(byte) gfx_mode::j#1 gfx_mode::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [138] *((const byte*) DTV_PALETTE#0 + (byte) gfx_mode::j#2) ← (byte) gfx_mode::j#2 [139] (byte) gfx_mode::j#1 ← ++ (byte) gfx_mode::j#2 - [140] if((byte) gfx_mode::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto gfx_mode::@13 + [140] if((byte) gfx_mode::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto gfx_mode::@13 to:gfx_mode::@19 gfx_mode::@19: scope:[gfx_mode] from gfx_mode::@13 gfx_mode::@15 gfx_mode::@19 gfx_mode::@52 - [141] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto gfx_mode::@19 + [141] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto gfx_mode::@19 to:gfx_mode::@21 gfx_mode::@21: scope:[gfx_mode] from gfx_mode::@19 [142] phi() @@ -239,9 +239,9 @@ gfx_mode::@return: scope:[gfx_mode] from gfx_mode::@52 to:@return gfx_mode::@15: scope:[gfx_mode] from gfx_mode::@15 gfx_mode::@33 [150] (byte) gfx_mode::i#2 ← phi( gfx_mode::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 gfx_mode::@15/(byte) gfx_mode::i#1 ) - [151] *((const byte*) DTV_PALETTE#0 + (byte) gfx_mode::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) gfx_mode::i#2) + [151] *((const byte*) DTV_PALETTE#0 + (byte) gfx_mode::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) gfx_mode::i#2) [152] (byte) gfx_mode::i#1 ← ++ (byte) gfx_mode::i#2 - [153] if((byte) gfx_mode::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto gfx_mode::@15 + [153] if((byte) gfx_mode::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto gfx_mode::@15 to:gfx_mode::@19 keyboard_event_get: scope:[keyboard_event_get] from form_control::@34 gfx_mode::@51 [154] if((byte) keyboard_events_size#100==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return @@ -252,7 +252,7 @@ keyboard_event_get::@3: scope:[keyboard_event_get] from keyboard_event_get to:keyboard_event_get::@return keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get keyboard_event_get::@3 [157] (byte) keyboard_events_size#24 ← phi( keyboard_event_get/(byte) keyboard_events_size#100 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) - [157] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get/(byte/word/signed word/dword/signed dword) 255 keyboard_event_get::@3/(byte) keyboard_event_get::return#1 ) + [157] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get/(byte/word/signed word/dword/signed dword) $ff keyboard_event_get::@3/(byte) keyboard_event_get::return#1 ) [158] return to:@return keyboard_event_scan: scope:[keyboard_event_scan] from form_control::@3 gfx_mode::@21 @@ -360,7 +360,7 @@ keyboard_event_scan::@19: scope:[keyboard_event_scan] from keyboard_event_scan: [209] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 to:keyboard_event_scan::@3 keyboard_event_scan::@7: scope:[keyboard_event_scan] from keyboard_event_scan::@16 - [210] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 + [210] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) $40 [211] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#18) ← (byte/word/dword~) keyboard_event_scan::$11 [212] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#18 to:keyboard_event_scan::@5 @@ -449,16 +449,16 @@ get_plane::@36: scope:[get_plane] from get_plane::@35 [246] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 9) goto get_plane::@return to:get_plane::@37 get_plane::@37: scope:[get_plane] from get_plane::@36 - [247] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 10) goto get_plane::@return + [247] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) $a) goto get_plane::@return to:get_plane::@38 get_plane::@38: scope:[get_plane] from get_plane::@37 - [248] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 11) goto get_plane::@return + [248] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) $b) goto get_plane::@return to:get_plane::@39 get_plane::@39: scope:[get_plane] from get_plane::@38 - [249] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 12) goto get_plane::@return + [249] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) $c) goto get_plane::@return to:get_plane::@40 get_plane::@40: scope:[get_plane] from get_plane::@39 - [250] if((byte) get_plane::idx#10!=(byte/signed byte/word/signed word/dword/signed dword) 13) goto get_plane::@27 + [250] if((byte) get_plane::idx#10!=(byte/signed byte/word/signed word/dword/signed dword) $d) goto get_plane::@27 to:get_plane::@return get_plane::@return: scope:[get_plane] from get_plane get_plane::@27 get_plane::@28 get_plane::@29 get_plane::@30 get_plane::@31 get_plane::@32 get_plane::@33 get_plane::@34 get_plane::@35 get_plane::@36 get_plane::@37 get_plane::@38 get_plane::@39 get_plane::@40 [251] (dword) get_plane::return#14 ← phi( get_plane/((dword))(const byte*) VIC_SCREEN0#0 get_plane::@36/((dword))(const dword) PLANE_HORISONTAL2#0 get_plane::@37/((dword))(const dword) PLANE_VERTICAL2#0 get_plane::@38/((dword))(const dword) PLANE_CHARSET8#0 get_plane::@39/((dword))(const dword) PLANE_BLANK#0 get_plane::@28/((dword))(const byte*) VIC_SCREEN1#0 get_plane::@27/((dword))(const byte*) VIC_SCREEN0#0 get_plane::@29/((dword))(const byte*) VIC_SCREEN2#0 get_plane::@30/((dword))(const byte*) VIC_SCREEN3#0 get_plane::@40/((dword))(const dword) PLANE_FULL#0 get_plane::@31/((dword))(const byte*) VIC_BITMAP#0 get_plane::@32/((dword))(const byte*) VIC_CHARSET_ROM#0 get_plane::@33/((dword))(const dword) PLANE_8BPP_CHUNKY#0 get_plane::@34/((dword))(const dword) PLANE_HORISONTAL#0 get_plane::@35/((dword))(const dword) PLANE_VERTICAL#0 ) @@ -504,24 +504,24 @@ form_mode::@28: scope:[form_mode] from form_mode::@27 [271] call render_preset_name to:form_mode::@29 form_mode::@29: scope:[form_mode] from form_mode::@28 - [272] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) FORM_CHARSET#0/(dword/signed dword) 65536 - [273] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 - [274] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 + [272] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) FORM_CHARSET#0/(dword/signed dword) $10000 + [273] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 + [274] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [275] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 - [276] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) FORM_CHARSET#0/(word/signed word/dword/signed dword) 16384 + [276] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) FORM_CHARSET#0/(word/signed word/dword/signed dword) $4000 [277] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [278] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [279] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 - [280] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) FORM_SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) FORM_CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 + [280] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) FORM_SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) FORM_CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 [281] *((const byte*) DTV_PLANEA_START_LO#0) ← <(const byte*) FORM_SCREEN#0 [282] *((const byte*) DTV_PLANEA_START_MI#0) ← >(const byte*) FORM_SCREEN#0 [283] *((const byte*) DTV_PLANEA_START_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:form_mode::@1 form_mode::@1: scope:[form_mode] from form_mode::@1 form_mode::@29 [284] (byte) form_mode::i#2 ← phi( form_mode::@1/(byte) form_mode::i#1 form_mode::@29/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [285] *((const byte*) DTV_PALETTE#0 + (byte) form_mode::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) form_mode::i#2) + [285] *((const byte*) DTV_PALETTE#0 + (byte) form_mode::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) form_mode::i#2) [286] (byte) form_mode::i#1 ← ++ (byte) form_mode::i#2 - [287] if((byte) form_mode::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto form_mode::@1 + [287] if((byte) form_mode::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto form_mode::@1 to:form_mode::@10 form_mode::@10: scope:[form_mode] from form_mode::@1 [288] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -535,7 +535,7 @@ form_mode::@2: scope:[form_mode] from form_mode::@10 form_mode::@32 form_mode:: [291] (signed byte) form_cursor_count#21 ← phi( form_mode::@10/(signed byte) form_cursor_count#1 form_mode::@32/(signed byte) form_cursor_count#16 form_mode::@8/(signed byte) form_cursor_count#16 ) to:form_mode::@5 form_mode::@5: scope:[form_mode] from form_mode::@2 form_mode::@5 - [292] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto form_mode::@5 + [292] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto form_mode::@5 to:form_mode::@7 form_mode::@7: scope:[form_mode] from form_mode::@5 [293] phi() @@ -596,7 +596,7 @@ render_preset_name::@31: scope:[render_preset_name] from render_preset_name::@3 [316] if((byte) render_preset_name::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 9) goto render_preset_name::@22 to:render_preset_name::@32 render_preset_name::@32: scope:[render_preset_name] from render_preset_name::@31 - [317] if((byte) render_preset_name::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 10) goto render_preset_name::@22 + [317] if((byte) render_preset_name::idx#10==(byte/signed byte/word/signed word/dword/signed dword) $a) goto render_preset_name::@22 to:render_preset_name::@33 render_preset_name::@33: scope:[render_preset_name] from render_preset_name::@32 [318] phi() @@ -613,7 +613,7 @@ print_str_at: scope:[print_str_at] from render_preset_name::@22 [323] phi() to:print_str_at::@1 print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2 - [324] (byte*) print_str_at::at#2 ← phi( print_str_at/(const byte*) FORM_SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 10 print_str_at::@2/(byte*) print_str_at::at#0 ) + [324] (byte*) print_str_at::at#2 ← phi( print_str_at/(const byte*) FORM_SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) $a print_str_at::@2/(byte*) print_str_at::at#0 ) [324] (byte*) print_str_at::str#2 ← phi( print_str_at/(byte*) print_str_at::str#1 print_str_at::@2/(byte*) print_str_at::str#0 ) [325] if(*((byte*) print_str_at::str#2)!=(byte) '@') goto print_str_at::@2 to:print_str_at::@return @@ -646,7 +646,7 @@ form_render_values::@return: scope:[form_render_values] from form_render_values form_field_ptr: scope:[form_field_ptr] from form_control form_render_values::@1 [340] (byte) form_field_ptr::field_idx#2 ← phi( form_control/(byte) form_field_ptr::field_idx#1 form_render_values::@1/(byte) form_field_ptr::field_idx#0 ) [341] (byte) form_field_ptr::y#0 ← *((const byte[]) form_fields_y#0 + (byte) form_field_ptr::field_idx#2) - [342] (word~) form_field_ptr::$2 ← *((const byte[25]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[25]) form_line_lo#0 + (byte) form_field_ptr::y#0) + [342] (word~) form_field_ptr::$2 ← *((const byte[$19]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[$19]) form_line_lo#0 + (byte) form_field_ptr::y#0) [343] (byte) form_field_ptr::x#0 ← *((const byte[]) form_fields_x#0 + (byte) form_field_ptr::field_idx#2) [344] (byte*) form_field_ptr::return#0 ← (byte*)(word~) form_field_ptr::$2 + (byte) form_field_ptr::x#0 to:form_field_ptr::@return @@ -684,7 +684,7 @@ apply_preset::@32: scope:[apply_preset] from apply_preset::@31 [355] if((byte) apply_preset::idx#0==(byte/signed byte/word/signed word/dword/signed dword) 9) goto apply_preset::@22 to:apply_preset::@33 apply_preset::@33: scope:[apply_preset] from apply_preset::@32 - [356] if((byte) apply_preset::idx#0==(byte/signed byte/word/signed word/dword/signed dword) 10) goto apply_preset::@22 + [356] if((byte) apply_preset::idx#0==(byte/signed byte/word/signed word/dword/signed dword) $a) goto apply_preset::@22 to:apply_preset::@34 apply_preset::@34: scope:[apply_preset] from apply_preset::@33 [357] phi() @@ -716,7 +716,7 @@ form_control::@1: scope:[form_control] from form_control::@33 form_control::@36 [371] if((signed byte) form_cursor_count#15<(const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2) goto form_control::@2 to:form_control::@16 form_control::@16: scope:[form_control] from form_control::@1 - [372] (byte~) form_control::$5 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 + [372] (byte~) form_control::$5 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f [373] *((byte*) form_control::field#0) ← (byte~) form_control::$5 to:form_control::@3 form_control::@3: scope:[form_control] from form_control::@16 form_control::@2 @@ -733,14 +733,14 @@ form_control::@35: scope:[form_control] from form_control::@34 [380] if((byte) form_control::key_event#0!=(const byte) KEY_CRSR_DOWN#0) goto form_control::@4 to:form_control::@18 form_control::@18: scope:[form_control] from form_control::@35 - [381] (byte~) form_control::$11 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 + [381] (byte~) form_control::$11 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f [382] *((byte*) form_control::field#0) ← (byte~) form_control::$11 [383] (byte~) form_control::$12 ← (byte) keyboard_modifiers#21 & (const byte) KEY_MODIFIER_SHIFT#0 [384] if((byte~) form_control::$12==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@5 to:form_control::@19 form_control::@19: scope:[form_control] from form_control::@18 [385] (byte) form_field_idx#44 ← -- (byte) form_field_idx#28 - [386] if((byte) form_field_idx#44!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@37 + [386] if((byte) form_field_idx#44!=(byte/word/signed word/dword/signed dword) $ff) goto form_control::@37 to:form_control::@7 form_control::@7: scope:[form_control] from form_control::@19 form_control::@37 form_control::@38 form_control::@5 [387] (byte) form_field_idx#32 ← phi( form_control::@19/(const byte) form_fields_cnt#0-(byte/signed byte/word/signed word/dword/signed dword) 1 form_control::@5/(byte/signed byte/word/signed word/dword/signed dword) 0 form_control::@37/(byte) form_field_idx#44 form_control::@38/(byte) form_field_idx#45 ) @@ -748,7 +748,7 @@ form_control::@7: scope:[form_control] from form_control::@19 form_control::@37 form_control::@return: scope:[form_control] from form_control::@12 form_control::@39 form_control::@7 form_control::@9 [388] (byte) form_field_idx#18 ← phi( form_control::@12/(byte) form_field_idx#28 form_control::@39/(byte) form_field_idx#28 form_control::@9/(byte) form_field_idx#28 form_control::@7/(byte) form_field_idx#32 ) [388] (signed byte) form_cursor_count#16 ← phi( form_control::@12/(signed byte) form_cursor_count#15 form_control::@39/(signed byte) form_cursor_count#15 form_control::@9/(signed byte) form_cursor_count#15 form_control::@7/(const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 ) - [388] (byte) form_control::return#2 ← phi( form_control::@12/(byte/signed byte/word/signed word/dword/signed dword) 0 form_control::@39/(byte/signed byte/word/signed word/dword/signed dword) 0 form_control::@9/(byte/word/signed word/dword/signed dword) 255 form_control::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [388] (byte) form_control::return#2 ← phi( form_control::@12/(byte/signed byte/word/signed word/dword/signed dword) 0 form_control::@39/(byte/signed byte/word/signed word/dword/signed dword) 0 form_control::@9/(byte/word/signed word/dword/signed dword) $ff form_control::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [389] return to:@return form_control::@37: scope:[form_control] from form_control::@19 @@ -770,7 +770,7 @@ form_control::@24: scope:[form_control] from form_control::@4 to:form_control::@25 form_control::@25: scope:[form_control] from form_control::@24 [397] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#28) ← -- *((const byte[]) form_fields_val#0 + (byte) form_field_idx#28) - [398] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#28)!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@12 + [398] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#28)!=(byte/word/signed word/dword/signed dword) $ff) goto form_control::@12 to:form_control::@26 form_control::@26: scope:[form_control] from form_control::@25 [399] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#28) ← *((const byte[]) form_fields_max#0 + (byte) form_field_idx#28) @@ -792,7 +792,7 @@ form_control::@39: scope:[form_control] from form_control::@9 [405] phi() to:form_control::@return form_control::@2: scope:[form_control] from form_control::@1 - [406] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) 128 + [406] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) $80 [407] *((byte*) form_control::field#0) ← (byte/word/dword~) form_control::$6 to:form_control::@3 form_control::@36: scope:[form_control] from form_control::@33 @@ -805,12 +805,12 @@ form_set_screen::@1: scope:[form_set_screen] from form_set_screen form_set_scre [410] (byte) form_set_screen::y#2 ← phi( form_set_screen/(byte/signed byte/word/signed word/dword/signed dword) 0 form_set_screen::@1/(byte) form_set_screen::y#1 ) [410] (byte*) form_set_screen::line#2 ← phi( form_set_screen/(const byte*) FORM_SCREEN#0 form_set_screen::@1/(byte*) form_set_screen::line#1 ) [411] (byte~) form_set_screen::$0 ← < (byte*) form_set_screen::line#2 - [412] *((const byte[25]) form_line_lo#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$0 + [412] *((const byte[$19]) form_line_lo#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$0 [413] (byte~) form_set_screen::$1 ← > (byte*) form_set_screen::line#2 - [414] *((const byte[25]) form_line_hi#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$1 - [415] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [414] *((const byte[$19]) form_line_hi#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$1 + [415] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 [416] (byte) form_set_screen::y#1 ← ++ (byte) form_set_screen::y#2 - [417] if((byte) form_set_screen::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto form_set_screen::@1 + [417] if((byte) form_set_screen::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto form_set_screen::@1 to:form_set_screen::@return form_set_screen::@return: scope:[form_set_screen] from form_set_screen::@1 [418] return @@ -853,7 +853,7 @@ print_ln: scope:[print_ln] from print_str_lines::@9 to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [436] (byte*) print_line_cursor#21 ← phi( print_ln/(byte*) print_line_cursor#2 print_ln::@1/(byte*) print_line_cursor#22 ) - [437] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [437] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) $28 [438] if((byte*) print_line_cursor#22<(byte*) print_char_cursor#38) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 @@ -866,7 +866,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 [441] (byte*) print_cls::sc#2 ← phi( print_cls/(byte*) print_cls::sc#0 print_cls::@1/(byte*) print_cls::sc#1 ) [442] *((byte*) print_cls::sc#2) ← (byte) ' ' [443] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [444] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) 1000 + [444] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) $3e8 [445] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 @@ -949,7 +949,7 @@ gfx_init_plane_full::@return: scope:[gfx_init_plane_full] from gfx_init_plane_f [482] return to:@return gfx_init_plane_fill: scope:[gfx_init_plane_fill] from gfx_init_plane_blank gfx_init_plane_full gfx_init_plane_vertical2 - [483] (byte) gfx_init_plane_fill::fill#6 ← phi( gfx_init_plane_blank/(byte/signed byte/word/signed word/dword/signed dword) 0 gfx_init_plane_full/(byte/word/signed word/dword/signed dword) 255 gfx_init_plane_vertical2/(byte/signed byte/word/signed word/dword/signed dword) 27 ) + [483] (byte) gfx_init_plane_fill::fill#6 ← phi( gfx_init_plane_blank/(byte/signed byte/word/signed word/dword/signed dword) 0 gfx_init_plane_full/(byte/word/signed word/dword/signed dword) $ff gfx_init_plane_vertical2/(byte/signed byte/word/signed word/dword/signed dword) $1b ) [483] (dword) gfx_init_plane_fill::plane_addr#3 ← phi( gfx_init_plane_blank/(const dword) PLANE_BLANK#0 gfx_init_plane_full/(const dword) PLANE_FULL#0 gfx_init_plane_vertical2/(const dword) PLANE_VERTICAL2#0 ) [484] (dword~) gfx_init_plane_fill::$0 ← (dword) gfx_init_plane_fill::plane_addr#3 << (byte/signed byte/word/signed word/dword/signed dword) 2 [485] (word~) gfx_init_plane_fill::$1 ← > (dword~) gfx_init_plane_fill::$0 @@ -960,8 +960,8 @@ gfx_init_plane_fill: scope:[gfx_init_plane_fill] from gfx_init_plane_blank gfx_ gfx_init_plane_fill::@5: scope:[gfx_init_plane_fill] from gfx_init_plane_fill [489] (byte) gfx_init_plane_fill::gfxbCpuBank#1 ← ++ (byte) gfx_init_plane_fill::gfxbCpuBank#0 [490] (word~) gfx_init_plane_fill::$4 ← < (dword) gfx_init_plane_fill::plane_addr#3 - [491] (word~) gfx_init_plane_fill::$5 ← (word~) gfx_init_plane_fill::$4 & (word/signed word/dword/signed dword) 16383 - [492] (word/signed dword/dword~) gfx_init_plane_fill::$6 ← (word/signed word/dword/signed dword) 16384 + (word~) gfx_init_plane_fill::$5 + [491] (word~) gfx_init_plane_fill::$5 ← (word~) gfx_init_plane_fill::$4 & (word/signed word/dword/signed dword) $3fff + [492] (word/signed dword/dword~) gfx_init_plane_fill::$6 ← (word/signed word/dword/signed dword) $4000 + (word~) gfx_init_plane_fill::$5 [493] (byte*~) gfx_init_plane_fill::gfxb#6 ← (byte*)(word/signed dword/dword~) gfx_init_plane_fill::$6 to:gfx_init_plane_fill::@1 gfx_init_plane_fill::@1: scope:[gfx_init_plane_fill] from gfx_init_plane_fill::@3 gfx_init_plane_fill::@5 @@ -974,11 +974,11 @@ gfx_init_plane_fill::@2: scope:[gfx_init_plane_fill] from gfx_init_plane_fill:: [496] *((byte*) gfx_init_plane_fill::gfxb#2) ← (byte) gfx_init_plane_fill::fill#6 [497] (byte*) gfx_init_plane_fill::gfxb#1 ← ++ (byte*) gfx_init_plane_fill::gfxb#2 [498] (byte) gfx_init_plane_fill::bx#1 ← ++ (byte) gfx_init_plane_fill::bx#2 - [499] if((byte) gfx_init_plane_fill::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_plane_fill::@2 + [499] if((byte) gfx_init_plane_fill::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_plane_fill::@2 to:gfx_init_plane_fill::@3 gfx_init_plane_fill::@3: scope:[gfx_init_plane_fill] from gfx_init_plane_fill::@2 [500] (byte) gfx_init_plane_fill::by#1 ← ++ (byte) gfx_init_plane_fill::by#4 - [501] if((byte) gfx_init_plane_fill::by#1!=(byte/word/signed word/dword/signed dword) 200) goto gfx_init_plane_fill::@1 + [501] if((byte) gfx_init_plane_fill::by#1!=(byte/word/signed word/dword/signed dword) $c8) goto gfx_init_plane_fill::@1 to:gfx_init_plane_fill::@4 gfx_init_plane_fill::@4: scope:[gfx_init_plane_fill] from gfx_init_plane_fill::@3 [502] phi() @@ -988,7 +988,7 @@ gfx_init_plane_fill::@return: scope:[gfx_init_plane_fill] from gfx_init_plane_f [504] return to:@return dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_plane_8bppchunky gfx_init_plane_8bppchunky::@4 gfx_init_plane_8bppchunky::@6 gfx_init_plane_charset8 gfx_init_plane_charset8::@8 gfx_init_plane_fill gfx_init_plane_fill::@4 gfx_init_plane_horisontal gfx_init_plane_horisontal2 gfx_init_plane_horisontal2::@4 gfx_init_plane_horisontal::@8 gfx_init_plane_vertical gfx_init_plane_vertical::@4 - [505] (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 ← phi( gfx_init_plane_8bppchunky/((byte))(const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) 16384 gfx_init_plane_8bppchunky::@4/(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 gfx_init_plane_8bppchunky::@6/((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 gfx_init_plane_charset8/(const byte) gfx_init_plane_charset8::gfxbCpuBank#0 gfx_init_plane_charset8::@8/((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 gfx_init_plane_fill/(byte) dtvSetCpuBankSegment1::cpuBankIdx#11 gfx_init_plane_fill::@4/((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 gfx_init_plane_horisontal/(const byte) gfx_init_plane_horisontal::gfxbCpuBank#0 gfx_init_plane_horisontal2/(const byte) gfx_init_plane_horisontal2::gfxbCpuBank#0 gfx_init_plane_horisontal2::@4/((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 gfx_init_plane_horisontal::@8/((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 gfx_init_plane_vertical/(const byte) gfx_init_plane_vertical::gfxbCpuBank#0 gfx_init_plane_vertical::@4/((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 ) + [505] (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 ← phi( gfx_init_plane_8bppchunky/((byte))(const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) $4000 gfx_init_plane_8bppchunky::@4/(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 gfx_init_plane_8bppchunky::@6/((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 gfx_init_plane_charset8/(const byte) gfx_init_plane_charset8::gfxbCpuBank#0 gfx_init_plane_charset8::@8/((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 gfx_init_plane_fill/(byte) dtvSetCpuBankSegment1::cpuBankIdx#11 gfx_init_plane_fill::@4/((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 gfx_init_plane_horisontal/(const byte) gfx_init_plane_horisontal::gfxbCpuBank#0 gfx_init_plane_horisontal2/(const byte) gfx_init_plane_horisontal2::gfxbCpuBank#0 gfx_init_plane_horisontal2::@4/((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 gfx_init_plane_horisontal::@8/((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 gfx_init_plane_vertical/(const byte) gfx_init_plane_vertical::gfxbCpuBank#0 gfx_init_plane_vertical::@4/((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 ) [506] *((const byte*) dtvSetCpuBankSegment1::cpuBank#0) ← (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 asm { .byte$32,$dd lda$ff .byte$32,$00 } to:dtvSetCpuBankSegment1::@return @@ -1014,7 +1014,7 @@ gfx_init_plane_horisontal2: scope:[gfx_init_plane_horisontal2] from gfx_init::@ [516] call dtvSetCpuBankSegment1 to:gfx_init_plane_horisontal2::@1 gfx_init_plane_horisontal2::@1: scope:[gfx_init_plane_horisontal2] from gfx_init_plane_horisontal2 gfx_init_plane_horisontal2::@3 - [517] (byte*) gfx_init_plane_horisontal2::gfxa#3 ← phi( gfx_init_plane_horisontal2::@3/(byte*) gfx_init_plane_horisontal2::gfxa#1 gfx_init_plane_horisontal2/((byte*))(word/signed word/dword/signed dword) 16384+(const dword) PLANE_HORISONTAL2#0&(word/signed word/dword/signed dword) 16383 ) + [517] (byte*) gfx_init_plane_horisontal2::gfxa#3 ← phi( gfx_init_plane_horisontal2::@3/(byte*) gfx_init_plane_horisontal2::gfxa#1 gfx_init_plane_horisontal2/((byte*))(word/signed word/dword/signed dword) $4000+(const dword) PLANE_HORISONTAL2#0&(word/signed word/dword/signed dword) $3fff ) [517] (byte) gfx_init_plane_horisontal2::ay#4 ← phi( gfx_init_plane_horisontal2::@3/(byte) gfx_init_plane_horisontal2::ay#1 gfx_init_plane_horisontal2/(byte/signed byte/word/signed word/dword/signed dword) 0 ) to:gfx_init_plane_horisontal2::@2 gfx_init_plane_horisontal2::@2: scope:[gfx_init_plane_horisontal2] from gfx_init_plane_horisontal2::@1 gfx_init_plane_horisontal2::@2 @@ -1025,11 +1025,11 @@ gfx_init_plane_horisontal2::@2: scope:[gfx_init_plane_horisontal2] from gfx_ini [521] *((byte*) gfx_init_plane_horisontal2::gfxa#2) ← *((const byte[]) gfx_init_plane_horisontal2::row_bitmask#0 + (byte) gfx_init_plane_horisontal2::row#0) [522] (byte*) gfx_init_plane_horisontal2::gfxa#1 ← ++ (byte*) gfx_init_plane_horisontal2::gfxa#2 [523] (byte) gfx_init_plane_horisontal2::ax#1 ← ++ (byte) gfx_init_plane_horisontal2::ax#2 - [524] if((byte) gfx_init_plane_horisontal2::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_plane_horisontal2::@2 + [524] if((byte) gfx_init_plane_horisontal2::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_plane_horisontal2::@2 to:gfx_init_plane_horisontal2::@3 gfx_init_plane_horisontal2::@3: scope:[gfx_init_plane_horisontal2] from gfx_init_plane_horisontal2::@2 [525] (byte) gfx_init_plane_horisontal2::ay#1 ← ++ (byte) gfx_init_plane_horisontal2::ay#4 - [526] if((byte) gfx_init_plane_horisontal2::ay#1!=(byte/word/signed word/dword/signed dword) 200) goto gfx_init_plane_horisontal2::@1 + [526] if((byte) gfx_init_plane_horisontal2::ay#1!=(byte/word/signed word/dword/signed dword) $c8) goto gfx_init_plane_horisontal2::@1 to:gfx_init_plane_horisontal2::@4 gfx_init_plane_horisontal2::@4: scope:[gfx_init_plane_horisontal2] from gfx_init_plane_horisontal2::@3 [527] phi() @@ -1044,19 +1044,19 @@ gfx_init_plane_vertical: scope:[gfx_init_plane_vertical] from gfx_init::@10 to:gfx_init_plane_vertical::@1 gfx_init_plane_vertical::@1: scope:[gfx_init_plane_vertical] from gfx_init_plane_vertical gfx_init_plane_vertical::@3 [532] (byte) gfx_init_plane_vertical::by#4 ← phi( gfx_init_plane_vertical::@3/(byte) gfx_init_plane_vertical::by#1 gfx_init_plane_vertical/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [532] (byte*) gfx_init_plane_vertical::gfxb#3 ← phi( gfx_init_plane_vertical::@3/(byte*) gfx_init_plane_vertical::gfxb#1 gfx_init_plane_vertical/((byte*))(word/signed word/dword/signed dword) 16384+(const dword) PLANE_VERTICAL#0&(word/signed word/dword/signed dword) 16383 ) + [532] (byte*) gfx_init_plane_vertical::gfxb#3 ← phi( gfx_init_plane_vertical::@3/(byte*) gfx_init_plane_vertical::gfxb#1 gfx_init_plane_vertical/((byte*))(word/signed word/dword/signed dword) $4000+(const dword) PLANE_VERTICAL#0&(word/signed word/dword/signed dword) $3fff ) to:gfx_init_plane_vertical::@2 gfx_init_plane_vertical::@2: scope:[gfx_init_plane_vertical] from gfx_init_plane_vertical::@1 gfx_init_plane_vertical::@2 [533] (byte) gfx_init_plane_vertical::bx#2 ← phi( gfx_init_plane_vertical::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 gfx_init_plane_vertical::@2/(byte) gfx_init_plane_vertical::bx#1 ) [533] (byte*) gfx_init_plane_vertical::gfxb#2 ← phi( gfx_init_plane_vertical::@1/(byte*) gfx_init_plane_vertical::gfxb#3 gfx_init_plane_vertical::@2/(byte*) gfx_init_plane_vertical::gfxb#1 ) - [534] *((byte*) gfx_init_plane_vertical::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 15 + [534] *((byte*) gfx_init_plane_vertical::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $f [535] (byte*) gfx_init_plane_vertical::gfxb#1 ← ++ (byte*) gfx_init_plane_vertical::gfxb#2 [536] (byte) gfx_init_plane_vertical::bx#1 ← ++ (byte) gfx_init_plane_vertical::bx#2 - [537] if((byte) gfx_init_plane_vertical::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_plane_vertical::@2 + [537] if((byte) gfx_init_plane_vertical::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_plane_vertical::@2 to:gfx_init_plane_vertical::@3 gfx_init_plane_vertical::@3: scope:[gfx_init_plane_vertical] from gfx_init_plane_vertical::@2 [538] (byte) gfx_init_plane_vertical::by#1 ← ++ (byte) gfx_init_plane_vertical::by#4 - [539] if((byte) gfx_init_plane_vertical::by#1!=(byte/word/signed word/dword/signed dword) 200) goto gfx_init_plane_vertical::@1 + [539] if((byte) gfx_init_plane_vertical::by#1!=(byte/word/signed word/dword/signed dword) $c8) goto gfx_init_plane_vertical::@1 to:gfx_init_plane_vertical::@4 gfx_init_plane_vertical::@4: scope:[gfx_init_plane_vertical] from gfx_init_plane_vertical::@3 [540] phi() @@ -1070,7 +1070,7 @@ gfx_init_plane_horisontal: scope:[gfx_init_plane_horisontal] from gfx_init::@9 [544] call dtvSetCpuBankSegment1 to:gfx_init_plane_horisontal::@1 gfx_init_plane_horisontal::@1: scope:[gfx_init_plane_horisontal] from gfx_init_plane_horisontal gfx_init_plane_horisontal::@7 - [545] (byte*) gfx_init_plane_horisontal::gfxa#6 ← phi( gfx_init_plane_horisontal::@7/(byte*) gfx_init_plane_horisontal::gfxa#7 gfx_init_plane_horisontal/((byte*))(word/signed word/dword/signed dword) 16384+(const dword) PLANE_HORISONTAL#0&(word/signed word/dword/signed dword) 16383 ) + [545] (byte*) gfx_init_plane_horisontal::gfxa#6 ← phi( gfx_init_plane_horisontal::@7/(byte*) gfx_init_plane_horisontal::gfxa#7 gfx_init_plane_horisontal/((byte*))(word/signed word/dword/signed dword) $4000+(const dword) PLANE_HORISONTAL#0&(word/signed word/dword/signed dword) $3fff ) [545] (byte) gfx_init_plane_horisontal::ay#4 ← phi( gfx_init_plane_horisontal::@7/(byte) gfx_init_plane_horisontal::ay#1 gfx_init_plane_horisontal/(byte/signed byte/word/signed word/dword/signed dword) 0 ) to:gfx_init_plane_horisontal::@2 gfx_init_plane_horisontal::@2: scope:[gfx_init_plane_horisontal] from gfx_init_plane_horisontal::@1 gfx_init_plane_horisontal::@4 @@ -1080,17 +1080,17 @@ gfx_init_plane_horisontal::@2: scope:[gfx_init_plane_horisontal] from gfx_init_ [548] if((byte~) gfx_init_plane_horisontal::$5==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_plane_horisontal::@3 to:gfx_init_plane_horisontal::@5 gfx_init_plane_horisontal::@5: scope:[gfx_init_plane_horisontal] from gfx_init_plane_horisontal::@2 - [549] *((byte*) gfx_init_plane_horisontal::gfxa#3) ← (byte/word/signed word/dword/signed dword) 255 + [549] *((byte*) gfx_init_plane_horisontal::gfxa#3) ← (byte/word/signed word/dword/signed dword) $ff [550] (byte*) gfx_init_plane_horisontal::gfxa#2 ← ++ (byte*) gfx_init_plane_horisontal::gfxa#3 to:gfx_init_plane_horisontal::@4 gfx_init_plane_horisontal::@4: scope:[gfx_init_plane_horisontal] from gfx_init_plane_horisontal::@3 gfx_init_plane_horisontal::@5 [551] (byte*) gfx_init_plane_horisontal::gfxa#7 ← phi( gfx_init_plane_horisontal::@3/(byte*) gfx_init_plane_horisontal::gfxa#1 gfx_init_plane_horisontal::@5/(byte*) gfx_init_plane_horisontal::gfxa#2 ) [552] (byte) gfx_init_plane_horisontal::ax#1 ← ++ (byte) gfx_init_plane_horisontal::ax#2 - [553] if((byte) gfx_init_plane_horisontal::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_plane_horisontal::@2 + [553] if((byte) gfx_init_plane_horisontal::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_plane_horisontal::@2 to:gfx_init_plane_horisontal::@7 gfx_init_plane_horisontal::@7: scope:[gfx_init_plane_horisontal] from gfx_init_plane_horisontal::@4 [554] (byte) gfx_init_plane_horisontal::ay#1 ← ++ (byte) gfx_init_plane_horisontal::ay#4 - [555] if((byte) gfx_init_plane_horisontal::ay#1!=(byte/word/signed word/dword/signed dword) 200) goto gfx_init_plane_horisontal::@1 + [555] if((byte) gfx_init_plane_horisontal::ay#1!=(byte/word/signed word/dword/signed dword) $c8) goto gfx_init_plane_horisontal::@1 to:gfx_init_plane_horisontal::@8 gfx_init_plane_horisontal::@8: scope:[gfx_init_plane_horisontal] from gfx_init_plane_horisontal::@7 [556] phi() @@ -1113,7 +1113,7 @@ gfx_init_plane_charset8::@9: scope:[gfx_init_plane_charset8] from gfx_init_plan gfx_init_plane_charset8::@1: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@7 gfx_init_plane_charset8::@9 [564] (byte) gfx_init_plane_charset8::ch#8 ← phi( gfx_init_plane_charset8::@7/(byte) gfx_init_plane_charset8::ch#1 gfx_init_plane_charset8::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [564] (byte) gfx_init_plane_charset8::col#6 ← phi( gfx_init_plane_charset8::@7/(byte) gfx_init_plane_charset8::col#1 gfx_init_plane_charset8::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [564] (byte*) gfx_init_plane_charset8::gfxa#6 ← phi( gfx_init_plane_charset8::@7/(byte*) gfx_init_plane_charset8::gfxa#1 gfx_init_plane_charset8::@9/((byte*))(word/signed word/dword/signed dword) 16384+(const dword) PLANE_CHARSET8#0&(word/signed word/dword/signed dword) 16383 ) + [564] (byte*) gfx_init_plane_charset8::gfxa#6 ← phi( gfx_init_plane_charset8::@7/(byte*) gfx_init_plane_charset8::gfxa#1 gfx_init_plane_charset8::@9/((byte*))(word/signed word/dword/signed dword) $4000+(const dword) PLANE_CHARSET8#0&(word/signed word/dword/signed dword) $3fff ) [564] (byte*) gfx_init_plane_charset8::chargen#3 ← phi( gfx_init_plane_charset8::@7/(byte*) gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::@9/(const byte*) CHARGEN#0 ) to:gfx_init_plane_charset8::@2 gfx_init_plane_charset8::@2: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@1 gfx_init_plane_charset8::@6 @@ -1129,7 +1129,7 @@ gfx_init_plane_charset8::@3: scope:[gfx_init_plane_charset8] from gfx_init_plan [568] (byte) gfx_init_plane_charset8::col#2 ← phi( gfx_init_plane_charset8::@2/(byte) gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::@4/(byte) gfx_init_plane_charset8::col#1 ) [568] (byte*) gfx_init_plane_charset8::gfxa#2 ← phi( gfx_init_plane_charset8::@2/(byte*) gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::@4/(byte*) gfx_init_plane_charset8::gfxa#1 ) [568] (byte) gfx_init_plane_charset8::bits#2 ← phi( gfx_init_plane_charset8::@2/(byte) gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::@4/(byte) gfx_init_plane_charset8::bits#1 ) - [569] (byte~) gfx_init_plane_charset8::$5 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) 128 + [569] (byte~) gfx_init_plane_charset8::$5 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) $80 [570] if((byte~) gfx_init_plane_charset8::$5==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_plane_charset8::@4 to:gfx_init_plane_charset8::@5 gfx_init_plane_charset8::@5: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@3 @@ -1164,15 +1164,15 @@ gfx_init_plane_8bppchunky: scope:[gfx_init_plane_8bppchunky] from gfx_init::@7 [587] call dtvSetCpuBankSegment1 to:gfx_init_plane_8bppchunky::@1 gfx_init_plane_8bppchunky::@1: scope:[gfx_init_plane_8bppchunky] from gfx_init_plane_8bppchunky gfx_init_plane_8bppchunky::@5 - [588] (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#7 ← phi( gfx_init_plane_8bppchunky::@5/(byte) gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky/++((byte))(const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) 16384 ) + [588] (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#7 ← phi( gfx_init_plane_8bppchunky::@5/(byte) gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky/++((byte))(const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) $4000 ) [588] (byte) gfx_init_plane_8bppchunky::y#6 ← phi( gfx_init_plane_8bppchunky::@5/(byte) gfx_init_plane_8bppchunky::y#1 gfx_init_plane_8bppchunky/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [588] (byte*) gfx_init_plane_8bppchunky::gfxb#5 ← phi( gfx_init_plane_8bppchunky::@5/(byte*) gfx_init_plane_8bppchunky::gfxb#1 gfx_init_plane_8bppchunky/((byte*))(word/signed word/dword/signed dword) 16384 ) + [588] (byte*) gfx_init_plane_8bppchunky::gfxb#5 ← phi( gfx_init_plane_8bppchunky::@5/(byte*) gfx_init_plane_8bppchunky::gfxb#1 gfx_init_plane_8bppchunky/((byte*))(word/signed word/dword/signed dword) $4000 ) to:gfx_init_plane_8bppchunky::@2 gfx_init_plane_8bppchunky::@2: scope:[gfx_init_plane_8bppchunky] from gfx_init_plane_8bppchunky::@1 gfx_init_plane_8bppchunky::@3 [589] (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#4 ← phi( gfx_init_plane_8bppchunky::@1/(byte) gfx_init_plane_8bppchunky::gfxbCpuBank#7 gfx_init_plane_8bppchunky::@3/(byte) gfx_init_plane_8bppchunky::gfxbCpuBank#8 ) [589] (word) gfx_init_plane_8bppchunky::x#2 ← phi( gfx_init_plane_8bppchunky::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 gfx_init_plane_8bppchunky::@3/(word) gfx_init_plane_8bppchunky::x#1 ) [589] (byte*) gfx_init_plane_8bppchunky::gfxb#3 ← phi( gfx_init_plane_8bppchunky::@1/(byte*) gfx_init_plane_8bppchunky::gfxb#5 gfx_init_plane_8bppchunky::@3/(byte*) gfx_init_plane_8bppchunky::gfxb#1 ) - [590] if((byte*) gfx_init_plane_8bppchunky::gfxb#3!=(word/dword/signed dword) 32768) goto gfx_init_plane_8bppchunky::@3 + [590] if((byte*) gfx_init_plane_8bppchunky::gfxb#3!=(word/dword/signed dword) $8000) goto gfx_init_plane_8bppchunky::@3 to:gfx_init_plane_8bppchunky::@4 gfx_init_plane_8bppchunky::@4: scope:[gfx_init_plane_8bppchunky] from gfx_init_plane_8bppchunky::@2 [591] (byte) dtvSetCpuBankSegment1::cpuBankIdx#1 ← (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#4 @@ -1183,17 +1183,17 @@ gfx_init_plane_8bppchunky::@8: scope:[gfx_init_plane_8bppchunky] from gfx_init_ to:gfx_init_plane_8bppchunky::@3 gfx_init_plane_8bppchunky::@3: scope:[gfx_init_plane_8bppchunky] from gfx_init_plane_8bppchunky::@2 gfx_init_plane_8bppchunky::@8 [594] (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#8 ← phi( gfx_init_plane_8bppchunky::@2/(byte) gfx_init_plane_8bppchunky::gfxbCpuBank#4 gfx_init_plane_8bppchunky::@8/(byte) gfx_init_plane_8bppchunky::gfxbCpuBank#2 ) - [594] (byte*) gfx_init_plane_8bppchunky::gfxb#4 ← phi( gfx_init_plane_8bppchunky::@2/(byte*) gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::@8/((byte*))(word/signed word/dword/signed dword) 16384 ) + [594] (byte*) gfx_init_plane_8bppchunky::gfxb#4 ← phi( gfx_init_plane_8bppchunky::@2/(byte*) gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::@8/((byte*))(word/signed word/dword/signed dword) $4000 ) [595] (word~) gfx_init_plane_8bppchunky::$6 ← (word) gfx_init_plane_8bppchunky::x#2 + (byte) gfx_init_plane_8bppchunky::y#6 [596] (byte) gfx_init_plane_8bppchunky::c#0 ← ((byte)) (word~) gfx_init_plane_8bppchunky::$6 [597] *((byte*) gfx_init_plane_8bppchunky::gfxb#4) ← (byte) gfx_init_plane_8bppchunky::c#0 [598] (byte*) gfx_init_plane_8bppchunky::gfxb#1 ← ++ (byte*) gfx_init_plane_8bppchunky::gfxb#4 [599] (word) gfx_init_plane_8bppchunky::x#1 ← ++ (word) gfx_init_plane_8bppchunky::x#2 - [600] if((word) gfx_init_plane_8bppchunky::x#1!=(word/signed word/dword/signed dword) 320) goto gfx_init_plane_8bppchunky::@2 + [600] if((word) gfx_init_plane_8bppchunky::x#1!=(word/signed word/dword/signed dword) $140) goto gfx_init_plane_8bppchunky::@2 to:gfx_init_plane_8bppchunky::@5 gfx_init_plane_8bppchunky::@5: scope:[gfx_init_plane_8bppchunky] from gfx_init_plane_8bppchunky::@3 [601] (byte) gfx_init_plane_8bppchunky::y#1 ← ++ (byte) gfx_init_plane_8bppchunky::y#6 - [602] if((byte) gfx_init_plane_8bppchunky::y#1!=(byte/word/signed word/dword/signed dword) 200) goto gfx_init_plane_8bppchunky::@1 + [602] if((byte) gfx_init_plane_8bppchunky::y#1!=(byte/word/signed word/dword/signed dword) $c8) goto gfx_init_plane_8bppchunky::@1 to:gfx_init_plane_8bppchunky::@6 gfx_init_plane_8bppchunky::@6: scope:[gfx_init_plane_8bppchunky] from gfx_init_plane_8bppchunky::@5 [603] phi() @@ -1356,10 +1356,10 @@ bitmap_line_xdyi::@return: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@2 bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1 bitmap_line_ydxd::@1 bitmap_line_ydxi::@1 [696] (byte) bitmap_plot::y#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::y#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::y#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::y#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::y#2 ) [696] (byte) bitmap_plot::x#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::x#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::x#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::x#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::x#2 ) - [697] (word) bitmap_plot::plotter_x#0 ← *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) - [698] (word) bitmap_plot::plotter_y#0 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) + [697] (word) bitmap_plot::plotter_x#0 ← *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) + [698] (word) bitmap_plot::plotter_y#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) [699] (word~) bitmap_plot::$0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0 - [700] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) + [700] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) [701] *((byte*)(word~) bitmap_plot::$0) ← (byte~) bitmap_plot::$1 to:bitmap_plot::@return bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot @@ -1468,7 +1468,7 @@ bitmap_line_ydxd::@return: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@2 [747] return to:@return bitmap_clear: scope:[bitmap_clear] from gfx_init_vic_bitmap::@3 - [748] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_xhi#0) w= *((const byte[256]) bitmap_plot_xlo#0) + [748] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_xhi#0) w= *((const byte[$100]) bitmap_plot_xlo#0) [749] (byte*~) bitmap_clear::bitmap#5 ← (byte*)(word~) bitmap_clear::$3 to:bitmap_clear::@1 bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear bitmap_clear::@3 @@ -1481,11 +1481,11 @@ bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1 bitmap_clear::@2 [752] *((byte*) bitmap_clear::bitmap#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [753] (byte*) bitmap_clear::bitmap#1 ← ++ (byte*) bitmap_clear::bitmap#2 [754] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 - [755] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) 200) goto bitmap_clear::@2 + [755] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) $c8) goto bitmap_clear::@2 to:bitmap_clear::@3 bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2 [756] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 - [757] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto bitmap_clear::@1 + [757] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto bitmap_clear::@1 to:bitmap_clear::@return bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3 [758] return @@ -1494,17 +1494,17 @@ bitmap_init: scope:[bitmap_init] from gfx_init_vic_bitmap [759] phi() to:bitmap_init::@1 bitmap_init::@1: scope:[bitmap_init] from bitmap_init bitmap_init::@2 - [760] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte/word/signed word/dword/signed dword) 128 bitmap_init::@2/(byte) bitmap_init::bits#4 ) + [760] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte/word/signed word/dword/signed dword) $80 bitmap_init::@2/(byte) bitmap_init::bits#4 ) [760] (byte) bitmap_init::x#2 ← phi( bitmap_init/(byte/signed byte/word/signed word/dword/signed dword) 0 bitmap_init::@2/(byte) bitmap_init::x#1 ) - [761] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) 248 - [762] *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 - [763] *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) VIC_BITMAP#0 - [764] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 + [761] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) $f8 + [762] *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 + [763] *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) VIC_BITMAP#0 + [764] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [765] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [766] if((byte) bitmap_init::bits#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@10 to:bitmap_init::@2 bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@10 - [767] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@10/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte/word/signed word/dword/signed dword) 128 ) + [767] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@10/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte/word/signed word/dword/signed dword) $80 ) [768] (byte) bitmap_init::x#1 ← ++ (byte) bitmap_init::x#2 [769] if((byte) bitmap_init::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@1 to:bitmap_init::@3 @@ -1514,14 +1514,14 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4 [771] (byte~) bitmap_init::$6 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [772] (byte~) bitmap_init::$7 ← < (byte*) bitmap_init::yoffs#2 [773] (byte~) bitmap_init::$8 ← (byte~) bitmap_init::$6 | (byte~) bitmap_init::$7 - [774] *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 + [774] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 [775] (byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2 - [776] *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 + [776] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 [777] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [778] if((byte~) bitmap_init::$10!=(byte/signed byte/word/signed word/dword/signed dword) 7) goto bitmap_init::@4 to:bitmap_init::@7 bitmap_init::@7: scope:[bitmap_init] from bitmap_init::@3 - [779] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 + [779] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 to:bitmap_init::@4 bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@7 [780] (byte*) bitmap_init::yoffs#4 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 bitmap_init::@7/(byte*) bitmap_init::yoffs#1 ) @@ -1535,7 +1535,7 @@ bitmap_init::@10: scope:[bitmap_init] from bitmap_init::@1 [784] phi() to:bitmap_init::@2 gfx_init_charset: scope:[gfx_init_charset] from gfx_init::@5 - [785] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 + [785] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 to:gfx_init_charset::@1 gfx_init_charset::@1: scope:[gfx_init_charset] from gfx_init_charset gfx_init_charset::@3 [786] (byte) gfx_init_charset::c#4 ← phi( gfx_init_charset/(byte/signed byte/word/signed word/dword/signed dword) 0 gfx_init_charset::@3/(byte) gfx_init_charset::c#1 ) @@ -1557,7 +1557,7 @@ gfx_init_charset::@3: scope:[gfx_init_charset] from gfx_init_charset::@2 [794] if((byte) gfx_init_charset::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_charset::@1 to:gfx_init_charset::@4 gfx_init_charset::@4: scope:[gfx_init_charset] from gfx_init_charset::@3 - [795] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 + [795] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 to:gfx_init_charset::@return gfx_init_charset::@return: scope:[gfx_init_charset] from gfx_init_charset::@4 [796] return @@ -1575,11 +1575,11 @@ gfx_init_screen4::@2: scope:[gfx_init_screen4] from gfx_init_screen4::@1 gfx_in [800] *((byte*) gfx_init_screen4::ch#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [801] (byte*) gfx_init_screen4::ch#1 ← ++ (byte*) gfx_init_screen4::ch#2 [802] (byte) gfx_init_screen4::cx#1 ← ++ (byte) gfx_init_screen4::cx#2 - [803] if((byte) gfx_init_screen4::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen4::@2 + [803] if((byte) gfx_init_screen4::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen4::@2 to:gfx_init_screen4::@3 gfx_init_screen4::@3: scope:[gfx_init_screen4] from gfx_init_screen4::@2 [804] (byte) gfx_init_screen4::cy#1 ← ++ (byte) gfx_init_screen4::cy#4 - [805] if((byte) gfx_init_screen4::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen4::@1 + [805] if((byte) gfx_init_screen4::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen4::@1 to:gfx_init_screen4::@return gfx_init_screen4::@return: scope:[gfx_init_screen4] from gfx_init_screen4::@3 [806] return @@ -1601,11 +1601,11 @@ gfx_init_screen3::@2: scope:[gfx_init_screen3] from gfx_init_screen3::@1 gfx_in [814] *((byte*) gfx_init_screen3::ch#2) ← (byte~) gfx_init_screen3::$3 [815] (byte*) gfx_init_screen3::ch#1 ← ++ (byte*) gfx_init_screen3::ch#2 [816] (byte) gfx_init_screen3::cx#1 ← ++ (byte) gfx_init_screen3::cx#2 - [817] if((byte) gfx_init_screen3::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen3::@2 + [817] if((byte) gfx_init_screen3::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen3::@2 to:gfx_init_screen3::@3 gfx_init_screen3::@3: scope:[gfx_init_screen3] from gfx_init_screen3::@2 [818] (byte) gfx_init_screen3::cy#1 ← ++ (byte) gfx_init_screen3::cy#4 - [819] if((byte) gfx_init_screen3::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen3::@1 + [819] if((byte) gfx_init_screen3::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen3::@1 to:gfx_init_screen3::@return gfx_init_screen3::@return: scope:[gfx_init_screen3] from gfx_init_screen3::@3 [820] return @@ -1621,18 +1621,18 @@ gfx_init_screen2::@2: scope:[gfx_init_screen2] from gfx_init_screen2::@1 gfx_in [823] (byte*) gfx_init_screen2::ch#2 ← phi( gfx_init_screen2::@1/(byte*) gfx_init_screen2::ch#3 gfx_init_screen2::@2/(byte*) gfx_init_screen2::ch#1 ) [823] (byte) gfx_init_screen2::cx#2 ← phi( gfx_init_screen2::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 gfx_init_screen2::@2/(byte) gfx_init_screen2::cx#1 ) [824] (byte~) gfx_init_screen2::$0 ← (byte) gfx_init_screen2::cx#2 + (byte) gfx_init_screen2::cy#4 - [825] (byte) gfx_init_screen2::col#0 ← (byte~) gfx_init_screen2::$0 & (byte/signed byte/word/signed word/dword/signed dword) 15 - [826] (byte) gfx_init_screen2::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) gfx_init_screen2::col#0 + [825] (byte) gfx_init_screen2::col#0 ← (byte~) gfx_init_screen2::$0 & (byte/signed byte/word/signed word/dword/signed dword) $f + [826] (byte) gfx_init_screen2::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f - (byte) gfx_init_screen2::col#0 [827] (byte~) gfx_init_screen2::$3 ← (byte) gfx_init_screen2::col#0 << (byte/signed byte/word/signed word/dword/signed dword) 4 [828] (byte~) gfx_init_screen2::$4 ← (byte~) gfx_init_screen2::$3 | (byte) gfx_init_screen2::col2#0 [829] *((byte*) gfx_init_screen2::ch#2) ← (byte~) gfx_init_screen2::$4 [830] (byte*) gfx_init_screen2::ch#1 ← ++ (byte*) gfx_init_screen2::ch#2 [831] (byte) gfx_init_screen2::cx#1 ← ++ (byte) gfx_init_screen2::cx#2 - [832] if((byte) gfx_init_screen2::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen2::@2 + [832] if((byte) gfx_init_screen2::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen2::@2 to:gfx_init_screen2::@3 gfx_init_screen2::@3: scope:[gfx_init_screen2] from gfx_init_screen2::@2 [833] (byte) gfx_init_screen2::cy#1 ← ++ (byte) gfx_init_screen2::cy#4 - [834] if((byte) gfx_init_screen2::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen2::@1 + [834] if((byte) gfx_init_screen2::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen2::@1 to:gfx_init_screen2::@return gfx_init_screen2::@return: scope:[gfx_init_screen2] from gfx_init_screen2::@3 [835] return @@ -1648,15 +1648,15 @@ gfx_init_screen1::@2: scope:[gfx_init_screen1] from gfx_init_screen1::@1 gfx_in [838] (byte*) gfx_init_screen1::ch#2 ← phi( gfx_init_screen1::@1/(byte*) gfx_init_screen1::ch#3 gfx_init_screen1::@2/(byte*) gfx_init_screen1::ch#1 ) [838] (byte) gfx_init_screen1::cx#2 ← phi( gfx_init_screen1::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 gfx_init_screen1::@2/(byte) gfx_init_screen1::cx#1 ) [839] (byte~) gfx_init_screen1::$0 ← (byte) gfx_init_screen1::cx#2 + (byte) gfx_init_screen1::cy#4 - [840] (byte~) gfx_init_screen1::$1 ← (byte~) gfx_init_screen1::$0 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [840] (byte~) gfx_init_screen1::$1 ← (byte~) gfx_init_screen1::$0 & (byte/signed byte/word/signed word/dword/signed dword) $f [841] *((byte*) gfx_init_screen1::ch#2) ← (byte~) gfx_init_screen1::$1 [842] (byte*) gfx_init_screen1::ch#1 ← ++ (byte*) gfx_init_screen1::ch#2 [843] (byte) gfx_init_screen1::cx#1 ← ++ (byte) gfx_init_screen1::cx#2 - [844] if((byte) gfx_init_screen1::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen1::@2 + [844] if((byte) gfx_init_screen1::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen1::@2 to:gfx_init_screen1::@3 gfx_init_screen1::@3: scope:[gfx_init_screen1] from gfx_init_screen1::@2 [845] (byte) gfx_init_screen1::cy#1 ← ++ (byte) gfx_init_screen1::cy#4 - [846] if((byte) gfx_init_screen1::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen1::@1 + [846] if((byte) gfx_init_screen1::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen1::@1 to:gfx_init_screen1::@return gfx_init_screen1::@return: scope:[gfx_init_screen1] from gfx_init_screen1::@3 [847] return @@ -1671,24 +1671,24 @@ gfx_init_screen0::@1: scope:[gfx_init_screen0] from gfx_init_screen0 gfx_init_s gfx_init_screen0::@2: scope:[gfx_init_screen0] from gfx_init_screen0::@1 gfx_init_screen0::@2 [850] (byte*) gfx_init_screen0::ch#2 ← phi( gfx_init_screen0::@1/(byte*) gfx_init_screen0::ch#3 gfx_init_screen0::@2/(byte*) gfx_init_screen0::ch#1 ) [850] (byte) gfx_init_screen0::cx#2 ← phi( gfx_init_screen0::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 gfx_init_screen0::@2/(byte) gfx_init_screen0::cx#1 ) - [851] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [851] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [852] (byte~) gfx_init_screen0::$1 ← (byte~) gfx_init_screen0::$0 << (byte/signed byte/word/signed word/dword/signed dword) 4 - [853] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [853] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [854] (byte~) gfx_init_screen0::$3 ← (byte~) gfx_init_screen0::$1 | (byte~) gfx_init_screen0::$2 [855] *((byte*) gfx_init_screen0::ch#2) ← (byte~) gfx_init_screen0::$3 [856] (byte*) gfx_init_screen0::ch#1 ← ++ (byte*) gfx_init_screen0::ch#2 [857] (byte) gfx_init_screen0::cx#1 ← ++ (byte) gfx_init_screen0::cx#2 - [858] if((byte) gfx_init_screen0::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen0::@2 + [858] if((byte) gfx_init_screen0::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen0::@2 to:gfx_init_screen0::@3 gfx_init_screen0::@3: scope:[gfx_init_screen0] from gfx_init_screen0::@2 [859] (byte) gfx_init_screen0::cy#1 ← ++ (byte) gfx_init_screen0::cy#4 - [860] if((byte) gfx_init_screen0::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen0::@1 + [860] if((byte) gfx_init_screen0::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen0::@1 to:gfx_init_screen0::@return gfx_init_screen0::@return: scope:[gfx_init_screen0] from gfx_init_screen0::@3 [861] return to:@return keyboard_init: scope:[keyboard_init] from main - [862] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 + [862] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) $ff [863] *((const 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 diff --git a/src/test/ref/c64dtv-gfxexplorer.log b/src/test/ref/c64dtv-gfxexplorer.log index a4db60cfb..b1b37b40f 100644 --- a/src/test/ref/c64dtv-gfxexplorer.log +++ b/src/test/ref/c64dtv-gfxexplorer.log @@ -5,66 +5,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -75,49 +75,49 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@4 @4: scope:[] from @begin - (byte*) DTV_FEATURE#0 ← ((byte*)) (word/dword/signed dword) 53311 + (byte*) DTV_FEATURE#0 ← ((byte*)) (word/dword/signed dword) $d03f (byte) DTV_FEATURE_ENABLE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_FEATURE_DISABLE_TIL_RESET#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte*) DTV_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53308 + (byte*) DTV_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d03c (byte) DTV_LINEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BORDER_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_HIGHCOLOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DTV_OVERSCAN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte) DTV_COLORRAM_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte) DTV_BADLINE_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) DTV_CHUNKY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte*) DTV_PALETTE#0 ← ((byte*)) (word/dword/signed dword) 53760 - (byte[16]) DTV_PALETTE_DEFAULT#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 54, (byte/word/signed word/dword/signed dword) 190, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 219, (byte/word/signed word/dword/signed dword) 134, (byte/word/signed word/dword/signed dword) 255, (byte/signed byte/word/signed word/dword/signed dword) 41, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 59, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 154, (byte/signed byte/word/signed word/dword/signed dword) 10 } - (byte*) DTV_PLANEA_START_LO#0 ← ((byte*)) (word/dword/signed dword) 53306 - (byte*) DTV_PLANEA_START_MI#0 ← ((byte*)) (word/dword/signed dword) 53307 - (byte*) DTV_PLANEA_START_HI#0 ← ((byte*)) (word/dword/signed dword) 53317 - (byte*) DTV_PLANEA_STEP#0 ← ((byte*)) (word/dword/signed dword) 53318 - (byte*) DTV_PLANEA_MODULO_LO#0 ← ((byte*)) (word/dword/signed dword) 53304 - (byte*) DTV_PLANEA_MODULO_HI#0 ← ((byte*)) (word/dword/signed dword) 53305 - (byte*) DTV_PLANEB_START_LO#0 ← ((byte*)) (word/dword/signed dword) 53321 - (byte*) DTV_PLANEB_START_MI#0 ← ((byte*)) (word/dword/signed dword) 53322 - (byte*) DTV_PLANEB_START_HI#0 ← ((byte*)) (word/dword/signed dword) 53323 - (byte*) DTV_PLANEB_STEP#0 ← ((byte*)) (word/dword/signed dword) 53324 - (byte*) DTV_PLANEB_MODULO_LO#0 ← ((byte*)) (word/dword/signed dword) 53319 - (byte*) DTV_PLANEB_MODULO_HI#0 ← ((byte*)) (word/dword/signed dword) 53320 - (byte*) DTV_SPRITE_BANK#0 ← ((byte*)) (word/dword/signed dword) 53325 - (byte*) DTV_COLOR_BANK_LO#0 ← ((byte*)) (word/dword/signed dword) 53302 - (byte*) DTV_COLOR_BANK_HI#0 ← ((byte*)) (word/dword/signed dword) 53303 - (dword) DTV_COLOR_BANK_DEFAULT#0 ← (dword/signed dword) 120832 - (byte*) DTV_GRAPHICS_VIC_BANK#0 ← ((byte*)) (word/dword/signed dword) 53309 - (byte*) DTV_GRAPHICS_HICOL_BANK#0 ← ((byte*)) (word/dword/signed dword) 53310 + (byte) DTV_COLORRAM_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte) DTV_BADLINE_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) DTV_CHUNKY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte*) DTV_PALETTE#0 ← ((byte*)) (word/dword/signed dword) $d200 + (byte[$10]) DTV_PALETTE_DEFAULT#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $36, (byte/word/signed word/dword/signed dword) $be, (byte/signed byte/word/signed word/dword/signed dword) $58, (byte/word/signed word/dword/signed dword) $db, (byte/word/signed word/dword/signed dword) $86, (byte/word/signed word/dword/signed dword) $ff, (byte/signed byte/word/signed word/dword/signed dword) $29, (byte/signed byte/word/signed word/dword/signed dword) $26, (byte/signed byte/word/signed word/dword/signed dword) $3b, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $9a, (byte/signed byte/word/signed word/dword/signed dword) $a } + (byte*) DTV_PLANEA_START_LO#0 ← ((byte*)) (word/dword/signed dword) $d03a + (byte*) DTV_PLANEA_START_MI#0 ← ((byte*)) (word/dword/signed dword) $d03b + (byte*) DTV_PLANEA_START_HI#0 ← ((byte*)) (word/dword/signed dword) $d045 + (byte*) DTV_PLANEA_STEP#0 ← ((byte*)) (word/dword/signed dword) $d046 + (byte*) DTV_PLANEA_MODULO_LO#0 ← ((byte*)) (word/dword/signed dword) $d038 + (byte*) DTV_PLANEA_MODULO_HI#0 ← ((byte*)) (word/dword/signed dword) $d039 + (byte*) DTV_PLANEB_START_LO#0 ← ((byte*)) (word/dword/signed dword) $d049 + (byte*) DTV_PLANEB_START_MI#0 ← ((byte*)) (word/dword/signed dword) $d04a + (byte*) DTV_PLANEB_START_HI#0 ← ((byte*)) (word/dword/signed dword) $d04b + (byte*) DTV_PLANEB_STEP#0 ← ((byte*)) (word/dword/signed dword) $d04c + (byte*) DTV_PLANEB_MODULO_LO#0 ← ((byte*)) (word/dword/signed dword) $d047 + (byte*) DTV_PLANEB_MODULO_HI#0 ← ((byte*)) (word/dword/signed dword) $d048 + (byte*) DTV_SPRITE_BANK#0 ← ((byte*)) (word/dword/signed dword) $d04d + (byte*) DTV_COLOR_BANK_LO#0 ← ((byte*)) (word/dword/signed dword) $d036 + (byte*) DTV_COLOR_BANK_HI#0 ← ((byte*)) (word/dword/signed dword) $d037 + (dword) DTV_COLOR_BANK_DEFAULT#0 ← (dword/signed dword) $1d800 + (byte*) DTV_GRAPHICS_VIC_BANK#0 ← ((byte*)) (word/dword/signed dword) $d03d + (byte*) DTV_GRAPHICS_HICOL_BANK#0 ← ((byte*)) (word/dword/signed dword) $d03e to:@5 dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_plane_8bppchunky gfx_init_plane_8bppchunky::@4 gfx_init_plane_8bppchunky::@6 gfx_init_plane_charset8 gfx_init_plane_charset8::@8 gfx_init_plane_fill gfx_init_plane_fill::@4 gfx_init_plane_horisontal gfx_init_plane_horisontal2 gfx_init_plane_horisontal2::@4 gfx_init_plane_horisontal::@8 gfx_init_plane_vertical gfx_init_plane_vertical::@4 (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 ← phi( gfx_init_plane_8bppchunky/(byte) dtvSetCpuBankSegment1::cpuBankIdx#0 gfx_init_plane_8bppchunky::@4/(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 gfx_init_plane_8bppchunky::@6/(byte) dtvSetCpuBankSegment1::cpuBankIdx#2 gfx_init_plane_charset8/(byte) dtvSetCpuBankSegment1::cpuBankIdx#9 gfx_init_plane_charset8::@8/(byte) dtvSetCpuBankSegment1::cpuBankIdx#10 gfx_init_plane_fill/(byte) dtvSetCpuBankSegment1::cpuBankIdx#11 gfx_init_plane_fill::@4/(byte) dtvSetCpuBankSegment1::cpuBankIdx#12 gfx_init_plane_horisontal/(byte) dtvSetCpuBankSegment1::cpuBankIdx#3 gfx_init_plane_horisontal2/(byte) dtvSetCpuBankSegment1::cpuBankIdx#5 gfx_init_plane_horisontal2::@4/(byte) dtvSetCpuBankSegment1::cpuBankIdx#6 gfx_init_plane_horisontal::@8/(byte) dtvSetCpuBankSegment1::cpuBankIdx#4 gfx_init_plane_vertical/(byte) dtvSetCpuBankSegment1::cpuBankIdx#7 gfx_init_plane_vertical::@4/(byte) dtvSetCpuBankSegment1::cpuBankIdx#8 ) - (byte*) dtvSetCpuBankSegment1::cpuBank#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) 255 + (byte*) dtvSetCpuBankSegment1::cpuBank#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) $ff *((byte*) dtvSetCpuBankSegment1::cpuBank#0) ← (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 asm { .byte$32,$dd lda$ff .byte$32,$00 } to:dtvSetCpuBankSegment1::@return @@ -125,47 +125,47 @@ dtvSetCpuBankSegment1::@return: scope:[dtvSetCpuBankSegment1] from dtvSetCpuBan return to:@return @5: scope:[] from @4 - (byte*) DTV_BLITTER_SRCA_LO#0 ← ((byte*)) (word/dword/signed dword) 54048 - (byte*) DTV_BLITTER_SRCA_MI#0 ← ((byte*)) (word/dword/signed dword) 54049 - (byte*) DTV_BLITTER_SRCA_HI#0 ← ((byte*)) (word/dword/signed dword) 54050 - (byte*) DTV_BLITTER_SRCA_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) 54051 - (byte*) DTV_BLITTER_SRCA_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) 54052 - (byte*) DTV_BLITTER_SRCA_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) 54053 - (byte*) DTV_BLITTER_SRCA_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) 54054 - (byte*) DTV_BLITTER_SRCA_STEP#0 ← ((byte*)) (word/dword/signed dword) 54055 - (byte*) DTV_BLITTER_SRCB_LO#0 ← ((byte*)) (word/dword/signed dword) 54056 - (byte*) DTV_BLITTER_SRCB_MI#0 ← ((byte*)) (word/dword/signed dword) 54057 - (byte*) DTV_BLITTER_SRCB_HI#0 ← ((byte*)) (word/dword/signed dword) 54058 - (byte*) DTV_BLITTER_SRCB_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) 54059 - (byte*) DTV_BLITTER_SRCB_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) 54060 - (byte*) DTV_BLITTER_SRCB_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) 54061 - (byte*) DTV_BLITTER_SRCB_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) 54062 - (byte*) DTV_BLITTER_SRCB_STEP#0 ← ((byte*)) (word/dword/signed dword) 54063 - (byte*) DTV_BLITTER_DEST_LO#0 ← ((byte*)) (word/dword/signed dword) 54064 - (byte*) DTV_BLITTER_DEST_MI#0 ← ((byte*)) (word/dword/signed dword) 54065 - (byte*) DTV_BLITTER_DEST_HI#0 ← ((byte*)) (word/dword/signed dword) 54066 - (byte*) DTV_BLITTER_DEST_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) 54067 - (byte*) DTV_BLITTER_DEST_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) 54068 - (byte*) DTV_BLITTER_DEST_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) 54069 - (byte*) DTV_BLITTER_DEST_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) 54070 - (byte*) DTV_BLITTER_DEST_STEP#0 ← ((byte*)) (word/dword/signed dword) 54071 - (byte*) DTV_BLITTER_LEN_LO#0 ← ((byte*)) (word/dword/signed dword) 54072 - (byte*) DTV_BLITTER_LEN_HI#0 ← ((byte*)) (word/dword/signed dword) 54073 - (byte*) DTV_BLITTER_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 54074 + (byte*) DTV_BLITTER_SRCA_LO#0 ← ((byte*)) (word/dword/signed dword) $d320 + (byte*) DTV_BLITTER_SRCA_MI#0 ← ((byte*)) (word/dword/signed dword) $d321 + (byte*) DTV_BLITTER_SRCA_HI#0 ← ((byte*)) (word/dword/signed dword) $d322 + (byte*) DTV_BLITTER_SRCA_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) $d323 + (byte*) DTV_BLITTER_SRCA_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) $d324 + (byte*) DTV_BLITTER_SRCA_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) $d325 + (byte*) DTV_BLITTER_SRCA_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) $d326 + (byte*) DTV_BLITTER_SRCA_STEP#0 ← ((byte*)) (word/dword/signed dword) $d327 + (byte*) DTV_BLITTER_SRCB_LO#0 ← ((byte*)) (word/dword/signed dword) $d328 + (byte*) DTV_BLITTER_SRCB_MI#0 ← ((byte*)) (word/dword/signed dword) $d329 + (byte*) DTV_BLITTER_SRCB_HI#0 ← ((byte*)) (word/dword/signed dword) $d32a + (byte*) DTV_BLITTER_SRCB_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) $d32b + (byte*) DTV_BLITTER_SRCB_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) $d32c + (byte*) DTV_BLITTER_SRCB_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) $d32d + (byte*) DTV_BLITTER_SRCB_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) $d32e + (byte*) DTV_BLITTER_SRCB_STEP#0 ← ((byte*)) (word/dword/signed dword) $d32f + (byte*) DTV_BLITTER_DEST_LO#0 ← ((byte*)) (word/dword/signed dword) $d330 + (byte*) DTV_BLITTER_DEST_MI#0 ← ((byte*)) (word/dword/signed dword) $d331 + (byte*) DTV_BLITTER_DEST_HI#0 ← ((byte*)) (word/dword/signed dword) $d332 + (byte*) DTV_BLITTER_DEST_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) $d333 + (byte*) DTV_BLITTER_DEST_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) $d334 + (byte*) DTV_BLITTER_DEST_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) $d335 + (byte*) DTV_BLITTER_DEST_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) $d336 + (byte*) DTV_BLITTER_DEST_STEP#0 ← ((byte*)) (word/dword/signed dword) $d337 + (byte*) DTV_BLITTER_LEN_LO#0 ← ((byte*)) (word/dword/signed dword) $d338 + (byte*) DTV_BLITTER_LEN_HI#0 ← ((byte*)) (word/dword/signed dword) $d339 + (byte*) DTV_BLITTER_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d33a (byte) DTV_BLIT_FORCE_START#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_SRCA_FWD#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_BLIT_SRCB_FWD#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DTV_BLIT_DEST_FWD#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte) DTV_BLIT_VIC_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte) DTV_BLIT_CIA_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) DTV_BLIT_VBLANK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) DTV_BLIT_IRQ_EN#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte*) DTV_BLITTER_TRANSPARANCY#0 ← ((byte*)) (word/dword/signed dword) 54075 + (byte) DTV_BLIT_VIC_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte) DTV_BLIT_CIA_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) DTV_BLIT_VBLANK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) DTV_BLIT_IRQ_EN#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte*) DTV_BLITTER_TRANSPARANCY#0 ← ((byte*)) (word/dword/signed dword) $d33b (byte) DTV_BLIT_DISABLE_B#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_WRITE_TRANSPARENT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_BLIT_WRITE_NONTRANSPARENT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DTV_BLIT_TRANSPARANCY_NONE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte*) DTV_BLITTER_ALU#0 ← ((byte*)) (word/dword/signed dword) 54078 + (byte*) DTV_BLITTER_ALU#0 ← ((byte*)) (word/dword/signed dword) $d33e (byte) DTV_BLIT_SHIFT0#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) DTV_BLIT_SHIFT1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_SHIFT2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -176,20 +176,20 @@ dtvSetCpuBankSegment1::@return: scope:[dtvSetCpuBankSegment1] from dtvSetCpuBan (byte) DTV_BLIT_SHIFT7#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) DTV_BLIT_AND#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) DTV_BLIT_NAND#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte) DTV_BLIT_NOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte) DTV_BLIT_OR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 24 - (byte) DTV_BLIT_XOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) DTV_BLIT_XNOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte) DTV_BLIT_ADD#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) DTV_BLIT_SUB#0 ← (byte/signed byte/word/signed word/dword/signed dword) 56 - (byte*) DTV_BLITTER_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 54079 + (byte) DTV_BLIT_NOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte) DTV_BLIT_OR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $18 + (byte) DTV_BLIT_XOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) DTV_BLIT_XNOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) DTV_BLIT_ADD#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) DTV_BLIT_SUB#0 ← (byte/signed byte/word/signed word/dword/signed dword) $38 + (byte*) DTV_BLITTER_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d33f (byte) DTV_BLIT_CLEAR_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_SRCA_CONT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_BLIT_SRCB_CONT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DTV_BLIT_DEST_CONT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) DTV_BLIT_STATUS_BUSY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_STATUS_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 to:@17 @@ -283,7 +283,7 @@ print_ln: scope:[print_ln] from print_str_lines::@9 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 (byte*) print_char_cursor#23 ← phi( print_ln/(byte*) print_char_cursor#40 print_ln::@1/(byte*) print_char_cursor#23 ) (byte*) print_line_cursor#21 ← phi( print_ln/(byte*) print_line_cursor#38 print_ln::@1/(byte*) print_line_cursor#3 ) - (byte*~) print_ln::$0 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) print_ln::$0 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) print_line_cursor#3 ← (byte*~) print_ln::$0 (bool~) print_ln::$1 ← (byte*) print_line_cursor#3 < (byte*) print_char_cursor#23 if((bool~) print_ln::$1) goto print_ln::@1 @@ -314,7 +314,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 (byte*) print_cls::sc#2 ← phi( print_cls/(byte*) print_cls::sc#0 print_cls::@1/(byte*) print_cls::sc#1 ) *((byte*) print_cls::sc#2) ← (byte) ' ' (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - (byte*~) print_cls::$0 ← (byte*) print_screen#10 + (word/signed word/dword/signed dword) 1000 + (byte*~) print_cls::$0 ← (byte*) print_screen#10 + (word/signed word/dword/signed dword) $3e8 (bool~) print_cls::$1 ← (byte*) print_cls::sc#1 != (byte*~) print_cls::$0 if((bool~) print_cls::$1) goto print_cls::@1 to:print_cls::@2 @@ -359,66 +359,66 @@ print_set_screen::@return: scope:[print_set_screen] from print_set_screen (byte) KEY_CRSR_DOWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) KEY_3#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) KEY_W#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) KEY_A#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) KEY_4#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) KEY_Z#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) KEY_S#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) KEY_E#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) KEY_LSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) KEY_5#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte) KEY_R#0 ← (byte/signed byte/word/signed word/dword/signed dword) 17 - (byte) KEY_D#0 ← (byte/signed byte/word/signed word/dword/signed dword) 18 - (byte) KEY_6#0 ← (byte/signed byte/word/signed word/dword/signed dword) 19 - (byte) KEY_C#0 ← (byte/signed byte/word/signed word/dword/signed dword) 20 - (byte) KEY_F#0 ← (byte/signed byte/word/signed word/dword/signed dword) 21 - (byte) KEY_T#0 ← (byte/signed byte/word/signed word/dword/signed dword) 22 - (byte) KEY_X#0 ← (byte/signed byte/word/signed word/dword/signed dword) 23 - (byte) KEY_7#0 ← (byte/signed byte/word/signed word/dword/signed dword) 24 - (byte) KEY_Y#0 ← (byte/signed byte/word/signed word/dword/signed dword) 25 - (byte) KEY_G#0 ← (byte/signed byte/word/signed word/dword/signed dword) 26 - (byte) KEY_8#0 ← (byte/signed byte/word/signed word/dword/signed dword) 27 - (byte) KEY_B#0 ← (byte/signed byte/word/signed word/dword/signed dword) 28 - (byte) KEY_H#0 ← (byte/signed byte/word/signed word/dword/signed dword) 29 - (byte) KEY_U#0 ← (byte/signed byte/word/signed word/dword/signed dword) 30 - (byte) KEY_V#0 ← (byte/signed byte/word/signed word/dword/signed dword) 31 - (byte) KEY_9#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) KEY_I#0 ← (byte/signed byte/word/signed word/dword/signed dword) 33 - (byte) KEY_J#0 ← (byte/signed byte/word/signed word/dword/signed dword) 34 - (byte) KEY_0#0 ← (byte/signed byte/word/signed word/dword/signed dword) 35 - (byte) KEY_M#0 ← (byte/signed byte/word/signed word/dword/signed dword) 36 - (byte) KEY_K#0 ← (byte/signed byte/word/signed word/dword/signed dword) 37 - (byte) KEY_O#0 ← (byte/signed byte/word/signed word/dword/signed dword) 38 - (byte) KEY_N#0 ← (byte/signed byte/word/signed word/dword/signed dword) 39 - (byte) KEY_PLUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte) KEY_P#0 ← (byte/signed byte/word/signed word/dword/signed dword) 41 - (byte) KEY_L#0 ← (byte/signed byte/word/signed word/dword/signed dword) 42 - (byte) KEY_MINUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 43 - (byte) KEY_DOT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 44 - (byte) KEY_COLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) 45 - (byte) KEY_AT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 46 - (byte) KEY_COMMA#0 ← (byte/signed byte/word/signed word/dword/signed dword) 47 - (byte) KEY_POUND#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) KEY_ASTERISK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) KEY_SEMICOLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 - (byte) KEY_HOME#0 ← (byte/signed byte/word/signed word/dword/signed dword) 51 - (byte) KEY_RSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 52 - (byte) KEY_EQUALS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) KEY_ARROW_UP#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) KEY_SLASH#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte) KEY_1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 56 - (byte) KEY_ARROW_LEFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 57 - (byte) KEY_CTRL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 58 - (byte) KEY_2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 59 - (byte) KEY_SPACE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 60 - (byte) KEY_COMMODORE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 61 - (byte) KEY_Q#0 ← (byte/signed byte/word/signed word/dword/signed dword) 62 - (byte) KEY_RUNSTOP#0 ← (byte/signed byte/word/signed word/dword/signed dword) 63 - (byte[]) keyboard_char_keycodes#0 ← { (byte) KEY_AT#0, (byte) KEY_A#0, (byte) KEY_B#0, (byte) KEY_C#0, (byte) KEY_D#0, (byte) KEY_E#0, (byte) KEY_F#0, (byte) KEY_G#0, (byte) KEY_H#0, (byte) KEY_I#0, (byte) KEY_J#0, (byte) KEY_K#0, (byte) KEY_L#0, (byte) KEY_M#0, (byte) KEY_N#0, (byte) KEY_O#0, (byte) KEY_P#0, (byte) KEY_Q#0, (byte) KEY_R#0, (byte) KEY_S#0, (byte) KEY_T#0, (byte) KEY_U#0, (byte) KEY_V#0, (byte) KEY_W#0, (byte) KEY_X#0, (byte) KEY_Y#0, (byte) KEY_Z#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP#0, (byte) KEY_ARROW_LEFT#0, (byte) KEY_SPACE#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK#0, (byte) KEY_PLUS#0, (byte) KEY_COMMA#0, (byte) KEY_MINUS#0, (byte) KEY_DOT#0, (byte) KEY_SLASH#0, (byte) KEY_0#0, (byte) KEY_1#0, (byte) KEY_2#0, (byte) KEY_3#0, (byte) KEY_4#0, (byte) KEY_5#0, (byte) KEY_6#0, (byte) KEY_7#0, (byte) KEY_8#0, (byte) KEY_9#0, (byte) KEY_COLON#0, (byte) KEY_SEMICOLON#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } - (byte[8]) keyboard_matrix_row_bitmask#0 ← { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } - (byte[8]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } + (byte) KEY_A#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) KEY_4#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) KEY_Z#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) KEY_S#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) KEY_E#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) KEY_LSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f + (byte) KEY_5#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte) KEY_R#0 ← (byte/signed byte/word/signed word/dword/signed dword) $11 + (byte) KEY_D#0 ← (byte/signed byte/word/signed word/dword/signed dword) $12 + (byte) KEY_6#0 ← (byte/signed byte/word/signed word/dword/signed dword) $13 + (byte) KEY_C#0 ← (byte/signed byte/word/signed word/dword/signed dword) $14 + (byte) KEY_F#0 ← (byte/signed byte/word/signed word/dword/signed dword) $15 + (byte) KEY_T#0 ← (byte/signed byte/word/signed word/dword/signed dword) $16 + (byte) KEY_X#0 ← (byte/signed byte/word/signed word/dword/signed dword) $17 + (byte) KEY_7#0 ← (byte/signed byte/word/signed word/dword/signed dword) $18 + (byte) KEY_Y#0 ← (byte/signed byte/word/signed word/dword/signed dword) $19 + (byte) KEY_G#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1a + (byte) KEY_8#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1b + (byte) KEY_B#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1c + (byte) KEY_H#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1d + (byte) KEY_U#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1e + (byte) KEY_V#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1f + (byte) KEY_9#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) KEY_I#0 ← (byte/signed byte/word/signed word/dword/signed dword) $21 + (byte) KEY_J#0 ← (byte/signed byte/word/signed word/dword/signed dword) $22 + (byte) KEY_0#0 ← (byte/signed byte/word/signed word/dword/signed dword) $23 + (byte) KEY_M#0 ← (byte/signed byte/word/signed word/dword/signed dword) $24 + (byte) KEY_K#0 ← (byte/signed byte/word/signed word/dword/signed dword) $25 + (byte) KEY_O#0 ← (byte/signed byte/word/signed word/dword/signed dword) $26 + (byte) KEY_N#0 ← (byte/signed byte/word/signed word/dword/signed dword) $27 + (byte) KEY_PLUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) KEY_P#0 ← (byte/signed byte/word/signed word/dword/signed dword) $29 + (byte) KEY_L#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2a + (byte) KEY_MINUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2b + (byte) KEY_DOT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2c + (byte) KEY_COLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2d + (byte) KEY_AT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2e + (byte) KEY_COMMA#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2f + (byte) KEY_POUND#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) KEY_ASTERISK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) KEY_SEMICOLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) $32 + (byte) KEY_HOME#0 ← (byte/signed byte/word/signed word/dword/signed dword) $33 + (byte) KEY_RSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $34 + (byte) KEY_EQUALS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) KEY_ARROW_UP#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) KEY_SLASH#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte) KEY_1#0 ← (byte/signed byte/word/signed word/dword/signed dword) $38 + (byte) KEY_ARROW_LEFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $39 + (byte) KEY_CTRL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3a + (byte) KEY_2#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3b + (byte) KEY_SPACE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3c + (byte) KEY_COMMODORE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3d + (byte) KEY_Q#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3e + (byte) KEY_RUNSTOP#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3f + (byte[]) keyboard_char_keycodes#0 ← { (byte) KEY_AT#0, (byte) KEY_A#0, (byte) KEY_B#0, (byte) KEY_C#0, (byte) KEY_D#0, (byte) KEY_E#0, (byte) KEY_F#0, (byte) KEY_G#0, (byte) KEY_H#0, (byte) KEY_I#0, (byte) KEY_J#0, (byte) KEY_K#0, (byte) KEY_L#0, (byte) KEY_M#0, (byte) KEY_N#0, (byte) KEY_O#0, (byte) KEY_P#0, (byte) KEY_Q#0, (byte) KEY_R#0, (byte) KEY_S#0, (byte) KEY_T#0, (byte) KEY_U#0, (byte) KEY_V#0, (byte) KEY_W#0, (byte) KEY_X#0, (byte) KEY_Y#0, (byte) KEY_Z#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_POUND#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_ARROW_UP#0, (byte) KEY_ARROW_LEFT#0, (byte) KEY_SPACE#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_ASTERISK#0, (byte) KEY_PLUS#0, (byte) KEY_COMMA#0, (byte) KEY_MINUS#0, (byte) KEY_DOT#0, (byte) KEY_SLASH#0, (byte) KEY_0#0, (byte) KEY_1#0, (byte) KEY_2#0, (byte) KEY_3#0, (byte) KEY_4#0, (byte) KEY_5#0, (byte) KEY_6#0, (byte) KEY_7#0, (byte) KEY_8#0, (byte) KEY_9#0, (byte) KEY_COLON#0, (byte) KEY_SEMICOLON#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_EQUALS#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f } + (byte[8]) keyboard_matrix_row_bitmask#0 ← { (byte/word/signed word/dword/signed dword) $fe, (byte/word/signed word/dword/signed dword) $fd, (byte/word/signed word/dword/signed dword) $fb, (byte/word/signed word/dword/signed dword) $f7, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $bf, (byte/signed byte/word/signed word/dword/signed dword) $7f } + (byte[8]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $10, (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/word/signed word/dword/signed dword) $80 } to:@28 keyboard_init: scope:[keyboard_init] from main - *((byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 + *((byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) $ff *((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 @@ -553,7 +553,7 @@ keyboard_event_scan::@7: scope:[keyboard_event_scan] from keyboard_event_scan:: (byte) keyboard_event_scan::col#7 ← phi( keyboard_event_scan::@16/(byte) keyboard_event_scan::col#4 ) (byte) keyboard_events_size#19 ← phi( keyboard_event_scan::@16/(byte) keyboard_events_size#38 ) (byte) keyboard_event_scan::keycode#5 ← phi( keyboard_event_scan::@16/(byte) keyboard_event_scan::keycode#10 ) - (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#5 | (byte/signed byte/word/signed word/dword/signed dword) 64 + (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#5 | (byte/signed byte/word/signed word/dword/signed dword) $40 *((byte[8]) keyboard_events#0 + (byte) keyboard_events_size#19) ← (byte/word/dword~) keyboard_event_scan::$11 (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#19 to:keyboard_event_scan::@5 @@ -692,7 +692,7 @@ keyboard_event_get: scope:[keyboard_event_get] from form_control::@34 gfx_mode: to:keyboard_event_get::@3 keyboard_event_get::@1: scope:[keyboard_event_get] from keyboard_event_get (byte) keyboard_events_size#41 ← phi( keyboard_event_get/(byte) keyboard_events_size#22 ) - (byte) keyboard_event_get::return#0 ← (byte/word/signed word/dword/signed dword) 255 + (byte) keyboard_event_get::return#0 ← (byte/word/signed word/dword/signed dword) $ff to:keyboard_event_get::@return keyboard_event_get::@3: scope:[keyboard_event_get] from keyboard_event_get (byte) keyboard_events_size#23 ← phi( keyboard_event_get/(byte) keyboard_events_size#22 ) @@ -712,26 +712,26 @@ keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get (byte*) print_char_cursor#72 ← phi( @28/(byte*) print_char_cursor#74 ) (byte*) print_line_cursor#72 ← phi( @28/(byte*) print_line_cursor#74 ) (byte*) print_screen#49 ← phi( @28/(byte*) print_screen#51 ) - (byte[256]) bitmap_plot_xlo#0 ← { fill( 256, 0) } - (byte[256]) bitmap_plot_xhi#0 ← { fill( 256, 0) } - (byte[256]) bitmap_plot_ylo#0 ← { fill( 256, 0) } - (byte[256]) bitmap_plot_yhi#0 ← { fill( 256, 0) } - (byte[256]) bitmap_plot_bit#0 ← { fill( 256, 0) } + (byte[$100]) bitmap_plot_xlo#0 ← { fill( $100, 0) } + (byte[$100]) bitmap_plot_xhi#0 ← { fill( $100, 0) } + (byte[$100]) bitmap_plot_ylo#0 ← { fill( $100, 0) } + (byte[$100]) bitmap_plot_yhi#0 ← { fill( $100, 0) } + (byte[$100]) bitmap_plot_bit#0 ← { fill( $100, 0) } to:@40 bitmap_init: scope:[bitmap_init] from gfx_init_vic_bitmap (byte*) bitmap_init::bitmap#2 ← phi( gfx_init_vic_bitmap/(byte*) bitmap_init::bitmap#0 ) - (byte) bitmap_init::bits#0 ← (byte/word/signed word/dword/signed dword) 128 + (byte) bitmap_init::bits#0 ← (byte/word/signed word/dword/signed dword) $80 (byte) bitmap_init::x#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:bitmap_init::@1 bitmap_init::@1: scope:[bitmap_init] from bitmap_init bitmap_init::@2 (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte) bitmap_init::bits#0 bitmap_init::@2/(byte) bitmap_init::bits#4 ) (byte*) bitmap_init::bitmap#1 ← phi( bitmap_init/(byte*) bitmap_init::bitmap#2 bitmap_init::@2/(byte*) bitmap_init::bitmap#3 ) (byte) bitmap_init::x#2 ← phi( bitmap_init/(byte) bitmap_init::x#0 bitmap_init::@2/(byte) bitmap_init::x#1 ) - (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) 248 - *((byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 + (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) $f8 + *((byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 (byte~) bitmap_init::$1 ← > (byte*) bitmap_init::bitmap#1 - *((byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$1 - *((byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 + *((byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$1 + *((byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 (byte~) bitmap_init::$2 ← (byte) bitmap_init::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) bitmap_init::bits#1 ← (byte~) bitmap_init::$2 (bool~) bitmap_init::$3 ← (byte) bitmap_init::bits#1 == (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -742,14 +742,14 @@ bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@5 (byte) bitmap_init::bits#4 ← phi( bitmap_init::@1/(byte) bitmap_init::bits#1 bitmap_init::@5/(byte) bitmap_init::bits#2 ) (byte*) bitmap_init::bitmap#3 ← phi( bitmap_init::@1/(byte*) bitmap_init::bitmap#1 bitmap_init::@5/(byte*) bitmap_init::bitmap#4 ) (byte) bitmap_init::x#3 ← phi( bitmap_init::@1/(byte) bitmap_init::x#2 bitmap_init::@5/(byte) bitmap_init::x#4 ) - (byte) bitmap_init::x#1 ← (byte) bitmap_init::x#3 + rangenext(0,255) - (bool~) bitmap_init::$5 ← (byte) bitmap_init::x#1 != rangelast(0,255) + (byte) bitmap_init::x#1 ← (byte) bitmap_init::x#3 + rangenext(0,$ff) + (bool~) bitmap_init::$5 ← (byte) bitmap_init::x#1 != rangelast(0,$ff) if((bool~) bitmap_init::$5) goto bitmap_init::@1 to:bitmap_init::@6 bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@1 (byte*) bitmap_init::bitmap#4 ← phi( bitmap_init::@1/(byte*) bitmap_init::bitmap#1 ) (byte) bitmap_init::x#4 ← phi( bitmap_init::@1/(byte) bitmap_init::x#2 ) - (byte) bitmap_init::bits#2 ← (byte/word/signed word/dword/signed dword) 128 + (byte) bitmap_init::bits#2 ← (byte/word/signed word/dword/signed dword) $80 to:bitmap_init::@2 bitmap_init::@6: scope:[bitmap_init] from bitmap_init::@2 (byte*) bitmap_init::yoffs#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -761,9 +761,9 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@4 bitmap_init::@6 (byte~) bitmap_init::$6 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 (byte~) bitmap_init::$7 ← < (byte*) bitmap_init::yoffs#2 (byte~) bitmap_init::$8 ← (byte~) bitmap_init::$6 | (byte~) bitmap_init::$7 - *((byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 + *((byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 (byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2 - *((byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 + *((byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 (bool~) bitmap_init::$11 ← (byte~) bitmap_init::$10 == (byte/signed byte/word/signed word/dword/signed dword) 7 (bool~) bitmap_init::$12 ← ! (bool~) bitmap_init::$11 @@ -772,14 +772,14 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@4 bitmap_init::@6 bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@7 (byte*) bitmap_init::yoffs#4 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 bitmap_init::@7/(byte*) bitmap_init::yoffs#1 ) (byte) bitmap_init::y#3 ← phi( bitmap_init::@3/(byte) bitmap_init::y#2 bitmap_init::@7/(byte) bitmap_init::y#4 ) - (byte) bitmap_init::y#1 ← (byte) bitmap_init::y#3 + rangenext(0,255) - (bool~) bitmap_init::$15 ← (byte) bitmap_init::y#1 != rangelast(0,255) + (byte) bitmap_init::y#1 ← (byte) bitmap_init::y#3 + rangenext(0,$ff) + (bool~) bitmap_init::$15 ← (byte) bitmap_init::y#1 != rangelast(0,$ff) if((bool~) bitmap_init::$15) goto bitmap_init::@3 to:bitmap_init::@return bitmap_init::@7: scope:[bitmap_init] from bitmap_init::@3 (byte) bitmap_init::y#4 ← phi( bitmap_init::@3/(byte) bitmap_init::y#2 ) (byte*) bitmap_init::yoffs#3 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 ) - (word/signed word/dword/signed dword~) bitmap_init::$13 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 8 + (word/signed word/dword/signed dword~) bitmap_init::$13 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 8 (byte*~) bitmap_init::$14 ← (byte*) bitmap_init::yoffs#3 + (word/signed word/dword/signed dword~) bitmap_init::$13 (byte*) bitmap_init::yoffs#1 ← (byte*~) bitmap_init::$14 to:bitmap_init::@4 @@ -787,7 +787,7 @@ bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4 return to:@return bitmap_clear: scope:[bitmap_clear] from gfx_init_vic_bitmap::@3 - (byte*~) bitmap_clear::$0 ← ((byte*)) { *((byte[256]) bitmap_plot_xhi#0 + (byte/signed byte/word/signed word/dword/signed dword) 0), *((byte[256]) bitmap_plot_xlo#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) } + (byte*~) bitmap_clear::$0 ← ((byte*)) { *((byte[$100]) bitmap_plot_xhi#0 + (byte/signed byte/word/signed word/dword/signed dword) 0), *((byte[$100]) bitmap_plot_xlo#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) } (byte*) bitmap_clear::bitmap#0 ← (byte*~) bitmap_clear::$0 (byte) bitmap_clear::y#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:bitmap_clear::@1 @@ -802,15 +802,15 @@ bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1 bitmap_clear::@2 (byte*) bitmap_clear::bitmap#2 ← phi( bitmap_clear::@1/(byte*) bitmap_clear::bitmap#3 bitmap_clear::@2/(byte*) bitmap_clear::bitmap#1 ) *((byte*) bitmap_clear::bitmap#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) bitmap_clear::bitmap#1 ← ++ (byte*) bitmap_clear::bitmap#2 - (byte) bitmap_clear::x#1 ← (byte) bitmap_clear::x#2 + rangenext(0,199) - (bool~) bitmap_clear::$1 ← (byte) bitmap_clear::x#1 != rangelast(0,199) + (byte) bitmap_clear::x#1 ← (byte) bitmap_clear::x#2 + rangenext(0,$c7) + (bool~) bitmap_clear::$1 ← (byte) bitmap_clear::x#1 != rangelast(0,$c7) if((bool~) bitmap_clear::$1) goto bitmap_clear::@2 to:bitmap_clear::@3 bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2 (byte*) bitmap_clear::bitmap#4 ← phi( bitmap_clear::@2/(byte*) bitmap_clear::bitmap#1 ) (byte) bitmap_clear::y#2 ← phi( bitmap_clear::@2/(byte) bitmap_clear::y#3 ) - (byte) bitmap_clear::y#1 ← (byte) bitmap_clear::y#2 + rangenext(0,39) - (bool~) bitmap_clear::$2 ← (byte) bitmap_clear::y#1 != rangelast(0,39) + (byte) bitmap_clear::y#1 ← (byte) bitmap_clear::y#2 + rangenext(0,$27) + (bool~) bitmap_clear::$2 ← (byte) bitmap_clear::y#1 != rangelast(0,$27) if((bool~) bitmap_clear::$2) goto bitmap_clear::@1 to:bitmap_clear::@return bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3 @@ -819,11 +819,11 @@ bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3 bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1 bitmap_line_ydxd::@1 bitmap_line_ydxi::@1 (byte) bitmap_plot::y#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::y#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::y#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::y#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::y#2 ) (byte) bitmap_plot::x#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::x#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::x#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::x#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::x#2 ) - (word) bitmap_plot::plotter_x#0 ← { *((byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4), *((byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) } - (word) bitmap_plot::plotter_y#0 ← { *((byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4), *((byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) } + (word) bitmap_plot::plotter_x#0 ← { *((byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4), *((byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) } + (word) bitmap_plot::plotter_y#0 ← { *((byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4), *((byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) } (word~) bitmap_plot::$0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0 (byte*) bitmap_plot::plotter#0 ← ((byte*)) (word~) bitmap_plot::$0 - (byte~) bitmap_plot::$1 ← *((byte*) bitmap_plot::plotter#0) | *((byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) + (byte~) bitmap_plot::$1 ← *((byte*) bitmap_plot::plotter#0) | *((byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) *((byte*) bitmap_plot::plotter#0) ← (byte~) bitmap_plot::$1 to:bitmap_plot::@return bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot @@ -1374,21 +1374,21 @@ main::@return: scope:[main] from main::@1 (byte*) print_char_cursor#69 ← phi( @31/(byte*) print_char_cursor#72 ) (byte*) print_line_cursor#69 ← phi( @31/(byte*) print_line_cursor#72 ) (byte*) print_screen#46 ← phi( @31/(byte*) print_screen#49 ) - (byte*) VIC_SCREEN0#0 ← ((byte*)) (word/signed word/dword/signed dword) 16384 - (byte*) VIC_SCREEN1#0 ← ((byte*)) (word/signed word/dword/signed dword) 17408 - (byte*) VIC_SCREEN2#0 ← ((byte*)) (word/signed word/dword/signed dword) 18432 - (byte*) VIC_SCREEN3#0 ← ((byte*)) (word/signed word/dword/signed dword) 19456 - (byte*) VIC_SCREEN4#0 ← ((byte*)) (word/signed word/dword/signed dword) 20480 - (byte*) VIC_CHARSET_ROM#0 ← ((byte*)) (word/signed word/dword/signed dword) 22528 - (byte*) VIC_BITMAP#0 ← ((byte*)) (word/signed word/dword/signed dword) 24576 - (dword) PLANE_8BPP_CHUNKY#0 ← (dword/signed dword) 131072 - (dword) PLANE_HORISONTAL#0 ← (dword/signed dword) 196608 - (dword) PLANE_VERTICAL#0 ← (dword/signed dword) 204800 - (dword) PLANE_HORISONTAL2#0 ← (dword/signed dword) 212992 - (dword) PLANE_VERTICAL2#0 ← (dword/signed dword) 221184 - (dword) PLANE_BLANK#0 ← (dword/signed dword) 229376 - (dword) PLANE_FULL#0 ← (dword/signed dword) 237568 - (dword) PLANE_CHARSET8#0 ← (dword/signed dword) 245760 + (byte*) VIC_SCREEN0#0 ← ((byte*)) (word/signed word/dword/signed dword) $4000 + (byte*) VIC_SCREEN1#0 ← ((byte*)) (word/signed word/dword/signed dword) $4400 + (byte*) VIC_SCREEN2#0 ← ((byte*)) (word/signed word/dword/signed dword) $4800 + (byte*) VIC_SCREEN3#0 ← ((byte*)) (word/signed word/dword/signed dword) $4c00 + (byte*) VIC_SCREEN4#0 ← ((byte*)) (word/signed word/dword/signed dword) $5000 + (byte*) VIC_CHARSET_ROM#0 ← ((byte*)) (word/signed word/dword/signed dword) $5800 + (byte*) VIC_BITMAP#0 ← ((byte*)) (word/signed word/dword/signed dword) $6000 + (dword) PLANE_8BPP_CHUNKY#0 ← (dword/signed dword) $20000 + (dword) PLANE_HORISONTAL#0 ← (dword/signed dword) $30000 + (dword) PLANE_VERTICAL#0 ← (dword/signed dword) $32000 + (dword) PLANE_HORISONTAL2#0 ← (dword/signed dword) $34000 + (dword) PLANE_VERTICAL2#0 ← (dword/signed dword) $36000 + (dword) PLANE_BLANK#0 ← (dword/signed dword) $38000 + (dword) PLANE_FULL#0 ← (dword/signed dword) $3a000 + (dword) PLANE_CHARSET8#0 ← (dword/signed dword) $3c000 to:@43 get_plane: scope:[get_plane] from gfx_mode::@46 gfx_mode::@9 (byte) get_plane::idx#2 ← phi( gfx_mode::@46/(byte) get_plane::idx#1 gfx_mode::@9/(byte) get_plane::idx#0 ) @@ -1482,7 +1482,7 @@ get_plane::@10: scope:[get_plane] from get_plane::@36 to:get_plane::@return get_plane::@37: scope:[get_plane] from get_plane::@36 (byte) get_plane::idx#12 ← phi( get_plane::@36/(byte) get_plane::idx#11 ) - (bool~) get_plane::$10 ← (byte) get_plane::idx#12 == (byte/signed byte/word/signed word/dword/signed dword) 10 + (bool~) get_plane::$10 ← (byte) get_plane::idx#12 == (byte/signed byte/word/signed word/dword/signed dword) $a if((bool~) get_plane::$10) goto get_plane::@11 to:get_plane::@38 get_plane::@11: scope:[get_plane] from get_plane::@37 @@ -1491,7 +1491,7 @@ get_plane::@11: scope:[get_plane] from get_plane::@37 to:get_plane::@return get_plane::@38: scope:[get_plane] from get_plane::@37 (byte) get_plane::idx#13 ← phi( get_plane::@37/(byte) get_plane::idx#12 ) - (bool~) get_plane::$11 ← (byte) get_plane::idx#13 == (byte/signed byte/word/signed word/dword/signed dword) 11 + (bool~) get_plane::$11 ← (byte) get_plane::idx#13 == (byte/signed byte/word/signed word/dword/signed dword) $b if((bool~) get_plane::$11) goto get_plane::@12 to:get_plane::@39 get_plane::@12: scope:[get_plane] from get_plane::@38 @@ -1500,7 +1500,7 @@ get_plane::@12: scope:[get_plane] from get_plane::@38 to:get_plane::@return get_plane::@39: scope:[get_plane] from get_plane::@38 (byte) get_plane::idx#14 ← phi( get_plane::@38/(byte) get_plane::idx#13 ) - (bool~) get_plane::$12 ← (byte) get_plane::idx#14 == (byte/signed byte/word/signed word/dword/signed dword) 12 + (bool~) get_plane::$12 ← (byte) get_plane::idx#14 == (byte/signed byte/word/signed word/dword/signed dword) $c if((bool~) get_plane::$12) goto get_plane::@13 to:get_plane::@40 get_plane::@13: scope:[get_plane] from get_plane::@39 @@ -1509,7 +1509,7 @@ get_plane::@13: scope:[get_plane] from get_plane::@39 to:get_plane::@return get_plane::@40: scope:[get_plane] from get_plane::@39 (byte) get_plane::idx#15 ← phi( get_plane::@39/(byte) get_plane::idx#14 ) - (bool~) get_plane::$13 ← (byte) get_plane::idx#15 == (byte/signed byte/word/signed word/dword/signed dword) 13 + (bool~) get_plane::$13 ← (byte) get_plane::idx#15 == (byte/signed byte/word/signed word/dword/signed dword) $d (bool~) get_plane::$14 ← ! (bool~) get_plane::$13 if((bool~) get_plane::$14) goto get_plane::@14 to:get_plane::@41 @@ -1612,8 +1612,8 @@ get_vic_charset::@3: scope:[get_vic_charset] from get_vic_charset::@2 (byte*) print_char_cursor#64 ← phi( @40/(byte*) print_char_cursor#69 ) (byte*) print_line_cursor#64 ← phi( @40/(byte*) print_line_cursor#69 ) (byte*) print_screen#41 ← phi( @40/(byte*) print_screen#46 ) - (byte*) FORM_SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte*) FORM_CHARSET#0 ← ((byte*)) (word/signed word/dword/signed dword) 6144 + (byte*) FORM_SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte*) FORM_CHARSET#0 ← ((byte*)) (word/signed word/dword/signed dword) $1800 (string~) $1 ← (const string) $70 + (const string) $71 (string~) $2 ← (string~) $1 + (const string) $72 (string~) $3 ← (string~) $2 + (const string) $73 @@ -1647,22 +1647,22 @@ get_vic_charset::@3: scope:[get_vic_charset] from get_vic_charset::@2 (string~) $30 ← (string~) $29 + (const string) $101 (string~) $31 ← (string~) $30 + (const string) $102 (byte[]) FORM_COLS#0 ← (string~) $31 - (byte) form_fields_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 36 - (byte[]) form_fields_x#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 24, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 24, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 24, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 24, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 24, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 24, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 37, (byte/signed byte/word/signed word/dword/signed dword) 37, (byte/signed byte/word/signed word/dword/signed dword) 37, (byte/signed byte/word/signed word/dword/signed dword) 37, (byte/signed byte/word/signed word/dword/signed dword) 36, (byte/signed byte/word/signed word/dword/signed dword) 37, (byte/signed byte/word/signed word/dword/signed dword) 36, (byte/signed byte/word/signed word/dword/signed dword) 37, (byte/signed byte/word/signed word/dword/signed dword) 36, (byte/signed byte/word/signed word/dword/signed dword) 37, (byte/signed byte/word/signed word/dword/signed dword) 36, (byte/signed byte/word/signed word/dword/signed dword) 37 } - (byte[]) form_fields_y#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 14, (byte/signed byte/word/signed word/dword/signed dword) 14, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 14, (byte/signed byte/word/signed word/dword/signed dword) 14 } - (byte[]) form_fields_max#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15 } + (byte) form_fields_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) $24 + (byte[]) form_fields_x#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $18, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $18, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $18, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $18, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $18, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $18, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $25, (byte/signed byte/word/signed word/dword/signed dword) $25, (byte/signed byte/word/signed word/dword/signed dword) $25, (byte/signed byte/word/signed word/dword/signed dword) $25, (byte/signed byte/word/signed word/dword/signed dword) $24, (byte/signed byte/word/signed word/dword/signed dword) $25, (byte/signed byte/word/signed word/dword/signed dword) $24, (byte/signed byte/word/signed word/dword/signed dword) $25, (byte/signed byte/word/signed word/dword/signed dword) $24, (byte/signed byte/word/signed word/dword/signed dword) $25, (byte/signed byte/word/signed word/dword/signed dword) $24, (byte/signed byte/word/signed word/dword/signed dword) $25 } + (byte[]) form_fields_y#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $e, (byte/signed byte/word/signed word/dword/signed dword) $e, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $e, (byte/signed byte/word/signed word/dword/signed dword) $e } + (byte[]) form_fields_max#0 ← { (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f } (byte[]) form_fields_val#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) preset_stdchar#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) preset_ecmchar#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 6 } (byte[]) preset_stdbm#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) preset_mcbm#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) preset_hi_stdchar#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } - (byte[]) preset_hi_ecmchar#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12 } - (byte[]) preset_twoplane#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } + (byte[]) preset_hi_ecmchar#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c } + (byte[]) preset_twoplane#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) preset_chunky#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } - (byte[]) preset_sixsfred#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } - (byte[]) preset_sixsfred2#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } - (byte[]) preset_8bpppixelcell#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } + (byte[]) preset_sixsfred#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } + (byte[]) preset_sixsfred2#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } + (byte[]) preset_8bpppixelcell#0 ← { (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } to:@45 apply_preset: scope:[apply_preset] from form_mode::@18 (byte) form_fields_cnt#23 ← phi( form_mode::@18/(byte) form_fields_cnt#37 ) @@ -1768,7 +1768,7 @@ apply_preset::@10: scope:[apply_preset] from apply_preset::@32 apply_preset::@33: scope:[apply_preset] from apply_preset::@32 (byte) form_fields_cnt#33 ← phi( apply_preset::@32/(byte) form_fields_cnt#32 ) (byte) apply_preset::idx#11 ← phi( apply_preset::@32/(byte) apply_preset::idx#10 ) - (bool~) apply_preset::$10 ← (byte) apply_preset::idx#11 == (byte/signed byte/word/signed word/dword/signed dword) 10 + (bool~) apply_preset::$10 ← (byte) apply_preset::idx#11 == (byte/signed byte/word/signed word/dword/signed dword) $a if((bool~) apply_preset::$10) goto apply_preset::@11 to:apply_preset::@34 apply_preset::@11: scope:[apply_preset] from apply_preset::@33 @@ -1879,7 +1879,7 @@ render_preset_name::@10: scope:[render_preset_name] from render_preset_name::@3 to:render_preset_name::@22 render_preset_name::@32: scope:[render_preset_name] from render_preset_name::@31 (byte) render_preset_name::idx#12 ← phi( render_preset_name::@31/(byte) render_preset_name::idx#11 ) - (bool~) render_preset_name::$10 ← (byte) render_preset_name::idx#12 == (byte/signed byte/word/signed word/dword/signed dword) 10 + (bool~) render_preset_name::$10 ← (byte) render_preset_name::idx#12 == (byte/signed byte/word/signed word/dword/signed dword) $a if((bool~) render_preset_name::$10) goto render_preset_name::@11 to:render_preset_name::@33 render_preset_name::@11: scope:[render_preset_name] from render_preset_name::@32 @@ -1890,9 +1890,9 @@ render_preset_name::@33: scope:[render_preset_name] from render_preset_name::@3 to:render_preset_name::@22 render_preset_name::@22: scope:[render_preset_name] from render_preset_name::@1 render_preset_name::@10 render_preset_name::@11 render_preset_name::@2 render_preset_name::@3 render_preset_name::@33 render_preset_name::@4 render_preset_name::@5 render_preset_name::@6 render_preset_name::@7 render_preset_name::@8 render_preset_name::@9 (byte*) render_preset_name::name#13 ← phi( render_preset_name::@1/(byte*) render_preset_name::name#1 render_preset_name::@10/(byte*) render_preset_name::name#10 render_preset_name::@11/(byte*) render_preset_name::name#11 render_preset_name::@2/(byte*) render_preset_name::name#2 render_preset_name::@3/(byte*) render_preset_name::name#3 render_preset_name::@33/(byte*) render_preset_name::name#12 render_preset_name::@4/(byte*) render_preset_name::name#4 render_preset_name::@5/(byte*) render_preset_name::name#5 render_preset_name::@6/(byte*) render_preset_name::name#6 render_preset_name::@7/(byte*) render_preset_name::name#7 render_preset_name::@8/(byte*) render_preset_name::name#8 render_preset_name::@9/(byte*) render_preset_name::name#9 ) - (byte/signed byte/word/signed word/dword/signed dword~) render_preset_name::$11 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte/signed byte/word/signed word/dword/signed dword~) render_preset_name::$11 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 2 (byte*~) render_preset_name::$12 ← (byte*) FORM_SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword~) render_preset_name::$11 - (byte*~) render_preset_name::$13 ← (byte*~) render_preset_name::$12 + (byte/signed byte/word/signed word/dword/signed dword) 10 + (byte*~) render_preset_name::$13 ← (byte*~) render_preset_name::$12 + (byte/signed byte/word/signed word/dword/signed dword) $a (byte*) print_str_at::str#1 ← (byte*) render_preset_name::name#13 (byte*) print_str_at::at#1 ← (byte*~) render_preset_name::$13 call print_str_at @@ -1929,57 +1929,57 @@ render_preset_name::@return: scope:[render_preset_name] from render_preset_name (byte*) form_ctrl_borof#0 ← (byte*~) $40 (byte*~) $41 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 9 (byte*) form_ctrl_overs#0 ← (byte*~) $41 - (byte*~) $42 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 10 + (byte*~) $42 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $a (byte*) form_a_pattern#0 ← (byte*~) $42 - (byte*~) $43 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 11 + (byte*~) $43 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $b (byte*) form_a_start_hi#0 ← (byte*~) $43 - (byte*~) $44 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 12 + (byte*~) $44 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $c (byte*) form_a_start_lo#0 ← (byte*~) $44 - (byte*~) $45 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 13 + (byte*~) $45 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $d (byte*) form_a_step_hi#0 ← (byte*~) $45 - (byte*~) $46 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 14 + (byte*~) $46 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $e (byte*) form_a_step_lo#0 ← (byte*~) $46 - (byte*~) $47 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte*~) $47 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $f (byte*) form_a_mod_hi#0 ← (byte*~) $47 - (byte*~) $48 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*~) $48 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $10 (byte*) form_a_mod_lo#0 ← (byte*~) $48 - (byte*~) $49 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 17 + (byte*~) $49 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $11 (byte*) form_b_pattern#0 ← (byte*~) $49 - (byte*~) $50 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 18 + (byte*~) $50 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $12 (byte*) form_b_start_hi#0 ← (byte*~) $50 - (byte*~) $51 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 19 + (byte*~) $51 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $13 (byte*) form_b_start_lo#0 ← (byte*~) $51 - (byte*~) $52 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 + (byte*~) $52 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $14 (byte*) form_b_step_hi#0 ← (byte*~) $52 - (byte*~) $53 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + (byte*~) $53 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 (byte*) form_b_step_lo#0 ← (byte*~) $53 - (byte*~) $54 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 22 + (byte*~) $54 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $16 (byte*) form_b_mod_hi#0 ← (byte*~) $54 - (byte*~) $55 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 23 + (byte*~) $55 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $17 (byte*) form_b_mod_lo#0 ← (byte*~) $55 - (byte*~) $56 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 24 + (byte*~) $56 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $18 (byte*) form_vic_screen#0 ← (byte*~) $56 - (byte*~) $57 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 25 + (byte*~) $57 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $19 (byte*) form_vic_gfx#0 ← (byte*~) $57 - (byte*~) $58 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 26 + (byte*~) $58 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $1a (byte*) form_vic_cols#0 ← (byte*~) $58 - (byte*~) $59 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 27 + (byte*~) $59 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $1b (byte*) form_dtv_palet#0 ← (byte*~) $59 - (byte*~) $60 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 28 + (byte*~) $60 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $1c (byte*) form_vic_bg0_hi#0 ← (byte*~) $60 - (byte*~) $61 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 29 + (byte*~) $61 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $1d (byte*) form_vic_bg0_lo#0 ← (byte*~) $61 - (byte*~) $62 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 30 + (byte*~) $62 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $1e (byte*) form_vic_bg1_hi#0 ← (byte*~) $62 - (byte*~) $63 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 31 + (byte*~) $63 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $1f (byte*) form_vic_bg1_lo#0 ← (byte*~) $63 - (byte*~) $64 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 32 + (byte*~) $64 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $20 (byte*) form_vic_bg2_hi#0 ← (byte*~) $64 - (byte*~) $65 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 33 + (byte*~) $65 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $21 (byte*) form_vic_bg2_lo#0 ← (byte*~) $65 - (byte*~) $66 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 34 + (byte*~) $66 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $22 (byte*) form_vic_bg3_hi#0 ← (byte*~) $66 - (byte*~) $67 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 35 + (byte*~) $67 ← (byte[]) form_fields_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $23 (byte*) form_vic_bg3_lo#0 ← (byte*~) $67 to:@64 gfx_mode: scope:[gfx_mode] from main::@9 @@ -2185,7 +2185,7 @@ gfx_mode::@47: scope:[gfx_mode] from gfx_mode::@46 *((byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 (word~) gfx_mode::$57 ← ((word)) (byte*) VIC_SCREEN0#0 - (word/signed dword/dword~) gfx_mode::$58 ← (word~) gfx_mode::$57 / (word/signed word/dword/signed dword) 16384 + (word/signed dword/dword~) gfx_mode::$58 ← (word~) gfx_mode::$57 / (word/signed word/dword/signed dword) $4000 (byte~) gfx_mode::$59 ← ((byte)) (word/signed dword/dword~) gfx_mode::$58 (byte/word/dword~) gfx_mode::$60 ← (byte/signed byte/word/signed word/dword/signed dword) 3 ^ (byte~) gfx_mode::$59 *((byte*) CIA2_PORT_A#0) ← (byte/word/dword~) gfx_mode::$60 @@ -2199,7 +2199,7 @@ gfx_mode::@48: scope:[gfx_mode] from gfx_mode::@47 (byte*) get_vic_screen::return#10 ← phi( gfx_mode::@47/(byte*) get_vic_screen::return#7 ) (byte*~) gfx_mode::$61 ← (byte*) get_vic_screen::return#10 (word~) gfx_mode::$62 ← ((word)) (byte*~) gfx_mode::$61 - (word~) gfx_mode::$63 ← (word~) gfx_mode::$62 & (word/signed word/dword/signed dword) 16383 + (word~) gfx_mode::$63 ← (word~) gfx_mode::$62 & (word/signed word/dword/signed dword) $3fff (word~) gfx_mode::$64 ← (word~) gfx_mode::$63 >> (byte/signed byte/word/signed word/dword/signed dword) 6 (byte~) gfx_mode::$65 ← ((byte)) (word~) gfx_mode::$64 (byte) get_vic_charset::idx#0 ← *((byte*) form_vic_gfx#0) @@ -2212,7 +2212,7 @@ gfx_mode::@49: scope:[gfx_mode] from gfx_mode::@48 (byte*) get_vic_charset::return#6 ← phi( gfx_mode::@48/(byte*) get_vic_charset::return#4 ) (byte*~) gfx_mode::$66 ← (byte*) get_vic_charset::return#6 (word~) gfx_mode::$67 ← ((word)) (byte*~) gfx_mode::$66 - (word~) gfx_mode::$68 ← (word~) gfx_mode::$67 & (word/signed word/dword/signed dword) 16383 + (word~) gfx_mode::$68 ← (word~) gfx_mode::$67 & (word/signed word/dword/signed dword) $3fff (byte~) gfx_mode::$69 ← > (word~) gfx_mode::$68 (byte~) gfx_mode::$70 ← (byte~) gfx_mode::$69 >> (byte/signed byte/word/signed word/dword/signed dword) 2 (byte~) gfx_mode::$71 ← (byte~) gfx_mode::$65 | (byte~) gfx_mode::$70 @@ -2255,8 +2255,8 @@ gfx_mode::@11: scope:[gfx_mode] from gfx_mode::@10 gfx_mode::@11 *((byte*) gfx_mode::col#2) ← *((byte*) gfx_mode::vic_colors#2) (byte*) gfx_mode::col#1 ← ++ (byte*) gfx_mode::col#2 (byte*) gfx_mode::vic_colors#1 ← ++ (byte*) gfx_mode::vic_colors#2 - (byte) gfx_mode::cx#1 ← (byte) gfx_mode::cx#2 + rangenext(0,39) - (bool~) gfx_mode::$73 ← (byte) gfx_mode::cx#1 != rangelast(0,39) + (byte) gfx_mode::cx#1 ← (byte) gfx_mode::cx#2 + rangenext(0,$27) + (bool~) gfx_mode::$73 ← (byte) gfx_mode::cx#1 != rangelast(0,$27) if((bool~) gfx_mode::$73) goto gfx_mode::@11 to:gfx_mode::@32 gfx_mode::@32: scope:[gfx_mode] from gfx_mode::@11 @@ -2265,8 +2265,8 @@ gfx_mode::@32: scope:[gfx_mode] from gfx_mode::@11 (byte*) gfx_mode::col#4 ← phi( gfx_mode::@11/(byte*) gfx_mode::col#1 ) (byte*) gfx_mode::vic_colors#4 ← phi( gfx_mode::@11/(byte*) gfx_mode::vic_colors#1 ) (byte) gfx_mode::cy#2 ← phi( gfx_mode::@11/(byte) gfx_mode::cy#3 ) - (byte) gfx_mode::cy#1 ← (byte) gfx_mode::cy#2 + rangenext(0,24) - (bool~) gfx_mode::$74 ← (byte) gfx_mode::cy#1 != rangelast(0,24) + (byte) gfx_mode::cy#1 ← (byte) gfx_mode::cy#2 + rangenext(0,$18) + (bool~) gfx_mode::$74 ← (byte) gfx_mode::cy#1 != rangelast(0,$18) if((bool~) gfx_mode::$74) goto gfx_mode::@10 to:gfx_mode::@33 gfx_mode::@33: scope:[gfx_mode] from gfx_mode::@32 @@ -2303,17 +2303,17 @@ gfx_mode::@13: scope:[gfx_mode] from gfx_mode::@13 gfx_mode::@34 (byte) keyboard_events_size#58 ← phi( gfx_mode::@13/(byte) keyboard_events_size#58 gfx_mode::@34/(byte) keyboard_events_size#82 ) (byte) gfx_mode::j#2 ← phi( gfx_mode::@13/(byte) gfx_mode::j#1 gfx_mode::@34/(byte) gfx_mode::j#0 ) *((byte*) DTV_PALETTE#0 + (byte) gfx_mode::j#2) ← (byte) gfx_mode::j#2 - (byte) gfx_mode::j#1 ← (byte) gfx_mode::j#2 + rangenext(0,15) - (bool~) gfx_mode::$84 ← (byte) gfx_mode::j#1 != rangelast(0,15) + (byte) gfx_mode::j#1 ← (byte) gfx_mode::j#2 + rangenext(0,$f) + (bool~) gfx_mode::$84 ← (byte) gfx_mode::j#1 != rangelast(0,$f) if((bool~) gfx_mode::$84) goto gfx_mode::@13 to:gfx_mode::@16 gfx_mode::@15: scope:[gfx_mode] from gfx_mode::@12 gfx_mode::@15 (byte) keyboard_modifiers#59 ← phi( gfx_mode::@12/(byte) keyboard_modifiers#80 gfx_mode::@15/(byte) keyboard_modifiers#59 ) (byte) keyboard_events_size#59 ← phi( gfx_mode::@12/(byte) keyboard_events_size#83 gfx_mode::@15/(byte) keyboard_events_size#59 ) (byte) gfx_mode::i#2 ← phi( gfx_mode::@12/(byte) gfx_mode::i#0 gfx_mode::@15/(byte) gfx_mode::i#1 ) - *((byte*) DTV_PALETTE#0 + (byte) gfx_mode::i#2) ← *((byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) gfx_mode::i#2) - (byte) gfx_mode::i#1 ← (byte) gfx_mode::i#2 + rangenext(0,15) - (bool~) gfx_mode::$85 ← (byte) gfx_mode::i#1 != rangelast(0,15) + *((byte*) DTV_PALETTE#0 + (byte) gfx_mode::i#2) ← *((byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) gfx_mode::i#2) + (byte) gfx_mode::i#1 ← (byte) gfx_mode::i#2 + rangenext(0,$f) + (bool~) gfx_mode::$85 ← (byte) gfx_mode::i#1 != rangelast(0,$f) if((bool~) gfx_mode::$85) goto gfx_mode::@15 to:gfx_mode::@16 gfx_mode::@16: scope:[gfx_mode] from gfx_mode::@13 gfx_mode::@15 gfx_mode::@22 @@ -2328,7 +2328,7 @@ gfx_mode::@17: scope:[gfx_mode] from gfx_mode::@16 gfx_mode::@19: scope:[gfx_mode] from gfx_mode::@17 gfx_mode::@20 (byte) keyboard_modifiers#61 ← phi( gfx_mode::@17/(byte) keyboard_modifiers#81 gfx_mode::@20/(byte) keyboard_modifiers#82 ) (byte) keyboard_events_size#61 ← phi( gfx_mode::@17/(byte) keyboard_events_size#84 gfx_mode::@20/(byte) keyboard_events_size#85 ) - (bool~) gfx_mode::$86 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 255 + (bool~) gfx_mode::$86 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) $ff if((bool~) gfx_mode::$86) goto gfx_mode::@20 to:gfx_mode::@21 gfx_mode::@20: scope:[gfx_mode] from gfx_mode::@19 @@ -2421,7 +2421,7 @@ gfx_init::@return: scope:[gfx_init] from gfx_init::@15 return to:@return gfx_init_charset: scope:[gfx_init_charset] from gfx_init::@5 - *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 + *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 (byte*) gfx_init_charset::chargen#0 ← (byte*) CHARGEN#0 (byte*) gfx_init_charset::charset#0 ← (byte*) VIC_CHARSET_ROM#0 (byte) gfx_init_charset::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -2448,12 +2448,12 @@ gfx_init_charset::@3: scope:[gfx_init_charset] from gfx_init_charset::@2 (byte*) gfx_init_charset::charset#4 ← phi( gfx_init_charset::@2/(byte*) gfx_init_charset::charset#1 ) (byte*) gfx_init_charset::chargen#4 ← phi( gfx_init_charset::@2/(byte*) gfx_init_charset::chargen#1 ) (byte) gfx_init_charset::c#2 ← phi( gfx_init_charset::@2/(byte) gfx_init_charset::c#3 ) - (byte) gfx_init_charset::c#1 ← (byte) gfx_init_charset::c#2 + rangenext(0,255) - (bool~) gfx_init_charset::$1 ← (byte) gfx_init_charset::c#1 != rangelast(0,255) + (byte) gfx_init_charset::c#1 ← (byte) gfx_init_charset::c#2 + rangenext(0,$ff) + (bool~) gfx_init_charset::$1 ← (byte) gfx_init_charset::c#1 != rangelast(0,$ff) if((bool~) gfx_init_charset::$1) goto gfx_init_charset::@1 to:gfx_init_charset::@4 gfx_init_charset::@4: scope:[gfx_init_charset] from gfx_init_charset::@3 - *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 + *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 to:gfx_init_charset::@return gfx_init_charset::@return: scope:[gfx_init_charset] from gfx_init_charset::@4 return @@ -2471,21 +2471,21 @@ gfx_init_screen0::@2: scope:[gfx_init_screen0] from gfx_init_screen0::@1 gfx_in (byte*) gfx_init_screen0::ch#2 ← phi( gfx_init_screen0::@1/(byte*) gfx_init_screen0::ch#3 gfx_init_screen0::@2/(byte*) gfx_init_screen0::ch#1 ) (byte) gfx_init_screen0::cx#2 ← phi( gfx_init_screen0::@1/(byte) gfx_init_screen0::cx#0 gfx_init_screen0::@2/(byte) gfx_init_screen0::cx#1 ) (byte) gfx_init_screen0::cy#2 ← phi( gfx_init_screen0::@1/(byte) gfx_init_screen0::cy#4 gfx_init_screen0::@2/(byte) gfx_init_screen0::cy#2 ) - (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#2 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte~) gfx_init_screen0::$1 ← (byte~) gfx_init_screen0::$0 << (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte~) gfx_init_screen0::$3 ← (byte~) gfx_init_screen0::$1 | (byte~) gfx_init_screen0::$2 *((byte*) gfx_init_screen0::ch#2) ← (byte~) gfx_init_screen0::$3 (byte*) gfx_init_screen0::ch#1 ← ++ (byte*) gfx_init_screen0::ch#2 - (byte) gfx_init_screen0::cx#1 ← (byte) gfx_init_screen0::cx#2 + rangenext(0,39) - (bool~) gfx_init_screen0::$4 ← (byte) gfx_init_screen0::cx#1 != rangelast(0,39) + (byte) gfx_init_screen0::cx#1 ← (byte) gfx_init_screen0::cx#2 + rangenext(0,$27) + (bool~) gfx_init_screen0::$4 ← (byte) gfx_init_screen0::cx#1 != rangelast(0,$27) if((bool~) gfx_init_screen0::$4) goto gfx_init_screen0::@2 to:gfx_init_screen0::@3 gfx_init_screen0::@3: scope:[gfx_init_screen0] from gfx_init_screen0::@2 (byte*) gfx_init_screen0::ch#4 ← phi( gfx_init_screen0::@2/(byte*) gfx_init_screen0::ch#1 ) (byte) gfx_init_screen0::cy#3 ← phi( gfx_init_screen0::@2/(byte) gfx_init_screen0::cy#2 ) - (byte) gfx_init_screen0::cy#1 ← (byte) gfx_init_screen0::cy#3 + rangenext(0,24) - (bool~) gfx_init_screen0::$5 ← (byte) gfx_init_screen0::cy#1 != rangelast(0,24) + (byte) gfx_init_screen0::cy#1 ← (byte) gfx_init_screen0::cy#3 + rangenext(0,$18) + (bool~) gfx_init_screen0::$5 ← (byte) gfx_init_screen0::cy#1 != rangelast(0,$18) if((bool~) gfx_init_screen0::$5) goto gfx_init_screen0::@1 to:gfx_init_screen0::@return gfx_init_screen0::@return: scope:[gfx_init_screen0] from gfx_init_screen0::@3 @@ -2505,18 +2505,18 @@ gfx_init_screen1::@2: scope:[gfx_init_screen1] from gfx_init_screen1::@1 gfx_in (byte) gfx_init_screen1::cy#2 ← phi( gfx_init_screen1::@1/(byte) gfx_init_screen1::cy#4 gfx_init_screen1::@2/(byte) gfx_init_screen1::cy#2 ) (byte) gfx_init_screen1::cx#2 ← phi( gfx_init_screen1::@1/(byte) gfx_init_screen1::cx#0 gfx_init_screen1::@2/(byte) gfx_init_screen1::cx#1 ) (byte~) gfx_init_screen1::$0 ← (byte) gfx_init_screen1::cx#2 + (byte) gfx_init_screen1::cy#2 - (byte~) gfx_init_screen1::$1 ← (byte~) gfx_init_screen1::$0 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) gfx_init_screen1::$1 ← (byte~) gfx_init_screen1::$0 & (byte/signed byte/word/signed word/dword/signed dword) $f *((byte*) gfx_init_screen1::ch#2) ← (byte~) gfx_init_screen1::$1 (byte*) gfx_init_screen1::ch#1 ← ++ (byte*) gfx_init_screen1::ch#2 - (byte) gfx_init_screen1::cx#1 ← (byte) gfx_init_screen1::cx#2 + rangenext(0,39) - (bool~) gfx_init_screen1::$2 ← (byte) gfx_init_screen1::cx#1 != rangelast(0,39) + (byte) gfx_init_screen1::cx#1 ← (byte) gfx_init_screen1::cx#2 + rangenext(0,$27) + (bool~) gfx_init_screen1::$2 ← (byte) gfx_init_screen1::cx#1 != rangelast(0,$27) if((bool~) gfx_init_screen1::$2) goto gfx_init_screen1::@2 to:gfx_init_screen1::@3 gfx_init_screen1::@3: scope:[gfx_init_screen1] from gfx_init_screen1::@2 (byte*) gfx_init_screen1::ch#4 ← phi( gfx_init_screen1::@2/(byte*) gfx_init_screen1::ch#1 ) (byte) gfx_init_screen1::cy#3 ← phi( gfx_init_screen1::@2/(byte) gfx_init_screen1::cy#2 ) - (byte) gfx_init_screen1::cy#1 ← (byte) gfx_init_screen1::cy#3 + rangenext(0,24) - (bool~) gfx_init_screen1::$3 ← (byte) gfx_init_screen1::cy#1 != rangelast(0,24) + (byte) gfx_init_screen1::cy#1 ← (byte) gfx_init_screen1::cy#3 + rangenext(0,$18) + (bool~) gfx_init_screen1::$3 ← (byte) gfx_init_screen1::cy#1 != rangelast(0,$18) if((bool~) gfx_init_screen1::$3) goto gfx_init_screen1::@1 to:gfx_init_screen1::@return gfx_init_screen1::@return: scope:[gfx_init_screen1] from gfx_init_screen1::@3 @@ -2536,23 +2536,23 @@ gfx_init_screen2::@2: scope:[gfx_init_screen2] from gfx_init_screen2::@1 gfx_in (byte) gfx_init_screen2::cy#2 ← phi( gfx_init_screen2::@1/(byte) gfx_init_screen2::cy#4 gfx_init_screen2::@2/(byte) gfx_init_screen2::cy#2 ) (byte) gfx_init_screen2::cx#2 ← phi( gfx_init_screen2::@1/(byte) gfx_init_screen2::cx#0 gfx_init_screen2::@2/(byte) gfx_init_screen2::cx#1 ) (byte~) gfx_init_screen2::$0 ← (byte) gfx_init_screen2::cx#2 + (byte) gfx_init_screen2::cy#2 - (byte~) gfx_init_screen2::$1 ← (byte~) gfx_init_screen2::$0 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) gfx_init_screen2::$1 ← (byte~) gfx_init_screen2::$0 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte) gfx_init_screen2::col#0 ← (byte~) gfx_init_screen2::$1 - (byte/signed word/word/dword/signed dword~) gfx_init_screen2::$2 ← (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) gfx_init_screen2::col#0 + (byte/signed word/word/dword/signed dword~) gfx_init_screen2::$2 ← (byte/signed byte/word/signed word/dword/signed dword) $f - (byte) gfx_init_screen2::col#0 (byte) gfx_init_screen2::col2#0 ← (byte/signed word/word/dword/signed dword~) gfx_init_screen2::$2 (byte~) gfx_init_screen2::$3 ← (byte) gfx_init_screen2::col#0 << (byte/signed byte/word/signed word/dword/signed dword) 4 (byte~) gfx_init_screen2::$4 ← (byte~) gfx_init_screen2::$3 | (byte) gfx_init_screen2::col2#0 *((byte*) gfx_init_screen2::ch#2) ← (byte~) gfx_init_screen2::$4 (byte*) gfx_init_screen2::ch#1 ← ++ (byte*) gfx_init_screen2::ch#2 - (byte) gfx_init_screen2::cx#1 ← (byte) gfx_init_screen2::cx#2 + rangenext(0,39) - (bool~) gfx_init_screen2::$5 ← (byte) gfx_init_screen2::cx#1 != rangelast(0,39) + (byte) gfx_init_screen2::cx#1 ← (byte) gfx_init_screen2::cx#2 + rangenext(0,$27) + (bool~) gfx_init_screen2::$5 ← (byte) gfx_init_screen2::cx#1 != rangelast(0,$27) if((bool~) gfx_init_screen2::$5) goto gfx_init_screen2::@2 to:gfx_init_screen2::@3 gfx_init_screen2::@3: scope:[gfx_init_screen2] from gfx_init_screen2::@2 (byte*) gfx_init_screen2::ch#4 ← phi( gfx_init_screen2::@2/(byte*) gfx_init_screen2::ch#1 ) (byte) gfx_init_screen2::cy#3 ← phi( gfx_init_screen2::@2/(byte) gfx_init_screen2::cy#2 ) - (byte) gfx_init_screen2::cy#1 ← (byte) gfx_init_screen2::cy#3 + rangenext(0,24) - (bool~) gfx_init_screen2::$6 ← (byte) gfx_init_screen2::cy#1 != rangelast(0,24) + (byte) gfx_init_screen2::cy#1 ← (byte) gfx_init_screen2::cy#3 + rangenext(0,$18) + (bool~) gfx_init_screen2::$6 ← (byte) gfx_init_screen2::cy#1 != rangelast(0,$18) if((bool~) gfx_init_screen2::$6) goto gfx_init_screen2::@1 to:gfx_init_screen2::@return gfx_init_screen2::@return: scope:[gfx_init_screen2] from gfx_init_screen2::@3 @@ -2577,15 +2577,15 @@ gfx_init_screen3::@2: scope:[gfx_init_screen3] from gfx_init_screen3::@1 gfx_in (byte~) gfx_init_screen3::$3 ← (byte~) gfx_init_screen3::$1 | (byte~) gfx_init_screen3::$2 *((byte*) gfx_init_screen3::ch#2) ← (byte~) gfx_init_screen3::$3 (byte*) gfx_init_screen3::ch#1 ← ++ (byte*) gfx_init_screen3::ch#2 - (byte) gfx_init_screen3::cx#1 ← (byte) gfx_init_screen3::cx#2 + rangenext(0,39) - (bool~) gfx_init_screen3::$4 ← (byte) gfx_init_screen3::cx#1 != rangelast(0,39) + (byte) gfx_init_screen3::cx#1 ← (byte) gfx_init_screen3::cx#2 + rangenext(0,$27) + (bool~) gfx_init_screen3::$4 ← (byte) gfx_init_screen3::cx#1 != rangelast(0,$27) if((bool~) gfx_init_screen3::$4) goto gfx_init_screen3::@2 to:gfx_init_screen3::@3 gfx_init_screen3::@3: scope:[gfx_init_screen3] from gfx_init_screen3::@2 (byte*) gfx_init_screen3::ch#4 ← phi( gfx_init_screen3::@2/(byte*) gfx_init_screen3::ch#1 ) (byte) gfx_init_screen3::cy#3 ← phi( gfx_init_screen3::@2/(byte) gfx_init_screen3::cy#2 ) - (byte) gfx_init_screen3::cy#1 ← (byte) gfx_init_screen3::cy#3 + rangenext(0,24) - (bool~) gfx_init_screen3::$5 ← (byte) gfx_init_screen3::cy#1 != rangelast(0,24) + (byte) gfx_init_screen3::cy#1 ← (byte) gfx_init_screen3::cy#3 + rangenext(0,$18) + (bool~) gfx_init_screen3::$5 ← (byte) gfx_init_screen3::cy#1 != rangelast(0,$18) if((bool~) gfx_init_screen3::$5) goto gfx_init_screen3::@1 to:gfx_init_screen3::@return gfx_init_screen3::@return: scope:[gfx_init_screen3] from gfx_init_screen3::@3 @@ -2606,15 +2606,15 @@ gfx_init_screen4::@2: scope:[gfx_init_screen4] from gfx_init_screen4::@1 gfx_in (byte*) gfx_init_screen4::ch#2 ← phi( gfx_init_screen4::@1/(byte*) gfx_init_screen4::ch#3 gfx_init_screen4::@2/(byte*) gfx_init_screen4::ch#1 ) *((byte*) gfx_init_screen4::ch#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) gfx_init_screen4::ch#1 ← ++ (byte*) gfx_init_screen4::ch#2 - (byte) gfx_init_screen4::cx#1 ← (byte) gfx_init_screen4::cx#2 + rangenext(0,39) - (bool~) gfx_init_screen4::$0 ← (byte) gfx_init_screen4::cx#1 != rangelast(0,39) + (byte) gfx_init_screen4::cx#1 ← (byte) gfx_init_screen4::cx#2 + rangenext(0,$27) + (bool~) gfx_init_screen4::$0 ← (byte) gfx_init_screen4::cx#1 != rangelast(0,$27) if((bool~) gfx_init_screen4::$0) goto gfx_init_screen4::@2 to:gfx_init_screen4::@3 gfx_init_screen4::@3: scope:[gfx_init_screen4] from gfx_init_screen4::@2 (byte*) gfx_init_screen4::ch#4 ← phi( gfx_init_screen4::@2/(byte*) gfx_init_screen4::ch#1 ) (byte) gfx_init_screen4::cy#2 ← phi( gfx_init_screen4::@2/(byte) gfx_init_screen4::cy#3 ) - (byte) gfx_init_screen4::cy#1 ← (byte) gfx_init_screen4::cy#2 + rangenext(0,24) - (bool~) gfx_init_screen4::$1 ← (byte) gfx_init_screen4::cy#1 != rangelast(0,24) + (byte) gfx_init_screen4::cy#1 ← (byte) gfx_init_screen4::cy#2 + rangenext(0,$18) + (bool~) gfx_init_screen4::$1 ← (byte) gfx_init_screen4::cy#1 != rangelast(0,$18) if((bool~) gfx_init_screen4::$1) goto gfx_init_screen4::@1 to:gfx_init_screen4::@return gfx_init_screen4::@return: scope:[gfx_init_screen4] from gfx_init_screen4::@3 @@ -2628,8 +2628,8 @@ gfx_init_vic_bitmap::@3: scope:[gfx_init_vic_bitmap] from gfx_init_vic_bitmap call bitmap_clear to:gfx_init_vic_bitmap::@4 gfx_init_vic_bitmap::@4: scope:[gfx_init_vic_bitmap] from gfx_init_vic_bitmap::@3 - (byte[]) gfx_init_vic_bitmap::lines_x#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 128, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 128, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 128 } - (byte[]) gfx_init_vic_bitmap::lines_y#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 199, (byte/word/signed word/dword/signed dword) 199, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/word/signed word/dword/signed dword) 199, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/signed byte/word/signed word/dword/signed dword) 0 } + (byte[]) gfx_init_vic_bitmap::lines_x#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $ff, (byte/word/signed word/dword/signed dword) $ff, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $80, (byte/word/signed word/dword/signed dword) $ff, (byte/word/signed word/dword/signed dword) $80, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $80 } + (byte[]) gfx_init_vic_bitmap::lines_y#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $c7, (byte/word/signed word/dword/signed dword) $c7, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $64, (byte/word/signed word/dword/signed dword) $c7, (byte/signed byte/word/signed word/dword/signed dword) $64, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte) gfx_init_vic_bitmap::lines_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 (byte) gfx_init_vic_bitmap::l#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:gfx_init_vic_bitmap::@1 @@ -2655,7 +2655,7 @@ gfx_init_vic_bitmap::@return: scope:[gfx_init_vic_bitmap] from gfx_init_vic_bit return to:@return gfx_init_plane_8bppchunky: scope:[gfx_init_plane_8bppchunky] from gfx_init::@7 - (dword~) gfx_init_plane_8bppchunky::$0 ← (dword) PLANE_8BPP_CHUNKY#0 / (word/signed word/dword/signed dword) 16384 + (dword~) gfx_init_plane_8bppchunky::$0 ← (dword) PLANE_8BPP_CHUNKY#0 / (word/signed word/dword/signed dword) $4000 (byte~) gfx_init_plane_8bppchunky::$1 ← ((byte)) (dword~) gfx_init_plane_8bppchunky::$0 (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#0 ← (byte~) gfx_init_plane_8bppchunky::$1 (byte) dtvSetCpuBankSegment1::cpuBankIdx#0 ← (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#0 @@ -2664,7 +2664,7 @@ gfx_init_plane_8bppchunky: scope:[gfx_init_plane_8bppchunky] from gfx_init::@7 gfx_init_plane_8bppchunky::@7: scope:[gfx_init_plane_8bppchunky] from gfx_init_plane_8bppchunky (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#3 ← phi( gfx_init_plane_8bppchunky/(byte) gfx_init_plane_8bppchunky::gfxbCpuBank#0 ) (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#1 ← ++ (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#3 - (byte*) gfx_init_plane_8bppchunky::gfxb#0 ← ((byte*)) (word/signed word/dword/signed dword) 16384 + (byte*) gfx_init_plane_8bppchunky::gfxb#0 ← ((byte*)) (word/signed word/dword/signed dword) $4000 (byte) gfx_init_plane_8bppchunky::y#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:gfx_init_plane_8bppchunky::@1 gfx_init_plane_8bppchunky::@1: scope:[gfx_init_plane_8bppchunky] from gfx_init_plane_8bppchunky::@5 gfx_init_plane_8bppchunky::@7 @@ -2678,7 +2678,7 @@ gfx_init_plane_8bppchunky::@2: scope:[gfx_init_plane_8bppchunky] from gfx_init_ (byte) gfx_init_plane_8bppchunky::y#4 ← phi( gfx_init_plane_8bppchunky::@1/(byte) gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::@3/(byte) gfx_init_plane_8bppchunky::y#2 ) (word) gfx_init_plane_8bppchunky::x#3 ← phi( gfx_init_plane_8bppchunky::@1/(word) gfx_init_plane_8bppchunky::x#0 gfx_init_plane_8bppchunky::@3/(word) gfx_init_plane_8bppchunky::x#1 ) (byte*) gfx_init_plane_8bppchunky::gfxb#3 ← phi( gfx_init_plane_8bppchunky::@1/(byte*) gfx_init_plane_8bppchunky::gfxb#5 gfx_init_plane_8bppchunky::@3/(byte*) gfx_init_plane_8bppchunky::gfxb#1 ) - (bool~) gfx_init_plane_8bppchunky::$3 ← (byte*) gfx_init_plane_8bppchunky::gfxb#3 == (word/dword/signed dword) 32768 + (bool~) gfx_init_plane_8bppchunky::$3 ← (byte*) gfx_init_plane_8bppchunky::gfxb#3 == (word/dword/signed dword) $8000 (bool~) gfx_init_plane_8bppchunky::$4 ← ! (bool~) gfx_init_plane_8bppchunky::$3 if((bool~) gfx_init_plane_8bppchunky::$4) goto gfx_init_plane_8bppchunky::@3 to:gfx_init_plane_8bppchunky::@4 @@ -2692,8 +2692,8 @@ gfx_init_plane_8bppchunky::@3: scope:[gfx_init_plane_8bppchunky] from gfx_init_ (byte) gfx_init_plane_8bppchunky::c#0 ← (byte~) gfx_init_plane_8bppchunky::$7 *((byte*) gfx_init_plane_8bppchunky::gfxb#4) ← (byte) gfx_init_plane_8bppchunky::c#0 (byte*) gfx_init_plane_8bppchunky::gfxb#1 ← ++ (byte*) gfx_init_plane_8bppchunky::gfxb#4 - (word) gfx_init_plane_8bppchunky::x#1 ← (word) gfx_init_plane_8bppchunky::x#2 + rangenext(0,319) - (bool~) gfx_init_plane_8bppchunky::$8 ← (word) gfx_init_plane_8bppchunky::x#1 != rangelast(0,319) + (word) gfx_init_plane_8bppchunky::x#1 ← (word) gfx_init_plane_8bppchunky::x#2 + rangenext(0,$13f) + (bool~) gfx_init_plane_8bppchunky::$8 ← (word) gfx_init_plane_8bppchunky::x#1 != rangelast(0,$13f) if((bool~) gfx_init_plane_8bppchunky::$8) goto gfx_init_plane_8bppchunky::@2 to:gfx_init_plane_8bppchunky::@5 gfx_init_plane_8bppchunky::@4: scope:[gfx_init_plane_8bppchunky] from gfx_init_plane_8bppchunky::@2 @@ -2708,18 +2708,18 @@ gfx_init_plane_8bppchunky::@8: scope:[gfx_init_plane_8bppchunky] from gfx_init_ (word) gfx_init_plane_8bppchunky::x#4 ← phi( gfx_init_plane_8bppchunky::@4/(word) gfx_init_plane_8bppchunky::x#5 ) (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#5 ← phi( gfx_init_plane_8bppchunky::@4/(byte) gfx_init_plane_8bppchunky::gfxbCpuBank#4 ) (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#2 ← ++ (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#5 - (byte*) gfx_init_plane_8bppchunky::gfxb#2 ← ((byte*)) (word/signed word/dword/signed dword) 16384 + (byte*) gfx_init_plane_8bppchunky::gfxb#2 ← ((byte*)) (word/signed word/dword/signed dword) $4000 to:gfx_init_plane_8bppchunky::@3 gfx_init_plane_8bppchunky::@5: scope:[gfx_init_plane_8bppchunky] from gfx_init_plane_8bppchunky::@3 (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#9 ← phi( gfx_init_plane_8bppchunky::@3/(byte) gfx_init_plane_8bppchunky::gfxbCpuBank#8 ) (byte*) gfx_init_plane_8bppchunky::gfxb#6 ← phi( gfx_init_plane_8bppchunky::@3/(byte*) gfx_init_plane_8bppchunky::gfxb#1 ) (byte) gfx_init_plane_8bppchunky::y#3 ← phi( gfx_init_plane_8bppchunky::@3/(byte) gfx_init_plane_8bppchunky::y#2 ) - (byte) gfx_init_plane_8bppchunky::y#1 ← (byte) gfx_init_plane_8bppchunky::y#3 + rangenext(0,199) - (bool~) gfx_init_plane_8bppchunky::$9 ← (byte) gfx_init_plane_8bppchunky::y#1 != rangelast(0,199) + (byte) gfx_init_plane_8bppchunky::y#1 ← (byte) gfx_init_plane_8bppchunky::y#3 + rangenext(0,$c7) + (bool~) gfx_init_plane_8bppchunky::$9 ← (byte) gfx_init_plane_8bppchunky::y#1 != rangelast(0,$c7) if((bool~) gfx_init_plane_8bppchunky::$9) goto gfx_init_plane_8bppchunky::@1 to:gfx_init_plane_8bppchunky::@6 gfx_init_plane_8bppchunky::@6: scope:[gfx_init_plane_8bppchunky] from gfx_init_plane_8bppchunky::@5 - (byte/signed byte/word/signed word/dword/signed dword~) gfx_init_plane_8bppchunky::$10 ← (word/signed word/dword/signed dword) 16384 / (word/signed word/dword/signed dword) 16384 + (byte/signed byte/word/signed word/dword/signed dword~) gfx_init_plane_8bppchunky::$10 ← (word/signed word/dword/signed dword) $4000 / (word/signed word/dword/signed dword) $4000 (byte~) gfx_init_plane_8bppchunky::$11 ← ((byte)) (byte/signed byte/word/signed word/dword/signed dword~) gfx_init_plane_8bppchunky::$10 (byte) dtvSetCpuBankSegment1::cpuBankIdx#2 ← (byte~) gfx_init_plane_8bppchunky::$11 call dtvSetCpuBankSegment1 @@ -2730,7 +2730,7 @@ gfx_init_plane_8bppchunky::@return: scope:[gfx_init_plane_8bppchunky] from gfx_ return to:@return gfx_init_plane_horisontal: scope:[gfx_init_plane_horisontal] from gfx_init::@9 - (dword~) gfx_init_plane_horisontal::$0 ← (dword) PLANE_HORISONTAL#0 / (word/signed word/dword/signed dword) 16384 + (dword~) gfx_init_plane_horisontal::$0 ← (dword) PLANE_HORISONTAL#0 / (word/signed word/dword/signed dword) $4000 (byte~) gfx_init_plane_horisontal::$1 ← ((byte)) (dword~) gfx_init_plane_horisontal::$0 (byte) gfx_init_plane_horisontal::gfxbCpuBank#0 ← (byte~) gfx_init_plane_horisontal::$1 (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 ← (byte) gfx_init_plane_horisontal::gfxbCpuBank#0 @@ -2739,8 +2739,8 @@ gfx_init_plane_horisontal: scope:[gfx_init_plane_horisontal] from gfx_init::@9 gfx_init_plane_horisontal::@9: scope:[gfx_init_plane_horisontal] from gfx_init_plane_horisontal (byte) gfx_init_plane_horisontal::gfxbCpuBank#2 ← phi( gfx_init_plane_horisontal/(byte) gfx_init_plane_horisontal::gfxbCpuBank#0 ) (byte) gfx_init_plane_horisontal::gfxbCpuBank#1 ← ++ (byte) gfx_init_plane_horisontal::gfxbCpuBank#2 - (word/dword~) gfx_init_plane_horisontal::$3 ← (dword) PLANE_HORISONTAL#0 & (word/signed word/dword/signed dword) 16383 - (word/dword/signed dword~) gfx_init_plane_horisontal::$4 ← (word/signed word/dword/signed dword) 16384 + (word/dword~) gfx_init_plane_horisontal::$3 + (word/dword~) gfx_init_plane_horisontal::$3 ← (dword) PLANE_HORISONTAL#0 & (word/signed word/dword/signed dword) $3fff + (word/dword/signed dword~) gfx_init_plane_horisontal::$4 ← (word/signed word/dword/signed dword) $4000 + (word/dword~) gfx_init_plane_horisontal::$3 (byte*) gfx_init_plane_horisontal::gfxa#0 ← ((byte*)) (word/dword/signed dword~) gfx_init_plane_horisontal::$4 (byte) gfx_init_plane_horisontal::ay#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:gfx_init_plane_horisontal::@1 @@ -2768,26 +2768,26 @@ gfx_init_plane_horisontal::@5: scope:[gfx_init_plane_horisontal] from gfx_init_ (byte) gfx_init_plane_horisontal::ay#7 ← phi( gfx_init_plane_horisontal::@2/(byte) gfx_init_plane_horisontal::ay#2 ) (byte) gfx_init_plane_horisontal::ax#4 ← phi( gfx_init_plane_horisontal::@2/(byte) gfx_init_plane_horisontal::ax#5 ) (byte*) gfx_init_plane_horisontal::gfxa#4 ← phi( gfx_init_plane_horisontal::@2/(byte*) gfx_init_plane_horisontal::gfxa#5 ) - *((byte*) gfx_init_plane_horisontal::gfxa#4) ← (byte/word/signed word/dword/signed dword) 255 + *((byte*) gfx_init_plane_horisontal::gfxa#4) ← (byte/word/signed word/dword/signed dword) $ff (byte*) gfx_init_plane_horisontal::gfxa#2 ← ++ (byte*) gfx_init_plane_horisontal::gfxa#4 to:gfx_init_plane_horisontal::@4 gfx_init_plane_horisontal::@4: scope:[gfx_init_plane_horisontal] from gfx_init_plane_horisontal::@3 gfx_init_plane_horisontal::@5 (byte*) gfx_init_plane_horisontal::gfxa#7 ← phi( gfx_init_plane_horisontal::@3/(byte*) gfx_init_plane_horisontal::gfxa#1 gfx_init_plane_horisontal::@5/(byte*) gfx_init_plane_horisontal::gfxa#2 ) (byte) gfx_init_plane_horisontal::ay#5 ← phi( gfx_init_plane_horisontal::@3/(byte) gfx_init_plane_horisontal::ay#6 gfx_init_plane_horisontal::@5/(byte) gfx_init_plane_horisontal::ay#7 ) (byte) gfx_init_plane_horisontal::ax#2 ← phi( gfx_init_plane_horisontal::@3/(byte) gfx_init_plane_horisontal::ax#3 gfx_init_plane_horisontal::@5/(byte) gfx_init_plane_horisontal::ax#4 ) - (byte) gfx_init_plane_horisontal::ax#1 ← (byte) gfx_init_plane_horisontal::ax#2 + rangenext(0,39) - (bool~) gfx_init_plane_horisontal::$7 ← (byte) gfx_init_plane_horisontal::ax#1 != rangelast(0,39) + (byte) gfx_init_plane_horisontal::ax#1 ← (byte) gfx_init_plane_horisontal::ax#2 + rangenext(0,$27) + (bool~) gfx_init_plane_horisontal::$7 ← (byte) gfx_init_plane_horisontal::ax#1 != rangelast(0,$27) if((bool~) gfx_init_plane_horisontal::$7) goto gfx_init_plane_horisontal::@2 to:gfx_init_plane_horisontal::@7 gfx_init_plane_horisontal::@7: scope:[gfx_init_plane_horisontal] from gfx_init_plane_horisontal::@4 (byte*) gfx_init_plane_horisontal::gfxa#8 ← phi( gfx_init_plane_horisontal::@4/(byte*) gfx_init_plane_horisontal::gfxa#7 ) (byte) gfx_init_plane_horisontal::ay#3 ← phi( gfx_init_plane_horisontal::@4/(byte) gfx_init_plane_horisontal::ay#5 ) - (byte) gfx_init_plane_horisontal::ay#1 ← (byte) gfx_init_plane_horisontal::ay#3 + rangenext(0,199) - (bool~) gfx_init_plane_horisontal::$8 ← (byte) gfx_init_plane_horisontal::ay#1 != rangelast(0,199) + (byte) gfx_init_plane_horisontal::ay#1 ← (byte) gfx_init_plane_horisontal::ay#3 + rangenext(0,$c7) + (bool~) gfx_init_plane_horisontal::$8 ← (byte) gfx_init_plane_horisontal::ay#1 != rangelast(0,$c7) if((bool~) gfx_init_plane_horisontal::$8) goto gfx_init_plane_horisontal::@1 to:gfx_init_plane_horisontal::@8 gfx_init_plane_horisontal::@8: scope:[gfx_init_plane_horisontal] from gfx_init_plane_horisontal::@7 - (byte/signed byte/word/signed word/dword/signed dword~) gfx_init_plane_horisontal::$9 ← (word/signed word/dword/signed dword) 16384 / (word/signed word/dword/signed dword) 16384 + (byte/signed byte/word/signed word/dword/signed dword~) gfx_init_plane_horisontal::$9 ← (word/signed word/dword/signed dword) $4000 / (word/signed word/dword/signed dword) $4000 (byte~) gfx_init_plane_horisontal::$10 ← ((byte)) (byte/signed byte/word/signed word/dword/signed dword~) gfx_init_plane_horisontal::$9 (byte) dtvSetCpuBankSegment1::cpuBankIdx#4 ← (byte~) gfx_init_plane_horisontal::$10 call dtvSetCpuBankSegment1 @@ -2798,7 +2798,7 @@ gfx_init_plane_horisontal::@return: scope:[gfx_init_plane_horisontal] from gfx_ return to:@return gfx_init_plane_horisontal2: scope:[gfx_init_plane_horisontal2] from gfx_init::@11 - (dword~) gfx_init_plane_horisontal2::$0 ← (dword) PLANE_HORISONTAL2#0 / (word/signed word/dword/signed dword) 16384 + (dword~) gfx_init_plane_horisontal2::$0 ← (dword) PLANE_HORISONTAL2#0 / (word/signed word/dword/signed dword) $4000 (byte~) gfx_init_plane_horisontal2::$1 ← ((byte)) (dword~) gfx_init_plane_horisontal2::$0 (byte) gfx_init_plane_horisontal2::gfxbCpuBank#0 ← (byte~) gfx_init_plane_horisontal2::$1 (byte) dtvSetCpuBankSegment1::cpuBankIdx#5 ← (byte) gfx_init_plane_horisontal2::gfxbCpuBank#0 @@ -2807,10 +2807,10 @@ gfx_init_plane_horisontal2: scope:[gfx_init_plane_horisontal2] from gfx_init::@ gfx_init_plane_horisontal2::@5: scope:[gfx_init_plane_horisontal2] from gfx_init_plane_horisontal2 (byte) gfx_init_plane_horisontal2::gfxbCpuBank#2 ← phi( gfx_init_plane_horisontal2/(byte) gfx_init_plane_horisontal2::gfxbCpuBank#0 ) (byte) gfx_init_plane_horisontal2::gfxbCpuBank#1 ← ++ (byte) gfx_init_plane_horisontal2::gfxbCpuBank#2 - (word/dword~) gfx_init_plane_horisontal2::$3 ← (dword) PLANE_HORISONTAL2#0 & (word/signed word/dword/signed dword) 16383 - (word/dword/signed dword~) gfx_init_plane_horisontal2::$4 ← (word/signed word/dword/signed dword) 16384 + (word/dword~) gfx_init_plane_horisontal2::$3 + (word/dword~) gfx_init_plane_horisontal2::$3 ← (dword) PLANE_HORISONTAL2#0 & (word/signed word/dword/signed dword) $3fff + (word/dword/signed dword~) gfx_init_plane_horisontal2::$4 ← (word/signed word/dword/signed dword) $4000 + (word/dword~) gfx_init_plane_horisontal2::$3 (byte*) gfx_init_plane_horisontal2::gfxa#0 ← ((byte*)) (word/dword/signed dword~) gfx_init_plane_horisontal2::$4 - (byte[]) gfx_init_plane_horisontal2::row_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 85, (byte/word/signed word/dword/signed dword) 170, (byte/word/signed word/dword/signed dword) 255 } + (byte[]) gfx_init_plane_horisontal2::row_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $55, (byte/word/signed word/dword/signed dword) $aa, (byte/word/signed word/dword/signed dword) $ff } (byte) gfx_init_plane_horisontal2::ay#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:gfx_init_plane_horisontal2::@1 gfx_init_plane_horisontal2::@1: scope:[gfx_init_plane_horisontal2] from gfx_init_plane_horisontal2::@3 gfx_init_plane_horisontal2::@5 @@ -2827,19 +2827,19 @@ gfx_init_plane_horisontal2::@2: scope:[gfx_init_plane_horisontal2] from gfx_ini (byte) gfx_init_plane_horisontal2::row#0 ← (byte~) gfx_init_plane_horisontal2::$6 *((byte*) gfx_init_plane_horisontal2::gfxa#2) ← *((byte[]) gfx_init_plane_horisontal2::row_bitmask#0 + (byte) gfx_init_plane_horisontal2::row#0) (byte*) gfx_init_plane_horisontal2::gfxa#1 ← ++ (byte*) gfx_init_plane_horisontal2::gfxa#2 - (byte) gfx_init_plane_horisontal2::ax#1 ← (byte) gfx_init_plane_horisontal2::ax#2 + rangenext(0,39) - (bool~) gfx_init_plane_horisontal2::$7 ← (byte) gfx_init_plane_horisontal2::ax#1 != rangelast(0,39) + (byte) gfx_init_plane_horisontal2::ax#1 ← (byte) gfx_init_plane_horisontal2::ax#2 + rangenext(0,$27) + (bool~) gfx_init_plane_horisontal2::$7 ← (byte) gfx_init_plane_horisontal2::ax#1 != rangelast(0,$27) if((bool~) gfx_init_plane_horisontal2::$7) goto gfx_init_plane_horisontal2::@2 to:gfx_init_plane_horisontal2::@3 gfx_init_plane_horisontal2::@3: scope:[gfx_init_plane_horisontal2] from gfx_init_plane_horisontal2::@2 (byte*) gfx_init_plane_horisontal2::gfxa#4 ← phi( gfx_init_plane_horisontal2::@2/(byte*) gfx_init_plane_horisontal2::gfxa#1 ) (byte) gfx_init_plane_horisontal2::ay#3 ← phi( gfx_init_plane_horisontal2::@2/(byte) gfx_init_plane_horisontal2::ay#2 ) - (byte) gfx_init_plane_horisontal2::ay#1 ← (byte) gfx_init_plane_horisontal2::ay#3 + rangenext(0,199) - (bool~) gfx_init_plane_horisontal2::$8 ← (byte) gfx_init_plane_horisontal2::ay#1 != rangelast(0,199) + (byte) gfx_init_plane_horisontal2::ay#1 ← (byte) gfx_init_plane_horisontal2::ay#3 + rangenext(0,$c7) + (bool~) gfx_init_plane_horisontal2::$8 ← (byte) gfx_init_plane_horisontal2::ay#1 != rangelast(0,$c7) if((bool~) gfx_init_plane_horisontal2::$8) goto gfx_init_plane_horisontal2::@1 to:gfx_init_plane_horisontal2::@4 gfx_init_plane_horisontal2::@4: scope:[gfx_init_plane_horisontal2] from gfx_init_plane_horisontal2::@3 - (byte/signed byte/word/signed word/dword/signed dword~) gfx_init_plane_horisontal2::$9 ← (word/signed word/dword/signed dword) 16384 / (word/signed word/dword/signed dword) 16384 + (byte/signed byte/word/signed word/dword/signed dword~) gfx_init_plane_horisontal2::$9 ← (word/signed word/dword/signed dword) $4000 / (word/signed word/dword/signed dword) $4000 (byte~) gfx_init_plane_horisontal2::$10 ← ((byte)) (byte/signed byte/word/signed word/dword/signed dword~) gfx_init_plane_horisontal2::$9 (byte) dtvSetCpuBankSegment1::cpuBankIdx#6 ← (byte~) gfx_init_plane_horisontal2::$10 call dtvSetCpuBankSegment1 @@ -2850,7 +2850,7 @@ gfx_init_plane_horisontal2::@return: scope:[gfx_init_plane_horisontal2] from gf return to:@return gfx_init_plane_vertical: scope:[gfx_init_plane_vertical] from gfx_init::@10 - (dword~) gfx_init_plane_vertical::$0 ← (dword) PLANE_VERTICAL#0 / (word/signed word/dword/signed dword) 16384 + (dword~) gfx_init_plane_vertical::$0 ← (dword) PLANE_VERTICAL#0 / (word/signed word/dword/signed dword) $4000 (byte~) gfx_init_plane_vertical::$1 ← ((byte)) (dword~) gfx_init_plane_vertical::$0 (byte) gfx_init_plane_vertical::gfxbCpuBank#0 ← (byte~) gfx_init_plane_vertical::$1 (byte) dtvSetCpuBankSegment1::cpuBankIdx#7 ← (byte) gfx_init_plane_vertical::gfxbCpuBank#0 @@ -2859,8 +2859,8 @@ gfx_init_plane_vertical: scope:[gfx_init_plane_vertical] from gfx_init::@10 gfx_init_plane_vertical::@5: scope:[gfx_init_plane_vertical] from gfx_init_plane_vertical (byte) gfx_init_plane_vertical::gfxbCpuBank#2 ← phi( gfx_init_plane_vertical/(byte) gfx_init_plane_vertical::gfxbCpuBank#0 ) (byte) gfx_init_plane_vertical::gfxbCpuBank#1 ← ++ (byte) gfx_init_plane_vertical::gfxbCpuBank#2 - (word/dword~) gfx_init_plane_vertical::$3 ← (dword) PLANE_VERTICAL#0 & (word/signed word/dword/signed dword) 16383 - (word/dword/signed dword~) gfx_init_plane_vertical::$4 ← (word/signed word/dword/signed dword) 16384 + (word/dword~) gfx_init_plane_vertical::$3 + (word/dword~) gfx_init_plane_vertical::$3 ← (dword) PLANE_VERTICAL#0 & (word/signed word/dword/signed dword) $3fff + (word/dword/signed dword~) gfx_init_plane_vertical::$4 ← (word/signed word/dword/signed dword) $4000 + (word/dword~) gfx_init_plane_vertical::$3 (byte*) gfx_init_plane_vertical::gfxb#0 ← ((byte*)) (word/dword/signed dword~) gfx_init_plane_vertical::$4 (byte) gfx_init_plane_vertical::by#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:gfx_init_plane_vertical::@1 @@ -2873,21 +2873,21 @@ gfx_init_plane_vertical::@2: scope:[gfx_init_plane_vertical] from gfx_init_plan (byte) gfx_init_plane_vertical::by#3 ← phi( gfx_init_plane_vertical::@1/(byte) gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::@2/(byte) gfx_init_plane_vertical::by#3 ) (byte) gfx_init_plane_vertical::bx#2 ← phi( gfx_init_plane_vertical::@1/(byte) gfx_init_plane_vertical::bx#0 gfx_init_plane_vertical::@2/(byte) gfx_init_plane_vertical::bx#1 ) (byte*) gfx_init_plane_vertical::gfxb#2 ← phi( gfx_init_plane_vertical::@1/(byte*) gfx_init_plane_vertical::gfxb#3 gfx_init_plane_vertical::@2/(byte*) gfx_init_plane_vertical::gfxb#1 ) - *((byte*) gfx_init_plane_vertical::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 15 + *((byte*) gfx_init_plane_vertical::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $f (byte*) gfx_init_plane_vertical::gfxb#1 ← ++ (byte*) gfx_init_plane_vertical::gfxb#2 - (byte) gfx_init_plane_vertical::bx#1 ← (byte) gfx_init_plane_vertical::bx#2 + rangenext(0,39) - (bool~) gfx_init_plane_vertical::$5 ← (byte) gfx_init_plane_vertical::bx#1 != rangelast(0,39) + (byte) gfx_init_plane_vertical::bx#1 ← (byte) gfx_init_plane_vertical::bx#2 + rangenext(0,$27) + (bool~) gfx_init_plane_vertical::$5 ← (byte) gfx_init_plane_vertical::bx#1 != rangelast(0,$27) if((bool~) gfx_init_plane_vertical::$5) goto gfx_init_plane_vertical::@2 to:gfx_init_plane_vertical::@3 gfx_init_plane_vertical::@3: scope:[gfx_init_plane_vertical] from gfx_init_plane_vertical::@2 (byte*) gfx_init_plane_vertical::gfxb#4 ← phi( gfx_init_plane_vertical::@2/(byte*) gfx_init_plane_vertical::gfxb#1 ) (byte) gfx_init_plane_vertical::by#2 ← phi( gfx_init_plane_vertical::@2/(byte) gfx_init_plane_vertical::by#3 ) - (byte) gfx_init_plane_vertical::by#1 ← (byte) gfx_init_plane_vertical::by#2 + rangenext(0,199) - (bool~) gfx_init_plane_vertical::$6 ← (byte) gfx_init_plane_vertical::by#1 != rangelast(0,199) + (byte) gfx_init_plane_vertical::by#1 ← (byte) gfx_init_plane_vertical::by#2 + rangenext(0,$c7) + (bool~) gfx_init_plane_vertical::$6 ← (byte) gfx_init_plane_vertical::by#1 != rangelast(0,$c7) if((bool~) gfx_init_plane_vertical::$6) goto gfx_init_plane_vertical::@1 to:gfx_init_plane_vertical::@4 gfx_init_plane_vertical::@4: scope:[gfx_init_plane_vertical] from gfx_init_plane_vertical::@3 - (byte/signed byte/word/signed word/dword/signed dword~) gfx_init_plane_vertical::$7 ← (word/signed word/dword/signed dword) 16384 / (word/signed word/dword/signed dword) 16384 + (byte/signed byte/word/signed word/dword/signed dword~) gfx_init_plane_vertical::$7 ← (word/signed word/dword/signed dword) $4000 / (word/signed word/dword/signed dword) $4000 (byte~) gfx_init_plane_vertical::$8 ← ((byte)) (byte/signed byte/word/signed word/dword/signed dword~) gfx_init_plane_vertical::$7 (byte) dtvSetCpuBankSegment1::cpuBankIdx#8 ← (byte~) gfx_init_plane_vertical::$8 call dtvSetCpuBankSegment1 @@ -2898,7 +2898,7 @@ gfx_init_plane_vertical::@return: scope:[gfx_init_plane_vertical] from gfx_init return to:@return gfx_init_plane_charset8: scope:[gfx_init_plane_charset8] from gfx_init::@8 - (dword~) gfx_init_plane_charset8::$0 ← (dword) PLANE_CHARSET8#0 / (word/signed word/dword/signed dword) 16384 + (dword~) gfx_init_plane_charset8::$0 ← (dword) PLANE_CHARSET8#0 / (word/signed word/dword/signed dword) $4000 (byte~) gfx_init_plane_charset8::$1 ← ((byte)) (dword~) gfx_init_plane_charset8::$0 (byte) gfx_init_plane_charset8::gfxbCpuBank#0 ← (byte~) gfx_init_plane_charset8::$1 (byte) dtvSetCpuBankSegment1::cpuBankIdx#9 ← (byte) gfx_init_plane_charset8::gfxbCpuBank#0 @@ -2907,8 +2907,8 @@ gfx_init_plane_charset8: scope:[gfx_init_plane_charset8] from gfx_init::@8 gfx_init_plane_charset8::@9: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8 (byte) gfx_init_plane_charset8::gfxbCpuBank#2 ← phi( gfx_init_plane_charset8/(byte) gfx_init_plane_charset8::gfxbCpuBank#0 ) (byte) gfx_init_plane_charset8::gfxbCpuBank#1 ← ++ (byte) gfx_init_plane_charset8::gfxbCpuBank#2 - (word/dword~) gfx_init_plane_charset8::$3 ← (dword) PLANE_CHARSET8#0 & (word/signed word/dword/signed dword) 16383 - (word/dword/signed dword~) gfx_init_plane_charset8::$4 ← (word/signed word/dword/signed dword) 16384 + (word/dword~) gfx_init_plane_charset8::$3 + (word/dword~) gfx_init_plane_charset8::$3 ← (dword) PLANE_CHARSET8#0 & (word/signed word/dword/signed dword) $3fff + (word/dword/signed dword~) gfx_init_plane_charset8::$4 ← (word/signed word/dword/signed dword) $4000 + (word/dword~) gfx_init_plane_charset8::$3 (byte*) gfx_init_plane_charset8::gfxa#0 ← ((byte*)) (word/dword/signed dword~) gfx_init_plane_charset8::$4 (byte*) gfx_init_plane_charset8::chargen#0 ← (byte*) CHARGEN#0 *((byte*) PROCPORT#0) ← (byte) PROCPORT_RAM_CHARROM#0 @@ -2941,7 +2941,7 @@ gfx_init_plane_charset8::@3: scope:[gfx_init_plane_charset8] from gfx_init_plan (byte*) gfx_init_plane_charset8::gfxa#3 ← phi( gfx_init_plane_charset8::@2/(byte*) gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::@4/(byte*) gfx_init_plane_charset8::gfxa#1 ) (byte) gfx_init_plane_charset8::bits#2 ← phi( gfx_init_plane_charset8::@2/(byte) gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::@4/(byte) gfx_init_plane_charset8::bits#1 ) (byte) gfx_init_plane_charset8::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte~) gfx_init_plane_charset8::$5 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) 128 + (byte~) gfx_init_plane_charset8::$5 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) $80 (bool~) gfx_init_plane_charset8::$6 ← (byte~) gfx_init_plane_charset8::$5 != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) gfx_init_plane_charset8::$7 ← ! (bool~) gfx_init_plane_charset8::$6 if((bool~) gfx_init_plane_charset8::$7) goto gfx_init_plane_charset8::@4 @@ -2989,13 +2989,13 @@ gfx_init_plane_charset8::@7: scope:[gfx_init_plane_charset8] from gfx_init_plan (byte*) gfx_init_plane_charset8::gfxa#8 ← phi( gfx_init_plane_charset8::@6/(byte*) gfx_init_plane_charset8::gfxa#7 ) (byte*) gfx_init_plane_charset8::chargen#5 ← phi( gfx_init_plane_charset8::@6/(byte*) gfx_init_plane_charset8::chargen#4 ) (byte) gfx_init_plane_charset8::ch#2 ← phi( gfx_init_plane_charset8::@6/(byte) gfx_init_plane_charset8::ch#3 ) - (byte) gfx_init_plane_charset8::ch#1 ← (byte) gfx_init_plane_charset8::ch#2 + rangenext(0,255) - (bool~) gfx_init_plane_charset8::$11 ← (byte) gfx_init_plane_charset8::ch#1 != rangelast(0,255) + (byte) gfx_init_plane_charset8::ch#1 ← (byte) gfx_init_plane_charset8::ch#2 + rangenext(0,$ff) + (bool~) gfx_init_plane_charset8::$11 ← (byte) gfx_init_plane_charset8::ch#1 != rangelast(0,$ff) if((bool~) gfx_init_plane_charset8::$11) goto gfx_init_plane_charset8::@1 to:gfx_init_plane_charset8::@8 gfx_init_plane_charset8::@8: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@7 *((byte*) PROCPORT#0) ← (byte) PROCPORT_RAM_IO#0 - (byte/signed byte/word/signed word/dword/signed dword~) gfx_init_plane_charset8::$12 ← (word/signed word/dword/signed dword) 16384 / (word/signed word/dword/signed dword) 16384 + (byte/signed byte/word/signed word/dword/signed dword~) gfx_init_plane_charset8::$12 ← (word/signed word/dword/signed dword) $4000 / (word/signed word/dword/signed dword) $4000 (byte~) gfx_init_plane_charset8::$13 ← ((byte)) (byte/signed byte/word/signed word/dword/signed dword~) gfx_init_plane_charset8::$12 (byte) dtvSetCpuBankSegment1::cpuBankIdx#10 ← (byte~) gfx_init_plane_charset8::$13 call dtvSetCpuBankSegment1 @@ -3007,7 +3007,7 @@ gfx_init_plane_charset8::@return: scope:[gfx_init_plane_charset8] from gfx_init to:@return gfx_init_plane_vertical2: scope:[gfx_init_plane_vertical2] from gfx_init::@12 (dword) gfx_init_plane_fill::plane_addr#0 ← (dword) PLANE_VERTICAL2#0 - (byte) gfx_init_plane_fill::fill#0 ← (byte/signed byte/word/signed word/dword/signed dword) 27 + (byte) gfx_init_plane_fill::fill#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1b call gfx_init_plane_fill to:gfx_init_plane_vertical2::@1 gfx_init_plane_vertical2::@1: scope:[gfx_init_plane_vertical2] from gfx_init_plane_vertical2 @@ -3027,7 +3027,7 @@ gfx_init_plane_blank::@return: scope:[gfx_init_plane_blank] from gfx_init_plane to:@return gfx_init_plane_full: scope:[gfx_init_plane_full] from gfx_init::@14 (dword) gfx_init_plane_fill::plane_addr#2 ← (dword) PLANE_FULL#0 - (byte) gfx_init_plane_fill::fill#2 ← (byte/word/signed word/dword/signed dword) 255 + (byte) gfx_init_plane_fill::fill#2 ← (byte/word/signed word/dword/signed dword) $ff call gfx_init_plane_fill to:gfx_init_plane_full::@1 gfx_init_plane_full::@1: scope:[gfx_init_plane_full] from gfx_init_plane_full @@ -3051,8 +3051,8 @@ gfx_init_plane_fill::@5: scope:[gfx_init_plane_fill] from gfx_init_plane_fill (byte) gfx_init_plane_fill::gfxbCpuBank#2 ← phi( gfx_init_plane_fill/(byte) gfx_init_plane_fill::gfxbCpuBank#0 ) (byte) gfx_init_plane_fill::gfxbCpuBank#1 ← ++ (byte) gfx_init_plane_fill::gfxbCpuBank#2 (word~) gfx_init_plane_fill::$4 ← < (dword) gfx_init_plane_fill::plane_addr#4 - (word~) gfx_init_plane_fill::$5 ← (word~) gfx_init_plane_fill::$4 & (word/signed word/dword/signed dword) 16383 - (word/signed dword/dword~) gfx_init_plane_fill::$6 ← (word/signed word/dword/signed dword) 16384 + (word~) gfx_init_plane_fill::$5 + (word~) gfx_init_plane_fill::$5 ← (word~) gfx_init_plane_fill::$4 & (word/signed word/dword/signed dword) $3fff + (word/signed dword/dword~) gfx_init_plane_fill::$6 ← (word/signed word/dword/signed dword) $4000 + (word~) gfx_init_plane_fill::$5 (byte*) gfx_init_plane_fill::gfxb#0 ← ((byte*)) (word/signed dword/dword~) gfx_init_plane_fill::$6 (byte) gfx_init_plane_fill::by#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:gfx_init_plane_fill::@1 @@ -3069,20 +3069,20 @@ gfx_init_plane_fill::@2: scope:[gfx_init_plane_fill] from gfx_init_plane_fill:: (byte) gfx_init_plane_fill::fill#3 ← phi( gfx_init_plane_fill::@1/(byte) gfx_init_plane_fill::fill#4 gfx_init_plane_fill::@2/(byte) gfx_init_plane_fill::fill#3 ) *((byte*) gfx_init_plane_fill::gfxb#2) ← (byte) gfx_init_plane_fill::fill#3 (byte*) gfx_init_plane_fill::gfxb#1 ← ++ (byte*) gfx_init_plane_fill::gfxb#2 - (byte) gfx_init_plane_fill::bx#1 ← (byte) gfx_init_plane_fill::bx#2 + rangenext(0,39) - (bool~) gfx_init_plane_fill::$7 ← (byte) gfx_init_plane_fill::bx#1 != rangelast(0,39) + (byte) gfx_init_plane_fill::bx#1 ← (byte) gfx_init_plane_fill::bx#2 + rangenext(0,$27) + (bool~) gfx_init_plane_fill::$7 ← (byte) gfx_init_plane_fill::bx#1 != rangelast(0,$27) if((bool~) gfx_init_plane_fill::$7) goto gfx_init_plane_fill::@2 to:gfx_init_plane_fill::@3 gfx_init_plane_fill::@3: scope:[gfx_init_plane_fill] from gfx_init_plane_fill::@2 (byte*) gfx_init_plane_fill::gfxb#4 ← phi( gfx_init_plane_fill::@2/(byte*) gfx_init_plane_fill::gfxb#1 ) (byte) gfx_init_plane_fill::fill#5 ← phi( gfx_init_plane_fill::@2/(byte) gfx_init_plane_fill::fill#3 ) (byte) gfx_init_plane_fill::by#2 ← phi( gfx_init_plane_fill::@2/(byte) gfx_init_plane_fill::by#3 ) - (byte) gfx_init_plane_fill::by#1 ← (byte) gfx_init_plane_fill::by#2 + rangenext(0,199) - (bool~) gfx_init_plane_fill::$8 ← (byte) gfx_init_plane_fill::by#1 != rangelast(0,199) + (byte) gfx_init_plane_fill::by#1 ← (byte) gfx_init_plane_fill::by#2 + rangenext(0,$c7) + (bool~) gfx_init_plane_fill::$8 ← (byte) gfx_init_plane_fill::by#1 != rangelast(0,$c7) if((bool~) gfx_init_plane_fill::$8) goto gfx_init_plane_fill::@1 to:gfx_init_plane_fill::@4 gfx_init_plane_fill::@4: scope:[gfx_init_plane_fill] from gfx_init_plane_fill::@3 - (byte/signed byte/word/signed word/dword/signed dword~) gfx_init_plane_fill::$9 ← (word/signed word/dword/signed dword) 16384 / (word/signed word/dword/signed dword) 16384 + (byte/signed byte/word/signed word/dword/signed dword~) gfx_init_plane_fill::$9 ← (word/signed word/dword/signed dword) $4000 / (word/signed word/dword/signed dword) $4000 (byte~) gfx_init_plane_fill::$10 ← ((byte)) (byte/signed byte/word/signed word/dword/signed dword~) gfx_init_plane_fill::$9 (byte) dtvSetCpuBankSegment1::cpuBankIdx#12 ← (byte~) gfx_init_plane_fill::$10 call dtvSetCpuBankSegment1 @@ -3221,20 +3221,20 @@ form_mode::@29: scope:[form_mode] from form_mode::@28 (byte*) print_line_cursor#65 ← phi( form_mode::@28/(byte*) print_line_cursor#70 ) (byte*) print_screen#42 ← phi( form_mode::@28/(byte*) print_screen#47 ) (dword~) form_mode::$9 ← ((dword)) (byte*) FORM_CHARSET#0 - (dword~) form_mode::$10 ← (dword~) form_mode::$9 / (dword/signed dword) 65536 + (dword~) form_mode::$10 ← (dword~) form_mode::$9 / (dword/signed dword) $10000 (byte~) form_mode::$11 ← ((byte)) (dword~) form_mode::$10 *((byte*) DTV_GRAPHICS_VIC_BANK#0) ← (byte~) form_mode::$11 - (dword~) form_mode::$12 ← (dword) DTV_COLOR_BANK_DEFAULT#0 / (word/signed word/dword/signed dword) 1024 + (dword~) form_mode::$12 ← (dword) DTV_COLOR_BANK_DEFAULT#0 / (word/signed word/dword/signed dword) $400 (word~) form_mode::$13 ← ((word)) (dword~) form_mode::$12 (byte~) form_mode::$14 ← < (word~) form_mode::$13 *((byte*) DTV_COLOR_BANK_LO#0) ← (byte~) form_mode::$14 - (dword~) form_mode::$15 ← (dword) DTV_COLOR_BANK_DEFAULT#0 / (word/signed word/dword/signed dword) 1024 + (dword~) form_mode::$15 ← (dword) DTV_COLOR_BANK_DEFAULT#0 / (word/signed word/dword/signed dword) $400 (word~) form_mode::$16 ← ((word)) (dword~) form_mode::$15 (byte~) form_mode::$17 ← > (word~) form_mode::$16 *((byte*) DTV_COLOR_BANK_HI#0) ← (byte~) form_mode::$17 *((byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 (word~) form_mode::$18 ← ((word)) (byte*) FORM_CHARSET#0 - (word/signed dword/dword~) form_mode::$19 ← (word~) form_mode::$18 / (word/signed word/dword/signed dword) 16384 + (word/signed dword/dword~) form_mode::$19 ← (word~) form_mode::$18 / (word/signed word/dword/signed dword) $4000 (byte~) form_mode::$20 ← ((byte)) (word/signed dword/dword~) form_mode::$19 (byte/word/dword~) form_mode::$21 ← (byte/signed byte/word/signed word/dword/signed dword) 3 ^ (byte~) form_mode::$20 *((byte*) CIA2_PORT_A#0) ← (byte/word/dword~) form_mode::$21 @@ -3244,11 +3244,11 @@ form_mode::@29: scope:[form_mode] from form_mode::@28 *((byte*) VIC_CONTROL#0) ← (byte/word/dword~) form_mode::$23 *((byte*) VIC_CONTROL2#0) ← (byte) VIC_CSEL#0 (word~) form_mode::$24 ← ((word)) (byte*) FORM_SCREEN#0 - (word~) form_mode::$25 ← (word~) form_mode::$24 & (word/signed word/dword/signed dword) 16383 - (word/signed dword/dword~) form_mode::$26 ← (word~) form_mode::$25 / (byte/signed byte/word/signed word/dword/signed dword) 64 + (word~) form_mode::$25 ← (word~) form_mode::$24 & (word/signed word/dword/signed dword) $3fff + (word/signed dword/dword~) form_mode::$26 ← (word~) form_mode::$25 / (byte/signed byte/word/signed word/dword/signed dword) $40 (word~) form_mode::$27 ← ((word)) (byte*) FORM_CHARSET#0 - (word~) form_mode::$28 ← (word~) form_mode::$27 & (word/signed word/dword/signed dword) 16383 - (word/signed dword/dword~) form_mode::$29 ← (word~) form_mode::$28 / (word/signed word/dword/signed dword) 1024 + (word~) form_mode::$28 ← (word~) form_mode::$27 & (word/signed word/dword/signed dword) $3fff + (word/signed dword/dword~) form_mode::$29 ← (word~) form_mode::$28 / (word/signed word/dword/signed dword) $400 (word/dword~) form_mode::$30 ← (word/signed dword/dword~) form_mode::$26 | (word/signed dword/dword~) form_mode::$29 (byte~) form_mode::$31 ← ((byte)) (word/dword~) form_mode::$30 *((byte*) VIC_MEMORY#0) ← (byte~) form_mode::$31 @@ -3269,9 +3269,9 @@ form_mode::@1: scope:[form_mode] from form_mode::@1 form_mode::@29 (byte*) print_line_cursor#57 ← phi( form_mode::@1/(byte*) print_line_cursor#57 form_mode::@29/(byte*) print_line_cursor#65 ) (byte*) print_screen#35 ← phi( form_mode::@1/(byte*) print_screen#35 form_mode::@29/(byte*) print_screen#42 ) (byte) form_mode::i#2 ← phi( form_mode::@1/(byte) form_mode::i#1 form_mode::@29/(byte) form_mode::i#0 ) - *((byte*) DTV_PALETTE#0 + (byte) form_mode::i#2) ← *((byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) form_mode::i#2) - (byte) form_mode::i#1 ← (byte) form_mode::i#2 + rangenext(0,15) - (bool~) form_mode::$34 ← (byte) form_mode::i#1 != rangelast(0,15) + *((byte*) DTV_PALETTE#0 + (byte) form_mode::i#2) ← *((byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) form_mode::i#2) + (byte) form_mode::i#1 ← (byte) form_mode::i#2 + rangenext(0,$f) + (bool~) form_mode::$34 ← (byte) form_mode::i#1 != rangelast(0,$f) if((bool~) form_mode::$34) goto form_mode::@1 to:form_mode::@10 form_mode::@10: scope:[form_mode] from form_mode::@1 @@ -3320,7 +3320,7 @@ form_mode::@5: scope:[form_mode] from form_mode::@3 form_mode::@6 (byte) keyboard_modifiers#65 ← phi( form_mode::@3/(byte) keyboard_modifiers#84 form_mode::@6/(byte) keyboard_modifiers#85 ) (byte) keyboard_events_size#65 ← phi( form_mode::@3/(byte) keyboard_events_size#87 form_mode::@6/(byte) keyboard_events_size#88 ) (signed byte) form_cursor_count#32 ← phi( form_mode::@3/(signed byte) form_cursor_count#40 form_mode::@6/(signed byte) form_cursor_count#41 ) - (bool~) form_mode::$35 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 255 + (bool~) form_mode::$35 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) $ff if((bool~) form_mode::$35) goto form_mode::@6 to:form_mode::@7 form_mode::@6: scope:[form_mode] from form_mode::@5 @@ -3464,10 +3464,10 @@ form_mode::@33: scope:[form_mode] from form_mode::@32 (byte*) print_char_cursor#56 ← phi( @45/(byte*) print_char_cursor#62 ) (byte*) print_line_cursor#53 ← phi( @45/(byte*) print_line_cursor#61 ) (byte*) print_screen#33 ← phi( @45/(byte*) print_screen#39 ) - (byte[25]) form_line_lo#0 ← { fill( 25, 0) } - (byte[25]) form_line_hi#0 ← { fill( 25, 0) } + (byte[$19]) form_line_lo#0 ← { fill( $19, 0) } + (byte[$19]) form_line_hi#0 ← { fill( $19, 0) } (byte) form_field_idx#4 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (signed byte) FORM_CURSOR_BLINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 40 + (signed byte) FORM_CURSOR_BLINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $28 (signed word/signed byte/signed dword~) $68 ← (signed byte) FORM_CURSOR_BLINK#0 / (byte/signed byte/word/signed word/dword/signed dword) 2 (signed byte) form_cursor_count#4 ← (signed word/signed byte/signed dword~) $68 to:@68 @@ -3480,13 +3480,13 @@ form_set_screen::@1: scope:[form_set_screen] from form_set_screen form_set_scre (byte) form_set_screen::y#2 ← phi( form_set_screen/(byte) form_set_screen::y#0 form_set_screen::@1/(byte) form_set_screen::y#1 ) (byte*) form_set_screen::line#2 ← phi( form_set_screen/(byte*) form_set_screen::line#0 form_set_screen::@1/(byte*) form_set_screen::line#1 ) (byte~) form_set_screen::$0 ← < (byte*) form_set_screen::line#2 - *((byte[25]) form_line_lo#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$0 + *((byte[$19]) form_line_lo#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$0 (byte~) form_set_screen::$1 ← > (byte*) form_set_screen::line#2 - *((byte[25]) form_line_hi#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$1 - (byte*~) form_set_screen::$2 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + *((byte[$19]) form_line_hi#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$1 + (byte*~) form_set_screen::$2 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) form_set_screen::line#1 ← (byte*~) form_set_screen::$2 - (byte) form_set_screen::y#1 ← (byte) form_set_screen::y#2 + rangenext(0,24) - (bool~) form_set_screen::$3 ← (byte) form_set_screen::y#1 != rangelast(0,24) + (byte) form_set_screen::y#1 ← (byte) form_set_screen::y#2 + rangenext(0,$18) + (bool~) form_set_screen::$3 ← (byte) form_set_screen::y#1 != rangelast(0,$18) if((bool~) form_set_screen::$3) goto form_set_screen::@1 to:form_set_screen::@return form_set_screen::@return: scope:[form_set_screen] from form_set_screen::@1 @@ -3495,7 +3495,7 @@ form_set_screen::@return: scope:[form_set_screen] from form_set_screen::@1 form_field_ptr: scope:[form_field_ptr] from form_control form_render_values::@1 (byte) form_field_ptr::field_idx#2 ← phi( form_control/(byte) form_field_ptr::field_idx#1 form_render_values::@1/(byte) form_field_ptr::field_idx#0 ) (byte) form_field_ptr::y#0 ← *((byte[]) form_fields_y#0 + (byte) form_field_ptr::field_idx#2) - (byte*~) form_field_ptr::$0 ← ((byte*)) { *((byte[25]) form_line_hi#0 + (byte) form_field_ptr::y#0), *((byte[25]) form_line_lo#0 + (byte) form_field_ptr::y#0) } + (byte*~) form_field_ptr::$0 ← ((byte*)) { *((byte[$19]) form_line_hi#0 + (byte) form_field_ptr::y#0), *((byte[$19]) form_line_lo#0 + (byte) form_field_ptr::y#0) } (byte*) form_field_ptr::line#0 ← (byte*~) form_field_ptr::$0 (byte) form_field_ptr::x#0 ← *((byte[]) form_fields_x#0 + (byte) form_field_ptr::field_idx#2) (byte*~) form_field_ptr::$1 ← (byte*) form_field_ptr::line#0 + (byte) form_field_ptr::x#0 @@ -3582,7 +3582,7 @@ form_control::@2: scope:[form_control] from form_control::@1 (byte) keyboard_modifiers#67 ← phi( form_control::@1/(byte) keyboard_modifiers#89 ) (byte) keyboard_events_size#67 ← phi( form_control::@1/(byte) keyboard_events_size#92 ) (byte*) form_control::field#1 ← phi( form_control::@1/(byte*) form_control::field#5 ) - (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#1) | (byte/word/signed word/dword/signed dword) 128 + (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#1) | (byte/word/signed word/dword/signed dword) $80 *((byte*) form_control::field#1) ← (byte/word/dword~) form_control::$6 to:form_control::@3 form_control::@16: scope:[form_control] from form_control::@1 @@ -3592,7 +3592,7 @@ form_control::@16: scope:[form_control] from form_control::@1 (byte) keyboard_modifiers#66 ← phi( form_control::@1/(byte) keyboard_modifiers#89 ) (byte) keyboard_events_size#66 ← phi( form_control::@1/(byte) keyboard_events_size#92 ) (byte*) form_control::field#2 ← phi( form_control::@1/(byte*) form_control::field#5 ) - (byte~) form_control::$5 ← *((byte*) form_control::field#2) & (byte/signed byte/word/signed word/dword/signed dword) 127 + (byte~) form_control::$5 ← *((byte*) form_control::field#2) & (byte/signed byte/word/signed word/dword/signed dword) $7f *((byte*) form_control::field#2) ← (byte~) form_control::$5 to:form_control::@3 form_control::@3: scope:[form_control] from form_control::@16 form_control::@2 @@ -3648,7 +3648,7 @@ form_control::@18: scope:[form_control] from form_control::@35 (byte) form_field_idx#29 ← phi( form_control::@35/(byte) form_field_idx#43 ) (byte) keyboard_modifiers#30 ← phi( form_control::@35/(byte) keyboard_modifiers#47 ) (byte*) form_control::field#3 ← phi( form_control::@35/(byte*) form_control::field#6 ) - (byte~) form_control::$11 ← *((byte*) form_control::field#3) & (byte/signed byte/word/signed word/dword/signed dword) 127 + (byte~) form_control::$11 ← *((byte*) form_control::field#3) & (byte/signed byte/word/signed word/dword/signed dword) $7f *((byte*) form_control::field#3) ← (byte~) form_control::$11 (byte~) form_control::$12 ← (byte) keyboard_modifiers#30 & (byte) KEY_MODIFIER_SHIFT#0 (bool~) form_control::$13 ← (byte~) form_control::$12 == (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -3670,7 +3670,7 @@ form_control::@19: scope:[form_control] from form_control::@18 (byte) form_fields_cnt#8 ← phi( form_control::@18/(byte) form_fields_cnt#7 ) (byte) form_field_idx#17 ← phi( form_control::@18/(byte) form_field_idx#29 ) (byte) form_field_idx#6 ← -- (byte) form_field_idx#17 - (bool~) form_control::$14 ← (byte) form_field_idx#6 == (byte/word/signed word/dword/signed dword) 255 + (bool~) form_control::$14 ← (byte) form_field_idx#6 == (byte/word/signed word/dword/signed dword) $ff (bool~) form_control::$15 ← ! (bool~) form_control::$14 if((bool~) form_control::$15) goto form_control::@6 to:form_control::@20 @@ -3755,7 +3755,7 @@ form_control::@25: scope:[form_control] from form_control::@24 (byte*) form_control::field#13 ← phi( form_control::@24/(byte*) form_control::field#16 ) (byte) form_field_idx#20 ← phi( form_control::@24/(byte) form_field_idx#33 ) *((byte[]) form_fields_val#0 + (byte) form_field_idx#20) ← -- *((byte[]) form_fields_val#0 + (byte) form_field_idx#20) - (bool~) form_control::$24 ← *((byte[]) form_fields_val#0 + (byte) form_field_idx#20) == (byte/word/signed word/dword/signed dword) 255 + (bool~) form_control::$24 ← *((byte[]) form_fields_val#0 + (byte) form_field_idx#20) == (byte/word/signed word/dword/signed dword) $ff (bool~) form_control::$25 ← ! (bool~) form_control::$24 if((bool~) form_control::$25) goto form_control::@11 to:form_control::@26 @@ -3810,7 +3810,7 @@ form_control::@30: scope:[form_control] from form_control::@9 (byte) keyboard_modifiers#50 ← phi( form_control::@9/(byte) keyboard_modifiers#76 ) (byte) keyboard_events_size#51 ← phi( form_control::@9/(byte) keyboard_events_size#76 ) (signed byte) form_cursor_count#25 ← phi( form_control::@9/(signed byte) form_cursor_count#37 ) - (byte) form_control::return#5 ← (byte/word/signed word/dword/signed dword) 255 + (byte) form_control::return#5 ← (byte/word/signed word/dword/signed dword) $ff to:form_control::@return @68: scope:[] from @64 (byte) form_fields_cnt#73 ← phi( @64/(byte) form_fields_cnt#74 ) @@ -4175,8 +4175,8 @@ SYMBOL TABLE SSA (byte) DTV_OVERSCAN#0 (byte*) DTV_PALETTE (byte*) DTV_PALETTE#0 -(byte[16]) DTV_PALETTE_DEFAULT -(byte[16]) DTV_PALETTE_DEFAULT#0 +(byte[$10]) DTV_PALETTE_DEFAULT +(byte[$10]) DTV_PALETTE_DEFAULT#0 (byte*) DTV_PLANEA_MODULO_HI (byte*) DTV_PLANEA_MODULO_HI#0 (byte*) DTV_PLANEA_MODULO_LO @@ -5037,16 +5037,16 @@ SYMBOL TABLE SSA (byte) bitmap_plot::y#2 (byte) bitmap_plot::y#3 (byte) bitmap_plot::y#4 -(byte[256]) bitmap_plot_bit -(byte[256]) bitmap_plot_bit#0 -(byte[256]) bitmap_plot_xhi -(byte[256]) bitmap_plot_xhi#0 -(byte[256]) bitmap_plot_xlo -(byte[256]) bitmap_plot_xlo#0 -(byte[256]) bitmap_plot_yhi -(byte[256]) bitmap_plot_yhi#0 -(byte[256]) bitmap_plot_ylo -(byte[256]) bitmap_plot_ylo#0 +(byte[$100]) bitmap_plot_bit +(byte[$100]) bitmap_plot_bit#0 +(byte[$100]) bitmap_plot_xhi +(byte[$100]) bitmap_plot_xhi#0 +(byte[$100]) bitmap_plot_xlo +(byte[$100]) bitmap_plot_xlo#0 +(byte[$100]) bitmap_plot_yhi +(byte[$100]) bitmap_plot_yhi#0 +(byte[$100]) bitmap_plot_ylo +(byte[$100]) bitmap_plot_ylo#0 (void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx) (label) dtvSetCpuBankSegment1::@return (byte*) dtvSetCpuBankSegment1::cpuBank @@ -5456,10 +5456,10 @@ SYMBOL TABLE SSA (byte[]) form_fields_x#0 (byte[]) form_fields_y (byte[]) form_fields_y#0 -(byte[25]) form_line_hi -(byte[25]) form_line_hi#0 -(byte[25]) form_line_lo -(byte[25]) form_line_lo#0 +(byte[$19]) form_line_hi +(byte[$19]) form_line_hi#0 +(byte[$19]) form_line_lo +(byte[$19]) form_line_lo#0 (void()) form_mode() (dword~) form_mode::$10 (byte~) form_mode::$11 @@ -7416,7 +7416,7 @@ Inversing boolean not [647] (bool~) bitmap_line_xdyi::$4 ← (byte) bitmap_line_ Inversing boolean not [670] (bool~) bitmap_line_xdyd::$4 ← (byte) bitmap_line_xdyd::xd#2 >= (byte) bitmap_line_xdyd::e#1 from [669] (bool~) bitmap_line_xdyd::$3 ← (byte) bitmap_line_xdyd::xd#2 < (byte) bitmap_line_xdyd::e#1 Inversing boolean not [693] (bool~) bitmap_line_ydxi::$4 ← (byte) bitmap_line_ydxi::yd#2 >= (byte) bitmap_line_ydxi::e#1 from [692] (bool~) bitmap_line_ydxi::$3 ← (byte) bitmap_line_ydxi::yd#2 < (byte) bitmap_line_ydxi::e#1 Inversing boolean not [717] (bool~) bitmap_line_ydxd::$4 ← (byte) bitmap_line_ydxd::yd#2 >= (byte) bitmap_line_ydxd::e#1 from [716] (bool~) bitmap_line_ydxd::$3 ← (byte) bitmap_line_ydxd::yd#2 < (byte) bitmap_line_ydxd::e#1 -Inversing boolean not [845] (bool~) get_plane::$14 ← (byte) get_plane::idx#15 != (byte/signed byte/word/signed word/dword/signed dword) 13 from [844] (bool~) get_plane::$13 ← (byte) get_plane::idx#15 == (byte/signed byte/word/signed word/dword/signed dword) 13 +Inversing boolean not [845] (bool~) get_plane::$14 ← (byte) get_plane::idx#15 != (byte/signed byte/word/signed word/dword/signed dword) $d from [844] (bool~) get_plane::$13 ← (byte) get_plane::idx#15 == (byte/signed byte/word/signed word/dword/signed dword) $d Inversing boolean not [872] (bool~) get_vic_screen::$5 ← (byte) get_vic_screen::idx#6 != (byte/signed byte/word/signed word/dword/signed dword) 4 from [871] (bool~) get_vic_screen::$4 ← (byte) get_vic_screen::idx#6 == (byte/signed byte/word/signed word/dword/signed dword) 4 Inversing boolean not [885] (bool~) get_vic_charset::$2 ← (byte) get_vic_charset::idx#2 != (byte/signed byte/word/signed word/dword/signed dword) 1 from [884] (bool~) get_vic_charset::$1 ← (byte) get_vic_charset::idx#2 == (byte/signed byte/word/signed word/dword/signed dword) 1 Inversing boolean not [1140] (bool~) gfx_mode::$1 ← *((byte*) form_ctrl_line#0) == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1139] (bool~) gfx_mode::$0 ← *((byte*) form_ctrl_line#0) != (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -7429,7 +7429,7 @@ Inversing boolean not [1183] (bool~) gfx_mode::$21 ← *((byte*) form_ctrl_ecm#0 Inversing boolean not [1190] (bool~) gfx_mode::$24 ← *((byte*) form_ctrl_bmm#0) == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1189] (bool~) gfx_mode::$23 ← *((byte*) form_ctrl_bmm#0) != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not [1199] (bool~) gfx_mode::$27 ← *((byte*) form_ctrl_mcm#0) == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1198] (bool~) gfx_mode::$26 ← *((byte*) form_ctrl_mcm#0) != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not [1357] (bool~) gfx_mode::$90 ← (byte) gfx_mode::keyboard_event#0 != (byte) KEY_SPACE#0 from [1356] (bool~) gfx_mode::$89 ← (byte) gfx_mode::keyboard_event#0 == (byte) KEY_SPACE#0 -Inversing boolean not [1524] (bool~) gfx_init_plane_8bppchunky::$4 ← (byte*) gfx_init_plane_8bppchunky::gfxb#3 != (word/dword/signed dword) 32768 from [1523] (bool~) gfx_init_plane_8bppchunky::$3 ← (byte*) gfx_init_plane_8bppchunky::gfxb#3 == (word/dword/signed dword) 32768 +Inversing boolean not [1524] (bool~) gfx_init_plane_8bppchunky::$4 ← (byte*) gfx_init_plane_8bppchunky::gfxb#3 != (word/dword/signed dword) $8000 from [1523] (bool~) gfx_init_plane_8bppchunky::$3 ← (byte*) gfx_init_plane_8bppchunky::gfxb#3 == (word/dword/signed dword) $8000 Inversing boolean not [1670] (bool~) gfx_init_plane_charset8::$7 ← (byte~) gfx_init_plane_charset8::$5 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1669] (bool~) gfx_init_plane_charset8::$6 ← (byte~) gfx_init_plane_charset8::$5 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not [1843] (bool~) form_mode::$38 ← (byte~) form_mode::$36 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1842] (bool~) form_mode::$37 ← (byte~) form_mode::$36 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not [1847] (bool~) form_mode::$40 ← (byte) form_mode::preset_current#2 == *((byte*) form_preset#0) from [1846] (bool~) form_mode::$39 ← (byte) form_mode::preset_current#2 != *((byte*) form_preset#0) @@ -7437,10 +7437,10 @@ Inversing boolean not [1924] (bool~) form_control::$2 ← (signed byte) form_cur Inversing boolean not [1950] (bool~) form_control::$10 ← (byte) form_control::key_event#0 != (byte) KEY_CRSR_DOWN#0 from [1949] (bool~) form_control::$9 ← (byte) form_control::key_event#0 == (byte) KEY_CRSR_DOWN#0 Inversing boolean not [1954] (bool~) form_control::$21 ← (byte) form_control::key_event#1 != (byte) KEY_CRSR_RIGHT#0 from [1953] (bool~) form_control::$20 ← (byte) form_control::key_event#1 == (byte) KEY_CRSR_RIGHT#0 Inversing boolean not [1965] (bool~) form_control::$18 ← (byte) form_field_idx#5 != (byte) form_fields_cnt#3 from [1964] (bool~) form_control::$17 ← (byte) form_field_idx#5 == (byte) form_fields_cnt#3 -Inversing boolean not [1970] (bool~) form_control::$15 ← (byte) form_field_idx#6 != (byte/word/signed word/dword/signed dword) 255 from [1969] (bool~) form_control::$14 ← (byte) form_field_idx#6 == (byte/word/signed word/dword/signed dword) 255 +Inversing boolean not [1970] (bool~) form_control::$15 ← (byte) form_field_idx#6 != (byte/word/signed word/dword/signed dword) $ff from [1969] (bool~) form_control::$14 ← (byte) form_field_idx#6 == (byte/word/signed word/dword/signed dword) $ff Inversing boolean not [1992] (bool~) form_control::$29 ← (byte) form_control::key_event#2 != (byte) KEY_SPACE#0 from [1991] (bool~) form_control::$28 ← (byte) form_control::key_event#2 == (byte) KEY_SPACE#0 Inversing boolean not [2001] (bool~) form_control::$27 ← *((byte[]) form_fields_val#0 + (byte) form_field_idx#19) <= *((byte[]) form_fields_max#0 + (byte) form_field_idx#19) from [2000] (bool~) form_control::$26 ← *((byte[]) form_fields_val#0 + (byte) form_field_idx#19) > *((byte[]) form_fields_max#0 + (byte) form_field_idx#19) -Inversing boolean not [2006] (bool~) form_control::$25 ← *((byte[]) form_fields_val#0 + (byte) form_field_idx#20) != (byte/word/signed word/dword/signed dword) 255 from [2005] (bool~) form_control::$24 ← *((byte[]) form_fields_val#0 + (byte) form_field_idx#20) == (byte/word/signed word/dword/signed dword) 255 +Inversing boolean not [2006] (bool~) form_control::$25 ← *((byte[]) form_fields_val#0 + (byte) form_field_idx#20) != (byte/word/signed word/dword/signed dword) $ff from [2005] (bool~) form_control::$24 ← *((byte[]) form_fields_val#0 + (byte) form_field_idx#20) == (byte/word/signed word/dword/signed dword) $ff Successful SSA optimization Pass2UnaryNotSimplification Alias (byte*) print_screen#0 = (byte*) print_line_cursor#0 (byte*) print_char_cursor#0 (byte*) print_screen#55 (byte*) print_line_cursor#76 (byte*) print_char_cursor#76 (byte*) print_screen#53 (byte*) print_line_cursor#75 (byte*) print_char_cursor#75 (byte*) print_screen#51 (byte*) print_line_cursor#74 (byte*) print_char_cursor#74 (byte*) print_screen#49 (byte*) print_line_cursor#72 (byte*) print_char_cursor#72 (byte*) print_screen#46 (byte*) print_line_cursor#69 (byte*) print_char_cursor#69 (byte*) print_screen#41 (byte*) print_line_cursor#64 (byte*) print_char_cursor#64 (byte*) print_screen#39 (byte*) print_line_cursor#61 (byte*) print_char_cursor#62 (byte*) print_screen#33 (byte*) print_line_cursor#53 (byte*) print_char_cursor#56 (byte*) print_screen#25 (byte*) print_line_cursor#44 (byte*) print_char_cursor#46 Alias (byte*) print_str_lines::str#3 = (byte*) print_str_lines::str#7 @@ -8176,11 +8176,11 @@ Simple Condition (bool~) keyboard_event_scan::$24 [426] if((byte~) keyboard_even Simple Condition (bool~) keyboard_event_scan::$28 [438] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@12 Simple Condition (bool~) keyboard_event_get::$0 [461] if((byte) keyboard_events_size#100==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@1 Simple Condition (bool~) bitmap_init::$4 [490] if((byte) bitmap_init::bits#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@2 -Simple Condition (bool~) bitmap_init::$5 [494] if((byte) bitmap_init::x#1!=rangelast(0,255)) goto bitmap_init::@1 +Simple Condition (bool~) bitmap_init::$5 [494] if((byte) bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 Simple Condition (bool~) bitmap_init::$12 [509] if((byte~) bitmap_init::$10!=(byte/signed byte/word/signed word/dword/signed dword) 7) goto bitmap_init::@4 -Simple Condition (bool~) bitmap_init::$15 [513] if((byte) bitmap_init::y#1!=rangelast(0,255)) goto bitmap_init::@3 -Simple Condition (bool~) bitmap_clear::$1 [529] if((byte) bitmap_clear::x#1!=rangelast(0,199)) goto bitmap_clear::@2 -Simple Condition (bool~) bitmap_clear::$2 [533] if((byte) bitmap_clear::y#1!=rangelast(0,39)) goto bitmap_clear::@1 +Simple Condition (bool~) bitmap_init::$15 [513] if((byte) bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@3 +Simple Condition (bool~) bitmap_clear::$1 [529] if((byte) bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2 +Simple Condition (bool~) bitmap_clear::$2 [533] if((byte) bitmap_clear::y#1!=rangelast(0,$27)) goto bitmap_clear::@1 Simple Condition (bool~) bitmap_line::$0 [547] if((byte) bitmap_line::x0#0<(byte) bitmap_line::x1#0) goto bitmap_line::@1 Simple Condition (bool~) bitmap_line::$12 [552] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@9 Simple Condition (bool~) bitmap_line::$2 [557] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@2 @@ -8206,10 +8206,10 @@ Simple Condition (bool~) get_plane::$6 [810] if((byte) get_plane::idx#10==(byte/ Simple Condition (bool~) get_plane::$7 [815] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 7) goto get_plane::@8 Simple Condition (bool~) get_plane::$8 [820] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto get_plane::@9 Simple Condition (bool~) get_plane::$9 [825] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 9) goto get_plane::@10 -Simple Condition (bool~) get_plane::$10 [830] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 10) goto get_plane::@11 -Simple Condition (bool~) get_plane::$11 [835] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 11) goto get_plane::@12 -Simple Condition (bool~) get_plane::$12 [840] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 12) goto get_plane::@13 -Simple Condition (bool~) get_plane::$14 [846] if((byte) get_plane::idx#10!=(byte/signed byte/word/signed word/dword/signed dword) 13) goto get_plane::@27 +Simple Condition (bool~) get_plane::$10 [830] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) $a) goto get_plane::@11 +Simple Condition (bool~) get_plane::$11 [835] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) $b) goto get_plane::@12 +Simple Condition (bool~) get_plane::$12 [840] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) $c) goto get_plane::@13 +Simple Condition (bool~) get_plane::$14 [846] if((byte) get_plane::idx#10!=(byte/signed byte/word/signed word/dword/signed dword) $d) goto get_plane::@27 Simple Condition (bool~) get_vic_screen::$0 [856] if((byte) get_vic_screen::idx#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto get_vic_screen::@1 Simple Condition (bool~) get_vic_screen::$1 [860] if((byte) get_vic_screen::idx#2==(byte/signed byte/word/signed word/dword/signed dword) 1) goto get_vic_screen::@2 Simple Condition (bool~) get_vic_screen::$2 [864] if((byte) get_vic_screen::idx#2==(byte/signed byte/word/signed word/dword/signed dword) 2) goto get_vic_screen::@3 @@ -8227,7 +8227,7 @@ Simple Condition (bool~) apply_preset::$6 [977] if((byte) apply_preset::idx#0==( Simple Condition (bool~) apply_preset::$7 [982] if((byte) apply_preset::idx#0==(byte/signed byte/word/signed word/dword/signed dword) 7) goto apply_preset::@8 Simple Condition (bool~) apply_preset::$8 [987] if((byte) apply_preset::idx#0==(byte/signed byte/word/signed word/dword/signed dword) 8) goto apply_preset::@9 Simple Condition (bool~) apply_preset::$9 [992] if((byte) apply_preset::idx#0==(byte/signed byte/word/signed word/dword/signed dword) 9) goto apply_preset::@10 -Simple Condition (bool~) apply_preset::$10 [997] if((byte) apply_preset::idx#0==(byte/signed byte/word/signed word/dword/signed dword) 10) goto apply_preset::@11 +Simple Condition (bool~) apply_preset::$10 [997] if((byte) apply_preset::idx#0==(byte/signed byte/word/signed word/dword/signed dword) $a) goto apply_preset::@11 Simple Condition (bool~) apply_preset::$11 [1008] if((byte) apply_preset::i#1!=(byte) form_fields_cnt#55) goto apply_preset::@23 Simple Condition (bool~) render_preset_name::$0 [1013] if((byte) render_preset_name::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_preset_name::@1 Simple Condition (bool~) render_preset_name::$1 [1017] if((byte) render_preset_name::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_preset_name::@2 @@ -8239,7 +8239,7 @@ Simple Condition (bool~) render_preset_name::$6 [1037] if((byte) render_preset_n Simple Condition (bool~) render_preset_name::$7 [1041] if((byte) render_preset_name::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 7) goto render_preset_name::@8 Simple Condition (bool~) render_preset_name::$8 [1045] if((byte) render_preset_name::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto render_preset_name::@9 Simple Condition (bool~) render_preset_name::$9 [1049] if((byte) render_preset_name::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 9) goto render_preset_name::@10 -Simple Condition (bool~) render_preset_name::$10 [1053] if((byte) render_preset_name::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 10) goto render_preset_name::@11 +Simple Condition (bool~) render_preset_name::$10 [1053] if((byte) render_preset_name::idx#10==(byte/signed byte/word/signed word/dword/signed dword) $a) goto render_preset_name::@11 Simple Condition (bool~) gfx_mode::$1 [1141] if(*((byte*) form_ctrl_line#0)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_mode::@1 Simple Condition (bool~) gfx_mode::$4 [1145] if(*((byte*) form_ctrl_borof#0)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_mode::@2 Simple Condition (bool~) gfx_mode::$7 [1152] if(*((byte*) form_ctrl_hicol#0)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_mode::@3 @@ -8249,47 +8249,47 @@ Simple Condition (bool~) gfx_mode::$16 [1173] if(*((byte*) form_ctrl_chunk#0)==( Simple Condition (bool~) gfx_mode::$21 [1184] if(*((byte*) form_ctrl_ecm#0)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_mode::@7 Simple Condition (bool~) gfx_mode::$24 [1191] if(*((byte*) form_ctrl_bmm#0)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_mode::@8 Simple Condition (bool~) gfx_mode::$27 [1200] if(*((byte*) form_ctrl_mcm#0)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_mode::@9 -Simple Condition (bool~) gfx_mode::$73 [1303] if((byte) gfx_mode::cx#1!=rangelast(0,39)) goto gfx_mode::@11 -Simple Condition (bool~) gfx_mode::$74 [1307] if((byte) gfx_mode::cy#1!=rangelast(0,24)) goto gfx_mode::@10 +Simple Condition (bool~) gfx_mode::$73 [1303] if((byte) gfx_mode::cx#1!=rangelast(0,$27)) goto gfx_mode::@11 +Simple Condition (bool~) gfx_mode::$74 [1307] if((byte) gfx_mode::cy#1!=rangelast(0,$18)) goto gfx_mode::@10 Simple Condition (bool~) gfx_mode::$83 [1323] if(*((byte*) form_dtv_palet#0)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_mode::@12 -Simple Condition (bool~) gfx_mode::$84 [1332] if((byte) gfx_mode::j#1!=rangelast(0,15)) goto gfx_mode::@13 -Simple Condition (bool~) gfx_mode::$85 [1337] if((byte) gfx_mode::i#1!=rangelast(0,15)) goto gfx_mode::@15 -Simple Condition (bool~) gfx_mode::$86 [1343] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto gfx_mode::@20 +Simple Condition (bool~) gfx_mode::$84 [1332] if((byte) gfx_mode::j#1!=rangelast(0,$f)) goto gfx_mode::@13 +Simple Condition (bool~) gfx_mode::$85 [1337] if((byte) gfx_mode::i#1!=rangelast(0,$f)) goto gfx_mode::@15 +Simple Condition (bool~) gfx_mode::$86 [1343] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto gfx_mode::@20 Simple Condition (bool~) gfx_mode::$90 [1358] if((byte) gfx_mode::keyboard_event#0!=(byte) KEY_SPACE#0) goto gfx_mode::@22 Simple Condition (bool~) gfx_init_charset::$0 [1392] if((byte) gfx_init_charset::l#1!=rangelast(0,7)) goto gfx_init_charset::@2 -Simple Condition (bool~) gfx_init_charset::$1 [1396] if((byte) gfx_init_charset::c#1!=rangelast(0,255)) goto gfx_init_charset::@1 -Simple Condition (bool~) gfx_init_screen0::$4 [1412] if((byte) gfx_init_screen0::cx#1!=rangelast(0,39)) goto gfx_init_screen0::@2 -Simple Condition (bool~) gfx_init_screen0::$5 [1416] if((byte) gfx_init_screen0::cy#1!=rangelast(0,24)) goto gfx_init_screen0::@1 -Simple Condition (bool~) gfx_init_screen1::$2 [1429] if((byte) gfx_init_screen1::cx#1!=rangelast(0,39)) goto gfx_init_screen1::@2 -Simple Condition (bool~) gfx_init_screen1::$3 [1433] if((byte) gfx_init_screen1::cy#1!=rangelast(0,24)) goto gfx_init_screen1::@1 -Simple Condition (bool~) gfx_init_screen2::$5 [1451] if((byte) gfx_init_screen2::cx#1!=rangelast(0,39)) goto gfx_init_screen2::@2 -Simple Condition (bool~) gfx_init_screen2::$6 [1455] if((byte) gfx_init_screen2::cy#1!=rangelast(0,24)) goto gfx_init_screen2::@1 -Simple Condition (bool~) gfx_init_screen3::$4 [1470] if((byte) gfx_init_screen3::cx#1!=rangelast(0,39)) goto gfx_init_screen3::@2 -Simple Condition (bool~) gfx_init_screen3::$5 [1474] if((byte) gfx_init_screen3::cy#1!=rangelast(0,24)) goto gfx_init_screen3::@1 -Simple Condition (bool~) gfx_init_screen4::$0 [1485] if((byte) gfx_init_screen4::cx#1!=rangelast(0,39)) goto gfx_init_screen4::@2 -Simple Condition (bool~) gfx_init_screen4::$1 [1489] if((byte) gfx_init_screen4::cy#1!=rangelast(0,24)) goto gfx_init_screen4::@1 +Simple Condition (bool~) gfx_init_charset::$1 [1396] if((byte) gfx_init_charset::c#1!=rangelast(0,$ff)) goto gfx_init_charset::@1 +Simple Condition (bool~) gfx_init_screen0::$4 [1412] if((byte) gfx_init_screen0::cx#1!=rangelast(0,$27)) goto gfx_init_screen0::@2 +Simple Condition (bool~) gfx_init_screen0::$5 [1416] if((byte) gfx_init_screen0::cy#1!=rangelast(0,$18)) goto gfx_init_screen0::@1 +Simple Condition (bool~) gfx_init_screen1::$2 [1429] if((byte) gfx_init_screen1::cx#1!=rangelast(0,$27)) goto gfx_init_screen1::@2 +Simple Condition (bool~) gfx_init_screen1::$3 [1433] if((byte) gfx_init_screen1::cy#1!=rangelast(0,$18)) goto gfx_init_screen1::@1 +Simple Condition (bool~) gfx_init_screen2::$5 [1451] if((byte) gfx_init_screen2::cx#1!=rangelast(0,$27)) goto gfx_init_screen2::@2 +Simple Condition (bool~) gfx_init_screen2::$6 [1455] if((byte) gfx_init_screen2::cy#1!=rangelast(0,$18)) goto gfx_init_screen2::@1 +Simple Condition (bool~) gfx_init_screen3::$4 [1470] if((byte) gfx_init_screen3::cx#1!=rangelast(0,$27)) goto gfx_init_screen3::@2 +Simple Condition (bool~) gfx_init_screen3::$5 [1474] if((byte) gfx_init_screen3::cy#1!=rangelast(0,$18)) goto gfx_init_screen3::@1 +Simple Condition (bool~) gfx_init_screen4::$0 [1485] if((byte) gfx_init_screen4::cx#1!=rangelast(0,$27)) goto gfx_init_screen4::@2 +Simple Condition (bool~) gfx_init_screen4::$1 [1489] if((byte) gfx_init_screen4::cy#1!=rangelast(0,$18)) goto gfx_init_screen4::@1 Simple Condition (bool~) gfx_init_vic_bitmap::$5 [1509] if((byte) gfx_init_vic_bitmap::l#1<(byte) gfx_init_vic_bitmap::lines_cnt#0) goto gfx_init_vic_bitmap::@1 -Simple Condition (bool~) gfx_init_plane_8bppchunky::$4 [1525] if((byte*) gfx_init_plane_8bppchunky::gfxb#3!=(word/dword/signed dword) 32768) goto gfx_init_plane_8bppchunky::@3 -Simple Condition (bool~) gfx_init_plane_8bppchunky::$8 [1534] if((word) gfx_init_plane_8bppchunky::x#1!=rangelast(0,319)) goto gfx_init_plane_8bppchunky::@2 -Simple Condition (bool~) gfx_init_plane_8bppchunky::$9 [1544] if((byte) gfx_init_plane_8bppchunky::y#1!=rangelast(0,199)) goto gfx_init_plane_8bppchunky::@1 +Simple Condition (bool~) gfx_init_plane_8bppchunky::$4 [1525] if((byte*) gfx_init_plane_8bppchunky::gfxb#3!=(word/dword/signed dword) $8000) goto gfx_init_plane_8bppchunky::@3 +Simple Condition (bool~) gfx_init_plane_8bppchunky::$8 [1534] if((word) gfx_init_plane_8bppchunky::x#1!=rangelast(0,$13f)) goto gfx_init_plane_8bppchunky::@2 +Simple Condition (bool~) gfx_init_plane_8bppchunky::$9 [1544] if((byte) gfx_init_plane_8bppchunky::y#1!=rangelast(0,$c7)) goto gfx_init_plane_8bppchunky::@1 Simple Condition (bool~) gfx_init_plane_horisontal::$6 [1566] if((byte~) gfx_init_plane_horisontal::$5==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_plane_horisontal::@3 -Simple Condition (bool~) gfx_init_plane_horisontal::$7 [1576] if((byte) gfx_init_plane_horisontal::ax#1!=rangelast(0,39)) goto gfx_init_plane_horisontal::@2 -Simple Condition (bool~) gfx_init_plane_horisontal::$8 [1580] if((byte) gfx_init_plane_horisontal::ay#1!=rangelast(0,199)) goto gfx_init_plane_horisontal::@1 -Simple Condition (bool~) gfx_init_plane_horisontal2::$7 [1608] if((byte) gfx_init_plane_horisontal2::ax#1!=rangelast(0,39)) goto gfx_init_plane_horisontal2::@2 -Simple Condition (bool~) gfx_init_plane_horisontal2::$8 [1612] if((byte) gfx_init_plane_horisontal2::ay#1!=rangelast(0,199)) goto gfx_init_plane_horisontal2::@1 -Simple Condition (bool~) gfx_init_plane_vertical::$5 [1636] if((byte) gfx_init_plane_vertical::bx#1!=rangelast(0,39)) goto gfx_init_plane_vertical::@2 -Simple Condition (bool~) gfx_init_plane_vertical::$6 [1640] if((byte) gfx_init_plane_vertical::by#1!=rangelast(0,199)) goto gfx_init_plane_vertical::@1 +Simple Condition (bool~) gfx_init_plane_horisontal::$7 [1576] if((byte) gfx_init_plane_horisontal::ax#1!=rangelast(0,$27)) goto gfx_init_plane_horisontal::@2 +Simple Condition (bool~) gfx_init_plane_horisontal::$8 [1580] if((byte) gfx_init_plane_horisontal::ay#1!=rangelast(0,$c7)) goto gfx_init_plane_horisontal::@1 +Simple Condition (bool~) gfx_init_plane_horisontal2::$7 [1608] if((byte) gfx_init_plane_horisontal2::ax#1!=rangelast(0,$27)) goto gfx_init_plane_horisontal2::@2 +Simple Condition (bool~) gfx_init_plane_horisontal2::$8 [1612] if((byte) gfx_init_plane_horisontal2::ay#1!=rangelast(0,$c7)) goto gfx_init_plane_horisontal2::@1 +Simple Condition (bool~) gfx_init_plane_vertical::$5 [1636] if((byte) gfx_init_plane_vertical::bx#1!=rangelast(0,$27)) goto gfx_init_plane_vertical::@2 +Simple Condition (bool~) gfx_init_plane_vertical::$6 [1640] if((byte) gfx_init_plane_vertical::by#1!=rangelast(0,$c7)) goto gfx_init_plane_vertical::@1 Simple Condition (bool~) gfx_init_plane_charset8::$7 [1671] if((byte~) gfx_init_plane_charset8::$5==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_plane_charset8::@4 Simple Condition (bool~) gfx_init_plane_charset8::$9 [1680] if((byte) gfx_init_plane_charset8::cp#1!=rangelast(0,7)) goto gfx_init_plane_charset8::@3 Simple Condition (bool~) gfx_init_plane_charset8::$10 [1686] if((byte) gfx_init_plane_charset8::cr#1!=rangelast(0,7)) goto gfx_init_plane_charset8::@2 -Simple Condition (bool~) gfx_init_plane_charset8::$11 [1690] if((byte) gfx_init_plane_charset8::ch#1!=rangelast(0,255)) goto gfx_init_plane_charset8::@1 -Simple Condition (bool~) gfx_init_plane_fill::$7 [1730] if((byte) gfx_init_plane_fill::bx#1!=rangelast(0,39)) goto gfx_init_plane_fill::@2 -Simple Condition (bool~) gfx_init_plane_fill::$8 [1734] if((byte) gfx_init_plane_fill::by#1!=rangelast(0,199)) goto gfx_init_plane_fill::@1 -Simple Condition (bool~) form_mode::$34 [1821] if((byte) form_mode::i#1!=rangelast(0,15)) goto form_mode::@1 -Simple Condition (bool~) form_mode::$35 [1831] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto form_mode::@6 +Simple Condition (bool~) gfx_init_plane_charset8::$11 [1690] if((byte) gfx_init_plane_charset8::ch#1!=rangelast(0,$ff)) goto gfx_init_plane_charset8::@1 +Simple Condition (bool~) gfx_init_plane_fill::$7 [1730] if((byte) gfx_init_plane_fill::bx#1!=rangelast(0,$27)) goto gfx_init_plane_fill::@2 +Simple Condition (bool~) gfx_init_plane_fill::$8 [1734] if((byte) gfx_init_plane_fill::by#1!=rangelast(0,$c7)) goto gfx_init_plane_fill::@1 +Simple Condition (bool~) form_mode::$34 [1821] if((byte) form_mode::i#1!=rangelast(0,$f)) goto form_mode::@1 +Simple Condition (bool~) form_mode::$35 [1831] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto form_mode::@6 Simple Condition (bool~) form_mode::$38 [1844] if((byte~) form_mode::$36==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_mode::@8 Simple Condition (bool~) form_mode::$40 [1848] if((byte) form_mode::preset_current#6==*((byte*) form_preset#0)) goto form_mode::@9 -Simple Condition (bool~) form_set_screen::$3 [1888] if((byte) form_set_screen::y#1!=rangelast(0,24)) goto form_set_screen::@1 +Simple Condition (bool~) form_set_screen::$3 [1888] if((byte) form_set_screen::y#1!=rangelast(0,$18)) goto form_set_screen::@1 Simple Condition (bool~) form_render_values::$1 [1913] if((byte) form_render_values::idx#1<(byte) form_fields_cnt#21) goto form_render_values::@1 Simple Condition (bool~) form_control::$2 [1925] if((signed byte) form_cursor_count#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@1 Simple Condition (bool~) form_control::$4 [1929] if((signed byte) form_cursor_count#15<(signed word/signed byte/signed dword~) form_control::$3) goto form_control::@2 @@ -8297,75 +8297,75 @@ Simple Condition (bool~) form_control::$10 [1951] if((byte) form_control::key_ev Simple Condition (bool~) form_control::$21 [1955] if((byte) form_control::key_event#0!=(byte) KEY_CRSR_RIGHT#0) goto form_control::@9 Simple Condition (bool~) form_control::$13 [1961] if((byte~) form_control::$12==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@5 Simple Condition (bool~) form_control::$18 [1966] if((byte) form_field_idx#45!=(byte) form_fields_cnt#55) goto form_control::@8 -Simple Condition (bool~) form_control::$15 [1971] if((byte) form_field_idx#44!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@6 +Simple Condition (bool~) form_control::$15 [1971] if((byte) form_field_idx#44!=(byte/word/signed word/dword/signed dword) $ff) goto form_control::@6 Simple Condition (bool~) form_control::$29 [1993] if((byte) form_control::key_event#0!=(byte) KEY_SPACE#0) goto form_control::@14 Simple Condition (bool~) form_control::$23 [1997] if((byte~) form_control::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@10 Simple Condition (bool~) form_control::$27 [2002] if(*((byte[]) form_fields_val#0 + (byte) form_field_idx#28)<=*((byte[]) form_fields_max#0 + (byte) form_field_idx#28)) goto form_control::@13 -Simple Condition (bool~) form_control::$25 [2007] if(*((byte[]) form_fields_val#0 + (byte) form_field_idx#28)!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@11 +Simple Condition (bool~) form_control::$25 [2007] if(*((byte[]) form_fields_val#0 + (byte) form_field_idx#28)!=(byte/word/signed word/dword/signed dword) $ff) goto form_control::@11 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -8376,85 +8376,85 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 -Constant (const byte*) DTV_FEATURE#0 = ((byte*))53311 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f +Constant (const byte*) DTV_FEATURE#0 = ((byte*))$d03f Constant (const byte) DTV_FEATURE_ENABLE#0 = 1 Constant (const byte) DTV_FEATURE_DISABLE_TIL_RESET#0 = 2 -Constant (const byte*) DTV_CONTROL#0 = ((byte*))53308 +Constant (const byte*) DTV_CONTROL#0 = ((byte*))$d03c Constant (const byte) DTV_LINEAR#0 = 1 Constant (const byte) DTV_BORDER_OFF#0 = 2 Constant (const byte) DTV_HIGHCOLOR#0 = 4 Constant (const byte) DTV_OVERSCAN#0 = 8 -Constant (const byte) DTV_COLORRAM_OFF#0 = 16 -Constant (const byte) DTV_BADLINE_OFF#0 = 32 -Constant (const byte) DTV_CHUNKY#0 = 64 -Constant (const byte*) DTV_PALETTE#0 = ((byte*))53760 -Constant (const byte[16]) DTV_PALETTE_DEFAULT#0 = { 0, 15, 54, 190, 88, 219, 134, 255, 41, 38, 59, 5, 7, 223, 154, 10 } -Constant (const byte*) DTV_PLANEA_START_LO#0 = ((byte*))53306 -Constant (const byte*) DTV_PLANEA_START_MI#0 = ((byte*))53307 -Constant (const byte*) DTV_PLANEA_START_HI#0 = ((byte*))53317 -Constant (const byte*) DTV_PLANEA_STEP#0 = ((byte*))53318 -Constant (const byte*) DTV_PLANEA_MODULO_LO#0 = ((byte*))53304 -Constant (const byte*) DTV_PLANEA_MODULO_HI#0 = ((byte*))53305 -Constant (const byte*) DTV_PLANEB_START_LO#0 = ((byte*))53321 -Constant (const byte*) DTV_PLANEB_START_MI#0 = ((byte*))53322 -Constant (const byte*) DTV_PLANEB_START_HI#0 = ((byte*))53323 -Constant (const byte*) DTV_PLANEB_STEP#0 = ((byte*))53324 -Constant (const byte*) DTV_PLANEB_MODULO_LO#0 = ((byte*))53319 -Constant (const byte*) DTV_PLANEB_MODULO_HI#0 = ((byte*))53320 -Constant (const byte*) DTV_SPRITE_BANK#0 = ((byte*))53325 -Constant (const byte*) DTV_COLOR_BANK_LO#0 = ((byte*))53302 -Constant (const byte*) DTV_COLOR_BANK_HI#0 = ((byte*))53303 -Constant (const dword) DTV_COLOR_BANK_DEFAULT#0 = 120832 -Constant (const byte*) DTV_GRAPHICS_VIC_BANK#0 = ((byte*))53309 -Constant (const byte*) DTV_GRAPHICS_HICOL_BANK#0 = ((byte*))53310 -Constant (const byte*) dtvSetCpuBankSegment1::cpuBank#0 = ((byte*))255 -Constant (const byte*) DTV_BLITTER_SRCA_LO#0 = ((byte*))54048 -Constant (const byte*) DTV_BLITTER_SRCA_MI#0 = ((byte*))54049 -Constant (const byte*) DTV_BLITTER_SRCA_HI#0 = ((byte*))54050 -Constant (const byte*) DTV_BLITTER_SRCA_MOD_LO#0 = ((byte*))54051 -Constant (const byte*) DTV_BLITTER_SRCA_MOD_HI#0 = ((byte*))54052 -Constant (const byte*) DTV_BLITTER_SRCA_LIN_LO#0 = ((byte*))54053 -Constant (const byte*) DTV_BLITTER_SRCA_LIN_HI#0 = ((byte*))54054 -Constant (const byte*) DTV_BLITTER_SRCA_STEP#0 = ((byte*))54055 -Constant (const byte*) DTV_BLITTER_SRCB_LO#0 = ((byte*))54056 -Constant (const byte*) DTV_BLITTER_SRCB_MI#0 = ((byte*))54057 -Constant (const byte*) DTV_BLITTER_SRCB_HI#0 = ((byte*))54058 -Constant (const byte*) DTV_BLITTER_SRCB_MOD_LO#0 = ((byte*))54059 -Constant (const byte*) DTV_BLITTER_SRCB_MOD_HI#0 = ((byte*))54060 -Constant (const byte*) DTV_BLITTER_SRCB_LIN_LO#0 = ((byte*))54061 -Constant (const byte*) DTV_BLITTER_SRCB_LIN_HI#0 = ((byte*))54062 -Constant (const byte*) DTV_BLITTER_SRCB_STEP#0 = ((byte*))54063 -Constant (const byte*) DTV_BLITTER_DEST_LO#0 = ((byte*))54064 -Constant (const byte*) DTV_BLITTER_DEST_MI#0 = ((byte*))54065 -Constant (const byte*) DTV_BLITTER_DEST_HI#0 = ((byte*))54066 -Constant (const byte*) DTV_BLITTER_DEST_MOD_LO#0 = ((byte*))54067 -Constant (const byte*) DTV_BLITTER_DEST_MOD_HI#0 = ((byte*))54068 -Constant (const byte*) DTV_BLITTER_DEST_LIN_LO#0 = ((byte*))54069 -Constant (const byte*) DTV_BLITTER_DEST_LIN_HI#0 = ((byte*))54070 -Constant (const byte*) DTV_BLITTER_DEST_STEP#0 = ((byte*))54071 -Constant (const byte*) DTV_BLITTER_LEN_LO#0 = ((byte*))54072 -Constant (const byte*) DTV_BLITTER_LEN_HI#0 = ((byte*))54073 -Constant (const byte*) DTV_BLITTER_CONTROL#0 = ((byte*))54074 +Constant (const byte) DTV_COLORRAM_OFF#0 = $10 +Constant (const byte) DTV_BADLINE_OFF#0 = $20 +Constant (const byte) DTV_CHUNKY#0 = $40 +Constant (const byte*) DTV_PALETTE#0 = ((byte*))$d200 +Constant (const byte[$10]) DTV_PALETTE_DEFAULT#0 = { 0, $f, $36, $be, $58, $db, $86, $ff, $29, $26, $3b, 5, 7, $df, $9a, $a } +Constant (const byte*) DTV_PLANEA_START_LO#0 = ((byte*))$d03a +Constant (const byte*) DTV_PLANEA_START_MI#0 = ((byte*))$d03b +Constant (const byte*) DTV_PLANEA_START_HI#0 = ((byte*))$d045 +Constant (const byte*) DTV_PLANEA_STEP#0 = ((byte*))$d046 +Constant (const byte*) DTV_PLANEA_MODULO_LO#0 = ((byte*))$d038 +Constant (const byte*) DTV_PLANEA_MODULO_HI#0 = ((byte*))$d039 +Constant (const byte*) DTV_PLANEB_START_LO#0 = ((byte*))$d049 +Constant (const byte*) DTV_PLANEB_START_MI#0 = ((byte*))$d04a +Constant (const byte*) DTV_PLANEB_START_HI#0 = ((byte*))$d04b +Constant (const byte*) DTV_PLANEB_STEP#0 = ((byte*))$d04c +Constant (const byte*) DTV_PLANEB_MODULO_LO#0 = ((byte*))$d047 +Constant (const byte*) DTV_PLANEB_MODULO_HI#0 = ((byte*))$d048 +Constant (const byte*) DTV_SPRITE_BANK#0 = ((byte*))$d04d +Constant (const byte*) DTV_COLOR_BANK_LO#0 = ((byte*))$d036 +Constant (const byte*) DTV_COLOR_BANK_HI#0 = ((byte*))$d037 +Constant (const dword) DTV_COLOR_BANK_DEFAULT#0 = $1d800 +Constant (const byte*) DTV_GRAPHICS_VIC_BANK#0 = ((byte*))$d03d +Constant (const byte*) DTV_GRAPHICS_HICOL_BANK#0 = ((byte*))$d03e +Constant (const byte*) dtvSetCpuBankSegment1::cpuBank#0 = ((byte*))$ff +Constant (const byte*) DTV_BLITTER_SRCA_LO#0 = ((byte*))$d320 +Constant (const byte*) DTV_BLITTER_SRCA_MI#0 = ((byte*))$d321 +Constant (const byte*) DTV_BLITTER_SRCA_HI#0 = ((byte*))$d322 +Constant (const byte*) DTV_BLITTER_SRCA_MOD_LO#0 = ((byte*))$d323 +Constant (const byte*) DTV_BLITTER_SRCA_MOD_HI#0 = ((byte*))$d324 +Constant (const byte*) DTV_BLITTER_SRCA_LIN_LO#0 = ((byte*))$d325 +Constant (const byte*) DTV_BLITTER_SRCA_LIN_HI#0 = ((byte*))$d326 +Constant (const byte*) DTV_BLITTER_SRCA_STEP#0 = ((byte*))$d327 +Constant (const byte*) DTV_BLITTER_SRCB_LO#0 = ((byte*))$d328 +Constant (const byte*) DTV_BLITTER_SRCB_MI#0 = ((byte*))$d329 +Constant (const byte*) DTV_BLITTER_SRCB_HI#0 = ((byte*))$d32a +Constant (const byte*) DTV_BLITTER_SRCB_MOD_LO#0 = ((byte*))$d32b +Constant (const byte*) DTV_BLITTER_SRCB_MOD_HI#0 = ((byte*))$d32c +Constant (const byte*) DTV_BLITTER_SRCB_LIN_LO#0 = ((byte*))$d32d +Constant (const byte*) DTV_BLITTER_SRCB_LIN_HI#0 = ((byte*))$d32e +Constant (const byte*) DTV_BLITTER_SRCB_STEP#0 = ((byte*))$d32f +Constant (const byte*) DTV_BLITTER_DEST_LO#0 = ((byte*))$d330 +Constant (const byte*) DTV_BLITTER_DEST_MI#0 = ((byte*))$d331 +Constant (const byte*) DTV_BLITTER_DEST_HI#0 = ((byte*))$d332 +Constant (const byte*) DTV_BLITTER_DEST_MOD_LO#0 = ((byte*))$d333 +Constant (const byte*) DTV_BLITTER_DEST_MOD_HI#0 = ((byte*))$d334 +Constant (const byte*) DTV_BLITTER_DEST_LIN_LO#0 = ((byte*))$d335 +Constant (const byte*) DTV_BLITTER_DEST_LIN_HI#0 = ((byte*))$d336 +Constant (const byte*) DTV_BLITTER_DEST_STEP#0 = ((byte*))$d337 +Constant (const byte*) DTV_BLITTER_LEN_LO#0 = ((byte*))$d338 +Constant (const byte*) DTV_BLITTER_LEN_HI#0 = ((byte*))$d339 +Constant (const byte*) DTV_BLITTER_CONTROL#0 = ((byte*))$d33a Constant (const byte) DTV_BLIT_FORCE_START#0 = 1 Constant (const byte) DTV_BLIT_SRCA_FWD#0 = 2 Constant (const byte) DTV_BLIT_SRCB_FWD#0 = 4 Constant (const byte) DTV_BLIT_DEST_FWD#0 = 8 -Constant (const byte) DTV_BLIT_VIC_IRQ#0 = 16 -Constant (const byte) DTV_BLIT_CIA_IRQ#0 = 32 -Constant (const byte) DTV_BLIT_VBLANK#0 = 64 -Constant (const byte) DTV_BLIT_IRQ_EN#0 = 128 -Constant (const byte*) DTV_BLITTER_TRANSPARANCY#0 = ((byte*))54075 +Constant (const byte) DTV_BLIT_VIC_IRQ#0 = $10 +Constant (const byte) DTV_BLIT_CIA_IRQ#0 = $20 +Constant (const byte) DTV_BLIT_VBLANK#0 = $40 +Constant (const byte) DTV_BLIT_IRQ_EN#0 = $80 +Constant (const byte*) DTV_BLITTER_TRANSPARANCY#0 = ((byte*))$d33b Constant (const byte) DTV_BLIT_DISABLE_B#0 = 1 Constant (const byte) DTV_BLIT_WRITE_TRANSPARENT#0 = 2 Constant (const byte) DTV_BLIT_WRITE_NONTRANSPARENT#0 = 4 Constant (const byte) DTV_BLIT_TRANSPARANCY_NONE#0 = 0 -Constant (const byte*) DTV_BLITTER_ALU#0 = ((byte*))54078 +Constant (const byte*) DTV_BLITTER_ALU#0 = ((byte*))$d33e Constant (const byte) DTV_BLIT_SHIFT0#0 = 0 Constant (const byte) DTV_BLIT_SHIFT1#0 = 1 Constant (const byte) DTV_BLIT_SHIFT2#0 = 2 @@ -8465,20 +8465,20 @@ Constant (const byte) DTV_BLIT_SHIFT6#0 = 6 Constant (const byte) DTV_BLIT_SHIFT7#0 = 7 Constant (const byte) DTV_BLIT_AND#0 = 0 Constant (const byte) DTV_BLIT_NAND#0 = 8 -Constant (const byte) DTV_BLIT_NOR#0 = 16 -Constant (const byte) DTV_BLIT_OR#0 = 24 -Constant (const byte) DTV_BLIT_XOR#0 = 32 -Constant (const byte) DTV_BLIT_XNOR#0 = 40 -Constant (const byte) DTV_BLIT_ADD#0 = 48 -Constant (const byte) DTV_BLIT_SUB#0 = 56 -Constant (const byte*) DTV_BLITTER_CONTROL2#0 = ((byte*))54079 +Constant (const byte) DTV_BLIT_NOR#0 = $10 +Constant (const byte) DTV_BLIT_OR#0 = $18 +Constant (const byte) DTV_BLIT_XOR#0 = $20 +Constant (const byte) DTV_BLIT_XNOR#0 = $28 +Constant (const byte) DTV_BLIT_ADD#0 = $30 +Constant (const byte) DTV_BLIT_SUB#0 = $38 +Constant (const byte*) DTV_BLITTER_CONTROL2#0 = ((byte*))$d33f Constant (const byte) DTV_BLIT_CLEAR_IRQ#0 = 1 Constant (const byte) DTV_BLIT_SRCA_CONT#0 = 2 Constant (const byte) DTV_BLIT_SRCB_CONT#0 = 4 Constant (const byte) DTV_BLIT_DEST_CONT#0 = 8 Constant (const byte) DTV_BLIT_STATUS_BUSY#0 = 1 Constant (const byte) DTV_BLIT_STATUS_IRQ#0 = 2 -Constant (const byte*) print_screen#0 = ((byte*))1024 +Constant (const byte*) print_screen#0 = ((byte*))$400 Constant (const byte[]) print_hextab#0 = $69 Constant (const byte) KEY_DEL#0 = 0 Constant (const byte) KEY_RETURN#0 = 1 @@ -8490,62 +8490,62 @@ Constant (const byte) KEY_F5#0 = 6 Constant (const byte) KEY_CRSR_DOWN#0 = 7 Constant (const byte) KEY_3#0 = 8 Constant (const byte) KEY_W#0 = 9 -Constant (const byte) KEY_A#0 = 10 -Constant (const byte) KEY_4#0 = 11 -Constant (const byte) KEY_Z#0 = 12 -Constant (const byte) KEY_S#0 = 13 -Constant (const byte) KEY_E#0 = 14 -Constant (const byte) KEY_LSHIFT#0 = 15 -Constant (const byte) KEY_5#0 = 16 -Constant (const byte) KEY_R#0 = 17 -Constant (const byte) KEY_D#0 = 18 -Constant (const byte) KEY_6#0 = 19 -Constant (const byte) KEY_C#0 = 20 -Constant (const byte) KEY_F#0 = 21 -Constant (const byte) KEY_T#0 = 22 -Constant (const byte) KEY_X#0 = 23 -Constant (const byte) KEY_7#0 = 24 -Constant (const byte) KEY_Y#0 = 25 -Constant (const byte) KEY_G#0 = 26 -Constant (const byte) KEY_8#0 = 27 -Constant (const byte) KEY_B#0 = 28 -Constant (const byte) KEY_H#0 = 29 -Constant (const byte) KEY_U#0 = 30 -Constant (const byte) KEY_V#0 = 31 -Constant (const byte) KEY_9#0 = 32 -Constant (const byte) KEY_I#0 = 33 -Constant (const byte) KEY_J#0 = 34 -Constant (const byte) KEY_0#0 = 35 -Constant (const byte) KEY_M#0 = 36 -Constant (const byte) KEY_K#0 = 37 -Constant (const byte) KEY_O#0 = 38 -Constant (const byte) KEY_N#0 = 39 -Constant (const byte) KEY_PLUS#0 = 40 -Constant (const byte) KEY_P#0 = 41 -Constant (const byte) KEY_L#0 = 42 -Constant (const byte) KEY_MINUS#0 = 43 -Constant (const byte) KEY_DOT#0 = 44 -Constant (const byte) KEY_COLON#0 = 45 -Constant (const byte) KEY_AT#0 = 46 -Constant (const byte) KEY_COMMA#0 = 47 -Constant (const byte) KEY_POUND#0 = 48 -Constant (const byte) KEY_ASTERISK#0 = 49 -Constant (const byte) KEY_SEMICOLON#0 = 50 -Constant (const byte) KEY_HOME#0 = 51 -Constant (const byte) KEY_RSHIFT#0 = 52 -Constant (const byte) KEY_EQUALS#0 = 53 -Constant (const byte) KEY_ARROW_UP#0 = 54 -Constant (const byte) KEY_SLASH#0 = 55 -Constant (const byte) KEY_1#0 = 56 -Constant (const byte) KEY_ARROW_LEFT#0 = 57 -Constant (const byte) KEY_CTRL#0 = 58 -Constant (const byte) KEY_2#0 = 59 -Constant (const byte) KEY_SPACE#0 = 60 -Constant (const byte) KEY_COMMODORE#0 = 61 -Constant (const byte) KEY_Q#0 = 62 -Constant (const byte) KEY_RUNSTOP#0 = 63 -Constant (const byte[8]) keyboard_matrix_row_bitmask#0 = { 254, 253, 251, 247, 239, 223, 191, 127 } -Constant (const byte[8]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, 16, 32, 64, 128 } +Constant (const byte) KEY_A#0 = $a +Constant (const byte) KEY_4#0 = $b +Constant (const byte) KEY_Z#0 = $c +Constant (const byte) KEY_S#0 = $d +Constant (const byte) KEY_E#0 = $e +Constant (const byte) KEY_LSHIFT#0 = $f +Constant (const byte) KEY_5#0 = $10 +Constant (const byte) KEY_R#0 = $11 +Constant (const byte) KEY_D#0 = $12 +Constant (const byte) KEY_6#0 = $13 +Constant (const byte) KEY_C#0 = $14 +Constant (const byte) KEY_F#0 = $15 +Constant (const byte) KEY_T#0 = $16 +Constant (const byte) KEY_X#0 = $17 +Constant (const byte) KEY_7#0 = $18 +Constant (const byte) KEY_Y#0 = $19 +Constant (const byte) KEY_G#0 = $1a +Constant (const byte) KEY_8#0 = $1b +Constant (const byte) KEY_B#0 = $1c +Constant (const byte) KEY_H#0 = $1d +Constant (const byte) KEY_U#0 = $1e +Constant (const byte) KEY_V#0 = $1f +Constant (const byte) KEY_9#0 = $20 +Constant (const byte) KEY_I#0 = $21 +Constant (const byte) KEY_J#0 = $22 +Constant (const byte) KEY_0#0 = $23 +Constant (const byte) KEY_M#0 = $24 +Constant (const byte) KEY_K#0 = $25 +Constant (const byte) KEY_O#0 = $26 +Constant (const byte) KEY_N#0 = $27 +Constant (const byte) KEY_PLUS#0 = $28 +Constant (const byte) KEY_P#0 = $29 +Constant (const byte) KEY_L#0 = $2a +Constant (const byte) KEY_MINUS#0 = $2b +Constant (const byte) KEY_DOT#0 = $2c +Constant (const byte) KEY_COLON#0 = $2d +Constant (const byte) KEY_AT#0 = $2e +Constant (const byte) KEY_COMMA#0 = $2f +Constant (const byte) KEY_POUND#0 = $30 +Constant (const byte) KEY_ASTERISK#0 = $31 +Constant (const byte) KEY_SEMICOLON#0 = $32 +Constant (const byte) KEY_HOME#0 = $33 +Constant (const byte) KEY_RSHIFT#0 = $34 +Constant (const byte) KEY_EQUALS#0 = $35 +Constant (const byte) KEY_ARROW_UP#0 = $36 +Constant (const byte) KEY_SLASH#0 = $37 +Constant (const byte) KEY_1#0 = $38 +Constant (const byte) KEY_ARROW_LEFT#0 = $39 +Constant (const byte) KEY_CTRL#0 = $3a +Constant (const byte) KEY_2#0 = $3b +Constant (const byte) KEY_SPACE#0 = $3c +Constant (const byte) KEY_COMMODORE#0 = $3d +Constant (const byte) KEY_Q#0 = $3e +Constant (const byte) KEY_RUNSTOP#0 = $3f +Constant (const byte[8]) keyboard_matrix_row_bitmask#0 = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f } +Constant (const byte[8]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, $10, $20, $40, $80 } Constant (const byte[8]) keyboard_events#0 = { fill( 8, 0) } Constant (const byte) keyboard_events_size#0 = 0 Constant (const byte) keyboard_modifiers#0 = 0 @@ -8558,57 +8558,57 @@ Constant (const byte) keyboard_event_scan::keycode#0 = 0 Constant (const byte) keyboard_event_scan::row#0 = 0 Constant (const byte) keyboard_event_scan::col#0 = 0 Constant (const byte) keyboard_modifiers#1 = 0 -Constant (const byte) keyboard_event_get::return#0 = 255 -Constant (const byte[256]) bitmap_plot_xlo#0 = { fill( 256, 0) } -Constant (const byte[256]) bitmap_plot_xhi#0 = { fill( 256, 0) } -Constant (const byte[256]) bitmap_plot_ylo#0 = { fill( 256, 0) } -Constant (const byte[256]) bitmap_plot_yhi#0 = { fill( 256, 0) } -Constant (const byte[256]) bitmap_plot_bit#0 = { fill( 256, 0) } -Constant (const byte) bitmap_init::bits#0 = 128 +Constant (const byte) keyboard_event_get::return#0 = $ff +Constant (const byte[$100]) bitmap_plot_xlo#0 = { fill( $100, 0) } +Constant (const byte[$100]) bitmap_plot_xhi#0 = { fill( $100, 0) } +Constant (const byte[$100]) bitmap_plot_ylo#0 = { fill( $100, 0) } +Constant (const byte[$100]) bitmap_plot_yhi#0 = { fill( $100, 0) } +Constant (const byte[$100]) bitmap_plot_bit#0 = { fill( $100, 0) } +Constant (const byte) bitmap_init::bits#0 = $80 Constant (const byte) bitmap_init::x#0 = 0 -Constant (const byte) bitmap_init::bits#2 = 128 +Constant (const byte) bitmap_init::bits#2 = $80 Constant (const byte*) bitmap_init::yoffs#0 = ((byte*))0 Constant (const byte) bitmap_init::y#0 = 0 -Constant (const word/signed word/dword/signed dword) bitmap_init::$13 = 40*8 +Constant (const word/signed word/dword/signed dword) bitmap_init::$13 = $28*8 Constant (const byte) bitmap_clear::y#0 = 0 Constant (const byte) bitmap_clear::x#0 = 0 Constant (const byte) bitmap_line::xd#0 = 0 Constant (const byte) bitmap_line::yd#0 = 0 -Constant (const byte*) VIC_SCREEN0#0 = ((byte*))16384 -Constant (const byte*) VIC_SCREEN1#0 = ((byte*))17408 -Constant (const byte*) VIC_SCREEN2#0 = ((byte*))18432 -Constant (const byte*) VIC_SCREEN3#0 = ((byte*))19456 -Constant (const byte*) VIC_SCREEN4#0 = ((byte*))20480 -Constant (const byte*) VIC_CHARSET_ROM#0 = ((byte*))22528 -Constant (const byte*) VIC_BITMAP#0 = ((byte*))24576 -Constant (const dword) PLANE_8BPP_CHUNKY#0 = 131072 -Constant (const dword) PLANE_HORISONTAL#0 = 196608 -Constant (const dword) PLANE_VERTICAL#0 = 204800 -Constant (const dword) PLANE_HORISONTAL2#0 = 212992 -Constant (const dword) PLANE_VERTICAL2#0 = 221184 -Constant (const dword) PLANE_BLANK#0 = 229376 -Constant (const dword) PLANE_FULL#0 = 237568 -Constant (const dword) PLANE_CHARSET8#0 = 245760 -Constant (const byte*) FORM_SCREEN#0 = ((byte*))1024 -Constant (const byte*) FORM_CHARSET#0 = ((byte*))6144 +Constant (const byte*) VIC_SCREEN0#0 = ((byte*))$4000 +Constant (const byte*) VIC_SCREEN1#0 = ((byte*))$4400 +Constant (const byte*) VIC_SCREEN2#0 = ((byte*))$4800 +Constant (const byte*) VIC_SCREEN3#0 = ((byte*))$4c00 +Constant (const byte*) VIC_SCREEN4#0 = ((byte*))$5000 +Constant (const byte*) VIC_CHARSET_ROM#0 = ((byte*))$5800 +Constant (const byte*) VIC_BITMAP#0 = ((byte*))$6000 +Constant (const dword) PLANE_8BPP_CHUNKY#0 = $20000 +Constant (const dword) PLANE_HORISONTAL#0 = $30000 +Constant (const dword) PLANE_VERTICAL#0 = $32000 +Constant (const dword) PLANE_HORISONTAL2#0 = $34000 +Constant (const dword) PLANE_VERTICAL2#0 = $36000 +Constant (const dword) PLANE_BLANK#0 = $38000 +Constant (const dword) PLANE_FULL#0 = $3a000 +Constant (const dword) PLANE_CHARSET8#0 = $3c000 +Constant (const byte*) FORM_SCREEN#0 = ((byte*))$400 +Constant (const byte*) FORM_CHARSET#0 = ((byte*))$1800 Constant (const string) $1 = " C64 DTV Graphics Mode Explorer @"+" @" Constant (const string) $16 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+" @" -Constant (const byte) form_fields_cnt#0 = 36 -Constant (const byte[]) form_fields_x#0 = { 8, 12, 12, 12, 12, 12, 12, 12, 12, 12, 25, 24, 25, 24, 25, 24, 25, 25, 24, 25, 24, 25, 24, 25, 37, 37, 37, 37, 36, 37, 36, 37, 36, 37, 36, 37 } -Constant (const byte[]) form_fields_y#0 = { 2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 5, 6, 6, 7, 7, 8, 8, 11, 12, 12, 13, 13, 14, 14, 5, 6, 7, 10, 11, 11, 12, 12, 13, 13, 14, 14 } -Constant (const byte[]) form_fields_max#0 = { 10, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13, 15, 15, 15, 15, 15, 15, 13, 15, 15, 15, 15, 15, 15, 3, 1, 4, 1, 15, 15, 15, 15, 15, 15, 15, 15 } +Constant (const byte) form_fields_cnt#0 = $24 +Constant (const byte[]) form_fields_x#0 = { 8, $c, $c, $c, $c, $c, $c, $c, $c, $c, $19, $18, $19, $18, $19, $18, $19, $19, $18, $19, $18, $19, $18, $19, $25, $25, $25, $25, $24, $25, $24, $25, $24, $25, $24, $25 } +Constant (const byte[]) form_fields_y#0 = { 2, 5, 6, 7, 8, 9, $a, $b, $c, $d, 5, 6, 6, 7, 7, 8, 8, $b, $c, $c, $d, $d, $e, $e, 5, 6, 7, $a, $b, $b, $c, $c, $d, $d, $e, $e } +Constant (const byte[]) form_fields_max#0 = { $a, 1, 1, 1, 1, 1, 1, 1, 1, 1, $d, $f, $f, $f, $f, $f, $f, $d, $f, $f, $f, $f, $f, $f, 3, 1, 4, 1, $f, $f, $f, $f, $f, $f, $f, $f } Constant (const byte[]) form_fields_val#0 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } Constant (const byte[]) preset_stdchar#0 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } Constant (const byte[]) preset_ecmchar#0 = { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 5, 0, 6 } Constant (const byte[]) preset_stdbm#0 = { 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } Constant (const byte[]) preset_mcbm#0 = { 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0 } Constant (const byte[]) preset_hi_stdchar#0 = { 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } -Constant (const byte[]) preset_hi_ecmchar#0 = { 5, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 4, 6, 8, 9, 12, 12 } -Constant (const byte[]) preset_twoplane#0 = { 6, 1, 0, 1, 1, 1, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 7, 0, 13, 4, 0, 0, 0, 0 } +Constant (const byte[]) preset_hi_ecmchar#0 = { 5, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 4, 6, 8, 9, $c, $c } +Constant (const byte[]) preset_twoplane#0 = { 6, 1, 0, 1, 1, 1, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 7, 0, $d, 4, 0, 0, 0, 0 } Constant (const byte[]) preset_chunky#0 = { 7, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 8, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } -Constant (const byte[]) preset_sixsfred#0 = { 8, 1, 1, 1, 1, 1, 0, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 10, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 } -Constant (const byte[]) preset_sixsfred2#0 = { 9, 1, 1, 1, 0, 1, 0, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 10, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } -Constant (const byte[]) preset_8bpppixelcell#0 = { 10, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } +Constant (const byte[]) preset_sixsfred#0 = { 8, 1, 1, 1, 1, 1, 0, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, $a, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 } +Constant (const byte[]) preset_sixsfred2#0 = { 9, 1, 1, 1, 0, 1, 0, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, $a, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } +Constant (const byte[]) preset_8bpppixelcell#0 = { $a, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, $b, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } Constant (const byte*) apply_preset::preset#0 = 0 Constant (const byte) apply_preset::i#0 = 0 Constant (const byte*) render_preset_name::name#0 = 0 @@ -8624,7 +8624,7 @@ Constant (const byte*) render_preset_name::name#9 = render_preset_name::$23 Constant (const byte*) render_preset_name::name#10 = render_preset_name::$24 Constant (const byte*) render_preset_name::name#11 = render_preset_name::$25 Constant (const byte*) render_preset_name::name#12 = render_preset_name::$26 -Constant (const byte/signed byte/word/signed word/dword/signed dword) render_preset_name::$11 = 40*2 +Constant (const byte/signed byte/word/signed word/dword/signed dword) render_preset_name::$11 = $28*2 Constant (const byte) gfx_mode::dtv_control#0 = 0 Constant (const byte) gfx_mode::cy#0 = 0 Constant (const byte) gfx_mode::cx#0 = 0 @@ -8642,51 +8642,51 @@ Constant (const byte) gfx_init_screen3::cy#0 = 0 Constant (const byte) gfx_init_screen3::cx#0 = 0 Constant (const byte) gfx_init_screen4::cy#0 = 0 Constant (const byte) gfx_init_screen4::cx#0 = 0 -Constant (const byte[]) gfx_init_vic_bitmap::lines_x#0 = { 0, 255, 255, 0, 0, 128, 255, 128, 0, 128 } -Constant (const byte[]) gfx_init_vic_bitmap::lines_y#0 = { 0, 0, 199, 199, 0, 0, 100, 199, 100, 0 } +Constant (const byte[]) gfx_init_vic_bitmap::lines_x#0 = { 0, $ff, $ff, 0, 0, $80, $ff, $80, 0, $80 } +Constant (const byte[]) gfx_init_vic_bitmap::lines_y#0 = { 0, 0, $c7, $c7, 0, 0, $64, $c7, $64, 0 } Constant (const byte) gfx_init_vic_bitmap::lines_cnt#0 = 9 Constant (const byte) gfx_init_vic_bitmap::l#0 = 0 -Constant (const byte*) gfx_init_plane_8bppchunky::gfxb#0 = ((byte*))16384 +Constant (const byte*) gfx_init_plane_8bppchunky::gfxb#0 = ((byte*))$4000 Constant (const byte) gfx_init_plane_8bppchunky::y#0 = 0 Constant (const word) gfx_init_plane_8bppchunky::x#0 = 0 -Constant (const byte*) gfx_init_plane_8bppchunky::gfxb#2 = ((byte*))16384 -Constant (const byte/signed byte/word/signed word/dword/signed dword) gfx_init_plane_8bppchunky::$10 = 16384/16384 +Constant (const byte*) gfx_init_plane_8bppchunky::gfxb#2 = ((byte*))$4000 +Constant (const byte/signed byte/word/signed word/dword/signed dword) gfx_init_plane_8bppchunky::$10 = $4000/$4000 Constant (const byte) gfx_init_plane_horisontal::ay#0 = 0 Constant (const byte) gfx_init_plane_horisontal::ax#0 = 0 -Constant (const byte/signed byte/word/signed word/dword/signed dword) gfx_init_plane_horisontal::$9 = 16384/16384 -Constant (const byte[]) gfx_init_plane_horisontal2::row_bitmask#0 = { 0, 85, 170, 255 } +Constant (const byte/signed byte/word/signed word/dword/signed dword) gfx_init_plane_horisontal::$9 = $4000/$4000 +Constant (const byte[]) gfx_init_plane_horisontal2::row_bitmask#0 = { 0, $55, $aa, $ff } Constant (const byte) gfx_init_plane_horisontal2::ay#0 = 0 Constant (const byte) gfx_init_plane_horisontal2::ax#0 = 0 -Constant (const byte/signed byte/word/signed word/dword/signed dword) gfx_init_plane_horisontal2::$9 = 16384/16384 +Constant (const byte/signed byte/word/signed word/dword/signed dword) gfx_init_plane_horisontal2::$9 = $4000/$4000 Constant (const byte) gfx_init_plane_vertical::by#0 = 0 Constant (const byte) gfx_init_plane_vertical::bx#0 = 0 -Constant (const byte/signed byte/word/signed word/dword/signed dword) gfx_init_plane_vertical::$7 = 16384/16384 +Constant (const byte/signed byte/word/signed word/dword/signed dword) gfx_init_plane_vertical::$7 = $4000/$4000 Constant (const byte) gfx_init_plane_charset8::col#0 = 0 Constant (const byte) gfx_init_plane_charset8::ch#0 = 0 Constant (const byte) gfx_init_plane_charset8::cr#0 = 0 Constant (const byte) gfx_init_plane_charset8::cp#0 = 0 Constant (const byte) gfx_init_plane_charset8::c#0 = 0 -Constant (const byte/signed byte/word/signed word/dword/signed dword) gfx_init_plane_charset8::$12 = 16384/16384 -Constant (const byte) gfx_init_plane_fill::fill#0 = 27 +Constant (const byte/signed byte/word/signed word/dword/signed dword) gfx_init_plane_charset8::$12 = $4000/$4000 +Constant (const byte) gfx_init_plane_fill::fill#0 = $1b Constant (const byte) gfx_init_plane_fill::fill#1 = 0 -Constant (const byte) gfx_init_plane_fill::fill#2 = 255 +Constant (const byte) gfx_init_plane_fill::fill#2 = $ff Constant (const byte) gfx_init_plane_fill::by#0 = 0 Constant (const byte) gfx_init_plane_fill::bx#0 = 0 -Constant (const byte/signed byte/word/signed word/dword/signed dword) gfx_init_plane_fill::$9 = 16384/16384 +Constant (const byte/signed byte/word/signed word/dword/signed dword) gfx_init_plane_fill::$9 = $4000/$4000 Constant (const byte) form_mode::i#0 = 0 -Constant (const byte[25]) form_line_lo#0 = { fill( 25, 0) } -Constant (const byte[25]) form_line_hi#0 = { fill( 25, 0) } +Constant (const byte[$19]) form_line_lo#0 = { fill( $19, 0) } +Constant (const byte[$19]) form_line_hi#0 = { fill( $19, 0) } Constant (const byte) form_field_idx#36 = 0 -Constant (const signed byte) FORM_CURSOR_BLINK#0 = 40 +Constant (const signed byte) FORM_CURSOR_BLINK#0 = $28 Constant (const byte) form_set_screen::y#0 = 0 Constant (const byte) form_render_values::idx#0 = 0 Constant (const byte) form_control::return#1 = 0 Constant (const byte) form_field_idx#8 = 0 Constant (const byte) form_control::return#3 = 0 Constant (const byte) form_control::return#4 = 0 -Constant (const byte) form_control::return#5 = 255 +Constant (const byte) form_control::return#5 = $ff Successful SSA optimization Pass2ConstantIdentification -Constant (const byte[]) keyboard_char_keycodes#0 = { KEY_AT#0, KEY_A#0, KEY_B#0, KEY_C#0, KEY_D#0, KEY_E#0, KEY_F#0, KEY_G#0, KEY_H#0, KEY_I#0, KEY_J#0, KEY_K#0, KEY_L#0, KEY_M#0, KEY_N#0, KEY_O#0, KEY_P#0, KEY_Q#0, KEY_R#0, KEY_S#0, KEY_T#0, KEY_U#0, KEY_V#0, KEY_W#0, KEY_X#0, KEY_Y#0, KEY_Z#0, 63, KEY_POUND#0, 63, KEY_ARROW_UP#0, KEY_ARROW_LEFT#0, KEY_SPACE#0, 63, 63, 63, 63, 63, 63, 63, 63, 63, KEY_ASTERISK#0, KEY_PLUS#0, KEY_COMMA#0, KEY_MINUS#0, KEY_DOT#0, KEY_SLASH#0, KEY_0#0, KEY_1#0, KEY_2#0, KEY_3#0, KEY_4#0, KEY_5#0, KEY_6#0, KEY_7#0, KEY_8#0, KEY_9#0, KEY_COLON#0, KEY_SEMICOLON#0, 63, KEY_EQUALS#0, 63, 63 } +Constant (const byte[]) keyboard_char_keycodes#0 = { KEY_AT#0, KEY_A#0, KEY_B#0, KEY_C#0, KEY_D#0, KEY_E#0, KEY_F#0, KEY_G#0, KEY_H#0, KEY_I#0, KEY_J#0, KEY_K#0, KEY_L#0, KEY_M#0, KEY_N#0, KEY_O#0, KEY_P#0, KEY_Q#0, KEY_R#0, KEY_S#0, KEY_T#0, KEY_U#0, KEY_V#0, KEY_W#0, KEY_X#0, KEY_Y#0, KEY_Z#0, $3f, KEY_POUND#0, $3f, KEY_ARROW_UP#0, KEY_ARROW_LEFT#0, KEY_SPACE#0, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, KEY_ASTERISK#0, KEY_PLUS#0, KEY_COMMA#0, KEY_MINUS#0, KEY_DOT#0, KEY_SLASH#0, KEY_0#0, KEY_1#0, KEY_2#0, KEY_3#0, KEY_4#0, KEY_5#0, KEY_6#0, KEY_7#0, KEY_8#0, KEY_9#0, KEY_COLON#0, KEY_SEMICOLON#0, $3f, KEY_EQUALS#0, $3f, $3f } Constant (const byte) KEY_MODIFIER_SHIFT#0 = KEY_MODIFIER_LSHIFT#0|KEY_MODIFIER_RSHIFT#0 Constant (const byte) keyboard_event_pressed::keycode#0 = KEY_LSHIFT#0 Constant (const byte) keyboard_event_pressed::keycode#1 = KEY_RSHIFT#0 @@ -8742,32 +8742,32 @@ Constant (const byte*) form_ctrl_colof#0 = form_fields_val#0+6 Constant (const byte*) form_ctrl_chunk#0 = form_fields_val#0+7 Constant (const byte*) form_ctrl_borof#0 = form_fields_val#0+8 Constant (const byte*) form_ctrl_overs#0 = form_fields_val#0+9 -Constant (const byte*) form_a_pattern#0 = form_fields_val#0+10 -Constant (const byte*) form_a_start_hi#0 = form_fields_val#0+11 -Constant (const byte*) form_a_start_lo#0 = form_fields_val#0+12 -Constant (const byte*) form_a_step_hi#0 = form_fields_val#0+13 -Constant (const byte*) form_a_step_lo#0 = form_fields_val#0+14 -Constant (const byte*) form_a_mod_hi#0 = form_fields_val#0+15 -Constant (const byte*) form_a_mod_lo#0 = form_fields_val#0+16 -Constant (const byte*) form_b_pattern#0 = form_fields_val#0+17 -Constant (const byte*) form_b_start_hi#0 = form_fields_val#0+18 -Constant (const byte*) form_b_start_lo#0 = form_fields_val#0+19 -Constant (const byte*) form_b_step_hi#0 = form_fields_val#0+20 -Constant (const byte*) form_b_step_lo#0 = form_fields_val#0+21 -Constant (const byte*) form_b_mod_hi#0 = form_fields_val#0+22 -Constant (const byte*) form_b_mod_lo#0 = form_fields_val#0+23 -Constant (const byte*) form_vic_screen#0 = form_fields_val#0+24 -Constant (const byte*) form_vic_gfx#0 = form_fields_val#0+25 -Constant (const byte*) form_vic_cols#0 = form_fields_val#0+26 -Constant (const byte*) form_dtv_palet#0 = form_fields_val#0+27 -Constant (const byte*) form_vic_bg0_hi#0 = form_fields_val#0+28 -Constant (const byte*) form_vic_bg0_lo#0 = form_fields_val#0+29 -Constant (const byte*) form_vic_bg1_hi#0 = form_fields_val#0+30 -Constant (const byte*) form_vic_bg1_lo#0 = form_fields_val#0+31 -Constant (const byte*) form_vic_bg2_hi#0 = form_fields_val#0+32 -Constant (const byte*) form_vic_bg2_lo#0 = form_fields_val#0+33 -Constant (const byte*) form_vic_bg3_hi#0 = form_fields_val#0+34 -Constant (const byte*) form_vic_bg3_lo#0 = form_fields_val#0+35 +Constant (const byte*) form_a_pattern#0 = form_fields_val#0+$a +Constant (const byte*) form_a_start_hi#0 = form_fields_val#0+$b +Constant (const byte*) form_a_start_lo#0 = form_fields_val#0+$c +Constant (const byte*) form_a_step_hi#0 = form_fields_val#0+$d +Constant (const byte*) form_a_step_lo#0 = form_fields_val#0+$e +Constant (const byte*) form_a_mod_hi#0 = form_fields_val#0+$f +Constant (const byte*) form_a_mod_lo#0 = form_fields_val#0+$10 +Constant (const byte*) form_b_pattern#0 = form_fields_val#0+$11 +Constant (const byte*) form_b_start_hi#0 = form_fields_val#0+$12 +Constant (const byte*) form_b_start_lo#0 = form_fields_val#0+$13 +Constant (const byte*) form_b_step_hi#0 = form_fields_val#0+$14 +Constant (const byte*) form_b_step_lo#0 = form_fields_val#0+$15 +Constant (const byte*) form_b_mod_hi#0 = form_fields_val#0+$16 +Constant (const byte*) form_b_mod_lo#0 = form_fields_val#0+$17 +Constant (const byte*) form_vic_screen#0 = form_fields_val#0+$18 +Constant (const byte*) form_vic_gfx#0 = form_fields_val#0+$19 +Constant (const byte*) form_vic_cols#0 = form_fields_val#0+$1a +Constant (const byte*) form_dtv_palet#0 = form_fields_val#0+$1b +Constant (const byte*) form_vic_bg0_hi#0 = form_fields_val#0+$1c +Constant (const byte*) form_vic_bg0_lo#0 = form_fields_val#0+$1d +Constant (const byte*) form_vic_bg1_hi#0 = form_fields_val#0+$1e +Constant (const byte*) form_vic_bg1_lo#0 = form_fields_val#0+$1f +Constant (const byte*) form_vic_bg2_hi#0 = form_fields_val#0+$20 +Constant (const byte*) form_vic_bg2_lo#0 = form_fields_val#0+$21 +Constant (const byte*) form_vic_bg3_hi#0 = form_fields_val#0+$22 +Constant (const byte*) form_vic_bg3_lo#0 = form_fields_val#0+$23 Constant (const byte) gfx_mode::dtv_control#1 = gfx_mode::dtv_control#0|DTV_LINEAR#0 Constant (const byte) gfx_mode::$18 = VIC_DEN#0|VIC_RSEL#0 Constant (const byte) gfx_mode::vic_control2#0 = VIC_CSEL#0 @@ -8781,19 +8781,19 @@ Constant (const byte*) gfx_init_screen2::ch#0 = VIC_SCREEN2#0 Constant (const byte*) gfx_init_screen3::ch#0 = VIC_SCREEN3#0 Constant (const byte*) gfx_init_screen4::ch#0 = VIC_SCREEN4#0 Constant (const byte*) bitmap_init::bitmap#0 = VIC_BITMAP#0 -Constant (const dword) gfx_init_plane_8bppchunky::$0 = PLANE_8BPP_CHUNKY#0/16384 +Constant (const dword) gfx_init_plane_8bppchunky::$0 = PLANE_8BPP_CHUNKY#0/$4000 Constant (const byte) dtvSetCpuBankSegment1::cpuBankIdx#2 = ((byte))gfx_init_plane_8bppchunky::$10 -Constant (const dword) gfx_init_plane_horisontal::$0 = PLANE_HORISONTAL#0/16384 -Constant (const word/dword) gfx_init_plane_horisontal::$3 = PLANE_HORISONTAL#0&16383 +Constant (const dword) gfx_init_plane_horisontal::$0 = PLANE_HORISONTAL#0/$4000 +Constant (const word/dword) gfx_init_plane_horisontal::$3 = PLANE_HORISONTAL#0&$3fff Constant (const byte) dtvSetCpuBankSegment1::cpuBankIdx#4 = ((byte))gfx_init_plane_horisontal::$9 -Constant (const dword) gfx_init_plane_horisontal2::$0 = PLANE_HORISONTAL2#0/16384 -Constant (const word/dword) gfx_init_plane_horisontal2::$3 = PLANE_HORISONTAL2#0&16383 +Constant (const dword) gfx_init_plane_horisontal2::$0 = PLANE_HORISONTAL2#0/$4000 +Constant (const word/dword) gfx_init_plane_horisontal2::$3 = PLANE_HORISONTAL2#0&$3fff Constant (const byte) dtvSetCpuBankSegment1::cpuBankIdx#6 = ((byte))gfx_init_plane_horisontal2::$9 -Constant (const dword) gfx_init_plane_vertical::$0 = PLANE_VERTICAL#0/16384 -Constant (const word/dword) gfx_init_plane_vertical::$3 = PLANE_VERTICAL#0&16383 +Constant (const dword) gfx_init_plane_vertical::$0 = PLANE_VERTICAL#0/$4000 +Constant (const word/dword) gfx_init_plane_vertical::$3 = PLANE_VERTICAL#0&$3fff Constant (const byte) dtvSetCpuBankSegment1::cpuBankIdx#8 = ((byte))gfx_init_plane_vertical::$7 -Constant (const dword) gfx_init_plane_charset8::$0 = PLANE_CHARSET8#0/16384 -Constant (const word/dword) gfx_init_plane_charset8::$3 = PLANE_CHARSET8#0&16383 +Constant (const dword) gfx_init_plane_charset8::$0 = PLANE_CHARSET8#0/$4000 +Constant (const word/dword) gfx_init_plane_charset8::$3 = PLANE_CHARSET8#0&$3fff Constant (const byte*) gfx_init_plane_charset8::chargen#0 = CHARGEN#0 Constant (const byte) dtvSetCpuBankSegment1::cpuBankIdx#10 = ((byte))gfx_init_plane_charset8::$12 Constant (const dword) gfx_init_plane_fill::plane_addr#0 = PLANE_VERTICAL2#0 @@ -8804,8 +8804,8 @@ Constant (const byte*) print_set_screen::screen#0 = COLS#0 Constant (const byte*) print_set_screen::screen#1 = FORM_SCREEN#0 Constant (const byte*) form_set_screen::screen#0 = FORM_SCREEN#0 Constant (const dword) form_mode::$9 = ((dword))FORM_CHARSET#0 -Constant (const dword) form_mode::$12 = DTV_COLOR_BANK_DEFAULT#0/1024 -Constant (const dword) form_mode::$15 = DTV_COLOR_BANK_DEFAULT#0/1024 +Constant (const dword) form_mode::$12 = DTV_COLOR_BANK_DEFAULT#0/$400 +Constant (const dword) form_mode::$15 = DTV_COLOR_BANK_DEFAULT#0/$400 Constant (const word) form_mode::$18 = ((word))FORM_CHARSET#0 Constant (const byte) form_mode::$22 = VIC_DEN#0|VIC_RSEL#0 Constant (const word) form_mode::$24 = ((word))FORM_SCREEN#0 @@ -8820,26 +8820,26 @@ Successful SSA optimization Pass2ConstantIdentification Constant (const byte) bitmap_init::$1 = >bitmap_init::bitmap#0 Constant (const string) $3 = " C64 DTV Graphics Mode Explorer @"+" @"+" PRESET 0 Standard Charset @"+" @" Constant (const string) $18 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+" @"+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+" @" -Constant (const byte*) print_str_at::at#1 = render_preset_name::$12+10 +Constant (const byte*) print_str_at::at#1 = render_preset_name::$12+$a Constant (const byte) gfx_mode::vic_control#0 = gfx_mode::$18|3 -Constant (const word/signed dword/dword) gfx_mode::$58 = gfx_mode::$57/16384 +Constant (const word/signed dword/dword) gfx_mode::$58 = gfx_mode::$57/$4000 Constant (const byte) gfx_mode::vic_control2#1 = gfx_mode::vic_control2#0|VIC_MCM#0 Constant (const byte) gfx_init_plane_8bppchunky::gfxbCpuBank#0 = ((byte))gfx_init_plane_8bppchunky::$0 Constant (const byte) gfx_init_plane_horisontal::gfxbCpuBank#0 = ((byte))gfx_init_plane_horisontal::$0 -Constant (const word/dword/signed dword) gfx_init_plane_horisontal::$4 = 16384+gfx_init_plane_horisontal::$3 +Constant (const word/dword/signed dword) gfx_init_plane_horisontal::$4 = $4000+gfx_init_plane_horisontal::$3 Constant (const byte) gfx_init_plane_horisontal2::gfxbCpuBank#0 = ((byte))gfx_init_plane_horisontal2::$0 -Constant (const word/dword/signed dword) gfx_init_plane_horisontal2::$4 = 16384+gfx_init_plane_horisontal2::$3 +Constant (const word/dword/signed dword) gfx_init_plane_horisontal2::$4 = $4000+gfx_init_plane_horisontal2::$3 Constant (const byte) gfx_init_plane_vertical::gfxbCpuBank#0 = ((byte))gfx_init_plane_vertical::$0 -Constant (const word/dword/signed dword) gfx_init_plane_vertical::$4 = 16384+gfx_init_plane_vertical::$3 +Constant (const word/dword/signed dword) gfx_init_plane_vertical::$4 = $4000+gfx_init_plane_vertical::$3 Constant (const byte) gfx_init_plane_charset8::gfxbCpuBank#0 = ((byte))gfx_init_plane_charset8::$0 -Constant (const word/dword/signed dword) gfx_init_plane_charset8::$4 = 16384+gfx_init_plane_charset8::$3 -Constant (const dword) form_mode::$10 = form_mode::$9/65536 +Constant (const word/dword/signed dword) gfx_init_plane_charset8::$4 = $4000+gfx_init_plane_charset8::$3 +Constant (const dword) form_mode::$10 = form_mode::$9/$10000 Constant (const word) form_mode::$13 = ((word))form_mode::$12 Constant (const word) form_mode::$16 = ((word))form_mode::$15 -Constant (const word/signed dword/dword) form_mode::$19 = form_mode::$18/16384 +Constant (const word/signed dword/dword) form_mode::$19 = form_mode::$18/$4000 Constant (const byte/word/dword) form_mode::$23 = form_mode::$22|3 -Constant (const word) form_mode::$25 = form_mode::$24&16383 -Constant (const word) form_mode::$28 = form_mode::$27&16383 +Constant (const word) form_mode::$25 = form_mode::$24&$3fff +Constant (const word) form_mode::$28 = form_mode::$27&$3fff Successful SSA optimization Pass2ConstantIdentification Constant (const string) $4 = " C64 DTV Graphics Mode Explorer @"+" @"+" PRESET 0 Standard Charset @"+" @"+" CONTROL PLANE A VIC II @" Constant (const string) $19 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+" @"+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+" @"+" nnnnnnnnnnnn mmmmmmmmmm ooooooooo @" @@ -8863,8 +8863,8 @@ Constant (const byte) form_mode::$11 = ((byte))form_mode::$10 Constant (const byte) form_mode::$14 = form_mode::$16 Constant (const byte) form_mode::$20 = ((byte))form_mode::$19 -Constant (const word/signed dword/dword) form_mode::$26 = form_mode::$25/64 -Constant (const word/signed dword/dword) form_mode::$29 = form_mode::$28/1024 +Constant (const word/signed dword/dword) form_mode::$26 = form_mode::$25/$40 +Constant (const word/signed dword/dword) form_mode::$29 = form_mode::$28/$400 Successful SSA optimization Pass2ConstantIdentification Constant (const string) $5 = " C64 DTV Graphics Mode Explorer @"+" @"+" PRESET 0 Standard Charset @"+" @"+" CONTROL PLANE A VIC II @"+" bmm 0 pattern p0 screen s0 @" Constant (const string) $20 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+" @"+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+" @"+" nnnnnnnnnnnn mmmmmmmmmm ooooooooo @"+" nnnnnnnnnnnn mmmmmmmmmm ooooooooo @" @@ -8946,75 +8946,75 @@ Resolved ranged comparison value if(keyboard_event_scan::row#1!=rangelast(0,7)) Resolved ranged next value keyboard_event_scan::col#1 ← ++ keyboard_event_scan::col#2 to ++ Resolved ranged comparison value if(keyboard_event_scan::col#1!=rangelast(0,7)) goto keyboard_event_scan::@4 to (byte/signed byte/word/signed word/dword/signed dword) 8 Resolved ranged next value bitmap_init::x#1 ← ++ bitmap_init::x#2 to ++ -Resolved ranged comparison value if(bitmap_init::x#1!=rangelast(0,255)) goto bitmap_init::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 Resolved ranged next value bitmap_init::y#1 ← ++ bitmap_init::y#2 to ++ -Resolved ranged comparison value if(bitmap_init::y#1!=rangelast(0,255)) goto bitmap_init::@3 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@3 to (byte/signed byte/word/signed word/dword/signed dword) 0 Resolved ranged next value bitmap_clear::x#1 ← ++ bitmap_clear::x#2 to ++ -Resolved ranged comparison value if(bitmap_clear::x#1!=rangelast(0,199)) goto bitmap_clear::@2 to (byte/word/signed word/dword/signed dword) 200 +Resolved ranged comparison value if(bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2 to (byte/word/signed word/dword/signed dword) $c8 Resolved ranged next value bitmap_clear::y#1 ← ++ bitmap_clear::y#4 to ++ -Resolved ranged comparison value if(bitmap_clear::y#1!=rangelast(0,39)) goto bitmap_clear::@1 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(bitmap_clear::y#1!=rangelast(0,$27)) goto bitmap_clear::@1 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value gfx_mode::cx#1 ← ++ gfx_mode::cx#2 to ++ -Resolved ranged comparison value if(gfx_mode::cx#1!=rangelast(0,39)) goto gfx_mode::@11 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(gfx_mode::cx#1!=rangelast(0,$27)) goto gfx_mode::@11 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value gfx_mode::cy#1 ← ++ gfx_mode::cy#4 to ++ -Resolved ranged comparison value if(gfx_mode::cy#1!=rangelast(0,24)) goto gfx_mode::@10 to (byte/signed byte/word/signed word/dword/signed dword) 25 +Resolved ranged comparison value if(gfx_mode::cy#1!=rangelast(0,$18)) goto gfx_mode::@10 to (byte/signed byte/word/signed word/dword/signed dword) $19 Resolved ranged next value gfx_mode::j#1 ← ++ gfx_mode::j#2 to ++ -Resolved ranged comparison value if(gfx_mode::j#1!=rangelast(0,15)) goto gfx_mode::@13 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(gfx_mode::j#1!=rangelast(0,$f)) goto gfx_mode::@13 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value gfx_mode::i#1 ← ++ gfx_mode::i#2 to ++ -Resolved ranged comparison value if(gfx_mode::i#1!=rangelast(0,15)) goto gfx_mode::@15 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(gfx_mode::i#1!=rangelast(0,$f)) goto gfx_mode::@15 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value gfx_init_charset::l#1 ← ++ gfx_init_charset::l#2 to ++ Resolved ranged comparison value if(gfx_init_charset::l#1!=rangelast(0,7)) goto gfx_init_charset::@2 to (byte/signed byte/word/signed word/dword/signed dword) 8 Resolved ranged next value gfx_init_charset::c#1 ← ++ gfx_init_charset::c#4 to ++ -Resolved ranged comparison value if(gfx_init_charset::c#1!=rangelast(0,255)) goto gfx_init_charset::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(gfx_init_charset::c#1!=rangelast(0,$ff)) goto gfx_init_charset::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 Resolved ranged next value gfx_init_screen0::cx#1 ← ++ gfx_init_screen0::cx#2 to ++ -Resolved ranged comparison value if(gfx_init_screen0::cx#1!=rangelast(0,39)) goto gfx_init_screen0::@2 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(gfx_init_screen0::cx#1!=rangelast(0,$27)) goto gfx_init_screen0::@2 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value gfx_init_screen0::cy#1 ← ++ gfx_init_screen0::cy#4 to ++ -Resolved ranged comparison value if(gfx_init_screen0::cy#1!=rangelast(0,24)) goto gfx_init_screen0::@1 to (byte/signed byte/word/signed word/dword/signed dword) 25 +Resolved ranged comparison value if(gfx_init_screen0::cy#1!=rangelast(0,$18)) goto gfx_init_screen0::@1 to (byte/signed byte/word/signed word/dword/signed dword) $19 Resolved ranged next value gfx_init_screen1::cx#1 ← ++ gfx_init_screen1::cx#2 to ++ -Resolved ranged comparison value if(gfx_init_screen1::cx#1!=rangelast(0,39)) goto gfx_init_screen1::@2 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(gfx_init_screen1::cx#1!=rangelast(0,$27)) goto gfx_init_screen1::@2 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value gfx_init_screen1::cy#1 ← ++ gfx_init_screen1::cy#4 to ++ -Resolved ranged comparison value if(gfx_init_screen1::cy#1!=rangelast(0,24)) goto gfx_init_screen1::@1 to (byte/signed byte/word/signed word/dword/signed dword) 25 +Resolved ranged comparison value if(gfx_init_screen1::cy#1!=rangelast(0,$18)) goto gfx_init_screen1::@1 to (byte/signed byte/word/signed word/dword/signed dword) $19 Resolved ranged next value gfx_init_screen2::cx#1 ← ++ gfx_init_screen2::cx#2 to ++ -Resolved ranged comparison value if(gfx_init_screen2::cx#1!=rangelast(0,39)) goto gfx_init_screen2::@2 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(gfx_init_screen2::cx#1!=rangelast(0,$27)) goto gfx_init_screen2::@2 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value gfx_init_screen2::cy#1 ← ++ gfx_init_screen2::cy#4 to ++ -Resolved ranged comparison value if(gfx_init_screen2::cy#1!=rangelast(0,24)) goto gfx_init_screen2::@1 to (byte/signed byte/word/signed word/dword/signed dword) 25 +Resolved ranged comparison value if(gfx_init_screen2::cy#1!=rangelast(0,$18)) goto gfx_init_screen2::@1 to (byte/signed byte/word/signed word/dword/signed dword) $19 Resolved ranged next value gfx_init_screen3::cx#1 ← ++ gfx_init_screen3::cx#2 to ++ -Resolved ranged comparison value if(gfx_init_screen3::cx#1!=rangelast(0,39)) goto gfx_init_screen3::@2 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(gfx_init_screen3::cx#1!=rangelast(0,$27)) goto gfx_init_screen3::@2 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value gfx_init_screen3::cy#1 ← ++ gfx_init_screen3::cy#4 to ++ -Resolved ranged comparison value if(gfx_init_screen3::cy#1!=rangelast(0,24)) goto gfx_init_screen3::@1 to (byte/signed byte/word/signed word/dword/signed dword) 25 +Resolved ranged comparison value if(gfx_init_screen3::cy#1!=rangelast(0,$18)) goto gfx_init_screen3::@1 to (byte/signed byte/word/signed word/dword/signed dword) $19 Resolved ranged next value gfx_init_screen4::cx#1 ← ++ gfx_init_screen4::cx#2 to ++ -Resolved ranged comparison value if(gfx_init_screen4::cx#1!=rangelast(0,39)) goto gfx_init_screen4::@2 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(gfx_init_screen4::cx#1!=rangelast(0,$27)) goto gfx_init_screen4::@2 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value gfx_init_screen4::cy#1 ← ++ gfx_init_screen4::cy#4 to ++ -Resolved ranged comparison value if(gfx_init_screen4::cy#1!=rangelast(0,24)) goto gfx_init_screen4::@1 to (byte/signed byte/word/signed word/dword/signed dword) 25 +Resolved ranged comparison value if(gfx_init_screen4::cy#1!=rangelast(0,$18)) goto gfx_init_screen4::@1 to (byte/signed byte/word/signed word/dword/signed dword) $19 Resolved ranged next value gfx_init_plane_8bppchunky::x#1 ← ++ gfx_init_plane_8bppchunky::x#2 to ++ -Resolved ranged comparison value if(gfx_init_plane_8bppchunky::x#1!=rangelast(0,319)) goto gfx_init_plane_8bppchunky::@2 to (word/signed word/dword/signed dword) 320 +Resolved ranged comparison value if(gfx_init_plane_8bppchunky::x#1!=rangelast(0,$13f)) goto gfx_init_plane_8bppchunky::@2 to (word/signed word/dword/signed dword) $140 Resolved ranged next value gfx_init_plane_8bppchunky::y#1 ← ++ gfx_init_plane_8bppchunky::y#6 to ++ -Resolved ranged comparison value if(gfx_init_plane_8bppchunky::y#1!=rangelast(0,199)) goto gfx_init_plane_8bppchunky::@1 to (byte/word/signed word/dword/signed dword) 200 +Resolved ranged comparison value if(gfx_init_plane_8bppchunky::y#1!=rangelast(0,$c7)) goto gfx_init_plane_8bppchunky::@1 to (byte/word/signed word/dword/signed dword) $c8 Resolved ranged next value gfx_init_plane_horisontal::ax#1 ← ++ gfx_init_plane_horisontal::ax#2 to ++ -Resolved ranged comparison value if(gfx_init_plane_horisontal::ax#1!=rangelast(0,39)) goto gfx_init_plane_horisontal::@2 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(gfx_init_plane_horisontal::ax#1!=rangelast(0,$27)) goto gfx_init_plane_horisontal::@2 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value gfx_init_plane_horisontal::ay#1 ← ++ gfx_init_plane_horisontal::ay#4 to ++ -Resolved ranged comparison value if(gfx_init_plane_horisontal::ay#1!=rangelast(0,199)) goto gfx_init_plane_horisontal::@1 to (byte/word/signed word/dword/signed dword) 200 +Resolved ranged comparison value if(gfx_init_plane_horisontal::ay#1!=rangelast(0,$c7)) goto gfx_init_plane_horisontal::@1 to (byte/word/signed word/dword/signed dword) $c8 Resolved ranged next value gfx_init_plane_horisontal2::ax#1 ← ++ gfx_init_plane_horisontal2::ax#2 to ++ -Resolved ranged comparison value if(gfx_init_plane_horisontal2::ax#1!=rangelast(0,39)) goto gfx_init_plane_horisontal2::@2 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(gfx_init_plane_horisontal2::ax#1!=rangelast(0,$27)) goto gfx_init_plane_horisontal2::@2 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value gfx_init_plane_horisontal2::ay#1 ← ++ gfx_init_plane_horisontal2::ay#4 to ++ -Resolved ranged comparison value if(gfx_init_plane_horisontal2::ay#1!=rangelast(0,199)) goto gfx_init_plane_horisontal2::@1 to (byte/word/signed word/dword/signed dword) 200 +Resolved ranged comparison value if(gfx_init_plane_horisontal2::ay#1!=rangelast(0,$c7)) goto gfx_init_plane_horisontal2::@1 to (byte/word/signed word/dword/signed dword) $c8 Resolved ranged next value gfx_init_plane_vertical::bx#1 ← ++ gfx_init_plane_vertical::bx#2 to ++ -Resolved ranged comparison value if(gfx_init_plane_vertical::bx#1!=rangelast(0,39)) goto gfx_init_plane_vertical::@2 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(gfx_init_plane_vertical::bx#1!=rangelast(0,$27)) goto gfx_init_plane_vertical::@2 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value gfx_init_plane_vertical::by#1 ← ++ gfx_init_plane_vertical::by#4 to ++ -Resolved ranged comparison value if(gfx_init_plane_vertical::by#1!=rangelast(0,199)) goto gfx_init_plane_vertical::@1 to (byte/word/signed word/dword/signed dword) 200 +Resolved ranged comparison value if(gfx_init_plane_vertical::by#1!=rangelast(0,$c7)) goto gfx_init_plane_vertical::@1 to (byte/word/signed word/dword/signed dword) $c8 Resolved ranged next value gfx_init_plane_charset8::cp#1 ← ++ gfx_init_plane_charset8::cp#2 to ++ Resolved ranged comparison value if(gfx_init_plane_charset8::cp#1!=rangelast(0,7)) goto gfx_init_plane_charset8::@3 to (byte/signed byte/word/signed word/dword/signed dword) 8 Resolved ranged next value gfx_init_plane_charset8::cr#1 ← ++ gfx_init_plane_charset8::cr#6 to ++ Resolved ranged comparison value if(gfx_init_plane_charset8::cr#1!=rangelast(0,7)) goto gfx_init_plane_charset8::@2 to (byte/signed byte/word/signed word/dword/signed dword) 8 Resolved ranged next value gfx_init_plane_charset8::ch#1 ← ++ gfx_init_plane_charset8::ch#7 to ++ -Resolved ranged comparison value if(gfx_init_plane_charset8::ch#1!=rangelast(0,255)) goto gfx_init_plane_charset8::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(gfx_init_plane_charset8::ch#1!=rangelast(0,$ff)) goto gfx_init_plane_charset8::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 Resolved ranged next value gfx_init_plane_fill::bx#1 ← ++ gfx_init_plane_fill::bx#2 to ++ -Resolved ranged comparison value if(gfx_init_plane_fill::bx#1!=rangelast(0,39)) goto gfx_init_plane_fill::@2 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(gfx_init_plane_fill::bx#1!=rangelast(0,$27)) goto gfx_init_plane_fill::@2 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value gfx_init_plane_fill::by#1 ← ++ gfx_init_plane_fill::by#4 to ++ -Resolved ranged comparison value if(gfx_init_plane_fill::by#1!=rangelast(0,199)) goto gfx_init_plane_fill::@1 to (byte/word/signed word/dword/signed dword) 200 +Resolved ranged comparison value if(gfx_init_plane_fill::by#1!=rangelast(0,$c7)) goto gfx_init_plane_fill::@1 to (byte/word/signed word/dword/signed dword) $c8 Resolved ranged next value form_mode::i#1 ← ++ form_mode::i#2 to ++ -Resolved ranged comparison value if(form_mode::i#1!=rangelast(0,15)) goto form_mode::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(form_mode::i#1!=rangelast(0,$f)) goto form_mode::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value form_set_screen::y#1 ← ++ form_set_screen::y#2 to ++ -Resolved ranged comparison value if(form_set_screen::y#1!=rangelast(0,24)) goto form_set_screen::@1 to (byte/signed byte/word/signed word/dword/signed dword) 25 +Resolved ranged comparison value if(form_set_screen::y#1!=rangelast(0,$18)) goto form_set_screen::@1 to (byte/signed byte/word/signed word/dword/signed dword) $19 Culled Empty Block (label) @4 Culled Empty Block (label) @5 Culled Empty Block (label) print_str_lines::@2 @@ -9289,7 +9289,7 @@ Inlining constant with var siblings (const signed byte) form_cursor_count#7 Inlining constant with var siblings (const byte) form_field_idx#7 Constant inlined form_field_idx#36 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined gfx_init_plane_charset8::cp#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined gfx_init_plane_horisontal::gfxa#0 = ((byte*))(word/signed word/dword/signed dword) 16384+(const dword) PLANE_HORISONTAL#0&(word/signed word/dword/signed dword) 16383 +Constant inlined gfx_init_plane_horisontal::gfxa#0 = ((byte*))(word/signed word/dword/signed dword) $4000+(const dword) PLANE_HORISONTAL#0&(word/signed word/dword/signed dword) $3fff Constant inlined gfx_init_screen3::cx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined apply_preset::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined gfx_init_plane_horisontal::ax#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -9300,36 +9300,36 @@ Constant inlined gfx_mode::dtv_control#1 = (byte/signed byte/word/signed word/dw Constant inlined gfx_mode::vic_control#0 = (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 Constant inlined bitmap_init::yoffs#0 = ((byte*))(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined gfx_init_plane_horisontal2::ax#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined gfx_init_plane_fill::$9 = (word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 +Constant inlined gfx_init_plane_fill::$9 = (word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 Constant inlined gfx_mode::cy#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined gfx_init_plane_fill::bx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined gfx_mode::$58 = ((word))(const byte*) VIC_SCREEN0#0/(word/signed word/dword/signed dword) 16384 -Constant inlined gfx_mode::$59 = ((byte))((word))(const byte*) VIC_SCREEN0#0/(word/signed word/dword/signed dword) 16384 +Constant inlined gfx_mode::$58 = ((word))(const byte*) VIC_SCREEN0#0/(word/signed word/dword/signed dword) $4000 +Constant inlined gfx_mode::$59 = ((byte))((word))(const byte*) VIC_SCREEN0#0/(word/signed word/dword/signed dword) $4000 Constant inlined gfx_mode::$57 = ((word))(const byte*) VIC_SCREEN0#0 Constant inlined keyboard_event_scan::col#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined gfx_init_plane_horisontal2::$0 = (const dword) PLANE_HORISONTAL2#0/(word/signed word/dword/signed dword) 16384 +Constant inlined gfx_init_plane_horisontal2::$0 = (const dword) PLANE_HORISONTAL2#0/(word/signed word/dword/signed dword) $4000 Constant inlined apply_preset::preset#5 = (const byte[]) preset_hi_stdchar#0 Constant inlined apply_preset::preset#4 = (const byte[]) preset_mcbm#0 -Constant inlined gfx_init_plane_horisontal2::$4 = (word/signed word/dword/signed dword) 16384+(const dword) PLANE_HORISONTAL2#0&(word/signed word/dword/signed dword) 16383 +Constant inlined gfx_init_plane_horisontal2::$4 = (word/signed word/dword/signed dword) $4000+(const dword) PLANE_HORISONTAL2#0&(word/signed word/dword/signed dword) $3fff Constant inlined apply_preset::preset#7 = (const byte[]) preset_twoplane#0 -Constant inlined gfx_init_plane_horisontal2::$3 = (const dword) PLANE_HORISONTAL2#0&(word/signed word/dword/signed dword) 16383 +Constant inlined gfx_init_plane_horisontal2::$3 = (const dword) PLANE_HORISONTAL2#0&(word/signed word/dword/signed dword) $3fff Constant inlined apply_preset::preset#6 = (const byte[]) preset_hi_ecmchar#0 Constant inlined gfx_mode::$18 = (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0 Constant inlined apply_preset::preset#9 = (const byte[]) preset_sixsfred#0 Constant inlined apply_preset::preset#8 = (const byte[]) preset_chunky#0 -Constant inlined gfx_init_plane_horisontal2::$9 = (word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 +Constant inlined gfx_init_plane_horisontal2::$9 = (word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 Constant inlined gfx_init_plane_horisontal::ay#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined gfx_init_plane_horisontal2::ay#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined gfx_mode::cx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined gfx_init_plane_vertical::$4 = (word/signed word/dword/signed dword) 16384+(const dword) PLANE_VERTICAL#0&(word/signed word/dword/signed dword) 16383 -Constant inlined gfx_init_plane_vertical::$3 = (const dword) PLANE_VERTICAL#0&(word/signed word/dword/signed dword) 16383 -Constant inlined gfx_init_plane_vertical::$7 = (word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 +Constant inlined gfx_init_plane_vertical::$4 = (word/signed word/dword/signed dword) $4000+(const dword) PLANE_VERTICAL#0&(word/signed word/dword/signed dword) $3fff +Constant inlined gfx_init_plane_vertical::$3 = (const dword) PLANE_VERTICAL#0&(word/signed word/dword/signed dword) $3fff +Constant inlined gfx_init_plane_vertical::$7 = (word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 Constant inlined apply_preset::preset#1 = (const byte[]) preset_stdchar#0 -Constant inlined gfx_init_plane_vertical::$0 = (const dword) PLANE_VERTICAL#0/(word/signed word/dword/signed dword) 16384 +Constant inlined gfx_init_plane_vertical::$0 = (const dword) PLANE_VERTICAL#0/(word/signed word/dword/signed dword) $4000 Constant inlined apply_preset::preset#3 = (const byte[]) preset_stdbm#0 Constant inlined apply_preset::preset#2 = (const byte[]) preset_ecmchar#0 Constant inlined bitmap_init::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined gfx_init_plane_8bppchunky::$10 = (word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 +Constant inlined gfx_init_plane_8bppchunky::$10 = (word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 Constant inlined gfx_init_plane_charset8::col#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined get_plane::return#15 = ((dword))(const byte*) VIC_SCREEN0#0 Constant inlined form_cursor_count#6 = (const signed byte) FORM_CURSOR_BLINK#0 @@ -9338,55 +9338,55 @@ Constant inlined form_cursor_count#7 = (const signed byte) FORM_CURSOR_BLINK#0/( Constant inlined get_plane::return#12 = ((dword))(const dword) PLANE_BLANK#0 Constant inlined get_plane::return#11 = ((dword))(const dword) PLANE_CHARSET8#0 Constant inlined form_mode::$32 = <(const byte*) FORM_SCREEN#0 -Constant inlined form_mode::$31 = ((byte))((word))(const byte*) FORM_SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) FORM_CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 +Constant inlined form_mode::$31 = ((byte))((word))(const byte*) FORM_SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) FORM_CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 Constant inlined form_mode::$33 = >(const byte*) FORM_SCREEN#0 -Constant inlined print_str_at::at#1 = (const byte*) FORM_SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 10 -Constant inlined gfx_init_plane_horisontal2::gfxa#0 = ((byte*))(word/signed word/dword/signed dword) 16384+(const dword) PLANE_HORISONTAL2#0&(word/signed word/dword/signed dword) 16383 -Constant inlined form_mode::$30 = ((word))(const byte*) FORM_SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) FORM_CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 +Constant inlined print_str_at::at#1 = (const byte*) FORM_SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) $a +Constant inlined gfx_init_plane_horisontal2::gfxa#0 = ((byte*))(word/signed word/dword/signed dword) $4000+(const dword) PLANE_HORISONTAL2#0&(word/signed word/dword/signed dword) $3fff +Constant inlined form_mode::$30 = ((word))(const byte*) FORM_SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) FORM_CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 Constant inlined gfx_init_screen2::ch#0 = (const byte*) VIC_SCREEN2#0 Constant inlined gfx_init_plane_charset8::chargen#0 = (const byte*) CHARGEN#0 Constant inlined gfx_init_screen2::cx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined gfx_init_plane_fill::fill#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined gfx_init_plane_fill::fill#2 = (byte/word/signed word/dword/signed dword) 255 +Constant inlined gfx_init_plane_fill::fill#2 = (byte/word/signed word/dword/signed dword) $ff Constant inlined gfx_init_plane_8bppchunky::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined gfx_init_screen2::cy#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined keyboard_event_scan::keycode#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined gfx_init_vic_bitmap::l#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined gfx_init_screen4::cx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined bitmap_init::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined form_mode::$10 = ((dword))(const byte*) FORM_CHARSET#0/(dword/signed dword) 65536 +Constant inlined form_mode::$10 = ((dword))(const byte*) FORM_CHARSET#0/(dword/signed dword) $10000 Constant inlined get_vic_charset::return#3 = (const byte*) VIC_CHARSET_ROM#0 -Constant inlined gfx_init_plane_charset8::gfxa#0 = ((byte*))(word/signed word/dword/signed dword) 16384+(const dword) PLANE_CHARSET8#0&(word/signed word/dword/signed dword) 16383 -Constant inlined form_mode::$12 = (const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 +Constant inlined gfx_init_plane_charset8::gfxa#0 = ((byte*))(word/signed word/dword/signed dword) $4000+(const dword) PLANE_CHARSET8#0&(word/signed word/dword/signed dword) $3fff +Constant inlined form_mode::$12 = (const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 Constant inlined render_preset_name::$15 = (const byte*) render_preset_name::name#1 -Constant inlined form_mode::$11 = ((byte))((dword))(const byte*) FORM_CHARSET#0/(dword/signed dword) 65536 +Constant inlined form_mode::$11 = ((byte))((dword))(const byte*) FORM_CHARSET#0/(dword/signed dword) $10000 Constant inlined form_control::$3 = (const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined render_preset_name::$16 = (const byte*) render_preset_name::name#2 Constant inlined gfx_init_screen4::ch#0 = (const byte*) VIC_SCREEN4#0 Constant inlined get_vic_charset::return#0 = (const byte*) VIC_CHARSET_ROM#0 -Constant inlined render_preset_name::$11 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined render_preset_name::$11 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined get_vic_charset::return#1 = (const byte*) VIC_BITMAP#0 -Constant inlined render_preset_name::$12 = (const byte*) FORM_SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined render_preset_name::$12 = (const byte*) FORM_SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined keyboard_event_scan::row#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined form_mode::$18 = ((word))(const byte*) FORM_CHARSET#0 -Constant inlined form_mode::$17 = >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -Constant inlined form_mode::$19 = ((word))(const byte*) FORM_CHARSET#0/(word/signed word/dword/signed dword) 16384 +Constant inlined form_mode::$17 = >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 +Constant inlined form_mode::$19 = ((word))(const byte*) FORM_CHARSET#0/(word/signed word/dword/signed dword) $4000 Constant inlined gfx_init_plane_charset8::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined form_mode::$14 = <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 +Constant inlined form_mode::$14 = <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 Constant inlined render_preset_name::$17 = (const byte*) render_preset_name::name#3 -Constant inlined form_mode::$13 = ((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 +Constant inlined form_mode::$13 = ((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 Constant inlined render_preset_name::$18 = (const byte*) render_preset_name::name#4 -Constant inlined form_mode::$16 = ((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 +Constant inlined form_mode::$16 = ((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 Constant inlined render_preset_name::$19 = (const byte*) render_preset_name::name#5 Constant inlined gfx_init_screen3::cy#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined form_mode::$15 = (const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 +Constant inlined form_mode::$15 = (const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 Constant inlined form_mode::$9 = ((dword))(const byte*) FORM_CHARSET#0 -Constant inlined bitmap_init::$13 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 -Constant inlined gfx_mode::$60 = (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) VIC_SCREEN0#0/(word/signed word/dword/signed dword) 16384 +Constant inlined bitmap_init::$13 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 +Constant inlined gfx_mode::$60 = (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) VIC_SCREEN0#0/(word/signed word/dword/signed dword) $4000 Constant inlined gfx_init_plane_8bppchunky::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined form_mode::$21 = (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) FORM_CHARSET#0/(word/signed word/dword/signed dword) 16384 +Constant inlined form_mode::$21 = (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) FORM_CHARSET#0/(word/signed word/dword/signed dword) $4000 Constant inlined render_preset_name::$24 = (const byte*) render_preset_name::name#10 -Constant inlined form_mode::$20 = ((byte))((word))(const byte*) FORM_CHARSET#0/(word/signed word/dword/signed dword) 16384 +Constant inlined form_mode::$20 = ((byte))((word))(const byte*) FORM_CHARSET#0/(word/signed word/dword/signed dword) $4000 Constant inlined render_preset_name::$25 = (const byte*) render_preset_name::name#11 Constant inlined form_mode::$23 = (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 Constant inlined render_preset_name::$26 = (const byte*) render_preset_name::name#12 @@ -9396,32 +9396,32 @@ Constant inlined render_preset_name::$21 = (const byte*) render_preset_name::nam Constant inlined render_preset_name::$22 = (const byte*) render_preset_name::name#8 Constant inlined render_preset_name::$23 = (const byte*) render_preset_name::name#9 Constant inlined gfx_init_plane_fill::by#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined form_mode::$29 = ((word))(const byte*) FORM_CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -Constant inlined form_mode::$28 = ((word))(const byte*) FORM_CHARSET#0&(word/signed word/dword/signed dword) 16383 -Constant inlined gfx_init_plane_fill::fill#0 = (byte/signed byte/word/signed word/dword/signed dword) 27 -Constant inlined form_mode::$25 = ((word))(const byte*) FORM_SCREEN#0&(word/signed word/dword/signed dword) 16383 +Constant inlined form_mode::$29 = ((word))(const byte*) FORM_CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 +Constant inlined form_mode::$28 = ((word))(const byte*) FORM_CHARSET#0&(word/signed word/dword/signed dword) $3fff +Constant inlined gfx_init_plane_fill::fill#0 = (byte/signed byte/word/signed word/dword/signed dword) $1b +Constant inlined form_mode::$25 = ((word))(const byte*) FORM_SCREEN#0&(word/signed word/dword/signed dword) $3fff Constant inlined form_mode::$24 = ((word))(const byte*) FORM_SCREEN#0 Constant inlined form_mode::$27 = ((word))(const byte*) FORM_CHARSET#0 -Constant inlined form_mode::$26 = ((word))(const byte*) FORM_SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64 +Constant inlined form_mode::$26 = ((word))(const byte*) FORM_SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40 Constant inlined gfx_mode::vic_control2#1 = (const byte) VIC_CSEL#0|(const byte) VIC_MCM#0 Constant inlined gfx_mode::vic_control2#0 = (const byte) VIC_CSEL#0 Constant inlined gfx_init_screen4::cy#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined gfx_init_plane_fill::plane_addr#2 = (const dword) PLANE_FULL#0 Constant inlined gfx_init_plane_fill::plane_addr#0 = (const dword) PLANE_VERTICAL2#0 Constant inlined gfx_init_plane_fill::plane_addr#1 = (const dword) PLANE_BLANK#0 -Constant inlined keyboard_event_get::return#0 = (byte/word/signed word/dword/signed dword) 255 +Constant inlined keyboard_event_get::return#0 = (byte/word/signed word/dword/signed dword) $ff Constant inlined gfx_init_screen3::ch#0 = (const byte*) VIC_SCREEN3#0 -Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#0 = ((byte))(const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) 16384 +Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#0 = ((byte))(const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) $4000 Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#3 = (const byte) gfx_init_plane_horisontal::gfxbCpuBank#0 Constant inlined gfx_mode::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#2 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 +Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#2 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#9 = (const byte) gfx_init_plane_charset8::gfxbCpuBank#0 Constant inlined gfx_init_charset::charset#0 = (const byte*) VIC_CHARSET_ROM#0 -Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#8 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 +Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#8 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#5 = (const byte) gfx_init_plane_horisontal2::gfxbCpuBank#0 -Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#4 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 +Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#4 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#7 = (const byte) gfx_init_plane_vertical::gfxbCpuBank#0 -Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#6 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 +Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#6 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 Constant inlined gfx_init_charset::chargen#0 = (const byte*) CHARGEN#0 Constant inlined gfx_init_screen1::ch#0 = (const byte*) VIC_SCREEN1#0 Constant inlined gfx_init_charset::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -9430,7 +9430,7 @@ Constant inlined print_str_lines::str#1 = (const byte[]) FORM_COLS#0 Constant inlined gfx_init_screen1::cx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined gfx_init_plane_vertical::by#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined gfx_mode::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined gfx_init_plane_vertical::gfxb#0 = ((byte*))(word/signed word/dword/signed dword) 16384+(const dword) PLANE_VERTICAL#0&(word/signed word/dword/signed dword) 16383 +Constant inlined gfx_init_plane_vertical::gfxb#0 = ((byte*))(word/signed word/dword/signed dword) $4000+(const dword) PLANE_VERTICAL#0&(word/signed word/dword/signed dword) $3fff Constant inlined get_vic_screen::return#4 = (const byte*) VIC_SCREEN4#0 Constant inlined apply_preset::preset#11 = (const byte[]) preset_8bpppixelcell#0 Constant inlined gfx_init_screen0::cx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -9442,7 +9442,7 @@ Constant inlined get_vic_screen::return#0 = (const byte*) VIC_SCREEN0#0 Constant inlined get_vic_screen::return#2 = (const byte*) VIC_SCREEN2#0 Constant inlined get_vic_screen::return#1 = (const byte*) VIC_SCREEN1#0 Constant inlined apply_preset::preset#10 = (const byte[]) preset_sixsfred2#0 -Constant inlined gfx_init_plane_8bppchunky::$0 = (const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) 16384 +Constant inlined gfx_init_plane_8bppchunky::$0 = (const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) $4000 Constant inlined bitmap_clear::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined keyboard_event_pressed::keycode#3 = (const byte) KEY_COMMODORE#0 Constant inlined keyboard_event_pressed::keycode#2 = (const byte) KEY_CTRL#0 @@ -9456,7 +9456,7 @@ Constant inlined keyboard_events_size#0 = (byte/signed byte/word/signed word/dwo Constant inlined get_plane::return#2 = ((dword))(const byte*) VIC_SCREEN2#0 Constant inlined get_plane::return#10 = ((dword))(const dword) PLANE_VERTICAL2#0 Constant inlined get_plane::return#3 = ((dword))(const byte*) VIC_SCREEN3#0 -Constant inlined form_control::return#5 = (byte/word/signed word/dword/signed dword) 255 +Constant inlined form_control::return#5 = (byte/word/signed word/dword/signed dword) $ff Constant inlined get_plane::return#0 = ((dword))(const byte*) VIC_SCREEN0#0 Constant inlined get_plane::return#1 = ((dword))(const byte*) VIC_SCREEN1#0 Constant inlined get_plane::return#6 = ((dword))(const dword) PLANE_8BPP_CHUNKY#0 @@ -9473,32 +9473,32 @@ Constant inlined form_field_idx#8 = (byte/signed byte/word/signed word/dword/sig Constant inlined get_plane::return#8 = ((dword))(const dword) PLANE_VERTICAL#0 Constant inlined form_field_idx#7 = (const byte) form_fields_cnt#0-(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined get_plane::return#9 = ((dword))(const dword) PLANE_HORISONTAL2#0 -Constant inlined gfx_init_plane_8bppchunky::gfxb#0 = ((byte*))(word/signed word/dword/signed dword) 16384 -Constant inlined gfx_init_plane_8bppchunky::gfxb#2 = ((byte*))(word/signed word/dword/signed dword) 16384 +Constant inlined gfx_init_plane_8bppchunky::gfxb#0 = ((byte*))(word/signed word/dword/signed dword) $4000 +Constant inlined gfx_init_plane_8bppchunky::gfxb#2 = ((byte*))(word/signed word/dword/signed dword) $4000 Constant inlined form_mode::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined gfx_init_plane_charset8::$12 = (word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 +Constant inlined gfx_init_plane_charset8::$12 = (word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 Constant inlined gfx_init_screen0::cy#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined bitmap_clear::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined gfx_init_plane_charset8::$4 = (word/signed word/dword/signed dword) 16384+(const dword) PLANE_CHARSET8#0&(word/signed word/dword/signed dword) 16383 -Constant inlined gfx_init_plane_horisontal::$0 = (const dword) PLANE_HORISONTAL#0/(word/signed word/dword/signed dword) 16384 -Constant inlined gfx_init_plane_horisontal::$3 = (const dword) PLANE_HORISONTAL#0&(word/signed word/dword/signed dword) 16383 -Constant inlined gfx_init_plane_8bppchunky::gfxbCpuBank#0 = ((byte))(const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) 16384 -Constant inlined gfx_init_plane_horisontal::$4 = (word/signed word/dword/signed dword) 16384+(const dword) PLANE_HORISONTAL#0&(word/signed word/dword/signed dword) 16383 -Constant inlined gfx_init_plane_8bppchunky::gfxbCpuBank#1 = ++((byte))(const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) 16384 -Constant inlined gfx_init_plane_charset8::$0 = (const dword) PLANE_CHARSET8#0/(word/signed word/dword/signed dword) 16384 +Constant inlined gfx_init_plane_charset8::$4 = (word/signed word/dword/signed dword) $4000+(const dword) PLANE_CHARSET8#0&(word/signed word/dword/signed dword) $3fff +Constant inlined gfx_init_plane_horisontal::$0 = (const dword) PLANE_HORISONTAL#0/(word/signed word/dword/signed dword) $4000 +Constant inlined gfx_init_plane_horisontal::$3 = (const dword) PLANE_HORISONTAL#0&(word/signed word/dword/signed dword) $3fff +Constant inlined gfx_init_plane_8bppchunky::gfxbCpuBank#0 = ((byte))(const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) $4000 +Constant inlined gfx_init_plane_horisontal::$4 = (word/signed word/dword/signed dword) $4000+(const dword) PLANE_HORISONTAL#0&(word/signed word/dword/signed dword) $3fff +Constant inlined gfx_init_plane_8bppchunky::gfxbCpuBank#1 = ++((byte))(const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) $4000 +Constant inlined gfx_init_plane_charset8::$0 = (const dword) PLANE_CHARSET8#0/(word/signed word/dword/signed dword) $4000 Constant inlined form_cursor_count#26 = (const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined gfx_init_plane_horisontal::$9 = (word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 -Constant inlined gfx_init_plane_charset8::$3 = (const dword) PLANE_CHARSET8#0&(word/signed word/dword/signed dword) 16383 +Constant inlined gfx_init_plane_horisontal::$9 = (word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 +Constant inlined gfx_init_plane_charset8::$3 = (const dword) PLANE_CHARSET8#0&(word/signed word/dword/signed dword) $3fff Constant inlined bitmap_init::bitmap#0 = (const byte*) VIC_BITMAP#0 -Constant inlined bitmap_init::bits#0 = (byte/word/signed word/dword/signed dword) 128 -Constant inlined bitmap_init::bits#2 = (byte/word/signed word/dword/signed dword) 128 +Constant inlined bitmap_init::bits#0 = (byte/word/signed word/dword/signed dword) $80 +Constant inlined bitmap_init::bits#2 = (byte/word/signed word/dword/signed dword) $80 Constant inlined form_set_screen::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined form_set_screen::screen#0 = (const byte*) FORM_SCREEN#0 Constant inlined print_set_screen::screen#0 = (const byte*) COLS#0 Constant inlined print_set_screen::screen#1 = (const byte*) FORM_SCREEN#0 Constant inlined $69 = (const byte[]) print_hextab#0 -Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#12 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 -Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#10 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 +Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#12 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 +Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#10 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 Constant inlined gfx_init_charset::l#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined bitmap_init::$1 = >(const byte*) VIC_BITMAP#0 Successful SSA optimization Pass2ConstantInlining @@ -10329,14 +10329,14 @@ gfx_mode::@47: scope:[gfx_mode] from gfx_mode::@46 [90] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte~) gfx_mode::$56 [91] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [92] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 - [93] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) VIC_SCREEN0#0/(word/signed word/dword/signed dword) 16384 + [93] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) VIC_SCREEN0#0/(word/signed word/dword/signed dword) $4000 [94] (byte) get_vic_screen::idx#0 ← *((const byte*) form_vic_screen#0) [95] call get_vic_screen [96] (byte*) get_vic_screen::return#10 ← (byte*) get_vic_screen::return#5 to:gfx_mode::@48 gfx_mode::@48: scope:[gfx_mode] from gfx_mode::@47 [97] (byte*~) gfx_mode::$61 ← (byte*) get_vic_screen::return#10 - [98] (word~) gfx_mode::$63 ← (word)(byte*~) gfx_mode::$61 & (word/signed word/dword/signed dword) 16383 + [98] (word~) gfx_mode::$63 ← (word)(byte*~) gfx_mode::$61 & (word/signed word/dword/signed dword) $3fff [99] (word~) gfx_mode::$64 ← (word~) gfx_mode::$63 >> (byte/signed byte/word/signed word/dword/signed dword) 6 [100] (byte~) gfx_mode::$65 ← ((byte)) (word~) gfx_mode::$64 [101] (byte) get_vic_charset::idx#0 ← *((const byte*) form_vic_gfx#0) @@ -10345,7 +10345,7 @@ gfx_mode::@48: scope:[gfx_mode] from gfx_mode::@47 to:gfx_mode::@49 gfx_mode::@49: scope:[gfx_mode] from gfx_mode::@48 [104] (byte*~) gfx_mode::$66 ← (byte*) get_vic_charset::return#4 - [105] (word~) gfx_mode::$68 ← (word)(byte*~) gfx_mode::$66 & (word/signed word/dword/signed dword) 16383 + [105] (word~) gfx_mode::$68 ← (word)(byte*~) gfx_mode::$66 & (word/signed word/dword/signed dword) $3fff [106] (byte~) gfx_mode::$69 ← > (word~) gfx_mode::$68 [107] (byte~) gfx_mode::$70 ← (byte~) gfx_mode::$69 >> (byte/signed byte/word/signed word/dword/signed dword) 2 [108] (byte~) gfx_mode::$71 ← (byte~) gfx_mode::$65 | (byte~) gfx_mode::$70 @@ -10370,11 +10370,11 @@ gfx_mode::@11: scope:[gfx_mode] from gfx_mode::@10 gfx_mode::@11 [117] (byte*) gfx_mode::col#1 ← ++ (byte*) gfx_mode::col#2 [118] (byte*) gfx_mode::vic_colors#1 ← ++ (byte*) gfx_mode::vic_colors#2 [119] (byte) gfx_mode::cx#1 ← ++ (byte) gfx_mode::cx#2 - [120] if((byte) gfx_mode::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_mode::@11 + [120] if((byte) gfx_mode::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_mode::@11 to:gfx_mode::@32 gfx_mode::@32: scope:[gfx_mode] from gfx_mode::@11 [121] (byte) gfx_mode::cy#1 ← ++ (byte) gfx_mode::cy#4 - [122] if((byte) gfx_mode::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_mode::@10 + [122] if((byte) gfx_mode::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_mode::@10 to:gfx_mode::@33 gfx_mode::@33: scope:[gfx_mode] from gfx_mode::@32 [123] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -10396,10 +10396,10 @@ gfx_mode::@13: scope:[gfx_mode] from gfx_mode::@13 gfx_mode::@33 [137] (byte) gfx_mode::j#2 ← phi( gfx_mode::@13/(byte) gfx_mode::j#1 gfx_mode::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [138] *((const byte*) DTV_PALETTE#0 + (byte) gfx_mode::j#2) ← (byte) gfx_mode::j#2 [139] (byte) gfx_mode::j#1 ← ++ (byte) gfx_mode::j#2 - [140] if((byte) gfx_mode::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto gfx_mode::@13 + [140] if((byte) gfx_mode::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto gfx_mode::@13 to:gfx_mode::@19 gfx_mode::@19: scope:[gfx_mode] from gfx_mode::@13 gfx_mode::@15 gfx_mode::@19 gfx_mode::@52 - [141] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto gfx_mode::@19 + [141] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto gfx_mode::@19 to:gfx_mode::@21 gfx_mode::@21: scope:[gfx_mode] from gfx_mode::@19 [142] phi() @@ -10419,9 +10419,9 @@ gfx_mode::@return: scope:[gfx_mode] from gfx_mode::@52 to:@return gfx_mode::@15: scope:[gfx_mode] from gfx_mode::@15 gfx_mode::@33 [150] (byte) gfx_mode::i#2 ← phi( gfx_mode::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 gfx_mode::@15/(byte) gfx_mode::i#1 ) - [151] *((const byte*) DTV_PALETTE#0 + (byte) gfx_mode::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) gfx_mode::i#2) + [151] *((const byte*) DTV_PALETTE#0 + (byte) gfx_mode::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) gfx_mode::i#2) [152] (byte) gfx_mode::i#1 ← ++ (byte) gfx_mode::i#2 - [153] if((byte) gfx_mode::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto gfx_mode::@15 + [153] if((byte) gfx_mode::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto gfx_mode::@15 to:gfx_mode::@19 keyboard_event_get: scope:[keyboard_event_get] from form_control::@34 gfx_mode::@51 [154] if((byte) keyboard_events_size#100==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return @@ -10432,7 +10432,7 @@ keyboard_event_get::@3: scope:[keyboard_event_get] from keyboard_event_get to:keyboard_event_get::@return keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get keyboard_event_get::@3 [157] (byte) keyboard_events_size#24 ← phi( keyboard_event_get/(byte) keyboard_events_size#100 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) - [157] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get/(byte/word/signed word/dword/signed dword) 255 keyboard_event_get::@3/(byte) keyboard_event_get::return#1 ) + [157] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get/(byte/word/signed word/dword/signed dword) $ff keyboard_event_get::@3/(byte) keyboard_event_get::return#1 ) [158] return to:@return keyboard_event_scan: scope:[keyboard_event_scan] from form_control::@3 gfx_mode::@21 @@ -10540,7 +10540,7 @@ keyboard_event_scan::@19: scope:[keyboard_event_scan] from keyboard_event_scan: [209] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 to:keyboard_event_scan::@3 keyboard_event_scan::@7: scope:[keyboard_event_scan] from keyboard_event_scan::@16 - [210] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 + [210] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) $40 [211] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#18) ← (byte/word/dword~) keyboard_event_scan::$11 [212] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#18 to:keyboard_event_scan::@5 @@ -10629,16 +10629,16 @@ get_plane::@36: scope:[get_plane] from get_plane::@35 [246] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 9) goto get_plane::@return to:get_plane::@37 get_plane::@37: scope:[get_plane] from get_plane::@36 - [247] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 10) goto get_plane::@return + [247] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) $a) goto get_plane::@return to:get_plane::@38 get_plane::@38: scope:[get_plane] from get_plane::@37 - [248] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 11) goto get_plane::@return + [248] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) $b) goto get_plane::@return to:get_plane::@39 get_plane::@39: scope:[get_plane] from get_plane::@38 - [249] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 12) goto get_plane::@return + [249] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) $c) goto get_plane::@return to:get_plane::@40 get_plane::@40: scope:[get_plane] from get_plane::@39 - [250] if((byte) get_plane::idx#10!=(byte/signed byte/word/signed word/dword/signed dword) 13) goto get_plane::@27 + [250] if((byte) get_plane::idx#10!=(byte/signed byte/word/signed word/dword/signed dword) $d) goto get_plane::@27 to:get_plane::@return get_plane::@return: scope:[get_plane] from get_plane get_plane::@27 get_plane::@28 get_plane::@29 get_plane::@30 get_plane::@31 get_plane::@32 get_plane::@33 get_plane::@34 get_plane::@35 get_plane::@36 get_plane::@37 get_plane::@38 get_plane::@39 get_plane::@40 [251] (dword) get_plane::return#14 ← phi( get_plane/((dword))(const byte*) VIC_SCREEN0#0 get_plane::@36/((dword))(const dword) PLANE_HORISONTAL2#0 get_plane::@37/((dword))(const dword) PLANE_VERTICAL2#0 get_plane::@38/((dword))(const dword) PLANE_CHARSET8#0 get_plane::@39/((dword))(const dword) PLANE_BLANK#0 get_plane::@28/((dword))(const byte*) VIC_SCREEN1#0 get_plane::@27/((dword))(const byte*) VIC_SCREEN0#0 get_plane::@29/((dword))(const byte*) VIC_SCREEN2#0 get_plane::@30/((dword))(const byte*) VIC_SCREEN3#0 get_plane::@40/((dword))(const dword) PLANE_FULL#0 get_plane::@31/((dword))(const byte*) VIC_BITMAP#0 get_plane::@32/((dword))(const byte*) VIC_CHARSET_ROM#0 get_plane::@33/((dword))(const dword) PLANE_8BPP_CHUNKY#0 get_plane::@34/((dword))(const dword) PLANE_HORISONTAL#0 get_plane::@35/((dword))(const dword) PLANE_VERTICAL#0 ) @@ -10684,24 +10684,24 @@ form_mode::@28: scope:[form_mode] from form_mode::@27 [271] call render_preset_name to:form_mode::@29 form_mode::@29: scope:[form_mode] from form_mode::@28 - [272] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) FORM_CHARSET#0/(dword/signed dword) 65536 - [273] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 - [274] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 + [272] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) FORM_CHARSET#0/(dword/signed dword) $10000 + [273] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 + [274] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [275] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 - [276] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) FORM_CHARSET#0/(word/signed word/dword/signed dword) 16384 + [276] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) FORM_CHARSET#0/(word/signed word/dword/signed dword) $4000 [277] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [278] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [279] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 - [280] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) FORM_SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) FORM_CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 + [280] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) FORM_SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) FORM_CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 [281] *((const byte*) DTV_PLANEA_START_LO#0) ← <(const byte*) FORM_SCREEN#0 [282] *((const byte*) DTV_PLANEA_START_MI#0) ← >(const byte*) FORM_SCREEN#0 [283] *((const byte*) DTV_PLANEA_START_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:form_mode::@1 form_mode::@1: scope:[form_mode] from form_mode::@1 form_mode::@29 [284] (byte) form_mode::i#2 ← phi( form_mode::@1/(byte) form_mode::i#1 form_mode::@29/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [285] *((const byte*) DTV_PALETTE#0 + (byte) form_mode::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) form_mode::i#2) + [285] *((const byte*) DTV_PALETTE#0 + (byte) form_mode::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) form_mode::i#2) [286] (byte) form_mode::i#1 ← ++ (byte) form_mode::i#2 - [287] if((byte) form_mode::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto form_mode::@1 + [287] if((byte) form_mode::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto form_mode::@1 to:form_mode::@10 form_mode::@10: scope:[form_mode] from form_mode::@1 [288] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -10715,7 +10715,7 @@ form_mode::@2: scope:[form_mode] from form_mode::@10 form_mode::@32 form_mode:: [291] (signed byte) form_cursor_count#21 ← phi( form_mode::@10/(signed byte) form_cursor_count#1 form_mode::@32/(signed byte) form_cursor_count#16 form_mode::@8/(signed byte) form_cursor_count#16 ) to:form_mode::@5 form_mode::@5: scope:[form_mode] from form_mode::@2 form_mode::@5 - [292] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto form_mode::@5 + [292] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto form_mode::@5 to:form_mode::@7 form_mode::@7: scope:[form_mode] from form_mode::@5 [293] phi() @@ -10776,7 +10776,7 @@ render_preset_name::@31: scope:[render_preset_name] from render_preset_name::@3 [316] if((byte) render_preset_name::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 9) goto render_preset_name::@22 to:render_preset_name::@32 render_preset_name::@32: scope:[render_preset_name] from render_preset_name::@31 - [317] if((byte) render_preset_name::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 10) goto render_preset_name::@22 + [317] if((byte) render_preset_name::idx#10==(byte/signed byte/word/signed word/dword/signed dword) $a) goto render_preset_name::@22 to:render_preset_name::@33 render_preset_name::@33: scope:[render_preset_name] from render_preset_name::@32 [318] phi() @@ -10793,7 +10793,7 @@ print_str_at: scope:[print_str_at] from render_preset_name::@22 [323] phi() to:print_str_at::@1 print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2 - [324] (byte*) print_str_at::at#2 ← phi( print_str_at/(const byte*) FORM_SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 10 print_str_at::@2/(byte*) print_str_at::at#0 ) + [324] (byte*) print_str_at::at#2 ← phi( print_str_at/(const byte*) FORM_SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) $a print_str_at::@2/(byte*) print_str_at::at#0 ) [324] (byte*) print_str_at::str#2 ← phi( print_str_at/(byte*) print_str_at::str#1 print_str_at::@2/(byte*) print_str_at::str#0 ) [325] if(*((byte*) print_str_at::str#2)!=(byte) '@') goto print_str_at::@2 to:print_str_at::@return @@ -10826,7 +10826,7 @@ form_render_values::@return: scope:[form_render_values] from form_render_values form_field_ptr: scope:[form_field_ptr] from form_control form_render_values::@1 [340] (byte) form_field_ptr::field_idx#2 ← phi( form_control/(byte) form_field_ptr::field_idx#1 form_render_values::@1/(byte) form_field_ptr::field_idx#0 ) [341] (byte) form_field_ptr::y#0 ← *((const byte[]) form_fields_y#0 + (byte) form_field_ptr::field_idx#2) - [342] (word~) form_field_ptr::$2 ← *((const byte[25]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[25]) form_line_lo#0 + (byte) form_field_ptr::y#0) + [342] (word~) form_field_ptr::$2 ← *((const byte[$19]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[$19]) form_line_lo#0 + (byte) form_field_ptr::y#0) [343] (byte) form_field_ptr::x#0 ← *((const byte[]) form_fields_x#0 + (byte) form_field_ptr::field_idx#2) [344] (byte*) form_field_ptr::return#0 ← (byte*)(word~) form_field_ptr::$2 + (byte) form_field_ptr::x#0 to:form_field_ptr::@return @@ -10864,7 +10864,7 @@ apply_preset::@32: scope:[apply_preset] from apply_preset::@31 [355] if((byte) apply_preset::idx#0==(byte/signed byte/word/signed word/dword/signed dword) 9) goto apply_preset::@22 to:apply_preset::@33 apply_preset::@33: scope:[apply_preset] from apply_preset::@32 - [356] if((byte) apply_preset::idx#0==(byte/signed byte/word/signed word/dword/signed dword) 10) goto apply_preset::@22 + [356] if((byte) apply_preset::idx#0==(byte/signed byte/word/signed word/dword/signed dword) $a) goto apply_preset::@22 to:apply_preset::@34 apply_preset::@34: scope:[apply_preset] from apply_preset::@33 [357] phi() @@ -10896,7 +10896,7 @@ form_control::@1: scope:[form_control] from form_control::@33 form_control::@36 [371] if((signed byte) form_cursor_count#15<(const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2) goto form_control::@2 to:form_control::@16 form_control::@16: scope:[form_control] from form_control::@1 - [372] (byte~) form_control::$5 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 + [372] (byte~) form_control::$5 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f [373] *((byte*) form_control::field#0) ← (byte~) form_control::$5 to:form_control::@3 form_control::@3: scope:[form_control] from form_control::@16 form_control::@2 @@ -10913,14 +10913,14 @@ form_control::@35: scope:[form_control] from form_control::@34 [380] if((byte) form_control::key_event#0!=(const byte) KEY_CRSR_DOWN#0) goto form_control::@4 to:form_control::@18 form_control::@18: scope:[form_control] from form_control::@35 - [381] (byte~) form_control::$11 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 + [381] (byte~) form_control::$11 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f [382] *((byte*) form_control::field#0) ← (byte~) form_control::$11 [383] (byte~) form_control::$12 ← (byte) keyboard_modifiers#21 & (const byte) KEY_MODIFIER_SHIFT#0 [384] if((byte~) form_control::$12==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@5 to:form_control::@19 form_control::@19: scope:[form_control] from form_control::@18 [385] (byte) form_field_idx#44 ← -- (byte) form_field_idx#28 - [386] if((byte) form_field_idx#44!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@37 + [386] if((byte) form_field_idx#44!=(byte/word/signed word/dword/signed dword) $ff) goto form_control::@37 to:form_control::@7 form_control::@7: scope:[form_control] from form_control::@19 form_control::@37 form_control::@38 form_control::@5 [387] (byte) form_field_idx#32 ← phi( form_control::@19/(const byte) form_fields_cnt#0-(byte/signed byte/word/signed word/dword/signed dword) 1 form_control::@5/(byte/signed byte/word/signed word/dword/signed dword) 0 form_control::@37/(byte) form_field_idx#44 form_control::@38/(byte) form_field_idx#45 ) @@ -10928,7 +10928,7 @@ form_control::@7: scope:[form_control] from form_control::@19 form_control::@37 form_control::@return: scope:[form_control] from form_control::@12 form_control::@39 form_control::@7 form_control::@9 [388] (byte) form_field_idx#18 ← phi( form_control::@12/(byte) form_field_idx#28 form_control::@39/(byte) form_field_idx#28 form_control::@9/(byte) form_field_idx#28 form_control::@7/(byte) form_field_idx#32 ) [388] (signed byte) form_cursor_count#16 ← phi( form_control::@12/(signed byte) form_cursor_count#15 form_control::@39/(signed byte) form_cursor_count#15 form_control::@9/(signed byte) form_cursor_count#15 form_control::@7/(const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 ) - [388] (byte) form_control::return#2 ← phi( form_control::@12/(byte/signed byte/word/signed word/dword/signed dword) 0 form_control::@39/(byte/signed byte/word/signed word/dword/signed dword) 0 form_control::@9/(byte/word/signed word/dword/signed dword) 255 form_control::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [388] (byte) form_control::return#2 ← phi( form_control::@12/(byte/signed byte/word/signed word/dword/signed dword) 0 form_control::@39/(byte/signed byte/word/signed word/dword/signed dword) 0 form_control::@9/(byte/word/signed word/dword/signed dword) $ff form_control::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [389] return to:@return form_control::@37: scope:[form_control] from form_control::@19 @@ -10950,7 +10950,7 @@ form_control::@24: scope:[form_control] from form_control::@4 to:form_control::@25 form_control::@25: scope:[form_control] from form_control::@24 [397] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#28) ← -- *((const byte[]) form_fields_val#0 + (byte) form_field_idx#28) - [398] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#28)!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@12 + [398] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#28)!=(byte/word/signed word/dword/signed dword) $ff) goto form_control::@12 to:form_control::@26 form_control::@26: scope:[form_control] from form_control::@25 [399] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#28) ← *((const byte[]) form_fields_max#0 + (byte) form_field_idx#28) @@ -10972,7 +10972,7 @@ form_control::@39: scope:[form_control] from form_control::@9 [405] phi() to:form_control::@return form_control::@2: scope:[form_control] from form_control::@1 - [406] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) 128 + [406] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) $80 [407] *((byte*) form_control::field#0) ← (byte/word/dword~) form_control::$6 to:form_control::@3 form_control::@36: scope:[form_control] from form_control::@33 @@ -10985,12 +10985,12 @@ form_set_screen::@1: scope:[form_set_screen] from form_set_screen form_set_scre [410] (byte) form_set_screen::y#2 ← phi( form_set_screen/(byte/signed byte/word/signed word/dword/signed dword) 0 form_set_screen::@1/(byte) form_set_screen::y#1 ) [410] (byte*) form_set_screen::line#2 ← phi( form_set_screen/(const byte*) FORM_SCREEN#0 form_set_screen::@1/(byte*) form_set_screen::line#1 ) [411] (byte~) form_set_screen::$0 ← < (byte*) form_set_screen::line#2 - [412] *((const byte[25]) form_line_lo#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$0 + [412] *((const byte[$19]) form_line_lo#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$0 [413] (byte~) form_set_screen::$1 ← > (byte*) form_set_screen::line#2 - [414] *((const byte[25]) form_line_hi#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$1 - [415] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [414] *((const byte[$19]) form_line_hi#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$1 + [415] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 [416] (byte) form_set_screen::y#1 ← ++ (byte) form_set_screen::y#2 - [417] if((byte) form_set_screen::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto form_set_screen::@1 + [417] if((byte) form_set_screen::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto form_set_screen::@1 to:form_set_screen::@return form_set_screen::@return: scope:[form_set_screen] from form_set_screen::@1 [418] return @@ -11033,7 +11033,7 @@ print_ln: scope:[print_ln] from print_str_lines::@9 to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [436] (byte*) print_line_cursor#21 ← phi( print_ln/(byte*) print_line_cursor#2 print_ln::@1/(byte*) print_line_cursor#22 ) - [437] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [437] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) $28 [438] if((byte*) print_line_cursor#22<(byte*) print_char_cursor#38) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 @@ -11046,7 +11046,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 [441] (byte*) print_cls::sc#2 ← phi( print_cls/(byte*) print_cls::sc#0 print_cls::@1/(byte*) print_cls::sc#1 ) [442] *((byte*) print_cls::sc#2) ← (byte) ' ' [443] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [444] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) 1000 + [444] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) $3e8 [445] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 @@ -11129,7 +11129,7 @@ gfx_init_plane_full::@return: scope:[gfx_init_plane_full] from gfx_init_plane_f [482] return to:@return gfx_init_plane_fill: scope:[gfx_init_plane_fill] from gfx_init_plane_blank gfx_init_plane_full gfx_init_plane_vertical2 - [483] (byte) gfx_init_plane_fill::fill#6 ← phi( gfx_init_plane_blank/(byte/signed byte/word/signed word/dword/signed dword) 0 gfx_init_plane_full/(byte/word/signed word/dword/signed dword) 255 gfx_init_plane_vertical2/(byte/signed byte/word/signed word/dword/signed dword) 27 ) + [483] (byte) gfx_init_plane_fill::fill#6 ← phi( gfx_init_plane_blank/(byte/signed byte/word/signed word/dword/signed dword) 0 gfx_init_plane_full/(byte/word/signed word/dword/signed dword) $ff gfx_init_plane_vertical2/(byte/signed byte/word/signed word/dword/signed dword) $1b ) [483] (dword) gfx_init_plane_fill::plane_addr#3 ← phi( gfx_init_plane_blank/(const dword) PLANE_BLANK#0 gfx_init_plane_full/(const dword) PLANE_FULL#0 gfx_init_plane_vertical2/(const dword) PLANE_VERTICAL2#0 ) [484] (dword~) gfx_init_plane_fill::$0 ← (dword) gfx_init_plane_fill::plane_addr#3 << (byte/signed byte/word/signed word/dword/signed dword) 2 [485] (word~) gfx_init_plane_fill::$1 ← > (dword~) gfx_init_plane_fill::$0 @@ -11140,8 +11140,8 @@ gfx_init_plane_fill: scope:[gfx_init_plane_fill] from gfx_init_plane_blank gfx_ gfx_init_plane_fill::@5: scope:[gfx_init_plane_fill] from gfx_init_plane_fill [489] (byte) gfx_init_plane_fill::gfxbCpuBank#1 ← ++ (byte) gfx_init_plane_fill::gfxbCpuBank#0 [490] (word~) gfx_init_plane_fill::$4 ← < (dword) gfx_init_plane_fill::plane_addr#3 - [491] (word~) gfx_init_plane_fill::$5 ← (word~) gfx_init_plane_fill::$4 & (word/signed word/dword/signed dword) 16383 - [492] (word/signed dword/dword~) gfx_init_plane_fill::$6 ← (word/signed word/dword/signed dword) 16384 + (word~) gfx_init_plane_fill::$5 + [491] (word~) gfx_init_plane_fill::$5 ← (word~) gfx_init_plane_fill::$4 & (word/signed word/dword/signed dword) $3fff + [492] (word/signed dword/dword~) gfx_init_plane_fill::$6 ← (word/signed word/dword/signed dword) $4000 + (word~) gfx_init_plane_fill::$5 [493] (byte*~) gfx_init_plane_fill::gfxb#6 ← (byte*)(word/signed dword/dword~) gfx_init_plane_fill::$6 to:gfx_init_plane_fill::@1 gfx_init_plane_fill::@1: scope:[gfx_init_plane_fill] from gfx_init_plane_fill::@3 gfx_init_plane_fill::@5 @@ -11154,11 +11154,11 @@ gfx_init_plane_fill::@2: scope:[gfx_init_plane_fill] from gfx_init_plane_fill:: [496] *((byte*) gfx_init_plane_fill::gfxb#2) ← (byte) gfx_init_plane_fill::fill#6 [497] (byte*) gfx_init_plane_fill::gfxb#1 ← ++ (byte*) gfx_init_plane_fill::gfxb#2 [498] (byte) gfx_init_plane_fill::bx#1 ← ++ (byte) gfx_init_plane_fill::bx#2 - [499] if((byte) gfx_init_plane_fill::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_plane_fill::@2 + [499] if((byte) gfx_init_plane_fill::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_plane_fill::@2 to:gfx_init_plane_fill::@3 gfx_init_plane_fill::@3: scope:[gfx_init_plane_fill] from gfx_init_plane_fill::@2 [500] (byte) gfx_init_plane_fill::by#1 ← ++ (byte) gfx_init_plane_fill::by#4 - [501] if((byte) gfx_init_plane_fill::by#1!=(byte/word/signed word/dword/signed dword) 200) goto gfx_init_plane_fill::@1 + [501] if((byte) gfx_init_plane_fill::by#1!=(byte/word/signed word/dword/signed dword) $c8) goto gfx_init_plane_fill::@1 to:gfx_init_plane_fill::@4 gfx_init_plane_fill::@4: scope:[gfx_init_plane_fill] from gfx_init_plane_fill::@3 [502] phi() @@ -11168,7 +11168,7 @@ gfx_init_plane_fill::@return: scope:[gfx_init_plane_fill] from gfx_init_plane_f [504] return to:@return dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_plane_8bppchunky gfx_init_plane_8bppchunky::@4 gfx_init_plane_8bppchunky::@6 gfx_init_plane_charset8 gfx_init_plane_charset8::@8 gfx_init_plane_fill gfx_init_plane_fill::@4 gfx_init_plane_horisontal gfx_init_plane_horisontal2 gfx_init_plane_horisontal2::@4 gfx_init_plane_horisontal::@8 gfx_init_plane_vertical gfx_init_plane_vertical::@4 - [505] (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 ← phi( gfx_init_plane_8bppchunky/((byte))(const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) 16384 gfx_init_plane_8bppchunky::@4/(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 gfx_init_plane_8bppchunky::@6/((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 gfx_init_plane_charset8/(const byte) gfx_init_plane_charset8::gfxbCpuBank#0 gfx_init_plane_charset8::@8/((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 gfx_init_plane_fill/(byte) dtvSetCpuBankSegment1::cpuBankIdx#11 gfx_init_plane_fill::@4/((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 gfx_init_plane_horisontal/(const byte) gfx_init_plane_horisontal::gfxbCpuBank#0 gfx_init_plane_horisontal2/(const byte) gfx_init_plane_horisontal2::gfxbCpuBank#0 gfx_init_plane_horisontal2::@4/((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 gfx_init_plane_horisontal::@8/((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 gfx_init_plane_vertical/(const byte) gfx_init_plane_vertical::gfxbCpuBank#0 gfx_init_plane_vertical::@4/((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 ) + [505] (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 ← phi( gfx_init_plane_8bppchunky/((byte))(const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) $4000 gfx_init_plane_8bppchunky::@4/(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 gfx_init_plane_8bppchunky::@6/((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 gfx_init_plane_charset8/(const byte) gfx_init_plane_charset8::gfxbCpuBank#0 gfx_init_plane_charset8::@8/((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 gfx_init_plane_fill/(byte) dtvSetCpuBankSegment1::cpuBankIdx#11 gfx_init_plane_fill::@4/((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 gfx_init_plane_horisontal/(const byte) gfx_init_plane_horisontal::gfxbCpuBank#0 gfx_init_plane_horisontal2/(const byte) gfx_init_plane_horisontal2::gfxbCpuBank#0 gfx_init_plane_horisontal2::@4/((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 gfx_init_plane_horisontal::@8/((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 gfx_init_plane_vertical/(const byte) gfx_init_plane_vertical::gfxbCpuBank#0 gfx_init_plane_vertical::@4/((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 ) [506] *((const byte*) dtvSetCpuBankSegment1::cpuBank#0) ← (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 asm { .byte$32,$dd lda$ff .byte$32,$00 } to:dtvSetCpuBankSegment1::@return @@ -11194,7 +11194,7 @@ gfx_init_plane_horisontal2: scope:[gfx_init_plane_horisontal2] from gfx_init::@ [516] call dtvSetCpuBankSegment1 to:gfx_init_plane_horisontal2::@1 gfx_init_plane_horisontal2::@1: scope:[gfx_init_plane_horisontal2] from gfx_init_plane_horisontal2 gfx_init_plane_horisontal2::@3 - [517] (byte*) gfx_init_plane_horisontal2::gfxa#3 ← phi( gfx_init_plane_horisontal2::@3/(byte*) gfx_init_plane_horisontal2::gfxa#1 gfx_init_plane_horisontal2/((byte*))(word/signed word/dword/signed dword) 16384+(const dword) PLANE_HORISONTAL2#0&(word/signed word/dword/signed dword) 16383 ) + [517] (byte*) gfx_init_plane_horisontal2::gfxa#3 ← phi( gfx_init_plane_horisontal2::@3/(byte*) gfx_init_plane_horisontal2::gfxa#1 gfx_init_plane_horisontal2/((byte*))(word/signed word/dword/signed dword) $4000+(const dword) PLANE_HORISONTAL2#0&(word/signed word/dword/signed dword) $3fff ) [517] (byte) gfx_init_plane_horisontal2::ay#4 ← phi( gfx_init_plane_horisontal2::@3/(byte) gfx_init_plane_horisontal2::ay#1 gfx_init_plane_horisontal2/(byte/signed byte/word/signed word/dword/signed dword) 0 ) to:gfx_init_plane_horisontal2::@2 gfx_init_plane_horisontal2::@2: scope:[gfx_init_plane_horisontal2] from gfx_init_plane_horisontal2::@1 gfx_init_plane_horisontal2::@2 @@ -11205,11 +11205,11 @@ gfx_init_plane_horisontal2::@2: scope:[gfx_init_plane_horisontal2] from gfx_ini [521] *((byte*) gfx_init_plane_horisontal2::gfxa#2) ← *((const byte[]) gfx_init_plane_horisontal2::row_bitmask#0 + (byte) gfx_init_plane_horisontal2::row#0) [522] (byte*) gfx_init_plane_horisontal2::gfxa#1 ← ++ (byte*) gfx_init_plane_horisontal2::gfxa#2 [523] (byte) gfx_init_plane_horisontal2::ax#1 ← ++ (byte) gfx_init_plane_horisontal2::ax#2 - [524] if((byte) gfx_init_plane_horisontal2::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_plane_horisontal2::@2 + [524] if((byte) gfx_init_plane_horisontal2::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_plane_horisontal2::@2 to:gfx_init_plane_horisontal2::@3 gfx_init_plane_horisontal2::@3: scope:[gfx_init_plane_horisontal2] from gfx_init_plane_horisontal2::@2 [525] (byte) gfx_init_plane_horisontal2::ay#1 ← ++ (byte) gfx_init_plane_horisontal2::ay#4 - [526] if((byte) gfx_init_plane_horisontal2::ay#1!=(byte/word/signed word/dword/signed dword) 200) goto gfx_init_plane_horisontal2::@1 + [526] if((byte) gfx_init_plane_horisontal2::ay#1!=(byte/word/signed word/dword/signed dword) $c8) goto gfx_init_plane_horisontal2::@1 to:gfx_init_plane_horisontal2::@4 gfx_init_plane_horisontal2::@4: scope:[gfx_init_plane_horisontal2] from gfx_init_plane_horisontal2::@3 [527] phi() @@ -11224,19 +11224,19 @@ gfx_init_plane_vertical: scope:[gfx_init_plane_vertical] from gfx_init::@10 to:gfx_init_plane_vertical::@1 gfx_init_plane_vertical::@1: scope:[gfx_init_plane_vertical] from gfx_init_plane_vertical gfx_init_plane_vertical::@3 [532] (byte) gfx_init_plane_vertical::by#4 ← phi( gfx_init_plane_vertical::@3/(byte) gfx_init_plane_vertical::by#1 gfx_init_plane_vertical/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [532] (byte*) gfx_init_plane_vertical::gfxb#3 ← phi( gfx_init_plane_vertical::@3/(byte*) gfx_init_plane_vertical::gfxb#1 gfx_init_plane_vertical/((byte*))(word/signed word/dword/signed dword) 16384+(const dword) PLANE_VERTICAL#0&(word/signed word/dword/signed dword) 16383 ) + [532] (byte*) gfx_init_plane_vertical::gfxb#3 ← phi( gfx_init_plane_vertical::@3/(byte*) gfx_init_plane_vertical::gfxb#1 gfx_init_plane_vertical/((byte*))(word/signed word/dword/signed dword) $4000+(const dword) PLANE_VERTICAL#0&(word/signed word/dword/signed dword) $3fff ) to:gfx_init_plane_vertical::@2 gfx_init_plane_vertical::@2: scope:[gfx_init_plane_vertical] from gfx_init_plane_vertical::@1 gfx_init_plane_vertical::@2 [533] (byte) gfx_init_plane_vertical::bx#2 ← phi( gfx_init_plane_vertical::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 gfx_init_plane_vertical::@2/(byte) gfx_init_plane_vertical::bx#1 ) [533] (byte*) gfx_init_plane_vertical::gfxb#2 ← phi( gfx_init_plane_vertical::@1/(byte*) gfx_init_plane_vertical::gfxb#3 gfx_init_plane_vertical::@2/(byte*) gfx_init_plane_vertical::gfxb#1 ) - [534] *((byte*) gfx_init_plane_vertical::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 15 + [534] *((byte*) gfx_init_plane_vertical::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $f [535] (byte*) gfx_init_plane_vertical::gfxb#1 ← ++ (byte*) gfx_init_plane_vertical::gfxb#2 [536] (byte) gfx_init_plane_vertical::bx#1 ← ++ (byte) gfx_init_plane_vertical::bx#2 - [537] if((byte) gfx_init_plane_vertical::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_plane_vertical::@2 + [537] if((byte) gfx_init_plane_vertical::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_plane_vertical::@2 to:gfx_init_plane_vertical::@3 gfx_init_plane_vertical::@3: scope:[gfx_init_plane_vertical] from gfx_init_plane_vertical::@2 [538] (byte) gfx_init_plane_vertical::by#1 ← ++ (byte) gfx_init_plane_vertical::by#4 - [539] if((byte) gfx_init_plane_vertical::by#1!=(byte/word/signed word/dword/signed dword) 200) goto gfx_init_plane_vertical::@1 + [539] if((byte) gfx_init_plane_vertical::by#1!=(byte/word/signed word/dword/signed dword) $c8) goto gfx_init_plane_vertical::@1 to:gfx_init_plane_vertical::@4 gfx_init_plane_vertical::@4: scope:[gfx_init_plane_vertical] from gfx_init_plane_vertical::@3 [540] phi() @@ -11250,7 +11250,7 @@ gfx_init_plane_horisontal: scope:[gfx_init_plane_horisontal] from gfx_init::@9 [544] call dtvSetCpuBankSegment1 to:gfx_init_plane_horisontal::@1 gfx_init_plane_horisontal::@1: scope:[gfx_init_plane_horisontal] from gfx_init_plane_horisontal gfx_init_plane_horisontal::@7 - [545] (byte*) gfx_init_plane_horisontal::gfxa#6 ← phi( gfx_init_plane_horisontal::@7/(byte*) gfx_init_plane_horisontal::gfxa#7 gfx_init_plane_horisontal/((byte*))(word/signed word/dword/signed dword) 16384+(const dword) PLANE_HORISONTAL#0&(word/signed word/dword/signed dword) 16383 ) + [545] (byte*) gfx_init_plane_horisontal::gfxa#6 ← phi( gfx_init_plane_horisontal::@7/(byte*) gfx_init_plane_horisontal::gfxa#7 gfx_init_plane_horisontal/((byte*))(word/signed word/dword/signed dword) $4000+(const dword) PLANE_HORISONTAL#0&(word/signed word/dword/signed dword) $3fff ) [545] (byte) gfx_init_plane_horisontal::ay#4 ← phi( gfx_init_plane_horisontal::@7/(byte) gfx_init_plane_horisontal::ay#1 gfx_init_plane_horisontal/(byte/signed byte/word/signed word/dword/signed dword) 0 ) to:gfx_init_plane_horisontal::@2 gfx_init_plane_horisontal::@2: scope:[gfx_init_plane_horisontal] from gfx_init_plane_horisontal::@1 gfx_init_plane_horisontal::@4 @@ -11260,17 +11260,17 @@ gfx_init_plane_horisontal::@2: scope:[gfx_init_plane_horisontal] from gfx_init_ [548] if((byte~) gfx_init_plane_horisontal::$5==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_plane_horisontal::@3 to:gfx_init_plane_horisontal::@5 gfx_init_plane_horisontal::@5: scope:[gfx_init_plane_horisontal] from gfx_init_plane_horisontal::@2 - [549] *((byte*) gfx_init_plane_horisontal::gfxa#3) ← (byte/word/signed word/dword/signed dword) 255 + [549] *((byte*) gfx_init_plane_horisontal::gfxa#3) ← (byte/word/signed word/dword/signed dword) $ff [550] (byte*) gfx_init_plane_horisontal::gfxa#2 ← ++ (byte*) gfx_init_plane_horisontal::gfxa#3 to:gfx_init_plane_horisontal::@4 gfx_init_plane_horisontal::@4: scope:[gfx_init_plane_horisontal] from gfx_init_plane_horisontal::@3 gfx_init_plane_horisontal::@5 [551] (byte*) gfx_init_plane_horisontal::gfxa#7 ← phi( gfx_init_plane_horisontal::@3/(byte*) gfx_init_plane_horisontal::gfxa#1 gfx_init_plane_horisontal::@5/(byte*) gfx_init_plane_horisontal::gfxa#2 ) [552] (byte) gfx_init_plane_horisontal::ax#1 ← ++ (byte) gfx_init_plane_horisontal::ax#2 - [553] if((byte) gfx_init_plane_horisontal::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_plane_horisontal::@2 + [553] if((byte) gfx_init_plane_horisontal::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_plane_horisontal::@2 to:gfx_init_plane_horisontal::@7 gfx_init_plane_horisontal::@7: scope:[gfx_init_plane_horisontal] from gfx_init_plane_horisontal::@4 [554] (byte) gfx_init_plane_horisontal::ay#1 ← ++ (byte) gfx_init_plane_horisontal::ay#4 - [555] if((byte) gfx_init_plane_horisontal::ay#1!=(byte/word/signed word/dword/signed dword) 200) goto gfx_init_plane_horisontal::@1 + [555] if((byte) gfx_init_plane_horisontal::ay#1!=(byte/word/signed word/dword/signed dword) $c8) goto gfx_init_plane_horisontal::@1 to:gfx_init_plane_horisontal::@8 gfx_init_plane_horisontal::@8: scope:[gfx_init_plane_horisontal] from gfx_init_plane_horisontal::@7 [556] phi() @@ -11293,7 +11293,7 @@ gfx_init_plane_charset8::@9: scope:[gfx_init_plane_charset8] from gfx_init_plan gfx_init_plane_charset8::@1: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@7 gfx_init_plane_charset8::@9 [564] (byte) gfx_init_plane_charset8::ch#8 ← phi( gfx_init_plane_charset8::@7/(byte) gfx_init_plane_charset8::ch#1 gfx_init_plane_charset8::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [564] (byte) gfx_init_plane_charset8::col#6 ← phi( gfx_init_plane_charset8::@7/(byte) gfx_init_plane_charset8::col#1 gfx_init_plane_charset8::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [564] (byte*) gfx_init_plane_charset8::gfxa#6 ← phi( gfx_init_plane_charset8::@7/(byte*) gfx_init_plane_charset8::gfxa#1 gfx_init_plane_charset8::@9/((byte*))(word/signed word/dword/signed dword) 16384+(const dword) PLANE_CHARSET8#0&(word/signed word/dword/signed dword) 16383 ) + [564] (byte*) gfx_init_plane_charset8::gfxa#6 ← phi( gfx_init_plane_charset8::@7/(byte*) gfx_init_plane_charset8::gfxa#1 gfx_init_plane_charset8::@9/((byte*))(word/signed word/dword/signed dword) $4000+(const dword) PLANE_CHARSET8#0&(word/signed word/dword/signed dword) $3fff ) [564] (byte*) gfx_init_plane_charset8::chargen#3 ← phi( gfx_init_plane_charset8::@7/(byte*) gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::@9/(const byte*) CHARGEN#0 ) to:gfx_init_plane_charset8::@2 gfx_init_plane_charset8::@2: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@1 gfx_init_plane_charset8::@6 @@ -11309,7 +11309,7 @@ gfx_init_plane_charset8::@3: scope:[gfx_init_plane_charset8] from gfx_init_plan [568] (byte) gfx_init_plane_charset8::col#2 ← phi( gfx_init_plane_charset8::@2/(byte) gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::@4/(byte) gfx_init_plane_charset8::col#1 ) [568] (byte*) gfx_init_plane_charset8::gfxa#2 ← phi( gfx_init_plane_charset8::@2/(byte*) gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::@4/(byte*) gfx_init_plane_charset8::gfxa#1 ) [568] (byte) gfx_init_plane_charset8::bits#2 ← phi( gfx_init_plane_charset8::@2/(byte) gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::@4/(byte) gfx_init_plane_charset8::bits#1 ) - [569] (byte~) gfx_init_plane_charset8::$5 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) 128 + [569] (byte~) gfx_init_plane_charset8::$5 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) $80 [570] if((byte~) gfx_init_plane_charset8::$5==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_plane_charset8::@4 to:gfx_init_plane_charset8::@5 gfx_init_plane_charset8::@5: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@3 @@ -11344,15 +11344,15 @@ gfx_init_plane_8bppchunky: scope:[gfx_init_plane_8bppchunky] from gfx_init::@7 [587] call dtvSetCpuBankSegment1 to:gfx_init_plane_8bppchunky::@1 gfx_init_plane_8bppchunky::@1: scope:[gfx_init_plane_8bppchunky] from gfx_init_plane_8bppchunky gfx_init_plane_8bppchunky::@5 - [588] (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#7 ← phi( gfx_init_plane_8bppchunky::@5/(byte) gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky/++((byte))(const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) 16384 ) + [588] (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#7 ← phi( gfx_init_plane_8bppchunky::@5/(byte) gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky/++((byte))(const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) $4000 ) [588] (byte) gfx_init_plane_8bppchunky::y#6 ← phi( gfx_init_plane_8bppchunky::@5/(byte) gfx_init_plane_8bppchunky::y#1 gfx_init_plane_8bppchunky/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [588] (byte*) gfx_init_plane_8bppchunky::gfxb#5 ← phi( gfx_init_plane_8bppchunky::@5/(byte*) gfx_init_plane_8bppchunky::gfxb#1 gfx_init_plane_8bppchunky/((byte*))(word/signed word/dword/signed dword) 16384 ) + [588] (byte*) gfx_init_plane_8bppchunky::gfxb#5 ← phi( gfx_init_plane_8bppchunky::@5/(byte*) gfx_init_plane_8bppchunky::gfxb#1 gfx_init_plane_8bppchunky/((byte*))(word/signed word/dword/signed dword) $4000 ) to:gfx_init_plane_8bppchunky::@2 gfx_init_plane_8bppchunky::@2: scope:[gfx_init_plane_8bppchunky] from gfx_init_plane_8bppchunky::@1 gfx_init_plane_8bppchunky::@3 [589] (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#4 ← phi( gfx_init_plane_8bppchunky::@1/(byte) gfx_init_plane_8bppchunky::gfxbCpuBank#7 gfx_init_plane_8bppchunky::@3/(byte) gfx_init_plane_8bppchunky::gfxbCpuBank#8 ) [589] (word) gfx_init_plane_8bppchunky::x#2 ← phi( gfx_init_plane_8bppchunky::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 gfx_init_plane_8bppchunky::@3/(word) gfx_init_plane_8bppchunky::x#1 ) [589] (byte*) gfx_init_plane_8bppchunky::gfxb#3 ← phi( gfx_init_plane_8bppchunky::@1/(byte*) gfx_init_plane_8bppchunky::gfxb#5 gfx_init_plane_8bppchunky::@3/(byte*) gfx_init_plane_8bppchunky::gfxb#1 ) - [590] if((byte*) gfx_init_plane_8bppchunky::gfxb#3!=(word/dword/signed dword) 32768) goto gfx_init_plane_8bppchunky::@3 + [590] if((byte*) gfx_init_plane_8bppchunky::gfxb#3!=(word/dword/signed dword) $8000) goto gfx_init_plane_8bppchunky::@3 to:gfx_init_plane_8bppchunky::@4 gfx_init_plane_8bppchunky::@4: scope:[gfx_init_plane_8bppchunky] from gfx_init_plane_8bppchunky::@2 [591] (byte) dtvSetCpuBankSegment1::cpuBankIdx#1 ← (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#4 @@ -11363,17 +11363,17 @@ gfx_init_plane_8bppchunky::@8: scope:[gfx_init_plane_8bppchunky] from gfx_init_ to:gfx_init_plane_8bppchunky::@3 gfx_init_plane_8bppchunky::@3: scope:[gfx_init_plane_8bppchunky] from gfx_init_plane_8bppchunky::@2 gfx_init_plane_8bppchunky::@8 [594] (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#8 ← phi( gfx_init_plane_8bppchunky::@2/(byte) gfx_init_plane_8bppchunky::gfxbCpuBank#4 gfx_init_plane_8bppchunky::@8/(byte) gfx_init_plane_8bppchunky::gfxbCpuBank#2 ) - [594] (byte*) gfx_init_plane_8bppchunky::gfxb#4 ← phi( gfx_init_plane_8bppchunky::@2/(byte*) gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::@8/((byte*))(word/signed word/dword/signed dword) 16384 ) + [594] (byte*) gfx_init_plane_8bppchunky::gfxb#4 ← phi( gfx_init_plane_8bppchunky::@2/(byte*) gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::@8/((byte*))(word/signed word/dword/signed dword) $4000 ) [595] (word~) gfx_init_plane_8bppchunky::$6 ← (word) gfx_init_plane_8bppchunky::x#2 + (byte) gfx_init_plane_8bppchunky::y#6 [596] (byte) gfx_init_plane_8bppchunky::c#0 ← ((byte)) (word~) gfx_init_plane_8bppchunky::$6 [597] *((byte*) gfx_init_plane_8bppchunky::gfxb#4) ← (byte) gfx_init_plane_8bppchunky::c#0 [598] (byte*) gfx_init_plane_8bppchunky::gfxb#1 ← ++ (byte*) gfx_init_plane_8bppchunky::gfxb#4 [599] (word) gfx_init_plane_8bppchunky::x#1 ← ++ (word) gfx_init_plane_8bppchunky::x#2 - [600] if((word) gfx_init_plane_8bppchunky::x#1!=(word/signed word/dword/signed dword) 320) goto gfx_init_plane_8bppchunky::@2 + [600] if((word) gfx_init_plane_8bppchunky::x#1!=(word/signed word/dword/signed dword) $140) goto gfx_init_plane_8bppchunky::@2 to:gfx_init_plane_8bppchunky::@5 gfx_init_plane_8bppchunky::@5: scope:[gfx_init_plane_8bppchunky] from gfx_init_plane_8bppchunky::@3 [601] (byte) gfx_init_plane_8bppchunky::y#1 ← ++ (byte) gfx_init_plane_8bppchunky::y#6 - [602] if((byte) gfx_init_plane_8bppchunky::y#1!=(byte/word/signed word/dword/signed dword) 200) goto gfx_init_plane_8bppchunky::@1 + [602] if((byte) gfx_init_plane_8bppchunky::y#1!=(byte/word/signed word/dword/signed dword) $c8) goto gfx_init_plane_8bppchunky::@1 to:gfx_init_plane_8bppchunky::@6 gfx_init_plane_8bppchunky::@6: scope:[gfx_init_plane_8bppchunky] from gfx_init_plane_8bppchunky::@5 [603] phi() @@ -11536,10 +11536,10 @@ bitmap_line_xdyi::@return: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@2 bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1 bitmap_line_ydxd::@1 bitmap_line_ydxi::@1 [696] (byte) bitmap_plot::y#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::y#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::y#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::y#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::y#2 ) [696] (byte) bitmap_plot::x#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::x#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::x#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::x#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::x#2 ) - [697] (word) bitmap_plot::plotter_x#0 ← *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) - [698] (word) bitmap_plot::plotter_y#0 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) + [697] (word) bitmap_plot::plotter_x#0 ← *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) + [698] (word) bitmap_plot::plotter_y#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) [699] (word~) bitmap_plot::$0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0 - [700] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) + [700] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) [701] *((byte*)(word~) bitmap_plot::$0) ← (byte~) bitmap_plot::$1 to:bitmap_plot::@return bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot @@ -11648,7 +11648,7 @@ bitmap_line_ydxd::@return: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@2 [747] return to:@return bitmap_clear: scope:[bitmap_clear] from gfx_init_vic_bitmap::@3 - [748] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_xhi#0) w= *((const byte[256]) bitmap_plot_xlo#0) + [748] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_xhi#0) w= *((const byte[$100]) bitmap_plot_xlo#0) [749] (byte*~) bitmap_clear::bitmap#5 ← (byte*)(word~) bitmap_clear::$3 to:bitmap_clear::@1 bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear bitmap_clear::@3 @@ -11661,11 +11661,11 @@ bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1 bitmap_clear::@2 [752] *((byte*) bitmap_clear::bitmap#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [753] (byte*) bitmap_clear::bitmap#1 ← ++ (byte*) bitmap_clear::bitmap#2 [754] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 - [755] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) 200) goto bitmap_clear::@2 + [755] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) $c8) goto bitmap_clear::@2 to:bitmap_clear::@3 bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2 [756] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 - [757] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto bitmap_clear::@1 + [757] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto bitmap_clear::@1 to:bitmap_clear::@return bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3 [758] return @@ -11674,17 +11674,17 @@ bitmap_init: scope:[bitmap_init] from gfx_init_vic_bitmap [759] phi() to:bitmap_init::@1 bitmap_init::@1: scope:[bitmap_init] from bitmap_init bitmap_init::@2 - [760] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte/word/signed word/dword/signed dword) 128 bitmap_init::@2/(byte) bitmap_init::bits#4 ) + [760] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte/word/signed word/dword/signed dword) $80 bitmap_init::@2/(byte) bitmap_init::bits#4 ) [760] (byte) bitmap_init::x#2 ← phi( bitmap_init/(byte/signed byte/word/signed word/dword/signed dword) 0 bitmap_init::@2/(byte) bitmap_init::x#1 ) - [761] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) 248 - [762] *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 - [763] *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) VIC_BITMAP#0 - [764] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 + [761] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) $f8 + [762] *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 + [763] *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) VIC_BITMAP#0 + [764] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [765] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [766] if((byte) bitmap_init::bits#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@10 to:bitmap_init::@2 bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@10 - [767] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@10/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte/word/signed word/dword/signed dword) 128 ) + [767] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@10/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte/word/signed word/dword/signed dword) $80 ) [768] (byte) bitmap_init::x#1 ← ++ (byte) bitmap_init::x#2 [769] if((byte) bitmap_init::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@1 to:bitmap_init::@3 @@ -11694,14 +11694,14 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4 [771] (byte~) bitmap_init::$6 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [772] (byte~) bitmap_init::$7 ← < (byte*) bitmap_init::yoffs#2 [773] (byte~) bitmap_init::$8 ← (byte~) bitmap_init::$6 | (byte~) bitmap_init::$7 - [774] *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 + [774] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 [775] (byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2 - [776] *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 + [776] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 [777] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [778] if((byte~) bitmap_init::$10!=(byte/signed byte/word/signed word/dword/signed dword) 7) goto bitmap_init::@4 to:bitmap_init::@7 bitmap_init::@7: scope:[bitmap_init] from bitmap_init::@3 - [779] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 + [779] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 to:bitmap_init::@4 bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@7 [780] (byte*) bitmap_init::yoffs#4 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 bitmap_init::@7/(byte*) bitmap_init::yoffs#1 ) @@ -11715,7 +11715,7 @@ bitmap_init::@10: scope:[bitmap_init] from bitmap_init::@1 [784] phi() to:bitmap_init::@2 gfx_init_charset: scope:[gfx_init_charset] from gfx_init::@5 - [785] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 + [785] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 to:gfx_init_charset::@1 gfx_init_charset::@1: scope:[gfx_init_charset] from gfx_init_charset gfx_init_charset::@3 [786] (byte) gfx_init_charset::c#4 ← phi( gfx_init_charset/(byte/signed byte/word/signed word/dword/signed dword) 0 gfx_init_charset::@3/(byte) gfx_init_charset::c#1 ) @@ -11737,7 +11737,7 @@ gfx_init_charset::@3: scope:[gfx_init_charset] from gfx_init_charset::@2 [794] if((byte) gfx_init_charset::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_charset::@1 to:gfx_init_charset::@4 gfx_init_charset::@4: scope:[gfx_init_charset] from gfx_init_charset::@3 - [795] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 + [795] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 to:gfx_init_charset::@return gfx_init_charset::@return: scope:[gfx_init_charset] from gfx_init_charset::@4 [796] return @@ -11755,11 +11755,11 @@ gfx_init_screen4::@2: scope:[gfx_init_screen4] from gfx_init_screen4::@1 gfx_in [800] *((byte*) gfx_init_screen4::ch#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [801] (byte*) gfx_init_screen4::ch#1 ← ++ (byte*) gfx_init_screen4::ch#2 [802] (byte) gfx_init_screen4::cx#1 ← ++ (byte) gfx_init_screen4::cx#2 - [803] if((byte) gfx_init_screen4::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen4::@2 + [803] if((byte) gfx_init_screen4::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen4::@2 to:gfx_init_screen4::@3 gfx_init_screen4::@3: scope:[gfx_init_screen4] from gfx_init_screen4::@2 [804] (byte) gfx_init_screen4::cy#1 ← ++ (byte) gfx_init_screen4::cy#4 - [805] if((byte) gfx_init_screen4::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen4::@1 + [805] if((byte) gfx_init_screen4::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen4::@1 to:gfx_init_screen4::@return gfx_init_screen4::@return: scope:[gfx_init_screen4] from gfx_init_screen4::@3 [806] return @@ -11781,11 +11781,11 @@ gfx_init_screen3::@2: scope:[gfx_init_screen3] from gfx_init_screen3::@1 gfx_in [814] *((byte*) gfx_init_screen3::ch#2) ← (byte~) gfx_init_screen3::$3 [815] (byte*) gfx_init_screen3::ch#1 ← ++ (byte*) gfx_init_screen3::ch#2 [816] (byte) gfx_init_screen3::cx#1 ← ++ (byte) gfx_init_screen3::cx#2 - [817] if((byte) gfx_init_screen3::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen3::@2 + [817] if((byte) gfx_init_screen3::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen3::@2 to:gfx_init_screen3::@3 gfx_init_screen3::@3: scope:[gfx_init_screen3] from gfx_init_screen3::@2 [818] (byte) gfx_init_screen3::cy#1 ← ++ (byte) gfx_init_screen3::cy#4 - [819] if((byte) gfx_init_screen3::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen3::@1 + [819] if((byte) gfx_init_screen3::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen3::@1 to:gfx_init_screen3::@return gfx_init_screen3::@return: scope:[gfx_init_screen3] from gfx_init_screen3::@3 [820] return @@ -11801,18 +11801,18 @@ gfx_init_screen2::@2: scope:[gfx_init_screen2] from gfx_init_screen2::@1 gfx_in [823] (byte*) gfx_init_screen2::ch#2 ← phi( gfx_init_screen2::@1/(byte*) gfx_init_screen2::ch#3 gfx_init_screen2::@2/(byte*) gfx_init_screen2::ch#1 ) [823] (byte) gfx_init_screen2::cx#2 ← phi( gfx_init_screen2::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 gfx_init_screen2::@2/(byte) gfx_init_screen2::cx#1 ) [824] (byte~) gfx_init_screen2::$0 ← (byte) gfx_init_screen2::cx#2 + (byte) gfx_init_screen2::cy#4 - [825] (byte) gfx_init_screen2::col#0 ← (byte~) gfx_init_screen2::$0 & (byte/signed byte/word/signed word/dword/signed dword) 15 - [826] (byte) gfx_init_screen2::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) gfx_init_screen2::col#0 + [825] (byte) gfx_init_screen2::col#0 ← (byte~) gfx_init_screen2::$0 & (byte/signed byte/word/signed word/dword/signed dword) $f + [826] (byte) gfx_init_screen2::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f - (byte) gfx_init_screen2::col#0 [827] (byte~) gfx_init_screen2::$3 ← (byte) gfx_init_screen2::col#0 << (byte/signed byte/word/signed word/dword/signed dword) 4 [828] (byte~) gfx_init_screen2::$4 ← (byte~) gfx_init_screen2::$3 | (byte) gfx_init_screen2::col2#0 [829] *((byte*) gfx_init_screen2::ch#2) ← (byte~) gfx_init_screen2::$4 [830] (byte*) gfx_init_screen2::ch#1 ← ++ (byte*) gfx_init_screen2::ch#2 [831] (byte) gfx_init_screen2::cx#1 ← ++ (byte) gfx_init_screen2::cx#2 - [832] if((byte) gfx_init_screen2::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen2::@2 + [832] if((byte) gfx_init_screen2::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen2::@2 to:gfx_init_screen2::@3 gfx_init_screen2::@3: scope:[gfx_init_screen2] from gfx_init_screen2::@2 [833] (byte) gfx_init_screen2::cy#1 ← ++ (byte) gfx_init_screen2::cy#4 - [834] if((byte) gfx_init_screen2::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen2::@1 + [834] if((byte) gfx_init_screen2::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen2::@1 to:gfx_init_screen2::@return gfx_init_screen2::@return: scope:[gfx_init_screen2] from gfx_init_screen2::@3 [835] return @@ -11828,15 +11828,15 @@ gfx_init_screen1::@2: scope:[gfx_init_screen1] from gfx_init_screen1::@1 gfx_in [838] (byte*) gfx_init_screen1::ch#2 ← phi( gfx_init_screen1::@1/(byte*) gfx_init_screen1::ch#3 gfx_init_screen1::@2/(byte*) gfx_init_screen1::ch#1 ) [838] (byte) gfx_init_screen1::cx#2 ← phi( gfx_init_screen1::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 gfx_init_screen1::@2/(byte) gfx_init_screen1::cx#1 ) [839] (byte~) gfx_init_screen1::$0 ← (byte) gfx_init_screen1::cx#2 + (byte) gfx_init_screen1::cy#4 - [840] (byte~) gfx_init_screen1::$1 ← (byte~) gfx_init_screen1::$0 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [840] (byte~) gfx_init_screen1::$1 ← (byte~) gfx_init_screen1::$0 & (byte/signed byte/word/signed word/dword/signed dword) $f [841] *((byte*) gfx_init_screen1::ch#2) ← (byte~) gfx_init_screen1::$1 [842] (byte*) gfx_init_screen1::ch#1 ← ++ (byte*) gfx_init_screen1::ch#2 [843] (byte) gfx_init_screen1::cx#1 ← ++ (byte) gfx_init_screen1::cx#2 - [844] if((byte) gfx_init_screen1::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen1::@2 + [844] if((byte) gfx_init_screen1::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen1::@2 to:gfx_init_screen1::@3 gfx_init_screen1::@3: scope:[gfx_init_screen1] from gfx_init_screen1::@2 [845] (byte) gfx_init_screen1::cy#1 ← ++ (byte) gfx_init_screen1::cy#4 - [846] if((byte) gfx_init_screen1::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen1::@1 + [846] if((byte) gfx_init_screen1::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen1::@1 to:gfx_init_screen1::@return gfx_init_screen1::@return: scope:[gfx_init_screen1] from gfx_init_screen1::@3 [847] return @@ -11851,24 +11851,24 @@ gfx_init_screen0::@1: scope:[gfx_init_screen0] from gfx_init_screen0 gfx_init_s gfx_init_screen0::@2: scope:[gfx_init_screen0] from gfx_init_screen0::@1 gfx_init_screen0::@2 [850] (byte*) gfx_init_screen0::ch#2 ← phi( gfx_init_screen0::@1/(byte*) gfx_init_screen0::ch#3 gfx_init_screen0::@2/(byte*) gfx_init_screen0::ch#1 ) [850] (byte) gfx_init_screen0::cx#2 ← phi( gfx_init_screen0::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 gfx_init_screen0::@2/(byte) gfx_init_screen0::cx#1 ) - [851] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [851] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [852] (byte~) gfx_init_screen0::$1 ← (byte~) gfx_init_screen0::$0 << (byte/signed byte/word/signed word/dword/signed dword) 4 - [853] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [853] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [854] (byte~) gfx_init_screen0::$3 ← (byte~) gfx_init_screen0::$1 | (byte~) gfx_init_screen0::$2 [855] *((byte*) gfx_init_screen0::ch#2) ← (byte~) gfx_init_screen0::$3 [856] (byte*) gfx_init_screen0::ch#1 ← ++ (byte*) gfx_init_screen0::ch#2 [857] (byte) gfx_init_screen0::cx#1 ← ++ (byte) gfx_init_screen0::cx#2 - [858] if((byte) gfx_init_screen0::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen0::@2 + [858] if((byte) gfx_init_screen0::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen0::@2 to:gfx_init_screen0::@3 gfx_init_screen0::@3: scope:[gfx_init_screen0] from gfx_init_screen0::@2 [859] (byte) gfx_init_screen0::cy#1 ← ++ (byte) gfx_init_screen0::cy#4 - [860] if((byte) gfx_init_screen0::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen0::@1 + [860] if((byte) gfx_init_screen0::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen0::@1 to:gfx_init_screen0::@return gfx_init_screen0::@return: scope:[gfx_init_screen0] from gfx_init_screen0::@3 [861] return to:@return keyboard_init: scope:[keyboard_init] from main - [862] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 + [862] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) $ff [863] *((const 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 @@ -11985,7 +11985,7 @@ VARIABLE REGISTER WEIGHTS (byte) DTV_LINEAR (byte) DTV_OVERSCAN (byte*) DTV_PALETTE -(byte[16]) DTV_PALETTE_DEFAULT +(byte[$10]) DTV_PALETTE_DEFAULT (byte*) DTV_PLANEA_MODULO_HI (byte*) DTV_PLANEA_MODULO_LO (byte*) DTV_PLANEA_START_HI @@ -12352,11 +12352,11 @@ VARIABLE REGISTER WEIGHTS (byte) bitmap_plot::y#2 202.0 (byte) bitmap_plot::y#3 202.0 (byte) bitmap_plot::y#4 204.0 -(byte[256]) bitmap_plot_bit -(byte[256]) bitmap_plot_xhi -(byte[256]) bitmap_plot_xlo -(byte[256]) bitmap_plot_yhi -(byte[256]) bitmap_plot_ylo +(byte[$100]) bitmap_plot_bit +(byte[$100]) bitmap_plot_xhi +(byte[$100]) bitmap_plot_xlo +(byte[$100]) bitmap_plot_yhi +(byte[$100]) bitmap_plot_ylo (void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx) (byte*) dtvSetCpuBankSegment1::cpuBank (byte) dtvSetCpuBankSegment1::cpuBankIdx @@ -12434,8 +12434,8 @@ VARIABLE REGISTER WEIGHTS (byte[]) form_fields_val (byte[]) form_fields_x (byte[]) form_fields_y -(byte[25]) form_line_hi -(byte[25]) form_line_lo +(byte[$19]) form_line_hi +(byte[$19]) form_line_lo (void()) form_mode() (byte~) form_mode::$36 2002.0 (byte) form_mode::i @@ -14487,7 +14487,7 @@ gfx_mode: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG152 [93] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) VIC_SCREEN0#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG152 [93] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) VIC_SCREEN0#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^VIC_SCREEN0/$4000 sta CIA2_PORT_A @@ -14512,7 +14512,7 @@ gfx_mode: { sta _61 lda get_vic_screen.return_10+1 sta _61+1 - //SEG160 [98] (word~) gfx_mode::$63 ← (word)(byte*~) gfx_mode::$61 & (word/signed word/dword/signed dword) 16383 -- vwuz1=vwuz2_band_vwuc1 + //SEG160 [98] (word~) gfx_mode::$63 ← (word)(byte*~) gfx_mode::$61 & (word/signed word/dword/signed dword) $3fff -- vwuz1=vwuz2_band_vwuc1 lda _61 and #<$3fff sta _63 @@ -14551,7 +14551,7 @@ gfx_mode: { sta _66 lda get_vic_charset.return_4+1 sta _66+1 - //SEG168 [105] (word~) gfx_mode::$68 ← (word)(byte*~) gfx_mode::$66 & (word/signed word/dword/signed dword) 16383 -- vwuz1=vwuz2_band_vwuc1 + //SEG168 [105] (word~) gfx_mode::$68 ← (word)(byte*~) gfx_mode::$66 & (word/signed word/dword/signed dword) $3fff -- vwuz1=vwuz2_band_vwuc1 lda _66 and #<$3fff sta _68 @@ -14649,7 +14649,7 @@ gfx_mode: { !: //SEG201 [119] (byte) gfx_mode::cx#1 ← ++ (byte) gfx_mode::cx#2 -- vbuz1=_inc_vbuz1 inc cx - //SEG202 [120] if((byte) gfx_mode::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_mode::@11 -- vbuz1_neq_vbuc1_then_la1 + //SEG202 [120] if((byte) gfx_mode::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_mode::@11 -- vbuz1_neq_vbuc1_then_la1 lda cx cmp #$28 bne b11_from_b11 @@ -14658,7 +14658,7 @@ gfx_mode: { b32: //SEG204 [121] (byte) gfx_mode::cy#1 ← ++ (byte) gfx_mode::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG205 [122] if((byte) gfx_mode::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_mode::@10 -- vbuz1_neq_vbuc1_then_la1 + //SEG205 [122] if((byte) gfx_mode::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_mode::@10 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b10_from_b32 @@ -14749,14 +14749,14 @@ gfx_mode: { sta DTV_PALETTE,y //SEG227 [139] (byte) gfx_mode::j#1 ← ++ (byte) gfx_mode::j#2 -- vbuz1=_inc_vbuz1 inc j - //SEG228 [140] if((byte) gfx_mode::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto gfx_mode::@13 -- vbuz1_neq_vbuc1_then_la1 + //SEG228 [140] if((byte) gfx_mode::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto gfx_mode::@13 -- vbuz1_neq_vbuc1_then_la1 lda j cmp #$10 bne b13_from_b13 jmp b19 //SEG229 gfx_mode::@19 b19: - //SEG230 [141] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto gfx_mode::@19 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG230 [141] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto gfx_mode::@19 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b19 @@ -14808,13 +14808,13 @@ gfx_mode: { jmp b15 //SEG249 gfx_mode::@15 b15: - //SEG250 [151] *((const byte*) DTV_PALETTE#0 + (byte) gfx_mode::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) gfx_mode::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 + //SEG250 [151] *((const byte*) DTV_PALETTE#0 + (byte) gfx_mode::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) gfx_mode::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 ldy i lda DTV_PALETTE_DEFAULT,y sta DTV_PALETTE,y //SEG251 [152] (byte) gfx_mode::i#1 ← ++ (byte) gfx_mode::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG252 [153] if((byte) gfx_mode::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto gfx_mode::@15 -- vbuz1_neq_vbuc1_then_la1 + //SEG252 [153] if((byte) gfx_mode::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto gfx_mode::@15 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b15_from_b15 @@ -14849,7 +14849,7 @@ keyboard_event_get: { //SEG261 [157] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] breturn_from_keyboard_event_get: //SEG262 [157] phi (byte) keyboard_events_size#24 = (byte) keyboard_events_size#100 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG263 [157] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuz1=vbuc1 + //SEG263 [157] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) $ff [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuz1=vbuc1 lda #$ff sta return jmp breturn @@ -15171,7 +15171,7 @@ keyboard_event_scan: { jmp b3_from_b19 //SEG371 keyboard_event_scan::@7 b7: - //SEG372 [210] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz2_bor_vbuc1 + //SEG372 [210] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) $40 -- vbuz1=vbuz2_bor_vbuc1 lda #$40 ora keycode sta _11 @@ -15464,28 +15464,28 @@ get_plane: { jmp b37 //SEG443 get_plane::@37 b37: - //SEG444 [247] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 10) goto get_plane::@return -- vbuz1_eq_vbuc1_then_la1 + //SEG444 [247] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) $a) goto get_plane::@return -- vbuz1_eq_vbuc1_then_la1 lda idx cmp #$a beq breturn_from_b37 jmp b38 //SEG445 get_plane::@38 b38: - //SEG446 [248] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 11) goto get_plane::@return -- vbuz1_eq_vbuc1_then_la1 + //SEG446 [248] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) $b) goto get_plane::@return -- vbuz1_eq_vbuc1_then_la1 lda idx cmp #$b beq breturn_from_b38 jmp b39 //SEG447 get_plane::@39 b39: - //SEG448 [249] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 12) goto get_plane::@return -- vbuz1_eq_vbuc1_then_la1 + //SEG448 [249] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) $c) goto get_plane::@return -- vbuz1_eq_vbuc1_then_la1 lda idx cmp #$c beq breturn_from_b39 jmp b40 //SEG449 get_plane::@40 b40: - //SEG450 [250] if((byte) get_plane::idx#10!=(byte/signed byte/word/signed word/dword/signed dword) 13) goto get_plane::@27 -- vbuz1_neq_vbuc1_then_la1 + //SEG450 [250] if((byte) get_plane::idx#10!=(byte/signed byte/word/signed word/dword/signed dword) $d) goto get_plane::@27 -- vbuz1_neq_vbuc1_then_la1 lda idx cmp #$d bne b27_from_b40 @@ -15772,22 +15772,22 @@ form_mode: { jmp b29 //SEG521 form_mode::@29 b29: - //SEG522 [272] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) FORM_CHARSET#0/(dword/signed dword) 65536 -- _deref_pbuc1=vbuc2 + //SEG522 [272] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) FORM_CHARSET#0/(dword/signed dword) $10000 -- _deref_pbuc1=vbuc2 // DTV Graphics Bank lda #($ffffffff&FORM_CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG523 [273] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG523 [273] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #DTV_COLOR_BANK_DEFAULT/$400 sta DTV_COLOR_BANK_LO - //SEG524 [274] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG524 [274] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI //SEG525 [275] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG526 [276] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) FORM_CHARSET#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG526 [276] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) FORM_CHARSET#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^FORM_CHARSET/$4000 sta CIA2_PORT_A @@ -15803,7 +15803,7 @@ form_mode: { //SEG529 [279] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 -- _deref_pbuc1=vbuc2 lda #VIC_CSEL sta VIC_CONTROL2 - //SEG530 [280] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) FORM_SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) FORM_CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG530 [280] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) FORM_SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) FORM_CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // VIC Memory Pointers lda #(FORM_SCREEN&$3fff)/$40|(FORM_CHARSET&$3fff)/$400 sta VIC_MEMORY @@ -15830,13 +15830,13 @@ form_mode: { jmp b1 //SEG538 form_mode::@1 b1: - //SEG539 [285] *((const byte*) DTV_PALETTE#0 + (byte) form_mode::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) form_mode::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 + //SEG539 [285] *((const byte*) DTV_PALETTE#0 + (byte) form_mode::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) form_mode::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 ldy i lda DTV_PALETTE_DEFAULT,y sta DTV_PALETTE,y //SEG540 [286] (byte) form_mode::i#1 ← ++ (byte) form_mode::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG541 [287] if((byte) form_mode::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto form_mode::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG541 [287] if((byte) form_mode::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto form_mode::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b1 @@ -15873,7 +15873,7 @@ form_mode: { jmp b5 //SEG556 form_mode::@5 b5: - //SEG557 [292] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto form_mode::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG557 [292] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto form_mode::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b5 @@ -16016,7 +16016,7 @@ render_preset_name: { jmp b32 //SEG601 render_preset_name::@32 b32: - //SEG602 [317] if((byte) render_preset_name::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 10) goto render_preset_name::@22 -- vbuz1_eq_vbuc1_then_la1 + //SEG602 [317] if((byte) render_preset_name::idx#10==(byte/signed byte/word/signed word/dword/signed dword) $a) goto render_preset_name::@22 -- vbuz1_eq_vbuc1_then_la1 lda idx cmp #$a beq b22_from_b32 @@ -16150,7 +16150,7 @@ print_str_at: { .label str = $25 //SEG634 [324] phi from print_str_at to print_str_at::@1 [phi:print_str_at->print_str_at::@1] b1_from_print_str_at: - //SEG635 [324] phi (byte*) print_str_at::at#2 = (const byte*) FORM_SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 10 [phi:print_str_at->print_str_at::@1#0] -- pbuz1=pbuc1 + //SEG635 [324] phi (byte*) print_str_at::at#2 = (const byte*) FORM_SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) $a [phi:print_str_at->print_str_at::@1#0] -- pbuz1=pbuc1 lda #FORM_SCREEN+$28*2+$a @@ -16265,7 +16265,7 @@ form_field_ptr: { ldy field_idx lda form_fields_y,y sta y - //SEG668 [342] (word~) form_field_ptr::$2 ← *((const byte[25]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[25]) form_line_lo#0 + (byte) form_field_ptr::y#0) -- vwuz1=pbuc1_derefidx_vbuz2_word_pbuc2_derefidx_vbuz2 + //SEG668 [342] (word~) form_field_ptr::$2 ← *((const byte[$19]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[$19]) form_line_lo#0 + (byte) form_field_ptr::y#0) -- vwuz1=pbuc1_derefidx_vbuz2_word_pbuc2_derefidx_vbuz2 ldy y lda form_line_hi,y sta _2+1 @@ -16367,7 +16367,7 @@ apply_preset: { jmp b33 //SEG693 apply_preset::@33 b33: - //SEG694 [356] if((byte) apply_preset::idx#0==(byte/signed byte/word/signed word/dword/signed dword) 10) goto apply_preset::@22 -- vbuz1_eq_vbuc1_then_la1 + //SEG694 [356] if((byte) apply_preset::idx#0==(byte/signed byte/word/signed word/dword/signed dword) $a) goto apply_preset::@22 -- vbuz1_eq_vbuc1_then_la1 lda idx cmp #$a beq b22_from_b33 @@ -16555,7 +16555,7 @@ form_control: { jmp b16 //SEG744 form_control::@16 b16: - //SEG745 [372] (byte~) form_control::$5 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- vbuz1=_deref_pbuz2_band_vbuc1 + //SEG745 [372] (byte~) form_control::$5 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f -- vbuz1=_deref_pbuz2_band_vbuc1 lda #$7f ldy #0 and (field),y @@ -16598,7 +16598,7 @@ form_control: { jmp b18 //SEG759 form_control::@18 b18: - //SEG760 [381] (byte~) form_control::$11 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- vbuz1=_deref_pbuz2_band_vbuc1 + //SEG760 [381] (byte~) form_control::$11 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f -- vbuz1=_deref_pbuz2_band_vbuc1 lda #$7f ldy #0 and (field),y @@ -16621,7 +16621,7 @@ form_control: { b19: //SEG765 [385] (byte) form_field_idx#44 ← -- (byte) form_field_idx#28 -- vbuz1=_dec_vbuz1 dec form_field_idx - //SEG766 [386] if((byte) form_field_idx#44!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@37 -- vbuz1_neq_vbuc1_then_la1 + //SEG766 [386] if((byte) form_field_idx#44!=(byte/word/signed word/dword/signed dword) $ff) goto form_control::@37 -- vbuz1_neq_vbuc1_then_la1 lda form_field_idx cmp #$ff bne b37_from_b19 @@ -16700,7 +16700,7 @@ form_control: { //SEG793 [397] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#28) ← -- *((const byte[]) form_fields_val#0 + (byte) form_field_idx#28) -- pbuc1_derefidx_vbuz1=_dec_pbuc1_derefidx_vbuz1 ldx form_field_idx dec form_fields_val,x - //SEG794 [398] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#28)!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@12 -- pbuc1_derefidx_vbuz1_neq_vbuc2_then_la1 + //SEG794 [398] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#28)!=(byte/word/signed word/dword/signed dword) $ff) goto form_control::@12 -- pbuc1_derefidx_vbuz1_neq_vbuc2_then_la1 ldy form_field_idx lda form_fields_val,y cmp #$ff @@ -16761,7 +16761,7 @@ form_control: { breturn_from_b9: //SEG811 [388] phi (byte) form_field_idx#18 = (byte) form_field_idx#28 [phi:form_control::@9->form_control::@return#0] -- register_copy //SEG812 [388] phi (signed byte) form_cursor_count#16 = (signed byte) form_cursor_count#15 [phi:form_control::@9->form_control::@return#1] -- register_copy - //SEG813 [388] phi (byte) form_control::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:form_control::@9->form_control::@return#2] -- vbuz1=vbuc1 + //SEG813 [388] phi (byte) form_control::return#2 = (byte/word/signed word/dword/signed dword) $ff [phi:form_control::@9->form_control::@return#2] -- vbuz1=vbuc1 lda #$ff sta return_2 jmp breturn @@ -16773,7 +16773,7 @@ form_control: { jmp breturn_from_b39 //SEG816 form_control::@2 b2: - //SEG817 [406] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) 128 -- vbuz1=_deref_pbuz2_bor_vbuc1 + //SEG817 [406] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) $80 -- vbuz1=_deref_pbuz2_bor_vbuc1 lda #$80 ldy #0 ora (field),y @@ -16822,18 +16822,18 @@ form_set_screen: { //SEG831 [411] (byte~) form_set_screen::$0 ← < (byte*) form_set_screen::line#2 -- vbuz1=_lo_pbuz2 lda line sta _0 - //SEG832 [412] *((const byte[25]) form_line_lo#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG832 [412] *((const byte[$19]) form_line_lo#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$0 -- pbuc1_derefidx_vbuz1=vbuz2 lda _0 ldy y sta form_line_lo,y //SEG833 [413] (byte~) form_set_screen::$1 ← > (byte*) form_set_screen::line#2 -- vbuz1=_hi_pbuz2 lda line+1 sta _1 - //SEG834 [414] *((const byte[25]) form_line_hi#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$1 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG834 [414] *((const byte[$19]) form_line_hi#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$1 -- pbuc1_derefidx_vbuz1=vbuz2 lda _1 ldy y sta form_line_hi,y - //SEG835 [415] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG835 [415] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda line clc adc #$28 @@ -16843,7 +16843,7 @@ form_set_screen: { !: //SEG836 [416] (byte) form_set_screen::y#1 ← ++ (byte) form_set_screen::y#2 -- vbuz1=_inc_vbuz1 inc y - //SEG837 [417] if((byte) form_set_screen::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto form_set_screen::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG837 [417] if((byte) form_set_screen::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto form_set_screen::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$19 bne b1_from_b1 @@ -16954,7 +16954,7 @@ print_ln: { jmp b1 //SEG872 print_ln::@1 b1: - //SEG873 [437] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG873 [437] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -17003,7 +17003,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG884 [444] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) 1000 -- pbuz1=pbuz2_plus_vwuc1 + //SEG884 [444] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) $3e8 -- pbuz1=pbuz2_plus_vwuc1 lda print_set_screen.screen clc adc #<$3e8 @@ -17178,7 +17178,7 @@ gfx_init_plane_full: { //SEG952 [481] call gfx_init_plane_fill //SEG953 [483] phi from gfx_init_plane_full to gfx_init_plane_fill [phi:gfx_init_plane_full->gfx_init_plane_fill] gfx_init_plane_fill_from_gfx_init_plane_full: - //SEG954 [483] phi (byte) gfx_init_plane_fill::fill#6 = (byte/word/signed word/dword/signed dword) 255 [phi:gfx_init_plane_full->gfx_init_plane_fill#0] -- vbuz1=vbuc1 + //SEG954 [483] phi (byte) gfx_init_plane_fill::fill#6 = (byte/word/signed word/dword/signed dword) $ff [phi:gfx_init_plane_full->gfx_init_plane_fill#0] -- vbuz1=vbuc1 lda #$ff sta gfx_init_plane_fill.fill //SEG955 [483] phi (dword) gfx_init_plane_fill::plane_addr#3 = (const dword) PLANE_FULL#0 [phi:gfx_init_plane_full->gfx_init_plane_fill#1] -- vduz1=vduc1 @@ -17258,14 +17258,14 @@ gfx_init_plane_fill: { sta _4 lda plane_addr+1 sta _4+1 - //SEG969 [491] (word~) gfx_init_plane_fill::$5 ← (word~) gfx_init_plane_fill::$4 & (word/signed word/dword/signed dword) 16383 -- vwuz1=vwuz2_band_vwuc1 + //SEG969 [491] (word~) gfx_init_plane_fill::$5 ← (word~) gfx_init_plane_fill::$4 & (word/signed word/dword/signed dword) $3fff -- vwuz1=vwuz2_band_vwuc1 lda _4 and #<$3fff sta _5 lda _4+1 and #>$3fff sta _5+1 - //SEG970 [492] (word/signed dword/dword~) gfx_init_plane_fill::$6 ← (word/signed word/dword/signed dword) 16384 + (word~) gfx_init_plane_fill::$5 -- vwuz1=vwuc1_plus_vwuz2 + //SEG970 [492] (word/signed dword/dword~) gfx_init_plane_fill::$6 ← (word/signed word/dword/signed dword) $4000 + (word~) gfx_init_plane_fill::$5 -- vwuz1=vwuc1_plus_vwuz2 lda _5 clc adc #<$4000 @@ -17317,7 +17317,7 @@ gfx_init_plane_fill: { !: //SEG988 [498] (byte) gfx_init_plane_fill::bx#1 ← ++ (byte) gfx_init_plane_fill::bx#2 -- vbuz1=_inc_vbuz1 inc bx - //SEG989 [499] if((byte) gfx_init_plane_fill::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_plane_fill::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG989 [499] if((byte) gfx_init_plane_fill::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_plane_fill::@2 -- vbuz1_neq_vbuc1_then_la1 lda bx cmp #$28 bne b2_from_b2 @@ -17326,7 +17326,7 @@ gfx_init_plane_fill: { b3: //SEG991 [500] (byte) gfx_init_plane_fill::by#1 ← ++ (byte) gfx_init_plane_fill::by#4 -- vbuz1=_inc_vbuz1 inc by - //SEG992 [501] if((byte) gfx_init_plane_fill::by#1!=(byte/word/signed word/dword/signed dword) 200) goto gfx_init_plane_fill::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG992 [501] if((byte) gfx_init_plane_fill::by#1!=(byte/word/signed word/dword/signed dword) $c8) goto gfx_init_plane_fill::@1 -- vbuz1_neq_vbuc1_then_la1 lda by cmp #$c8 bne b1_from_b3 @@ -17338,7 +17338,7 @@ gfx_init_plane_fill: { //SEG995 [503] call dtvSetCpuBankSegment1 //SEG996 [505] phi from gfx_init_plane_fill::@4 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_fill::@4->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from_b4: - //SEG997 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_fill::@4->dtvSetCpuBankSegment1#0] -- vbuz1=vbuc1 + //SEG997 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_fill::@4->dtvSetCpuBankSegment1#0] -- vbuz1=vbuc1 lda #$4000/$4000 sta dtvSetCpuBankSegment1.cpuBankIdx jsr dtvSetCpuBankSegment1 @@ -17401,7 +17401,7 @@ gfx_init_plane_vertical2: { //SEG1013 [513] call gfx_init_plane_fill //SEG1014 [483] phi from gfx_init_plane_vertical2 to gfx_init_plane_fill [phi:gfx_init_plane_vertical2->gfx_init_plane_fill] gfx_init_plane_fill_from_gfx_init_plane_vertical2: - //SEG1015 [483] phi (byte) gfx_init_plane_fill::fill#6 = (byte/signed byte/word/signed word/dword/signed dword) 27 [phi:gfx_init_plane_vertical2->gfx_init_plane_fill#0] -- vbuz1=vbuc1 + //SEG1015 [483] phi (byte) gfx_init_plane_fill::fill#6 = (byte/signed byte/word/signed word/dword/signed dword) $1b [phi:gfx_init_plane_vertical2->gfx_init_plane_fill#0] -- vbuz1=vbuc1 lda #$1b sta gfx_init_plane_fill.fill //SEG1016 [483] phi (dword) gfx_init_plane_fill::plane_addr#3 = (const dword) PLANE_VERTICAL2#0 [phi:gfx_init_plane_vertical2->gfx_init_plane_fill#1] -- vduz1=vduc1 @@ -17438,7 +17438,7 @@ gfx_init_plane_horisontal2: { jsr dtvSetCpuBankSegment1 //SEG1023 [517] phi from gfx_init_plane_horisontal2 to gfx_init_plane_horisontal2::@1 [phi:gfx_init_plane_horisontal2->gfx_init_plane_horisontal2::@1] b1_from_gfx_init_plane_horisontal2: - //SEG1024 [517] phi (byte*) gfx_init_plane_horisontal2::gfxa#3 = ((byte*))(word/signed word/dword/signed dword) 16384+(const dword) PLANE_HORISONTAL2#0&(word/signed word/dword/signed dword) 16383 [phi:gfx_init_plane_horisontal2->gfx_init_plane_horisontal2::@1#0] -- pbuz1=pbuc1 + //SEG1024 [517] phi (byte*) gfx_init_plane_horisontal2::gfxa#3 = ((byte*))(word/signed word/dword/signed dword) $4000+(const dword) PLANE_HORISONTAL2#0&(word/signed word/dword/signed dword) $3fff [phi:gfx_init_plane_horisontal2->gfx_init_plane_horisontal2::@1#0] -- pbuz1=pbuc1 lda #<$4000+(PLANE_HORISONTAL2&$3fff) sta gfxa lda #>$4000+(PLANE_HORISONTAL2&$3fff) @@ -17488,7 +17488,7 @@ gfx_init_plane_horisontal2: { !: //SEG1041 [523] (byte) gfx_init_plane_horisontal2::ax#1 ← ++ (byte) gfx_init_plane_horisontal2::ax#2 -- vbuz1=_inc_vbuz1 inc ax - //SEG1042 [524] if((byte) gfx_init_plane_horisontal2::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_plane_horisontal2::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG1042 [524] if((byte) gfx_init_plane_horisontal2::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_plane_horisontal2::@2 -- vbuz1_neq_vbuc1_then_la1 lda ax cmp #$28 bne b2_from_b2 @@ -17497,7 +17497,7 @@ gfx_init_plane_horisontal2: { b3: //SEG1044 [525] (byte) gfx_init_plane_horisontal2::ay#1 ← ++ (byte) gfx_init_plane_horisontal2::ay#4 -- vbuz1=_inc_vbuz1 inc ay - //SEG1045 [526] if((byte) gfx_init_plane_horisontal2::ay#1!=(byte/word/signed word/dword/signed dword) 200) goto gfx_init_plane_horisontal2::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1045 [526] if((byte) gfx_init_plane_horisontal2::ay#1!=(byte/word/signed word/dword/signed dword) $c8) goto gfx_init_plane_horisontal2::@1 -- vbuz1_neq_vbuc1_then_la1 lda ay cmp #$c8 bne b1_from_b3 @@ -17509,7 +17509,7 @@ gfx_init_plane_horisontal2: { //SEG1048 [528] call dtvSetCpuBankSegment1 //SEG1049 [505] phi from gfx_init_plane_horisontal2::@4 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_horisontal2::@4->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from_b4: - //SEG1050 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_horisontal2::@4->dtvSetCpuBankSegment1#0] -- vbuz1=vbuc1 + //SEG1050 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_horisontal2::@4->dtvSetCpuBankSegment1#0] -- vbuz1=vbuc1 lda #$4000/$4000 sta dtvSetCpuBankSegment1.cpuBankIdx jsr dtvSetCpuBankSegment1 @@ -17539,7 +17539,7 @@ gfx_init_plane_vertical: { //SEG1058 [532] phi (byte) gfx_init_plane_vertical::by#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:gfx_init_plane_vertical->gfx_init_plane_vertical::@1#0] -- vbuz1=vbuc1 lda #0 sta by - //SEG1059 [532] phi (byte*) gfx_init_plane_vertical::gfxb#3 = ((byte*))(word/signed word/dword/signed dword) 16384+(const dword) PLANE_VERTICAL#0&(word/signed word/dword/signed dword) 16383 [phi:gfx_init_plane_vertical->gfx_init_plane_vertical::@1#1] -- pbuz1=pbuc1 + //SEG1059 [532] phi (byte*) gfx_init_plane_vertical::gfxb#3 = ((byte*))(word/signed word/dword/signed dword) $4000+(const dword) PLANE_VERTICAL#0&(word/signed word/dword/signed dword) $3fff [phi:gfx_init_plane_vertical->gfx_init_plane_vertical::@1#1] -- pbuz1=pbuc1 lda #<$4000+(PLANE_VERTICAL&$3fff) sta gfxb lda #>$4000+(PLANE_VERTICAL&$3fff) @@ -17566,7 +17566,7 @@ gfx_init_plane_vertical: { jmp b2 //SEG1070 gfx_init_plane_vertical::@2 b2: - //SEG1071 [534] *((byte*) gfx_init_plane_vertical::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuz1=vbuc1 + //SEG1071 [534] *((byte*) gfx_init_plane_vertical::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $f -- _deref_pbuz1=vbuc1 lda #$f ldy #0 sta (gfxb),y @@ -17577,7 +17577,7 @@ gfx_init_plane_vertical: { !: //SEG1073 [536] (byte) gfx_init_plane_vertical::bx#1 ← ++ (byte) gfx_init_plane_vertical::bx#2 -- vbuz1=_inc_vbuz1 inc bx - //SEG1074 [537] if((byte) gfx_init_plane_vertical::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_plane_vertical::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG1074 [537] if((byte) gfx_init_plane_vertical::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_plane_vertical::@2 -- vbuz1_neq_vbuc1_then_la1 lda bx cmp #$28 bne b2_from_b2 @@ -17586,7 +17586,7 @@ gfx_init_plane_vertical: { b3: //SEG1076 [538] (byte) gfx_init_plane_vertical::by#1 ← ++ (byte) gfx_init_plane_vertical::by#4 -- vbuz1=_inc_vbuz1 inc by - //SEG1077 [539] if((byte) gfx_init_plane_vertical::by#1!=(byte/word/signed word/dword/signed dword) 200) goto gfx_init_plane_vertical::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1077 [539] if((byte) gfx_init_plane_vertical::by#1!=(byte/word/signed word/dword/signed dword) $c8) goto gfx_init_plane_vertical::@1 -- vbuz1_neq_vbuc1_then_la1 lda by cmp #$c8 bne b1_from_b3 @@ -17598,7 +17598,7 @@ gfx_init_plane_vertical: { //SEG1080 [541] call dtvSetCpuBankSegment1 //SEG1081 [505] phi from gfx_init_plane_vertical::@4 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_vertical::@4->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from_b4: - //SEG1082 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_vertical::@4->dtvSetCpuBankSegment1#0] -- vbuz1=vbuc1 + //SEG1082 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_vertical::@4->dtvSetCpuBankSegment1#0] -- vbuz1=vbuc1 lda #$4000/$4000 sta dtvSetCpuBankSegment1.cpuBankIdx jsr dtvSetCpuBankSegment1 @@ -17625,7 +17625,7 @@ gfx_init_plane_horisontal: { jsr dtvSetCpuBankSegment1 //SEG1089 [545] phi from gfx_init_plane_horisontal to gfx_init_plane_horisontal::@1 [phi:gfx_init_plane_horisontal->gfx_init_plane_horisontal::@1] b1_from_gfx_init_plane_horisontal: - //SEG1090 [545] phi (byte*) gfx_init_plane_horisontal::gfxa#6 = ((byte*))(word/signed word/dword/signed dword) 16384+(const dword) PLANE_HORISONTAL#0&(word/signed word/dword/signed dword) 16383 [phi:gfx_init_plane_horisontal->gfx_init_plane_horisontal::@1#0] -- pbuz1=pbuc1 + //SEG1090 [545] phi (byte*) gfx_init_plane_horisontal::gfxa#6 = ((byte*))(word/signed word/dword/signed dword) $4000+(const dword) PLANE_HORISONTAL#0&(word/signed word/dword/signed dword) $3fff [phi:gfx_init_plane_horisontal->gfx_init_plane_horisontal::@1#0] -- pbuz1=pbuc1 lda #<$4000+(PLANE_HORISONTAL&$3fff) sta gfxa lda #>$4000+(PLANE_HORISONTAL&$3fff) @@ -17666,7 +17666,7 @@ gfx_init_plane_horisontal: { jmp b5 //SEG1105 gfx_init_plane_horisontal::@5 b5: - //SEG1106 [549] *((byte*) gfx_init_plane_horisontal::gfxa#3) ← (byte/word/signed word/dword/signed dword) 255 -- _deref_pbuz1=vbuc1 + //SEG1106 [549] *((byte*) gfx_init_plane_horisontal::gfxa#3) ← (byte/word/signed word/dword/signed dword) $ff -- _deref_pbuz1=vbuc1 lda #$ff ldy #0 sta (gfxa),y @@ -17684,7 +17684,7 @@ gfx_init_plane_horisontal: { b4: //SEG1111 [552] (byte) gfx_init_plane_horisontal::ax#1 ← ++ (byte) gfx_init_plane_horisontal::ax#2 -- vbuz1=_inc_vbuz1 inc ax - //SEG1112 [553] if((byte) gfx_init_plane_horisontal::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_plane_horisontal::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG1112 [553] if((byte) gfx_init_plane_horisontal::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_plane_horisontal::@2 -- vbuz1_neq_vbuc1_then_la1 lda ax cmp #$28 bne b2_from_b4 @@ -17693,7 +17693,7 @@ gfx_init_plane_horisontal: { b7: //SEG1114 [554] (byte) gfx_init_plane_horisontal::ay#1 ← ++ (byte) gfx_init_plane_horisontal::ay#4 -- vbuz1=_inc_vbuz1 inc ay - //SEG1115 [555] if((byte) gfx_init_plane_horisontal::ay#1!=(byte/word/signed word/dword/signed dword) 200) goto gfx_init_plane_horisontal::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1115 [555] if((byte) gfx_init_plane_horisontal::ay#1!=(byte/word/signed word/dword/signed dword) $c8) goto gfx_init_plane_horisontal::@1 -- vbuz1_neq_vbuc1_then_la1 lda ay cmp #$c8 bne b1_from_b7 @@ -17705,7 +17705,7 @@ gfx_init_plane_horisontal: { //SEG1118 [557] call dtvSetCpuBankSegment1 //SEG1119 [505] phi from gfx_init_plane_horisontal::@8 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_horisontal::@8->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from_b8: - //SEG1120 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_horisontal::@8->dtvSetCpuBankSegment1#0] -- vbuz1=vbuc1 + //SEG1120 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_horisontal::@8->dtvSetCpuBankSegment1#0] -- vbuz1=vbuc1 lda #$4000/$4000 sta dtvSetCpuBankSegment1.cpuBankIdx jsr dtvSetCpuBankSegment1 @@ -17761,7 +17761,7 @@ gfx_init_plane_charset8: { //SEG1134 [564] phi (byte) gfx_init_plane_charset8::col#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#1] -- vbuz1=vbuc1 lda #0 sta col - //SEG1135 [564] phi (byte*) gfx_init_plane_charset8::gfxa#6 = ((byte*))(word/signed word/dword/signed dword) 16384+(const dword) PLANE_CHARSET8#0&(word/signed word/dword/signed dword) 16383 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#2] -- pbuz1=pbuc1 + //SEG1135 [564] phi (byte*) gfx_init_plane_charset8::gfxa#6 = ((byte*))(word/signed word/dword/signed dword) $4000+(const dword) PLANE_CHARSET8#0&(word/signed word/dword/signed dword) $3fff [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#2] -- pbuz1=pbuc1 lda #<$4000+(PLANE_CHARSET8&$3fff) sta gfxa lda #>$4000+(PLANE_CHARSET8&$3fff) @@ -17826,7 +17826,7 @@ gfx_init_plane_charset8: { jmp b3 //SEG1166 gfx_init_plane_charset8::@3 b3: - //SEG1167 [569] (byte~) gfx_init_plane_charset8::$5 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG1167 [569] (byte~) gfx_init_plane_charset8::$5 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) $80 -- vbuz1=vbuz2_band_vbuc1 lda #$80 and bits sta _5 @@ -17898,7 +17898,7 @@ gfx_init_plane_charset8: { //SEG1190 [584] call dtvSetCpuBankSegment1 //SEG1191 [505] phi from gfx_init_plane_charset8::@8 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from_b8: - //SEG1192 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1#0] -- vbuz1=vbuc1 + //SEG1192 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1#0] -- vbuz1=vbuc1 lda #$4000/$4000 sta dtvSetCpuBankSegment1.cpuBankIdx jsr dtvSetCpuBankSegment1 @@ -17920,19 +17920,19 @@ gfx_init_plane_8bppchunky: { //SEG1196 [587] call dtvSetCpuBankSegment1 //SEG1197 [505] phi from gfx_init_plane_8bppchunky to dtvSetCpuBankSegment1 [phi:gfx_init_plane_8bppchunky->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from_gfx_init_plane_8bppchunky: - //SEG1198 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_8bppchunky->dtvSetCpuBankSegment1#0] -- vbuz1=vbuc1 + //SEG1198 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_8bppchunky->dtvSetCpuBankSegment1#0] -- vbuz1=vbuc1 lda #PLANE_8BPP_CHUNKY/$4000 sta dtvSetCpuBankSegment1.cpuBankIdx jsr dtvSetCpuBankSegment1 //SEG1199 [588] phi from gfx_init_plane_8bppchunky to gfx_init_plane_8bppchunky::@1 [phi:gfx_init_plane_8bppchunky->gfx_init_plane_8bppchunky::@1] b1_from_gfx_init_plane_8bppchunky: - //SEG1200 [588] phi (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#7 = ++((byte))(const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_8bppchunky->gfx_init_plane_8bppchunky::@1#0] -- vbuz1=vbuc1 + //SEG1200 [588] phi (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#7 = ++((byte))(const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_8bppchunky->gfx_init_plane_8bppchunky::@1#0] -- vbuz1=vbuc1 lda #PLANE_8BPP_CHUNKY/$4000+1 sta gfxbCpuBank //SEG1201 [588] phi (byte) gfx_init_plane_8bppchunky::y#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:gfx_init_plane_8bppchunky->gfx_init_plane_8bppchunky::@1#1] -- vbuz1=vbuc1 lda #0 sta y - //SEG1202 [588] phi (byte*) gfx_init_plane_8bppchunky::gfxb#5 = ((byte*))(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_8bppchunky->gfx_init_plane_8bppchunky::@1#2] -- pbuz1=pbuc1 + //SEG1202 [588] phi (byte*) gfx_init_plane_8bppchunky::gfxb#5 = ((byte*))(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_8bppchunky->gfx_init_plane_8bppchunky::@1#2] -- pbuz1=pbuc1 lda #<$4000 sta gfxb lda #>$4000 @@ -17964,7 +17964,7 @@ gfx_init_plane_8bppchunky: { jmp b2 //SEG1216 gfx_init_plane_8bppchunky::@2 b2: - //SEG1217 [590] if((byte*) gfx_init_plane_8bppchunky::gfxb#3!=(word/dword/signed dword) 32768) goto gfx_init_plane_8bppchunky::@3 -- pbuz1_neq_vwuc1_then_la1 + //SEG1217 [590] if((byte*) gfx_init_plane_8bppchunky::gfxb#3!=(word/dword/signed dword) $8000) goto gfx_init_plane_8bppchunky::@3 -- pbuz1_neq_vwuc1_then_la1 lda gfxb+1 cmp #>$8000 bne b3_from_b2 @@ -17990,7 +17990,7 @@ gfx_init_plane_8bppchunky: { //SEG1225 [594] phi from gfx_init_plane_8bppchunky::@8 to gfx_init_plane_8bppchunky::@3 [phi:gfx_init_plane_8bppchunky::@8->gfx_init_plane_8bppchunky::@3] b3_from_b8: //SEG1226 [594] phi (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#8 = (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#2 [phi:gfx_init_plane_8bppchunky::@8->gfx_init_plane_8bppchunky::@3#0] -- register_copy - //SEG1227 [594] phi (byte*) gfx_init_plane_8bppchunky::gfxb#4 = ((byte*))(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_8bppchunky::@8->gfx_init_plane_8bppchunky::@3#1] -- pbuz1=pbuc1 + //SEG1227 [594] phi (byte*) gfx_init_plane_8bppchunky::gfxb#4 = ((byte*))(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_8bppchunky::@8->gfx_init_plane_8bppchunky::@3#1] -- pbuz1=pbuc1 lda #<$4000 sta gfxb lda #>$4000 @@ -18028,7 +18028,7 @@ gfx_init_plane_8bppchunky: { bne !+ inc x+1 !: - //SEG1237 [600] if((word) gfx_init_plane_8bppchunky::x#1!=(word/signed word/dword/signed dword) 320) goto gfx_init_plane_8bppchunky::@2 -- vwuz1_neq_vwuc1_then_la1 + //SEG1237 [600] if((word) gfx_init_plane_8bppchunky::x#1!=(word/signed word/dword/signed dword) $140) goto gfx_init_plane_8bppchunky::@2 -- vwuz1_neq_vwuc1_then_la1 lda x+1 cmp #>$140 bne b2_from_b3 @@ -18040,7 +18040,7 @@ gfx_init_plane_8bppchunky: { b5: //SEG1239 [601] (byte) gfx_init_plane_8bppchunky::y#1 ← ++ (byte) gfx_init_plane_8bppchunky::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG1240 [602] if((byte) gfx_init_plane_8bppchunky::y#1!=(byte/word/signed word/dword/signed dword) 200) goto gfx_init_plane_8bppchunky::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1240 [602] if((byte) gfx_init_plane_8bppchunky::y#1!=(byte/word/signed word/dword/signed dword) $c8) goto gfx_init_plane_8bppchunky::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$c8 bne b1_from_b5 @@ -18052,7 +18052,7 @@ gfx_init_plane_8bppchunky: { //SEG1243 [604] call dtvSetCpuBankSegment1 //SEG1244 [505] phi from gfx_init_plane_8bppchunky::@6 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_8bppchunky::@6->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from_b6: - //SEG1245 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_8bppchunky::@6->dtvSetCpuBankSegment1#0] -- vbuz1=vbuc1 + //SEG1245 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_8bppchunky::@6->dtvSetCpuBankSegment1#0] -- vbuz1=vbuc1 lda #$4000/$4000 sta dtvSetCpuBankSegment1.cpuBankIdx jsr dtvSetCpuBankSegment1 @@ -18527,13 +18527,13 @@ bitmap_plot: { .label plotter_y = $146 .label x = $67 .label y = $68 - //SEG1424 [697] (word) bitmap_plot::plotter_x#0 ← *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) -- vwuz1=pbuc1_derefidx_vbuz2_word_pbuc2_derefidx_vbuz2 + //SEG1424 [697] (word) bitmap_plot::plotter_x#0 ← *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) -- vwuz1=pbuc1_derefidx_vbuz2_word_pbuc2_derefidx_vbuz2 ldy x lda bitmap_plot_xhi,y sta plotter_x+1 lda bitmap_plot_xlo,y sta plotter_x - //SEG1425 [698] (word) bitmap_plot::plotter_y#0 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) -- vwuz1=pbuc1_derefidx_vbuz2_word_pbuc2_derefidx_vbuz2 + //SEG1425 [698] (word) bitmap_plot::plotter_y#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) -- vwuz1=pbuc1_derefidx_vbuz2_word_pbuc2_derefidx_vbuz2 ldy y lda bitmap_plot_yhi,y sta plotter_y+1 @@ -18547,7 +18547,7 @@ bitmap_plot: { lda plotter_x+1 adc plotter_y+1 sta _0+1 - //SEG1427 [700] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) -- vbuz1=_deref_pbuz2_bor_pbuc1_derefidx_vbuz3 + //SEG1427 [700] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) -- vbuz1=_deref_pbuz2_bor_pbuc1_derefidx_vbuz3 ldy #0 lda (_0),y ldy x @@ -18813,7 +18813,7 @@ bitmap_clear: { .label x = $7e .label y = $7b .label _3 = $14e - //SEG1516 [748] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_xhi#0) w= *((const byte[256]) bitmap_plot_xlo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 + //SEG1516 [748] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_xhi#0) w= *((const byte[$100]) bitmap_plot_xlo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 lda bitmap_plot_xlo sta _3 lda bitmap_plot_xhi @@ -18862,7 +18862,7 @@ bitmap_clear: { !: //SEG1534 [754] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG1535 [755] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) 200) goto bitmap_clear::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG1535 [755] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) $c8) goto bitmap_clear::@2 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #$c8 bne b2_from_b2 @@ -18871,7 +18871,7 @@ bitmap_clear: { b3: //SEG1537 [756] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 -- vbuz1=_inc_vbuz1 inc y - //SEG1538 [757] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1538 [757] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$28 bne b1_from_b3 @@ -18896,7 +18896,7 @@ bitmap_init: { .label yoffs = $82 //SEG1542 [760] phi from bitmap_init to bitmap_init::@1 [phi:bitmap_init->bitmap_init::@1] b1_from_bitmap_init: - //SEG1543 [760] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init->bitmap_init::@1#0] -- vbuz1=vbuc1 + //SEG1543 [760] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init->bitmap_init::@1#0] -- vbuz1=vbuc1 lda #$80 sta bits //SEG1544 [760] phi (byte) bitmap_init::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:bitmap_init->bitmap_init::@1#1] -- vbuz1=vbuc1 @@ -18910,19 +18910,19 @@ bitmap_init: { jmp b1 //SEG1548 bitmap_init::@1 b1: - //SEG1549 [761] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) 248 -- vbuz1=vbuz2_band_vbuc1 + //SEG1549 [761] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) $f8 -- vbuz1=vbuz2_band_vbuc1 lda #$f8 and x sta _0 - //SEG1550 [762] *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG1550 [762] *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 -- pbuc1_derefidx_vbuz1=vbuz2 lda _0 ldy x sta bitmap_plot_xlo,y - //SEG1551 [763] *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) VIC_BITMAP#0 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG1551 [763] *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) VIC_BITMAP#0 -- pbuc1_derefidx_vbuz1=vbuc2 ldy x lda #>VIC_BITMAP sta bitmap_plot_xhi,y - //SEG1552 [764] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG1552 [764] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuz1=vbuz2 lda bits ldy x sta bitmap_plot_bit,y @@ -18934,7 +18934,7 @@ bitmap_init: { bne b10_from_b1 //SEG1555 [767] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2] b2_from_b1: - //SEG1556 [767] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuz1=vbuc1 + //SEG1556 [767] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuz1=vbuc1 lda #$80 sta bits jmp b2 @@ -18975,14 +18975,14 @@ bitmap_init: { lda _6 ora _7 sta _8 - //SEG1570 [774] *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG1570 [774] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 -- pbuc1_derefidx_vbuz1=vbuz2 lda _8 ldy y sta bitmap_plot_ylo,y //SEG1571 [775] (byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2 -- vbuz1=_hi_pbuz2 lda yoffs+1 sta _9 - //SEG1572 [776] *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG1572 [776] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 -- pbuc1_derefidx_vbuz1=vbuz2 lda _9 ldy y sta bitmap_plot_yhi,y @@ -18997,7 +18997,7 @@ bitmap_init: { jmp b7 //SEG1575 bitmap_init::@7 b7: - //SEG1576 [779] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 + //SEG1576 [779] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 clc lda yoffs adc #<$28*8 @@ -19039,7 +19039,7 @@ gfx_init_charset: { .label chargen = $85 .label l = $89 .label c = $84 - //SEG1589 [785] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- _deref_pbuc1=vbuc2 + //SEG1589 [785] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 -- _deref_pbuc1=vbuc2 lda #$32 sta PROCPORT //SEG1590 [786] phi from gfx_init_charset to gfx_init_charset::@1 [phi:gfx_init_charset->gfx_init_charset::@1] @@ -19115,7 +19115,7 @@ gfx_init_charset: { jmp b4 //SEG1616 gfx_init_charset::@4 b4: - //SEG1617 [795] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 -- _deref_pbuc1=vbuc2 + //SEG1617 [795] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 -- _deref_pbuc1=vbuc2 lda #$37 sta PROCPORT jmp breturn @@ -19173,7 +19173,7 @@ gfx_init_screen4: { !: //SEG1637 [802] (byte) gfx_init_screen4::cx#1 ← ++ (byte) gfx_init_screen4::cx#2 -- vbuz1=_inc_vbuz1 inc cx - //SEG1638 [803] if((byte) gfx_init_screen4::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen4::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG1638 [803] if((byte) gfx_init_screen4::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen4::@2 -- vbuz1_neq_vbuc1_then_la1 lda cx cmp #$28 bne b2_from_b2 @@ -19182,7 +19182,7 @@ gfx_init_screen4: { b3: //SEG1640 [804] (byte) gfx_init_screen4::cy#1 ← ++ (byte) gfx_init_screen4::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1641 [805] if((byte) gfx_init_screen4::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen4::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1641 [805] if((byte) gfx_init_screen4::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen4::@1 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b1_from_b3 @@ -19264,7 +19264,7 @@ gfx_init_screen3: { !: //SEG1665 [816] (byte) gfx_init_screen3::cx#1 ← ++ (byte) gfx_init_screen3::cx#2 -- vbuz1=_inc_vbuz1 inc cx - //SEG1666 [817] if((byte) gfx_init_screen3::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen3::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG1666 [817] if((byte) gfx_init_screen3::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen3::@2 -- vbuz1_neq_vbuc1_then_la1 lda cx cmp #$28 bne b2_from_b2 @@ -19273,7 +19273,7 @@ gfx_init_screen3: { b3: //SEG1668 [818] (byte) gfx_init_screen3::cy#1 ← ++ (byte) gfx_init_screen3::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1669 [819] if((byte) gfx_init_screen3::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen3::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1669 [819] if((byte) gfx_init_screen3::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen3::@1 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b1_from_b3 @@ -19331,11 +19331,11 @@ gfx_init_screen2: { clc adc cy sta _0 - //SEG1688 [825] (byte) gfx_init_screen2::col#0 ← (byte~) gfx_init_screen2::$0 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG1688 [825] (byte) gfx_init_screen2::col#0 ← (byte~) gfx_init_screen2::$0 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and _0 sta col - //SEG1689 [826] (byte) gfx_init_screen2::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) gfx_init_screen2::col#0 -- vbuz1=vbuc1_minus_vbuz2 + //SEG1689 [826] (byte) gfx_init_screen2::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f - (byte) gfx_init_screen2::col#0 -- vbuz1=vbuc1_minus_vbuz2 lda #$f sec sbc col @@ -19362,7 +19362,7 @@ gfx_init_screen2: { !: //SEG1694 [831] (byte) gfx_init_screen2::cx#1 ← ++ (byte) gfx_init_screen2::cx#2 -- vbuz1=_inc_vbuz1 inc cx - //SEG1695 [832] if((byte) gfx_init_screen2::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen2::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG1695 [832] if((byte) gfx_init_screen2::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen2::@2 -- vbuz1_neq_vbuc1_then_la1 lda cx cmp #$28 bne b2_from_b2 @@ -19371,7 +19371,7 @@ gfx_init_screen2: { b3: //SEG1697 [833] (byte) gfx_init_screen2::cy#1 ← ++ (byte) gfx_init_screen2::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1698 [834] if((byte) gfx_init_screen2::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen2::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1698 [834] if((byte) gfx_init_screen2::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen2::@1 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b1_from_b3 @@ -19426,7 +19426,7 @@ gfx_init_screen1: { clc adc cy sta _0 - //SEG1717 [840] (byte~) gfx_init_screen1::$1 ← (byte~) gfx_init_screen1::$0 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG1717 [840] (byte~) gfx_init_screen1::$1 ← (byte~) gfx_init_screen1::$0 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and _0 sta _1 @@ -19441,7 +19441,7 @@ gfx_init_screen1: { !: //SEG1720 [843] (byte) gfx_init_screen1::cx#1 ← ++ (byte) gfx_init_screen1::cx#2 -- vbuz1=_inc_vbuz1 inc cx - //SEG1721 [844] if((byte) gfx_init_screen1::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen1::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG1721 [844] if((byte) gfx_init_screen1::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen1::@2 -- vbuz1_neq_vbuc1_then_la1 lda cx cmp #$28 bne b2_from_b2 @@ -19450,7 +19450,7 @@ gfx_init_screen1: { b3: //SEG1723 [845] (byte) gfx_init_screen1::cy#1 ← ++ (byte) gfx_init_screen1::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1724 [846] if((byte) gfx_init_screen1::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen1::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1724 [846] if((byte) gfx_init_screen1::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen1::@1 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b1_from_b3 @@ -19502,7 +19502,7 @@ gfx_init_screen0: { jmp b2 //SEG1741 gfx_init_screen0::@2 b2: - //SEG1742 [851] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG1742 [851] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and cy sta _0 @@ -19513,7 +19513,7 @@ gfx_init_screen0: { asl asl sta _1 - //SEG1744 [853] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG1744 [853] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and cx sta _2 @@ -19532,7 +19532,7 @@ gfx_init_screen0: { !: //SEG1748 [857] (byte) gfx_init_screen0::cx#1 ← ++ (byte) gfx_init_screen0::cx#2 -- vbuz1=_inc_vbuz1 inc cx - //SEG1749 [858] if((byte) gfx_init_screen0::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen0::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG1749 [858] if((byte) gfx_init_screen0::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen0::@2 -- vbuz1_neq_vbuc1_then_la1 lda cx cmp #$28 bne b2_from_b2 @@ -19541,7 +19541,7 @@ gfx_init_screen0: { b3: //SEG1751 [859] (byte) gfx_init_screen0::cy#1 ← ++ (byte) gfx_init_screen0::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1752 [860] if((byte) gfx_init_screen0::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen0::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1752 [860] if((byte) gfx_init_screen0::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen0::@1 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b1_from_b3 @@ -19554,7 +19554,7 @@ gfx_init_screen0: { //SEG1755 keyboard_init // Initialize keyboard reading by setting CIA#$ Data Direction Registers keyboard_init: { - //SEG1756 [862] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 -- _deref_pbuc1=vbuc2 + //SEG1756 [862] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) $ff -- _deref_pbuc1=vbuc2 // Keyboard Matrix Columns Write Mode lda #$ff sta CIA1_PORT_A_DDR @@ -19681,10 +19681,10 @@ Statement [88] (byte~) gfx_mode::$55 ← *((const byte*) form_b_mod_hi#0) << (by Statement [89] (byte~) gfx_mode::$56 ← (byte~) gfx_mode::$55 | *((const byte*) form_b_mod_lo#0) [ keyboard_events_size#24 gfx_mode::$56 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::$56 ] ) always clobbers reg byte a Statement [91] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ keyboard_events_size#24 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 ] ) always clobbers reg byte a Statement [92] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_events_size#24 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 ] ) always clobbers reg byte a -Statement [93] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) VIC_SCREEN0#0/(word/signed word/dword/signed dword) 16384 [ keyboard_events_size#24 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 ] ) always clobbers reg byte a +Statement [93] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) VIC_SCREEN0#0/(word/signed word/dword/signed dword) $4000 [ keyboard_events_size#24 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 ] ) always clobbers reg byte a Statement [96] (byte*) get_vic_screen::return#10 ← (byte*) get_vic_screen::return#5 [ keyboard_events_size#24 get_vic_screen::return#10 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 get_vic_screen::return#10 ] ) always clobbers reg byte a Statement [97] (byte*~) gfx_mode::$61 ← (byte*) get_vic_screen::return#10 [ keyboard_events_size#24 gfx_mode::$61 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::$61 ] ) always clobbers reg byte a -Statement [98] (word~) gfx_mode::$63 ← (word)(byte*~) gfx_mode::$61 & (word/signed word/dword/signed dword) 16383 [ keyboard_events_size#24 gfx_mode::$63 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::$63 ] ) always clobbers reg byte a +Statement [98] (word~) gfx_mode::$63 ← (word)(byte*~) gfx_mode::$61 & (word/signed word/dword/signed dword) $3fff [ keyboard_events_size#24 gfx_mode::$63 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::$63 ] ) always clobbers reg byte a Statement [99] (word~) gfx_mode::$64 ← (word~) gfx_mode::$63 >> (byte/signed byte/word/signed word/dword/signed dword) 6 [ keyboard_events_size#24 gfx_mode::$64 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::$64 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:31 [ form_cursor_count#21 form_cursor_count#1 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:32 [ form_field_idx#28 form_field_idx#1 form_field_idx#18 form_field_idx#32 form_field_idx#44 form_field_idx#45 ] @@ -19693,7 +19693,7 @@ Statement [100] (byte~) gfx_mode::$65 ← ((byte)) (word~) gfx_mode::$64 [ keybo Statement [103] (byte*) get_vic_charset::return#4 ← (byte*) get_vic_charset::return#2 [ keyboard_events_size#24 gfx_mode::$65 get_vic_charset::return#4 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::$65 get_vic_charset::return#4 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:220 [ gfx_mode::$65 ] Statement [104] (byte*~) gfx_mode::$66 ← (byte*) get_vic_charset::return#4 [ keyboard_events_size#24 gfx_mode::$65 gfx_mode::$66 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::$65 gfx_mode::$66 ] ) always clobbers reg byte a -Statement [105] (word~) gfx_mode::$68 ← (word)(byte*~) gfx_mode::$66 & (word/signed word/dword/signed dword) 16383 [ keyboard_events_size#24 gfx_mode::$65 gfx_mode::$68 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::$65 gfx_mode::$68 ] ) always clobbers reg byte a +Statement [105] (word~) gfx_mode::$68 ← (word)(byte*~) gfx_mode::$66 & (word/signed word/dword/signed dword) $3fff [ keyboard_events_size#24 gfx_mode::$65 gfx_mode::$68 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::$65 gfx_mode::$68 ] ) always clobbers reg byte a Statement [106] (byte~) gfx_mode::$69 ← > (word~) gfx_mode::$68 [ keyboard_events_size#24 gfx_mode::$65 gfx_mode::$69 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::$65 gfx_mode::$69 ] ) always clobbers reg byte a Statement [107] (byte~) gfx_mode::$70 ← (byte~) gfx_mode::$69 >> (byte/signed byte/word/signed word/dword/signed dword) 2 [ keyboard_events_size#24 gfx_mode::$65 gfx_mode::$70 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::$65 gfx_mode::$70 ] ) always clobbers reg byte a Statement [112] (byte*) get_vic_screen::return#11 ← (byte*) get_vic_screen::return#5 [ keyboard_events_size#24 get_vic_screen::return#11 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 get_vic_screen::return#11 ] ) always clobbers reg byte a @@ -19713,8 +19713,8 @@ Statement [131] (byte~) gfx_mode::$80 ← (byte~) gfx_mode::$79 | *((const byte* Statement [133] (byte~) gfx_mode::$81 ← *((const byte*) form_vic_bg3_hi#0) << (byte/signed byte/word/signed word/dword/signed dword) 4 [ keyboard_events_size#24 gfx_mode::$81 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::$81 ] ) always clobbers reg byte a Statement [134] (byte~) gfx_mode::$82 ← (byte~) gfx_mode::$81 | *((const byte*) form_vic_bg3_lo#0) [ keyboard_events_size#24 gfx_mode::$82 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::$82 ] ) always clobbers reg byte a Statement [136] if(*((const byte*) form_dtv_palet#0)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_mode::@15 [ keyboard_events_size#24 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 ] ) always clobbers reg byte a -Statement [141] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto gfx_mode::@19 [ keyboard_events_size#24 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 ] ) always clobbers reg byte a -Statement [151] *((const byte*) DTV_PALETTE#0 + (byte) gfx_mode::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) gfx_mode::i#2) [ keyboard_events_size#24 gfx_mode::i#2 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::i#2 ] ) always clobbers reg byte a +Statement [141] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto gfx_mode::@19 [ keyboard_events_size#24 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 ] ) always clobbers reg byte a +Statement [151] *((const byte*) DTV_PALETTE#0 + (byte) gfx_mode::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) gfx_mode::i#2) [ keyboard_events_size#24 gfx_mode::i#2 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::i#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:12 [ gfx_mode::i#2 gfx_mode::i#1 ] Statement [166] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ keyboard_event_scan::row#2 keyboard_events_size#118 keyboard_event_scan::keycode#1 ] ( main:2::gfx_mode:15::keyboard_event_scan:143 [ form_cursor_count#16 form_field_idx#18 keyboard_event_scan::row#2 keyboard_events_size#118 keyboard_event_scan::keycode#1 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_events_size#118 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:14 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] @@ -19730,7 +19730,7 @@ Statement [198] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan: Statement [201] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#18 keyboard_event_scan::event_type#0 ] ( main:2::gfx_mode:15::keyboard_event_scan:143 [ form_cursor_count#16 form_field_idx#18 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#18 keyboard_event_scan::event_type#0 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#18 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a Statement [203] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#18) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#18 ] ( main:2::gfx_mode:15::keyboard_event_scan:143 [ form_cursor_count#16 form_field_idx#18 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#18 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#18 ] ) always clobbers reg byte a Statement [209] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#119 ] ( main:2::gfx_mode:15::keyboard_event_scan:143 [ form_cursor_count#16 form_field_idx#18 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#119 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#119 ] ) always clobbers reg byte a -Statement [210] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#18 keyboard_event_scan::$11 ] ( main:2::gfx_mode:15::keyboard_event_scan:143 [ form_cursor_count#16 form_field_idx#18 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#18 keyboard_event_scan::$11 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#18 keyboard_event_scan::$11 ] ) always clobbers reg byte a +Statement [210] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) $40 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#18 keyboard_event_scan::$11 ] ( main:2::gfx_mode:15::keyboard_event_scan:143 [ form_cursor_count#16 form_field_idx#18 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#18 keyboard_event_scan::$11 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#18 keyboard_event_scan::$11 ] ) always clobbers reg byte a Statement [214] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#4 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] ( main:2::gfx_mode:15::keyboard_event_scan:143::keyboard_event_pressed:171 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#100 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375::keyboard_event_pressed:171 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_events_size#100 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::gfx_mode:15::keyboard_event_scan:143::keyboard_event_pressed:177 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#100 keyboard_modifiers#18 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375::keyboard_event_pressed:177 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_events_size#100 keyboard_modifiers#18 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::gfx_mode:15::keyboard_event_scan:143::keyboard_event_pressed:183 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375::keyboard_event_pressed:183 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::gfx_mode:15::keyboard_event_scan:143::keyboard_event_pressed:189 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375::keyboard_event_pressed:189 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:19 [ keyboard_event_pressed::keycode#4 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:15 [ keyboard_modifiers#21 keyboard_modifiers#20 keyboard_modifiers#4 keyboard_modifiers#19 keyboard_modifiers#3 keyboard_modifiers#18 keyboard_modifiers#5 ] @@ -19739,23 +19739,23 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:259 [ Statement [217] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#10 ] ( main:2::gfx_mode:15::keyboard_event_scan:143::keyboard_event_pressed:171 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#100 keyboard_event_pressed::return#10 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375::keyboard_event_pressed:171 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_events_size#100 keyboard_event_pressed::return#10 ] main:2::gfx_mode:15::keyboard_event_scan:143::keyboard_event_pressed:177 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#100 keyboard_modifiers#18 keyboard_event_pressed::return#10 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375::keyboard_event_pressed:177 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_events_size#100 keyboard_modifiers#18 keyboard_event_pressed::return#10 ] main:2::gfx_mode:15::keyboard_event_scan:143::keyboard_event_pressed:183 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::return#10 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375::keyboard_event_pressed:183 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::return#10 ] main:2::gfx_mode:15::keyboard_event_scan:143::keyboard_event_pressed:189 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::return#10 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375::keyboard_event_pressed:189 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::return#10 ] ) always clobbers reg byte a Statement [219] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::gfx_mode:15::keyboard_event_scan:143::keyboard_matrix_read:162 [ form_cursor_count#16 form_field_idx#18 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#118 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375::keyboard_matrix_read:162 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#118 ] ) always clobbers reg byte a Statement [220] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::gfx_mode:15::keyboard_event_scan:143::keyboard_matrix_read:162 [ form_cursor_count#16 form_field_idx#18 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#118 keyboard_matrix_read::return#0 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375::keyboard_matrix_read:162 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#118 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a -Statement [272] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) FORM_CHARSET#0/(dword/signed dword) 65536 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a -Statement [273] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a -Statement [274] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a +Statement [272] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) FORM_CHARSET#0/(dword/signed dword) $10000 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a +Statement [273] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a +Statement [274] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a Statement [275] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a -Statement [276] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) FORM_CHARSET#0/(word/signed word/dword/signed dword) 16384 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a +Statement [276] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) FORM_CHARSET#0/(word/signed word/dword/signed dword) $4000 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a Statement [277] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a Statement [278] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a Statement [279] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a -Statement [280] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) FORM_SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) FORM_CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a +Statement [280] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) FORM_SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) FORM_CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a Statement [281] *((const byte*) DTV_PLANEA_START_LO#0) ← <(const byte*) FORM_SCREEN#0 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a Statement [282] *((const byte*) DTV_PLANEA_START_MI#0) ← >(const byte*) FORM_SCREEN#0 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a Statement [283] *((const byte*) DTV_PLANEA_START_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a -Statement [285] *((const byte*) DTV_PALETTE#0 + (byte) form_mode::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) form_mode::i#2) [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_mode::i#2 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_mode::i#2 ] ) always clobbers reg byte a +Statement [285] *((const byte*) DTV_PALETTE#0 + (byte) form_mode::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) form_mode::i#2) [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_mode::i#2 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_mode::i#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:30 [ form_mode::i#2 form_mode::i#1 ] Statement [288] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a Statement [289] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a -Statement [292] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto form_mode::@5 [ keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_mode::preset_current#6 ] ( main:2::form_mode:13 [ keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_mode::preset_current#6 ] ) always clobbers reg byte a +Statement [292] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto form_mode::@5 [ keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_mode::preset_current#6 ] ( main:2::form_mode:13 [ keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_mode::preset_current#6 ] ) always clobbers reg byte a Statement [320] (byte*) print_str_at::str#1 ← (byte*) render_preset_name::name#13 [ print_str_at::str#1 ] ( main:2::form_mode:13::render_preset_name:271 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_at::str#1 ] main:2::form_mode:13::render_preset_name:305 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 print_str_at::str#1 ] ) always clobbers reg byte a Statement [325] if(*((byte*) print_str_at::str#2)!=(byte) '@') goto print_str_at::@2 [ print_str_at::str#2 print_str_at::at#2 ] ( main:2::form_mode:13::render_preset_name:271::print_str_at:321 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_at::str#2 print_str_at::at#2 ] main:2::form_mode:13::render_preset_name:305::print_str_at:321 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 print_str_at::str#2 print_str_at::at#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:33 [ form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 ] @@ -19765,7 +19765,7 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:41 [ f Statement [335] (byte*) form_render_values::field#0 ← (byte*) form_field_ptr::return#2 [ form_render_values::idx#2 form_render_values::field#0 ] ( main:2::form_mode:13::form_render_values:269 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_render_values::idx#2 form_render_values::field#0 ] main:2::form_mode:13::form_render_values:303 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 form_render_values::idx#2 form_render_values::field#0 ] ) always clobbers reg byte a Statement [336] *((byte*) form_render_values::field#0) ← *((const byte[]) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_render_values::idx#2)) [ form_render_values::idx#2 ] ( main:2::form_mode:13::form_render_values:269 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_render_values::idx#2 ] main:2::form_mode:13::form_render_values:303 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 form_render_values::idx#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:41 [ form_render_values::idx#2 form_render_values::idx#1 ] -Statement [342] (word~) form_field_ptr::$2 ← *((const byte[25]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[25]) form_line_lo#0 + (byte) form_field_ptr::y#0) [ form_field_ptr::field_idx#2 form_field_ptr::$2 ] ( main:2::form_mode:13::form_render_values:269::form_field_ptr:333 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::$2 ] main:2::form_mode:13::form_render_values:303::form_field_ptr:333 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::$2 ] main:2::form_mode:13::form_control:294::form_field_ptr:365 [ form_mode::preset_current#6 keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_field_ptr::field_idx#2 form_field_ptr::$2 ] ) always clobbers reg byte a +Statement [342] (word~) form_field_ptr::$2 ← *((const byte[$19]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[$19]) form_line_lo#0 + (byte) form_field_ptr::y#0) [ form_field_ptr::field_idx#2 form_field_ptr::$2 ] ( main:2::form_mode:13::form_render_values:269::form_field_ptr:333 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::$2 ] main:2::form_mode:13::form_render_values:303::form_field_ptr:333 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::$2 ] main:2::form_mode:13::form_control:294::form_field_ptr:365 [ form_mode::preset_current#6 keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_field_ptr::field_idx#2 form_field_ptr::$2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:42 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] Statement [344] (byte*) form_field_ptr::return#0 ← (byte*)(word~) form_field_ptr::$2 + (byte) form_field_ptr::x#0 [ form_field_ptr::return#0 ] ( main:2::form_mode:13::form_render_values:269::form_field_ptr:333 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_render_values::idx#2 form_field_ptr::return#0 ] main:2::form_mode:13::form_render_values:303::form_field_ptr:333 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 form_render_values::idx#2 form_field_ptr::return#0 ] main:2::form_mode:13::form_control:294::form_field_ptr:365 [ form_mode::preset_current#6 keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_field_ptr::return#0 ] ) always clobbers reg byte a Statement [360] *((const byte[]) form_fields_val#0 + (byte) apply_preset::i#2) ← *((byte*) apply_preset::preset#14 + (byte) apply_preset::i#2) [ apply_preset::preset#14 apply_preset::i#2 ] ( main:2::form_mode:13::apply_preset:301 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 apply_preset::preset#14 apply_preset::i#2 ] ) always clobbers reg byte a @@ -19773,21 +19773,21 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:45 [ a Statement [366] (byte*) form_field_ptr::return#3 ← (byte*) form_field_ptr::return#0 [ keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_field_ptr::return#3 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_field_ptr::return#3 ] ) always clobbers reg byte a Statement [367] (byte*) form_control::field#0 ← (byte*) form_field_ptr::return#3 [ keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_control::field#0 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_control::field#0 ] ) always clobbers reg byte a Statement [371] if((signed byte) form_cursor_count#15<(const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2) goto form_control::@2 [ keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte a -Statement [372] (byte~) form_control::$5 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 form_control::$5 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 form_control::$5 ] ) always clobbers reg byte a reg byte y +Statement [372] (byte~) form_control::$5 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f [ keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 form_control::$5 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 form_control::$5 ] ) always clobbers reg byte a reg byte y Statement [373] *((byte*) form_control::field#0) ← (byte~) form_control::$5 [ keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte y -Statement [381] (byte~) form_control::$11 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ keyboard_events_size#24 keyboard_modifiers#21 form_field_idx#28 form_control::field#0 form_control::$11 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#24 keyboard_modifiers#21 form_field_idx#28 form_control::field#0 form_control::$11 ] ) always clobbers reg byte a reg byte y +Statement [381] (byte~) form_control::$11 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f [ keyboard_events_size#24 keyboard_modifiers#21 form_field_idx#28 form_control::field#0 form_control::$11 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#24 keyboard_modifiers#21 form_field_idx#28 form_control::field#0 form_control::$11 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:15 [ keyboard_modifiers#21 keyboard_modifiers#20 keyboard_modifiers#4 keyboard_modifiers#19 keyboard_modifiers#3 keyboard_modifiers#18 keyboard_modifiers#5 ] Statement [382] *((byte*) form_control::field#0) ← (byte~) form_control::$11 [ keyboard_events_size#24 keyboard_modifiers#21 form_field_idx#28 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#24 keyboard_modifiers#21 form_field_idx#28 ] ) always clobbers reg byte y Statement [383] (byte~) form_control::$12 ← (byte) keyboard_modifiers#21 & (const byte) KEY_MODIFIER_SHIFT#0 [ keyboard_events_size#24 form_field_idx#28 form_control::$12 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#24 form_field_idx#28 form_control::$12 ] ) always clobbers reg byte a Statement [395] (byte~) form_control::$22 ← (byte) keyboard_modifiers#21 & (const byte) KEY_MODIFIER_SHIFT#0 [ keyboard_events_size#24 form_field_idx#28 form_control::field#0 form_cursor_count#15 form_control::$22 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#24 form_field_idx#28 form_control::field#0 form_cursor_count#15 form_control::$22 ] ) always clobbers reg byte a -Statement [398] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#28)!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@12 [ keyboard_events_size#24 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#24 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte a +Statement [398] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#28)!=(byte/word/signed word/dword/signed dword) $ff) goto form_control::@12 [ keyboard_events_size#24 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#24 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte a Statement [399] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#28) ← *((const byte[]) form_fields_max#0 + (byte) form_field_idx#28) [ keyboard_events_size#24 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#24 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte a Statement [400] *((byte*) form_control::field#0) ← *((const byte[]) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_field_idx#28)) [ keyboard_events_size#24 form_field_idx#28 form_cursor_count#15 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#24 form_field_idx#28 form_cursor_count#15 ] ) always clobbers reg byte a reg byte y Statement [402] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#28)<=*((const byte[]) form_fields_max#0 + (byte) form_field_idx#28)) goto form_control::@12 [ keyboard_events_size#24 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#24 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte a reg byte y Statement [403] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ keyboard_events_size#24 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#24 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte a -Statement [406] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) 128 [ keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 form_control::$6 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 form_control::$6 ] ) always clobbers reg byte a reg byte y +Statement [406] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) $80 [ keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 form_control::$6 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 form_control::$6 ] ) always clobbers reg byte a reg byte y Statement [407] *((byte*) form_control::field#0) ← (byte/word/dword~) form_control::$6 [ keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte y -Statement [415] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ form_set_screen::y#2 form_set_screen::line#1 ] ( main:2::form_mode:13::form_set_screen:267 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_set_screen::y#2 form_set_screen::line#1 ] ) always clobbers reg byte a +Statement [415] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ form_set_screen::y#2 form_set_screen::line#1 ] ( main:2::form_mode:13::form_set_screen:267 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_set_screen::y#2 form_set_screen::line#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:49 [ form_set_screen::y#2 form_set_screen::y#1 ] Statement [420] (byte*~) print_char_cursor#77 ← (byte*) print_set_screen::screen#2 [ print_str_lines::str#5 print_char_cursor#77 print_set_screen::screen#2 ] ( main:2::form_mode:13::print_str_lines:259 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#5 print_char_cursor#77 print_set_screen::screen#2 ] main:2::form_mode:13::print_str_lines:265 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#5 print_char_cursor#77 print_set_screen::screen#2 ] ) always clobbers reg byte a Statement [422] if(*((byte*) print_str_lines::str#3)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::form_mode:13::print_str_lines:259 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::form_mode:13::print_str_lines:265 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) always clobbers reg byte a reg byte y @@ -19795,19 +19795,19 @@ Statement [425] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str# Statement [428] *((byte*) print_char_cursor#20) ← (byte) print_str_lines::ch#0 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::form_mode:13::print_str_lines:259 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::form_mode:13::print_str_lines:265 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:289 [ print_str_lines::ch#0 ] Statement [434] (byte*~) print_char_cursor#78 ← (byte*) print_line_cursor#22 [ print_str_lines::str#0 print_char_cursor#78 print_line_cursor#22 ] ( main:2::form_mode:13::print_str_lines:259 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#0 print_char_cursor#78 print_line_cursor#22 ] main:2::form_mode:13::print_str_lines:265 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#0 print_char_cursor#78 print_line_cursor#22 ] ) always clobbers reg byte a -Statement [437] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::form_mode:13::print_str_lines:259::print_ln:433 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::form_mode:13::print_str_lines:265::print_ln:433 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) always clobbers reg byte a +Statement [437] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::form_mode:13::print_str_lines:259::print_ln:433 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::form_mode:13::print_str_lines:265::print_ln:433 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) always clobbers reg byte a Statement [438] if((byte*) print_line_cursor#22<(byte*) print_char_cursor#38) goto print_ln::@1 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::form_mode:13::print_str_lines:259::print_ln:433 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::form_mode:13::print_str_lines:265::print_ln:433 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) always clobbers reg byte a Statement [440] (byte*) print_cls::sc#0 ← (byte*) print_set_screen::screen#2 [ print_set_screen::screen#2 print_cls::sc#0 ] ( main:2::form_mode:13::print_cls:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#0 ] main:2::form_mode:13::print_cls:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#0 ] ) always clobbers reg byte a Statement [442] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_set_screen::screen#2 print_cls::sc#2 ] ( main:2::form_mode:13::print_cls:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#2 ] main:2::form_mode:13::print_cls:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [444] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) 1000 [ print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ( main:2::form_mode:13::print_cls:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] main:2::form_mode:13::print_cls:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ) always clobbers reg byte a +Statement [444] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) $3e8 [ print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ( main:2::form_mode:13::print_cls:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] main:2::form_mode:13::print_cls:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ) always clobbers reg byte a Statement [445] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 [ print_set_screen::screen#2 print_cls::sc#1 ] ( main:2::form_mode:13::print_cls:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 ] main:2::form_mode:13::print_cls:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 ] ) always clobbers reg byte a Statement [484] (dword~) gfx_init_plane_fill::$0 ← (dword) gfx_init_plane_fill::plane_addr#3 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$0 ] ( main:2::gfx_init:10::gfx_init_plane_full:478::gfx_init_plane_fill:481 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$0 ] main:2::gfx_init:10::gfx_init_plane_blank:476::gfx_init_plane_fill:510 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$0 ] main:2::gfx_init:10::gfx_init_plane_vertical2:474::gfx_init_plane_fill:513 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:62 [ gfx_init_plane_fill::fill#6 ] Statement [485] (word~) gfx_init_plane_fill::$1 ← > (dword~) gfx_init_plane_fill::$0 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$1 ] ( main:2::gfx_init:10::gfx_init_plane_full:478::gfx_init_plane_fill:481 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$1 ] main:2::gfx_init:10::gfx_init_plane_blank:476::gfx_init_plane_fill:510 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$1 ] main:2::gfx_init:10::gfx_init_plane_vertical2:474::gfx_init_plane_fill:513 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$1 ] ) always clobbers reg byte a Statement [486] (byte) gfx_init_plane_fill::gfxbCpuBank#0 ← < (word~) gfx_init_plane_fill::$1 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxbCpuBank#0 ] ( main:2::gfx_init:10::gfx_init_plane_full:478::gfx_init_plane_fill:481 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxbCpuBank#0 ] main:2::gfx_init:10::gfx_init_plane_blank:476::gfx_init_plane_fill:510 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxbCpuBank#0 ] main:2::gfx_init:10::gfx_init_plane_vertical2:474::gfx_init_plane_fill:513 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxbCpuBank#0 ] ) always clobbers reg byte a Statement [490] (word~) gfx_init_plane_fill::$4 ← < (dword) gfx_init_plane_fill::plane_addr#3 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$4 ] ( main:2::gfx_init:10::gfx_init_plane_full:478::gfx_init_plane_fill:481 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$4 ] main:2::gfx_init:10::gfx_init_plane_blank:476::gfx_init_plane_fill:510 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$4 ] main:2::gfx_init:10::gfx_init_plane_vertical2:474::gfx_init_plane_fill:513 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$4 ] ) always clobbers reg byte a -Statement [491] (word~) gfx_init_plane_fill::$5 ← (word~) gfx_init_plane_fill::$4 & (word/signed word/dword/signed dword) 16383 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$5 ] ( main:2::gfx_init:10::gfx_init_plane_full:478::gfx_init_plane_fill:481 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$5 ] main:2::gfx_init:10::gfx_init_plane_blank:476::gfx_init_plane_fill:510 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$5 ] main:2::gfx_init:10::gfx_init_plane_vertical2:474::gfx_init_plane_fill:513 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$5 ] ) always clobbers reg byte a -Statement [492] (word/signed dword/dword~) gfx_init_plane_fill::$6 ← (word/signed word/dword/signed dword) 16384 + (word~) gfx_init_plane_fill::$5 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$6 ] ( main:2::gfx_init:10::gfx_init_plane_full:478::gfx_init_plane_fill:481 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$6 ] main:2::gfx_init:10::gfx_init_plane_blank:476::gfx_init_plane_fill:510 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$6 ] main:2::gfx_init:10::gfx_init_plane_vertical2:474::gfx_init_plane_fill:513 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$6 ] ) always clobbers reg byte a +Statement [491] (word~) gfx_init_plane_fill::$5 ← (word~) gfx_init_plane_fill::$4 & (word/signed word/dword/signed dword) $3fff [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$5 ] ( main:2::gfx_init:10::gfx_init_plane_full:478::gfx_init_plane_fill:481 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$5 ] main:2::gfx_init:10::gfx_init_plane_blank:476::gfx_init_plane_fill:510 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$5 ] main:2::gfx_init:10::gfx_init_plane_vertical2:474::gfx_init_plane_fill:513 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$5 ] ) always clobbers reg byte a +Statement [492] (word/signed dword/dword~) gfx_init_plane_fill::$6 ← (word/signed word/dword/signed dword) $4000 + (word~) gfx_init_plane_fill::$5 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$6 ] ( main:2::gfx_init:10::gfx_init_plane_full:478::gfx_init_plane_fill:481 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$6 ] main:2::gfx_init:10::gfx_init_plane_blank:476::gfx_init_plane_fill:510 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$6 ] main:2::gfx_init:10::gfx_init_plane_vertical2:474::gfx_init_plane_fill:513 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$6 ] ) always clobbers reg byte a Statement [493] (byte*~) gfx_init_plane_fill::gfxb#6 ← (byte*)(word/signed dword/dword~) gfx_init_plane_fill::$6 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#6 ] ( main:2::gfx_init:10::gfx_init_plane_full:478::gfx_init_plane_fill:481 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#6 ] main:2::gfx_init:10::gfx_init_plane_blank:476::gfx_init_plane_fill:510 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#6 ] main:2::gfx_init:10::gfx_init_plane_vertical2:474::gfx_init_plane_fill:513 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#6 ] ) always clobbers reg byte a Statement [496] *((byte*) gfx_init_plane_fill::gfxb#2) ← (byte) gfx_init_plane_fill::fill#6 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::by#4 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::bx#2 ] ( main:2::gfx_init:10::gfx_init_plane_full:478::gfx_init_plane_fill:481 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::by#4 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::bx#2 ] main:2::gfx_init:10::gfx_init_plane_blank:476::gfx_init_plane_fill:510 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::by#4 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::bx#2 ] main:2::gfx_init:10::gfx_init_plane_vertical2:474::gfx_init_plane_fill:513 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::by#4 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::bx#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:62 [ gfx_init_plane_fill::fill#6 ] @@ -19826,7 +19826,7 @@ Statement [520] (byte) gfx_init_plane_horisontal2::row#0 ← (byte~) gfx_init_pl Statement [521] *((byte*) gfx_init_plane_horisontal2::gfxa#2) ← *((const byte[]) gfx_init_plane_horisontal2::row_bitmask#0 + (byte) gfx_init_plane_horisontal2::row#0) [ gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::gfxa#2 gfx_init_plane_horisontal2::ax#2 ] ( main:2::gfx_init:10::gfx_init_plane_horisontal2:472 [ gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::gfxa#2 gfx_init_plane_horisontal2::ax#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:68 [ gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::ay#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:71 [ gfx_init_plane_horisontal2::ax#2 gfx_init_plane_horisontal2::ax#1 ] -Statement [534] *((byte*) gfx_init_plane_vertical::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 15 [ gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::gfxb#2 gfx_init_plane_vertical::bx#2 ] ( main:2::gfx_init:10::gfx_init_plane_vertical:470 [ gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::gfxb#2 gfx_init_plane_vertical::bx#2 ] ) always clobbers reg byte a reg byte y +Statement [534] *((byte*) gfx_init_plane_vertical::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $f [ gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::gfxb#2 gfx_init_plane_vertical::bx#2 ] ( main:2::gfx_init:10::gfx_init_plane_vertical:470 [ gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::gfxb#2 gfx_init_plane_vertical::bx#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp ZP_BYTE:72 [ gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::by#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:72 [ gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::by#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:75 [ gfx_init_plane_vertical::bx#2 gfx_init_plane_vertical::bx#1 ] @@ -19834,7 +19834,7 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:75 [ g Statement [547] (byte~) gfx_init_plane_horisontal::$5 ← (byte) gfx_init_plane_horisontal::ay#4 & (byte/signed byte/word/signed word/dword/signed dword) 4 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::ax#2 gfx_init_plane_horisontal::$5 ] ( main:2::gfx_init:10::gfx_init_plane_horisontal:468 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::ax#2 gfx_init_plane_horisontal::$5 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:76 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::ay#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:79 [ gfx_init_plane_horisontal::ax#2 gfx_init_plane_horisontal::ax#1 ] -Statement [549] *((byte*) gfx_init_plane_horisontal::gfxa#3) ← (byte/word/signed word/dword/signed dword) 255 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::ax#2 ] ( main:2::gfx_init:10::gfx_init_plane_horisontal:468 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::ax#2 ] ) always clobbers reg byte a reg byte y +Statement [549] *((byte*) gfx_init_plane_horisontal::gfxa#3) ← (byte/word/signed word/dword/signed dword) $ff [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::ax#2 ] ( main:2::gfx_init:10::gfx_init_plane_horisontal:468 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::ax#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:76 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::ay#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:79 [ gfx_init_plane_horisontal::ax#2 gfx_init_plane_horisontal::ax#1 ] Statement [559] *((byte*) gfx_init_plane_horisontal::gfxa#3) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::ax#2 ] ( main:2::gfx_init:10::gfx_init_plane_horisontal:468 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::ax#2 ] ) always clobbers reg byte a reg byte y @@ -19846,20 +19846,20 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:87 [ g Removing always clobbered register reg byte y as potential for zp ZP_BYTE:87 [ gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:83 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:83 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] -Statement [569] (byte~) gfx_init_plane_charset8::$5 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) 128 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::$5 ] ( main:2::gfx_init:10::gfx_init_plane_charset8:466 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::$5 ] ) always clobbers reg byte a +Statement [569] (byte~) gfx_init_plane_charset8::$5 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) $80 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::$5 ] ( main:2::gfx_init:10::gfx_init_plane_charset8:466 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::$5 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:84 [ gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:88 [ gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::cp#1 ] Statement [573] *((byte*) gfx_init_plane_charset8::gfxa#2) ← (byte) gfx_init_plane_charset8::c#2 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 ] ( main:2::gfx_init:10::gfx_init_plane_charset8:466 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:84 [ gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:88 [ gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::cp#1 ] Statement [583] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:2::gfx_init:10::gfx_init_plane_charset8:466 [ ] ) always clobbers reg byte a -Statement [590] if((byte*) gfx_init_plane_8bppchunky::gfxb#3!=(word/dword/signed dword) 32768) goto gfx_init_plane_8bppchunky::@3 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::gfxbCpuBank#4 ] ( main:2::gfx_init:10::gfx_init_plane_8bppchunky:464 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::gfxbCpuBank#4 ] ) always clobbers reg byte a +Statement [590] if((byte*) gfx_init_plane_8bppchunky::gfxb#3!=(word/dword/signed dword) $8000) goto gfx_init_plane_8bppchunky::@3 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::gfxbCpuBank#4 ] ( main:2::gfx_init:10::gfx_init_plane_8bppchunky:464 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::gfxbCpuBank#4 ] ) always clobbers reg byte a Statement [595] (word~) gfx_init_plane_8bppchunky::$6 ← (word) gfx_init_plane_8bppchunky::x#2 + (byte) gfx_init_plane_8bppchunky::y#6 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::gfxb#4 gfx_init_plane_8bppchunky::$6 ] ( main:2::gfx_init:10::gfx_init_plane_8bppchunky:464 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::gfxb#4 gfx_init_plane_8bppchunky::$6 ] ) always clobbers reg byte a Statement [596] (byte) gfx_init_plane_8bppchunky::c#0 ← ((byte)) (word~) gfx_init_plane_8bppchunky::$6 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::gfxb#4 gfx_init_plane_8bppchunky::c#0 ] ( main:2::gfx_init:10::gfx_init_plane_8bppchunky:464 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::gfxb#4 gfx_init_plane_8bppchunky::c#0 ] ) always clobbers reg byte a Statement [597] *((byte*) gfx_init_plane_8bppchunky::gfxb#4) ← (byte) gfx_init_plane_8bppchunky::c#0 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::gfxb#4 ] ( main:2::gfx_init:10::gfx_init_plane_8bppchunky:464 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::gfxb#4 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:90 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::y#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:93 [ gfx_init_plane_8bppchunky::gfxbCpuBank#4 gfx_init_plane_8bppchunky::gfxbCpuBank#7 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::gfxbCpuBank#2 ] -Statement [600] if((word) gfx_init_plane_8bppchunky::x#1!=(word/signed word/dword/signed dword) 320) goto gfx_init_plane_8bppchunky::@2 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxb#1 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::x#1 ] ( main:2::gfx_init:10::gfx_init_plane_8bppchunky:464 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxb#1 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::x#1 ] ) always clobbers reg byte a +Statement [600] if((word) gfx_init_plane_8bppchunky::x#1!=(word/signed word/dword/signed dword) $140) goto gfx_init_plane_8bppchunky::@2 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxb#1 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::x#1 ] ( main:2::gfx_init:10::gfx_init_plane_8bppchunky:464 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxb#1 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::x#1 ] ) always clobbers reg byte a Statement [620] (byte) bitmap_line::xd#2 ← (byte) bitmap_line::x0#0 - (byte) bitmap_line::x1#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#2 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615 [ gfx_init_vic_bitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:96 [ gfx_init_vic_bitmap::l#2 gfx_init_vic_bitmap::l#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:313 [ bitmap_line::x0#0 ] @@ -19881,7 +19881,7 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:98 [ b Removing always clobbered register reg byte a as potential for zp ZP_BYTE:99 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 ] Statement [688] (byte) bitmap_line_xdyi::e#1 ← (byte) bitmap_line_xdyi::e#3 + (byte) bitmap_line_xdyi::yd#2 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:636 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:680 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ) always clobbers reg byte a Statement [691] (byte) bitmap_line_xdyi::e#2 ← (byte) bitmap_line_xdyi::e#1 - (byte) bitmap_line_xdyi::xd#5 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:636 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:680 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] ) always clobbers reg byte a -Statement [697] (word) bitmap_plot::plotter_x#0 ← *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:636::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:680::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:629::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:674::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:650::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:666::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:644::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:660::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ) always clobbers reg byte a +Statement [697] (word) bitmap_plot::plotter_x#0 ← *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:636::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:680::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:629::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:674::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:650::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:666::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:644::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:660::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:102 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:103 [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:104 [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] @@ -19903,9 +19903,9 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:119 [ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:120 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#5 bitmap_line_ydxd::x#0 bitmap_line_ydxd::x#1 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:121 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:122 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] -Statement [698] (word) bitmap_plot::plotter_y#0 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) [ bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:636::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:680::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:629::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:674::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:650::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:666::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:644::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:660::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ) always clobbers reg byte a +Statement [698] (word) bitmap_plot::plotter_y#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) [ bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:636::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:680::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:629::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:674::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:650::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:666::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:644::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:660::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ) always clobbers reg byte a Statement [699] (word~) bitmap_plot::$0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0 [ bitmap_plot::x#4 bitmap_plot::$0 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:636::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:680::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:629::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:674::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:650::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:666::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:644::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:660::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] ) always clobbers reg byte a -Statement [700] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::$0 bitmap_plot::$1 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:636::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:680::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:629::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:674::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:650::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:666::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:644::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:660::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] ) always clobbers reg byte a reg byte y +Statement [700] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::$0 bitmap_plot::$1 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:636::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:680::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:629::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:674::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:650::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:666::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:644::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:660::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:96 [ gfx_init_vic_bitmap::l#2 gfx_init_vic_bitmap::l#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:97 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:98 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 ] @@ -19941,29 +19941,29 @@ Statement [728] (byte) bitmap_line_xdyd::e#2 ← (byte) bitmap_line_xdyd::e#1 - Statement [734] (byte) bitmap_line_ydxd::e#0 ← (byte) bitmap_line_ydxd::xd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:644 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:660 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] ) always clobbers reg byte a Statement [740] (byte) bitmap_line_ydxd::e#1 ← (byte) bitmap_line_ydxd::e#3 + (byte) bitmap_line_ydxd::xd#2 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:644 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:660 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ) always clobbers reg byte a Statement [743] (byte) bitmap_line_ydxd::e#2 ← (byte) bitmap_line_ydxd::e#1 - (byte) bitmap_line_ydxd::yd#5 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:644 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:660 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] ) always clobbers reg byte a -Statement [748] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_xhi#0) w= *((const byte[256]) bitmap_plot_xlo#0) [ bitmap_clear::$3 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_clear:609 [ bitmap_clear::$3 ] ) always clobbers reg byte a +Statement [748] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_xhi#0) w= *((const byte[$100]) bitmap_plot_xlo#0) [ bitmap_clear::$3 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_clear:609 [ bitmap_clear::$3 ] ) always clobbers reg byte a Statement [749] (byte*~) bitmap_clear::bitmap#5 ← (byte*)(word~) bitmap_clear::$3 [ bitmap_clear::bitmap#5 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_clear:609 [ bitmap_clear::bitmap#5 ] ) always clobbers reg byte a Statement [752] *((byte*) bitmap_clear::bitmap#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_clear:609 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp ZP_BYTE:123 [ bitmap_clear::y#4 bitmap_clear::y#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:123 [ bitmap_clear::y#4 bitmap_clear::y#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:126 [ bitmap_clear::x#2 bitmap_clear::x#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:126 [ bitmap_clear::x#2 bitmap_clear::x#1 ] -Statement [761] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) 248 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_init:607 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ) always clobbers reg byte a +Statement [761] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) $f8 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_init:607 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:127 [ bitmap_init::x#2 bitmap_init::x#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:128 [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] -Statement [763] *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) VIC_BITMAP#0 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_init:607 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a -Statement [764] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_init:607 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a +Statement [763] *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) VIC_BITMAP#0 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_init:607 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a +Statement [764] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_init:607 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a Statement [771] (byte~) bitmap_init::$6 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$6 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_init:607 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$6 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:129 [ bitmap_init::y#2 bitmap_init::y#1 ] Statement [777] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$10 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_init:607 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$10 ] ) always clobbers reg byte a -Statement [779] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_init:607 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ) always clobbers reg byte a -Statement [785] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ ] ( main:2::gfx_init:10::gfx_init_charset:460 [ ] ) always clobbers reg byte a +Statement [779] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_init:607 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ) always clobbers reg byte a +Statement [785] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 [ ] ( main:2::gfx_init:10::gfx_init_charset:460 [ ] ) always clobbers reg byte a Statement [788] *((byte*) gfx_init_charset::charset#2) ← *((byte*) gfx_init_charset::chargen#2) [ gfx_init_charset::c#4 gfx_init_charset::chargen#2 gfx_init_charset::charset#2 gfx_init_charset::l#2 ] ( main:2::gfx_init:10::gfx_init_charset:460 [ gfx_init_charset::c#4 gfx_init_charset::chargen#2 gfx_init_charset::charset#2 gfx_init_charset::l#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp ZP_BYTE:132 [ gfx_init_charset::c#4 gfx_init_charset::c#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:132 [ gfx_init_charset::c#4 gfx_init_charset::c#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:137 [ gfx_init_charset::l#2 gfx_init_charset::l#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:137 [ gfx_init_charset::l#2 gfx_init_charset::l#1 ] -Statement [795] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 [ ] ( main:2::gfx_init:10::gfx_init_charset:460 [ ] ) always clobbers reg byte a +Statement [795] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 [ ] ( main:2::gfx_init:10::gfx_init_charset:460 [ ] ) always clobbers reg byte a Statement [800] *((byte*) gfx_init_screen4::ch#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ gfx_init_screen4::cy#4 gfx_init_screen4::ch#2 gfx_init_screen4::cx#2 ] ( main:2::gfx_init:10::gfx_init_screen4:458 [ gfx_init_screen4::cy#4 gfx_init_screen4::ch#2 gfx_init_screen4::cx#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp ZP_BYTE:138 [ gfx_init_screen4::cy#4 gfx_init_screen4::cy#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:138 [ gfx_init_screen4::cy#4 gfx_init_screen4::cy#1 ] @@ -19981,8 +19981,8 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:143 [ Statement [824] (byte~) gfx_init_screen2::$0 ← (byte) gfx_init_screen2::cx#2 + (byte) gfx_init_screen2::cy#4 [ gfx_init_screen2::cy#4 gfx_init_screen2::cx#2 gfx_init_screen2::ch#2 gfx_init_screen2::$0 ] ( main:2::gfx_init:10::gfx_init_screen2:454 [ gfx_init_screen2::cy#4 gfx_init_screen2::cx#2 gfx_init_screen2::ch#2 gfx_init_screen2::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:146 [ gfx_init_screen2::cy#4 gfx_init_screen2::cy#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:147 [ gfx_init_screen2::cx#2 gfx_init_screen2::cx#1 ] -Statement [825] (byte) gfx_init_screen2::col#0 ← (byte~) gfx_init_screen2::$0 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ gfx_init_screen2::cy#4 gfx_init_screen2::cx#2 gfx_init_screen2::ch#2 gfx_init_screen2::col#0 ] ( main:2::gfx_init:10::gfx_init_screen2:454 [ gfx_init_screen2::cy#4 gfx_init_screen2::cx#2 gfx_init_screen2::ch#2 gfx_init_screen2::col#0 ] ) always clobbers reg byte a -Statement [826] (byte) gfx_init_screen2::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) gfx_init_screen2::col#0 [ gfx_init_screen2::cy#4 gfx_init_screen2::cx#2 gfx_init_screen2::ch#2 gfx_init_screen2::col#0 gfx_init_screen2::col2#0 ] ( main:2::gfx_init:10::gfx_init_screen2:454 [ gfx_init_screen2::cy#4 gfx_init_screen2::cx#2 gfx_init_screen2::ch#2 gfx_init_screen2::col#0 gfx_init_screen2::col2#0 ] ) always clobbers reg byte a +Statement [825] (byte) gfx_init_screen2::col#0 ← (byte~) gfx_init_screen2::$0 & (byte/signed byte/word/signed word/dword/signed dword) $f [ gfx_init_screen2::cy#4 gfx_init_screen2::cx#2 gfx_init_screen2::ch#2 gfx_init_screen2::col#0 ] ( main:2::gfx_init:10::gfx_init_screen2:454 [ gfx_init_screen2::cy#4 gfx_init_screen2::cx#2 gfx_init_screen2::ch#2 gfx_init_screen2::col#0 ] ) always clobbers reg byte a +Statement [826] (byte) gfx_init_screen2::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f - (byte) gfx_init_screen2::col#0 [ gfx_init_screen2::cy#4 gfx_init_screen2::cx#2 gfx_init_screen2::ch#2 gfx_init_screen2::col#0 gfx_init_screen2::col2#0 ] ( main:2::gfx_init:10::gfx_init_screen2:454 [ gfx_init_screen2::cy#4 gfx_init_screen2::cx#2 gfx_init_screen2::ch#2 gfx_init_screen2::col#0 gfx_init_screen2::col2#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:347 [ gfx_init_screen2::col#0 ] Statement [827] (byte~) gfx_init_screen2::$3 ← (byte) gfx_init_screen2::col#0 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ gfx_init_screen2::cy#4 gfx_init_screen2::cx#2 gfx_init_screen2::ch#2 gfx_init_screen2::col2#0 gfx_init_screen2::$3 ] ( main:2::gfx_init:10::gfx_init_screen2:454 [ gfx_init_screen2::cy#4 gfx_init_screen2::cx#2 gfx_init_screen2::ch#2 gfx_init_screen2::col2#0 gfx_init_screen2::$3 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:348 [ gfx_init_screen2::col2#0 ] @@ -19992,20 +19992,20 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:147 [ Statement [839] (byte~) gfx_init_screen1::$0 ← (byte) gfx_init_screen1::cx#2 + (byte) gfx_init_screen1::cy#4 [ gfx_init_screen1::cy#4 gfx_init_screen1::cx#2 gfx_init_screen1::ch#2 gfx_init_screen1::$0 ] ( main:2::gfx_init:10::gfx_init_screen1:452 [ gfx_init_screen1::cy#4 gfx_init_screen1::cx#2 gfx_init_screen1::ch#2 gfx_init_screen1::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:150 [ gfx_init_screen1::cy#4 gfx_init_screen1::cy#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:151 [ gfx_init_screen1::cx#2 gfx_init_screen1::cx#1 ] -Statement [840] (byte~) gfx_init_screen1::$1 ← (byte~) gfx_init_screen1::$0 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ gfx_init_screen1::cy#4 gfx_init_screen1::cx#2 gfx_init_screen1::ch#2 gfx_init_screen1::$1 ] ( main:2::gfx_init:10::gfx_init_screen1:452 [ gfx_init_screen1::cy#4 gfx_init_screen1::cx#2 gfx_init_screen1::ch#2 gfx_init_screen1::$1 ] ) always clobbers reg byte a +Statement [840] (byte~) gfx_init_screen1::$1 ← (byte~) gfx_init_screen1::$0 & (byte/signed byte/word/signed word/dword/signed dword) $f [ gfx_init_screen1::cy#4 gfx_init_screen1::cx#2 gfx_init_screen1::ch#2 gfx_init_screen1::$1 ] ( main:2::gfx_init:10::gfx_init_screen1:452 [ gfx_init_screen1::cy#4 gfx_init_screen1::cx#2 gfx_init_screen1::ch#2 gfx_init_screen1::$1 ] ) always clobbers reg byte a Statement [841] *((byte*) gfx_init_screen1::ch#2) ← (byte~) gfx_init_screen1::$1 [ gfx_init_screen1::cy#4 gfx_init_screen1::cx#2 gfx_init_screen1::ch#2 ] ( main:2::gfx_init:10::gfx_init_screen1:452 [ gfx_init_screen1::cy#4 gfx_init_screen1::cx#2 gfx_init_screen1::ch#2 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:150 [ gfx_init_screen1::cy#4 gfx_init_screen1::cy#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:151 [ gfx_init_screen1::cx#2 gfx_init_screen1::cx#1 ] -Statement [851] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$0 ] ( main:2::gfx_init:10::gfx_init_screen0:450 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$0 ] ) always clobbers reg byte a +Statement [851] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$0 ] ( main:2::gfx_init:10::gfx_init_screen0:450 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:154 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:155 [ gfx_init_screen0::cx#2 gfx_init_screen0::cx#1 ] Statement [852] (byte~) gfx_init_screen0::$1 ← (byte~) gfx_init_screen0::$0 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$1 ] ( main:2::gfx_init:10::gfx_init_screen0:450 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$1 ] ) always clobbers reg byte a -Statement [853] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$1 gfx_init_screen0::$2 ] ( main:2::gfx_init:10::gfx_init_screen0:450 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$1 gfx_init_screen0::$2 ] ) always clobbers reg byte a +Statement [853] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$1 gfx_init_screen0::$2 ] ( main:2::gfx_init:10::gfx_init_screen0:450 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$1 gfx_init_screen0::$2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:354 [ gfx_init_screen0::$1 ] Statement [855] *((byte*) gfx_init_screen0::ch#2) ← (byte~) gfx_init_screen0::$3 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 ] ( main:2::gfx_init:10::gfx_init_screen0:450 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:154 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:155 [ gfx_init_screen0::cx#2 gfx_init_screen0::cx#1 ] -Statement [862] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:2::keyboard_init:8 [ ] ) always clobbers reg byte a +Statement [862] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) $ff [ ] ( main:2::keyboard_init:8 [ ] ) always clobbers reg byte a Statement [863] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::keyboard_init:8 [ ] ) always clobbers reg byte a Statement [5] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [6] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:2 [ ] ) always clobbers reg byte a @@ -20058,15 +20058,15 @@ Statement [88] (byte~) gfx_mode::$55 ← *((const byte*) form_b_mod_hi#0) << (by Statement [89] (byte~) gfx_mode::$56 ← (byte~) gfx_mode::$55 | *((const byte*) form_b_mod_lo#0) [ keyboard_events_size#24 gfx_mode::$56 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::$56 ] ) always clobbers reg byte a Statement [91] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ keyboard_events_size#24 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 ] ) always clobbers reg byte a Statement [92] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_events_size#24 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 ] ) always clobbers reg byte a -Statement [93] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) VIC_SCREEN0#0/(word/signed word/dword/signed dword) 16384 [ keyboard_events_size#24 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 ] ) always clobbers reg byte a +Statement [93] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) VIC_SCREEN0#0/(word/signed word/dword/signed dword) $4000 [ keyboard_events_size#24 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 ] ) always clobbers reg byte a Statement [96] (byte*) get_vic_screen::return#10 ← (byte*) get_vic_screen::return#5 [ keyboard_events_size#24 get_vic_screen::return#10 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 get_vic_screen::return#10 ] ) always clobbers reg byte a Statement [97] (byte*~) gfx_mode::$61 ← (byte*) get_vic_screen::return#10 [ keyboard_events_size#24 gfx_mode::$61 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::$61 ] ) always clobbers reg byte a -Statement [98] (word~) gfx_mode::$63 ← (word)(byte*~) gfx_mode::$61 & (word/signed word/dword/signed dword) 16383 [ keyboard_events_size#24 gfx_mode::$63 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::$63 ] ) always clobbers reg byte a +Statement [98] (word~) gfx_mode::$63 ← (word)(byte*~) gfx_mode::$61 & (word/signed word/dword/signed dword) $3fff [ keyboard_events_size#24 gfx_mode::$63 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::$63 ] ) always clobbers reg byte a Statement [99] (word~) gfx_mode::$64 ← (word~) gfx_mode::$63 >> (byte/signed byte/word/signed word/dword/signed dword) 6 [ keyboard_events_size#24 gfx_mode::$64 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::$64 ] ) always clobbers reg byte a reg byte y Statement [100] (byte~) gfx_mode::$65 ← ((byte)) (word~) gfx_mode::$64 [ keyboard_events_size#24 gfx_mode::$65 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::$65 ] ) always clobbers reg byte a Statement [103] (byte*) get_vic_charset::return#4 ← (byte*) get_vic_charset::return#2 [ keyboard_events_size#24 gfx_mode::$65 get_vic_charset::return#4 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::$65 get_vic_charset::return#4 ] ) always clobbers reg byte a Statement [104] (byte*~) gfx_mode::$66 ← (byte*) get_vic_charset::return#4 [ keyboard_events_size#24 gfx_mode::$65 gfx_mode::$66 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::$65 gfx_mode::$66 ] ) always clobbers reg byte a -Statement [105] (word~) gfx_mode::$68 ← (word)(byte*~) gfx_mode::$66 & (word/signed word/dword/signed dword) 16383 [ keyboard_events_size#24 gfx_mode::$65 gfx_mode::$68 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::$65 gfx_mode::$68 ] ) always clobbers reg byte a +Statement [105] (word~) gfx_mode::$68 ← (word)(byte*~) gfx_mode::$66 & (word/signed word/dword/signed dword) $3fff [ keyboard_events_size#24 gfx_mode::$65 gfx_mode::$68 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::$65 gfx_mode::$68 ] ) always clobbers reg byte a Statement [106] (byte~) gfx_mode::$69 ← > (word~) gfx_mode::$68 [ keyboard_events_size#24 gfx_mode::$65 gfx_mode::$69 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::$65 gfx_mode::$69 ] ) always clobbers reg byte a Statement [107] (byte~) gfx_mode::$70 ← (byte~) gfx_mode::$69 >> (byte/signed byte/word/signed word/dword/signed dword) 2 [ keyboard_events_size#24 gfx_mode::$65 gfx_mode::$70 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::$65 gfx_mode::$70 ] ) always clobbers reg byte a Statement [112] (byte*) get_vic_screen::return#11 ← (byte*) get_vic_screen::return#5 [ keyboard_events_size#24 get_vic_screen::return#11 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 get_vic_screen::return#11 ] ) always clobbers reg byte a @@ -20082,8 +20082,8 @@ Statement [131] (byte~) gfx_mode::$80 ← (byte~) gfx_mode::$79 | *((const byte* Statement [133] (byte~) gfx_mode::$81 ← *((const byte*) form_vic_bg3_hi#0) << (byte/signed byte/word/signed word/dword/signed dword) 4 [ keyboard_events_size#24 gfx_mode::$81 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::$81 ] ) always clobbers reg byte a Statement [134] (byte~) gfx_mode::$82 ← (byte~) gfx_mode::$81 | *((const byte*) form_vic_bg3_lo#0) [ keyboard_events_size#24 gfx_mode::$82 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::$82 ] ) always clobbers reg byte a Statement [136] if(*((const byte*) form_dtv_palet#0)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_mode::@15 [ keyboard_events_size#24 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 ] ) always clobbers reg byte a -Statement [141] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto gfx_mode::@19 [ keyboard_events_size#24 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 ] ) always clobbers reg byte a -Statement [151] *((const byte*) DTV_PALETTE#0 + (byte) gfx_mode::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) gfx_mode::i#2) [ keyboard_events_size#24 gfx_mode::i#2 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::i#2 ] ) always clobbers reg byte a +Statement [141] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto gfx_mode::@19 [ keyboard_events_size#24 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 ] ) always clobbers reg byte a +Statement [151] *((const byte*) DTV_PALETTE#0 + (byte) gfx_mode::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) gfx_mode::i#2) [ keyboard_events_size#24 gfx_mode::i#2 ] ( main:2::gfx_mode:15 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#24 gfx_mode::i#2 ] ) always clobbers reg byte a Statement [165] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#118 keyboard_event_scan::row_scan#0 ] ( main:2::gfx_mode:15::keyboard_event_scan:143 [ form_cursor_count#16 form_field_idx#18 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#118 keyboard_event_scan::row_scan#0 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#118 keyboard_event_scan::row_scan#0 ] ) always clobbers reg byte a Statement [166] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ keyboard_event_scan::row#2 keyboard_events_size#118 keyboard_event_scan::keycode#1 ] ( main:2::gfx_mode:15::keyboard_event_scan:143 [ form_cursor_count#16 form_field_idx#18 keyboard_event_scan::row#2 keyboard_events_size#118 keyboard_event_scan::keycode#1 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_events_size#118 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a Statement [181] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#18 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#100 keyboard_modifiers#3 ] ( main:2::gfx_mode:15::keyboard_event_scan:143 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#100 keyboard_modifiers#3 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_events_size#100 keyboard_modifiers#3 ] ) always clobbers reg byte a @@ -20094,91 +20094,91 @@ Statement [198] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan: Statement [201] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#18 keyboard_event_scan::event_type#0 ] ( main:2::gfx_mode:15::keyboard_event_scan:143 [ form_cursor_count#16 form_field_idx#18 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#18 keyboard_event_scan::event_type#0 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#18 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a Statement [203] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#18) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#18 ] ( main:2::gfx_mode:15::keyboard_event_scan:143 [ form_cursor_count#16 form_field_idx#18 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#18 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#18 ] ) always clobbers reg byte a Statement [209] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#119 ] ( main:2::gfx_mode:15::keyboard_event_scan:143 [ form_cursor_count#16 form_field_idx#18 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#119 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#119 ] ) always clobbers reg byte a -Statement [210] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#18 keyboard_event_scan::$11 ] ( main:2::gfx_mode:15::keyboard_event_scan:143 [ form_cursor_count#16 form_field_idx#18 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#18 keyboard_event_scan::$11 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#18 keyboard_event_scan::$11 ] ) always clobbers reg byte a +Statement [210] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) $40 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#18 keyboard_event_scan::$11 ] ( main:2::gfx_mode:15::keyboard_event_scan:143 [ form_cursor_count#16 form_field_idx#18 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#18 keyboard_event_scan::$11 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#18 keyboard_event_scan::$11 ] ) always clobbers reg byte a Statement [214] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#4 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] ( main:2::gfx_mode:15::keyboard_event_scan:143::keyboard_event_pressed:171 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#100 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375::keyboard_event_pressed:171 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_events_size#100 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::gfx_mode:15::keyboard_event_scan:143::keyboard_event_pressed:177 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#100 keyboard_modifiers#18 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375::keyboard_event_pressed:177 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_events_size#100 keyboard_modifiers#18 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::gfx_mode:15::keyboard_event_scan:143::keyboard_event_pressed:183 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375::keyboard_event_pressed:183 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::gfx_mode:15::keyboard_event_scan:143::keyboard_event_pressed:189 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375::keyboard_event_pressed:189 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::keycode#4 keyboard_event_pressed::$0 ] ) always clobbers reg byte a Statement [216] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#4 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:2::gfx_mode:15::keyboard_event_scan:143::keyboard_event_pressed:171 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#100 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375::keyboard_event_pressed:171 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_events_size#100 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::gfx_mode:15::keyboard_event_scan:143::keyboard_event_pressed:177 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#100 keyboard_modifiers#18 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375::keyboard_event_pressed:177 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_events_size#100 keyboard_modifiers#18 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::gfx_mode:15::keyboard_event_scan:143::keyboard_event_pressed:183 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375::keyboard_event_pressed:183 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::gfx_mode:15::keyboard_event_scan:143::keyboard_event_pressed:189 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375::keyboard_event_pressed:189 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a Statement [217] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#10 ] ( main:2::gfx_mode:15::keyboard_event_scan:143::keyboard_event_pressed:171 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#100 keyboard_event_pressed::return#10 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375::keyboard_event_pressed:171 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_events_size#100 keyboard_event_pressed::return#10 ] main:2::gfx_mode:15::keyboard_event_scan:143::keyboard_event_pressed:177 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#100 keyboard_modifiers#18 keyboard_event_pressed::return#10 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375::keyboard_event_pressed:177 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_events_size#100 keyboard_modifiers#18 keyboard_event_pressed::return#10 ] main:2::gfx_mode:15::keyboard_event_scan:143::keyboard_event_pressed:183 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::return#10 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375::keyboard_event_pressed:183 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::return#10 ] main:2::gfx_mode:15::keyboard_event_scan:143::keyboard_event_pressed:189 [ form_cursor_count#16 form_field_idx#18 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::return#10 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375::keyboard_event_pressed:189 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::return#10 ] ) always clobbers reg byte a Statement [219] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::gfx_mode:15::keyboard_event_scan:143::keyboard_matrix_read:162 [ form_cursor_count#16 form_field_idx#18 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#118 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375::keyboard_matrix_read:162 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#118 ] ) always clobbers reg byte a Statement [220] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::gfx_mode:15::keyboard_event_scan:143::keyboard_matrix_read:162 [ form_cursor_count#16 form_field_idx#18 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#118 keyboard_matrix_read::return#0 ] main:2::form_mode:13::form_control:294::keyboard_event_scan:375::keyboard_matrix_read:162 [ form_mode::preset_current#6 form_field_idx#28 form_control::field#0 form_cursor_count#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#118 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a -Statement [272] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) FORM_CHARSET#0/(dword/signed dword) 65536 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a -Statement [273] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a -Statement [274] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a +Statement [272] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) FORM_CHARSET#0/(dword/signed dword) $10000 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a +Statement [273] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a +Statement [274] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a Statement [275] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a -Statement [276] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) FORM_CHARSET#0/(word/signed word/dword/signed dword) 16384 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a +Statement [276] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) FORM_CHARSET#0/(word/signed word/dword/signed dword) $4000 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a Statement [277] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a Statement [278] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a Statement [279] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a -Statement [280] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) FORM_SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) FORM_CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a +Statement [280] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) FORM_SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) FORM_CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a Statement [281] *((const byte*) DTV_PLANEA_START_LO#0) ← <(const byte*) FORM_SCREEN#0 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a Statement [282] *((const byte*) DTV_PLANEA_START_MI#0) ← >(const byte*) FORM_SCREEN#0 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a Statement [283] *((const byte*) DTV_PLANEA_START_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a -Statement [285] *((const byte*) DTV_PALETTE#0 + (byte) form_mode::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) form_mode::i#2) [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_mode::i#2 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_mode::i#2 ] ) always clobbers reg byte a +Statement [285] *((const byte*) DTV_PALETTE#0 + (byte) form_mode::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) form_mode::i#2) [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_mode::i#2 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_mode::i#2 ] ) always clobbers reg byte a Statement [288] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a Statement [289] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ( main:2::form_mode:13 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 ] ) always clobbers reg byte a -Statement [292] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto form_mode::@5 [ keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_mode::preset_current#6 ] ( main:2::form_mode:13 [ keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_mode::preset_current#6 ] ) always clobbers reg byte a +Statement [292] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto form_mode::@5 [ keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_mode::preset_current#6 ] ( main:2::form_mode:13 [ keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_mode::preset_current#6 ] ) always clobbers reg byte a Statement [320] (byte*) print_str_at::str#1 ← (byte*) render_preset_name::name#13 [ print_str_at::str#1 ] ( main:2::form_mode:13::render_preset_name:271 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_at::str#1 ] main:2::form_mode:13::render_preset_name:305 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 print_str_at::str#1 ] ) always clobbers reg byte a Statement [325] if(*((byte*) print_str_at::str#2)!=(byte) '@') goto print_str_at::@2 [ print_str_at::str#2 print_str_at::at#2 ] ( main:2::form_mode:13::render_preset_name:271::print_str_at:321 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_at::str#2 print_str_at::at#2 ] main:2::form_mode:13::render_preset_name:305::print_str_at:321 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 print_str_at::str#2 print_str_at::at#2 ] ) always clobbers reg byte a reg byte y Statement [327] *((byte*) print_str_at::at#2) ← *((byte*) print_str_at::str#2) [ print_str_at::str#2 print_str_at::at#2 ] ( main:2::form_mode:13::render_preset_name:271::print_str_at:321 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_at::str#2 print_str_at::at#2 ] main:2::form_mode:13::render_preset_name:305::print_str_at:321 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 print_str_at::str#2 print_str_at::at#2 ] ) always clobbers reg byte a reg byte y Statement [334] (byte*) form_field_ptr::return#2 ← (byte*) form_field_ptr::return#0 [ form_render_values::idx#2 form_field_ptr::return#2 ] ( main:2::form_mode:13::form_render_values:269 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_render_values::idx#2 form_field_ptr::return#2 ] main:2::form_mode:13::form_render_values:303 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 form_render_values::idx#2 form_field_ptr::return#2 ] ) always clobbers reg byte a Statement [335] (byte*) form_render_values::field#0 ← (byte*) form_field_ptr::return#2 [ form_render_values::idx#2 form_render_values::field#0 ] ( main:2::form_mode:13::form_render_values:269 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_render_values::idx#2 form_render_values::field#0 ] main:2::form_mode:13::form_render_values:303 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 form_render_values::idx#2 form_render_values::field#0 ] ) always clobbers reg byte a Statement [336] *((byte*) form_render_values::field#0) ← *((const byte[]) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_render_values::idx#2)) [ form_render_values::idx#2 ] ( main:2::form_mode:13::form_render_values:269 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_render_values::idx#2 ] main:2::form_mode:13::form_render_values:303 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 form_render_values::idx#2 ] ) always clobbers reg byte a reg byte y -Statement [342] (word~) form_field_ptr::$2 ← *((const byte[25]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[25]) form_line_lo#0 + (byte) form_field_ptr::y#0) [ form_field_ptr::field_idx#2 form_field_ptr::$2 ] ( main:2::form_mode:13::form_render_values:269::form_field_ptr:333 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::$2 ] main:2::form_mode:13::form_render_values:303::form_field_ptr:333 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::$2 ] main:2::form_mode:13::form_control:294::form_field_ptr:365 [ form_mode::preset_current#6 keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_field_ptr::field_idx#2 form_field_ptr::$2 ] ) always clobbers reg byte a +Statement [342] (word~) form_field_ptr::$2 ← *((const byte[$19]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[$19]) form_line_lo#0 + (byte) form_field_ptr::y#0) [ form_field_ptr::field_idx#2 form_field_ptr::$2 ] ( main:2::form_mode:13::form_render_values:269::form_field_ptr:333 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::$2 ] main:2::form_mode:13::form_render_values:303::form_field_ptr:333 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::$2 ] main:2::form_mode:13::form_control:294::form_field_ptr:365 [ form_mode::preset_current#6 keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_field_ptr::field_idx#2 form_field_ptr::$2 ] ) always clobbers reg byte a Statement [344] (byte*) form_field_ptr::return#0 ← (byte*)(word~) form_field_ptr::$2 + (byte) form_field_ptr::x#0 [ form_field_ptr::return#0 ] ( main:2::form_mode:13::form_render_values:269::form_field_ptr:333 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_render_values::idx#2 form_field_ptr::return#0 ] main:2::form_mode:13::form_render_values:303::form_field_ptr:333 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 form_mode::preset_current#1 form_render_values::idx#2 form_field_ptr::return#0 ] main:2::form_mode:13::form_control:294::form_field_ptr:365 [ form_mode::preset_current#6 keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_field_ptr::return#0 ] ) always clobbers reg byte a Statement [360] *((const byte[]) form_fields_val#0 + (byte) apply_preset::i#2) ← *((byte*) apply_preset::preset#14 + (byte) apply_preset::i#2) [ apply_preset::preset#14 apply_preset::i#2 ] ( main:2::form_mode:13::apply_preset:301 [ form_cursor_count#16 keyboard_events_size#24 form_field_idx#18 apply_preset::preset#14 apply_preset::i#2 ] ) always clobbers reg byte a Statement [366] (byte*) form_field_ptr::return#3 ← (byte*) form_field_ptr::return#0 [ keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_field_ptr::return#3 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_field_ptr::return#3 ] ) always clobbers reg byte a Statement [367] (byte*) form_control::field#0 ← (byte*) form_field_ptr::return#3 [ keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_control::field#0 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#47 form_cursor_count#21 form_field_idx#28 form_control::field#0 ] ) always clobbers reg byte a Statement [371] if((signed byte) form_cursor_count#15<(const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2) goto form_control::@2 [ keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte a -Statement [372] (byte~) form_control::$5 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 form_control::$5 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 form_control::$5 ] ) always clobbers reg byte a reg byte y +Statement [372] (byte~) form_control::$5 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f [ keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 form_control::$5 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 form_control::$5 ] ) always clobbers reg byte a reg byte y Statement [373] *((byte*) form_control::field#0) ← (byte~) form_control::$5 [ keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte y -Statement [381] (byte~) form_control::$11 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ keyboard_events_size#24 keyboard_modifiers#21 form_field_idx#28 form_control::field#0 form_control::$11 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#24 keyboard_modifiers#21 form_field_idx#28 form_control::field#0 form_control::$11 ] ) always clobbers reg byte a reg byte y +Statement [381] (byte~) form_control::$11 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f [ keyboard_events_size#24 keyboard_modifiers#21 form_field_idx#28 form_control::field#0 form_control::$11 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#24 keyboard_modifiers#21 form_field_idx#28 form_control::field#0 form_control::$11 ] ) always clobbers reg byte a reg byte y Statement [382] *((byte*) form_control::field#0) ← (byte~) form_control::$11 [ keyboard_events_size#24 keyboard_modifiers#21 form_field_idx#28 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#24 keyboard_modifiers#21 form_field_idx#28 ] ) always clobbers reg byte y Statement [383] (byte~) form_control::$12 ← (byte) keyboard_modifiers#21 & (const byte) KEY_MODIFIER_SHIFT#0 [ keyboard_events_size#24 form_field_idx#28 form_control::$12 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#24 form_field_idx#28 form_control::$12 ] ) always clobbers reg byte a Statement [395] (byte~) form_control::$22 ← (byte) keyboard_modifiers#21 & (const byte) KEY_MODIFIER_SHIFT#0 [ keyboard_events_size#24 form_field_idx#28 form_control::field#0 form_cursor_count#15 form_control::$22 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#24 form_field_idx#28 form_control::field#0 form_cursor_count#15 form_control::$22 ] ) always clobbers reg byte a -Statement [398] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#28)!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@12 [ keyboard_events_size#24 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#24 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte a +Statement [398] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#28)!=(byte/word/signed word/dword/signed dword) $ff) goto form_control::@12 [ keyboard_events_size#24 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#24 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte a Statement [399] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#28) ← *((const byte[]) form_fields_max#0 + (byte) form_field_idx#28) [ keyboard_events_size#24 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#24 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte a Statement [400] *((byte*) form_control::field#0) ← *((const byte[]) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_field_idx#28)) [ keyboard_events_size#24 form_field_idx#28 form_cursor_count#15 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#24 form_field_idx#28 form_cursor_count#15 ] ) always clobbers reg byte a reg byte y Statement [402] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#28)<=*((const byte[]) form_fields_max#0 + (byte) form_field_idx#28)) goto form_control::@12 [ keyboard_events_size#24 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#24 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte a reg byte y Statement [403] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ keyboard_events_size#24 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#24 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte a -Statement [406] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) 128 [ keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 form_control::$6 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 form_control::$6 ] ) always clobbers reg byte a reg byte y +Statement [406] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) $80 [ keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 form_control::$6 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 form_control::$6 ] ) always clobbers reg byte a reg byte y Statement [407] *((byte*) form_control::field#0) ← (byte/word/dword~) form_control::$6 [ keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ( main:2::form_mode:13::form_control:294 [ form_mode::preset_current#6 keyboard_events_size#47 form_field_idx#28 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte y -Statement [415] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ form_set_screen::y#2 form_set_screen::line#1 ] ( main:2::form_mode:13::form_set_screen:267 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_set_screen::y#2 form_set_screen::line#1 ] ) always clobbers reg byte a +Statement [415] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ form_set_screen::y#2 form_set_screen::line#1 ] ( main:2::form_mode:13::form_set_screen:267 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 form_set_screen::y#2 form_set_screen::line#1 ] ) always clobbers reg byte a Statement [420] (byte*~) print_char_cursor#77 ← (byte*) print_set_screen::screen#2 [ print_str_lines::str#5 print_char_cursor#77 print_set_screen::screen#2 ] ( main:2::form_mode:13::print_str_lines:259 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#5 print_char_cursor#77 print_set_screen::screen#2 ] main:2::form_mode:13::print_str_lines:265 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#5 print_char_cursor#77 print_set_screen::screen#2 ] ) always clobbers reg byte a Statement [422] if(*((byte*) print_str_lines::str#3)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ( main:2::form_mode:13::print_str_lines:259 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] main:2::form_mode:13::print_str_lines:265 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#3 print_char_cursor#22 print_line_cursor#2 ] ) always clobbers reg byte a reg byte y Statement [425] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#4) [ print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::form_mode:13::print_str_lines:259 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] main:2::form_mode:13::print_str_lines:265 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#4 print_char_cursor#20 print_str_lines::ch#0 ] ) always clobbers reg byte a reg byte y Statement [428] *((byte*) print_char_cursor#20) ← (byte) print_str_lines::ch#0 [ print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ( main:2::form_mode:13::print_str_lines:259 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] main:2::form_mode:13::print_str_lines:265 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_line_cursor#2 print_str_lines::str#0 print_char_cursor#20 print_str_lines::ch#0 ] ) always clobbers reg byte y Statement [434] (byte*~) print_char_cursor#78 ← (byte*) print_line_cursor#22 [ print_str_lines::str#0 print_char_cursor#78 print_line_cursor#22 ] ( main:2::form_mode:13::print_str_lines:259 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#0 print_char_cursor#78 print_line_cursor#22 ] main:2::form_mode:13::print_str_lines:265 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#0 print_char_cursor#78 print_line_cursor#22 ] ) always clobbers reg byte a -Statement [437] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::form_mode:13::print_str_lines:259::print_ln:433 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::form_mode:13::print_str_lines:265::print_ln:433 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) always clobbers reg byte a +Statement [437] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::form_mode:13::print_str_lines:259::print_ln:433 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::form_mode:13::print_str_lines:265::print_ln:433 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) always clobbers reg byte a Statement [438] if((byte*) print_line_cursor#22<(byte*) print_char_cursor#38) goto print_ln::@1 [ print_line_cursor#22 print_char_cursor#38 ] ( main:2::form_mode:13::print_str_lines:259::print_ln:433 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] main:2::form_mode:13::print_str_lines:265::print_ln:433 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_str_lines::str#0 print_line_cursor#22 print_char_cursor#38 ] ) always clobbers reg byte a Statement [440] (byte*) print_cls::sc#0 ← (byte*) print_set_screen::screen#2 [ print_set_screen::screen#2 print_cls::sc#0 ] ( main:2::form_mode:13::print_cls:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#0 ] main:2::form_mode:13::print_cls:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#0 ] ) always clobbers reg byte a Statement [442] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_set_screen::screen#2 print_cls::sc#2 ] ( main:2::form_mode:13::print_cls:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#2 ] main:2::form_mode:13::print_cls:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [444] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) 1000 [ print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ( main:2::form_mode:13::print_cls:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] main:2::form_mode:13::print_cls:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ) always clobbers reg byte a +Statement [444] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) $3e8 [ print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ( main:2::form_mode:13::print_cls:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] main:2::form_mode:13::print_cls:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 print_cls::$0 ] ) always clobbers reg byte a Statement [445] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 [ print_set_screen::screen#2 print_cls::sc#1 ] ( main:2::form_mode:13::print_cls:257 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 ] main:2::form_mode:13::print_cls:263 [ form_cursor_count#1 keyboard_events_size#27 form_field_idx#1 print_set_screen::screen#2 print_cls::sc#1 ] ) always clobbers reg byte a Statement [484] (dword~) gfx_init_plane_fill::$0 ← (dword) gfx_init_plane_fill::plane_addr#3 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$0 ] ( main:2::gfx_init:10::gfx_init_plane_full:478::gfx_init_plane_fill:481 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$0 ] main:2::gfx_init:10::gfx_init_plane_blank:476::gfx_init_plane_fill:510 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$0 ] main:2::gfx_init:10::gfx_init_plane_vertical2:474::gfx_init_plane_fill:513 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$0 ] ) always clobbers reg byte a Statement [485] (word~) gfx_init_plane_fill::$1 ← > (dword~) gfx_init_plane_fill::$0 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$1 ] ( main:2::gfx_init:10::gfx_init_plane_full:478::gfx_init_plane_fill:481 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$1 ] main:2::gfx_init:10::gfx_init_plane_blank:476::gfx_init_plane_fill:510 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$1 ] main:2::gfx_init:10::gfx_init_plane_vertical2:474::gfx_init_plane_fill:513 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$1 ] ) always clobbers reg byte a Statement [486] (byte) gfx_init_plane_fill::gfxbCpuBank#0 ← < (word~) gfx_init_plane_fill::$1 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxbCpuBank#0 ] ( main:2::gfx_init:10::gfx_init_plane_full:478::gfx_init_plane_fill:481 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxbCpuBank#0 ] main:2::gfx_init:10::gfx_init_plane_blank:476::gfx_init_plane_fill:510 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxbCpuBank#0 ] main:2::gfx_init:10::gfx_init_plane_vertical2:474::gfx_init_plane_fill:513 [ gfx_init_plane_fill::plane_addr#3 gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxbCpuBank#0 ] ) always clobbers reg byte a Statement [490] (word~) gfx_init_plane_fill::$4 ← < (dword) gfx_init_plane_fill::plane_addr#3 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$4 ] ( main:2::gfx_init:10::gfx_init_plane_full:478::gfx_init_plane_fill:481 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$4 ] main:2::gfx_init:10::gfx_init_plane_blank:476::gfx_init_plane_fill:510 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$4 ] main:2::gfx_init:10::gfx_init_plane_vertical2:474::gfx_init_plane_fill:513 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$4 ] ) always clobbers reg byte a -Statement [491] (word~) gfx_init_plane_fill::$5 ← (word~) gfx_init_plane_fill::$4 & (word/signed word/dword/signed dword) 16383 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$5 ] ( main:2::gfx_init:10::gfx_init_plane_full:478::gfx_init_plane_fill:481 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$5 ] main:2::gfx_init:10::gfx_init_plane_blank:476::gfx_init_plane_fill:510 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$5 ] main:2::gfx_init:10::gfx_init_plane_vertical2:474::gfx_init_plane_fill:513 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$5 ] ) always clobbers reg byte a -Statement [492] (word/signed dword/dword~) gfx_init_plane_fill::$6 ← (word/signed word/dword/signed dword) 16384 + (word~) gfx_init_plane_fill::$5 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$6 ] ( main:2::gfx_init:10::gfx_init_plane_full:478::gfx_init_plane_fill:481 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$6 ] main:2::gfx_init:10::gfx_init_plane_blank:476::gfx_init_plane_fill:510 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$6 ] main:2::gfx_init:10::gfx_init_plane_vertical2:474::gfx_init_plane_fill:513 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$6 ] ) always clobbers reg byte a +Statement [491] (word~) gfx_init_plane_fill::$5 ← (word~) gfx_init_plane_fill::$4 & (word/signed word/dword/signed dword) $3fff [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$5 ] ( main:2::gfx_init:10::gfx_init_plane_full:478::gfx_init_plane_fill:481 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$5 ] main:2::gfx_init:10::gfx_init_plane_blank:476::gfx_init_plane_fill:510 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$5 ] main:2::gfx_init:10::gfx_init_plane_vertical2:474::gfx_init_plane_fill:513 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$5 ] ) always clobbers reg byte a +Statement [492] (word/signed dword/dword~) gfx_init_plane_fill::$6 ← (word/signed word/dword/signed dword) $4000 + (word~) gfx_init_plane_fill::$5 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$6 ] ( main:2::gfx_init:10::gfx_init_plane_full:478::gfx_init_plane_fill:481 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$6 ] main:2::gfx_init:10::gfx_init_plane_blank:476::gfx_init_plane_fill:510 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$6 ] main:2::gfx_init:10::gfx_init_plane_vertical2:474::gfx_init_plane_fill:513 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::$6 ] ) always clobbers reg byte a Statement [493] (byte*~) gfx_init_plane_fill::gfxb#6 ← (byte*)(word/signed dword/dword~) gfx_init_plane_fill::$6 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#6 ] ( main:2::gfx_init:10::gfx_init_plane_full:478::gfx_init_plane_fill:481 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#6 ] main:2::gfx_init:10::gfx_init_plane_blank:476::gfx_init_plane_fill:510 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#6 ] main:2::gfx_init:10::gfx_init_plane_vertical2:474::gfx_init_plane_fill:513 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::gfxb#6 ] ) always clobbers reg byte a Statement [496] *((byte*) gfx_init_plane_fill::gfxb#2) ← (byte) gfx_init_plane_fill::fill#6 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::by#4 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::bx#2 ] ( main:2::gfx_init:10::gfx_init_plane_full:478::gfx_init_plane_fill:481 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::by#4 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::bx#2 ] main:2::gfx_init:10::gfx_init_plane_blank:476::gfx_init_plane_fill:510 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::by#4 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::bx#2 ] main:2::gfx_init:10::gfx_init_plane_vertical2:474::gfx_init_plane_fill:513 [ gfx_init_plane_fill::fill#6 gfx_init_plane_fill::by#4 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::bx#2 ] ) always clobbers reg byte a reg byte y Statement asm { .byte$32,$dd lda$ff .byte$32,$00 } always clobbers reg byte a Statement [519] (byte~) gfx_init_plane_horisontal2::$5 ← (byte) gfx_init_plane_horisontal2::ay#4 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::gfxa#2 gfx_init_plane_horisontal2::ax#2 gfx_init_plane_horisontal2::$5 ] ( main:2::gfx_init:10::gfx_init_plane_horisontal2:472 [ gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::gfxa#2 gfx_init_plane_horisontal2::ax#2 gfx_init_plane_horisontal2::$5 ] ) always clobbers reg byte a Statement [520] (byte) gfx_init_plane_horisontal2::row#0 ← (byte~) gfx_init_plane_horisontal2::$5 & (byte/signed byte/word/signed word/dword/signed dword) 3 [ gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::gfxa#2 gfx_init_plane_horisontal2::ax#2 gfx_init_plane_horisontal2::row#0 ] ( main:2::gfx_init:10::gfx_init_plane_horisontal2:472 [ gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::gfxa#2 gfx_init_plane_horisontal2::ax#2 gfx_init_plane_horisontal2::row#0 ] ) always clobbers reg byte a Statement [521] *((byte*) gfx_init_plane_horisontal2::gfxa#2) ← *((const byte[]) gfx_init_plane_horisontal2::row_bitmask#0 + (byte) gfx_init_plane_horisontal2::row#0) [ gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::gfxa#2 gfx_init_plane_horisontal2::ax#2 ] ( main:2::gfx_init:10::gfx_init_plane_horisontal2:472 [ gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::gfxa#2 gfx_init_plane_horisontal2::ax#2 ] ) always clobbers reg byte a reg byte y -Statement [534] *((byte*) gfx_init_plane_vertical::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 15 [ gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::gfxb#2 gfx_init_plane_vertical::bx#2 ] ( main:2::gfx_init:10::gfx_init_plane_vertical:470 [ gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::gfxb#2 gfx_init_plane_vertical::bx#2 ] ) always clobbers reg byte a reg byte y +Statement [534] *((byte*) gfx_init_plane_vertical::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $f [ gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::gfxb#2 gfx_init_plane_vertical::bx#2 ] ( main:2::gfx_init:10::gfx_init_plane_vertical:470 [ gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::gfxb#2 gfx_init_plane_vertical::bx#2 ] ) always clobbers reg byte a reg byte y Statement [547] (byte~) gfx_init_plane_horisontal::$5 ← (byte) gfx_init_plane_horisontal::ay#4 & (byte/signed byte/word/signed word/dword/signed dword) 4 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::ax#2 gfx_init_plane_horisontal::$5 ] ( main:2::gfx_init:10::gfx_init_plane_horisontal:468 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::ax#2 gfx_init_plane_horisontal::$5 ] ) always clobbers reg byte a -Statement [549] *((byte*) gfx_init_plane_horisontal::gfxa#3) ← (byte/word/signed word/dword/signed dword) 255 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::ax#2 ] ( main:2::gfx_init:10::gfx_init_plane_horisontal:468 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::ax#2 ] ) always clobbers reg byte a reg byte y +Statement [549] *((byte*) gfx_init_plane_horisontal::gfxa#3) ← (byte/word/signed word/dword/signed dword) $ff [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::ax#2 ] ( main:2::gfx_init:10::gfx_init_plane_horisontal:468 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::ax#2 ] ) always clobbers reg byte a reg byte y Statement [559] *((byte*) gfx_init_plane_horisontal::gfxa#3) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::ax#2 ] ( main:2::gfx_init:10::gfx_init_plane_horisontal:468 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::ax#2 ] ) always clobbers reg byte a reg byte y Statement [563] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_CHARROM#0 [ ] ( main:2::gfx_init:10::gfx_init_plane_charset8:466 [ ] ) always clobbers reg byte a Statement [566] (byte) gfx_init_plane_charset8::bits#0 ← *((byte*) gfx_init_plane_charset8::chargen#2) [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#0 ] ( main:2::gfx_init:10::gfx_init_plane_charset8:466 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#0 ] ) always clobbers reg byte a reg byte y -Statement [569] (byte~) gfx_init_plane_charset8::$5 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) 128 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::$5 ] ( main:2::gfx_init:10::gfx_init_plane_charset8:466 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::$5 ] ) always clobbers reg byte a +Statement [569] (byte~) gfx_init_plane_charset8::$5 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) $80 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::$5 ] ( main:2::gfx_init:10::gfx_init_plane_charset8:466 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::$5 ] ) always clobbers reg byte a Statement [573] *((byte*) gfx_init_plane_charset8::gfxa#2) ← (byte) gfx_init_plane_charset8::c#2 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 ] ( main:2::gfx_init:10::gfx_init_plane_charset8:466 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 ] ) always clobbers reg byte y Statement [583] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:2::gfx_init:10::gfx_init_plane_charset8:466 [ ] ) always clobbers reg byte a -Statement [590] if((byte*) gfx_init_plane_8bppchunky::gfxb#3!=(word/dword/signed dword) 32768) goto gfx_init_plane_8bppchunky::@3 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::gfxbCpuBank#4 ] ( main:2::gfx_init:10::gfx_init_plane_8bppchunky:464 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::gfxbCpuBank#4 ] ) always clobbers reg byte a +Statement [590] if((byte*) gfx_init_plane_8bppchunky::gfxb#3!=(word/dword/signed dword) $8000) goto gfx_init_plane_8bppchunky::@3 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::gfxbCpuBank#4 ] ( main:2::gfx_init:10::gfx_init_plane_8bppchunky:464 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::gfxbCpuBank#4 ] ) always clobbers reg byte a Statement [595] (word~) gfx_init_plane_8bppchunky::$6 ← (word) gfx_init_plane_8bppchunky::x#2 + (byte) gfx_init_plane_8bppchunky::y#6 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::gfxb#4 gfx_init_plane_8bppchunky::$6 ] ( main:2::gfx_init:10::gfx_init_plane_8bppchunky:464 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::gfxb#4 gfx_init_plane_8bppchunky::$6 ] ) always clobbers reg byte a Statement [596] (byte) gfx_init_plane_8bppchunky::c#0 ← ((byte)) (word~) gfx_init_plane_8bppchunky::$6 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::gfxb#4 gfx_init_plane_8bppchunky::c#0 ] ( main:2::gfx_init:10::gfx_init_plane_8bppchunky:464 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::gfxb#4 gfx_init_plane_8bppchunky::c#0 ] ) always clobbers reg byte a Statement [597] *((byte*) gfx_init_plane_8bppchunky::gfxb#4) ← (byte) gfx_init_plane_8bppchunky::c#0 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::gfxb#4 ] ( main:2::gfx_init:10::gfx_init_plane_8bppchunky:464 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::gfxb#4 ] ) always clobbers reg byte y -Statement [600] if((word) gfx_init_plane_8bppchunky::x#1!=(word/signed word/dword/signed dword) 320) goto gfx_init_plane_8bppchunky::@2 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxb#1 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::x#1 ] ( main:2::gfx_init:10::gfx_init_plane_8bppchunky:464 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxb#1 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::x#1 ] ) always clobbers reg byte a +Statement [600] if((word) gfx_init_plane_8bppchunky::x#1!=(word/signed word/dword/signed dword) $140) goto gfx_init_plane_8bppchunky::@2 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxb#1 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::x#1 ] ( main:2::gfx_init:10::gfx_init_plane_8bppchunky:464 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::gfxb#1 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::x#1 ] ) always clobbers reg byte a Statement [620] (byte) bitmap_line::xd#2 ← (byte) bitmap_line::x0#0 - (byte) bitmap_line::x1#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#2 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615 [ gfx_init_vic_bitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#2 ] ) always clobbers reg byte a Statement [622] (byte) bitmap_line::yd#2 ← (byte) bitmap_line::y0#0 - (byte) bitmap_line::y1#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#2 bitmap_line::yd#2 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615 [ gfx_init_vic_bitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#2 bitmap_line::yd#2 ] ) always clobbers reg byte a Statement [637] (byte) bitmap_line::yd#1 ← (byte) bitmap_line::y1#0 - (byte) bitmap_line::y0#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#2 bitmap_line::yd#1 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615 [ gfx_init_vic_bitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#2 bitmap_line::yd#1 ] ) always clobbers reg byte a @@ -20188,10 +20188,10 @@ Statement [667] (byte) bitmap_line::yd#11 ← (byte) bitmap_line::y1#0 - (byte) Statement [682] (byte) bitmap_line_xdyi::e#0 ← (byte) bitmap_line_xdyi::yd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:636 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:680 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] ) always clobbers reg byte a Statement [688] (byte) bitmap_line_xdyi::e#1 ← (byte) bitmap_line_xdyi::e#3 + (byte) bitmap_line_xdyi::yd#2 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:636 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:680 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ) always clobbers reg byte a Statement [691] (byte) bitmap_line_xdyi::e#2 ← (byte) bitmap_line_xdyi::e#1 - (byte) bitmap_line_xdyi::xd#5 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:636 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:680 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] ) always clobbers reg byte a -Statement [697] (word) bitmap_plot::plotter_x#0 ← *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:636::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:680::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:629::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:674::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:650::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:666::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:644::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:660::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ) always clobbers reg byte a -Statement [698] (word) bitmap_plot::plotter_y#0 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) [ bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:636::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:680::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:629::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:674::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:650::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:666::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:644::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:660::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ) always clobbers reg byte a +Statement [697] (word) bitmap_plot::plotter_x#0 ← *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:636::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:680::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:629::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:674::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:650::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:666::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:644::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:660::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ) always clobbers reg byte a +Statement [698] (word) bitmap_plot::plotter_y#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) [ bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:636::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:680::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:629::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:674::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:650::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:666::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:644::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:660::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ) always clobbers reg byte a Statement [699] (word~) bitmap_plot::$0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0 [ bitmap_plot::x#4 bitmap_plot::$0 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:636::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:680::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:629::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:674::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:650::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:666::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:644::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:660::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] ) always clobbers reg byte a -Statement [700] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::$0 bitmap_plot::$1 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:636::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:680::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:629::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:674::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:650::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:666::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:644::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:660::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] ) always clobbers reg byte a reg byte y +Statement [700] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::$0 bitmap_plot::$1 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:636::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:680::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:629::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:674::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:650::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:666::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:644::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:660::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] ) always clobbers reg byte a reg byte y Statement [701] *((byte*)(word~) bitmap_plot::$0) ← (byte~) bitmap_plot::$1 [ ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:636::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyi:680::bitmap_plot:686 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:629::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:674::bitmap_plot:708 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:650::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_xdyd:666::bitmap_plot:723 [ gfx_init_vic_bitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:644::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:660::bitmap_plot:738 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ) always clobbers reg byte y Statement [704] (byte) bitmap_line_ydxi::e#0 ← (byte) bitmap_line_ydxi::xd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:629 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:674 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] ) always clobbers reg byte a Statement [710] (byte) bitmap_line_ydxi::e#1 ← (byte) bitmap_line_ydxi::e#3 + (byte) bitmap_line_ydxi::xd#2 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:629 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxi:674 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] ) always clobbers reg byte a @@ -20202,36 +20202,36 @@ Statement [728] (byte) bitmap_line_xdyd::e#2 ← (byte) bitmap_line_xdyd::e#1 - Statement [734] (byte) bitmap_line_ydxd::e#0 ← (byte) bitmap_line_ydxd::xd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:644 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:660 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] ) always clobbers reg byte a Statement [740] (byte) bitmap_line_ydxd::e#1 ← (byte) bitmap_line_ydxd::e#3 + (byte) bitmap_line_ydxd::xd#2 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:644 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:660 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ) always clobbers reg byte a Statement [743] (byte) bitmap_line_ydxd::e#2 ← (byte) bitmap_line_ydxd::e#1 - (byte) bitmap_line_ydxd::yd#5 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:644 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_line:615::bitmap_line_ydxd:660 [ gfx_init_vic_bitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] ) always clobbers reg byte a -Statement [748] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_xhi#0) w= *((const byte[256]) bitmap_plot_xlo#0) [ bitmap_clear::$3 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_clear:609 [ bitmap_clear::$3 ] ) always clobbers reg byte a +Statement [748] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_xhi#0) w= *((const byte[$100]) bitmap_plot_xlo#0) [ bitmap_clear::$3 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_clear:609 [ bitmap_clear::$3 ] ) always clobbers reg byte a Statement [749] (byte*~) bitmap_clear::bitmap#5 ← (byte*)(word~) bitmap_clear::$3 [ bitmap_clear::bitmap#5 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_clear:609 [ bitmap_clear::bitmap#5 ] ) always clobbers reg byte a Statement [752] *((byte*) bitmap_clear::bitmap#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_clear:609 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ) always clobbers reg byte a reg byte y -Statement [761] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) 248 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_init:607 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ) always clobbers reg byte a -Statement [763] *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) VIC_BITMAP#0 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_init:607 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a -Statement [764] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_init:607 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a +Statement [761] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) $f8 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_init:607 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ) always clobbers reg byte a +Statement [763] *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) VIC_BITMAP#0 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_init:607 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a +Statement [764] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_init:607 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a Statement [771] (byte~) bitmap_init::$6 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$6 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_init:607 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$6 ] ) always clobbers reg byte a Statement [777] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$10 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_init:607 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$10 ] ) always clobbers reg byte a -Statement [779] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_init:607 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ) always clobbers reg byte a -Statement [785] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ ] ( main:2::gfx_init:10::gfx_init_charset:460 [ ] ) always clobbers reg byte a +Statement [779] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:2::gfx_init:10::gfx_init_vic_bitmap:462::bitmap_init:607 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ) always clobbers reg byte a +Statement [785] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 [ ] ( main:2::gfx_init:10::gfx_init_charset:460 [ ] ) always clobbers reg byte a Statement [788] *((byte*) gfx_init_charset::charset#2) ← *((byte*) gfx_init_charset::chargen#2) [ gfx_init_charset::c#4 gfx_init_charset::chargen#2 gfx_init_charset::charset#2 gfx_init_charset::l#2 ] ( main:2::gfx_init:10::gfx_init_charset:460 [ gfx_init_charset::c#4 gfx_init_charset::chargen#2 gfx_init_charset::charset#2 gfx_init_charset::l#2 ] ) always clobbers reg byte a reg byte y -Statement [795] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 [ ] ( main:2::gfx_init:10::gfx_init_charset:460 [ ] ) always clobbers reg byte a +Statement [795] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 [ ] ( main:2::gfx_init:10::gfx_init_charset:460 [ ] ) always clobbers reg byte a Statement [800] *((byte*) gfx_init_screen4::ch#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ gfx_init_screen4::cy#4 gfx_init_screen4::ch#2 gfx_init_screen4::cx#2 ] ( main:2::gfx_init:10::gfx_init_screen4:458 [ gfx_init_screen4::cy#4 gfx_init_screen4::ch#2 gfx_init_screen4::cx#2 ] ) always clobbers reg byte a reg byte y Statement [810] (byte~) gfx_init_screen3::$0 ← (byte) gfx_init_screen3::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 3 [ gfx_init_screen3::cy#4 gfx_init_screen3::cx#2 gfx_init_screen3::ch#2 gfx_init_screen3::$0 ] ( main:2::gfx_init:10::gfx_init_screen3:456 [ gfx_init_screen3::cy#4 gfx_init_screen3::cx#2 gfx_init_screen3::ch#2 gfx_init_screen3::$0 ] ) always clobbers reg byte a Statement [811] (byte~) gfx_init_screen3::$1 ← (byte~) gfx_init_screen3::$0 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ gfx_init_screen3::cy#4 gfx_init_screen3::cx#2 gfx_init_screen3::ch#2 gfx_init_screen3::$1 ] ( main:2::gfx_init:10::gfx_init_screen3:456 [ gfx_init_screen3::cy#4 gfx_init_screen3::cx#2 gfx_init_screen3::ch#2 gfx_init_screen3::$1 ] ) always clobbers reg byte a Statement [812] (byte~) gfx_init_screen3::$2 ← (byte) gfx_init_screen3::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 3 [ gfx_init_screen3::cy#4 gfx_init_screen3::cx#2 gfx_init_screen3::ch#2 gfx_init_screen3::$1 gfx_init_screen3::$2 ] ( main:2::gfx_init:10::gfx_init_screen3:456 [ gfx_init_screen3::cy#4 gfx_init_screen3::cx#2 gfx_init_screen3::ch#2 gfx_init_screen3::$1 gfx_init_screen3::$2 ] ) always clobbers reg byte a Statement [814] *((byte*) gfx_init_screen3::ch#2) ← (byte~) gfx_init_screen3::$3 [ gfx_init_screen3::cy#4 gfx_init_screen3::cx#2 gfx_init_screen3::ch#2 ] ( main:2::gfx_init:10::gfx_init_screen3:456 [ gfx_init_screen3::cy#4 gfx_init_screen3::cx#2 gfx_init_screen3::ch#2 ] ) always clobbers reg byte y Statement [824] (byte~) gfx_init_screen2::$0 ← (byte) gfx_init_screen2::cx#2 + (byte) gfx_init_screen2::cy#4 [ gfx_init_screen2::cy#4 gfx_init_screen2::cx#2 gfx_init_screen2::ch#2 gfx_init_screen2::$0 ] ( main:2::gfx_init:10::gfx_init_screen2:454 [ gfx_init_screen2::cy#4 gfx_init_screen2::cx#2 gfx_init_screen2::ch#2 gfx_init_screen2::$0 ] ) always clobbers reg byte a -Statement [825] (byte) gfx_init_screen2::col#0 ← (byte~) gfx_init_screen2::$0 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ gfx_init_screen2::cy#4 gfx_init_screen2::cx#2 gfx_init_screen2::ch#2 gfx_init_screen2::col#0 ] ( main:2::gfx_init:10::gfx_init_screen2:454 [ gfx_init_screen2::cy#4 gfx_init_screen2::cx#2 gfx_init_screen2::ch#2 gfx_init_screen2::col#0 ] ) always clobbers reg byte a -Statement [826] (byte) gfx_init_screen2::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) gfx_init_screen2::col#0 [ gfx_init_screen2::cy#4 gfx_init_screen2::cx#2 gfx_init_screen2::ch#2 gfx_init_screen2::col#0 gfx_init_screen2::col2#0 ] ( main:2::gfx_init:10::gfx_init_screen2:454 [ gfx_init_screen2::cy#4 gfx_init_screen2::cx#2 gfx_init_screen2::ch#2 gfx_init_screen2::col#0 gfx_init_screen2::col2#0 ] ) always clobbers reg byte a +Statement [825] (byte) gfx_init_screen2::col#0 ← (byte~) gfx_init_screen2::$0 & (byte/signed byte/word/signed word/dword/signed dword) $f [ gfx_init_screen2::cy#4 gfx_init_screen2::cx#2 gfx_init_screen2::ch#2 gfx_init_screen2::col#0 ] ( main:2::gfx_init:10::gfx_init_screen2:454 [ gfx_init_screen2::cy#4 gfx_init_screen2::cx#2 gfx_init_screen2::ch#2 gfx_init_screen2::col#0 ] ) always clobbers reg byte a +Statement [826] (byte) gfx_init_screen2::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f - (byte) gfx_init_screen2::col#0 [ gfx_init_screen2::cy#4 gfx_init_screen2::cx#2 gfx_init_screen2::ch#2 gfx_init_screen2::col#0 gfx_init_screen2::col2#0 ] ( main:2::gfx_init:10::gfx_init_screen2:454 [ gfx_init_screen2::cy#4 gfx_init_screen2::cx#2 gfx_init_screen2::ch#2 gfx_init_screen2::col#0 gfx_init_screen2::col2#0 ] ) always clobbers reg byte a Statement [827] (byte~) gfx_init_screen2::$3 ← (byte) gfx_init_screen2::col#0 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ gfx_init_screen2::cy#4 gfx_init_screen2::cx#2 gfx_init_screen2::ch#2 gfx_init_screen2::col2#0 gfx_init_screen2::$3 ] ( main:2::gfx_init:10::gfx_init_screen2:454 [ gfx_init_screen2::cy#4 gfx_init_screen2::cx#2 gfx_init_screen2::ch#2 gfx_init_screen2::col2#0 gfx_init_screen2::$3 ] ) always clobbers reg byte a Statement [829] *((byte*) gfx_init_screen2::ch#2) ← (byte~) gfx_init_screen2::$4 [ gfx_init_screen2::cy#4 gfx_init_screen2::cx#2 gfx_init_screen2::ch#2 ] ( main:2::gfx_init:10::gfx_init_screen2:454 [ gfx_init_screen2::cy#4 gfx_init_screen2::cx#2 gfx_init_screen2::ch#2 ] ) always clobbers reg byte y Statement [839] (byte~) gfx_init_screen1::$0 ← (byte) gfx_init_screen1::cx#2 + (byte) gfx_init_screen1::cy#4 [ gfx_init_screen1::cy#4 gfx_init_screen1::cx#2 gfx_init_screen1::ch#2 gfx_init_screen1::$0 ] ( main:2::gfx_init:10::gfx_init_screen1:452 [ gfx_init_screen1::cy#4 gfx_init_screen1::cx#2 gfx_init_screen1::ch#2 gfx_init_screen1::$0 ] ) always clobbers reg byte a -Statement [840] (byte~) gfx_init_screen1::$1 ← (byte~) gfx_init_screen1::$0 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ gfx_init_screen1::cy#4 gfx_init_screen1::cx#2 gfx_init_screen1::ch#2 gfx_init_screen1::$1 ] ( main:2::gfx_init:10::gfx_init_screen1:452 [ gfx_init_screen1::cy#4 gfx_init_screen1::cx#2 gfx_init_screen1::ch#2 gfx_init_screen1::$1 ] ) always clobbers reg byte a +Statement [840] (byte~) gfx_init_screen1::$1 ← (byte~) gfx_init_screen1::$0 & (byte/signed byte/word/signed word/dword/signed dword) $f [ gfx_init_screen1::cy#4 gfx_init_screen1::cx#2 gfx_init_screen1::ch#2 gfx_init_screen1::$1 ] ( main:2::gfx_init:10::gfx_init_screen1:452 [ gfx_init_screen1::cy#4 gfx_init_screen1::cx#2 gfx_init_screen1::ch#2 gfx_init_screen1::$1 ] ) always clobbers reg byte a Statement [841] *((byte*) gfx_init_screen1::ch#2) ← (byte~) gfx_init_screen1::$1 [ gfx_init_screen1::cy#4 gfx_init_screen1::cx#2 gfx_init_screen1::ch#2 ] ( main:2::gfx_init:10::gfx_init_screen1:452 [ gfx_init_screen1::cy#4 gfx_init_screen1::cx#2 gfx_init_screen1::ch#2 ] ) always clobbers reg byte y -Statement [851] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$0 ] ( main:2::gfx_init:10::gfx_init_screen0:450 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$0 ] ) always clobbers reg byte a +Statement [851] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$0 ] ( main:2::gfx_init:10::gfx_init_screen0:450 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$0 ] ) always clobbers reg byte a Statement [852] (byte~) gfx_init_screen0::$1 ← (byte~) gfx_init_screen0::$0 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$1 ] ( main:2::gfx_init:10::gfx_init_screen0:450 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$1 ] ) always clobbers reg byte a -Statement [853] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$1 gfx_init_screen0::$2 ] ( main:2::gfx_init:10::gfx_init_screen0:450 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$1 gfx_init_screen0::$2 ] ) always clobbers reg byte a +Statement [853] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$1 gfx_init_screen0::$2 ] ( main:2::gfx_init:10::gfx_init_screen0:450 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 gfx_init_screen0::$1 gfx_init_screen0::$2 ] ) always clobbers reg byte a Statement [855] *((byte*) gfx_init_screen0::ch#2) ← (byte~) gfx_init_screen0::$3 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 ] ( main:2::gfx_init:10::gfx_init_screen0:450 [ gfx_init_screen0::cy#4 gfx_init_screen0::cx#2 gfx_init_screen0::ch#2 ] ) always clobbers reg byte y -Statement [862] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:2::keyboard_init:8 [ ] ) always clobbers reg byte a +Statement [862] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) $ff [ ] ( main:2::keyboard_init:8 [ ] ) always clobbers reg byte a Statement [863] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::keyboard_init:8 [ ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ gfx_mode::dtv_control#12 gfx_mode::dtv_control#6 gfx_mode::dtv_control#13 gfx_mode::dtv_control#5 gfx_mode::dtv_control#11 gfx_mode::dtv_control#4 gfx_mode::dtv_control#10 gfx_mode::dtv_control#15 gfx_mode::dtv_control#14 gfx_mode::dtv_control#2 gfx_mode::dtv_control#3 ] : zp ZP_BYTE:2 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:3 [ gfx_mode::vic_control#4 gfx_mode::vic_control#2 gfx_mode::vic_control#5 ] : zp ZP_BYTE:3 , reg byte x , reg byte y , @@ -21678,7 +21678,7 @@ gfx_mode: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG152 [93] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) VIC_SCREEN0#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG152 [93] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) VIC_SCREEN0#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^VIC_SCREEN0/$4000 sta CIA2_PORT_A @@ -21694,7 +21694,7 @@ gfx_mode: { //SEG158 gfx_mode::@48 b48: //SEG159 [97] (byte*~) gfx_mode::$61 ← (byte*) get_vic_screen::return#10 - //SEG160 [98] (word~) gfx_mode::$63 ← (word)(byte*~) gfx_mode::$61 & (word/signed word/dword/signed dword) 16383 -- vwuz1=vwuz1_band_vwuc1 + //SEG160 [98] (word~) gfx_mode::$63 ← (word)(byte*~) gfx_mode::$61 & (word/signed word/dword/signed dword) $3fff -- vwuz1=vwuz1_band_vwuc1 lda _63 and #<$3fff sta _63 @@ -21720,7 +21720,7 @@ gfx_mode: { //SEG166 gfx_mode::@49 b49: //SEG167 [104] (byte*~) gfx_mode::$66 ← (byte*) get_vic_charset::return#4 - //SEG168 [105] (word~) gfx_mode::$68 ← (word)(byte*~) gfx_mode::$66 & (word/signed word/dword/signed dword) 16383 -- vwuz1=vwuz1_band_vwuc1 + //SEG168 [105] (word~) gfx_mode::$68 ← (word)(byte*~) gfx_mode::$66 & (word/signed word/dword/signed dword) $3fff -- vwuz1=vwuz1_band_vwuc1 lda _68 and #<$3fff sta _68 @@ -21803,7 +21803,7 @@ gfx_mode: { !: //SEG201 [119] (byte) gfx_mode::cx#1 ← ++ (byte) gfx_mode::cx#2 -- vbuz1=_inc_vbuz1 inc cx - //SEG202 [120] if((byte) gfx_mode::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_mode::@11 -- vbuz1_neq_vbuc1_then_la1 + //SEG202 [120] if((byte) gfx_mode::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_mode::@11 -- vbuz1_neq_vbuc1_then_la1 lda cx cmp #$28 bne b11_from_b11 @@ -21812,7 +21812,7 @@ gfx_mode: { b32: //SEG204 [121] (byte) gfx_mode::cy#1 ← ++ (byte) gfx_mode::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG205 [122] if((byte) gfx_mode::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_mode::@10 -- vbuz1_neq_vbuc1_then_la1 + //SEG205 [122] if((byte) gfx_mode::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_mode::@10 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b10_from_b32 @@ -21885,13 +21885,13 @@ gfx_mode: { sta DTV_PALETTE,y //SEG227 [139] (byte) gfx_mode::j#1 ← ++ (byte) gfx_mode::j#2 -- vbuyy=_inc_vbuyy iny - //SEG228 [140] if((byte) gfx_mode::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto gfx_mode::@13 -- vbuyy_neq_vbuc1_then_la1 + //SEG228 [140] if((byte) gfx_mode::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto gfx_mode::@13 -- vbuyy_neq_vbuc1_then_la1 cpy #$10 bne b13_from_b13 jmp b19 //SEG229 gfx_mode::@19 b19: - //SEG230 [141] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto gfx_mode::@19 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG230 [141] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto gfx_mode::@19 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b19 @@ -21937,12 +21937,12 @@ gfx_mode: { jmp b15 //SEG249 gfx_mode::@15 b15: - //SEG250 [151] *((const byte*) DTV_PALETTE#0 + (byte) gfx_mode::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) gfx_mode::i#2) -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuyy + //SEG250 [151] *((const byte*) DTV_PALETTE#0 + (byte) gfx_mode::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) gfx_mode::i#2) -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuyy lda DTV_PALETTE_DEFAULT,y sta DTV_PALETTE,y //SEG251 [152] (byte) gfx_mode::i#1 ← ++ (byte) gfx_mode::i#2 -- vbuyy=_inc_vbuyy iny - //SEG252 [153] if((byte) gfx_mode::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto gfx_mode::@15 -- vbuyy_neq_vbuc1_then_la1 + //SEG252 [153] if((byte) gfx_mode::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto gfx_mode::@15 -- vbuyy_neq_vbuc1_then_la1 cpy #$10 bne b15_from_b15 jmp b19 @@ -21972,7 +21972,7 @@ keyboard_event_get: { //SEG261 [157] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] breturn_from_keyboard_event_get: //SEG262 [157] phi (byte) keyboard_events_size#24 = (byte) keyboard_events_size#100 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG263 [157] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuaa=vbuc1 + //SEG263 [157] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) $ff [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuaa=vbuc1 lda #$ff jmp breturn //SEG264 keyboard_event_get::@return @@ -22255,7 +22255,7 @@ keyboard_event_scan: { jmp b3_from_b19 //SEG371 keyboard_event_scan::@7 b7: - //SEG372 [210] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuaa=vbuz1_bor_vbuc1 + //SEG372 [210] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) $40 -- vbuaa=vbuz1_bor_vbuc1 lda #$40 ora keycode //SEG373 [211] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#18) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa @@ -22507,25 +22507,25 @@ get_plane: { jmp b37 //SEG443 get_plane::@37 b37: - //SEG444 [247] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 10) goto get_plane::@return -- vbuaa_eq_vbuc1_then_la1 + //SEG444 [247] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) $a) goto get_plane::@return -- vbuaa_eq_vbuc1_then_la1 cmp #$a beq breturn_from_b37 jmp b38 //SEG445 get_plane::@38 b38: - //SEG446 [248] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 11) goto get_plane::@return -- vbuaa_eq_vbuc1_then_la1 + //SEG446 [248] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) $b) goto get_plane::@return -- vbuaa_eq_vbuc1_then_la1 cmp #$b beq breturn_from_b38 jmp b39 //SEG447 get_plane::@39 b39: - //SEG448 [249] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 12) goto get_plane::@return -- vbuaa_eq_vbuc1_then_la1 + //SEG448 [249] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) $c) goto get_plane::@return -- vbuaa_eq_vbuc1_then_la1 cmp #$c beq breturn_from_b39 jmp b40 //SEG449 get_plane::@40 b40: - //SEG450 [250] if((byte) get_plane::idx#10!=(byte/signed byte/word/signed word/dword/signed dword) 13) goto get_plane::@27 -- vbuaa_neq_vbuc1_then_la1 + //SEG450 [250] if((byte) get_plane::idx#10!=(byte/signed byte/word/signed word/dword/signed dword) $d) goto get_plane::@27 -- vbuaa_neq_vbuc1_then_la1 cmp #$d bne b27_from_b40 //SEG451 [251] phi from get_plane::@40 to get_plane::@return [phi:get_plane::@40->get_plane::@return] @@ -22808,22 +22808,22 @@ form_mode: { jmp b29 //SEG521 form_mode::@29 b29: - //SEG522 [272] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) FORM_CHARSET#0/(dword/signed dword) 65536 -- _deref_pbuc1=vbuc2 + //SEG522 [272] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) FORM_CHARSET#0/(dword/signed dword) $10000 -- _deref_pbuc1=vbuc2 // DTV Graphics Bank lda #($ffffffff&FORM_CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG523 [273] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG523 [273] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #DTV_COLOR_BANK_DEFAULT/$400 sta DTV_COLOR_BANK_LO - //SEG524 [274] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG524 [274] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI //SEG525 [275] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG526 [276] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) FORM_CHARSET#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG526 [276] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) FORM_CHARSET#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^FORM_CHARSET/$4000 sta CIA2_PORT_A @@ -22839,7 +22839,7 @@ form_mode: { //SEG529 [279] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 -- _deref_pbuc1=vbuc2 lda #VIC_CSEL sta VIC_CONTROL2 - //SEG530 [280] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) FORM_SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) FORM_CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG530 [280] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) FORM_SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) FORM_CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // VIC Memory Pointers lda #(FORM_SCREEN&$3fff)/$40|(FORM_CHARSET&$3fff)/$400 sta VIC_MEMORY @@ -22865,12 +22865,12 @@ form_mode: { jmp b1 //SEG538 form_mode::@1 b1: - //SEG539 [285] *((const byte*) DTV_PALETTE#0 + (byte) form_mode::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) form_mode::i#2) -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuyy + //SEG539 [285] *((const byte*) DTV_PALETTE#0 + (byte) form_mode::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) form_mode::i#2) -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuyy lda DTV_PALETTE_DEFAULT,y sta DTV_PALETTE,y //SEG540 [286] (byte) form_mode::i#1 ← ++ (byte) form_mode::i#2 -- vbuyy=_inc_vbuyy iny - //SEG541 [287] if((byte) form_mode::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto form_mode::@1 -- vbuyy_neq_vbuc1_then_la1 + //SEG541 [287] if((byte) form_mode::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto form_mode::@1 -- vbuyy_neq_vbuc1_then_la1 cpy #$10 bne b1_from_b1 jmp b10 @@ -22906,7 +22906,7 @@ form_mode: { jmp b5 //SEG556 form_mode::@5 b5: - //SEG557 [292] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto form_mode::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG557 [292] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto form_mode::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b5 @@ -23032,7 +23032,7 @@ render_preset_name: { jmp b32 //SEG601 render_preset_name::@32 b32: - //SEG602 [317] if((byte) render_preset_name::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 10) goto render_preset_name::@22 -- vbuaa_eq_vbuc1_then_la1 + //SEG602 [317] if((byte) render_preset_name::idx#10==(byte/signed byte/word/signed word/dword/signed dword) $a) goto render_preset_name::@22 -- vbuaa_eq_vbuc1_then_la1 cmp #$a beq b22_from_b32 //SEG603 [318] phi from render_preset_name::@32 to render_preset_name::@33 [phi:render_preset_name::@32->render_preset_name::@33] @@ -23161,7 +23161,7 @@ print_str_at: { .label str = 3 //SEG634 [324] phi from print_str_at to print_str_at::@1 [phi:print_str_at->print_str_at::@1] b1_from_print_str_at: - //SEG635 [324] phi (byte*) print_str_at::at#2 = (const byte*) FORM_SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 10 [phi:print_str_at->print_str_at::@1#0] -- pbuz1=pbuc1 + //SEG635 [324] phi (byte*) print_str_at::at#2 = (const byte*) FORM_SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) $a [phi:print_str_at->print_str_at::@1#0] -- pbuz1=pbuc1 lda #FORM_SCREEN+$28*2+$a @@ -23261,7 +23261,7 @@ form_field_ptr: { //SEG667 [341] (byte) form_field_ptr::y#0 ← *((const byte[]) form_fields_y#0 + (byte) form_field_ptr::field_idx#2) -- vbuaa=pbuc1_derefidx_vbuz1 ldy field_idx lda form_fields_y,y - //SEG668 [342] (word~) form_field_ptr::$2 ← *((const byte[25]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[25]) form_line_lo#0 + (byte) form_field_ptr::y#0) -- vwuz1=pbuc1_derefidx_vbuaa_word_pbuc2_derefidx_vbuaa + //SEG668 [342] (word~) form_field_ptr::$2 ← *((const byte[$19]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[$19]) form_line_lo#0 + (byte) form_field_ptr::y#0) -- vwuz1=pbuc1_derefidx_vbuaa_word_pbuc2_derefidx_vbuaa tay lda form_line_hi,y sta _2+1 @@ -23349,7 +23349,7 @@ apply_preset: { jmp b33 //SEG693 apply_preset::@33 b33: - //SEG694 [356] if((byte) apply_preset::idx#0==(byte/signed byte/word/signed word/dword/signed dword) 10) goto apply_preset::@22 -- vbuaa_eq_vbuc1_then_la1 + //SEG694 [356] if((byte) apply_preset::idx#0==(byte/signed byte/word/signed word/dword/signed dword) $a) goto apply_preset::@22 -- vbuaa_eq_vbuc1_then_la1 cmp #$a beq b22_from_b33 //SEG695 [357] phi from apply_preset::@33 to apply_preset::@34 [phi:apply_preset::@33->apply_preset::@34] @@ -23516,7 +23516,7 @@ form_control: { jmp b16 //SEG744 form_control::@16 b16: - //SEG745 [372] (byte~) form_control::$5 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- vbuaa=_deref_pbuz1_band_vbuc1 + //SEG745 [372] (byte~) form_control::$5 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f -- vbuaa=_deref_pbuz1_band_vbuc1 lda #$7f ldy #0 and (field),y @@ -23552,7 +23552,7 @@ form_control: { jmp b18 //SEG759 form_control::@18 b18: - //SEG760 [381] (byte~) form_control::$11 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- vbuaa=_deref_pbuz1_band_vbuc1 + //SEG760 [381] (byte~) form_control::$11 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f -- vbuaa=_deref_pbuz1_band_vbuc1 lda #$7f ldy #0 and (field),y @@ -23571,7 +23571,7 @@ form_control: { b19: //SEG765 [385] (byte) form_field_idx#44 ← -- (byte) form_field_idx#28 -- vbuxx=_dec_vbuxx dex - //SEG766 [386] if((byte) form_field_idx#44!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@37 -- vbuxx_neq_vbuc1_then_la1 + //SEG766 [386] if((byte) form_field_idx#44!=(byte/word/signed word/dword/signed dword) $ff) goto form_control::@37 -- vbuxx_neq_vbuc1_then_la1 cpx #$ff bne b37_from_b19 //SEG767 [387] phi from form_control::@19 to form_control::@7 [phi:form_control::@19->form_control::@7] @@ -23641,7 +23641,7 @@ form_control: { b25: //SEG793 [397] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#28) ← -- *((const byte[]) form_fields_val#0 + (byte) form_field_idx#28) -- pbuc1_derefidx_vbuxx=_dec_pbuc1_derefidx_vbuxx dec form_fields_val,x - //SEG794 [398] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#28)!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@12 -- pbuc1_derefidx_vbuxx_neq_vbuc2_then_la1 + //SEG794 [398] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#28)!=(byte/word/signed word/dword/signed dword) $ff) goto form_control::@12 -- pbuc1_derefidx_vbuxx_neq_vbuc2_then_la1 lda form_fields_val,x cmp #$ff bne b12 @@ -23696,7 +23696,7 @@ form_control: { breturn_from_b9: //SEG811 [388] phi (byte) form_field_idx#18 = (byte) form_field_idx#28 [phi:form_control::@9->form_control::@return#0] -- register_copy //SEG812 [388] phi (signed byte) form_cursor_count#16 = (signed byte) form_cursor_count#15 [phi:form_control::@9->form_control::@return#1] -- register_copy - //SEG813 [388] phi (byte) form_control::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:form_control::@9->form_control::@return#2] -- vbuyy=vbuc1 + //SEG813 [388] phi (byte) form_control::return#2 = (byte/word/signed word/dword/signed dword) $ff [phi:form_control::@9->form_control::@return#2] -- vbuyy=vbuc1 ldy #$ff jmp breturn //SEG814 [405] phi from form_control::@9 to form_control::@39 [phi:form_control::@9->form_control::@39] @@ -23707,7 +23707,7 @@ form_control: { jmp breturn_from_b39 //SEG816 form_control::@2 b2: - //SEG817 [406] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) 128 -- vbuaa=_deref_pbuz1_bor_vbuc1 + //SEG817 [406] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) $80 -- vbuaa=_deref_pbuz1_bor_vbuc1 lda #$80 ldy #0 ora (field),y @@ -23749,13 +23749,13 @@ form_set_screen: { b1: //SEG831 [411] (byte~) form_set_screen::$0 ← < (byte*) form_set_screen::line#2 -- vbuaa=_lo_pbuz1 lda line - //SEG832 [412] *((const byte[25]) form_line_lo#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$0 -- pbuc1_derefidx_vbuyy=vbuaa + //SEG832 [412] *((const byte[$19]) form_line_lo#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$0 -- pbuc1_derefidx_vbuyy=vbuaa sta form_line_lo,y //SEG833 [413] (byte~) form_set_screen::$1 ← > (byte*) form_set_screen::line#2 -- vbuaa=_hi_pbuz1 lda line+1 - //SEG834 [414] *((const byte[25]) form_line_hi#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$1 -- pbuc1_derefidx_vbuyy=vbuaa + //SEG834 [414] *((const byte[$19]) form_line_hi#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$1 -- pbuc1_derefidx_vbuyy=vbuaa sta form_line_hi,y - //SEG835 [415] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG835 [415] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda line clc adc #$28 @@ -23765,7 +23765,7 @@ form_set_screen: { !: //SEG836 [416] (byte) form_set_screen::y#1 ← ++ (byte) form_set_screen::y#2 -- vbuyy=_inc_vbuyy iny - //SEG837 [417] if((byte) form_set_screen::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto form_set_screen::@1 -- vbuyy_neq_vbuc1_then_la1 + //SEG837 [417] if((byte) form_set_screen::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto form_set_screen::@1 -- vbuyy_neq_vbuc1_then_la1 cpy #$19 bne b1_from_b1 jmp breturn @@ -23870,7 +23870,7 @@ print_ln: { jmp b1 //SEG872 print_ln::@1 b1: - //SEG873 [437] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG873 [437] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -23919,7 +23919,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG884 [444] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) 1000 -- pbuz1=pbuz2_plus_vwuc1 + //SEG884 [444] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) $3e8 -- pbuz1=pbuz2_plus_vwuc1 lda print_set_screen.screen clc adc #<$3e8 @@ -24094,7 +24094,7 @@ gfx_init_plane_full: { //SEG952 [481] call gfx_init_plane_fill //SEG953 [483] phi from gfx_init_plane_full to gfx_init_plane_fill [phi:gfx_init_plane_full->gfx_init_plane_fill] gfx_init_plane_fill_from_gfx_init_plane_full: - //SEG954 [483] phi (byte) gfx_init_plane_fill::fill#6 = (byte/word/signed word/dword/signed dword) 255 [phi:gfx_init_plane_full->gfx_init_plane_fill#0] -- vbuz1=vbuc1 + //SEG954 [483] phi (byte) gfx_init_plane_fill::fill#6 = (byte/word/signed word/dword/signed dword) $ff [phi:gfx_init_plane_full->gfx_init_plane_fill#0] -- vbuz1=vbuc1 lda #$ff sta gfx_init_plane_fill.fill //SEG955 [483] phi (dword) gfx_init_plane_fill::plane_addr#3 = (const dword) PLANE_FULL#0 [phi:gfx_init_plane_full->gfx_init_plane_fill#1] -- vduz1=vduc1 @@ -24168,14 +24168,14 @@ gfx_init_plane_fill: { sta _4 lda plane_addr+1 sta _4+1 - //SEG969 [491] (word~) gfx_init_plane_fill::$5 ← (word~) gfx_init_plane_fill::$4 & (word/signed word/dword/signed dword) 16383 -- vwuz1=vwuz1_band_vwuc1 + //SEG969 [491] (word~) gfx_init_plane_fill::$5 ← (word~) gfx_init_plane_fill::$4 & (word/signed word/dword/signed dword) $3fff -- vwuz1=vwuz1_band_vwuc1 lda _5 and #<$3fff sta _5 lda _5+1 and #>$3fff sta _5+1 - //SEG970 [492] (word/signed dword/dword~) gfx_init_plane_fill::$6 ← (word/signed word/dword/signed dword) 16384 + (word~) gfx_init_plane_fill::$5 -- vwuz1=vwuc1_plus_vwuz1 + //SEG970 [492] (word/signed dword/dword~) gfx_init_plane_fill::$6 ← (word/signed word/dword/signed dword) $4000 + (word~) gfx_init_plane_fill::$5 -- vwuz1=vwuc1_plus_vwuz1 clc lda _6 adc #<$4000 @@ -24222,7 +24222,7 @@ gfx_init_plane_fill: { !: //SEG988 [498] (byte) gfx_init_plane_fill::bx#1 ← ++ (byte) gfx_init_plane_fill::bx#2 -- vbuxx=_inc_vbuxx inx - //SEG989 [499] if((byte) gfx_init_plane_fill::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_plane_fill::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG989 [499] if((byte) gfx_init_plane_fill::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_plane_fill::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b2_from_b2 jmp b3 @@ -24230,7 +24230,7 @@ gfx_init_plane_fill: { b3: //SEG991 [500] (byte) gfx_init_plane_fill::by#1 ← ++ (byte) gfx_init_plane_fill::by#4 -- vbuz1=_inc_vbuz1 inc by - //SEG992 [501] if((byte) gfx_init_plane_fill::by#1!=(byte/word/signed word/dword/signed dword) 200) goto gfx_init_plane_fill::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG992 [501] if((byte) gfx_init_plane_fill::by#1!=(byte/word/signed word/dword/signed dword) $c8) goto gfx_init_plane_fill::@1 -- vbuz1_neq_vbuc1_then_la1 lda by cmp #$c8 bne b1_from_b3 @@ -24242,7 +24242,7 @@ gfx_init_plane_fill: { //SEG995 [503] call dtvSetCpuBankSegment1 //SEG996 [505] phi from gfx_init_plane_fill::@4 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_fill::@4->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from_b4: - //SEG997 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_fill::@4->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + //SEG997 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_fill::@4->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #$4000/$4000 jsr dtvSetCpuBankSegment1 jmp breturn @@ -24302,7 +24302,7 @@ gfx_init_plane_vertical2: { //SEG1013 [513] call gfx_init_plane_fill //SEG1014 [483] phi from gfx_init_plane_vertical2 to gfx_init_plane_fill [phi:gfx_init_plane_vertical2->gfx_init_plane_fill] gfx_init_plane_fill_from_gfx_init_plane_vertical2: - //SEG1015 [483] phi (byte) gfx_init_plane_fill::fill#6 = (byte/signed byte/word/signed word/dword/signed dword) 27 [phi:gfx_init_plane_vertical2->gfx_init_plane_fill#0] -- vbuz1=vbuc1 + //SEG1015 [483] phi (byte) gfx_init_plane_fill::fill#6 = (byte/signed byte/word/signed word/dword/signed dword) $1b [phi:gfx_init_plane_vertical2->gfx_init_plane_fill#0] -- vbuz1=vbuc1 lda #$1b sta gfx_init_plane_fill.fill //SEG1016 [483] phi (dword) gfx_init_plane_fill::plane_addr#3 = (const dword) PLANE_VERTICAL2#0 [phi:gfx_init_plane_vertical2->gfx_init_plane_fill#1] -- vduz1=vduc1 @@ -24335,7 +24335,7 @@ gfx_init_plane_horisontal2: { jsr dtvSetCpuBankSegment1 //SEG1023 [517] phi from gfx_init_plane_horisontal2 to gfx_init_plane_horisontal2::@1 [phi:gfx_init_plane_horisontal2->gfx_init_plane_horisontal2::@1] b1_from_gfx_init_plane_horisontal2: - //SEG1024 [517] phi (byte*) gfx_init_plane_horisontal2::gfxa#3 = ((byte*))(word/signed word/dword/signed dword) 16384+(const dword) PLANE_HORISONTAL2#0&(word/signed word/dword/signed dword) 16383 [phi:gfx_init_plane_horisontal2->gfx_init_plane_horisontal2::@1#0] -- pbuz1=pbuc1 + //SEG1024 [517] phi (byte*) gfx_init_plane_horisontal2::gfxa#3 = ((byte*))(word/signed word/dword/signed dword) $4000+(const dword) PLANE_HORISONTAL2#0&(word/signed word/dword/signed dword) $3fff [phi:gfx_init_plane_horisontal2->gfx_init_plane_horisontal2::@1#0] -- pbuz1=pbuc1 lda #<$4000+(PLANE_HORISONTAL2&$3fff) sta gfxa lda #>$4000+(PLANE_HORISONTAL2&$3fff) @@ -24381,7 +24381,7 @@ gfx_init_plane_horisontal2: { !: //SEG1041 [523] (byte) gfx_init_plane_horisontal2::ax#1 ← ++ (byte) gfx_init_plane_horisontal2::ax#2 -- vbuxx=_inc_vbuxx inx - //SEG1042 [524] if((byte) gfx_init_plane_horisontal2::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_plane_horisontal2::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG1042 [524] if((byte) gfx_init_plane_horisontal2::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_plane_horisontal2::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b2_from_b2 jmp b3 @@ -24389,7 +24389,7 @@ gfx_init_plane_horisontal2: { b3: //SEG1044 [525] (byte) gfx_init_plane_horisontal2::ay#1 ← ++ (byte) gfx_init_plane_horisontal2::ay#4 -- vbuz1=_inc_vbuz1 inc ay - //SEG1045 [526] if((byte) gfx_init_plane_horisontal2::ay#1!=(byte/word/signed word/dword/signed dword) 200) goto gfx_init_plane_horisontal2::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1045 [526] if((byte) gfx_init_plane_horisontal2::ay#1!=(byte/word/signed word/dword/signed dword) $c8) goto gfx_init_plane_horisontal2::@1 -- vbuz1_neq_vbuc1_then_la1 lda ay cmp #$c8 bne b1_from_b3 @@ -24401,7 +24401,7 @@ gfx_init_plane_horisontal2: { //SEG1048 [528] call dtvSetCpuBankSegment1 //SEG1049 [505] phi from gfx_init_plane_horisontal2::@4 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_horisontal2::@4->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from_b4: - //SEG1050 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_horisontal2::@4->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + //SEG1050 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_horisontal2::@4->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #$4000/$4000 jsr dtvSetCpuBankSegment1 jmp breturn @@ -24428,7 +24428,7 @@ gfx_init_plane_vertical: { //SEG1058 [532] phi (byte) gfx_init_plane_vertical::by#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:gfx_init_plane_vertical->gfx_init_plane_vertical::@1#0] -- vbuz1=vbuc1 lda #0 sta by - //SEG1059 [532] phi (byte*) gfx_init_plane_vertical::gfxb#3 = ((byte*))(word/signed word/dword/signed dword) 16384+(const dword) PLANE_VERTICAL#0&(word/signed word/dword/signed dword) 16383 [phi:gfx_init_plane_vertical->gfx_init_plane_vertical::@1#1] -- pbuz1=pbuc1 + //SEG1059 [532] phi (byte*) gfx_init_plane_vertical::gfxb#3 = ((byte*))(word/signed word/dword/signed dword) $4000+(const dword) PLANE_VERTICAL#0&(word/signed word/dword/signed dword) $3fff [phi:gfx_init_plane_vertical->gfx_init_plane_vertical::@1#1] -- pbuz1=pbuc1 lda #<$4000+(PLANE_VERTICAL&$3fff) sta gfxb lda #>$4000+(PLANE_VERTICAL&$3fff) @@ -24454,7 +24454,7 @@ gfx_init_plane_vertical: { jmp b2 //SEG1070 gfx_init_plane_vertical::@2 b2: - //SEG1071 [534] *((byte*) gfx_init_plane_vertical::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuz1=vbuc1 + //SEG1071 [534] *((byte*) gfx_init_plane_vertical::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $f -- _deref_pbuz1=vbuc1 lda #$f ldy #0 sta (gfxb),y @@ -24465,7 +24465,7 @@ gfx_init_plane_vertical: { !: //SEG1073 [536] (byte) gfx_init_plane_vertical::bx#1 ← ++ (byte) gfx_init_plane_vertical::bx#2 -- vbuxx=_inc_vbuxx inx - //SEG1074 [537] if((byte) gfx_init_plane_vertical::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_plane_vertical::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG1074 [537] if((byte) gfx_init_plane_vertical::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_plane_vertical::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b2_from_b2 jmp b3 @@ -24473,7 +24473,7 @@ gfx_init_plane_vertical: { b3: //SEG1076 [538] (byte) gfx_init_plane_vertical::by#1 ← ++ (byte) gfx_init_plane_vertical::by#4 -- vbuz1=_inc_vbuz1 inc by - //SEG1077 [539] if((byte) gfx_init_plane_vertical::by#1!=(byte/word/signed word/dword/signed dword) 200) goto gfx_init_plane_vertical::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1077 [539] if((byte) gfx_init_plane_vertical::by#1!=(byte/word/signed word/dword/signed dword) $c8) goto gfx_init_plane_vertical::@1 -- vbuz1_neq_vbuc1_then_la1 lda by cmp #$c8 bne b1_from_b3 @@ -24485,7 +24485,7 @@ gfx_init_plane_vertical: { //SEG1080 [541] call dtvSetCpuBankSegment1 //SEG1081 [505] phi from gfx_init_plane_vertical::@4 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_vertical::@4->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from_b4: - //SEG1082 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_vertical::@4->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + //SEG1082 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_vertical::@4->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #$4000/$4000 jsr dtvSetCpuBankSegment1 jmp breturn @@ -24508,7 +24508,7 @@ gfx_init_plane_horisontal: { jsr dtvSetCpuBankSegment1 //SEG1089 [545] phi from gfx_init_plane_horisontal to gfx_init_plane_horisontal::@1 [phi:gfx_init_plane_horisontal->gfx_init_plane_horisontal::@1] b1_from_gfx_init_plane_horisontal: - //SEG1090 [545] phi (byte*) gfx_init_plane_horisontal::gfxa#6 = ((byte*))(word/signed word/dword/signed dword) 16384+(const dword) PLANE_HORISONTAL#0&(word/signed word/dword/signed dword) 16383 [phi:gfx_init_plane_horisontal->gfx_init_plane_horisontal::@1#0] -- pbuz1=pbuc1 + //SEG1090 [545] phi (byte*) gfx_init_plane_horisontal::gfxa#6 = ((byte*))(word/signed word/dword/signed dword) $4000+(const dword) PLANE_HORISONTAL#0&(word/signed word/dword/signed dword) $3fff [phi:gfx_init_plane_horisontal->gfx_init_plane_horisontal::@1#0] -- pbuz1=pbuc1 lda #<$4000+(PLANE_HORISONTAL&$3fff) sta gfxa lda #>$4000+(PLANE_HORISONTAL&$3fff) @@ -24546,7 +24546,7 @@ gfx_init_plane_horisontal: { jmp b5 //SEG1105 gfx_init_plane_horisontal::@5 b5: - //SEG1106 [549] *((byte*) gfx_init_plane_horisontal::gfxa#3) ← (byte/word/signed word/dword/signed dword) 255 -- _deref_pbuz1=vbuc1 + //SEG1106 [549] *((byte*) gfx_init_plane_horisontal::gfxa#3) ← (byte/word/signed word/dword/signed dword) $ff -- _deref_pbuz1=vbuc1 lda #$ff ldy #0 sta (gfxa),y @@ -24564,7 +24564,7 @@ gfx_init_plane_horisontal: { b4: //SEG1111 [552] (byte) gfx_init_plane_horisontal::ax#1 ← ++ (byte) gfx_init_plane_horisontal::ax#2 -- vbuxx=_inc_vbuxx inx - //SEG1112 [553] if((byte) gfx_init_plane_horisontal::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_plane_horisontal::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG1112 [553] if((byte) gfx_init_plane_horisontal::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_plane_horisontal::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b2_from_b4 jmp b7 @@ -24572,7 +24572,7 @@ gfx_init_plane_horisontal: { b7: //SEG1114 [554] (byte) gfx_init_plane_horisontal::ay#1 ← ++ (byte) gfx_init_plane_horisontal::ay#4 -- vbuz1=_inc_vbuz1 inc ay - //SEG1115 [555] if((byte) gfx_init_plane_horisontal::ay#1!=(byte/word/signed word/dword/signed dword) 200) goto gfx_init_plane_horisontal::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1115 [555] if((byte) gfx_init_plane_horisontal::ay#1!=(byte/word/signed word/dword/signed dword) $c8) goto gfx_init_plane_horisontal::@1 -- vbuz1_neq_vbuc1_then_la1 lda ay cmp #$c8 bne b1_from_b7 @@ -24584,7 +24584,7 @@ gfx_init_plane_horisontal: { //SEG1118 [557] call dtvSetCpuBankSegment1 //SEG1119 [505] phi from gfx_init_plane_horisontal::@8 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_horisontal::@8->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from_b8: - //SEG1120 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_horisontal::@8->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + //SEG1120 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_horisontal::@8->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #$4000/$4000 jsr dtvSetCpuBankSegment1 jmp breturn @@ -24635,7 +24635,7 @@ gfx_init_plane_charset8: { //SEG1134 [564] phi (byte) gfx_init_plane_charset8::col#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#1] -- vbuz1=vbuc1 lda #0 sta col - //SEG1135 [564] phi (byte*) gfx_init_plane_charset8::gfxa#6 = ((byte*))(word/signed word/dword/signed dword) 16384+(const dword) PLANE_CHARSET8#0&(word/signed word/dword/signed dword) 16383 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#2] -- pbuz1=pbuc1 + //SEG1135 [564] phi (byte*) gfx_init_plane_charset8::gfxa#6 = ((byte*))(word/signed word/dword/signed dword) $4000+(const dword) PLANE_CHARSET8#0&(word/signed word/dword/signed dword) $3fff [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#2] -- pbuz1=pbuc1 lda #<$4000+(PLANE_CHARSET8&$3fff) sta gfxa lda #>$4000+(PLANE_CHARSET8&$3fff) @@ -24699,7 +24699,7 @@ gfx_init_plane_charset8: { jmp b3 //SEG1166 gfx_init_plane_charset8::@3 b3: - //SEG1167 [569] (byte~) gfx_init_plane_charset8::$5 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG1167 [569] (byte~) gfx_init_plane_charset8::$5 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuz1_band_vbuc1 lda #$80 and bits //SEG1168 [570] if((byte~) gfx_init_plane_charset8::$5==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_plane_charset8::@4 -- vbuaa_eq_0_then_la1 @@ -24765,7 +24765,7 @@ gfx_init_plane_charset8: { //SEG1190 [584] call dtvSetCpuBankSegment1 //SEG1191 [505] phi from gfx_init_plane_charset8::@8 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from_b8: - //SEG1192 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + //SEG1192 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #$4000/$4000 jsr dtvSetCpuBankSegment1 jmp breturn @@ -24784,17 +24784,17 @@ gfx_init_plane_8bppchunky: { //SEG1196 [587] call dtvSetCpuBankSegment1 //SEG1197 [505] phi from gfx_init_plane_8bppchunky to dtvSetCpuBankSegment1 [phi:gfx_init_plane_8bppchunky->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from_gfx_init_plane_8bppchunky: - //SEG1198 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_8bppchunky->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + //SEG1198 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_8bppchunky->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #PLANE_8BPP_CHUNKY/$4000 jsr dtvSetCpuBankSegment1 //SEG1199 [588] phi from gfx_init_plane_8bppchunky to gfx_init_plane_8bppchunky::@1 [phi:gfx_init_plane_8bppchunky->gfx_init_plane_8bppchunky::@1] b1_from_gfx_init_plane_8bppchunky: - //SEG1200 [588] phi (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#7 = ++((byte))(const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_8bppchunky->gfx_init_plane_8bppchunky::@1#0] -- vbuxx=vbuc1 + //SEG1200 [588] phi (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#7 = ++((byte))(const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_8bppchunky->gfx_init_plane_8bppchunky::@1#0] -- vbuxx=vbuc1 ldx #PLANE_8BPP_CHUNKY/$4000+1 //SEG1201 [588] phi (byte) gfx_init_plane_8bppchunky::y#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:gfx_init_plane_8bppchunky->gfx_init_plane_8bppchunky::@1#1] -- vbuz1=vbuc1 lda #0 sta y - //SEG1202 [588] phi (byte*) gfx_init_plane_8bppchunky::gfxb#5 = ((byte*))(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_8bppchunky->gfx_init_plane_8bppchunky::@1#2] -- pbuz1=pbuc1 + //SEG1202 [588] phi (byte*) gfx_init_plane_8bppchunky::gfxb#5 = ((byte*))(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_8bppchunky->gfx_init_plane_8bppchunky::@1#2] -- pbuz1=pbuc1 lda #<$4000 sta gfxb lda #>$4000 @@ -24826,7 +24826,7 @@ gfx_init_plane_8bppchunky: { jmp b2 //SEG1216 gfx_init_plane_8bppchunky::@2 b2: - //SEG1217 [590] if((byte*) gfx_init_plane_8bppchunky::gfxb#3!=(word/dword/signed dword) 32768) goto gfx_init_plane_8bppchunky::@3 -- pbuz1_neq_vwuc1_then_la1 + //SEG1217 [590] if((byte*) gfx_init_plane_8bppchunky::gfxb#3!=(word/dword/signed dword) $8000) goto gfx_init_plane_8bppchunky::@3 -- pbuz1_neq_vwuc1_then_la1 lda gfxb+1 cmp #>$8000 bne b3_from_b2 @@ -24851,7 +24851,7 @@ gfx_init_plane_8bppchunky: { //SEG1225 [594] phi from gfx_init_plane_8bppchunky::@8 to gfx_init_plane_8bppchunky::@3 [phi:gfx_init_plane_8bppchunky::@8->gfx_init_plane_8bppchunky::@3] b3_from_b8: //SEG1226 [594] phi (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#8 = (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#2 [phi:gfx_init_plane_8bppchunky::@8->gfx_init_plane_8bppchunky::@3#0] -- register_copy - //SEG1227 [594] phi (byte*) gfx_init_plane_8bppchunky::gfxb#4 = ((byte*))(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_8bppchunky::@8->gfx_init_plane_8bppchunky::@3#1] -- pbuz1=pbuc1 + //SEG1227 [594] phi (byte*) gfx_init_plane_8bppchunky::gfxb#4 = ((byte*))(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_8bppchunky::@8->gfx_init_plane_8bppchunky::@3#1] -- pbuz1=pbuc1 lda #<$4000 sta gfxb lda #>$4000 @@ -24887,7 +24887,7 @@ gfx_init_plane_8bppchunky: { bne !+ inc x+1 !: - //SEG1237 [600] if((word) gfx_init_plane_8bppchunky::x#1!=(word/signed word/dword/signed dword) 320) goto gfx_init_plane_8bppchunky::@2 -- vwuz1_neq_vwuc1_then_la1 + //SEG1237 [600] if((word) gfx_init_plane_8bppchunky::x#1!=(word/signed word/dword/signed dword) $140) goto gfx_init_plane_8bppchunky::@2 -- vwuz1_neq_vwuc1_then_la1 lda x+1 cmp #>$140 bne b2_from_b3 @@ -24899,7 +24899,7 @@ gfx_init_plane_8bppchunky: { b5: //SEG1239 [601] (byte) gfx_init_plane_8bppchunky::y#1 ← ++ (byte) gfx_init_plane_8bppchunky::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG1240 [602] if((byte) gfx_init_plane_8bppchunky::y#1!=(byte/word/signed word/dword/signed dword) 200) goto gfx_init_plane_8bppchunky::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1240 [602] if((byte) gfx_init_plane_8bppchunky::y#1!=(byte/word/signed word/dword/signed dword) $c8) goto gfx_init_plane_8bppchunky::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$c8 bne b1_from_b5 @@ -24911,7 +24911,7 @@ gfx_init_plane_8bppchunky: { //SEG1243 [604] call dtvSetCpuBankSegment1 //SEG1244 [505] phi from gfx_init_plane_8bppchunky::@6 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_8bppchunky::@6->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from_b6: - //SEG1245 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_8bppchunky::@6->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + //SEG1245 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_8bppchunky::@6->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #$4000/$4000 jsr dtvSetCpuBankSegment1 jmp breturn @@ -25323,12 +25323,12 @@ bitmap_plot: { .label _0 = 3 .label plotter_x = 3 .label plotter_y = 5 - //SEG1424 [697] (word) bitmap_plot::plotter_x#0 ← *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx + //SEG1424 [697] (word) bitmap_plot::plotter_x#0 ← *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx lda bitmap_plot_xhi,x sta plotter_x+1 lda bitmap_plot_xlo,x sta plotter_x - //SEG1425 [698] (word) bitmap_plot::plotter_y#0 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) -- vwuz1=pbuc1_derefidx_vbuyy_word_pbuc2_derefidx_vbuyy + //SEG1425 [698] (word) bitmap_plot::plotter_y#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) -- vwuz1=pbuc1_derefidx_vbuyy_word_pbuc2_derefidx_vbuyy lda bitmap_plot_yhi,y sta plotter_y+1 lda bitmap_plot_ylo,y @@ -25341,7 +25341,7 @@ bitmap_plot: { lda _0+1 adc plotter_y+1 sta _0+1 - //SEG1427 [700] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) -- vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx + //SEG1427 [700] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) -- vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx lda bitmap_plot_bit,x ldy #0 ora (_0),y @@ -25586,7 +25586,7 @@ bitmap_clear: { .label bitmap = 3 .label y = 2 .label _3 = 3 - //SEG1516 [748] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_xhi#0) w= *((const byte[256]) bitmap_plot_xlo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 + //SEG1516 [748] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_xhi#0) w= *((const byte[$100]) bitmap_plot_xlo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 lda bitmap_plot_xlo sta _3 lda bitmap_plot_xhi @@ -25630,7 +25630,7 @@ bitmap_clear: { !: //SEG1534 [754] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 -- vbuxx=_inc_vbuxx inx - //SEG1535 [755] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) 200) goto bitmap_clear::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG1535 [755] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) $c8) goto bitmap_clear::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$c8 bne b2_from_b2 jmp b3 @@ -25638,7 +25638,7 @@ bitmap_clear: { b3: //SEG1537 [756] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 -- vbuz1=_inc_vbuz1 inc y - //SEG1538 [757] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1538 [757] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$28 bne b1_from_b3 @@ -25655,7 +25655,7 @@ bitmap_init: { .label yoffs = 3 //SEG1542 [760] phi from bitmap_init to bitmap_init::@1 [phi:bitmap_init->bitmap_init::@1] b1_from_bitmap_init: - //SEG1543 [760] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init->bitmap_init::@1#0] -- vbuyy=vbuc1 + //SEG1543 [760] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init->bitmap_init::@1#0] -- vbuyy=vbuc1 ldy #$80 //SEG1544 [760] phi (byte) bitmap_init::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:bitmap_init->bitmap_init::@1#1] -- vbuxx=vbuc1 ldx #0 @@ -25667,15 +25667,15 @@ bitmap_init: { jmp b1 //SEG1548 bitmap_init::@1 b1: - //SEG1549 [761] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) 248 -- vbuaa=vbuxx_band_vbuc1 + //SEG1549 [761] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) $f8 -- vbuaa=vbuxx_band_vbuc1 txa and #$f8 - //SEG1550 [762] *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG1550 [762] *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_xlo,x - //SEG1551 [763] *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) VIC_BITMAP#0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG1551 [763] *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) VIC_BITMAP#0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #>VIC_BITMAP sta bitmap_plot_xhi,x - //SEG1552 [764] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuxx=vbuyy + //SEG1552 [764] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuxx=vbuyy tya sta bitmap_plot_bit,x //SEG1553 [765] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuyy_ror_1 @@ -25687,7 +25687,7 @@ bitmap_init: { bne b10_from_b1 //SEG1555 [767] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2] b2_from_b1: - //SEG1556 [767] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuyy=vbuc1 + //SEG1556 [767] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuyy=vbuc1 ldy #$80 jmp b2 //SEG1557 bitmap_init::@2 @@ -25722,11 +25722,11 @@ bitmap_init: { lda yoffs //SEG1569 [773] (byte~) bitmap_init::$8 ← (byte~) bitmap_init::$6 | (byte~) bitmap_init::$7 -- vbuaa=vbuz1_bor_vbuaa ora _6 - //SEG1570 [774] *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG1570 [774] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_ylo,x //SEG1571 [775] (byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2 -- vbuaa=_hi_pbuz1 lda yoffs+1 - //SEG1572 [776] *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG1572 [776] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_yhi,x //SEG1573 [777] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuxx_band_vbuc1 txa @@ -25737,7 +25737,7 @@ bitmap_init: { jmp b7 //SEG1575 bitmap_init::@7 b7: - //SEG1576 [779] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 + //SEG1576 [779] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 clc lda yoffs adc #<$28*8 @@ -25777,7 +25777,7 @@ gfx_init_charset: { .label charset = 5 .label chargen = 3 .label c = 2 - //SEG1589 [785] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- _deref_pbuc1=vbuc2 + //SEG1589 [785] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 -- _deref_pbuc1=vbuc2 lda #$32 sta PROCPORT //SEG1590 [786] phi from gfx_init_charset to gfx_init_charset::@1 [phi:gfx_init_charset->gfx_init_charset::@1] @@ -25851,7 +25851,7 @@ gfx_init_charset: { jmp b4 //SEG1616 gfx_init_charset::@4 b4: - //SEG1617 [795] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 -- _deref_pbuc1=vbuc2 + //SEG1617 [795] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 -- _deref_pbuc1=vbuc2 lda #$37 sta PROCPORT jmp breturn @@ -25907,7 +25907,7 @@ gfx_init_screen4: { !: //SEG1637 [802] (byte) gfx_init_screen4::cx#1 ← ++ (byte) gfx_init_screen4::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG1638 [803] if((byte) gfx_init_screen4::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen4::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG1638 [803] if((byte) gfx_init_screen4::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen4::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b2_from_b2 jmp b3 @@ -25915,7 +25915,7 @@ gfx_init_screen4: { b3: //SEG1640 [804] (byte) gfx_init_screen4::cy#1 ← ++ (byte) gfx_init_screen4::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1641 [805] if((byte) gfx_init_screen4::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen4::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1641 [805] if((byte) gfx_init_screen4::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen4::@1 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b1_from_b3 @@ -25986,7 +25986,7 @@ gfx_init_screen3: { !: //SEG1665 [816] (byte) gfx_init_screen3::cx#1 ← ++ (byte) gfx_init_screen3::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG1666 [817] if((byte) gfx_init_screen3::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen3::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG1666 [817] if((byte) gfx_init_screen3::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen3::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b2_from_b2 jmp b3 @@ -25994,7 +25994,7 @@ gfx_init_screen3: { b3: //SEG1668 [818] (byte) gfx_init_screen3::cy#1 ← ++ (byte) gfx_init_screen3::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1669 [819] if((byte) gfx_init_screen3::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen3::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1669 [819] if((byte) gfx_init_screen3::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen3::@1 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b1_from_b3 @@ -26045,10 +26045,10 @@ gfx_init_screen2: { txa clc adc cy - //SEG1688 [825] (byte) gfx_init_screen2::col#0 ← (byte~) gfx_init_screen2::$0 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuyy=vbuaa_band_vbuc1 + //SEG1688 [825] (byte) gfx_init_screen2::col#0 ← (byte~) gfx_init_screen2::$0 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuyy=vbuaa_band_vbuc1 and #$f tay - //SEG1689 [826] (byte) gfx_init_screen2::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) gfx_init_screen2::col#0 -- vbuz1=vbuc1_minus_vbuyy + //SEG1689 [826] (byte) gfx_init_screen2::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f - (byte) gfx_init_screen2::col#0 -- vbuz1=vbuc1_minus_vbuyy tya eor #$ff clc @@ -26072,7 +26072,7 @@ gfx_init_screen2: { !: //SEG1694 [831] (byte) gfx_init_screen2::cx#1 ← ++ (byte) gfx_init_screen2::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG1695 [832] if((byte) gfx_init_screen2::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen2::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG1695 [832] if((byte) gfx_init_screen2::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen2::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b2_from_b2 jmp b3 @@ -26080,7 +26080,7 @@ gfx_init_screen2: { b3: //SEG1697 [833] (byte) gfx_init_screen2::cy#1 ← ++ (byte) gfx_init_screen2::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1698 [834] if((byte) gfx_init_screen2::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen2::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1698 [834] if((byte) gfx_init_screen2::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen2::@1 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b1_from_b3 @@ -26130,7 +26130,7 @@ gfx_init_screen1: { txa clc adc cy - //SEG1717 [840] (byte~) gfx_init_screen1::$1 ← (byte~) gfx_init_screen1::$0 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuaa_band_vbuc1 + //SEG1717 [840] (byte~) gfx_init_screen1::$1 ← (byte~) gfx_init_screen1::$0 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuaa_band_vbuc1 and #$f //SEG1718 [841] *((byte*) gfx_init_screen1::ch#2) ← (byte~) gfx_init_screen1::$1 -- _deref_pbuz1=vbuaa ldy #0 @@ -26142,7 +26142,7 @@ gfx_init_screen1: { !: //SEG1720 [843] (byte) gfx_init_screen1::cx#1 ← ++ (byte) gfx_init_screen1::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG1721 [844] if((byte) gfx_init_screen1::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen1::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG1721 [844] if((byte) gfx_init_screen1::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen1::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b2_from_b2 jmp b3 @@ -26150,7 +26150,7 @@ gfx_init_screen1: { b3: //SEG1723 [845] (byte) gfx_init_screen1::cy#1 ← ++ (byte) gfx_init_screen1::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1724 [846] if((byte) gfx_init_screen1::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen1::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1724 [846] if((byte) gfx_init_screen1::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen1::@1 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b1_from_b3 @@ -26197,7 +26197,7 @@ gfx_init_screen0: { jmp b2 //SEG1741 gfx_init_screen0::@2 b2: - //SEG1742 [851] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG1742 [851] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and cy //SEG1743 [852] (byte~) gfx_init_screen0::$1 ← (byte~) gfx_init_screen0::$0 << (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuaa_rol_4 @@ -26206,7 +26206,7 @@ gfx_init_screen0: { asl asl sta _1 - //SEG1744 [853] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG1744 [853] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG1745 [854] (byte~) gfx_init_screen0::$3 ← (byte~) gfx_init_screen0::$1 | (byte~) gfx_init_screen0::$2 -- vbuaa=vbuz1_bor_vbuaa @@ -26221,7 +26221,7 @@ gfx_init_screen0: { !: //SEG1748 [857] (byte) gfx_init_screen0::cx#1 ← ++ (byte) gfx_init_screen0::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG1749 [858] if((byte) gfx_init_screen0::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen0::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG1749 [858] if((byte) gfx_init_screen0::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen0::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b2_from_b2 jmp b3 @@ -26229,7 +26229,7 @@ gfx_init_screen0: { b3: //SEG1751 [859] (byte) gfx_init_screen0::cy#1 ← ++ (byte) gfx_init_screen0::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1752 [860] if((byte) gfx_init_screen0::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen0::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1752 [860] if((byte) gfx_init_screen0::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen0::@1 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b1_from_b3 @@ -26242,7 +26242,7 @@ gfx_init_screen0: { //SEG1755 keyboard_init // Initialize keyboard reading by setting CIA#$ Data Direction Registers keyboard_init: { - //SEG1756 [862] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 -- _deref_pbuc1=vbuc2 + //SEG1756 [862] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) $ff -- _deref_pbuc1=vbuc2 // Keyboard Matrix Columns Write Mode lda #$ff sta CIA1_PORT_A_DDR @@ -27387,41 +27387,41 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL1 -(const byte*) BGCOL1#0 BGCOL1 = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL1#0 BGCOL1 = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL2 -(const byte*) BGCOL2#0 BGCOL2 = ((byte*))(word/dword/signed dword) 53282 +(const byte*) BGCOL2#0 BGCOL2 = ((byte*))(word/dword/signed dword) $d022 (byte*) BGCOL3 -(const byte*) BGCOL3#0 BGCOL3 = ((byte*))(word/dword/signed dword) 53283 +(const byte*) BGCOL3#0 BGCOL3 = ((byte*))(word/dword/signed dword) $d023 (byte*) BGCOL4 -(const byte*) BGCOL4#0 BGCOL4 = ((byte*))(word/dword/signed dword) 53284 +(const byte*) BGCOL4#0 BGCOL4 = ((byte*))(word/dword/signed dword) $d024 (byte) BLACK (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN -(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word/dword/signed dword) 53248 +(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word/dword/signed dword) $d000 (byte*) CIA1_INTERRUPT (byte*) CIA1_PORT_A -(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) 56320 +(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) $dc00 (byte*) CIA1_PORT_A_DDR -(const byte*) CIA1_PORT_A_DDR#0 CIA1_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56322 +(const byte*) CIA1_PORT_A_DDR#0 CIA1_PORT_A_DDR = ((byte*))(word/dword/signed dword) $dc02 (byte*) CIA1_PORT_B -(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) 56321 +(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) $dc01 (byte*) CIA1_PORT_B_DDR -(const byte*) CIA1_PORT_B_DDR#0 CIA1_PORT_B_DDR = ((byte*))(word/dword/signed dword) 56323 +(const byte*) CIA1_PORT_B_DDR#0 CIA1_PORT_B_DDR = ((byte*))(word/dword/signed dword) $dc03 (byte*) CIA2_INTERRUPT (byte*) CIA2_PORT_A -(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) 56576 +(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) $dd00 (byte*) CIA2_PORT_A_DDR -(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56578 +(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) $dd02 (byte*) CIA2_PORT_B (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR (byte*) COLS -(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) 55296 +(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) $d800 (byte) CYAN (byte*) D011 (byte*) D016 @@ -27495,25 +27495,25 @@ FINAL SYMBOL TABLE (byte) DTV_BORDER_OFF (const byte) DTV_BORDER_OFF#0 DTV_BORDER_OFF = (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_CHUNKY -(const byte) DTV_CHUNKY#0 DTV_CHUNKY = (byte/signed byte/word/signed word/dword/signed dword) 64 +(const byte) DTV_CHUNKY#0 DTV_CHUNKY = (byte/signed byte/word/signed word/dword/signed dword) $40 (byte) DTV_COLORRAM_OFF -(const byte) DTV_COLORRAM_OFF#0 DTV_COLORRAM_OFF = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) DTV_COLORRAM_OFF#0 DTV_COLORRAM_OFF = (byte/signed byte/word/signed word/dword/signed dword) $10 (dword) DTV_COLOR_BANK_DEFAULT -(const dword) DTV_COLOR_BANK_DEFAULT#0 DTV_COLOR_BANK_DEFAULT = (dword/signed dword) 120832 +(const dword) DTV_COLOR_BANK_DEFAULT#0 DTV_COLOR_BANK_DEFAULT = (dword/signed dword) $1d800 (byte*) DTV_COLOR_BANK_HI -(const byte*) DTV_COLOR_BANK_HI#0 DTV_COLOR_BANK_HI = ((byte*))(word/dword/signed dword) 53303 +(const byte*) DTV_COLOR_BANK_HI#0 DTV_COLOR_BANK_HI = ((byte*))(word/dword/signed dword) $d037 (byte*) DTV_COLOR_BANK_LO -(const byte*) DTV_COLOR_BANK_LO#0 DTV_COLOR_BANK_LO = ((byte*))(word/dword/signed dword) 53302 +(const byte*) DTV_COLOR_BANK_LO#0 DTV_COLOR_BANK_LO = ((byte*))(word/dword/signed dword) $d036 (byte*) DTV_CONTROL -(const byte*) DTV_CONTROL#0 DTV_CONTROL = ((byte*))(word/dword/signed dword) 53308 +(const byte*) DTV_CONTROL#0 DTV_CONTROL = ((byte*))(word/dword/signed dword) $d03c (byte*) DTV_FEATURE -(const byte*) DTV_FEATURE#0 DTV_FEATURE = ((byte*))(word/dword/signed dword) 53311 +(const byte*) DTV_FEATURE#0 DTV_FEATURE = ((byte*))(word/dword/signed dword) $d03f (byte) DTV_FEATURE_DISABLE_TIL_RESET (byte) DTV_FEATURE_ENABLE (const byte) DTV_FEATURE_ENABLE#0 DTV_FEATURE_ENABLE = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) DTV_GRAPHICS_HICOL_BANK (byte*) DTV_GRAPHICS_VIC_BANK -(const byte*) DTV_GRAPHICS_VIC_BANK#0 DTV_GRAPHICS_VIC_BANK = ((byte*))(word/dword/signed dword) 53309 +(const byte*) DTV_GRAPHICS_VIC_BANK#0 DTV_GRAPHICS_VIC_BANK = ((byte*))(word/dword/signed dword) $d03d (byte) DTV_HIGHCOLOR (const byte) DTV_HIGHCOLOR#0 DTV_HIGHCOLOR = (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DTV_LINEAR @@ -27521,42 +27521,42 @@ FINAL SYMBOL TABLE (byte) DTV_OVERSCAN (const byte) DTV_OVERSCAN#0 DTV_OVERSCAN = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte*) DTV_PALETTE -(const byte*) DTV_PALETTE#0 DTV_PALETTE = ((byte*))(word/dword/signed dword) 53760 -(byte[16]) DTV_PALETTE_DEFAULT -(const byte[16]) DTV_PALETTE_DEFAULT#0 DTV_PALETTE_DEFAULT = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 54, (byte/word/signed word/dword/signed dword) 190, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 219, (byte/word/signed word/dword/signed dword) 134, (byte/word/signed word/dword/signed dword) 255, (byte/signed byte/word/signed word/dword/signed dword) 41, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 59, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 154, (byte/signed byte/word/signed word/dword/signed dword) 10 } +(const byte*) DTV_PALETTE#0 DTV_PALETTE = ((byte*))(word/dword/signed dword) $d200 +(byte[$10]) DTV_PALETTE_DEFAULT +(const byte[$10]) DTV_PALETTE_DEFAULT#0 DTV_PALETTE_DEFAULT = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $36, (byte/word/signed word/dword/signed dword) $be, (byte/signed byte/word/signed word/dword/signed dword) $58, (byte/word/signed word/dword/signed dword) $db, (byte/word/signed word/dword/signed dword) $86, (byte/word/signed word/dword/signed dword) $ff, (byte/signed byte/word/signed word/dword/signed dword) $29, (byte/signed byte/word/signed word/dword/signed dword) $26, (byte/signed byte/word/signed word/dword/signed dword) $3b, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $9a, (byte/signed byte/word/signed word/dword/signed dword) $a } (byte*) DTV_PLANEA_MODULO_HI -(const byte*) DTV_PLANEA_MODULO_HI#0 DTV_PLANEA_MODULO_HI = ((byte*))(word/dword/signed dword) 53305 +(const byte*) DTV_PLANEA_MODULO_HI#0 DTV_PLANEA_MODULO_HI = ((byte*))(word/dword/signed dword) $d039 (byte*) DTV_PLANEA_MODULO_LO -(const byte*) DTV_PLANEA_MODULO_LO#0 DTV_PLANEA_MODULO_LO = ((byte*))(word/dword/signed dword) 53304 +(const byte*) DTV_PLANEA_MODULO_LO#0 DTV_PLANEA_MODULO_LO = ((byte*))(word/dword/signed dword) $d038 (byte*) DTV_PLANEA_START_HI -(const byte*) DTV_PLANEA_START_HI#0 DTV_PLANEA_START_HI = ((byte*))(word/dword/signed dword) 53317 +(const byte*) DTV_PLANEA_START_HI#0 DTV_PLANEA_START_HI = ((byte*))(word/dword/signed dword) $d045 (byte*) DTV_PLANEA_START_LO -(const byte*) DTV_PLANEA_START_LO#0 DTV_PLANEA_START_LO = ((byte*))(word/dword/signed dword) 53306 +(const byte*) DTV_PLANEA_START_LO#0 DTV_PLANEA_START_LO = ((byte*))(word/dword/signed dword) $d03a (byte*) DTV_PLANEA_START_MI -(const byte*) DTV_PLANEA_START_MI#0 DTV_PLANEA_START_MI = ((byte*))(word/dword/signed dword) 53307 +(const byte*) DTV_PLANEA_START_MI#0 DTV_PLANEA_START_MI = ((byte*))(word/dword/signed dword) $d03b (byte*) DTV_PLANEA_STEP -(const byte*) DTV_PLANEA_STEP#0 DTV_PLANEA_STEP = ((byte*))(word/dword/signed dword) 53318 +(const byte*) DTV_PLANEA_STEP#0 DTV_PLANEA_STEP = ((byte*))(word/dword/signed dword) $d046 (byte*) DTV_PLANEB_MODULO_HI -(const byte*) DTV_PLANEB_MODULO_HI#0 DTV_PLANEB_MODULO_HI = ((byte*))(word/dword/signed dword) 53320 +(const byte*) DTV_PLANEB_MODULO_HI#0 DTV_PLANEB_MODULO_HI = ((byte*))(word/dword/signed dword) $d048 (byte*) DTV_PLANEB_MODULO_LO -(const byte*) DTV_PLANEB_MODULO_LO#0 DTV_PLANEB_MODULO_LO = ((byte*))(word/dword/signed dword) 53319 +(const byte*) DTV_PLANEB_MODULO_LO#0 DTV_PLANEB_MODULO_LO = ((byte*))(word/dword/signed dword) $d047 (byte*) DTV_PLANEB_START_HI -(const byte*) DTV_PLANEB_START_HI#0 DTV_PLANEB_START_HI = ((byte*))(word/dword/signed dword) 53323 +(const byte*) DTV_PLANEB_START_HI#0 DTV_PLANEB_START_HI = ((byte*))(word/dword/signed dword) $d04b (byte*) DTV_PLANEB_START_LO -(const byte*) DTV_PLANEB_START_LO#0 DTV_PLANEB_START_LO = ((byte*))(word/dword/signed dword) 53321 +(const byte*) DTV_PLANEB_START_LO#0 DTV_PLANEB_START_LO = ((byte*))(word/dword/signed dword) $d049 (byte*) DTV_PLANEB_START_MI -(const byte*) DTV_PLANEB_START_MI#0 DTV_PLANEB_START_MI = ((byte*))(word/dword/signed dword) 53322 +(const byte*) DTV_PLANEB_START_MI#0 DTV_PLANEB_START_MI = ((byte*))(word/dword/signed dword) $d04a (byte*) DTV_PLANEB_STEP -(const byte*) DTV_PLANEB_STEP#0 DTV_PLANEB_STEP = ((byte*))(word/dword/signed dword) 53324 +(const byte*) DTV_PLANEB_STEP#0 DTV_PLANEB_STEP = ((byte*))(word/dword/signed dword) $d04c (byte*) DTV_SPRITE_BANK (byte*) FORM_CHARSET -(const byte*) FORM_CHARSET#0 FORM_CHARSET = ((byte*))(word/signed word/dword/signed dword) 6144 +(const byte*) FORM_CHARSET#0 FORM_CHARSET = ((byte*))(word/signed word/dword/signed dword) $1800 (byte[]) FORM_COLS (const byte[]) FORM_COLS#0 FORM_COLS = (string) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+(string) " @"+(string) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+(string) " @"+(string) " nnnnnnnnnnnn mmmmmmmmmm ooooooooo @"+(string) " nnnnnnnnnnnn mmmmmmmmmm ooooooooo @"+(string) " nnnnnnnnnnnn mmmmmmmmmm ooooooooo @"+(string) " nnnnnnnnnnnn mmmmmmmmmm ooooooooo @"+(string) " nnnnnnnnnnnn mmmmmmmmmm @"+(string) " nnnnnnnnnnnn jjjjjjjjj @"+(string) " nnnnnnnnnnnn mmmmmmmmmm jjjjjjjjj @"+(string) " nnnnnnnnnnnn mmmmmmmmmm jjjjjjjjj @"+(string) " nnnnnnnnnnnn mmmmmmmmmm jjjjjjjjj @"+(string) " nnnnnnnnnnnn mmmmmmmmmm jjjjjjjjj @"+(string) " nnnnnnnnnnnn mmmmmmmmmm jjjjjjjjj @"+(string) " nnnnnnnnnnnn mmmmmmmmmm jjjjjjjjj @"+(string) "@" (signed byte) FORM_CURSOR_BLINK -(const signed byte) FORM_CURSOR_BLINK#0 FORM_CURSOR_BLINK = (byte/signed byte/word/signed word/dword/signed dword) 40 +(const signed byte) FORM_CURSOR_BLINK#0 FORM_CURSOR_BLINK = (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) FORM_SCREEN -(const byte*) FORM_SCREEN#0 FORM_SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) FORM_SCREEN#0 FORM_SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte[]) FORM_TEXT (const byte[]) FORM_TEXT#0 FORM_TEXT = (string) " C64 DTV Graphics Mode Explorer @"+(string) " @"+(string) " PRESET 0 Standard Charset @"+(string) " @"+(string) " CONTROL PLANE A VIC II @"+(string) " bmm 0 pattern p0 screen s0 @"+(string) " mcm 0 start 00 gfx g0 @"+(string) " ecm 0 step 00 colors c0 @"+(string) " hicolor 0 modulo 00 @"+(string) " linear 0 COLORS @"+(string) " color off 0 PLANE B palet 0 @"+(string) " chunky 0 pattern p0 bgcol0 00 @"+(string) " border off 0 start 00 bgcol1 00 @"+(string) " overscan 0 step 00 bgcol2 00 @"+(string) " modulo 00 bgcol3 00 @"+(string) "@" (byte) GREEN @@ -27589,13 +27589,13 @@ FINAL SYMBOL TABLE (byte) KEY_COLON (byte) KEY_COMMA (byte) KEY_COMMODORE -(const byte) KEY_COMMODORE#0 KEY_COMMODORE = (byte/signed byte/word/signed word/dword/signed dword) 61 +(const byte) KEY_COMMODORE#0 KEY_COMMODORE = (byte/signed byte/word/signed word/dword/signed dword) $3d (byte) KEY_CRSR_DOWN (const byte) KEY_CRSR_DOWN#0 KEY_CRSR_DOWN = (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) KEY_CRSR_RIGHT (const byte) KEY_CRSR_RIGHT#0 KEY_CRSR_RIGHT = (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) KEY_CTRL -(const byte) KEY_CTRL#0 KEY_CTRL = (byte/signed byte/word/signed word/dword/signed dword) 58 +(const byte) KEY_CTRL#0 KEY_CTRL = (byte/signed byte/word/signed word/dword/signed dword) $3a (byte) KEY_D (byte) KEY_DEL (byte) KEY_DOT @@ -27614,7 +27614,7 @@ FINAL SYMBOL TABLE (byte) KEY_K (byte) KEY_L (byte) KEY_LSHIFT -(const byte) KEY_LSHIFT#0 KEY_LSHIFT = (byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte) KEY_LSHIFT#0 KEY_LSHIFT = (byte/signed byte/word/signed word/dword/signed dword) $f (byte) KEY_M (byte) KEY_MINUS (byte) KEY_MODIFIER_COMMODORE @@ -27636,13 +27636,13 @@ FINAL SYMBOL TABLE (byte) KEY_R (byte) KEY_RETURN (byte) KEY_RSHIFT -(const byte) KEY_RSHIFT#0 KEY_RSHIFT = (byte/signed byte/word/signed word/dword/signed dword) 52 +(const byte) KEY_RSHIFT#0 KEY_RSHIFT = (byte/signed byte/word/signed word/dword/signed dword) $34 (byte) KEY_RUNSTOP (byte) KEY_S (byte) KEY_SEMICOLON (byte) KEY_SLASH (byte) KEY_SPACE -(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) 60 +(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) $3c (byte) KEY_T (byte) KEY_U (byte) KEY_V @@ -27658,21 +27658,21 @@ FINAL SYMBOL TABLE (byte) ORANGE (byte) PINK (dword) PLANE_8BPP_CHUNKY -(const dword) PLANE_8BPP_CHUNKY#0 PLANE_8BPP_CHUNKY = (dword/signed dword) 131072 +(const dword) PLANE_8BPP_CHUNKY#0 PLANE_8BPP_CHUNKY = (dword/signed dword) $20000 (dword) PLANE_BLANK -(const dword) PLANE_BLANK#0 PLANE_BLANK = (dword/signed dword) 229376 +(const dword) PLANE_BLANK#0 PLANE_BLANK = (dword/signed dword) $38000 (dword) PLANE_CHARSET8 -(const dword) PLANE_CHARSET8#0 PLANE_CHARSET8 = (dword/signed dword) 245760 +(const dword) PLANE_CHARSET8#0 PLANE_CHARSET8 = (dword/signed dword) $3c000 (dword) PLANE_FULL -(const dword) PLANE_FULL#0 PLANE_FULL = (dword/signed dword) 237568 +(const dword) PLANE_FULL#0 PLANE_FULL = (dword/signed dword) $3a000 (dword) PLANE_HORISONTAL -(const dword) PLANE_HORISONTAL#0 PLANE_HORISONTAL = (dword/signed dword) 196608 +(const dword) PLANE_HORISONTAL#0 PLANE_HORISONTAL = (dword/signed dword) $30000 (dword) PLANE_HORISONTAL2 -(const dword) PLANE_HORISONTAL2#0 PLANE_HORISONTAL2 = (dword/signed dword) 212992 +(const dword) PLANE_HORISONTAL2#0 PLANE_HORISONTAL2 = (dword/signed dword) $34000 (dword) PLANE_VERTICAL -(const dword) PLANE_VERTICAL#0 PLANE_VERTICAL = (dword/signed dword) 204800 +(const dword) PLANE_VERTICAL#0 PLANE_VERTICAL = (dword/signed dword) $32000 (dword) PLANE_VERTICAL2 -(const dword) PLANE_VERTICAL2#0 PLANE_VERTICAL2 = (dword/signed dword) 221184 +(const dword) PLANE_VERTICAL2#0 PLANE_VERTICAL2 = (dword/signed dword) $36000 (byte*) PROCPORT (const byte*) PROCPORT#0 PROCPORT = ((byte*))(byte/signed byte/word/signed word/dword/signed dword) 1 (byte) PROCPORT_BASIC_KERNEL_IO @@ -27683,12 +27683,12 @@ FINAL SYMBOL TABLE (byte) PROCPORT_KERNEL_IO (byte) PROCPORT_RAM_ALL (byte) PROCPORT_RAM_CHARROM -(const byte) PROCPORT_RAM_CHARROM#0 PROCPORT_RAM_CHARROM = (byte/signed byte/word/signed word/dword/signed dword) 49 +(const byte) PROCPORT_RAM_CHARROM#0 PROCPORT_RAM_CHARROM = (byte/signed byte/word/signed word/dword/signed dword) $31 (byte) PROCPORT_RAM_IO -(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) 53 +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) $35 (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE @@ -27703,38 +27703,38 @@ FINAL SYMBOL TABLE (byte*) SPRITES_YPOS (word) SPRITE_PTRS (byte*) VIC_BITMAP -(const byte*) VIC_BITMAP#0 VIC_BITMAP = ((byte*))(word/signed word/dword/signed dword) 24576 +(const byte*) VIC_BITMAP#0 VIC_BITMAP = ((byte*))(word/signed word/dword/signed dword) $6000 (byte) VIC_BMM -(const byte) VIC_BMM#0 VIC_BMM = (byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte) VIC_BMM#0 VIC_BMM = (byte/signed byte/word/signed word/dword/signed dword) $20 (byte*) VIC_CHARSET_ROM -(const byte*) VIC_CHARSET_ROM#0 VIC_CHARSET_ROM = ((byte*))(word/signed word/dword/signed dword) 22528 +(const byte*) VIC_CHARSET_ROM#0 VIC_CHARSET_ROM = ((byte*))(word/signed word/dword/signed dword) $5800 (byte*) VIC_CONTROL -(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) 53265 +(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) $d011 (byte*) VIC_CONTROL2 -(const byte*) VIC_CONTROL2#0 VIC_CONTROL2 = ((byte*))(word/dword/signed dword) 53270 +(const byte*) VIC_CONTROL2#0 VIC_CONTROL2 = ((byte*))(word/dword/signed dword) $d016 (byte) VIC_CSEL (const byte) VIC_CSEL#0 VIC_CSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) VIC_DEN -(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_ECM -(const byte) VIC_ECM#0 VIC_ECM = (byte/signed byte/word/signed word/dword/signed dword) 64 +(const byte) VIC_ECM#0 VIC_ECM = (byte/signed byte/word/signed word/dword/signed dword) $40 (byte) VIC_MCM -(const byte) VIC_MCM#0 VIC_MCM = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_MCM#0 VIC_MCM = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte*) VIC_MEMORY -(const byte*) VIC_MEMORY#0 VIC_MEMORY = ((byte*))(word/dword/signed dword) 53272 +(const byte*) VIC_MEMORY#0 VIC_MEMORY = ((byte*))(word/dword/signed dword) $d018 (byte) VIC_RSEL (const byte) VIC_RSEL#0 VIC_RSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) VIC_RST8 (byte*) VIC_SCREEN0 -(const byte*) VIC_SCREEN0#0 VIC_SCREEN0 = ((byte*))(word/signed word/dword/signed dword) 16384 +(const byte*) VIC_SCREEN0#0 VIC_SCREEN0 = ((byte*))(word/signed word/dword/signed dword) $4000 (byte*) VIC_SCREEN1 -(const byte*) VIC_SCREEN1#0 VIC_SCREEN1 = ((byte*))(word/signed word/dword/signed dword) 17408 +(const byte*) VIC_SCREEN1#0 VIC_SCREEN1 = ((byte*))(word/signed word/dword/signed dword) $4400 (byte*) VIC_SCREEN2 -(const byte*) VIC_SCREEN2#0 VIC_SCREEN2 = ((byte*))(word/signed word/dword/signed dword) 18432 +(const byte*) VIC_SCREEN2#0 VIC_SCREEN2 = ((byte*))(word/signed word/dword/signed dword) $4800 (byte*) VIC_SCREEN3 -(const byte*) VIC_SCREEN3#0 VIC_SCREEN3 = ((byte*))(word/signed word/dword/signed dword) 19456 +(const byte*) VIC_SCREEN3#0 VIC_SCREEN3 = ((byte*))(word/signed word/dword/signed dword) $4c00 (byte*) VIC_SCREEN4 -(const byte*) VIC_SCREEN4#0 VIC_SCREEN4 = ((byte*))(word/signed word/dword/signed dword) 20480 +(const byte*) VIC_SCREEN4#0 VIC_SCREEN4 = ((byte*))(word/signed word/dword/signed dword) $5000 (byte) WHITE (byte) YELLOW (void()) apply_preset((byte) apply_preset::idx) @@ -28010,52 +28010,52 @@ FINAL SYMBOL TABLE (byte) bitmap_plot::y#2 reg byte y 202.0 (byte) bitmap_plot::y#3 reg byte y 202.0 (byte) bitmap_plot::y#4 reg byte y 204.0 -(byte[256]) bitmap_plot_bit -(const byte[256]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( 256, 0) } -(byte[256]) bitmap_plot_xhi -(const byte[256]) bitmap_plot_xhi#0 bitmap_plot_xhi = { fill( 256, 0) } -(byte[256]) bitmap_plot_xlo -(const byte[256]) bitmap_plot_xlo#0 bitmap_plot_xlo = { fill( 256, 0) } -(byte[256]) bitmap_plot_yhi -(const byte[256]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( 256, 0) } -(byte[256]) bitmap_plot_ylo -(const byte[256]) bitmap_plot_ylo#0 bitmap_plot_ylo = { fill( 256, 0) } +(byte[$100]) bitmap_plot_bit +(const byte[$100]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( $100, 0) } +(byte[$100]) bitmap_plot_xhi +(const byte[$100]) bitmap_plot_xhi#0 bitmap_plot_xhi = { fill( $100, 0) } +(byte[$100]) bitmap_plot_xlo +(const byte[$100]) bitmap_plot_xlo#0 bitmap_plot_xlo = { fill( $100, 0) } +(byte[$100]) bitmap_plot_yhi +(const byte[$100]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( $100, 0) } +(byte[$100]) bitmap_plot_ylo +(const byte[$100]) bitmap_plot_ylo#0 bitmap_plot_ylo = { fill( $100, 0) } (void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx) (label) dtvSetCpuBankSegment1::@return (byte*) dtvSetCpuBankSegment1::cpuBank -(const byte*) dtvSetCpuBankSegment1::cpuBank#0 cpuBank = ((byte*))(byte/word/signed word/dword/signed dword) 255 +(const byte*) dtvSetCpuBankSegment1::cpuBank#0 cpuBank = ((byte*))(byte/word/signed word/dword/signed dword) $ff (byte) dtvSetCpuBankSegment1::cpuBankIdx (byte) dtvSetCpuBankSegment1::cpuBankIdx#1 reg byte a 202.0 (byte) dtvSetCpuBankSegment1::cpuBankIdx#11 reg byte a 4.0 (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 reg byte a 105.0 (byte*) form_a_mod_hi -(const byte*) form_a_mod_hi#0 form_a_mod_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte*) form_a_mod_hi#0 form_a_mod_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $f (byte*) form_a_mod_lo -(const byte*) form_a_mod_lo#0 form_a_mod_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte*) form_a_mod_lo#0 form_a_mod_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $10 (byte*) form_a_pattern -(const byte*) form_a_pattern#0 form_a_pattern = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 10 +(const byte*) form_a_pattern#0 form_a_pattern = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $a (byte*) form_a_start_hi -(const byte*) form_a_start_hi#0 form_a_start_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 11 +(const byte*) form_a_start_hi#0 form_a_start_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $b (byte*) form_a_start_lo -(const byte*) form_a_start_lo#0 form_a_start_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 12 +(const byte*) form_a_start_lo#0 form_a_start_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $c (byte*) form_a_step_hi -(const byte*) form_a_step_hi#0 form_a_step_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 13 +(const byte*) form_a_step_hi#0 form_a_step_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $d (byte*) form_a_step_lo -(const byte*) form_a_step_lo#0 form_a_step_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 14 +(const byte*) form_a_step_lo#0 form_a_step_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $e (byte*) form_b_mod_hi -(const byte*) form_b_mod_hi#0 form_b_mod_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 22 +(const byte*) form_b_mod_hi#0 form_b_mod_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $16 (byte*) form_b_mod_lo -(const byte*) form_b_mod_lo#0 form_b_mod_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 23 +(const byte*) form_b_mod_lo#0 form_b_mod_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $17 (byte*) form_b_pattern -(const byte*) form_b_pattern#0 form_b_pattern = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 17 +(const byte*) form_b_pattern#0 form_b_pattern = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $11 (byte*) form_b_start_hi -(const byte*) form_b_start_hi#0 form_b_start_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 18 +(const byte*) form_b_start_hi#0 form_b_start_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $12 (byte*) form_b_start_lo -(const byte*) form_b_start_lo#0 form_b_start_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 19 +(const byte*) form_b_start_lo#0 form_b_start_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $13 (byte*) form_b_step_hi -(const byte*) form_b_step_hi#0 form_b_step_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 20 +(const byte*) form_b_step_hi#0 form_b_step_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $14 (byte*) form_b_step_lo -(const byte*) form_b_step_lo#0 form_b_step_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 21 +(const byte*) form_b_step_lo#0 form_b_step_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $15 (byte()) form_control() (byte~) form_control::$11 reg byte a 4.0 (byte~) form_control::$12 reg byte a 4.0 @@ -28118,7 +28118,7 @@ FINAL SYMBOL TABLE (signed byte) form_cursor_count#21 form_cursor_count zp ZP_BYTE:14 158.0 (signed byte) form_cursor_count#5 form_cursor_count zp ZP_BYTE:14 2.0 (byte*) form_dtv_palet -(const byte*) form_dtv_palet#0 form_dtv_palet = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 27 +(const byte*) form_dtv_palet#0 form_dtv_palet = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $1b (byte) form_field_idx (byte) form_field_idx#1 reg byte x 0.3333333333333333 (byte) form_field_idx#18 reg byte x 65.94117647058826 @@ -28144,19 +28144,19 @@ FINAL SYMBOL TABLE (byte) form_field_ptr::y (byte) form_field_ptr::y#0 reg byte a 6.0 (byte) form_fields_cnt -(const byte) form_fields_cnt#0 form_fields_cnt = (byte/signed byte/word/signed word/dword/signed dword) 36 +(const byte) form_fields_cnt#0 form_fields_cnt = (byte/signed byte/word/signed word/dword/signed dword) $24 (byte[]) form_fields_max -(const byte[]) form_fields_max#0 form_fields_max = { (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15 } +(const byte[]) form_fields_max#0 form_fields_max = { (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f } (byte[]) form_fields_val (const byte[]) form_fields_val#0 form_fields_val = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) form_fields_x -(const byte[]) form_fields_x#0 form_fields_x = { (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 24, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 24, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 24, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 24, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 24, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 24, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 37, (byte/signed byte/word/signed word/dword/signed dword) 37, (byte/signed byte/word/signed word/dword/signed dword) 37, (byte/signed byte/word/signed word/dword/signed dword) 37, (byte/signed byte/word/signed word/dword/signed dword) 36, (byte/signed byte/word/signed word/dword/signed dword) 37, (byte/signed byte/word/signed word/dword/signed dword) 36, (byte/signed byte/word/signed word/dword/signed dword) 37, (byte/signed byte/word/signed word/dword/signed dword) 36, (byte/signed byte/word/signed word/dword/signed dword) 37, (byte/signed byte/word/signed word/dword/signed dword) 36, (byte/signed byte/word/signed word/dword/signed dword) 37 } +(const byte[]) form_fields_x#0 form_fields_x = { (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $18, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $18, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $18, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $18, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $18, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $18, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $25, (byte/signed byte/word/signed word/dword/signed dword) $25, (byte/signed byte/word/signed word/dword/signed dword) $25, (byte/signed byte/word/signed word/dword/signed dword) $25, (byte/signed byte/word/signed word/dword/signed dword) $24, (byte/signed byte/word/signed word/dword/signed dword) $25, (byte/signed byte/word/signed word/dword/signed dword) $24, (byte/signed byte/word/signed word/dword/signed dword) $25, (byte/signed byte/word/signed word/dword/signed dword) $24, (byte/signed byte/word/signed word/dword/signed dword) $25, (byte/signed byte/word/signed word/dword/signed dword) $24, (byte/signed byte/word/signed word/dword/signed dword) $25 } (byte[]) form_fields_y -(const byte[]) form_fields_y#0 form_fields_y = { (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 14, (byte/signed byte/word/signed word/dword/signed dword) 14, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 14, (byte/signed byte/word/signed word/dword/signed dword) 14 } -(byte[25]) form_line_hi -(const byte[25]) form_line_hi#0 form_line_hi = { fill( 25, 0) } -(byte[25]) form_line_lo -(const byte[25]) form_line_lo#0 form_line_lo = { fill( 25, 0) } +(const byte[]) form_fields_y#0 form_fields_y = { (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $e, (byte/signed byte/word/signed word/dword/signed dword) $e, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $e, (byte/signed byte/word/signed word/dword/signed dword) $e } +(byte[$19]) form_line_hi +(const byte[$19]) form_line_hi#0 form_line_hi = { fill( $19, 0) } +(byte[$19]) form_line_lo +(const byte[$19]) form_line_lo#0 form_line_lo = { fill( $19, 0) } (void()) form_mode() (byte~) form_mode::$36 reg byte a 2002.0 (label) form_mode::@1 @@ -28209,27 +28209,27 @@ FINAL SYMBOL TABLE (byte) form_set_screen::y#1 reg byte y 151.5 (byte) form_set_screen::y#2 reg byte y 67.33333333333333 (byte*) form_vic_bg0_hi -(const byte*) form_vic_bg0_hi#0 form_vic_bg0_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 28 +(const byte*) form_vic_bg0_hi#0 form_vic_bg0_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $1c (byte*) form_vic_bg0_lo -(const byte*) form_vic_bg0_lo#0 form_vic_bg0_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 29 +(const byte*) form_vic_bg0_lo#0 form_vic_bg0_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $1d (byte*) form_vic_bg1_hi -(const byte*) form_vic_bg1_hi#0 form_vic_bg1_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 30 +(const byte*) form_vic_bg1_hi#0 form_vic_bg1_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $1e (byte*) form_vic_bg1_lo -(const byte*) form_vic_bg1_lo#0 form_vic_bg1_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 31 +(const byte*) form_vic_bg1_lo#0 form_vic_bg1_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $1f (byte*) form_vic_bg2_hi -(const byte*) form_vic_bg2_hi#0 form_vic_bg2_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte*) form_vic_bg2_hi#0 form_vic_bg2_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $20 (byte*) form_vic_bg2_lo -(const byte*) form_vic_bg2_lo#0 form_vic_bg2_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 33 +(const byte*) form_vic_bg2_lo#0 form_vic_bg2_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $21 (byte*) form_vic_bg3_hi -(const byte*) form_vic_bg3_hi#0 form_vic_bg3_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 34 +(const byte*) form_vic_bg3_hi#0 form_vic_bg3_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $22 (byte*) form_vic_bg3_lo -(const byte*) form_vic_bg3_lo#0 form_vic_bg3_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 35 +(const byte*) form_vic_bg3_lo#0 form_vic_bg3_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $23 (byte*) form_vic_cols -(const byte*) form_vic_cols#0 form_vic_cols = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 26 +(const byte*) form_vic_cols#0 form_vic_cols = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $1a (byte*) form_vic_gfx -(const byte*) form_vic_gfx#0 form_vic_gfx = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 25 +(const byte*) form_vic_gfx#0 form_vic_gfx = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $19 (byte*) form_vic_screen -(const byte*) form_vic_screen#0 form_vic_screen = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 24 +(const byte*) form_vic_screen#0 form_vic_screen = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $18 (dword()) get_plane((byte) get_plane::idx) (label) get_plane::@27 (label) get_plane::@28 @@ -28387,7 +28387,7 @@ FINAL SYMBOL TABLE (byte*) gfx_init_plane_charset8::gfxa#5 gfxa zp ZP_WORD:5 71.0 (byte*) gfx_init_plane_charset8::gfxa#6 gfxa zp ZP_WORD:5 22.0 (byte) gfx_init_plane_charset8::gfxbCpuBank -(const byte) gfx_init_plane_charset8::gfxbCpuBank#0 gfxbCpuBank = ((byte))(const dword) PLANE_CHARSET8#0/(word/signed word/dword/signed dword) 16384 +(const byte) gfx_init_plane_charset8::gfxbCpuBank#0 gfxbCpuBank = ((byte))(const dword) PLANE_CHARSET8#0/(word/signed word/dword/signed dword) $4000 (void()) gfx_init_plane_fill((dword) gfx_init_plane_fill::plane_addr , (byte) gfx_init_plane_fill::fill) (dword~) gfx_init_plane_fill::$0 $0 zp ZP_DWORD:19 4.0 (word~) gfx_init_plane_fill::$1 $1 zp ZP_WORD:3 4.0 @@ -28443,7 +28443,7 @@ FINAL SYMBOL TABLE (byte*) gfx_init_plane_horisontal::gfxa#6 gfxa zp ZP_WORD:3 22.0 (byte*) gfx_init_plane_horisontal::gfxa#7 gfxa zp ZP_WORD:3 62.8 (byte) gfx_init_plane_horisontal::gfxbCpuBank -(const byte) gfx_init_plane_horisontal::gfxbCpuBank#0 gfxbCpuBank = ((byte))(const dword) PLANE_HORISONTAL#0/(word/signed word/dword/signed dword) 16384 +(const byte) gfx_init_plane_horisontal::gfxbCpuBank#0 gfxbCpuBank = ((byte))(const dword) PLANE_HORISONTAL#0/(word/signed word/dword/signed dword) $4000 (void()) gfx_init_plane_horisontal2() (byte~) gfx_init_plane_horisontal2::$5 reg byte a 202.0 (label) gfx_init_plane_horisontal2::@1 @@ -28462,11 +28462,11 @@ FINAL SYMBOL TABLE (byte*) gfx_init_plane_horisontal2::gfxa#2 gfxa zp ZP_WORD:3 78.5 (byte*) gfx_init_plane_horisontal2::gfxa#3 gfxa zp ZP_WORD:3 22.0 (byte) gfx_init_plane_horisontal2::gfxbCpuBank -(const byte) gfx_init_plane_horisontal2::gfxbCpuBank#0 gfxbCpuBank = ((byte))(const dword) PLANE_HORISONTAL2#0/(word/signed word/dword/signed dword) 16384 +(const byte) gfx_init_plane_horisontal2::gfxbCpuBank#0 gfxbCpuBank = ((byte))(const dword) PLANE_HORISONTAL2#0/(word/signed word/dword/signed dword) $4000 (byte) gfx_init_plane_horisontal2::row (byte) gfx_init_plane_horisontal2::row#0 reg byte a 202.0 (byte[]) gfx_init_plane_horisontal2::row_bitmask -(const byte[]) gfx_init_plane_horisontal2::row_bitmask#0 row_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 85, (byte/word/signed word/dword/signed dword) 170, (byte/word/signed word/dword/signed dword) 255 } +(const byte[]) gfx_init_plane_horisontal2::row_bitmask#0 row_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $55, (byte/word/signed word/dword/signed dword) $aa, (byte/word/signed word/dword/signed dword) $ff } (void()) gfx_init_plane_vertical() (label) gfx_init_plane_vertical::@1 (label) gfx_init_plane_vertical::@2 @@ -28484,7 +28484,7 @@ FINAL SYMBOL TABLE (byte*) gfx_init_plane_vertical::gfxb#2 gfxb zp ZP_WORD:3 157.0 (byte*) gfx_init_plane_vertical::gfxb#3 gfxb zp ZP_WORD:3 22.0 (byte) gfx_init_plane_vertical::gfxbCpuBank -(const byte) gfx_init_plane_vertical::gfxbCpuBank#0 gfxbCpuBank = ((byte))(const dword) PLANE_VERTICAL#0/(word/signed word/dword/signed dword) 16384 +(const byte) gfx_init_plane_vertical::gfxbCpuBank#0 gfxbCpuBank = ((byte))(const dword) PLANE_VERTICAL#0/(word/signed word/dword/signed dword) $4000 (void()) gfx_init_plane_vertical2() (label) gfx_init_plane_vertical2::@return (void()) gfx_init_screen0() @@ -28590,9 +28590,9 @@ FINAL SYMBOL TABLE (byte) gfx_init_vic_bitmap::lines_cnt (const byte) gfx_init_vic_bitmap::lines_cnt#0 lines_cnt = (byte/signed byte/word/signed word/dword/signed dword) 9 (byte[]) gfx_init_vic_bitmap::lines_x -(const byte[]) gfx_init_vic_bitmap::lines_x#0 lines_x = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 128, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 128, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 128 } +(const byte[]) gfx_init_vic_bitmap::lines_x#0 lines_x = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $ff, (byte/word/signed word/dword/signed dword) $ff, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $80, (byte/word/signed word/dword/signed dword) $ff, (byte/word/signed word/dword/signed dword) $80, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $80 } (byte[]) gfx_init_vic_bitmap::lines_y -(const byte[]) gfx_init_vic_bitmap::lines_y#0 lines_y = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 199, (byte/word/signed word/dword/signed dword) 199, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/word/signed word/dword/signed dword) 199, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/signed byte/word/signed word/dword/signed dword) 0 } +(const byte[]) gfx_init_vic_bitmap::lines_y#0 lines_y = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $c7, (byte/word/signed word/dword/signed dword) $c7, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $64, (byte/word/signed word/dword/signed dword) $c7, (byte/signed byte/word/signed word/dword/signed dword) $64, (byte/signed byte/word/signed word/dword/signed dword) 0 } (void()) gfx_mode() (byte~) gfx_mode::$29 reg byte a 4.0 (dword~) gfx_mode::$31 $31 zp ZP_DWORD:10 4.0 @@ -28806,7 +28806,7 @@ FINAL SYMBOL TABLE (void()) keyboard_init() (label) keyboard_init::@return (byte[8]) keyboard_matrix_col_bitmask -(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $10, (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/word/signed word/dword/signed dword) $80 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (label) keyboard_matrix_read::@return (byte) keyboard_matrix_read::return @@ -28816,7 +28816,7 @@ FINAL SYMBOL TABLE (byte) keyboard_matrix_read::rowid (byte) keyboard_matrix_read::rowid#0 reg byte a 10003.0 (byte[8]) keyboard_matrix_row_bitmask -(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } +(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) $fe, (byte/word/signed word/dword/signed dword) $fd, (byte/word/signed word/dword/signed dword) $fb, (byte/word/signed word/dword/signed dword) $f7, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $bf, (byte/signed byte/word/signed word/dword/signed dword) $7f } (byte) keyboard_modifiers (byte) keyboard_modifiers#18 keyboard_modifiers zp ZP_BYTE:2 0.8 (byte) keyboard_modifiers#19 keyboard_modifiers zp ZP_BYTE:2 1.6 @@ -28833,27 +28833,27 @@ FINAL SYMBOL TABLE (label) main::@7 (label) main::@9 (byte[]) preset_8bpppixelcell -(const byte[]) preset_8bpppixelcell#0 preset_8bpppixelcell = { (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } +(const byte[]) preset_8bpppixelcell#0 preset_8bpppixelcell = { (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) preset_chunky (const byte[]) preset_chunky#0 preset_chunky = { (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) preset_ecmchar (const byte[]) preset_ecmchar#0 preset_ecmchar = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 6 } (byte[]) preset_hi_ecmchar -(const byte[]) preset_hi_ecmchar#0 preset_hi_ecmchar = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12 } +(const byte[]) preset_hi_ecmchar#0 preset_hi_ecmchar = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c } (byte[]) preset_hi_stdchar (const byte[]) preset_hi_stdchar#0 preset_hi_stdchar = { (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) preset_mcbm (const byte[]) preset_mcbm#0 preset_mcbm = { (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) preset_sixsfred -(const byte[]) preset_sixsfred#0 preset_sixsfred = { (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } +(const byte[]) preset_sixsfred#0 preset_sixsfred = { (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) preset_sixsfred2 -(const byte[]) preset_sixsfred2#0 preset_sixsfred2 = { (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } +(const byte[]) preset_sixsfred2#0 preset_sixsfred2 = { (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) preset_stdbm (const byte[]) preset_stdbm#0 preset_stdbm = { (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) preset_stdchar (const byte[]) preset_stdchar#0 preset_stdchar = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) preset_twoplane -(const byte[]) preset_twoplane#0 preset_twoplane = { (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } +(const byte[]) preset_twoplane#0 preset_twoplane = { (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte*) print_char_cursor (byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:5 2002.0 (byte*) print_char_cursor#20 print_char_cursor zp ZP_WORD:5 821.0 @@ -29639,7 +29639,7 @@ gfx_mode: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG152 [93] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) VIC_SCREEN0#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG152 [93] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) VIC_SCREEN0#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^VIC_SCREEN0/$4000 sta CIA2_PORT_A @@ -29652,7 +29652,7 @@ gfx_mode: { //SEG157 [96] (byte*) get_vic_screen::return#10 ← (byte*) get_vic_screen::return#5 //SEG158 gfx_mode::@48 //SEG159 [97] (byte*~) gfx_mode::$61 ← (byte*) get_vic_screen::return#10 - //SEG160 [98] (word~) gfx_mode::$63 ← (word)(byte*~) gfx_mode::$61 & (word/signed word/dword/signed dword) 16383 -- vwuz1=vwuz1_band_vwuc1 + //SEG160 [98] (word~) gfx_mode::$63 ← (word)(byte*~) gfx_mode::$61 & (word/signed word/dword/signed dword) $3fff -- vwuz1=vwuz1_band_vwuc1 lda _63 and #<$3fff sta _63 @@ -29676,7 +29676,7 @@ gfx_mode: { //SEG165 [103] (byte*) get_vic_charset::return#4 ← (byte*) get_vic_charset::return#2 //SEG166 gfx_mode::@49 //SEG167 [104] (byte*~) gfx_mode::$66 ← (byte*) get_vic_charset::return#4 - //SEG168 [105] (word~) gfx_mode::$68 ← (word)(byte*~) gfx_mode::$66 & (word/signed word/dword/signed dword) 16383 -- vwuz1=vwuz1_band_vwuc1 + //SEG168 [105] (word~) gfx_mode::$68 ← (word)(byte*~) gfx_mode::$66 & (word/signed word/dword/signed dword) $3fff -- vwuz1=vwuz1_band_vwuc1 lda _68 and #<$3fff sta _68 @@ -29746,14 +29746,14 @@ gfx_mode: { !: //SEG201 [119] (byte) gfx_mode::cx#1 ← ++ (byte) gfx_mode::cx#2 -- vbuz1=_inc_vbuz1 inc cx - //SEG202 [120] if((byte) gfx_mode::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_mode::@11 -- vbuz1_neq_vbuc1_then_la1 + //SEG202 [120] if((byte) gfx_mode::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_mode::@11 -- vbuz1_neq_vbuc1_then_la1 lda cx cmp #$28 bne b11 //SEG203 gfx_mode::@32 //SEG204 [121] (byte) gfx_mode::cy#1 ← ++ (byte) gfx_mode::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG205 [122] if((byte) gfx_mode::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_mode::@10 -- vbuz1_neq_vbuc1_then_la1 + //SEG205 [122] if((byte) gfx_mode::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_mode::@10 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b10 @@ -29820,12 +29820,12 @@ gfx_mode: { sta DTV_PALETTE,y //SEG227 [139] (byte) gfx_mode::j#1 ← ++ (byte) gfx_mode::j#2 -- vbuyy=_inc_vbuyy iny - //SEG228 [140] if((byte) gfx_mode::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto gfx_mode::@13 -- vbuyy_neq_vbuc1_then_la1 + //SEG228 [140] if((byte) gfx_mode::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto gfx_mode::@13 -- vbuyy_neq_vbuc1_then_la1 cpy #$10 bne b13 //SEG229 gfx_mode::@19 b19: - //SEG230 [141] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto gfx_mode::@19 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG230 [141] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto gfx_mode::@19 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b19 @@ -29857,12 +29857,12 @@ gfx_mode: { ldy #0 //SEG249 gfx_mode::@15 b15: - //SEG250 [151] *((const byte*) DTV_PALETTE#0 + (byte) gfx_mode::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) gfx_mode::i#2) -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuyy + //SEG250 [151] *((const byte*) DTV_PALETTE#0 + (byte) gfx_mode::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) gfx_mode::i#2) -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuyy lda DTV_PALETTE_DEFAULT,y sta DTV_PALETTE,y //SEG251 [152] (byte) gfx_mode::i#1 ← ++ (byte) gfx_mode::i#2 -- vbuyy=_inc_vbuyy iny - //SEG252 [153] if((byte) gfx_mode::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto gfx_mode::@15 -- vbuyy_neq_vbuc1_then_la1 + //SEG252 [153] if((byte) gfx_mode::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto gfx_mode::@15 -- vbuyy_neq_vbuc1_then_la1 cpy #$10 bne b15 jmp b19 @@ -29889,7 +29889,7 @@ keyboard_event_get: { //SEG261 [157] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] b1: //SEG262 [157] phi (byte) keyboard_events_size#24 = (byte) keyboard_events_size#100 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG263 [157] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuaa=vbuc1 + //SEG263 [157] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) $ff [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuaa=vbuc1 lda #$ff //SEG264 keyboard_event_get::@return breturn: @@ -30106,7 +30106,7 @@ keyboard_event_scan: { jmp b3 //SEG371 keyboard_event_scan::@7 b7: - //SEG372 [210] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuaa=vbuz1_bor_vbuc1 + //SEG372 [210] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) $40 -- vbuaa=vbuz1_bor_vbuc1 lda #$40 ora keycode //SEG373 [211] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#18) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa @@ -30326,25 +30326,25 @@ get_plane: { jmp b10 !b10: //SEG443 get_plane::@37 - //SEG444 [247] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 10) goto get_plane::@return -- vbuaa_eq_vbuc1_then_la1 + //SEG444 [247] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) $a) goto get_plane::@return -- vbuaa_eq_vbuc1_then_la1 cmp #$a bne !b11+ jmp b11 !b11: //SEG445 get_plane::@38 - //SEG446 [248] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 11) goto get_plane::@return -- vbuaa_eq_vbuc1_then_la1 + //SEG446 [248] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) $b) goto get_plane::@return -- vbuaa_eq_vbuc1_then_la1 cmp #$b bne !b12+ jmp b12 !b12: //SEG447 get_plane::@39 - //SEG448 [249] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 12) goto get_plane::@return -- vbuaa_eq_vbuc1_then_la1 + //SEG448 [249] if((byte) get_plane::idx#10==(byte/signed byte/word/signed word/dword/signed dword) $c) goto get_plane::@return -- vbuaa_eq_vbuc1_then_la1 cmp #$c bne !b13+ jmp b13 !b13: //SEG449 get_plane::@40 - //SEG450 [250] if((byte) get_plane::idx#10!=(byte/signed byte/word/signed word/dword/signed dword) 13) goto get_plane::@27 -- vbuaa_neq_vbuc1_then_la1 + //SEG450 [250] if((byte) get_plane::idx#10!=(byte/signed byte/word/signed word/dword/signed dword) $d) goto get_plane::@27 -- vbuaa_neq_vbuc1_then_la1 cmp #$d bne b1 //SEG451 [251] phi from get_plane::@40 to get_plane::@return [phi:get_plane::@40->get_plane::@return] @@ -30588,22 +30588,22 @@ form_mode: { //SEG520 [306] phi (byte) render_preset_name::idx#10 = (byte) render_preset_name::idx#0 [phi:form_mode::@28->render_preset_name#0] -- register_copy jsr render_preset_name //SEG521 form_mode::@29 - //SEG522 [272] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) FORM_CHARSET#0/(dword/signed dword) 65536 -- _deref_pbuc1=vbuc2 + //SEG522 [272] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) FORM_CHARSET#0/(dword/signed dword) $10000 -- _deref_pbuc1=vbuc2 // DTV Graphics Bank lda #($ffffffff&FORM_CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG523 [273] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG523 [273] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #DTV_COLOR_BANK_DEFAULT/$400 sta DTV_COLOR_BANK_LO - //SEG524 [274] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG524 [274] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI //SEG525 [275] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG526 [276] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) FORM_CHARSET#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG526 [276] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) FORM_CHARSET#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^FORM_CHARSET/$4000 sta CIA2_PORT_A @@ -30619,7 +30619,7 @@ form_mode: { //SEG529 [279] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 -- _deref_pbuc1=vbuc2 lda #VIC_CSEL sta VIC_CONTROL2 - //SEG530 [280] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) FORM_SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) FORM_CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG530 [280] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) FORM_SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) FORM_CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // VIC Memory Pointers lda #(FORM_SCREEN&$3fff)/$40|(FORM_CHARSET&$3fff)/$400 sta VIC_MEMORY @@ -30641,12 +30641,12 @@ form_mode: { //SEG537 [284] phi (byte) form_mode::i#2 = (byte) form_mode::i#1 [phi:form_mode::@1->form_mode::@1#0] -- register_copy //SEG538 form_mode::@1 b1: - //SEG539 [285] *((const byte*) DTV_PALETTE#0 + (byte) form_mode::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) form_mode::i#2) -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuyy + //SEG539 [285] *((const byte*) DTV_PALETTE#0 + (byte) form_mode::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) form_mode::i#2) -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuyy lda DTV_PALETTE_DEFAULT,y sta DTV_PALETTE,y //SEG540 [286] (byte) form_mode::i#1 ← ++ (byte) form_mode::i#2 -- vbuyy=_inc_vbuyy iny - //SEG541 [287] if((byte) form_mode::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto form_mode::@1 -- vbuyy_neq_vbuc1_then_la1 + //SEG541 [287] if((byte) form_mode::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto form_mode::@1 -- vbuyy_neq_vbuc1_then_la1 cpy #$10 bne b1 //SEG542 form_mode::@10 @@ -30672,7 +30672,7 @@ form_mode: { //SEG555 form_mode::@2 //SEG556 form_mode::@5 b5: - //SEG557 [292] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto form_mode::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG557 [292] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto form_mode::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b5 @@ -30762,7 +30762,7 @@ render_preset_name: { cmp #9 beq b9 //SEG601 render_preset_name::@32 - //SEG602 [317] if((byte) render_preset_name::idx#10==(byte/signed byte/word/signed word/dword/signed dword) 10) goto render_preset_name::@22 -- vbuaa_eq_vbuc1_then_la1 + //SEG602 [317] if((byte) render_preset_name::idx#10==(byte/signed byte/word/signed word/dword/signed dword) $a) goto render_preset_name::@22 -- vbuaa_eq_vbuc1_then_la1 cmp #$a beq b10 //SEG603 [318] phi from render_preset_name::@32 to render_preset_name::@33 [phi:render_preset_name::@32->render_preset_name::@33] @@ -30882,7 +30882,7 @@ print_str_at: { .label at = 5 .label str = 3 //SEG634 [324] phi from print_str_at to print_str_at::@1 [phi:print_str_at->print_str_at::@1] - //SEG635 [324] phi (byte*) print_str_at::at#2 = (const byte*) FORM_SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 10 [phi:print_str_at->print_str_at::@1#0] -- pbuz1=pbuc1 + //SEG635 [324] phi (byte*) print_str_at::at#2 = (const byte*) FORM_SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) $a [phi:print_str_at->print_str_at::@1#0] -- pbuz1=pbuc1 lda #FORM_SCREEN+$28*2+$a @@ -30968,7 +30968,7 @@ form_field_ptr: { //SEG667 [341] (byte) form_field_ptr::y#0 ← *((const byte[]) form_fields_y#0 + (byte) form_field_ptr::field_idx#2) -- vbuaa=pbuc1_derefidx_vbuz1 ldy field_idx lda form_fields_y,y - //SEG668 [342] (word~) form_field_ptr::$2 ← *((const byte[25]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[25]) form_line_lo#0 + (byte) form_field_ptr::y#0) -- vwuz1=pbuc1_derefidx_vbuaa_word_pbuc2_derefidx_vbuaa + //SEG668 [342] (word~) form_field_ptr::$2 ← *((const byte[$19]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[$19]) form_line_lo#0 + (byte) form_field_ptr::y#0) -- vwuz1=pbuc1_derefidx_vbuaa_word_pbuc2_derefidx_vbuaa tay lda form_line_hi,y sta _2+1 @@ -31034,7 +31034,7 @@ apply_preset: { cmp #9 beq b9 //SEG693 apply_preset::@33 - //SEG694 [356] if((byte) apply_preset::idx#0==(byte/signed byte/word/signed word/dword/signed dword) 10) goto apply_preset::@22 -- vbuaa_eq_vbuc1_then_la1 + //SEG694 [356] if((byte) apply_preset::idx#0==(byte/signed byte/word/signed word/dword/signed dword) $a) goto apply_preset::@22 -- vbuaa_eq_vbuc1_then_la1 cmp #$a beq b10 //SEG695 [357] phi from apply_preset::@33 to apply_preset::@34 [phi:apply_preset::@33->apply_preset::@34] @@ -31185,7 +31185,7 @@ form_control: { jmp b2 !b2: //SEG744 form_control::@16 - //SEG745 [372] (byte~) form_control::$5 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- vbuaa=_deref_pbuz1_band_vbuc1 + //SEG745 [372] (byte~) form_control::$5 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f -- vbuaa=_deref_pbuz1_band_vbuc1 lda #$7f ldy #0 and (field),y @@ -31209,7 +31209,7 @@ form_control: { cmp #KEY_CRSR_DOWN bne b4 //SEG759 form_control::@18 - //SEG760 [381] (byte~) form_control::$11 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- vbuaa=_deref_pbuz1_band_vbuc1 + //SEG760 [381] (byte~) form_control::$11 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f -- vbuaa=_deref_pbuz1_band_vbuc1 lda #$7f ldy #0 and (field),y @@ -31225,7 +31225,7 @@ form_control: { //SEG764 form_control::@19 //SEG765 [385] (byte) form_field_idx#44 ← -- (byte) form_field_idx#28 -- vbuxx=_dec_vbuxx dex - //SEG766 [386] if((byte) form_field_idx#44!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@37 -- vbuxx_neq_vbuc1_then_la1 + //SEG766 [386] if((byte) form_field_idx#44!=(byte/word/signed word/dword/signed dword) $ff) goto form_control::@37 -- vbuxx_neq_vbuc1_then_la1 cpx #$ff bne b7 //SEG767 [387] phi from form_control::@19 to form_control::@7 [phi:form_control::@19->form_control::@7] @@ -31276,7 +31276,7 @@ form_control: { //SEG792 form_control::@25 //SEG793 [397] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#28) ← -- *((const byte[]) form_fields_val#0 + (byte) form_field_idx#28) -- pbuc1_derefidx_vbuxx=_dec_pbuc1_derefidx_vbuxx dec form_fields_val,x - //SEG794 [398] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#28)!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@12 -- pbuc1_derefidx_vbuxx_neq_vbuc2_then_la1 + //SEG794 [398] if(*((const byte[]) form_fields_val#0 + (byte) form_field_idx#28)!=(byte/word/signed word/dword/signed dword) $ff) goto form_control::@12 -- pbuc1_derefidx_vbuxx_neq_vbuc2_then_la1 lda form_fields_val,x cmp #$ff bne b12 @@ -31324,14 +31324,14 @@ form_control: { //SEG810 [388] phi from form_control::@9 to form_control::@return [phi:form_control::@9->form_control::@return] //SEG811 [388] phi (byte) form_field_idx#18 = (byte) form_field_idx#28 [phi:form_control::@9->form_control::@return#0] -- register_copy //SEG812 [388] phi (signed byte) form_cursor_count#16 = (signed byte) form_cursor_count#15 [phi:form_control::@9->form_control::@return#1] -- register_copy - //SEG813 [388] phi (byte) form_control::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:form_control::@9->form_control::@return#2] -- vbuyy=vbuc1 + //SEG813 [388] phi (byte) form_control::return#2 = (byte/word/signed word/dword/signed dword) $ff [phi:form_control::@9->form_control::@return#2] -- vbuyy=vbuc1 ldy #$ff jmp breturn //SEG814 [405] phi from form_control::@9 to form_control::@39 [phi:form_control::@9->form_control::@39] //SEG815 form_control::@39 //SEG816 form_control::@2 b2: - //SEG817 [406] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) 128 -- vbuaa=_deref_pbuz1_bor_vbuc1 + //SEG817 [406] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) $80 -- vbuaa=_deref_pbuz1_bor_vbuc1 lda #$80 ldy #0 ora (field),y @@ -31363,13 +31363,13 @@ form_set_screen: { b1: //SEG831 [411] (byte~) form_set_screen::$0 ← < (byte*) form_set_screen::line#2 -- vbuaa=_lo_pbuz1 lda line - //SEG832 [412] *((const byte[25]) form_line_lo#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$0 -- pbuc1_derefidx_vbuyy=vbuaa + //SEG832 [412] *((const byte[$19]) form_line_lo#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$0 -- pbuc1_derefidx_vbuyy=vbuaa sta form_line_lo,y //SEG833 [413] (byte~) form_set_screen::$1 ← > (byte*) form_set_screen::line#2 -- vbuaa=_hi_pbuz1 lda line+1 - //SEG834 [414] *((const byte[25]) form_line_hi#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$1 -- pbuc1_derefidx_vbuyy=vbuaa + //SEG834 [414] *((const byte[$19]) form_line_hi#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$1 -- pbuc1_derefidx_vbuyy=vbuaa sta form_line_hi,y - //SEG835 [415] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG835 [415] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda line clc adc #$28 @@ -31379,7 +31379,7 @@ form_set_screen: { !: //SEG836 [416] (byte) form_set_screen::y#1 ← ++ (byte) form_set_screen::y#2 -- vbuyy=_inc_vbuyy iny - //SEG837 [417] if((byte) form_set_screen::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto form_set_screen::@1 -- vbuyy_neq_vbuc1_then_la1 + //SEG837 [417] if((byte) form_set_screen::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto form_set_screen::@1 -- vbuyy_neq_vbuc1_then_la1 cpy #$19 bne b1 //SEG838 form_set_screen::@return @@ -31462,7 +31462,7 @@ print_ln: { //SEG871 [436] phi (byte*) print_line_cursor#21 = (byte*) print_line_cursor#2 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy //SEG872 print_ln::@1 b1: - //SEG873 [437] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG873 [437] (byte*) print_line_cursor#22 ← (byte*) print_line_cursor#21 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -31506,7 +31506,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG884 [444] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) 1000 -- pbuz1=pbuz2_plus_vwuc1 + //SEG884 [444] (byte*~) print_cls::$0 ← (byte*) print_set_screen::screen#2 + (word/signed word/dword/signed dword) $3e8 -- pbuz1=pbuz2_plus_vwuc1 lda print_set_screen.screen clc adc #<$3e8 @@ -31618,7 +31618,7 @@ gfx_init: { gfx_init_plane_full: { //SEG952 [481] call gfx_init_plane_fill //SEG953 [483] phi from gfx_init_plane_full to gfx_init_plane_fill [phi:gfx_init_plane_full->gfx_init_plane_fill] - //SEG954 [483] phi (byte) gfx_init_plane_fill::fill#6 = (byte/word/signed word/dword/signed dword) 255 [phi:gfx_init_plane_full->gfx_init_plane_fill#0] -- vbuz1=vbuc1 + //SEG954 [483] phi (byte) gfx_init_plane_fill::fill#6 = (byte/word/signed word/dword/signed dword) $ff [phi:gfx_init_plane_full->gfx_init_plane_fill#0] -- vbuz1=vbuc1 lda #$ff sta gfx_init_plane_fill.fill //SEG955 [483] phi (dword) gfx_init_plane_fill::plane_addr#3 = (const dword) PLANE_FULL#0 [phi:gfx_init_plane_full->gfx_init_plane_fill#1] -- vduz1=vduc1 @@ -31687,14 +31687,14 @@ gfx_init_plane_fill: { sta _4 lda plane_addr+1 sta _4+1 - //SEG969 [491] (word~) gfx_init_plane_fill::$5 ← (word~) gfx_init_plane_fill::$4 & (word/signed word/dword/signed dword) 16383 -- vwuz1=vwuz1_band_vwuc1 + //SEG969 [491] (word~) gfx_init_plane_fill::$5 ← (word~) gfx_init_plane_fill::$4 & (word/signed word/dword/signed dword) $3fff -- vwuz1=vwuz1_band_vwuc1 lda _5 and #<$3fff sta _5 lda _5+1 and #>$3fff sta _5+1 - //SEG970 [492] (word/signed dword/dword~) gfx_init_plane_fill::$6 ← (word/signed word/dword/signed dword) 16384 + (word~) gfx_init_plane_fill::$5 -- vwuz1=vwuc1_plus_vwuz1 + //SEG970 [492] (word/signed dword/dword~) gfx_init_plane_fill::$6 ← (word/signed word/dword/signed dword) $4000 + (word~) gfx_init_plane_fill::$5 -- vwuz1=vwuc1_plus_vwuz1 clc lda _6 adc #<$4000 @@ -31733,13 +31733,13 @@ gfx_init_plane_fill: { !: //SEG988 [498] (byte) gfx_init_plane_fill::bx#1 ← ++ (byte) gfx_init_plane_fill::bx#2 -- vbuxx=_inc_vbuxx inx - //SEG989 [499] if((byte) gfx_init_plane_fill::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_plane_fill::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG989 [499] if((byte) gfx_init_plane_fill::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_plane_fill::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b2 //SEG990 gfx_init_plane_fill::@3 //SEG991 [500] (byte) gfx_init_plane_fill::by#1 ← ++ (byte) gfx_init_plane_fill::by#4 -- vbuz1=_inc_vbuz1 inc by - //SEG992 [501] if((byte) gfx_init_plane_fill::by#1!=(byte/word/signed word/dword/signed dword) 200) goto gfx_init_plane_fill::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG992 [501] if((byte) gfx_init_plane_fill::by#1!=(byte/word/signed word/dword/signed dword) $c8) goto gfx_init_plane_fill::@1 -- vbuz1_neq_vbuc1_then_la1 lda by cmp #$c8 bne b1 @@ -31747,7 +31747,7 @@ gfx_init_plane_fill: { //SEG994 gfx_init_plane_fill::@4 //SEG995 [503] call dtvSetCpuBankSegment1 //SEG996 [505] phi from gfx_init_plane_fill::@4 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_fill::@4->dtvSetCpuBankSegment1] - //SEG997 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_fill::@4->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + //SEG997 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_fill::@4->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #$4000/$4000 jsr dtvSetCpuBankSegment1 //SEG998 gfx_init_plane_fill::@return @@ -31799,7 +31799,7 @@ gfx_init_plane_blank: { gfx_init_plane_vertical2: { //SEG1013 [513] call gfx_init_plane_fill //SEG1014 [483] phi from gfx_init_plane_vertical2 to gfx_init_plane_fill [phi:gfx_init_plane_vertical2->gfx_init_plane_fill] - //SEG1015 [483] phi (byte) gfx_init_plane_fill::fill#6 = (byte/signed byte/word/signed word/dword/signed dword) 27 [phi:gfx_init_plane_vertical2->gfx_init_plane_fill#0] -- vbuz1=vbuc1 + //SEG1015 [483] phi (byte) gfx_init_plane_fill::fill#6 = (byte/signed byte/word/signed word/dword/signed dword) $1b [phi:gfx_init_plane_vertical2->gfx_init_plane_fill#0] -- vbuz1=vbuc1 lda #$1b sta gfx_init_plane_fill.fill //SEG1016 [483] phi (dword) gfx_init_plane_fill::plane_addr#3 = (const dword) PLANE_VERTICAL2#0 [phi:gfx_init_plane_vertical2->gfx_init_plane_fill#1] -- vduz1=vduc1 @@ -31828,7 +31828,7 @@ gfx_init_plane_horisontal2: { lda #gfxbCpuBank jsr dtvSetCpuBankSegment1 //SEG1023 [517] phi from gfx_init_plane_horisontal2 to gfx_init_plane_horisontal2::@1 [phi:gfx_init_plane_horisontal2->gfx_init_plane_horisontal2::@1] - //SEG1024 [517] phi (byte*) gfx_init_plane_horisontal2::gfxa#3 = ((byte*))(word/signed word/dword/signed dword) 16384+(const dword) PLANE_HORISONTAL2#0&(word/signed word/dword/signed dword) 16383 [phi:gfx_init_plane_horisontal2->gfx_init_plane_horisontal2::@1#0] -- pbuz1=pbuc1 + //SEG1024 [517] phi (byte*) gfx_init_plane_horisontal2::gfxa#3 = ((byte*))(word/signed word/dword/signed dword) $4000+(const dword) PLANE_HORISONTAL2#0&(word/signed word/dword/signed dword) $3fff [phi:gfx_init_plane_horisontal2->gfx_init_plane_horisontal2::@1#0] -- pbuz1=pbuc1 lda #<$4000+(PLANE_HORISONTAL2&$3fff) sta gfxa lda #>$4000+(PLANE_HORISONTAL2&$3fff) @@ -31867,13 +31867,13 @@ gfx_init_plane_horisontal2: { !: //SEG1041 [523] (byte) gfx_init_plane_horisontal2::ax#1 ← ++ (byte) gfx_init_plane_horisontal2::ax#2 -- vbuxx=_inc_vbuxx inx - //SEG1042 [524] if((byte) gfx_init_plane_horisontal2::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_plane_horisontal2::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG1042 [524] if((byte) gfx_init_plane_horisontal2::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_plane_horisontal2::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b2 //SEG1043 gfx_init_plane_horisontal2::@3 //SEG1044 [525] (byte) gfx_init_plane_horisontal2::ay#1 ← ++ (byte) gfx_init_plane_horisontal2::ay#4 -- vbuz1=_inc_vbuz1 inc ay - //SEG1045 [526] if((byte) gfx_init_plane_horisontal2::ay#1!=(byte/word/signed word/dword/signed dword) 200) goto gfx_init_plane_horisontal2::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1045 [526] if((byte) gfx_init_plane_horisontal2::ay#1!=(byte/word/signed word/dword/signed dword) $c8) goto gfx_init_plane_horisontal2::@1 -- vbuz1_neq_vbuc1_then_la1 lda ay cmp #$c8 bne b1 @@ -31881,7 +31881,7 @@ gfx_init_plane_horisontal2: { //SEG1047 gfx_init_plane_horisontal2::@4 //SEG1048 [528] call dtvSetCpuBankSegment1 //SEG1049 [505] phi from gfx_init_plane_horisontal2::@4 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_horisontal2::@4->dtvSetCpuBankSegment1] - //SEG1050 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_horisontal2::@4->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + //SEG1050 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_horisontal2::@4->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #$4000/$4000 jsr dtvSetCpuBankSegment1 //SEG1051 gfx_init_plane_horisontal2::@return @@ -31904,7 +31904,7 @@ gfx_init_plane_vertical: { //SEG1058 [532] phi (byte) gfx_init_plane_vertical::by#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:gfx_init_plane_vertical->gfx_init_plane_vertical::@1#0] -- vbuz1=vbuc1 lda #0 sta by - //SEG1059 [532] phi (byte*) gfx_init_plane_vertical::gfxb#3 = ((byte*))(word/signed word/dword/signed dword) 16384+(const dword) PLANE_VERTICAL#0&(word/signed word/dword/signed dword) 16383 [phi:gfx_init_plane_vertical->gfx_init_plane_vertical::@1#1] -- pbuz1=pbuc1 + //SEG1059 [532] phi (byte*) gfx_init_plane_vertical::gfxb#3 = ((byte*))(word/signed word/dword/signed dword) $4000+(const dword) PLANE_VERTICAL#0&(word/signed word/dword/signed dword) $3fff [phi:gfx_init_plane_vertical->gfx_init_plane_vertical::@1#1] -- pbuz1=pbuc1 lda #<$4000+(PLANE_VERTICAL&$3fff) sta gfxb lda #>$4000+(PLANE_VERTICAL&$3fff) @@ -31923,7 +31923,7 @@ gfx_init_plane_vertical: { //SEG1069 [533] phi (byte*) gfx_init_plane_vertical::gfxb#2 = (byte*) gfx_init_plane_vertical::gfxb#1 [phi:gfx_init_plane_vertical::@2->gfx_init_plane_vertical::@2#1] -- register_copy //SEG1070 gfx_init_plane_vertical::@2 b2: - //SEG1071 [534] *((byte*) gfx_init_plane_vertical::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuz1=vbuc1 + //SEG1071 [534] *((byte*) gfx_init_plane_vertical::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $f -- _deref_pbuz1=vbuc1 lda #$f ldy #0 sta (gfxb),y @@ -31934,13 +31934,13 @@ gfx_init_plane_vertical: { !: //SEG1073 [536] (byte) gfx_init_plane_vertical::bx#1 ← ++ (byte) gfx_init_plane_vertical::bx#2 -- vbuxx=_inc_vbuxx inx - //SEG1074 [537] if((byte) gfx_init_plane_vertical::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_plane_vertical::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG1074 [537] if((byte) gfx_init_plane_vertical::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_plane_vertical::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b2 //SEG1075 gfx_init_plane_vertical::@3 //SEG1076 [538] (byte) gfx_init_plane_vertical::by#1 ← ++ (byte) gfx_init_plane_vertical::by#4 -- vbuz1=_inc_vbuz1 inc by - //SEG1077 [539] if((byte) gfx_init_plane_vertical::by#1!=(byte/word/signed word/dword/signed dword) 200) goto gfx_init_plane_vertical::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1077 [539] if((byte) gfx_init_plane_vertical::by#1!=(byte/word/signed word/dword/signed dword) $c8) goto gfx_init_plane_vertical::@1 -- vbuz1_neq_vbuc1_then_la1 lda by cmp #$c8 bne b1 @@ -31948,7 +31948,7 @@ gfx_init_plane_vertical: { //SEG1079 gfx_init_plane_vertical::@4 //SEG1080 [541] call dtvSetCpuBankSegment1 //SEG1081 [505] phi from gfx_init_plane_vertical::@4 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_vertical::@4->dtvSetCpuBankSegment1] - //SEG1082 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_vertical::@4->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + //SEG1082 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_vertical::@4->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #$4000/$4000 jsr dtvSetCpuBankSegment1 //SEG1083 gfx_init_plane_vertical::@return @@ -31967,7 +31967,7 @@ gfx_init_plane_horisontal: { lda #gfxbCpuBank jsr dtvSetCpuBankSegment1 //SEG1089 [545] phi from gfx_init_plane_horisontal to gfx_init_plane_horisontal::@1 [phi:gfx_init_plane_horisontal->gfx_init_plane_horisontal::@1] - //SEG1090 [545] phi (byte*) gfx_init_plane_horisontal::gfxa#6 = ((byte*))(word/signed word/dword/signed dword) 16384+(const dword) PLANE_HORISONTAL#0&(word/signed word/dword/signed dword) 16383 [phi:gfx_init_plane_horisontal->gfx_init_plane_horisontal::@1#0] -- pbuz1=pbuc1 + //SEG1090 [545] phi (byte*) gfx_init_plane_horisontal::gfxa#6 = ((byte*))(word/signed word/dword/signed dword) $4000+(const dword) PLANE_HORISONTAL#0&(word/signed word/dword/signed dword) $3fff [phi:gfx_init_plane_horisontal->gfx_init_plane_horisontal::@1#0] -- pbuz1=pbuc1 lda #<$4000+(PLANE_HORISONTAL&$3fff) sta gfxa lda #>$4000+(PLANE_HORISONTAL&$3fff) @@ -31996,7 +31996,7 @@ gfx_init_plane_horisontal: { cmp #0 beq b3 //SEG1105 gfx_init_plane_horisontal::@5 - //SEG1106 [549] *((byte*) gfx_init_plane_horisontal::gfxa#3) ← (byte/word/signed word/dword/signed dword) 255 -- _deref_pbuz1=vbuc1 + //SEG1106 [549] *((byte*) gfx_init_plane_horisontal::gfxa#3) ← (byte/word/signed word/dword/signed dword) $ff -- _deref_pbuz1=vbuc1 lda #$ff ldy #0 sta (gfxa),y @@ -32011,13 +32011,13 @@ gfx_init_plane_horisontal: { b4: //SEG1111 [552] (byte) gfx_init_plane_horisontal::ax#1 ← ++ (byte) gfx_init_plane_horisontal::ax#2 -- vbuxx=_inc_vbuxx inx - //SEG1112 [553] if((byte) gfx_init_plane_horisontal::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_plane_horisontal::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG1112 [553] if((byte) gfx_init_plane_horisontal::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_plane_horisontal::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b2 //SEG1113 gfx_init_plane_horisontal::@7 //SEG1114 [554] (byte) gfx_init_plane_horisontal::ay#1 ← ++ (byte) gfx_init_plane_horisontal::ay#4 -- vbuz1=_inc_vbuz1 inc ay - //SEG1115 [555] if((byte) gfx_init_plane_horisontal::ay#1!=(byte/word/signed word/dword/signed dword) 200) goto gfx_init_plane_horisontal::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1115 [555] if((byte) gfx_init_plane_horisontal::ay#1!=(byte/word/signed word/dword/signed dword) $c8) goto gfx_init_plane_horisontal::@1 -- vbuz1_neq_vbuc1_then_la1 lda ay cmp #$c8 bne b1 @@ -32025,7 +32025,7 @@ gfx_init_plane_horisontal: { //SEG1117 gfx_init_plane_horisontal::@8 //SEG1118 [557] call dtvSetCpuBankSegment1 //SEG1119 [505] phi from gfx_init_plane_horisontal::@8 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_horisontal::@8->dtvSetCpuBankSegment1] - //SEG1120 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_horisontal::@8->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + //SEG1120 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_horisontal::@8->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #$4000/$4000 jsr dtvSetCpuBankSegment1 //SEG1121 gfx_init_plane_horisontal::@return @@ -32069,7 +32069,7 @@ gfx_init_plane_charset8: { sta ch //SEG1134 [564] phi (byte) gfx_init_plane_charset8::col#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#1] -- vbuz1=vbuc1 sta col - //SEG1135 [564] phi (byte*) gfx_init_plane_charset8::gfxa#6 = ((byte*))(word/signed word/dword/signed dword) 16384+(const dword) PLANE_CHARSET8#0&(word/signed word/dword/signed dword) 16383 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#2] -- pbuz1=pbuc1 + //SEG1135 [564] phi (byte*) gfx_init_plane_charset8::gfxa#6 = ((byte*))(word/signed word/dword/signed dword) $4000+(const dword) PLANE_CHARSET8#0&(word/signed word/dword/signed dword) $3fff [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#2] -- pbuz1=pbuc1 lda #<$4000+(PLANE_CHARSET8&$3fff) sta gfxa lda #>$4000+(PLANE_CHARSET8&$3fff) @@ -32122,7 +32122,7 @@ gfx_init_plane_charset8: { //SEG1165 [568] phi (byte) gfx_init_plane_charset8::bits#2 = (byte) gfx_init_plane_charset8::bits#1 [phi:gfx_init_plane_charset8::@4->gfx_init_plane_charset8::@3#3] -- register_copy //SEG1166 gfx_init_plane_charset8::@3 b3: - //SEG1167 [569] (byte~) gfx_init_plane_charset8::$5 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG1167 [569] (byte~) gfx_init_plane_charset8::$5 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuz1_band_vbuc1 lda #$80 and bits //SEG1168 [570] if((byte~) gfx_init_plane_charset8::$5==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_plane_charset8::@4 -- vbuaa_eq_0_then_la1 @@ -32177,7 +32177,7 @@ gfx_init_plane_charset8: { sta PROCPORT //SEG1190 [584] call dtvSetCpuBankSegment1 //SEG1191 [505] phi from gfx_init_plane_charset8::@8 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1] - //SEG1192 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + //SEG1192 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #$4000/$4000 jsr dtvSetCpuBankSegment1 //SEG1193 gfx_init_plane_charset8::@return @@ -32193,16 +32193,16 @@ gfx_init_plane_8bppchunky: { .label y = 2 //SEG1196 [587] call dtvSetCpuBankSegment1 //SEG1197 [505] phi from gfx_init_plane_8bppchunky to dtvSetCpuBankSegment1 [phi:gfx_init_plane_8bppchunky->dtvSetCpuBankSegment1] - //SEG1198 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_8bppchunky->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + //SEG1198 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_8bppchunky->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #PLANE_8BPP_CHUNKY/$4000 jsr dtvSetCpuBankSegment1 //SEG1199 [588] phi from gfx_init_plane_8bppchunky to gfx_init_plane_8bppchunky::@1 [phi:gfx_init_plane_8bppchunky->gfx_init_plane_8bppchunky::@1] - //SEG1200 [588] phi (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#7 = ++((byte))(const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_8bppchunky->gfx_init_plane_8bppchunky::@1#0] -- vbuxx=vbuc1 + //SEG1200 [588] phi (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#7 = ++((byte))(const dword) PLANE_8BPP_CHUNKY#0/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_8bppchunky->gfx_init_plane_8bppchunky::@1#0] -- vbuxx=vbuc1 ldx #PLANE_8BPP_CHUNKY/$4000+1 //SEG1201 [588] phi (byte) gfx_init_plane_8bppchunky::y#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:gfx_init_plane_8bppchunky->gfx_init_plane_8bppchunky::@1#1] -- vbuz1=vbuc1 lda #0 sta y - //SEG1202 [588] phi (byte*) gfx_init_plane_8bppchunky::gfxb#5 = ((byte*))(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_8bppchunky->gfx_init_plane_8bppchunky::@1#2] -- pbuz1=pbuc1 + //SEG1202 [588] phi (byte*) gfx_init_plane_8bppchunky::gfxb#5 = ((byte*))(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_8bppchunky->gfx_init_plane_8bppchunky::@1#2] -- pbuz1=pbuc1 lda #<$4000 sta gfxb lda #>$4000 @@ -32226,7 +32226,7 @@ gfx_init_plane_8bppchunky: { //SEG1215 [589] phi (byte*) gfx_init_plane_8bppchunky::gfxb#3 = (byte*) gfx_init_plane_8bppchunky::gfxb#1 [phi:gfx_init_plane_8bppchunky::@3->gfx_init_plane_8bppchunky::@2#2] -- register_copy //SEG1216 gfx_init_plane_8bppchunky::@2 b2: - //SEG1217 [590] if((byte*) gfx_init_plane_8bppchunky::gfxb#3!=(word/dword/signed dword) 32768) goto gfx_init_plane_8bppchunky::@3 -- pbuz1_neq_vwuc1_then_la1 + //SEG1217 [590] if((byte*) gfx_init_plane_8bppchunky::gfxb#3!=(word/dword/signed dword) $8000) goto gfx_init_plane_8bppchunky::@3 -- pbuz1_neq_vwuc1_then_la1 lda gfxb+1 cmp #>$8000 bne b3 @@ -32245,7 +32245,7 @@ gfx_init_plane_8bppchunky: { inx //SEG1225 [594] phi from gfx_init_plane_8bppchunky::@8 to gfx_init_plane_8bppchunky::@3 [phi:gfx_init_plane_8bppchunky::@8->gfx_init_plane_8bppchunky::@3] //SEG1226 [594] phi (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#8 = (byte) gfx_init_plane_8bppchunky::gfxbCpuBank#2 [phi:gfx_init_plane_8bppchunky::@8->gfx_init_plane_8bppchunky::@3#0] -- register_copy - //SEG1227 [594] phi (byte*) gfx_init_plane_8bppchunky::gfxb#4 = ((byte*))(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_8bppchunky::@8->gfx_init_plane_8bppchunky::@3#1] -- pbuz1=pbuc1 + //SEG1227 [594] phi (byte*) gfx_init_plane_8bppchunky::gfxb#4 = ((byte*))(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_8bppchunky::@8->gfx_init_plane_8bppchunky::@3#1] -- pbuz1=pbuc1 lda #<$4000 sta gfxb lda #>$4000 @@ -32278,7 +32278,7 @@ gfx_init_plane_8bppchunky: { bne !+ inc x+1 !: - //SEG1237 [600] if((word) gfx_init_plane_8bppchunky::x#1!=(word/signed word/dword/signed dword) 320) goto gfx_init_plane_8bppchunky::@2 -- vwuz1_neq_vwuc1_then_la1 + //SEG1237 [600] if((word) gfx_init_plane_8bppchunky::x#1!=(word/signed word/dword/signed dword) $140) goto gfx_init_plane_8bppchunky::@2 -- vwuz1_neq_vwuc1_then_la1 lda x+1 cmp #>$140 bne b2 @@ -32288,7 +32288,7 @@ gfx_init_plane_8bppchunky: { //SEG1238 gfx_init_plane_8bppchunky::@5 //SEG1239 [601] (byte) gfx_init_plane_8bppchunky::y#1 ← ++ (byte) gfx_init_plane_8bppchunky::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG1240 [602] if((byte) gfx_init_plane_8bppchunky::y#1!=(byte/word/signed word/dword/signed dword) 200) goto gfx_init_plane_8bppchunky::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1240 [602] if((byte) gfx_init_plane_8bppchunky::y#1!=(byte/word/signed word/dword/signed dword) $c8) goto gfx_init_plane_8bppchunky::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$c8 bne b1 @@ -32296,7 +32296,7 @@ gfx_init_plane_8bppchunky: { //SEG1242 gfx_init_plane_8bppchunky::@6 //SEG1243 [604] call dtvSetCpuBankSegment1 //SEG1244 [505] phi from gfx_init_plane_8bppchunky::@6 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_8bppchunky::@6->dtvSetCpuBankSegment1] - //SEG1245 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 [phi:gfx_init_plane_8bppchunky::@6->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + //SEG1245 [505] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 [phi:gfx_init_plane_8bppchunky::@6->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #$4000/$4000 jsr dtvSetCpuBankSegment1 //SEG1246 gfx_init_plane_8bppchunky::@return @@ -32651,12 +32651,12 @@ bitmap_plot: { .label _0 = 3 .label plotter_x = 3 .label plotter_y = 5 - //SEG1424 [697] (word) bitmap_plot::plotter_x#0 ← *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx + //SEG1424 [697] (word) bitmap_plot::plotter_x#0 ← *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx lda bitmap_plot_xhi,x sta plotter_x+1 lda bitmap_plot_xlo,x sta plotter_x - //SEG1425 [698] (word) bitmap_plot::plotter_y#0 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) -- vwuz1=pbuc1_derefidx_vbuyy_word_pbuc2_derefidx_vbuyy + //SEG1425 [698] (word) bitmap_plot::plotter_y#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) -- vwuz1=pbuc1_derefidx_vbuyy_word_pbuc2_derefidx_vbuyy lda bitmap_plot_yhi,y sta plotter_y+1 lda bitmap_plot_ylo,y @@ -32669,7 +32669,7 @@ bitmap_plot: { lda _0+1 adc plotter_y+1 sta _0+1 - //SEG1427 [700] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) -- vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx + //SEG1427 [700] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) -- vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx lda bitmap_plot_bit,x ldy #0 ora (_0),y @@ -32872,7 +32872,7 @@ bitmap_clear: { .label bitmap = 3 .label y = 2 .label _3 = 3 - //SEG1516 [748] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_xhi#0) w= *((const byte[256]) bitmap_plot_xlo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 + //SEG1516 [748] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_xhi#0) w= *((const byte[$100]) bitmap_plot_xlo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 lda bitmap_plot_xlo sta _3 lda bitmap_plot_xhi @@ -32908,13 +32908,13 @@ bitmap_clear: { !: //SEG1534 [754] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 -- vbuxx=_inc_vbuxx inx - //SEG1535 [755] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) 200) goto bitmap_clear::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG1535 [755] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) $c8) goto bitmap_clear::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$c8 bne b2 //SEG1536 bitmap_clear::@3 //SEG1537 [756] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 -- vbuz1=_inc_vbuz1 inc y - //SEG1538 [757] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1538 [757] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$28 bne b1 @@ -32928,7 +32928,7 @@ bitmap_init: { .label _6 = 2 .label yoffs = 3 //SEG1542 [760] phi from bitmap_init to bitmap_init::@1 [phi:bitmap_init->bitmap_init::@1] - //SEG1543 [760] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init->bitmap_init::@1#0] -- vbuyy=vbuc1 + //SEG1543 [760] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init->bitmap_init::@1#0] -- vbuyy=vbuc1 ldy #$80 //SEG1544 [760] phi (byte) bitmap_init::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:bitmap_init->bitmap_init::@1#1] -- vbuxx=vbuc1 ldx #0 @@ -32937,15 +32937,15 @@ bitmap_init: { //SEG1547 [760] phi (byte) bitmap_init::x#2 = (byte) bitmap_init::x#1 [phi:bitmap_init::@2->bitmap_init::@1#1] -- register_copy //SEG1548 bitmap_init::@1 b1: - //SEG1549 [761] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) 248 -- vbuaa=vbuxx_band_vbuc1 + //SEG1549 [761] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) $f8 -- vbuaa=vbuxx_band_vbuc1 txa and #$f8 - //SEG1550 [762] *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG1550 [762] *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_xlo,x - //SEG1551 [763] *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) VIC_BITMAP#0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG1551 [763] *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) VIC_BITMAP#0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #>VIC_BITMAP sta bitmap_plot_xhi,x - //SEG1552 [764] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuxx=vbuyy + //SEG1552 [764] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuxx=vbuyy tya sta bitmap_plot_bit,x //SEG1553 [765] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuyy_ror_1 @@ -32956,7 +32956,7 @@ bitmap_init: { cpy #0 bne b2 //SEG1555 [767] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2] - //SEG1556 [767] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuyy=vbuc1 + //SEG1556 [767] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuyy=vbuc1 ldy #$80 //SEG1557 bitmap_init::@2 b2: @@ -32985,11 +32985,11 @@ bitmap_init: { lda yoffs //SEG1569 [773] (byte~) bitmap_init::$8 ← (byte~) bitmap_init::$6 | (byte~) bitmap_init::$7 -- vbuaa=vbuz1_bor_vbuaa ora _6 - //SEG1570 [774] *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG1570 [774] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_ylo,x //SEG1571 [775] (byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2 -- vbuaa=_hi_pbuz1 lda yoffs+1 - //SEG1572 [776] *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG1572 [776] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_yhi,x //SEG1573 [777] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuxx_band_vbuc1 txa @@ -32998,7 +32998,7 @@ bitmap_init: { cmp #7 bne b4 //SEG1575 bitmap_init::@7 - //SEG1576 [779] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 + //SEG1576 [779] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 clc lda yoffs adc #<$28*8 @@ -33028,7 +33028,7 @@ gfx_init_charset: { .label charset = 5 .label chargen = 3 .label c = 2 - //SEG1589 [785] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- _deref_pbuc1=vbuc2 + //SEG1589 [785] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 -- _deref_pbuc1=vbuc2 lda #$32 sta PROCPORT //SEG1590 [786] phi from gfx_init_charset to gfx_init_charset::@1 [phi:gfx_init_charset->gfx_init_charset::@1] @@ -33089,7 +33089,7 @@ gfx_init_charset: { cmp #0 bne b1 //SEG1616 gfx_init_charset::@4 - //SEG1617 [795] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 -- _deref_pbuc1=vbuc2 + //SEG1617 [795] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 -- _deref_pbuc1=vbuc2 lda #$37 sta PROCPORT //SEG1618 gfx_init_charset::@return @@ -33135,13 +33135,13 @@ gfx_init_screen4: { !: //SEG1637 [802] (byte) gfx_init_screen4::cx#1 ← ++ (byte) gfx_init_screen4::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG1638 [803] if((byte) gfx_init_screen4::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen4::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG1638 [803] if((byte) gfx_init_screen4::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen4::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b2 //SEG1639 gfx_init_screen4::@3 //SEG1640 [804] (byte) gfx_init_screen4::cy#1 ← ++ (byte) gfx_init_screen4::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1641 [805] if((byte) gfx_init_screen4::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen4::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1641 [805] if((byte) gfx_init_screen4::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen4::@1 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b1 @@ -33202,13 +33202,13 @@ gfx_init_screen3: { !: //SEG1665 [816] (byte) gfx_init_screen3::cx#1 ← ++ (byte) gfx_init_screen3::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG1666 [817] if((byte) gfx_init_screen3::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen3::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG1666 [817] if((byte) gfx_init_screen3::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen3::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b2 //SEG1667 gfx_init_screen3::@3 //SEG1668 [818] (byte) gfx_init_screen3::cy#1 ← ++ (byte) gfx_init_screen3::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1669 [819] if((byte) gfx_init_screen3::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen3::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1669 [819] if((byte) gfx_init_screen3::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen3::@1 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b1 @@ -33249,10 +33249,10 @@ gfx_init_screen2: { txa clc adc cy - //SEG1688 [825] (byte) gfx_init_screen2::col#0 ← (byte~) gfx_init_screen2::$0 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuyy=vbuaa_band_vbuc1 + //SEG1688 [825] (byte) gfx_init_screen2::col#0 ← (byte~) gfx_init_screen2::$0 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuyy=vbuaa_band_vbuc1 and #$f tay - //SEG1689 [826] (byte) gfx_init_screen2::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) gfx_init_screen2::col#0 -- vbuz1=vbuc1_minus_vbuyy + //SEG1689 [826] (byte) gfx_init_screen2::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f - (byte) gfx_init_screen2::col#0 -- vbuz1=vbuc1_minus_vbuyy tya eor #$ff clc @@ -33276,13 +33276,13 @@ gfx_init_screen2: { !: //SEG1694 [831] (byte) gfx_init_screen2::cx#1 ← ++ (byte) gfx_init_screen2::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG1695 [832] if((byte) gfx_init_screen2::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen2::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG1695 [832] if((byte) gfx_init_screen2::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen2::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b2 //SEG1696 gfx_init_screen2::@3 //SEG1697 [833] (byte) gfx_init_screen2::cy#1 ← ++ (byte) gfx_init_screen2::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1698 [834] if((byte) gfx_init_screen2::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen2::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1698 [834] if((byte) gfx_init_screen2::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen2::@1 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b1 @@ -33322,7 +33322,7 @@ gfx_init_screen1: { txa clc adc cy - //SEG1717 [840] (byte~) gfx_init_screen1::$1 ← (byte~) gfx_init_screen1::$0 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuaa_band_vbuc1 + //SEG1717 [840] (byte~) gfx_init_screen1::$1 ← (byte~) gfx_init_screen1::$0 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuaa_band_vbuc1 and #$f //SEG1718 [841] *((byte*) gfx_init_screen1::ch#2) ← (byte~) gfx_init_screen1::$1 -- _deref_pbuz1=vbuaa ldy #0 @@ -33334,13 +33334,13 @@ gfx_init_screen1: { !: //SEG1720 [843] (byte) gfx_init_screen1::cx#1 ← ++ (byte) gfx_init_screen1::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG1721 [844] if((byte) gfx_init_screen1::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen1::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG1721 [844] if((byte) gfx_init_screen1::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen1::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b2 //SEG1722 gfx_init_screen1::@3 //SEG1723 [845] (byte) gfx_init_screen1::cy#1 ← ++ (byte) gfx_init_screen1::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1724 [846] if((byte) gfx_init_screen1::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen1::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1724 [846] if((byte) gfx_init_screen1::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen1::@1 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b1 @@ -33377,7 +33377,7 @@ gfx_init_screen0: { //SEG1740 [850] phi (byte) gfx_init_screen0::cx#2 = (byte) gfx_init_screen0::cx#1 [phi:gfx_init_screen0::@2->gfx_init_screen0::@2#1] -- register_copy //SEG1741 gfx_init_screen0::@2 b2: - //SEG1742 [851] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG1742 [851] (byte~) gfx_init_screen0::$0 ← (byte) gfx_init_screen0::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and cy //SEG1743 [852] (byte~) gfx_init_screen0::$1 ← (byte~) gfx_init_screen0::$0 << (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuaa_rol_4 @@ -33386,7 +33386,7 @@ gfx_init_screen0: { asl asl sta _1 - //SEG1744 [853] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG1744 [853] (byte~) gfx_init_screen0::$2 ← (byte) gfx_init_screen0::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG1745 [854] (byte~) gfx_init_screen0::$3 ← (byte~) gfx_init_screen0::$1 | (byte~) gfx_init_screen0::$2 -- vbuaa=vbuz1_bor_vbuaa @@ -33401,13 +33401,13 @@ gfx_init_screen0: { !: //SEG1748 [857] (byte) gfx_init_screen0::cx#1 ← ++ (byte) gfx_init_screen0::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG1749 [858] if((byte) gfx_init_screen0::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto gfx_init_screen0::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG1749 [858] if((byte) gfx_init_screen0::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto gfx_init_screen0::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b2 //SEG1750 gfx_init_screen0::@3 //SEG1751 [859] (byte) gfx_init_screen0::cy#1 ← ++ (byte) gfx_init_screen0::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1752 [860] if((byte) gfx_init_screen0::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto gfx_init_screen0::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1752 [860] if((byte) gfx_init_screen0::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto gfx_init_screen0::@1 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b1 @@ -33418,7 +33418,7 @@ gfx_init_screen0: { //SEG1755 keyboard_init // Initialize keyboard reading by setting CIA#$ Data Direction Registers keyboard_init: { - //SEG1756 [862] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 -- _deref_pbuc1=vbuc2 + //SEG1756 [862] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) $ff -- _deref_pbuc1=vbuc2 // Keyboard Matrix Columns Write Mode lda #$ff sta CIA1_PORT_A_DDR diff --git a/src/test/ref/c64dtv-gfxexplorer.sym b/src/test/ref/c64dtv-gfxexplorer.sym index 89b84e6dc..5548cde99 100644 --- a/src/test/ref/c64dtv-gfxexplorer.sym +++ b/src/test/ref/c64dtv-gfxexplorer.sym @@ -2,41 +2,41 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL1 -(const byte*) BGCOL1#0 BGCOL1 = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL1#0 BGCOL1 = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL2 -(const byte*) BGCOL2#0 BGCOL2 = ((byte*))(word/dword/signed dword) 53282 +(const byte*) BGCOL2#0 BGCOL2 = ((byte*))(word/dword/signed dword) $d022 (byte*) BGCOL3 -(const byte*) BGCOL3#0 BGCOL3 = ((byte*))(word/dword/signed dword) 53283 +(const byte*) BGCOL3#0 BGCOL3 = ((byte*))(word/dword/signed dword) $d023 (byte*) BGCOL4 -(const byte*) BGCOL4#0 BGCOL4 = ((byte*))(word/dword/signed dword) 53284 +(const byte*) BGCOL4#0 BGCOL4 = ((byte*))(word/dword/signed dword) $d024 (byte) BLACK (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN -(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word/dword/signed dword) 53248 +(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word/dword/signed dword) $d000 (byte*) CIA1_INTERRUPT (byte*) CIA1_PORT_A -(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) 56320 +(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) $dc00 (byte*) CIA1_PORT_A_DDR -(const byte*) CIA1_PORT_A_DDR#0 CIA1_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56322 +(const byte*) CIA1_PORT_A_DDR#0 CIA1_PORT_A_DDR = ((byte*))(word/dword/signed dword) $dc02 (byte*) CIA1_PORT_B -(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) 56321 +(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) $dc01 (byte*) CIA1_PORT_B_DDR -(const byte*) CIA1_PORT_B_DDR#0 CIA1_PORT_B_DDR = ((byte*))(word/dword/signed dword) 56323 +(const byte*) CIA1_PORT_B_DDR#0 CIA1_PORT_B_DDR = ((byte*))(word/dword/signed dword) $dc03 (byte*) CIA2_INTERRUPT (byte*) CIA2_PORT_A -(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) 56576 +(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) $dd00 (byte*) CIA2_PORT_A_DDR -(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56578 +(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) $dd02 (byte*) CIA2_PORT_B (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR (byte*) COLS -(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) 55296 +(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) $d800 (byte) CYAN (byte*) D011 (byte*) D016 @@ -110,25 +110,25 @@ (byte) DTV_BORDER_OFF (const byte) DTV_BORDER_OFF#0 DTV_BORDER_OFF = (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_CHUNKY -(const byte) DTV_CHUNKY#0 DTV_CHUNKY = (byte/signed byte/word/signed word/dword/signed dword) 64 +(const byte) DTV_CHUNKY#0 DTV_CHUNKY = (byte/signed byte/word/signed word/dword/signed dword) $40 (byte) DTV_COLORRAM_OFF -(const byte) DTV_COLORRAM_OFF#0 DTV_COLORRAM_OFF = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) DTV_COLORRAM_OFF#0 DTV_COLORRAM_OFF = (byte/signed byte/word/signed word/dword/signed dword) $10 (dword) DTV_COLOR_BANK_DEFAULT -(const dword) DTV_COLOR_BANK_DEFAULT#0 DTV_COLOR_BANK_DEFAULT = (dword/signed dword) 120832 +(const dword) DTV_COLOR_BANK_DEFAULT#0 DTV_COLOR_BANK_DEFAULT = (dword/signed dword) $1d800 (byte*) DTV_COLOR_BANK_HI -(const byte*) DTV_COLOR_BANK_HI#0 DTV_COLOR_BANK_HI = ((byte*))(word/dword/signed dword) 53303 +(const byte*) DTV_COLOR_BANK_HI#0 DTV_COLOR_BANK_HI = ((byte*))(word/dword/signed dword) $d037 (byte*) DTV_COLOR_BANK_LO -(const byte*) DTV_COLOR_BANK_LO#0 DTV_COLOR_BANK_LO = ((byte*))(word/dword/signed dword) 53302 +(const byte*) DTV_COLOR_BANK_LO#0 DTV_COLOR_BANK_LO = ((byte*))(word/dword/signed dword) $d036 (byte*) DTV_CONTROL -(const byte*) DTV_CONTROL#0 DTV_CONTROL = ((byte*))(word/dword/signed dword) 53308 +(const byte*) DTV_CONTROL#0 DTV_CONTROL = ((byte*))(word/dword/signed dword) $d03c (byte*) DTV_FEATURE -(const byte*) DTV_FEATURE#0 DTV_FEATURE = ((byte*))(word/dword/signed dword) 53311 +(const byte*) DTV_FEATURE#0 DTV_FEATURE = ((byte*))(word/dword/signed dword) $d03f (byte) DTV_FEATURE_DISABLE_TIL_RESET (byte) DTV_FEATURE_ENABLE (const byte) DTV_FEATURE_ENABLE#0 DTV_FEATURE_ENABLE = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) DTV_GRAPHICS_HICOL_BANK (byte*) DTV_GRAPHICS_VIC_BANK -(const byte*) DTV_GRAPHICS_VIC_BANK#0 DTV_GRAPHICS_VIC_BANK = ((byte*))(word/dword/signed dword) 53309 +(const byte*) DTV_GRAPHICS_VIC_BANK#0 DTV_GRAPHICS_VIC_BANK = ((byte*))(word/dword/signed dword) $d03d (byte) DTV_HIGHCOLOR (const byte) DTV_HIGHCOLOR#0 DTV_HIGHCOLOR = (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DTV_LINEAR @@ -136,42 +136,42 @@ (byte) DTV_OVERSCAN (const byte) DTV_OVERSCAN#0 DTV_OVERSCAN = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte*) DTV_PALETTE -(const byte*) DTV_PALETTE#0 DTV_PALETTE = ((byte*))(word/dword/signed dword) 53760 -(byte[16]) DTV_PALETTE_DEFAULT -(const byte[16]) DTV_PALETTE_DEFAULT#0 DTV_PALETTE_DEFAULT = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 54, (byte/word/signed word/dword/signed dword) 190, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 219, (byte/word/signed word/dword/signed dword) 134, (byte/word/signed word/dword/signed dword) 255, (byte/signed byte/word/signed word/dword/signed dword) 41, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 59, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 154, (byte/signed byte/word/signed word/dword/signed dword) 10 } +(const byte*) DTV_PALETTE#0 DTV_PALETTE = ((byte*))(word/dword/signed dword) $d200 +(byte[$10]) DTV_PALETTE_DEFAULT +(const byte[$10]) DTV_PALETTE_DEFAULT#0 DTV_PALETTE_DEFAULT = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $36, (byte/word/signed word/dword/signed dword) $be, (byte/signed byte/word/signed word/dword/signed dword) $58, (byte/word/signed word/dword/signed dword) $db, (byte/word/signed word/dword/signed dword) $86, (byte/word/signed word/dword/signed dword) $ff, (byte/signed byte/word/signed word/dword/signed dword) $29, (byte/signed byte/word/signed word/dword/signed dword) $26, (byte/signed byte/word/signed word/dword/signed dword) $3b, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $9a, (byte/signed byte/word/signed word/dword/signed dword) $a } (byte*) DTV_PLANEA_MODULO_HI -(const byte*) DTV_PLANEA_MODULO_HI#0 DTV_PLANEA_MODULO_HI = ((byte*))(word/dword/signed dword) 53305 +(const byte*) DTV_PLANEA_MODULO_HI#0 DTV_PLANEA_MODULO_HI = ((byte*))(word/dword/signed dword) $d039 (byte*) DTV_PLANEA_MODULO_LO -(const byte*) DTV_PLANEA_MODULO_LO#0 DTV_PLANEA_MODULO_LO = ((byte*))(word/dword/signed dword) 53304 +(const byte*) DTV_PLANEA_MODULO_LO#0 DTV_PLANEA_MODULO_LO = ((byte*))(word/dword/signed dword) $d038 (byte*) DTV_PLANEA_START_HI -(const byte*) DTV_PLANEA_START_HI#0 DTV_PLANEA_START_HI = ((byte*))(word/dword/signed dword) 53317 +(const byte*) DTV_PLANEA_START_HI#0 DTV_PLANEA_START_HI = ((byte*))(word/dword/signed dword) $d045 (byte*) DTV_PLANEA_START_LO -(const byte*) DTV_PLANEA_START_LO#0 DTV_PLANEA_START_LO = ((byte*))(word/dword/signed dword) 53306 +(const byte*) DTV_PLANEA_START_LO#0 DTV_PLANEA_START_LO = ((byte*))(word/dword/signed dword) $d03a (byte*) DTV_PLANEA_START_MI -(const byte*) DTV_PLANEA_START_MI#0 DTV_PLANEA_START_MI = ((byte*))(word/dword/signed dword) 53307 +(const byte*) DTV_PLANEA_START_MI#0 DTV_PLANEA_START_MI = ((byte*))(word/dword/signed dword) $d03b (byte*) DTV_PLANEA_STEP -(const byte*) DTV_PLANEA_STEP#0 DTV_PLANEA_STEP = ((byte*))(word/dword/signed dword) 53318 +(const byte*) DTV_PLANEA_STEP#0 DTV_PLANEA_STEP = ((byte*))(word/dword/signed dword) $d046 (byte*) DTV_PLANEB_MODULO_HI -(const byte*) DTV_PLANEB_MODULO_HI#0 DTV_PLANEB_MODULO_HI = ((byte*))(word/dword/signed dword) 53320 +(const byte*) DTV_PLANEB_MODULO_HI#0 DTV_PLANEB_MODULO_HI = ((byte*))(word/dword/signed dword) $d048 (byte*) DTV_PLANEB_MODULO_LO -(const byte*) DTV_PLANEB_MODULO_LO#0 DTV_PLANEB_MODULO_LO = ((byte*))(word/dword/signed dword) 53319 +(const byte*) DTV_PLANEB_MODULO_LO#0 DTV_PLANEB_MODULO_LO = ((byte*))(word/dword/signed dword) $d047 (byte*) DTV_PLANEB_START_HI -(const byte*) DTV_PLANEB_START_HI#0 DTV_PLANEB_START_HI = ((byte*))(word/dword/signed dword) 53323 +(const byte*) DTV_PLANEB_START_HI#0 DTV_PLANEB_START_HI = ((byte*))(word/dword/signed dword) $d04b (byte*) DTV_PLANEB_START_LO -(const byte*) DTV_PLANEB_START_LO#0 DTV_PLANEB_START_LO = ((byte*))(word/dword/signed dword) 53321 +(const byte*) DTV_PLANEB_START_LO#0 DTV_PLANEB_START_LO = ((byte*))(word/dword/signed dword) $d049 (byte*) DTV_PLANEB_START_MI -(const byte*) DTV_PLANEB_START_MI#0 DTV_PLANEB_START_MI = ((byte*))(word/dword/signed dword) 53322 +(const byte*) DTV_PLANEB_START_MI#0 DTV_PLANEB_START_MI = ((byte*))(word/dword/signed dword) $d04a (byte*) DTV_PLANEB_STEP -(const byte*) DTV_PLANEB_STEP#0 DTV_PLANEB_STEP = ((byte*))(word/dword/signed dword) 53324 +(const byte*) DTV_PLANEB_STEP#0 DTV_PLANEB_STEP = ((byte*))(word/dword/signed dword) $d04c (byte*) DTV_SPRITE_BANK (byte*) FORM_CHARSET -(const byte*) FORM_CHARSET#0 FORM_CHARSET = ((byte*))(word/signed word/dword/signed dword) 6144 +(const byte*) FORM_CHARSET#0 FORM_CHARSET = ((byte*))(word/signed word/dword/signed dword) $1800 (byte[]) FORM_COLS (const byte[]) FORM_COLS#0 FORM_COLS = (string) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+(string) " @"+(string) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@"+(string) " @"+(string) " nnnnnnnnnnnn mmmmmmmmmm ooooooooo @"+(string) " nnnnnnnnnnnn mmmmmmmmmm ooooooooo @"+(string) " nnnnnnnnnnnn mmmmmmmmmm ooooooooo @"+(string) " nnnnnnnnnnnn mmmmmmmmmm ooooooooo @"+(string) " nnnnnnnnnnnn mmmmmmmmmm @"+(string) " nnnnnnnnnnnn jjjjjjjjj @"+(string) " nnnnnnnnnnnn mmmmmmmmmm jjjjjjjjj @"+(string) " nnnnnnnnnnnn mmmmmmmmmm jjjjjjjjj @"+(string) " nnnnnnnnnnnn mmmmmmmmmm jjjjjjjjj @"+(string) " nnnnnnnnnnnn mmmmmmmmmm jjjjjjjjj @"+(string) " nnnnnnnnnnnn mmmmmmmmmm jjjjjjjjj @"+(string) " nnnnnnnnnnnn mmmmmmmmmm jjjjjjjjj @"+(string) "@" (signed byte) FORM_CURSOR_BLINK -(const signed byte) FORM_CURSOR_BLINK#0 FORM_CURSOR_BLINK = (byte/signed byte/word/signed word/dword/signed dword) 40 +(const signed byte) FORM_CURSOR_BLINK#0 FORM_CURSOR_BLINK = (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) FORM_SCREEN -(const byte*) FORM_SCREEN#0 FORM_SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) FORM_SCREEN#0 FORM_SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte[]) FORM_TEXT (const byte[]) FORM_TEXT#0 FORM_TEXT = (string) " C64 DTV Graphics Mode Explorer @"+(string) " @"+(string) " PRESET 0 Standard Charset @"+(string) " @"+(string) " CONTROL PLANE A VIC II @"+(string) " bmm 0 pattern p0 screen s0 @"+(string) " mcm 0 start 00 gfx g0 @"+(string) " ecm 0 step 00 colors c0 @"+(string) " hicolor 0 modulo 00 @"+(string) " linear 0 COLORS @"+(string) " color off 0 PLANE B palet 0 @"+(string) " chunky 0 pattern p0 bgcol0 00 @"+(string) " border off 0 start 00 bgcol1 00 @"+(string) " overscan 0 step 00 bgcol2 00 @"+(string) " modulo 00 bgcol3 00 @"+(string) "@" (byte) GREEN @@ -204,13 +204,13 @@ (byte) KEY_COLON (byte) KEY_COMMA (byte) KEY_COMMODORE -(const byte) KEY_COMMODORE#0 KEY_COMMODORE = (byte/signed byte/word/signed word/dword/signed dword) 61 +(const byte) KEY_COMMODORE#0 KEY_COMMODORE = (byte/signed byte/word/signed word/dword/signed dword) $3d (byte) KEY_CRSR_DOWN (const byte) KEY_CRSR_DOWN#0 KEY_CRSR_DOWN = (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) KEY_CRSR_RIGHT (const byte) KEY_CRSR_RIGHT#0 KEY_CRSR_RIGHT = (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) KEY_CTRL -(const byte) KEY_CTRL#0 KEY_CTRL = (byte/signed byte/word/signed word/dword/signed dword) 58 +(const byte) KEY_CTRL#0 KEY_CTRL = (byte/signed byte/word/signed word/dword/signed dword) $3a (byte) KEY_D (byte) KEY_DEL (byte) KEY_DOT @@ -229,7 +229,7 @@ (byte) KEY_K (byte) KEY_L (byte) KEY_LSHIFT -(const byte) KEY_LSHIFT#0 KEY_LSHIFT = (byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte) KEY_LSHIFT#0 KEY_LSHIFT = (byte/signed byte/word/signed word/dword/signed dword) $f (byte) KEY_M (byte) KEY_MINUS (byte) KEY_MODIFIER_COMMODORE @@ -251,13 +251,13 @@ (byte) KEY_R (byte) KEY_RETURN (byte) KEY_RSHIFT -(const byte) KEY_RSHIFT#0 KEY_RSHIFT = (byte/signed byte/word/signed word/dword/signed dword) 52 +(const byte) KEY_RSHIFT#0 KEY_RSHIFT = (byte/signed byte/word/signed word/dword/signed dword) $34 (byte) KEY_RUNSTOP (byte) KEY_S (byte) KEY_SEMICOLON (byte) KEY_SLASH (byte) KEY_SPACE -(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) 60 +(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) $3c (byte) KEY_T (byte) KEY_U (byte) KEY_V @@ -273,21 +273,21 @@ (byte) ORANGE (byte) PINK (dword) PLANE_8BPP_CHUNKY -(const dword) PLANE_8BPP_CHUNKY#0 PLANE_8BPP_CHUNKY = (dword/signed dword) 131072 +(const dword) PLANE_8BPP_CHUNKY#0 PLANE_8BPP_CHUNKY = (dword/signed dword) $20000 (dword) PLANE_BLANK -(const dword) PLANE_BLANK#0 PLANE_BLANK = (dword/signed dword) 229376 +(const dword) PLANE_BLANK#0 PLANE_BLANK = (dword/signed dword) $38000 (dword) PLANE_CHARSET8 -(const dword) PLANE_CHARSET8#0 PLANE_CHARSET8 = (dword/signed dword) 245760 +(const dword) PLANE_CHARSET8#0 PLANE_CHARSET8 = (dword/signed dword) $3c000 (dword) PLANE_FULL -(const dword) PLANE_FULL#0 PLANE_FULL = (dword/signed dword) 237568 +(const dword) PLANE_FULL#0 PLANE_FULL = (dword/signed dword) $3a000 (dword) PLANE_HORISONTAL -(const dword) PLANE_HORISONTAL#0 PLANE_HORISONTAL = (dword/signed dword) 196608 +(const dword) PLANE_HORISONTAL#0 PLANE_HORISONTAL = (dword/signed dword) $30000 (dword) PLANE_HORISONTAL2 -(const dword) PLANE_HORISONTAL2#0 PLANE_HORISONTAL2 = (dword/signed dword) 212992 +(const dword) PLANE_HORISONTAL2#0 PLANE_HORISONTAL2 = (dword/signed dword) $34000 (dword) PLANE_VERTICAL -(const dword) PLANE_VERTICAL#0 PLANE_VERTICAL = (dword/signed dword) 204800 +(const dword) PLANE_VERTICAL#0 PLANE_VERTICAL = (dword/signed dword) $32000 (dword) PLANE_VERTICAL2 -(const dword) PLANE_VERTICAL2#0 PLANE_VERTICAL2 = (dword/signed dword) 221184 +(const dword) PLANE_VERTICAL2#0 PLANE_VERTICAL2 = (dword/signed dword) $36000 (byte*) PROCPORT (const byte*) PROCPORT#0 PROCPORT = ((byte*))(byte/signed byte/word/signed word/dword/signed dword) 1 (byte) PROCPORT_BASIC_KERNEL_IO @@ -298,12 +298,12 @@ (byte) PROCPORT_KERNEL_IO (byte) PROCPORT_RAM_ALL (byte) PROCPORT_RAM_CHARROM -(const byte) PROCPORT_RAM_CHARROM#0 PROCPORT_RAM_CHARROM = (byte/signed byte/word/signed word/dword/signed dword) 49 +(const byte) PROCPORT_RAM_CHARROM#0 PROCPORT_RAM_CHARROM = (byte/signed byte/word/signed word/dword/signed dword) $31 (byte) PROCPORT_RAM_IO -(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) 53 +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) $35 (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE @@ -318,38 +318,38 @@ (byte*) SPRITES_YPOS (word) SPRITE_PTRS (byte*) VIC_BITMAP -(const byte*) VIC_BITMAP#0 VIC_BITMAP = ((byte*))(word/signed word/dword/signed dword) 24576 +(const byte*) VIC_BITMAP#0 VIC_BITMAP = ((byte*))(word/signed word/dword/signed dword) $6000 (byte) VIC_BMM -(const byte) VIC_BMM#0 VIC_BMM = (byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte) VIC_BMM#0 VIC_BMM = (byte/signed byte/word/signed word/dword/signed dword) $20 (byte*) VIC_CHARSET_ROM -(const byte*) VIC_CHARSET_ROM#0 VIC_CHARSET_ROM = ((byte*))(word/signed word/dword/signed dword) 22528 +(const byte*) VIC_CHARSET_ROM#0 VIC_CHARSET_ROM = ((byte*))(word/signed word/dword/signed dword) $5800 (byte*) VIC_CONTROL -(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) 53265 +(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) $d011 (byte*) VIC_CONTROL2 -(const byte*) VIC_CONTROL2#0 VIC_CONTROL2 = ((byte*))(word/dword/signed dword) 53270 +(const byte*) VIC_CONTROL2#0 VIC_CONTROL2 = ((byte*))(word/dword/signed dword) $d016 (byte) VIC_CSEL (const byte) VIC_CSEL#0 VIC_CSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) VIC_DEN -(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_ECM -(const byte) VIC_ECM#0 VIC_ECM = (byte/signed byte/word/signed word/dword/signed dword) 64 +(const byte) VIC_ECM#0 VIC_ECM = (byte/signed byte/word/signed word/dword/signed dword) $40 (byte) VIC_MCM -(const byte) VIC_MCM#0 VIC_MCM = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_MCM#0 VIC_MCM = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte*) VIC_MEMORY -(const byte*) VIC_MEMORY#0 VIC_MEMORY = ((byte*))(word/dword/signed dword) 53272 +(const byte*) VIC_MEMORY#0 VIC_MEMORY = ((byte*))(word/dword/signed dword) $d018 (byte) VIC_RSEL (const byte) VIC_RSEL#0 VIC_RSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) VIC_RST8 (byte*) VIC_SCREEN0 -(const byte*) VIC_SCREEN0#0 VIC_SCREEN0 = ((byte*))(word/signed word/dword/signed dword) 16384 +(const byte*) VIC_SCREEN0#0 VIC_SCREEN0 = ((byte*))(word/signed word/dword/signed dword) $4000 (byte*) VIC_SCREEN1 -(const byte*) VIC_SCREEN1#0 VIC_SCREEN1 = ((byte*))(word/signed word/dword/signed dword) 17408 +(const byte*) VIC_SCREEN1#0 VIC_SCREEN1 = ((byte*))(word/signed word/dword/signed dword) $4400 (byte*) VIC_SCREEN2 -(const byte*) VIC_SCREEN2#0 VIC_SCREEN2 = ((byte*))(word/signed word/dword/signed dword) 18432 +(const byte*) VIC_SCREEN2#0 VIC_SCREEN2 = ((byte*))(word/signed word/dword/signed dword) $4800 (byte*) VIC_SCREEN3 -(const byte*) VIC_SCREEN3#0 VIC_SCREEN3 = ((byte*))(word/signed word/dword/signed dword) 19456 +(const byte*) VIC_SCREEN3#0 VIC_SCREEN3 = ((byte*))(word/signed word/dword/signed dword) $4c00 (byte*) VIC_SCREEN4 -(const byte*) VIC_SCREEN4#0 VIC_SCREEN4 = ((byte*))(word/signed word/dword/signed dword) 20480 +(const byte*) VIC_SCREEN4#0 VIC_SCREEN4 = ((byte*))(word/signed word/dword/signed dword) $5000 (byte) WHITE (byte) YELLOW (void()) apply_preset((byte) apply_preset::idx) @@ -625,52 +625,52 @@ (byte) bitmap_plot::y#2 reg byte y 202.0 (byte) bitmap_plot::y#3 reg byte y 202.0 (byte) bitmap_plot::y#4 reg byte y 204.0 -(byte[256]) bitmap_plot_bit -(const byte[256]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( 256, 0) } -(byte[256]) bitmap_plot_xhi -(const byte[256]) bitmap_plot_xhi#0 bitmap_plot_xhi = { fill( 256, 0) } -(byte[256]) bitmap_plot_xlo -(const byte[256]) bitmap_plot_xlo#0 bitmap_plot_xlo = { fill( 256, 0) } -(byte[256]) bitmap_plot_yhi -(const byte[256]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( 256, 0) } -(byte[256]) bitmap_plot_ylo -(const byte[256]) bitmap_plot_ylo#0 bitmap_plot_ylo = { fill( 256, 0) } +(byte[$100]) bitmap_plot_bit +(const byte[$100]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( $100, 0) } +(byte[$100]) bitmap_plot_xhi +(const byte[$100]) bitmap_plot_xhi#0 bitmap_plot_xhi = { fill( $100, 0) } +(byte[$100]) bitmap_plot_xlo +(const byte[$100]) bitmap_plot_xlo#0 bitmap_plot_xlo = { fill( $100, 0) } +(byte[$100]) bitmap_plot_yhi +(const byte[$100]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( $100, 0) } +(byte[$100]) bitmap_plot_ylo +(const byte[$100]) bitmap_plot_ylo#0 bitmap_plot_ylo = { fill( $100, 0) } (void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx) (label) dtvSetCpuBankSegment1::@return (byte*) dtvSetCpuBankSegment1::cpuBank -(const byte*) dtvSetCpuBankSegment1::cpuBank#0 cpuBank = ((byte*))(byte/word/signed word/dword/signed dword) 255 +(const byte*) dtvSetCpuBankSegment1::cpuBank#0 cpuBank = ((byte*))(byte/word/signed word/dword/signed dword) $ff (byte) dtvSetCpuBankSegment1::cpuBankIdx (byte) dtvSetCpuBankSegment1::cpuBankIdx#1 reg byte a 202.0 (byte) dtvSetCpuBankSegment1::cpuBankIdx#11 reg byte a 4.0 (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 reg byte a 105.0 (byte*) form_a_mod_hi -(const byte*) form_a_mod_hi#0 form_a_mod_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte*) form_a_mod_hi#0 form_a_mod_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $f (byte*) form_a_mod_lo -(const byte*) form_a_mod_lo#0 form_a_mod_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte*) form_a_mod_lo#0 form_a_mod_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $10 (byte*) form_a_pattern -(const byte*) form_a_pattern#0 form_a_pattern = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 10 +(const byte*) form_a_pattern#0 form_a_pattern = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $a (byte*) form_a_start_hi -(const byte*) form_a_start_hi#0 form_a_start_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 11 +(const byte*) form_a_start_hi#0 form_a_start_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $b (byte*) form_a_start_lo -(const byte*) form_a_start_lo#0 form_a_start_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 12 +(const byte*) form_a_start_lo#0 form_a_start_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $c (byte*) form_a_step_hi -(const byte*) form_a_step_hi#0 form_a_step_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 13 +(const byte*) form_a_step_hi#0 form_a_step_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $d (byte*) form_a_step_lo -(const byte*) form_a_step_lo#0 form_a_step_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 14 +(const byte*) form_a_step_lo#0 form_a_step_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $e (byte*) form_b_mod_hi -(const byte*) form_b_mod_hi#0 form_b_mod_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 22 +(const byte*) form_b_mod_hi#0 form_b_mod_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $16 (byte*) form_b_mod_lo -(const byte*) form_b_mod_lo#0 form_b_mod_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 23 +(const byte*) form_b_mod_lo#0 form_b_mod_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $17 (byte*) form_b_pattern -(const byte*) form_b_pattern#0 form_b_pattern = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 17 +(const byte*) form_b_pattern#0 form_b_pattern = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $11 (byte*) form_b_start_hi -(const byte*) form_b_start_hi#0 form_b_start_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 18 +(const byte*) form_b_start_hi#0 form_b_start_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $12 (byte*) form_b_start_lo -(const byte*) form_b_start_lo#0 form_b_start_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 19 +(const byte*) form_b_start_lo#0 form_b_start_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $13 (byte*) form_b_step_hi -(const byte*) form_b_step_hi#0 form_b_step_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 20 +(const byte*) form_b_step_hi#0 form_b_step_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $14 (byte*) form_b_step_lo -(const byte*) form_b_step_lo#0 form_b_step_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 21 +(const byte*) form_b_step_lo#0 form_b_step_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $15 (byte()) form_control() (byte~) form_control::$11 reg byte a 4.0 (byte~) form_control::$12 reg byte a 4.0 @@ -733,7 +733,7 @@ (signed byte) form_cursor_count#21 form_cursor_count zp ZP_BYTE:14 158.0 (signed byte) form_cursor_count#5 form_cursor_count zp ZP_BYTE:14 2.0 (byte*) form_dtv_palet -(const byte*) form_dtv_palet#0 form_dtv_palet = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 27 +(const byte*) form_dtv_palet#0 form_dtv_palet = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $1b (byte) form_field_idx (byte) form_field_idx#1 reg byte x 0.3333333333333333 (byte) form_field_idx#18 reg byte x 65.94117647058826 @@ -759,19 +759,19 @@ (byte) form_field_ptr::y (byte) form_field_ptr::y#0 reg byte a 6.0 (byte) form_fields_cnt -(const byte) form_fields_cnt#0 form_fields_cnt = (byte/signed byte/word/signed word/dword/signed dword) 36 +(const byte) form_fields_cnt#0 form_fields_cnt = (byte/signed byte/word/signed word/dword/signed dword) $24 (byte[]) form_fields_max -(const byte[]) form_fields_max#0 form_fields_max = { (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15 } +(const byte[]) form_fields_max#0 form_fields_max = { (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f } (byte[]) form_fields_val (const byte[]) form_fields_val#0 form_fields_val = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) form_fields_x -(const byte[]) form_fields_x#0 form_fields_x = { (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 24, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 24, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 24, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 24, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 24, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 24, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 37, (byte/signed byte/word/signed word/dword/signed dword) 37, (byte/signed byte/word/signed word/dword/signed dword) 37, (byte/signed byte/word/signed word/dword/signed dword) 37, (byte/signed byte/word/signed word/dword/signed dword) 36, (byte/signed byte/word/signed word/dword/signed dword) 37, (byte/signed byte/word/signed word/dword/signed dword) 36, (byte/signed byte/word/signed word/dword/signed dword) 37, (byte/signed byte/word/signed word/dword/signed dword) 36, (byte/signed byte/word/signed word/dword/signed dword) 37, (byte/signed byte/word/signed word/dword/signed dword) 36, (byte/signed byte/word/signed word/dword/signed dword) 37 } +(const byte[]) form_fields_x#0 form_fields_x = { (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $18, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $18, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $18, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $18, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $18, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $18, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $25, (byte/signed byte/word/signed word/dword/signed dword) $25, (byte/signed byte/word/signed word/dword/signed dword) $25, (byte/signed byte/word/signed word/dword/signed dword) $25, (byte/signed byte/word/signed word/dword/signed dword) $24, (byte/signed byte/word/signed word/dword/signed dword) $25, (byte/signed byte/word/signed word/dword/signed dword) $24, (byte/signed byte/word/signed word/dword/signed dword) $25, (byte/signed byte/word/signed word/dword/signed dword) $24, (byte/signed byte/word/signed word/dword/signed dword) $25, (byte/signed byte/word/signed word/dword/signed dword) $24, (byte/signed byte/word/signed word/dword/signed dword) $25 } (byte[]) form_fields_y -(const byte[]) form_fields_y#0 form_fields_y = { (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 14, (byte/signed byte/word/signed word/dword/signed dword) 14, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 14, (byte/signed byte/word/signed word/dword/signed dword) 14 } -(byte[25]) form_line_hi -(const byte[25]) form_line_hi#0 form_line_hi = { fill( 25, 0) } -(byte[25]) form_line_lo -(const byte[25]) form_line_lo#0 form_line_lo = { fill( 25, 0) } +(const byte[]) form_fields_y#0 form_fields_y = { (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $e, (byte/signed byte/word/signed word/dword/signed dword) $e, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $e, (byte/signed byte/word/signed word/dword/signed dword) $e } +(byte[$19]) form_line_hi +(const byte[$19]) form_line_hi#0 form_line_hi = { fill( $19, 0) } +(byte[$19]) form_line_lo +(const byte[$19]) form_line_lo#0 form_line_lo = { fill( $19, 0) } (void()) form_mode() (byte~) form_mode::$36 reg byte a 2002.0 (label) form_mode::@1 @@ -824,27 +824,27 @@ (byte) form_set_screen::y#1 reg byte y 151.5 (byte) form_set_screen::y#2 reg byte y 67.33333333333333 (byte*) form_vic_bg0_hi -(const byte*) form_vic_bg0_hi#0 form_vic_bg0_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 28 +(const byte*) form_vic_bg0_hi#0 form_vic_bg0_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $1c (byte*) form_vic_bg0_lo -(const byte*) form_vic_bg0_lo#0 form_vic_bg0_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 29 +(const byte*) form_vic_bg0_lo#0 form_vic_bg0_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $1d (byte*) form_vic_bg1_hi -(const byte*) form_vic_bg1_hi#0 form_vic_bg1_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 30 +(const byte*) form_vic_bg1_hi#0 form_vic_bg1_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $1e (byte*) form_vic_bg1_lo -(const byte*) form_vic_bg1_lo#0 form_vic_bg1_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 31 +(const byte*) form_vic_bg1_lo#0 form_vic_bg1_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $1f (byte*) form_vic_bg2_hi -(const byte*) form_vic_bg2_hi#0 form_vic_bg2_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte*) form_vic_bg2_hi#0 form_vic_bg2_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $20 (byte*) form_vic_bg2_lo -(const byte*) form_vic_bg2_lo#0 form_vic_bg2_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 33 +(const byte*) form_vic_bg2_lo#0 form_vic_bg2_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $21 (byte*) form_vic_bg3_hi -(const byte*) form_vic_bg3_hi#0 form_vic_bg3_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 34 +(const byte*) form_vic_bg3_hi#0 form_vic_bg3_hi = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $22 (byte*) form_vic_bg3_lo -(const byte*) form_vic_bg3_lo#0 form_vic_bg3_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 35 +(const byte*) form_vic_bg3_lo#0 form_vic_bg3_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $23 (byte*) form_vic_cols -(const byte*) form_vic_cols#0 form_vic_cols = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 26 +(const byte*) form_vic_cols#0 form_vic_cols = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $1a (byte*) form_vic_gfx -(const byte*) form_vic_gfx#0 form_vic_gfx = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 25 +(const byte*) form_vic_gfx#0 form_vic_gfx = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $19 (byte*) form_vic_screen -(const byte*) form_vic_screen#0 form_vic_screen = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 24 +(const byte*) form_vic_screen#0 form_vic_screen = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) $18 (dword()) get_plane((byte) get_plane::idx) (label) get_plane::@27 (label) get_plane::@28 @@ -1002,7 +1002,7 @@ (byte*) gfx_init_plane_charset8::gfxa#5 gfxa zp ZP_WORD:5 71.0 (byte*) gfx_init_plane_charset8::gfxa#6 gfxa zp ZP_WORD:5 22.0 (byte) gfx_init_plane_charset8::gfxbCpuBank -(const byte) gfx_init_plane_charset8::gfxbCpuBank#0 gfxbCpuBank = ((byte))(const dword) PLANE_CHARSET8#0/(word/signed word/dword/signed dword) 16384 +(const byte) gfx_init_plane_charset8::gfxbCpuBank#0 gfxbCpuBank = ((byte))(const dword) PLANE_CHARSET8#0/(word/signed word/dword/signed dword) $4000 (void()) gfx_init_plane_fill((dword) gfx_init_plane_fill::plane_addr , (byte) gfx_init_plane_fill::fill) (dword~) gfx_init_plane_fill::$0 $0 zp ZP_DWORD:19 4.0 (word~) gfx_init_plane_fill::$1 $1 zp ZP_WORD:3 4.0 @@ -1058,7 +1058,7 @@ (byte*) gfx_init_plane_horisontal::gfxa#6 gfxa zp ZP_WORD:3 22.0 (byte*) gfx_init_plane_horisontal::gfxa#7 gfxa zp ZP_WORD:3 62.8 (byte) gfx_init_plane_horisontal::gfxbCpuBank -(const byte) gfx_init_plane_horisontal::gfxbCpuBank#0 gfxbCpuBank = ((byte))(const dword) PLANE_HORISONTAL#0/(word/signed word/dword/signed dword) 16384 +(const byte) gfx_init_plane_horisontal::gfxbCpuBank#0 gfxbCpuBank = ((byte))(const dword) PLANE_HORISONTAL#0/(word/signed word/dword/signed dword) $4000 (void()) gfx_init_plane_horisontal2() (byte~) gfx_init_plane_horisontal2::$5 reg byte a 202.0 (label) gfx_init_plane_horisontal2::@1 @@ -1077,11 +1077,11 @@ (byte*) gfx_init_plane_horisontal2::gfxa#2 gfxa zp ZP_WORD:3 78.5 (byte*) gfx_init_plane_horisontal2::gfxa#3 gfxa zp ZP_WORD:3 22.0 (byte) gfx_init_plane_horisontal2::gfxbCpuBank -(const byte) gfx_init_plane_horisontal2::gfxbCpuBank#0 gfxbCpuBank = ((byte))(const dword) PLANE_HORISONTAL2#0/(word/signed word/dword/signed dword) 16384 +(const byte) gfx_init_plane_horisontal2::gfxbCpuBank#0 gfxbCpuBank = ((byte))(const dword) PLANE_HORISONTAL2#0/(word/signed word/dword/signed dword) $4000 (byte) gfx_init_plane_horisontal2::row (byte) gfx_init_plane_horisontal2::row#0 reg byte a 202.0 (byte[]) gfx_init_plane_horisontal2::row_bitmask -(const byte[]) gfx_init_plane_horisontal2::row_bitmask#0 row_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 85, (byte/word/signed word/dword/signed dword) 170, (byte/word/signed word/dword/signed dword) 255 } +(const byte[]) gfx_init_plane_horisontal2::row_bitmask#0 row_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $55, (byte/word/signed word/dword/signed dword) $aa, (byte/word/signed word/dword/signed dword) $ff } (void()) gfx_init_plane_vertical() (label) gfx_init_plane_vertical::@1 (label) gfx_init_plane_vertical::@2 @@ -1099,7 +1099,7 @@ (byte*) gfx_init_plane_vertical::gfxb#2 gfxb zp ZP_WORD:3 157.0 (byte*) gfx_init_plane_vertical::gfxb#3 gfxb zp ZP_WORD:3 22.0 (byte) gfx_init_plane_vertical::gfxbCpuBank -(const byte) gfx_init_plane_vertical::gfxbCpuBank#0 gfxbCpuBank = ((byte))(const dword) PLANE_VERTICAL#0/(word/signed word/dword/signed dword) 16384 +(const byte) gfx_init_plane_vertical::gfxbCpuBank#0 gfxbCpuBank = ((byte))(const dword) PLANE_VERTICAL#0/(word/signed word/dword/signed dword) $4000 (void()) gfx_init_plane_vertical2() (label) gfx_init_plane_vertical2::@return (void()) gfx_init_screen0() @@ -1205,9 +1205,9 @@ (byte) gfx_init_vic_bitmap::lines_cnt (const byte) gfx_init_vic_bitmap::lines_cnt#0 lines_cnt = (byte/signed byte/word/signed word/dword/signed dword) 9 (byte[]) gfx_init_vic_bitmap::lines_x -(const byte[]) gfx_init_vic_bitmap::lines_x#0 lines_x = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 128, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 128, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 128 } +(const byte[]) gfx_init_vic_bitmap::lines_x#0 lines_x = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $ff, (byte/word/signed word/dword/signed dword) $ff, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $80, (byte/word/signed word/dword/signed dword) $ff, (byte/word/signed word/dword/signed dword) $80, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $80 } (byte[]) gfx_init_vic_bitmap::lines_y -(const byte[]) gfx_init_vic_bitmap::lines_y#0 lines_y = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 199, (byte/word/signed word/dword/signed dword) 199, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/word/signed word/dword/signed dword) 199, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/signed byte/word/signed word/dword/signed dword) 0 } +(const byte[]) gfx_init_vic_bitmap::lines_y#0 lines_y = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $c7, (byte/word/signed word/dword/signed dword) $c7, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $64, (byte/word/signed word/dword/signed dword) $c7, (byte/signed byte/word/signed word/dword/signed dword) $64, (byte/signed byte/word/signed word/dword/signed dword) 0 } (void()) gfx_mode() (byte~) gfx_mode::$29 reg byte a 4.0 (dword~) gfx_mode::$31 $31 zp ZP_DWORD:10 4.0 @@ -1421,7 +1421,7 @@ (void()) keyboard_init() (label) keyboard_init::@return (byte[8]) keyboard_matrix_col_bitmask -(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $10, (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/word/signed word/dword/signed dword) $80 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (label) keyboard_matrix_read::@return (byte) keyboard_matrix_read::return @@ -1431,7 +1431,7 @@ (byte) keyboard_matrix_read::rowid (byte) keyboard_matrix_read::rowid#0 reg byte a 10003.0 (byte[8]) keyboard_matrix_row_bitmask -(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } +(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) $fe, (byte/word/signed word/dword/signed dword) $fd, (byte/word/signed word/dword/signed dword) $fb, (byte/word/signed word/dword/signed dword) $f7, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $bf, (byte/signed byte/word/signed word/dword/signed dword) $7f } (byte) keyboard_modifiers (byte) keyboard_modifiers#18 keyboard_modifiers zp ZP_BYTE:2 0.8 (byte) keyboard_modifiers#19 keyboard_modifiers zp ZP_BYTE:2 1.6 @@ -1448,27 +1448,27 @@ (label) main::@7 (label) main::@9 (byte[]) preset_8bpppixelcell -(const byte[]) preset_8bpppixelcell#0 preset_8bpppixelcell = { (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } +(const byte[]) preset_8bpppixelcell#0 preset_8bpppixelcell = { (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) preset_chunky (const byte[]) preset_chunky#0 preset_chunky = { (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) preset_ecmchar (const byte[]) preset_ecmchar#0 preset_ecmchar = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 6 } (byte[]) preset_hi_ecmchar -(const byte[]) preset_hi_ecmchar#0 preset_hi_ecmchar = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12 } +(const byte[]) preset_hi_ecmchar#0 preset_hi_ecmchar = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c } (byte[]) preset_hi_stdchar (const byte[]) preset_hi_stdchar#0 preset_hi_stdchar = { (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) preset_mcbm (const byte[]) preset_mcbm#0 preset_mcbm = { (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) preset_sixsfred -(const byte[]) preset_sixsfred#0 preset_sixsfred = { (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } +(const byte[]) preset_sixsfred#0 preset_sixsfred = { (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) preset_sixsfred2 -(const byte[]) preset_sixsfred2#0 preset_sixsfred2 = { (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } +(const byte[]) preset_sixsfred2#0 preset_sixsfred2 = { (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 9, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) preset_stdbm (const byte[]) preset_stdbm#0 preset_stdbm = { (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) preset_stdchar (const byte[]) preset_stdchar#0 preset_stdchar = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) preset_twoplane -(const byte[]) preset_twoplane#0 preset_twoplane = { (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } +(const byte[]) preset_twoplane#0 preset_twoplane = { (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte*) print_char_cursor (byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:5 2002.0 (byte*) print_char_cursor#20 print_char_cursor zp ZP_WORD:5 821.0 diff --git a/src/test/ref/c64dtv-gfxmodes.cfg b/src/test/ref/c64dtv-gfxmodes.cfg index a0cc51702..0a9acbac6 100644 --- a/src/test/ref/c64dtv-gfxmodes.cfg +++ b/src/test/ref/c64dtv-gfxmodes.cfg @@ -18,27 +18,27 @@ main::@2: scope:[main] from main main::@2 [9] call menu to:main::@2 menu: scope:[menu] from main::@2 - [10] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 - [11] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 - [12] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 + [10] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) $10000 + [11] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 + [12] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [13] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [14] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 - [15] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 + [15] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) $4000 [16] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [17] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 - [18] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 + [18] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 to:menu::@1 menu::@1: scope:[menu] from menu menu::@1 [19] (byte) menu::i#2 ← phi( menu/(byte/signed byte/word/signed word/dword/signed dword) 0 menu::@1/(byte) menu::i#1 ) - [20] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) + [20] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) [21] (byte) menu::i#1 ← ++ (byte) menu::i#2 - [22] if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto menu::@1 + [22] if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto menu::@1 to:menu::@2 menu::@2: scope:[menu] from menu::@1 menu::@2 [23] (byte*) menu::c#2 ← phi( menu::@1/(const byte*) COLS#0 menu::@2/(byte*) menu::c#1 ) [24] *((byte*) menu::c#2) ← (const byte) LIGHT_GREEN#0 [25] (byte*) menu::c#1 ← ++ (byte*) menu::c#2 - [26] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) 1000) goto menu::@2 + [26] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) $3e8) goto menu::@2 to:menu::@19 menu::@19: scope:[menu] from menu::@2 [27] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -228,22 +228,22 @@ mode_8bppchunkybmm::@1: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm mode [129] (byte) mode_8bppchunkybmm::i#2 ← phi( mode_8bppchunkybmm/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_8bppchunkybmm::@1/(byte) mode_8bppchunkybmm::i#1 ) [130] *((const byte*) DTV_PALETTE#0 + (byte) mode_8bppchunkybmm::i#2) ← (byte) mode_8bppchunkybmm::i#2 [131] (byte) mode_8bppchunkybmm::i#1 ← ++ (byte) mode_8bppchunkybmm::i#2 - [132] if((byte) mode_8bppchunkybmm::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_8bppchunkybmm::@1 + [132] if((byte) mode_8bppchunkybmm::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_8bppchunkybmm::@1 to:mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@5: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@1 [133] phi() [134] call dtvSetCpuBankSegment1 to:mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@2: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@7 - [135] (byte) mode_8bppchunkybmm::gfxbCpuBank#7 ← phi( mode_8bppchunkybmm::@7/(byte) mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::@5/++((byte))(const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) 16384 ) + [135] (byte) mode_8bppchunkybmm::gfxbCpuBank#7 ← phi( mode_8bppchunkybmm::@7/(byte) mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::@5/++((byte))(const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) $4000 ) [135] (byte) mode_8bppchunkybmm::y#6 ← phi( mode_8bppchunkybmm::@7/(byte) mode_8bppchunkybmm::y#1 mode_8bppchunkybmm::@5/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [135] (byte*) mode_8bppchunkybmm::gfxb#5 ← phi( mode_8bppchunkybmm::@7/(byte*) mode_8bppchunkybmm::gfxb#1 mode_8bppchunkybmm::@5/((byte*))(word/signed word/dword/signed dword) 16384 ) + [135] (byte*) mode_8bppchunkybmm::gfxb#5 ← phi( mode_8bppchunkybmm::@7/(byte*) mode_8bppchunkybmm::gfxb#1 mode_8bppchunkybmm::@5/((byte*))(word/signed word/dword/signed dword) $4000 ) to:mode_8bppchunkybmm::@3 mode_8bppchunkybmm::@3: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@4 [136] (byte) mode_8bppchunkybmm::gfxbCpuBank#4 ← phi( mode_8bppchunkybmm::@2/(byte) mode_8bppchunkybmm::gfxbCpuBank#7 mode_8bppchunkybmm::@4/(byte) mode_8bppchunkybmm::gfxbCpuBank#8 ) [136] (word) mode_8bppchunkybmm::x#2 ← phi( mode_8bppchunkybmm::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_8bppchunkybmm::@4/(word) mode_8bppchunkybmm::x#1 ) [136] (byte*) mode_8bppchunkybmm::gfxb#3 ← phi( mode_8bppchunkybmm::@2/(byte*) mode_8bppchunkybmm::gfxb#5 mode_8bppchunkybmm::@4/(byte*) mode_8bppchunkybmm::gfxb#1 ) - [137] if((byte*) mode_8bppchunkybmm::gfxb#3!=(word/dword/signed dword) 32768) goto mode_8bppchunkybmm::@4 + [137] if((byte*) mode_8bppchunkybmm::gfxb#3!=(word/dword/signed dword) $8000) goto mode_8bppchunkybmm::@4 to:mode_8bppchunkybmm::@6 mode_8bppchunkybmm::@6: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@3 [138] (byte) dtvSetCpuBankSegment1::cpuBankIdx#1 ← (byte) mode_8bppchunkybmm::gfxbCpuBank#4 @@ -254,17 +254,17 @@ mode_8bppchunkybmm::@10: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@6 to:mode_8bppchunkybmm::@4 mode_8bppchunkybmm::@4: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@10 mode_8bppchunkybmm::@3 [141] (byte) mode_8bppchunkybmm::gfxbCpuBank#8 ← phi( mode_8bppchunkybmm::@10/(byte) mode_8bppchunkybmm::gfxbCpuBank#2 mode_8bppchunkybmm::@3/(byte) mode_8bppchunkybmm::gfxbCpuBank#4 ) - [141] (byte*) mode_8bppchunkybmm::gfxb#4 ← phi( mode_8bppchunkybmm::@10/((byte*))(word/signed word/dword/signed dword) 16384 mode_8bppchunkybmm::@3/(byte*) mode_8bppchunkybmm::gfxb#3 ) + [141] (byte*) mode_8bppchunkybmm::gfxb#4 ← phi( mode_8bppchunkybmm::@10/((byte*))(word/signed word/dword/signed dword) $4000 mode_8bppchunkybmm::@3/(byte*) mode_8bppchunkybmm::gfxb#3 ) [142] (word~) mode_8bppchunkybmm::$23 ← (word) mode_8bppchunkybmm::x#2 + (byte) mode_8bppchunkybmm::y#6 [143] (byte) mode_8bppchunkybmm::c#0 ← ((byte)) (word~) mode_8bppchunkybmm::$23 [144] *((byte*) mode_8bppchunkybmm::gfxb#4) ← (byte) mode_8bppchunkybmm::c#0 [145] (byte*) mode_8bppchunkybmm::gfxb#1 ← ++ (byte*) mode_8bppchunkybmm::gfxb#4 [146] (word) mode_8bppchunkybmm::x#1 ← ++ (word) mode_8bppchunkybmm::x#2 - [147] if((word) mode_8bppchunkybmm::x#1!=(word/signed word/dword/signed dword) 320) goto mode_8bppchunkybmm::@3 + [147] if((word) mode_8bppchunkybmm::x#1!=(word/signed word/dword/signed dword) $140) goto mode_8bppchunkybmm::@3 to:mode_8bppchunkybmm::@7 mode_8bppchunkybmm::@7: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@4 [148] (byte) mode_8bppchunkybmm::y#1 ← ++ (byte) mode_8bppchunkybmm::y#6 - [149] if((byte) mode_8bppchunkybmm::y#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_8bppchunkybmm::@2 + [149] if((byte) mode_8bppchunkybmm::y#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_8bppchunkybmm::@2 to:mode_8bppchunkybmm::@8 mode_8bppchunkybmm::@8: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@7 [150] phi() @@ -284,7 +284,7 @@ mode_ctrl::@1: scope:[mode_ctrl] from mode_ctrl mode_ctrl::@14 mode_ctrl::@30 [156] (byte) dtv_control#114 ← phi( mode_ctrl/(byte) dtv_control#145 mode_ctrl::@30/(byte) dtv_control#17 ) to:mode_ctrl::@4 mode_ctrl::@4: scope:[mode_ctrl] from mode_ctrl::@1 mode_ctrl::@4 - [157] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto mode_ctrl::@4 + [157] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto mode_ctrl::@4 to:mode_ctrl::@6 mode_ctrl::@6: scope:[mode_ctrl] from mode_ctrl::@4 [158] phi() @@ -414,7 +414,7 @@ keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matri [222] return to:@return dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@6 mode_8bppchunkybmm::@8 - [223] (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 ← phi( mode_8bppchunkybmm::@5/((byte))(const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) 16384 mode_8bppchunkybmm::@6/(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 mode_8bppchunkybmm::@8/((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 ) + [223] (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 ← phi( mode_8bppchunkybmm::@5/((byte))(const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) $4000 mode_8bppchunkybmm::@6/(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 mode_8bppchunkybmm::@8/((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 ) [224] *((const byte*) dtvSetCpuBankSegment1::cpuBank#0) ← (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 asm { .byte$32,$dd lda$ff .byte$32,$00 } to:dtvSetCpuBankSegment1::@return @@ -443,7 +443,7 @@ mode_8bpppixelcell::@1: scope:[mode_8bpppixelcell] from mode_8bpppixelcell mode [243] (byte) mode_8bpppixelcell::i#2 ← phi( mode_8bpppixelcell/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_8bpppixelcell::@1/(byte) mode_8bpppixelcell::i#1 ) [244] *((const byte*) DTV_PALETTE#0 + (byte) mode_8bpppixelcell::i#2) ← (byte) mode_8bpppixelcell::i#2 [245] (byte) mode_8bpppixelcell::i#1 ← ++ (byte) mode_8bpppixelcell::i#2 - [246] if((byte) mode_8bpppixelcell::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_8bpppixelcell::@1 + [246] if((byte) mode_8bpppixelcell::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_8bpppixelcell::@1 to:mode_8bpppixelcell::@2 mode_8bpppixelcell::@2: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@1 mode_8bpppixelcell::@9 [247] (byte*) mode_8bpppixelcell::gfxa#3 ← phi( mode_8bpppixelcell::@1/(const byte*) mode_8bpppixelcell::PLANEA#0 mode_8bpppixelcell::@9/(byte*) mode_8bpppixelcell::gfxa#1 ) @@ -452,18 +452,18 @@ mode_8bpppixelcell::@2: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@1 mode_8bpppixelcell::@3: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 [248] (byte*) mode_8bpppixelcell::gfxa#2 ← phi( mode_8bpppixelcell::@2/(byte*) mode_8bpppixelcell::gfxa#3 mode_8bpppixelcell::@3/(byte*) mode_8bpppixelcell::gfxa#1 ) [248] (byte) mode_8bpppixelcell::ax#2 ← phi( mode_8bpppixelcell::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_8bpppixelcell::@3/(byte) mode_8bpppixelcell::ax#1 ) - [249] (byte~) mode_8bpppixelcell::$13 ← (byte) mode_8bpppixelcell::ay#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [249] (byte~) mode_8bpppixelcell::$13 ← (byte) mode_8bpppixelcell::ay#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [250] (byte~) mode_8bpppixelcell::$14 ← (byte~) mode_8bpppixelcell::$13 << (byte/signed byte/word/signed word/dword/signed dword) 4 - [251] (byte~) mode_8bpppixelcell::$15 ← (byte) mode_8bpppixelcell::ax#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [251] (byte~) mode_8bpppixelcell::$15 ← (byte) mode_8bpppixelcell::ax#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [252] (byte~) mode_8bpppixelcell::$16 ← (byte~) mode_8bpppixelcell::$14 | (byte~) mode_8bpppixelcell::$15 [253] *((byte*) mode_8bpppixelcell::gfxa#2) ← (byte~) mode_8bpppixelcell::$16 [254] (byte*) mode_8bpppixelcell::gfxa#1 ← ++ (byte*) mode_8bpppixelcell::gfxa#2 [255] (byte) mode_8bpppixelcell::ax#1 ← ++ (byte) mode_8bpppixelcell::ax#2 - [256] if((byte) mode_8bpppixelcell::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_8bpppixelcell::@3 + [256] if((byte) mode_8bpppixelcell::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_8bpppixelcell::@3 to:mode_8bpppixelcell::@9 mode_8bpppixelcell::@9: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@3 [257] (byte) mode_8bpppixelcell::ay#1 ← ++ (byte) mode_8bpppixelcell::ay#4 - [258] if((byte) mode_8bpppixelcell::ay#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_8bpppixelcell::@2 + [258] if((byte) mode_8bpppixelcell::ay#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_8bpppixelcell::@2 to:mode_8bpppixelcell::@10 mode_8bpppixelcell::@10: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@9 [259] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_CHARROM#0 @@ -472,7 +472,7 @@ mode_8bpppixelcell::@4: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@10 [260] (byte) mode_8bpppixelcell::ch#8 ← phi( mode_8bpppixelcell::@10/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_8bpppixelcell::@13/(byte) mode_8bpppixelcell::ch#1 ) [260] (byte) mode_8bpppixelcell::col#7 ← phi( mode_8bpppixelcell::@10/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_8bpppixelcell::@13/(byte) mode_8bpppixelcell::col#1 ) [260] (byte*) mode_8bpppixelcell::gfxb#7 ← phi( mode_8bpppixelcell::@10/(const byte*) mode_8bpppixelcell::PLANEB#0 mode_8bpppixelcell::@13/(byte*) mode_8bpppixelcell::gfxb#1 ) - [260] (byte*) mode_8bpppixelcell::chargen#4 ← phi( mode_8bpppixelcell::@10/((byte*))(word/dword/signed dword) 53248 mode_8bpppixelcell::@13/(byte*) mode_8bpppixelcell::chargen#1 ) + [260] (byte*) mode_8bpppixelcell::chargen#4 ← phi( mode_8bpppixelcell::@10/((byte*))(word/dword/signed dword) $d000 mode_8bpppixelcell::@13/(byte*) mode_8bpppixelcell::chargen#1 ) to:mode_8bpppixelcell::@5 mode_8bpppixelcell::@5: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@12 mode_8bpppixelcell::@4 [261] (byte) mode_8bpppixelcell::cr#6 ← phi( mode_8bpppixelcell::@12/(byte) mode_8bpppixelcell::cr#1 mode_8bpppixelcell::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 ) @@ -487,7 +487,7 @@ mode_8bpppixelcell::@6: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@5 [264] (byte) mode_8bpppixelcell::col#2 ← phi( mode_8bpppixelcell::@5/(byte) mode_8bpppixelcell::col#5 mode_8bpppixelcell::@7/(byte) mode_8bpppixelcell::col#1 ) [264] (byte*) mode_8bpppixelcell::gfxb#2 ← phi( mode_8bpppixelcell::@5/(byte*) mode_8bpppixelcell::gfxb#5 mode_8bpppixelcell::@7/(byte*) mode_8bpppixelcell::gfxb#1 ) [264] (byte) mode_8bpppixelcell::bits#2 ← phi( mode_8bpppixelcell::@5/(byte) mode_8bpppixelcell::bits#0 mode_8bpppixelcell::@7/(byte) mode_8bpppixelcell::bits#1 ) - [265] (byte~) mode_8bpppixelcell::$19 ← (byte) mode_8bpppixelcell::bits#2 & (byte/word/signed word/dword/signed dword) 128 + [265] (byte~) mode_8bpppixelcell::$19 ← (byte) mode_8bpppixelcell::bits#2 & (byte/word/signed word/dword/signed dword) $80 [266] if((byte~) mode_8bpppixelcell::$19==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_8bpppixelcell::@7 to:mode_8bpppixelcell::@11 mode_8bpppixelcell::@11: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@6 @@ -533,14 +533,14 @@ mode_sixsfred: scope:[mode_sixsfred] from menu::@40 [294] *((const byte*) DTV_PLANEB_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [295] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [296] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [297] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) 1024 - [298] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) 1024 + [297] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) $400 + [298] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) $400 to:mode_sixsfred::@1 mode_sixsfred::@1: scope:[mode_sixsfred] from mode_sixsfred mode_sixsfred::@1 [299] (byte) mode_sixsfred::i#2 ← phi( mode_sixsfred/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_sixsfred::@1/(byte) mode_sixsfred::i#1 ) [300] *((const byte*) DTV_PALETTE#0 + (byte) mode_sixsfred::i#2) ← (byte) mode_sixsfred::i#2 [301] (byte) mode_sixsfred::i#1 ← ++ (byte) mode_sixsfred::i#2 - [302] if((byte) mode_sixsfred::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_sixsfred::@1 + [302] if((byte) mode_sixsfred::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_sixsfred::@1 to:mode_sixsfred::@8 mode_sixsfred::@8: scope:[mode_sixsfred] from mode_sixsfred::@1 [303] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -553,15 +553,15 @@ mode_sixsfred::@3: scope:[mode_sixsfred] from mode_sixsfred::@2 mode_sixsfred:: [305] (byte*) mode_sixsfred::col#2 ← phi( mode_sixsfred::@2/(byte*) mode_sixsfred::col#3 mode_sixsfred::@3/(byte*) mode_sixsfred::col#1 ) [305] (byte) mode_sixsfred::cx#2 ← phi( mode_sixsfred::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_sixsfred::@3/(byte) mode_sixsfred::cx#1 ) [306] (byte~) mode_sixsfred::$16 ← (byte) mode_sixsfred::cx#2 + (byte) mode_sixsfred::cy#4 - [307] (byte~) mode_sixsfred::$17 ← (byte~) mode_sixsfred::$16 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [307] (byte~) mode_sixsfred::$17 ← (byte~) mode_sixsfred::$16 & (byte/signed byte/word/signed word/dword/signed dword) $f [308] *((byte*) mode_sixsfred::col#2) ← (byte~) mode_sixsfred::$17 [309] (byte*) mode_sixsfred::col#1 ← ++ (byte*) mode_sixsfred::col#2 [310] (byte) mode_sixsfred::cx#1 ← ++ (byte) mode_sixsfred::cx#2 - [311] if((byte) mode_sixsfred::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred::@3 + [311] if((byte) mode_sixsfred::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred::@3 to:mode_sixsfred::@9 mode_sixsfred::@9: scope:[mode_sixsfred] from mode_sixsfred::@3 [312] (byte) mode_sixsfred::cy#1 ← ++ (byte) mode_sixsfred::cy#4 - [313] if((byte) mode_sixsfred::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_sixsfred::@2 + [313] if((byte) mode_sixsfred::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_sixsfred::@2 to:mode_sixsfred::@4 mode_sixsfred::@4: scope:[mode_sixsfred] from mode_sixsfred::@11 mode_sixsfred::@9 [314] (byte*) mode_sixsfred::gfxa#3 ← phi( mode_sixsfred::@9/(const byte*) mode_sixsfred::PLANEA#0 mode_sixsfred::@11/(byte*) mode_sixsfred::gfxa#1 ) @@ -575,11 +575,11 @@ mode_sixsfred::@5: scope:[mode_sixsfred] from mode_sixsfred::@4 mode_sixsfred:: [318] *((byte*) mode_sixsfred::gfxa#2) ← *((const byte[]) mode_sixsfred::row_bitmask#0 + (byte) mode_sixsfred::row#0) [319] (byte*) mode_sixsfred::gfxa#1 ← ++ (byte*) mode_sixsfred::gfxa#2 [320] (byte) mode_sixsfred::ax#1 ← ++ (byte) mode_sixsfred::ax#2 - [321] if((byte) mode_sixsfred::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred::@5 + [321] if((byte) mode_sixsfred::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred::@5 to:mode_sixsfred::@11 mode_sixsfred::@11: scope:[mode_sixsfred] from mode_sixsfred::@5 [322] (byte) mode_sixsfred::ay#1 ← ++ (byte) mode_sixsfred::ay#4 - [323] if((byte) mode_sixsfred::ay#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_sixsfred::@4 + [323] if((byte) mode_sixsfred::ay#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_sixsfred::@4 to:mode_sixsfred::@6 mode_sixsfred::@6: scope:[mode_sixsfred] from mode_sixsfred::@11 mode_sixsfred::@13 [324] (byte) mode_sixsfred::by#4 ← phi( mode_sixsfred::@11/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_sixsfred::@13/(byte) mode_sixsfred::by#1 ) @@ -588,14 +588,14 @@ mode_sixsfred::@6: scope:[mode_sixsfred] from mode_sixsfred::@11 mode_sixsfred: mode_sixsfred::@7: scope:[mode_sixsfred] from mode_sixsfred::@6 mode_sixsfred::@7 [325] (byte) mode_sixsfred::bx#2 ← phi( mode_sixsfred::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_sixsfred::@7/(byte) mode_sixsfred::bx#1 ) [325] (byte*) mode_sixsfred::gfxb#2 ← phi( mode_sixsfred::@6/(byte*) mode_sixsfred::gfxb#3 mode_sixsfred::@7/(byte*) mode_sixsfred::gfxb#1 ) - [326] *((byte*) mode_sixsfred::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 27 + [326] *((byte*) mode_sixsfred::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $1b [327] (byte*) mode_sixsfred::gfxb#1 ← ++ (byte*) mode_sixsfred::gfxb#2 [328] (byte) mode_sixsfred::bx#1 ← ++ (byte) mode_sixsfred::bx#2 - [329] if((byte) mode_sixsfred::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred::@7 + [329] if((byte) mode_sixsfred::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred::@7 to:mode_sixsfred::@13 mode_sixsfred::@13: scope:[mode_sixsfred] from mode_sixsfred::@7 [330] (byte) mode_sixsfred::by#1 ← ++ (byte) mode_sixsfred::by#4 - [331] if((byte) mode_sixsfred::by#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_sixsfred::@6 + [331] if((byte) mode_sixsfred::by#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_sixsfred::@6 to:mode_sixsfred::@14 mode_sixsfred::@14: scope:[mode_sixsfred] from mode_sixsfred::@13 [332] phi() @@ -620,19 +620,19 @@ mode_twoplanebitmap: scope:[mode_twoplanebitmap] from menu::@38 [347] *((const byte*) DTV_PLANEB_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [348] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [349] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [350] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) 1024 - [351] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) 1024 + [350] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) $400 + [351] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) $400 to:mode_twoplanebitmap::@1 mode_twoplanebitmap::@1: scope:[mode_twoplanebitmap] from mode_twoplanebitmap mode_twoplanebitmap::@1 [352] (byte) mode_twoplanebitmap::i#2 ← phi( mode_twoplanebitmap/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_twoplanebitmap::@1/(byte) mode_twoplanebitmap::i#1 ) [353] *((const byte*) DTV_PALETTE#0 + (byte) mode_twoplanebitmap::i#2) ← (byte) mode_twoplanebitmap::i#2 [354] (byte) mode_twoplanebitmap::i#1 ← ++ (byte) mode_twoplanebitmap::i#2 - [355] if((byte) mode_twoplanebitmap::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_twoplanebitmap::@1 + [355] if((byte) mode_twoplanebitmap::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_twoplanebitmap::@1 to:mode_twoplanebitmap::@10 mode_twoplanebitmap::@10: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@1 [356] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [357] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 112 - [358] *((const byte*) BGCOL2#0) ← (byte/word/signed word/dword/signed dword) 212 + [357] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) $70 + [358] *((const byte*) BGCOL2#0) ← (byte/word/signed word/dword/signed dword) $d4 to:mode_twoplanebitmap::@2 mode_twoplanebitmap::@2: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@10 mode_twoplanebitmap::@11 [359] (byte*) mode_twoplanebitmap::col#3 ← phi( mode_twoplanebitmap::@10/(const byte*) mode_twoplanebitmap::COLORS#0 mode_twoplanebitmap::@11/(byte*) mode_twoplanebitmap::col#1 ) @@ -641,18 +641,18 @@ mode_twoplanebitmap::@2: scope:[mode_twoplanebitmap] from mode_twoplanebitmap:: mode_twoplanebitmap::@3: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 [360] (byte*) mode_twoplanebitmap::col#2 ← phi( mode_twoplanebitmap::@2/(byte*) mode_twoplanebitmap::col#3 mode_twoplanebitmap::@3/(byte*) mode_twoplanebitmap::col#1 ) [360] (byte) mode_twoplanebitmap::cx#2 ← phi( mode_twoplanebitmap::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_twoplanebitmap::@3/(byte) mode_twoplanebitmap::cx#1 ) - [361] (byte~) mode_twoplanebitmap::$15 ← (byte) mode_twoplanebitmap::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [361] (byte~) mode_twoplanebitmap::$15 ← (byte) mode_twoplanebitmap::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [362] (byte~) mode_twoplanebitmap::$16 ← (byte~) mode_twoplanebitmap::$15 << (byte/signed byte/word/signed word/dword/signed dword) 4 - [363] (byte~) mode_twoplanebitmap::$17 ← (byte) mode_twoplanebitmap::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [363] (byte~) mode_twoplanebitmap::$17 ← (byte) mode_twoplanebitmap::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [364] (byte~) mode_twoplanebitmap::$18 ← (byte~) mode_twoplanebitmap::$16 | (byte~) mode_twoplanebitmap::$17 [365] *((byte*) mode_twoplanebitmap::col#2) ← (byte~) mode_twoplanebitmap::$18 [366] (byte*) mode_twoplanebitmap::col#1 ← ++ (byte*) mode_twoplanebitmap::col#2 [367] (byte) mode_twoplanebitmap::cx#1 ← ++ (byte) mode_twoplanebitmap::cx#2 - [368] if((byte) mode_twoplanebitmap::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_twoplanebitmap::@3 + [368] if((byte) mode_twoplanebitmap::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_twoplanebitmap::@3 to:mode_twoplanebitmap::@11 mode_twoplanebitmap::@11: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@3 [369] (byte) mode_twoplanebitmap::cy#1 ← ++ (byte) mode_twoplanebitmap::cy#4 - [370] if((byte) mode_twoplanebitmap::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_twoplanebitmap::@2 + [370] if((byte) mode_twoplanebitmap::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_twoplanebitmap::@2 to:mode_twoplanebitmap::@4 mode_twoplanebitmap::@4: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@11 mode_twoplanebitmap::@15 [371] (byte*) mode_twoplanebitmap::gfxa#6 ← phi( mode_twoplanebitmap::@11/(const byte*) mode_twoplanebitmap::PLANEA#0 mode_twoplanebitmap::@15/(byte*) mode_twoplanebitmap::gfxa#7 ) @@ -665,17 +665,17 @@ mode_twoplanebitmap::@5: scope:[mode_twoplanebitmap] from mode_twoplanebitmap:: [374] if((byte~) mode_twoplanebitmap::$21==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_twoplanebitmap::@6 to:mode_twoplanebitmap::@13 mode_twoplanebitmap::@13: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@5 - [375] *((byte*) mode_twoplanebitmap::gfxa#3) ← (byte/word/signed word/dword/signed dword) 255 + [375] *((byte*) mode_twoplanebitmap::gfxa#3) ← (byte/word/signed word/dword/signed dword) $ff [376] (byte*) mode_twoplanebitmap::gfxa#2 ← ++ (byte*) mode_twoplanebitmap::gfxa#3 to:mode_twoplanebitmap::@7 mode_twoplanebitmap::@7: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@13 mode_twoplanebitmap::@6 [377] (byte*) mode_twoplanebitmap::gfxa#7 ← phi( mode_twoplanebitmap::@13/(byte*) mode_twoplanebitmap::gfxa#2 mode_twoplanebitmap::@6/(byte*) mode_twoplanebitmap::gfxa#1 ) [378] (byte) mode_twoplanebitmap::ax#1 ← ++ (byte) mode_twoplanebitmap::ax#2 - [379] if((byte) mode_twoplanebitmap::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_twoplanebitmap::@5 + [379] if((byte) mode_twoplanebitmap::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_twoplanebitmap::@5 to:mode_twoplanebitmap::@15 mode_twoplanebitmap::@15: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@7 [380] (byte) mode_twoplanebitmap::ay#1 ← ++ (byte) mode_twoplanebitmap::ay#4 - [381] if((byte) mode_twoplanebitmap::ay#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_twoplanebitmap::@4 + [381] if((byte) mode_twoplanebitmap::ay#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_twoplanebitmap::@4 to:mode_twoplanebitmap::@8 mode_twoplanebitmap::@8: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@15 mode_twoplanebitmap::@17 [382] (byte) mode_twoplanebitmap::by#4 ← phi( mode_twoplanebitmap::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_twoplanebitmap::@17/(byte) mode_twoplanebitmap::by#1 ) @@ -684,14 +684,14 @@ mode_twoplanebitmap::@8: scope:[mode_twoplanebitmap] from mode_twoplanebitmap:: mode_twoplanebitmap::@9: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@8 mode_twoplanebitmap::@9 [383] (byte) mode_twoplanebitmap::bx#2 ← phi( mode_twoplanebitmap::@8/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_twoplanebitmap::@9/(byte) mode_twoplanebitmap::bx#1 ) [383] (byte*) mode_twoplanebitmap::gfxb#2 ← phi( mode_twoplanebitmap::@8/(byte*) mode_twoplanebitmap::gfxb#3 mode_twoplanebitmap::@9/(byte*) mode_twoplanebitmap::gfxb#1 ) - [384] *((byte*) mode_twoplanebitmap::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 15 + [384] *((byte*) mode_twoplanebitmap::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $f [385] (byte*) mode_twoplanebitmap::gfxb#1 ← ++ (byte*) mode_twoplanebitmap::gfxb#2 [386] (byte) mode_twoplanebitmap::bx#1 ← ++ (byte) mode_twoplanebitmap::bx#2 - [387] if((byte) mode_twoplanebitmap::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_twoplanebitmap::@9 + [387] if((byte) mode_twoplanebitmap::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_twoplanebitmap::@9 to:mode_twoplanebitmap::@17 mode_twoplanebitmap::@17: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@9 [388] (byte) mode_twoplanebitmap::by#1 ← ++ (byte) mode_twoplanebitmap::by#4 - [389] if((byte) mode_twoplanebitmap::by#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_twoplanebitmap::@8 + [389] if((byte) mode_twoplanebitmap::by#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_twoplanebitmap::@8 to:mode_twoplanebitmap::@18 mode_twoplanebitmap::@18: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@17 [390] phi() @@ -720,14 +720,14 @@ mode_sixsfred2: scope:[mode_sixsfred2] from menu::@36 [407] *((const byte*) DTV_PLANEB_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [408] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [409] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [410] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) 1024 - [411] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) 1024 + [410] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) $400 + [411] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) $400 to:mode_sixsfred2::@1 mode_sixsfred2::@1: scope:[mode_sixsfred2] from mode_sixsfred2 mode_sixsfred2::@1 [412] (byte) mode_sixsfred2::i#2 ← phi( mode_sixsfred2/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_sixsfred2::@1/(byte) mode_sixsfred2::i#1 ) [413] *((const byte*) DTV_PALETTE#0 + (byte) mode_sixsfred2::i#2) ← (byte) mode_sixsfred2::i#2 [414] (byte) mode_sixsfred2::i#1 ← ++ (byte) mode_sixsfred2::i#2 - [415] if((byte) mode_sixsfred2::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_sixsfred2::@1 + [415] if((byte) mode_sixsfred2::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_sixsfred2::@1 to:mode_sixsfred2::@8 mode_sixsfred2::@8: scope:[mode_sixsfred2] from mode_sixsfred2::@1 [416] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -746,11 +746,11 @@ mode_sixsfred2::@3: scope:[mode_sixsfred2] from mode_sixsfred2::@2 mode_sixsfre [423] *((byte*) mode_sixsfred2::col#2) ← (byte~) mode_sixsfred2::$17 [424] (byte*) mode_sixsfred2::col#1 ← ++ (byte*) mode_sixsfred2::col#2 [425] (byte) mode_sixsfred2::cx#1 ← ++ (byte) mode_sixsfred2::cx#2 - [426] if((byte) mode_sixsfred2::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred2::@3 + [426] if((byte) mode_sixsfred2::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred2::@3 to:mode_sixsfred2::@9 mode_sixsfred2::@9: scope:[mode_sixsfred2] from mode_sixsfred2::@3 [427] (byte) mode_sixsfred2::cy#1 ← ++ (byte) mode_sixsfred2::cy#4 - [428] if((byte) mode_sixsfred2::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_sixsfred2::@2 + [428] if((byte) mode_sixsfred2::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_sixsfred2::@2 to:mode_sixsfred2::@4 mode_sixsfred2::@4: scope:[mode_sixsfred2] from mode_sixsfred2::@11 mode_sixsfred2::@9 [429] (byte*) mode_sixsfred2::gfxa#3 ← phi( mode_sixsfred2::@9/(const byte*) mode_sixsfred2::PLANEA#0 mode_sixsfred2::@11/(byte*) mode_sixsfred2::gfxa#1 ) @@ -764,11 +764,11 @@ mode_sixsfred2::@5: scope:[mode_sixsfred2] from mode_sixsfred2::@4 mode_sixsfre [433] *((byte*) mode_sixsfred2::gfxa#2) ← *((const byte[]) mode_sixsfred2::row_bitmask#0 + (byte) mode_sixsfred2::row#0) [434] (byte*) mode_sixsfred2::gfxa#1 ← ++ (byte*) mode_sixsfred2::gfxa#2 [435] (byte) mode_sixsfred2::ax#1 ← ++ (byte) mode_sixsfred2::ax#2 - [436] if((byte) mode_sixsfred2::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred2::@5 + [436] if((byte) mode_sixsfred2::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred2::@5 to:mode_sixsfred2::@11 mode_sixsfred2::@11: scope:[mode_sixsfred2] from mode_sixsfred2::@5 [437] (byte) mode_sixsfred2::ay#1 ← ++ (byte) mode_sixsfred2::ay#4 - [438] if((byte) mode_sixsfred2::ay#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_sixsfred2::@4 + [438] if((byte) mode_sixsfred2::ay#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_sixsfred2::@4 to:mode_sixsfred2::@6 mode_sixsfred2::@6: scope:[mode_sixsfred2] from mode_sixsfred2::@11 mode_sixsfred2::@13 [439] (byte) mode_sixsfred2::by#4 ← phi( mode_sixsfred2::@11/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_sixsfred2::@13/(byte) mode_sixsfred2::by#1 ) @@ -777,14 +777,14 @@ mode_sixsfred2::@6: scope:[mode_sixsfred2] from mode_sixsfred2::@11 mode_sixsfr mode_sixsfred2::@7: scope:[mode_sixsfred2] from mode_sixsfred2::@6 mode_sixsfred2::@7 [440] (byte) mode_sixsfred2::bx#2 ← phi( mode_sixsfred2::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_sixsfred2::@7/(byte) mode_sixsfred2::bx#1 ) [440] (byte*) mode_sixsfred2::gfxb#2 ← phi( mode_sixsfred2::@6/(byte*) mode_sixsfred2::gfxb#3 mode_sixsfred2::@7/(byte*) mode_sixsfred2::gfxb#1 ) - [441] *((byte*) mode_sixsfred2::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 27 + [441] *((byte*) mode_sixsfred2::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $1b [442] (byte*) mode_sixsfred2::gfxb#1 ← ++ (byte*) mode_sixsfred2::gfxb#2 [443] (byte) mode_sixsfred2::bx#1 ← ++ (byte) mode_sixsfred2::bx#2 - [444] if((byte) mode_sixsfred2::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred2::@7 + [444] if((byte) mode_sixsfred2::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred2::@7 to:mode_sixsfred2::@13 mode_sixsfred2::@13: scope:[mode_sixsfred2] from mode_sixsfred2::@7 [445] (byte) mode_sixsfred2::by#1 ← ++ (byte) mode_sixsfred2::by#4 - [446] if((byte) mode_sixsfred2::by#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_sixsfred2::@6 + [446] if((byte) mode_sixsfred2::by#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_sixsfred2::@6 to:mode_sixsfred2::@14 mode_sixsfred2::@14: scope:[mode_sixsfred2] from mode_sixsfred2::@13 [447] phi() @@ -794,27 +794,27 @@ mode_sixsfred2::@return: scope:[mode_sixsfred2] from mode_sixsfred2::@14 [449] return to:@return mode_hicolmcchar: scope:[mode_hicolmcchar] from menu::@34 - [450] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolmcchar::CHARSET#0/(dword/signed dword) 65536 - [451] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) 1024 - [452] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) 1024 + [450] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolmcchar::CHARSET#0/(dword/signed dword) $10000 + [451] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) $400 + [452] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) $400 [453] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0 [454] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 - [455] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolmcchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 + [455] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolmcchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 [456] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [457] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0|(const byte) VIC_MCM#0 - [458] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolmcchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_hicolmcchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 + [458] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolmcchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_hicolmcchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 to:mode_hicolmcchar::@1 mode_hicolmcchar::@1: scope:[mode_hicolmcchar] from mode_hicolmcchar mode_hicolmcchar::@1 [459] (byte) mode_hicolmcchar::i#2 ← phi( mode_hicolmcchar/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_hicolmcchar::@1/(byte) mode_hicolmcchar::i#1 ) [460] *((const byte*) DTV_PALETTE#0 + (byte) mode_hicolmcchar::i#2) ← (byte) mode_hicolmcchar::i#2 [461] (byte) mode_hicolmcchar::i#1 ← ++ (byte) mode_hicolmcchar::i#2 - [462] if((byte) mode_hicolmcchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_hicolmcchar::@1 + [462] if((byte) mode_hicolmcchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_hicolmcchar::@1 to:mode_hicolmcchar::@4 mode_hicolmcchar::@4: scope:[mode_hicolmcchar] from mode_hicolmcchar::@1 [463] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [464] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 80 - [465] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 84 - [466] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) 88 + [464] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) $50 + [465] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) $54 + [466] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) $58 to:mode_hicolmcchar::@2 mode_hicolmcchar::@2: scope:[mode_hicolmcchar] from mode_hicolmcchar::@4 mode_hicolmcchar::@5 [467] (byte*) mode_hicolmcchar::ch#3 ← phi( mode_hicolmcchar::@4/(const byte*) mode_hicolmcchar::SCREEN#0 mode_hicolmcchar::@5/(byte*) mode_hicolmcchar::ch#1 ) @@ -825,20 +825,20 @@ mode_hicolmcchar::@3: scope:[mode_hicolmcchar] from mode_hicolmcchar::@2 mode_h [468] (byte*) mode_hicolmcchar::ch#2 ← phi( mode_hicolmcchar::@2/(byte*) mode_hicolmcchar::ch#3 mode_hicolmcchar::@3/(byte*) mode_hicolmcchar::ch#1 ) [468] (byte*) mode_hicolmcchar::col#2 ← phi( mode_hicolmcchar::@2/(byte*) mode_hicolmcchar::col#3 mode_hicolmcchar::@3/(byte*) mode_hicolmcchar::col#1 ) [468] (byte) mode_hicolmcchar::cx#2 ← phi( mode_hicolmcchar::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_hicolmcchar::@3/(byte) mode_hicolmcchar::cx#1 ) - [469] (byte~) mode_hicolmcchar::$25 ← (byte) mode_hicolmcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [469] (byte~) mode_hicolmcchar::$25 ← (byte) mode_hicolmcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [470] (byte~) mode_hicolmcchar::$26 ← (byte~) mode_hicolmcchar::$25 << (byte/signed byte/word/signed word/dword/signed dword) 4 - [471] (byte~) mode_hicolmcchar::$27 ← (byte) mode_hicolmcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [471] (byte~) mode_hicolmcchar::$27 ← (byte) mode_hicolmcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [472] (byte) mode_hicolmcchar::v#0 ← (byte~) mode_hicolmcchar::$26 | (byte~) mode_hicolmcchar::$27 [473] *((byte*) mode_hicolmcchar::col#2) ← (byte) mode_hicolmcchar::v#0 [474] (byte*) mode_hicolmcchar::col#1 ← ++ (byte*) mode_hicolmcchar::col#2 [475] *((byte*) mode_hicolmcchar::ch#2) ← (byte) mode_hicolmcchar::v#0 [476] (byte*) mode_hicolmcchar::ch#1 ← ++ (byte*) mode_hicolmcchar::ch#2 [477] (byte) mode_hicolmcchar::cx#1 ← ++ (byte) mode_hicolmcchar::cx#2 - [478] if((byte) mode_hicolmcchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_hicolmcchar::@3 + [478] if((byte) mode_hicolmcchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_hicolmcchar::@3 to:mode_hicolmcchar::@5 mode_hicolmcchar::@5: scope:[mode_hicolmcchar] from mode_hicolmcchar::@3 [479] (byte) mode_hicolmcchar::cy#1 ← ++ (byte) mode_hicolmcchar::cy#4 - [480] if((byte) mode_hicolmcchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_hicolmcchar::@2 + [480] if((byte) mode_hicolmcchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_hicolmcchar::@2 to:mode_hicolmcchar::@6 mode_hicolmcchar::@6: scope:[mode_hicolmcchar] from mode_hicolmcchar::@5 [481] phi() @@ -848,28 +848,28 @@ mode_hicolmcchar::@return: scope:[mode_hicolmcchar] from mode_hicolmcchar::@6 [483] return to:@return mode_hicolecmchar: scope:[mode_hicolecmchar] from menu::@32 - [484] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolecmchar::CHARSET#0/(dword/signed dword) 65536 - [485] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) 1024 - [486] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) 1024 + [484] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolecmchar::CHARSET#0/(dword/signed dword) $10000 + [485] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) $400 + [486] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) $400 [487] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0 [488] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 - [489] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolecmchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 + [489] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolecmchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 [490] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(const byte) VIC_ECM#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [491] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 - [492] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolecmchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_hicolecmchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 + [492] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolecmchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_hicolecmchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 to:mode_hicolecmchar::@1 mode_hicolecmchar::@1: scope:[mode_hicolecmchar] from mode_hicolecmchar mode_hicolecmchar::@1 [493] (byte) mode_hicolecmchar::i#2 ← phi( mode_hicolecmchar/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_hicolecmchar::@1/(byte) mode_hicolecmchar::i#1 ) [494] *((const byte*) DTV_PALETTE#0 + (byte) mode_hicolecmchar::i#2) ← (byte) mode_hicolecmchar::i#2 [495] (byte) mode_hicolecmchar::i#1 ← ++ (byte) mode_hicolecmchar::i#2 - [496] if((byte) mode_hicolecmchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_hicolecmchar::@1 + [496] if((byte) mode_hicolecmchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_hicolecmchar::@1 to:mode_hicolecmchar::@4 mode_hicolecmchar::@4: scope:[mode_hicolecmchar] from mode_hicolecmchar::@1 [497] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [498] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 80 - [499] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 84 - [500] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) 88 - [501] *((const byte*) BGCOL4#0) ← (byte/signed byte/word/signed word/dword/signed dword) 92 + [498] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) $50 + [499] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) $54 + [500] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) $58 + [501] *((const byte*) BGCOL4#0) ← (byte/signed byte/word/signed word/dword/signed dword) $5c to:mode_hicolecmchar::@2 mode_hicolecmchar::@2: scope:[mode_hicolecmchar] from mode_hicolecmchar::@4 mode_hicolecmchar::@5 [502] (byte*) mode_hicolecmchar::ch#3 ← phi( mode_hicolecmchar::@4/(const byte*) mode_hicolecmchar::SCREEN#0 mode_hicolecmchar::@5/(byte*) mode_hicolecmchar::ch#1 ) @@ -880,20 +880,20 @@ mode_hicolecmchar::@3: scope:[mode_hicolecmchar] from mode_hicolecmchar::@2 mod [503] (byte*) mode_hicolecmchar::ch#2 ← phi( mode_hicolecmchar::@2/(byte*) mode_hicolecmchar::ch#3 mode_hicolecmchar::@3/(byte*) mode_hicolecmchar::ch#1 ) [503] (byte*) mode_hicolecmchar::col#2 ← phi( mode_hicolecmchar::@2/(byte*) mode_hicolecmchar::col#3 mode_hicolecmchar::@3/(byte*) mode_hicolecmchar::col#1 ) [503] (byte) mode_hicolecmchar::cx#2 ← phi( mode_hicolecmchar::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_hicolecmchar::@3/(byte) mode_hicolecmchar::cx#1 ) - [504] (byte~) mode_hicolecmchar::$25 ← (byte) mode_hicolecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [504] (byte~) mode_hicolecmchar::$25 ← (byte) mode_hicolecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [505] (byte~) mode_hicolecmchar::$26 ← (byte~) mode_hicolecmchar::$25 << (byte/signed byte/word/signed word/dword/signed dword) 4 - [506] (byte~) mode_hicolecmchar::$27 ← (byte) mode_hicolecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [506] (byte~) mode_hicolecmchar::$27 ← (byte) mode_hicolecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [507] (byte) mode_hicolecmchar::v#0 ← (byte~) mode_hicolecmchar::$26 | (byte~) mode_hicolecmchar::$27 [508] *((byte*) mode_hicolecmchar::col#2) ← (byte) mode_hicolecmchar::v#0 [509] (byte*) mode_hicolecmchar::col#1 ← ++ (byte*) mode_hicolecmchar::col#2 [510] *((byte*) mode_hicolecmchar::ch#2) ← (byte) mode_hicolecmchar::v#0 [511] (byte*) mode_hicolecmchar::ch#1 ← ++ (byte*) mode_hicolecmchar::ch#2 [512] (byte) mode_hicolecmchar::cx#1 ← ++ (byte) mode_hicolecmchar::cx#2 - [513] if((byte) mode_hicolecmchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_hicolecmchar::@3 + [513] if((byte) mode_hicolecmchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_hicolecmchar::@3 to:mode_hicolecmchar::@5 mode_hicolecmchar::@5: scope:[mode_hicolecmchar] from mode_hicolecmchar::@3 [514] (byte) mode_hicolecmchar::cy#1 ← ++ (byte) mode_hicolecmchar::cy#4 - [515] if((byte) mode_hicolecmchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_hicolecmchar::@2 + [515] if((byte) mode_hicolecmchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_hicolecmchar::@2 to:mode_hicolecmchar::@6 mode_hicolecmchar::@6: scope:[mode_hicolecmchar] from mode_hicolecmchar::@5 [516] phi() @@ -903,21 +903,21 @@ mode_hicolecmchar::@return: scope:[mode_hicolecmchar] from mode_hicolecmchar::@ [518] return to:@return mode_hicolstdchar: scope:[mode_hicolstdchar] from menu::@30 - [519] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolstdchar::CHARSET#0/(dword/signed dword) 65536 - [520] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) 1024 - [521] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) 1024 + [519] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolstdchar::CHARSET#0/(dword/signed dword) $10000 + [520] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) $400 + [521] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) $400 [522] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0 [523] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 - [524] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolstdchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 + [524] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolstdchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 [525] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [526] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 - [527] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolstdchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_hicolstdchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 + [527] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolstdchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_hicolstdchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 to:mode_hicolstdchar::@1 mode_hicolstdchar::@1: scope:[mode_hicolstdchar] from mode_hicolstdchar mode_hicolstdchar::@1 [528] (byte) mode_hicolstdchar::i#2 ← phi( mode_hicolstdchar/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_hicolstdchar::@1/(byte) mode_hicolstdchar::i#1 ) [529] *((const byte*) DTV_PALETTE#0 + (byte) mode_hicolstdchar::i#2) ← (byte) mode_hicolstdchar::i#2 [530] (byte) mode_hicolstdchar::i#1 ← ++ (byte) mode_hicolstdchar::i#2 - [531] if((byte) mode_hicolstdchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_hicolstdchar::@1 + [531] if((byte) mode_hicolstdchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_hicolstdchar::@1 to:mode_hicolstdchar::@4 mode_hicolstdchar::@4: scope:[mode_hicolstdchar] from mode_hicolstdchar::@1 [532] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -932,20 +932,20 @@ mode_hicolstdchar::@3: scope:[mode_hicolstdchar] from mode_hicolstdchar::@2 mod [535] (byte*) mode_hicolstdchar::ch#2 ← phi( mode_hicolstdchar::@2/(byte*) mode_hicolstdchar::ch#3 mode_hicolstdchar::@3/(byte*) mode_hicolstdchar::ch#1 ) [535] (byte*) mode_hicolstdchar::col#2 ← phi( mode_hicolstdchar::@2/(byte*) mode_hicolstdchar::col#3 mode_hicolstdchar::@3/(byte*) mode_hicolstdchar::col#1 ) [535] (byte) mode_hicolstdchar::cx#2 ← phi( mode_hicolstdchar::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_hicolstdchar::@3/(byte) mode_hicolstdchar::cx#1 ) - [536] (byte~) mode_hicolstdchar::$24 ← (byte) mode_hicolstdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [536] (byte~) mode_hicolstdchar::$24 ← (byte) mode_hicolstdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [537] (byte~) mode_hicolstdchar::$25 ← (byte~) mode_hicolstdchar::$24 << (byte/signed byte/word/signed word/dword/signed dword) 4 - [538] (byte~) mode_hicolstdchar::$26 ← (byte) mode_hicolstdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [538] (byte~) mode_hicolstdchar::$26 ← (byte) mode_hicolstdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [539] (byte) mode_hicolstdchar::v#0 ← (byte~) mode_hicolstdchar::$25 | (byte~) mode_hicolstdchar::$26 [540] *((byte*) mode_hicolstdchar::col#2) ← (byte) mode_hicolstdchar::v#0 [541] (byte*) mode_hicolstdchar::col#1 ← ++ (byte*) mode_hicolstdchar::col#2 [542] *((byte*) mode_hicolstdchar::ch#2) ← (byte) mode_hicolstdchar::v#0 [543] (byte*) mode_hicolstdchar::ch#1 ← ++ (byte*) mode_hicolstdchar::ch#2 [544] (byte) mode_hicolstdchar::cx#1 ← ++ (byte) mode_hicolstdchar::cx#2 - [545] if((byte) mode_hicolstdchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_hicolstdchar::@3 + [545] if((byte) mode_hicolstdchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_hicolstdchar::@3 to:mode_hicolstdchar::@5 mode_hicolstdchar::@5: scope:[mode_hicolstdchar] from mode_hicolstdchar::@3 [546] (byte) mode_hicolstdchar::cy#1 ← ++ (byte) mode_hicolstdchar::cy#4 - [547] if((byte) mode_hicolstdchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_hicolstdchar::@2 + [547] if((byte) mode_hicolstdchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_hicolstdchar::@2 to:mode_hicolstdchar::@6 mode_hicolstdchar::@6: scope:[mode_hicolstdchar] from mode_hicolstdchar::@5 [548] phi() @@ -955,19 +955,19 @@ mode_hicolstdchar::@return: scope:[mode_hicolstdchar] from mode_hicolstdchar::@ [550] return to:@return mode_stdbitmap: scope:[mode_stdbitmap] from menu::@28 - [551] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdbitmap::BITMAP#0/(dword/signed dword) 65536 + [551] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdbitmap::BITMAP#0/(dword/signed dword) $10000 [552] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [553] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 - [554] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdbitmap::BITMAP#0/(word/signed word/dword/signed dword) 16384 + [554] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdbitmap::BITMAP#0/(word/signed word/dword/signed dword) $4000 [555] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [556] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 - [557] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdbitmap::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_stdbitmap::BITMAP#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 + [557] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdbitmap::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_stdbitmap::BITMAP#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 to:mode_stdbitmap::@1 mode_stdbitmap::@1: scope:[mode_stdbitmap] from mode_stdbitmap mode_stdbitmap::@1 [558] (byte) mode_stdbitmap::i#2 ← phi( mode_stdbitmap/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_stdbitmap::@1/(byte) mode_stdbitmap::i#1 ) - [559] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdbitmap::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdbitmap::i#2) + [559] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdbitmap::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdbitmap::i#2) [560] (byte) mode_stdbitmap::i#1 ← ++ (byte) mode_stdbitmap::i#2 - [561] if((byte) mode_stdbitmap::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_stdbitmap::@1 + [561] if((byte) mode_stdbitmap::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_stdbitmap::@1 to:mode_stdbitmap::@5 mode_stdbitmap::@5: scope:[mode_stdbitmap] from mode_stdbitmap::@1 [562] *((const byte*) BGCOL#0) ← (const byte) BLACK#0 @@ -981,18 +981,18 @@ mode_stdbitmap::@3: scope:[mode_stdbitmap] from mode_stdbitmap::@2 mode_stdbitm [565] (byte*) mode_stdbitmap::ch#2 ← phi( mode_stdbitmap::@2/(byte*) mode_stdbitmap::ch#3 mode_stdbitmap::@3/(byte*) mode_stdbitmap::ch#1 ) [565] (byte) mode_stdbitmap::cx#2 ← phi( mode_stdbitmap::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_stdbitmap::@3/(byte) mode_stdbitmap::cx#1 ) [566] (byte~) mode_stdbitmap::$19 ← (byte) mode_stdbitmap::cx#2 + (byte) mode_stdbitmap::cy#4 - [567] (byte) mode_stdbitmap::col#0 ← (byte~) mode_stdbitmap::$19 & (byte/signed byte/word/signed word/dword/signed dword) 15 - [568] (byte) mode_stdbitmap::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) mode_stdbitmap::col#0 + [567] (byte) mode_stdbitmap::col#0 ← (byte~) mode_stdbitmap::$19 & (byte/signed byte/word/signed word/dword/signed dword) $f + [568] (byte) mode_stdbitmap::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f - (byte) mode_stdbitmap::col#0 [569] (byte~) mode_stdbitmap::$22 ← (byte) mode_stdbitmap::col#0 << (byte/signed byte/word/signed word/dword/signed dword) 4 [570] (byte~) mode_stdbitmap::$23 ← (byte~) mode_stdbitmap::$22 | (byte) mode_stdbitmap::col2#0 [571] *((byte*) mode_stdbitmap::ch#2) ← (byte~) mode_stdbitmap::$23 [572] (byte*) mode_stdbitmap::ch#1 ← ++ (byte*) mode_stdbitmap::ch#2 [573] (byte) mode_stdbitmap::cx#1 ← ++ (byte) mode_stdbitmap::cx#2 - [574] if((byte) mode_stdbitmap::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_stdbitmap::@3 + [574] if((byte) mode_stdbitmap::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_stdbitmap::@3 to:mode_stdbitmap::@6 mode_stdbitmap::@6: scope:[mode_stdbitmap] from mode_stdbitmap::@3 [575] (byte) mode_stdbitmap::cy#1 ← ++ (byte) mode_stdbitmap::cy#4 - [576] if((byte) mode_stdbitmap::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_stdbitmap::@2 + [576] if((byte) mode_stdbitmap::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_stdbitmap::@2 to:mode_stdbitmap::@7 mode_stdbitmap::@7: scope:[mode_stdbitmap] from mode_stdbitmap::@6 [577] phi() @@ -1152,10 +1152,10 @@ bitmap_line_xdyi::@return: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@2 bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1 bitmap_line_ydxd::@1 bitmap_line_ydxi::@1 [669] (byte) bitmap_plot::y#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::y#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::y#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::y#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::y#2 ) [669] (byte) bitmap_plot::x#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::x#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::x#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::x#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::x#2 ) - [670] (word) bitmap_plot::plotter_x#0 ← *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) - [671] (word) bitmap_plot::plotter_y#0 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) + [670] (word) bitmap_plot::plotter_x#0 ← *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) + [671] (word) bitmap_plot::plotter_y#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) [672] (word~) bitmap_plot::$0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0 - [673] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) + [673] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) [674] *((byte*)(word~) bitmap_plot::$0) ← (byte~) bitmap_plot::$1 to:bitmap_plot::@return bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot @@ -1264,7 +1264,7 @@ bitmap_line_ydxd::@return: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@2 [720] return to:@return bitmap_clear: scope:[bitmap_clear] from mode_stdbitmap::@9 - [721] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_xhi#0) w= *((const byte[256]) bitmap_plot_xlo#0) + [721] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_xhi#0) w= *((const byte[$100]) bitmap_plot_xlo#0) [722] (byte*~) bitmap_clear::bitmap#5 ← (byte*)(word~) bitmap_clear::$3 to:bitmap_clear::@1 bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear bitmap_clear::@3 @@ -1277,11 +1277,11 @@ bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1 bitmap_clear::@2 [725] *((byte*) bitmap_clear::bitmap#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [726] (byte*) bitmap_clear::bitmap#1 ← ++ (byte*) bitmap_clear::bitmap#2 [727] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 - [728] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) 200) goto bitmap_clear::@2 + [728] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) $c8) goto bitmap_clear::@2 to:bitmap_clear::@3 bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2 [729] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 - [730] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto bitmap_clear::@1 + [730] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto bitmap_clear::@1 to:bitmap_clear::@return bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3 [731] return @@ -1290,17 +1290,17 @@ bitmap_init: scope:[bitmap_init] from mode_stdbitmap::@7 [732] phi() to:bitmap_init::@1 bitmap_init::@1: scope:[bitmap_init] from bitmap_init bitmap_init::@2 - [733] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte/word/signed word/dword/signed dword) 128 bitmap_init::@2/(byte) bitmap_init::bits#4 ) + [733] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte/word/signed word/dword/signed dword) $80 bitmap_init::@2/(byte) bitmap_init::bits#4 ) [733] (byte) bitmap_init::x#2 ← phi( bitmap_init/(byte/signed byte/word/signed word/dword/signed dword) 0 bitmap_init::@2/(byte) bitmap_init::x#1 ) - [734] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) 248 - [735] *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 - [736] *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) mode_stdbitmap::BITMAP#0 - [737] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 + [734] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) $f8 + [735] *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 + [736] *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) mode_stdbitmap::BITMAP#0 + [737] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [738] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [739] if((byte) bitmap_init::bits#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@10 to:bitmap_init::@2 bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@10 - [740] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@10/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte/word/signed word/dword/signed dword) 128 ) + [740] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@10/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte/word/signed word/dword/signed dword) $80 ) [741] (byte) bitmap_init::x#1 ← ++ (byte) bitmap_init::x#2 [742] if((byte) bitmap_init::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@1 to:bitmap_init::@3 @@ -1310,14 +1310,14 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4 [744] (byte~) bitmap_init::$6 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [745] (byte~) bitmap_init::$7 ← < (byte*) bitmap_init::yoffs#2 [746] (byte~) bitmap_init::$8 ← (byte~) bitmap_init::$6 | (byte~) bitmap_init::$7 - [747] *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 + [747] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 [748] (byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2 - [749] *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 + [749] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 [750] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [751] if((byte~) bitmap_init::$10!=(byte/signed byte/word/signed word/dword/signed dword) 7) goto bitmap_init::@4 to:bitmap_init::@7 bitmap_init::@7: scope:[bitmap_init] from bitmap_init::@3 - [752] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 + [752] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 to:bitmap_init::@4 bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@7 [753] (byte*) bitmap_init::yoffs#4 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 bitmap_init::@7/(byte*) bitmap_init::yoffs#1 ) @@ -1331,21 +1331,21 @@ bitmap_init::@10: scope:[bitmap_init] from bitmap_init::@1 [757] phi() to:bitmap_init::@2 mode_mcchar: scope:[mode_mcchar] from menu::@26 - [758] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_mcchar::CHARSET#0/(dword/signed dword) 65536 - [759] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 - [760] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 + [758] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_mcchar::CHARSET#0/(dword/signed dword) $10000 + [759] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 + [760] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [761] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [762] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 - [763] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_mcchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 + [763] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_mcchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 [764] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [765] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0|(const byte) VIC_MCM#0 - [766] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_mcchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_mcchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 + [766] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_mcchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_mcchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 to:mode_mcchar::@1 mode_mcchar::@1: scope:[mode_mcchar] from mode_mcchar mode_mcchar::@1 [767] (byte) mode_mcchar::i#2 ← phi( mode_mcchar/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_mcchar::@1/(byte) mode_mcchar::i#1 ) - [768] *((const byte*) DTV_PALETTE#0 + (byte) mode_mcchar::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_mcchar::i#2) + [768] *((const byte*) DTV_PALETTE#0 + (byte) mode_mcchar::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_mcchar::i#2) [769] (byte) mode_mcchar::i#1 ← ++ (byte) mode_mcchar::i#2 - [770] if((byte) mode_mcchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_mcchar::@1 + [770] if((byte) mode_mcchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_mcchar::@1 to:mode_mcchar::@4 mode_mcchar::@4: scope:[mode_mcchar] from mode_mcchar::@1 [771] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -1363,21 +1363,21 @@ mode_mcchar::@3: scope:[mode_mcchar] from mode_mcchar::@2 mode_mcchar::@3 [776] (byte*) mode_mcchar::col#2 ← phi( mode_mcchar::@2/(byte*) mode_mcchar::col#3 mode_mcchar::@3/(byte*) mode_mcchar::col#1 ) [776] (byte) mode_mcchar::cx#2 ← phi( mode_mcchar::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_mcchar::@3/(byte) mode_mcchar::cx#1 ) [777] (byte~) mode_mcchar::$25 ← (byte) mode_mcchar::cx#2 + (byte) mode_mcchar::cy#4 - [778] (byte~) mode_mcchar::$26 ← (byte~) mode_mcchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [778] (byte~) mode_mcchar::$26 ← (byte~) mode_mcchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) $f [779] *((byte*) mode_mcchar::col#2) ← (byte~) mode_mcchar::$26 [780] (byte*) mode_mcchar::col#1 ← ++ (byte*) mode_mcchar::col#2 - [781] (byte~) mode_mcchar::$27 ← (byte) mode_mcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [781] (byte~) mode_mcchar::$27 ← (byte) mode_mcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [782] (byte~) mode_mcchar::$28 ← (byte~) mode_mcchar::$27 << (byte/signed byte/word/signed word/dword/signed dword) 4 - [783] (byte~) mode_mcchar::$29 ← (byte) mode_mcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [783] (byte~) mode_mcchar::$29 ← (byte) mode_mcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [784] (byte~) mode_mcchar::$30 ← (byte~) mode_mcchar::$28 | (byte~) mode_mcchar::$29 [785] *((byte*) mode_mcchar::ch#2) ← (byte~) mode_mcchar::$30 [786] (byte*) mode_mcchar::ch#1 ← ++ (byte*) mode_mcchar::ch#2 [787] (byte) mode_mcchar::cx#1 ← ++ (byte) mode_mcchar::cx#2 - [788] if((byte) mode_mcchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_mcchar::@3 + [788] if((byte) mode_mcchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_mcchar::@3 to:mode_mcchar::@5 mode_mcchar::@5: scope:[mode_mcchar] from mode_mcchar::@3 [789] (byte) mode_mcchar::cy#1 ← ++ (byte) mode_mcchar::cy#4 - [790] if((byte) mode_mcchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_mcchar::@2 + [790] if((byte) mode_mcchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_mcchar::@2 to:mode_mcchar::@6 mode_mcchar::@6: scope:[mode_mcchar] from mode_mcchar::@5 [791] phi() @@ -1387,21 +1387,21 @@ mode_mcchar::@return: scope:[mode_mcchar] from mode_mcchar::@6 [793] return to:@return mode_ecmchar: scope:[mode_ecmchar] from menu::@24 - [794] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_ecmchar::CHARSET#0/(dword/signed dword) 65536 - [795] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 - [796] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 + [794] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_ecmchar::CHARSET#0/(dword/signed dword) $10000 + [795] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 + [796] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [797] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [798] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 - [799] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_ecmchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 + [799] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_ecmchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 [800] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(const byte) VIC_ECM#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [801] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 - [802] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_ecmchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_ecmchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 + [802] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_ecmchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_ecmchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 to:mode_ecmchar::@1 mode_ecmchar::@1: scope:[mode_ecmchar] from mode_ecmchar mode_ecmchar::@1 [803] (byte) mode_ecmchar::i#2 ← phi( mode_ecmchar/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_ecmchar::@1/(byte) mode_ecmchar::i#1 ) - [804] *((const byte*) DTV_PALETTE#0 + (byte) mode_ecmchar::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_ecmchar::i#2) + [804] *((const byte*) DTV_PALETTE#0 + (byte) mode_ecmchar::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_ecmchar::i#2) [805] (byte) mode_ecmchar::i#1 ← ++ (byte) mode_ecmchar::i#2 - [806] if((byte) mode_ecmchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_ecmchar::@1 + [806] if((byte) mode_ecmchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_ecmchar::@1 to:mode_ecmchar::@4 mode_ecmchar::@4: scope:[mode_ecmchar] from mode_ecmchar::@1 [807] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -1420,21 +1420,21 @@ mode_ecmchar::@3: scope:[mode_ecmchar] from mode_ecmchar::@2 mode_ecmchar::@3 [813] (byte*) mode_ecmchar::col#2 ← phi( mode_ecmchar::@2/(byte*) mode_ecmchar::col#3 mode_ecmchar::@3/(byte*) mode_ecmchar::col#1 ) [813] (byte) mode_ecmchar::cx#2 ← phi( mode_ecmchar::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_ecmchar::@3/(byte) mode_ecmchar::cx#1 ) [814] (byte~) mode_ecmchar::$25 ← (byte) mode_ecmchar::cx#2 + (byte) mode_ecmchar::cy#4 - [815] (byte~) mode_ecmchar::$26 ← (byte~) mode_ecmchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [815] (byte~) mode_ecmchar::$26 ← (byte~) mode_ecmchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) $f [816] *((byte*) mode_ecmchar::col#2) ← (byte~) mode_ecmchar::$26 [817] (byte*) mode_ecmchar::col#1 ← ++ (byte*) mode_ecmchar::col#2 - [818] (byte~) mode_ecmchar::$27 ← (byte) mode_ecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [818] (byte~) mode_ecmchar::$27 ← (byte) mode_ecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [819] (byte~) mode_ecmchar::$28 ← (byte~) mode_ecmchar::$27 << (byte/signed byte/word/signed word/dword/signed dword) 4 - [820] (byte~) mode_ecmchar::$29 ← (byte) mode_ecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [820] (byte~) mode_ecmchar::$29 ← (byte) mode_ecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [821] (byte~) mode_ecmchar::$30 ← (byte~) mode_ecmchar::$28 | (byte~) mode_ecmchar::$29 [822] *((byte*) mode_ecmchar::ch#2) ← (byte~) mode_ecmchar::$30 [823] (byte*) mode_ecmchar::ch#1 ← ++ (byte*) mode_ecmchar::ch#2 [824] (byte) mode_ecmchar::cx#1 ← ++ (byte) mode_ecmchar::cx#2 - [825] if((byte) mode_ecmchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_ecmchar::@3 + [825] if((byte) mode_ecmchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_ecmchar::@3 to:mode_ecmchar::@5 mode_ecmchar::@5: scope:[mode_ecmchar] from mode_ecmchar::@3 [826] (byte) mode_ecmchar::cy#1 ← ++ (byte) mode_ecmchar::cy#4 - [827] if((byte) mode_ecmchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_ecmchar::@2 + [827] if((byte) mode_ecmchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_ecmchar::@2 to:mode_ecmchar::@6 mode_ecmchar::@6: scope:[mode_ecmchar] from mode_ecmchar::@5 [828] phi() @@ -1444,21 +1444,21 @@ mode_ecmchar::@return: scope:[mode_ecmchar] from mode_ecmchar::@6 [830] return to:@return mode_stdchar: scope:[mode_stdchar] from menu::@22 - [831] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdchar::CHARSET#0/(dword/signed dword) 65536 - [832] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 - [833] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 + [831] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdchar::CHARSET#0/(dword/signed dword) $10000 + [832] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 + [833] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [834] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [835] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 - [836] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 + [836] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 [837] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [838] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 - [839] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_stdchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 + [839] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_stdchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 to:mode_stdchar::@1 mode_stdchar::@1: scope:[mode_stdchar] from mode_stdchar mode_stdchar::@1 [840] (byte) mode_stdchar::i#2 ← phi( mode_stdchar/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_stdchar::@1/(byte) mode_stdchar::i#1 ) - [841] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdchar::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdchar::i#2) + [841] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdchar::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdchar::i#2) [842] (byte) mode_stdchar::i#1 ← ++ (byte) mode_stdchar::i#2 - [843] if((byte) mode_stdchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_stdchar::@1 + [843] if((byte) mode_stdchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_stdchar::@1 to:mode_stdchar::@4 mode_stdchar::@4: scope:[mode_stdchar] from mode_stdchar::@1 [844] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -1474,21 +1474,21 @@ mode_stdchar::@3: scope:[mode_stdchar] from mode_stdchar::@2 mode_stdchar::@3 [847] (byte*) mode_stdchar::col#2 ← phi( mode_stdchar::@2/(byte*) mode_stdchar::col#3 mode_stdchar::@3/(byte*) mode_stdchar::col#1 ) [847] (byte) mode_stdchar::cx#2 ← phi( mode_stdchar::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_stdchar::@3/(byte) mode_stdchar::cx#1 ) [848] (byte~) mode_stdchar::$24 ← (byte) mode_stdchar::cx#2 + (byte) mode_stdchar::cy#4 - [849] (byte~) mode_stdchar::$25 ← (byte~) mode_stdchar::$24 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [849] (byte~) mode_stdchar::$25 ← (byte~) mode_stdchar::$24 & (byte/signed byte/word/signed word/dword/signed dword) $f [850] *((byte*) mode_stdchar::col#2) ← (byte~) mode_stdchar::$25 [851] (byte*) mode_stdchar::col#1 ← ++ (byte*) mode_stdchar::col#2 - [852] (byte~) mode_stdchar::$26 ← (byte) mode_stdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [852] (byte~) mode_stdchar::$26 ← (byte) mode_stdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [853] (byte~) mode_stdchar::$27 ← (byte~) mode_stdchar::$26 << (byte/signed byte/word/signed word/dword/signed dword) 4 - [854] (byte~) mode_stdchar::$28 ← (byte) mode_stdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [854] (byte~) mode_stdchar::$28 ← (byte) mode_stdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [855] (byte~) mode_stdchar::$29 ← (byte~) mode_stdchar::$27 | (byte~) mode_stdchar::$28 [856] *((byte*) mode_stdchar::ch#2) ← (byte~) mode_stdchar::$29 [857] (byte*) mode_stdchar::ch#1 ← ++ (byte*) mode_stdchar::ch#2 [858] (byte) mode_stdchar::cx#1 ← ++ (byte) mode_stdchar::cx#2 - [859] if((byte) mode_stdchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_stdchar::@3 + [859] if((byte) mode_stdchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_stdchar::@3 to:mode_stdchar::@5 mode_stdchar::@5: scope:[mode_stdchar] from mode_stdchar::@3 [860] (byte) mode_stdchar::cy#1 ← ++ (byte) mode_stdchar::cy#4 - [861] if((byte) mode_stdchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_stdchar::@2 + [861] if((byte) mode_stdchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_stdchar::@2 to:mode_stdchar::@6 mode_stdchar::@6: scope:[mode_stdchar] from mode_stdchar::@5 [862] phi() @@ -1534,7 +1534,7 @@ print_ln: scope:[print_ln] from print_str_lines::@9 to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [881] (byte*) print_line_cursor#18 ← phi( print_ln/(byte*) print_line_cursor#17 print_ln::@1/(byte*) print_line_cursor#19 ) - [882] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [882] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) $28 [883] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 @@ -1547,7 +1547,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 [886] (byte*) print_cls::sc#2 ← phi( print_cls/(const byte*) menu::SCREEN#0 print_cls::@1/(byte*) print_cls::sc#1 ) [887] *((byte*) print_cls::sc#2) ← (byte) ' ' [888] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [889] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [889] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [890] return diff --git a/src/test/ref/c64dtv-gfxmodes.log b/src/test/ref/c64dtv-gfxmodes.log index b7f3155c1..68d159134 100644 --- a/src/test/ref/c64dtv-gfxmodes.log +++ b/src/test/ref/c64dtv-gfxmodes.log @@ -5,66 +5,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -75,49 +75,49 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@4 @4: scope:[] from @begin - (byte*) DTV_FEATURE#0 ← ((byte*)) (word/dword/signed dword) 53311 + (byte*) DTV_FEATURE#0 ← ((byte*)) (word/dword/signed dword) $d03f (byte) DTV_FEATURE_ENABLE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_FEATURE_DISABLE_TIL_RESET#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte*) DTV_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53308 + (byte*) DTV_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d03c (byte) DTV_LINEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BORDER_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_HIGHCOLOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DTV_OVERSCAN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte) DTV_COLORRAM_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte) DTV_BADLINE_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) DTV_CHUNKY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte*) DTV_PALETTE#0 ← ((byte*)) (word/dword/signed dword) 53760 - (byte[16]) DTV_PALETTE_DEFAULT#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 54, (byte/word/signed word/dword/signed dword) 190, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 219, (byte/word/signed word/dword/signed dword) 134, (byte/word/signed word/dword/signed dword) 255, (byte/signed byte/word/signed word/dword/signed dword) 41, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 59, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 154, (byte/signed byte/word/signed word/dword/signed dword) 10 } - (byte*) DTV_PLANEA_START_LO#0 ← ((byte*)) (word/dword/signed dword) 53306 - (byte*) DTV_PLANEA_START_MI#0 ← ((byte*)) (word/dword/signed dword) 53307 - (byte*) DTV_PLANEA_START_HI#0 ← ((byte*)) (word/dword/signed dword) 53317 - (byte*) DTV_PLANEA_STEP#0 ← ((byte*)) (word/dword/signed dword) 53318 - (byte*) DTV_PLANEA_MODULO_LO#0 ← ((byte*)) (word/dword/signed dword) 53304 - (byte*) DTV_PLANEA_MODULO_HI#0 ← ((byte*)) (word/dword/signed dword) 53305 - (byte*) DTV_PLANEB_START_LO#0 ← ((byte*)) (word/dword/signed dword) 53321 - (byte*) DTV_PLANEB_START_MI#0 ← ((byte*)) (word/dword/signed dword) 53322 - (byte*) DTV_PLANEB_START_HI#0 ← ((byte*)) (word/dword/signed dword) 53323 - (byte*) DTV_PLANEB_STEP#0 ← ((byte*)) (word/dword/signed dword) 53324 - (byte*) DTV_PLANEB_MODULO_LO#0 ← ((byte*)) (word/dword/signed dword) 53319 - (byte*) DTV_PLANEB_MODULO_HI#0 ← ((byte*)) (word/dword/signed dword) 53320 - (byte*) DTV_SPRITE_BANK#0 ← ((byte*)) (word/dword/signed dword) 53325 - (byte*) DTV_COLOR_BANK_LO#0 ← ((byte*)) (word/dword/signed dword) 53302 - (byte*) DTV_COLOR_BANK_HI#0 ← ((byte*)) (word/dword/signed dword) 53303 - (dword) DTV_COLOR_BANK_DEFAULT#0 ← (dword/signed dword) 120832 - (byte*) DTV_GRAPHICS_VIC_BANK#0 ← ((byte*)) (word/dword/signed dword) 53309 - (byte*) DTV_GRAPHICS_HICOL_BANK#0 ← ((byte*)) (word/dword/signed dword) 53310 + (byte) DTV_COLORRAM_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte) DTV_BADLINE_OFF#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) DTV_CHUNKY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte*) DTV_PALETTE#0 ← ((byte*)) (word/dword/signed dword) $d200 + (byte[$10]) DTV_PALETTE_DEFAULT#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $36, (byte/word/signed word/dword/signed dword) $be, (byte/signed byte/word/signed word/dword/signed dword) $58, (byte/word/signed word/dword/signed dword) $db, (byte/word/signed word/dword/signed dword) $86, (byte/word/signed word/dword/signed dword) $ff, (byte/signed byte/word/signed word/dword/signed dword) $29, (byte/signed byte/word/signed word/dword/signed dword) $26, (byte/signed byte/word/signed word/dword/signed dword) $3b, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $9a, (byte/signed byte/word/signed word/dword/signed dword) $a } + (byte*) DTV_PLANEA_START_LO#0 ← ((byte*)) (word/dword/signed dword) $d03a + (byte*) DTV_PLANEA_START_MI#0 ← ((byte*)) (word/dword/signed dword) $d03b + (byte*) DTV_PLANEA_START_HI#0 ← ((byte*)) (word/dword/signed dword) $d045 + (byte*) DTV_PLANEA_STEP#0 ← ((byte*)) (word/dword/signed dword) $d046 + (byte*) DTV_PLANEA_MODULO_LO#0 ← ((byte*)) (word/dword/signed dword) $d038 + (byte*) DTV_PLANEA_MODULO_HI#0 ← ((byte*)) (word/dword/signed dword) $d039 + (byte*) DTV_PLANEB_START_LO#0 ← ((byte*)) (word/dword/signed dword) $d049 + (byte*) DTV_PLANEB_START_MI#0 ← ((byte*)) (word/dword/signed dword) $d04a + (byte*) DTV_PLANEB_START_HI#0 ← ((byte*)) (word/dword/signed dword) $d04b + (byte*) DTV_PLANEB_STEP#0 ← ((byte*)) (word/dword/signed dword) $d04c + (byte*) DTV_PLANEB_MODULO_LO#0 ← ((byte*)) (word/dword/signed dword) $d047 + (byte*) DTV_PLANEB_MODULO_HI#0 ← ((byte*)) (word/dword/signed dword) $d048 + (byte*) DTV_SPRITE_BANK#0 ← ((byte*)) (word/dword/signed dword) $d04d + (byte*) DTV_COLOR_BANK_LO#0 ← ((byte*)) (word/dword/signed dword) $d036 + (byte*) DTV_COLOR_BANK_HI#0 ← ((byte*)) (word/dword/signed dword) $d037 + (dword) DTV_COLOR_BANK_DEFAULT#0 ← (dword/signed dword) $1d800 + (byte*) DTV_GRAPHICS_VIC_BANK#0 ← ((byte*)) (word/dword/signed dword) $d03d + (byte*) DTV_GRAPHICS_HICOL_BANK#0 ← ((byte*)) (word/dword/signed dword) $d03e to:@5 dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@6 mode_8bppchunkybmm::@8 (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 ← phi( mode_8bppchunkybmm::@5/(byte) dtvSetCpuBankSegment1::cpuBankIdx#0 mode_8bppchunkybmm::@6/(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 mode_8bppchunkybmm::@8/(byte) dtvSetCpuBankSegment1::cpuBankIdx#2 ) - (byte*) dtvSetCpuBankSegment1::cpuBank#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) 255 + (byte*) dtvSetCpuBankSegment1::cpuBank#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) $ff *((byte*) dtvSetCpuBankSegment1::cpuBank#0) ← (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 asm { .byte$32,$dd lda$ff .byte$32,$00 } to:dtvSetCpuBankSegment1::@return @@ -125,47 +125,47 @@ dtvSetCpuBankSegment1::@return: scope:[dtvSetCpuBankSegment1] from dtvSetCpuBan return to:@return @5: scope:[] from @4 - (byte*) DTV_BLITTER_SRCA_LO#0 ← ((byte*)) (word/dword/signed dword) 54048 - (byte*) DTV_BLITTER_SRCA_MI#0 ← ((byte*)) (word/dword/signed dword) 54049 - (byte*) DTV_BLITTER_SRCA_HI#0 ← ((byte*)) (word/dword/signed dword) 54050 - (byte*) DTV_BLITTER_SRCA_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) 54051 - (byte*) DTV_BLITTER_SRCA_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) 54052 - (byte*) DTV_BLITTER_SRCA_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) 54053 - (byte*) DTV_BLITTER_SRCA_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) 54054 - (byte*) DTV_BLITTER_SRCA_STEP#0 ← ((byte*)) (word/dword/signed dword) 54055 - (byte*) DTV_BLITTER_SRCB_LO#0 ← ((byte*)) (word/dword/signed dword) 54056 - (byte*) DTV_BLITTER_SRCB_MI#0 ← ((byte*)) (word/dword/signed dword) 54057 - (byte*) DTV_BLITTER_SRCB_HI#0 ← ((byte*)) (word/dword/signed dword) 54058 - (byte*) DTV_BLITTER_SRCB_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) 54059 - (byte*) DTV_BLITTER_SRCB_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) 54060 - (byte*) DTV_BLITTER_SRCB_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) 54061 - (byte*) DTV_BLITTER_SRCB_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) 54062 - (byte*) DTV_BLITTER_SRCB_STEP#0 ← ((byte*)) (word/dword/signed dword) 54063 - (byte*) DTV_BLITTER_DEST_LO#0 ← ((byte*)) (word/dword/signed dword) 54064 - (byte*) DTV_BLITTER_DEST_MI#0 ← ((byte*)) (word/dword/signed dword) 54065 - (byte*) DTV_BLITTER_DEST_HI#0 ← ((byte*)) (word/dword/signed dword) 54066 - (byte*) DTV_BLITTER_DEST_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) 54067 - (byte*) DTV_BLITTER_DEST_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) 54068 - (byte*) DTV_BLITTER_DEST_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) 54069 - (byte*) DTV_BLITTER_DEST_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) 54070 - (byte*) DTV_BLITTER_DEST_STEP#0 ← ((byte*)) (word/dword/signed dword) 54071 - (byte*) DTV_BLITTER_LEN_LO#0 ← ((byte*)) (word/dword/signed dword) 54072 - (byte*) DTV_BLITTER_LEN_HI#0 ← ((byte*)) (word/dword/signed dword) 54073 - (byte*) DTV_BLITTER_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 54074 + (byte*) DTV_BLITTER_SRCA_LO#0 ← ((byte*)) (word/dword/signed dword) $d320 + (byte*) DTV_BLITTER_SRCA_MI#0 ← ((byte*)) (word/dword/signed dword) $d321 + (byte*) DTV_BLITTER_SRCA_HI#0 ← ((byte*)) (word/dword/signed dword) $d322 + (byte*) DTV_BLITTER_SRCA_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) $d323 + (byte*) DTV_BLITTER_SRCA_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) $d324 + (byte*) DTV_BLITTER_SRCA_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) $d325 + (byte*) DTV_BLITTER_SRCA_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) $d326 + (byte*) DTV_BLITTER_SRCA_STEP#0 ← ((byte*)) (word/dword/signed dword) $d327 + (byte*) DTV_BLITTER_SRCB_LO#0 ← ((byte*)) (word/dword/signed dword) $d328 + (byte*) DTV_BLITTER_SRCB_MI#0 ← ((byte*)) (word/dword/signed dword) $d329 + (byte*) DTV_BLITTER_SRCB_HI#0 ← ((byte*)) (word/dword/signed dword) $d32a + (byte*) DTV_BLITTER_SRCB_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) $d32b + (byte*) DTV_BLITTER_SRCB_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) $d32c + (byte*) DTV_BLITTER_SRCB_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) $d32d + (byte*) DTV_BLITTER_SRCB_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) $d32e + (byte*) DTV_BLITTER_SRCB_STEP#0 ← ((byte*)) (word/dword/signed dword) $d32f + (byte*) DTV_BLITTER_DEST_LO#0 ← ((byte*)) (word/dword/signed dword) $d330 + (byte*) DTV_BLITTER_DEST_MI#0 ← ((byte*)) (word/dword/signed dword) $d331 + (byte*) DTV_BLITTER_DEST_HI#0 ← ((byte*)) (word/dword/signed dword) $d332 + (byte*) DTV_BLITTER_DEST_MOD_LO#0 ← ((byte*)) (word/dword/signed dword) $d333 + (byte*) DTV_BLITTER_DEST_MOD_HI#0 ← ((byte*)) (word/dword/signed dword) $d334 + (byte*) DTV_BLITTER_DEST_LIN_LO#0 ← ((byte*)) (word/dword/signed dword) $d335 + (byte*) DTV_BLITTER_DEST_LIN_HI#0 ← ((byte*)) (word/dword/signed dword) $d336 + (byte*) DTV_BLITTER_DEST_STEP#0 ← ((byte*)) (word/dword/signed dword) $d337 + (byte*) DTV_BLITTER_LEN_LO#0 ← ((byte*)) (word/dword/signed dword) $d338 + (byte*) DTV_BLITTER_LEN_HI#0 ← ((byte*)) (word/dword/signed dword) $d339 + (byte*) DTV_BLITTER_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d33a (byte) DTV_BLIT_FORCE_START#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_SRCA_FWD#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_BLIT_SRCB_FWD#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DTV_BLIT_DEST_FWD#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte) DTV_BLIT_VIC_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte) DTV_BLIT_CIA_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) DTV_BLIT_VBLANK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) DTV_BLIT_IRQ_EN#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte*) DTV_BLITTER_TRANSPARANCY#0 ← ((byte*)) (word/dword/signed dword) 54075 + (byte) DTV_BLIT_VIC_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte) DTV_BLIT_CIA_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) DTV_BLIT_VBLANK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) DTV_BLIT_IRQ_EN#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte*) DTV_BLITTER_TRANSPARANCY#0 ← ((byte*)) (word/dword/signed dword) $d33b (byte) DTV_BLIT_DISABLE_B#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_WRITE_TRANSPARENT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_BLIT_WRITE_NONTRANSPARENT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DTV_BLIT_TRANSPARANCY_NONE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte*) DTV_BLITTER_ALU#0 ← ((byte*)) (word/dword/signed dword) 54078 + (byte*) DTV_BLITTER_ALU#0 ← ((byte*)) (word/dword/signed dword) $d33e (byte) DTV_BLIT_SHIFT0#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) DTV_BLIT_SHIFT1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_SHIFT2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -176,20 +176,20 @@ dtvSetCpuBankSegment1::@return: scope:[dtvSetCpuBankSegment1] from dtvSetCpuBan (byte) DTV_BLIT_SHIFT7#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) DTV_BLIT_AND#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) DTV_BLIT_NAND#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte) DTV_BLIT_NOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte) DTV_BLIT_OR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 24 - (byte) DTV_BLIT_XOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) DTV_BLIT_XNOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte) DTV_BLIT_ADD#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) DTV_BLIT_SUB#0 ← (byte/signed byte/word/signed word/dword/signed dword) 56 - (byte*) DTV_BLITTER_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 54079 + (byte) DTV_BLIT_NOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte) DTV_BLIT_OR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $18 + (byte) DTV_BLIT_XOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) DTV_BLIT_XNOR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) DTV_BLIT_ADD#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) DTV_BLIT_SUB#0 ← (byte/signed byte/word/signed word/dword/signed dword) $38 + (byte*) DTV_BLITTER_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d33f (byte) DTV_BLIT_CLEAR_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_SRCA_CONT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_BLIT_SRCB_CONT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DTV_BLIT_DEST_CONT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) DTV_BLIT_STATUS_BUSY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) DTV_BLIT_STATUS_IRQ#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 to:@17 @@ -263,7 +263,7 @@ print_ln: scope:[print_ln] from print_str_lines::@9 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 (byte*) print_char_cursor#20 ← phi( print_ln/(byte*) print_char_cursor#34 print_ln::@1/(byte*) print_char_cursor#20 ) (byte*) print_line_cursor#18 ← phi( print_ln/(byte*) print_line_cursor#32 print_ln::@1/(byte*) print_line_cursor#3 ) - (byte*~) print_ln::$0 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) print_ln::$0 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) print_line_cursor#3 ← (byte*~) print_ln::$0 (bool~) print_ln::$1 ← (byte*) print_line_cursor#3 < (byte*) print_char_cursor#20 if((bool~) print_ln::$1) goto print_ln::@1 @@ -294,7 +294,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 (byte*) print_cls::sc#2 ← phi( print_cls/(byte*) print_cls::sc#0 print_cls::@1/(byte*) print_cls::sc#1 ) *((byte*) print_cls::sc#2) ← (byte) ' ' (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - (byte*~) print_cls::$0 ← (byte*) print_screen#9 + (word/signed word/dword/signed dword) 1000 + (byte*~) print_cls::$0 ← (byte*) print_screen#9 + (word/signed word/dword/signed dword) $3e8 (bool~) print_cls::$1 ← (byte*) print_cls::sc#1 != (byte*~) print_cls::$0 if((bool~) print_cls::$1) goto print_cls::@1 to:print_cls::@2 @@ -339,63 +339,63 @@ print_set_screen::@return: scope:[print_set_screen] from print_set_screen (byte) KEY_CRSR_DOWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) KEY_3#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) KEY_W#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) KEY_A#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) KEY_4#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) KEY_Z#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) KEY_S#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) KEY_E#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) KEY_LSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) KEY_5#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte) KEY_R#0 ← (byte/signed byte/word/signed word/dword/signed dword) 17 - (byte) KEY_D#0 ← (byte/signed byte/word/signed word/dword/signed dword) 18 - (byte) KEY_6#0 ← (byte/signed byte/word/signed word/dword/signed dword) 19 - (byte) KEY_C#0 ← (byte/signed byte/word/signed word/dword/signed dword) 20 - (byte) KEY_F#0 ← (byte/signed byte/word/signed word/dword/signed dword) 21 - (byte) KEY_T#0 ← (byte/signed byte/word/signed word/dword/signed dword) 22 - (byte) KEY_X#0 ← (byte/signed byte/word/signed word/dword/signed dword) 23 - (byte) KEY_7#0 ← (byte/signed byte/word/signed word/dword/signed dword) 24 - (byte) KEY_Y#0 ← (byte/signed byte/word/signed word/dword/signed dword) 25 - (byte) KEY_G#0 ← (byte/signed byte/word/signed word/dword/signed dword) 26 - (byte) KEY_8#0 ← (byte/signed byte/word/signed word/dword/signed dword) 27 - (byte) KEY_B#0 ← (byte/signed byte/word/signed word/dword/signed dword) 28 - (byte) KEY_H#0 ← (byte/signed byte/word/signed word/dword/signed dword) 29 - (byte) KEY_U#0 ← (byte/signed byte/word/signed word/dword/signed dword) 30 - (byte) KEY_V#0 ← (byte/signed byte/word/signed word/dword/signed dword) 31 - (byte) KEY_9#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) KEY_I#0 ← (byte/signed byte/word/signed word/dword/signed dword) 33 - (byte) KEY_J#0 ← (byte/signed byte/word/signed word/dword/signed dword) 34 - (byte) KEY_0#0 ← (byte/signed byte/word/signed word/dword/signed dword) 35 - (byte) KEY_M#0 ← (byte/signed byte/word/signed word/dword/signed dword) 36 - (byte) KEY_K#0 ← (byte/signed byte/word/signed word/dword/signed dword) 37 - (byte) KEY_O#0 ← (byte/signed byte/word/signed word/dword/signed dword) 38 - (byte) KEY_N#0 ← (byte/signed byte/word/signed word/dword/signed dword) 39 - (byte) KEY_PLUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte) KEY_P#0 ← (byte/signed byte/word/signed word/dword/signed dword) 41 - (byte) KEY_L#0 ← (byte/signed byte/word/signed word/dword/signed dword) 42 - (byte) KEY_MINUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 43 - (byte) KEY_DOT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 44 - (byte) KEY_COLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) 45 - (byte) KEY_AT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 46 - (byte) KEY_COMMA#0 ← (byte/signed byte/word/signed word/dword/signed dword) 47 - (byte) KEY_POUND#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) KEY_ASTERISK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) KEY_SEMICOLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 - (byte) KEY_HOME#0 ← (byte/signed byte/word/signed word/dword/signed dword) 51 - (byte) KEY_RSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 52 - (byte) KEY_EQUALS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) KEY_ARROW_UP#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) KEY_SLASH#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte) KEY_1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 56 - (byte) KEY_ARROW_LEFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 57 - (byte) KEY_CTRL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 58 - (byte) KEY_2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 59 - (byte) KEY_SPACE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 60 - (byte) KEY_COMMODORE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 61 - (byte) KEY_Q#0 ← (byte/signed byte/word/signed word/dword/signed dword) 62 - (byte) KEY_RUNSTOP#0 ← (byte/signed byte/word/signed word/dword/signed dword) 63 - (byte[]) keyboard_char_keycodes#0 ← { (byte) KEY_AT#0, (byte) KEY_A#0, (byte) KEY_B#0, (byte) KEY_C#0, (byte) KEY_D#0, (byte) KEY_E#0, (byte) KEY_F#0, (byte) KEY_G#0, (byte) KEY_H#0, (byte) KEY_I#0, (byte) KEY_J#0, (byte) KEY_K#0, (byte) KEY_L#0, (byte) KEY_M#0, (byte) KEY_N#0, (byte) KEY_O#0, (byte) KEY_P#0, (byte) KEY_Q#0, (byte) KEY_R#0, (byte) KEY_S#0, (byte) KEY_T#0, (byte) KEY_U#0, (byte) KEY_V#0, (byte) KEY_W#0, (byte) KEY_X#0, (byte) KEY_Y#0, (byte) KEY_Z#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP#0, (byte) KEY_ARROW_LEFT#0, (byte) KEY_SPACE#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK#0, (byte) KEY_PLUS#0, (byte) KEY_COMMA#0, (byte) KEY_MINUS#0, (byte) KEY_DOT#0, (byte) KEY_SLASH#0, (byte) KEY_0#0, (byte) KEY_1#0, (byte) KEY_2#0, (byte) KEY_3#0, (byte) KEY_4#0, (byte) KEY_5#0, (byte) KEY_6#0, (byte) KEY_7#0, (byte) KEY_8#0, (byte) KEY_9#0, (byte) KEY_COLON#0, (byte) KEY_SEMICOLON#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } - (byte[8]) keyboard_matrix_row_bitmask#0 ← { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } - (byte[8]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } + (byte) KEY_A#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) KEY_4#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) KEY_Z#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) KEY_S#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) KEY_E#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) KEY_LSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f + (byte) KEY_5#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte) KEY_R#0 ← (byte/signed byte/word/signed word/dword/signed dword) $11 + (byte) KEY_D#0 ← (byte/signed byte/word/signed word/dword/signed dword) $12 + (byte) KEY_6#0 ← (byte/signed byte/word/signed word/dword/signed dword) $13 + (byte) KEY_C#0 ← (byte/signed byte/word/signed word/dword/signed dword) $14 + (byte) KEY_F#0 ← (byte/signed byte/word/signed word/dword/signed dword) $15 + (byte) KEY_T#0 ← (byte/signed byte/word/signed word/dword/signed dword) $16 + (byte) KEY_X#0 ← (byte/signed byte/word/signed word/dword/signed dword) $17 + (byte) KEY_7#0 ← (byte/signed byte/word/signed word/dword/signed dword) $18 + (byte) KEY_Y#0 ← (byte/signed byte/word/signed word/dword/signed dword) $19 + (byte) KEY_G#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1a + (byte) KEY_8#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1b + (byte) KEY_B#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1c + (byte) KEY_H#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1d + (byte) KEY_U#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1e + (byte) KEY_V#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1f + (byte) KEY_9#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) KEY_I#0 ← (byte/signed byte/word/signed word/dword/signed dword) $21 + (byte) KEY_J#0 ← (byte/signed byte/word/signed word/dword/signed dword) $22 + (byte) KEY_0#0 ← (byte/signed byte/word/signed word/dword/signed dword) $23 + (byte) KEY_M#0 ← (byte/signed byte/word/signed word/dword/signed dword) $24 + (byte) KEY_K#0 ← (byte/signed byte/word/signed word/dword/signed dword) $25 + (byte) KEY_O#0 ← (byte/signed byte/word/signed word/dword/signed dword) $26 + (byte) KEY_N#0 ← (byte/signed byte/word/signed word/dword/signed dword) $27 + (byte) KEY_PLUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) KEY_P#0 ← (byte/signed byte/word/signed word/dword/signed dword) $29 + (byte) KEY_L#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2a + (byte) KEY_MINUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2b + (byte) KEY_DOT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2c + (byte) KEY_COLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2d + (byte) KEY_AT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2e + (byte) KEY_COMMA#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2f + (byte) KEY_POUND#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) KEY_ASTERISK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) KEY_SEMICOLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) $32 + (byte) KEY_HOME#0 ← (byte/signed byte/word/signed word/dword/signed dword) $33 + (byte) KEY_RSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $34 + (byte) KEY_EQUALS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) KEY_ARROW_UP#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) KEY_SLASH#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte) KEY_1#0 ← (byte/signed byte/word/signed word/dword/signed dword) $38 + (byte) KEY_ARROW_LEFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $39 + (byte) KEY_CTRL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3a + (byte) KEY_2#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3b + (byte) KEY_SPACE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3c + (byte) KEY_COMMODORE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3d + (byte) KEY_Q#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3e + (byte) KEY_RUNSTOP#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3f + (byte[]) keyboard_char_keycodes#0 ← { (byte) KEY_AT#0, (byte) KEY_A#0, (byte) KEY_B#0, (byte) KEY_C#0, (byte) KEY_D#0, (byte) KEY_E#0, (byte) KEY_F#0, (byte) KEY_G#0, (byte) KEY_H#0, (byte) KEY_I#0, (byte) KEY_J#0, (byte) KEY_K#0, (byte) KEY_L#0, (byte) KEY_M#0, (byte) KEY_N#0, (byte) KEY_O#0, (byte) KEY_P#0, (byte) KEY_Q#0, (byte) KEY_R#0, (byte) KEY_S#0, (byte) KEY_T#0, (byte) KEY_U#0, (byte) KEY_V#0, (byte) KEY_W#0, (byte) KEY_X#0, (byte) KEY_Y#0, (byte) KEY_Z#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_POUND#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_ARROW_UP#0, (byte) KEY_ARROW_LEFT#0, (byte) KEY_SPACE#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_ASTERISK#0, (byte) KEY_PLUS#0, (byte) KEY_COMMA#0, (byte) KEY_MINUS#0, (byte) KEY_DOT#0, (byte) KEY_SLASH#0, (byte) KEY_0#0, (byte) KEY_1#0, (byte) KEY_2#0, (byte) KEY_3#0, (byte) KEY_4#0, (byte) KEY_5#0, (byte) KEY_6#0, (byte) KEY_7#0, (byte) KEY_8#0, (byte) KEY_9#0, (byte) KEY_COLON#0, (byte) KEY_SEMICOLON#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_EQUALS#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f } + (byte[8]) keyboard_matrix_row_bitmask#0 ← { (byte/word/signed word/dword/signed dword) $fe, (byte/word/signed word/dword/signed dword) $fd, (byte/word/signed word/dword/signed dword) $fb, (byte/word/signed word/dword/signed dword) $f7, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $bf, (byte/signed byte/word/signed word/dword/signed dword) $7f } + (byte[8]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $10, (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/word/signed word/dword/signed dword) $80 } to:@28 keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed (byte) keyboard_matrix_read::rowid#1 ← phi( keyboard_key_pressed/(byte) keyboard_matrix_read::rowid#0 ) @@ -450,26 +450,26 @@ keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_p (byte*) print_char_cursor#85 ← phi( @28/(byte*) print_char_cursor#99 ) (byte*) print_line_cursor#85 ← phi( @28/(byte*) print_line_cursor#99 ) (byte*) print_screen#66 ← phi( @28/(byte*) print_screen#80 ) - (byte[256]) bitmap_plot_xlo#0 ← { fill( 256, 0) } - (byte[256]) bitmap_plot_xhi#0 ← { fill( 256, 0) } - (byte[256]) bitmap_plot_ylo#0 ← { fill( 256, 0) } - (byte[256]) bitmap_plot_yhi#0 ← { fill( 256, 0) } - (byte[256]) bitmap_plot_bit#0 ← { fill( 256, 0) } + (byte[$100]) bitmap_plot_xlo#0 ← { fill( $100, 0) } + (byte[$100]) bitmap_plot_xhi#0 ← { fill( $100, 0) } + (byte[$100]) bitmap_plot_ylo#0 ← { fill( $100, 0) } + (byte[$100]) bitmap_plot_yhi#0 ← { fill( $100, 0) } + (byte[$100]) bitmap_plot_bit#0 ← { fill( $100, 0) } to:@40 bitmap_init: scope:[bitmap_init] from mode_stdbitmap::@7 (byte*) bitmap_init::bitmap#2 ← phi( mode_stdbitmap::@7/(byte*) bitmap_init::bitmap#0 ) - (byte) bitmap_init::bits#0 ← (byte/word/signed word/dword/signed dword) 128 + (byte) bitmap_init::bits#0 ← (byte/word/signed word/dword/signed dword) $80 (byte) bitmap_init::x#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:bitmap_init::@1 bitmap_init::@1: scope:[bitmap_init] from bitmap_init bitmap_init::@2 (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte) bitmap_init::bits#0 bitmap_init::@2/(byte) bitmap_init::bits#4 ) (byte*) bitmap_init::bitmap#1 ← phi( bitmap_init/(byte*) bitmap_init::bitmap#2 bitmap_init::@2/(byte*) bitmap_init::bitmap#3 ) (byte) bitmap_init::x#2 ← phi( bitmap_init/(byte) bitmap_init::x#0 bitmap_init::@2/(byte) bitmap_init::x#1 ) - (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) 248 - *((byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 + (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) $f8 + *((byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 (byte~) bitmap_init::$1 ← > (byte*) bitmap_init::bitmap#1 - *((byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$1 - *((byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 + *((byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$1 + *((byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 (byte~) bitmap_init::$2 ← (byte) bitmap_init::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) bitmap_init::bits#1 ← (byte~) bitmap_init::$2 (bool~) bitmap_init::$3 ← (byte) bitmap_init::bits#1 == (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -480,14 +480,14 @@ bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@5 (byte) bitmap_init::bits#4 ← phi( bitmap_init::@1/(byte) bitmap_init::bits#1 bitmap_init::@5/(byte) bitmap_init::bits#2 ) (byte*) bitmap_init::bitmap#3 ← phi( bitmap_init::@1/(byte*) bitmap_init::bitmap#1 bitmap_init::@5/(byte*) bitmap_init::bitmap#4 ) (byte) bitmap_init::x#3 ← phi( bitmap_init::@1/(byte) bitmap_init::x#2 bitmap_init::@5/(byte) bitmap_init::x#4 ) - (byte) bitmap_init::x#1 ← (byte) bitmap_init::x#3 + rangenext(0,255) - (bool~) bitmap_init::$5 ← (byte) bitmap_init::x#1 != rangelast(0,255) + (byte) bitmap_init::x#1 ← (byte) bitmap_init::x#3 + rangenext(0,$ff) + (bool~) bitmap_init::$5 ← (byte) bitmap_init::x#1 != rangelast(0,$ff) if((bool~) bitmap_init::$5) goto bitmap_init::@1 to:bitmap_init::@6 bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@1 (byte*) bitmap_init::bitmap#4 ← phi( bitmap_init::@1/(byte*) bitmap_init::bitmap#1 ) (byte) bitmap_init::x#4 ← phi( bitmap_init::@1/(byte) bitmap_init::x#2 ) - (byte) bitmap_init::bits#2 ← (byte/word/signed word/dword/signed dword) 128 + (byte) bitmap_init::bits#2 ← (byte/word/signed word/dword/signed dword) $80 to:bitmap_init::@2 bitmap_init::@6: scope:[bitmap_init] from bitmap_init::@2 (byte*) bitmap_init::yoffs#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -499,9 +499,9 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@4 bitmap_init::@6 (byte~) bitmap_init::$6 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 (byte~) bitmap_init::$7 ← < (byte*) bitmap_init::yoffs#2 (byte~) bitmap_init::$8 ← (byte~) bitmap_init::$6 | (byte~) bitmap_init::$7 - *((byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 + *((byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 (byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2 - *((byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 + *((byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 (bool~) bitmap_init::$11 ← (byte~) bitmap_init::$10 == (byte/signed byte/word/signed word/dword/signed dword) 7 (bool~) bitmap_init::$12 ← ! (bool~) bitmap_init::$11 @@ -510,14 +510,14 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@4 bitmap_init::@6 bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@7 (byte*) bitmap_init::yoffs#4 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 bitmap_init::@7/(byte*) bitmap_init::yoffs#1 ) (byte) bitmap_init::y#3 ← phi( bitmap_init::@3/(byte) bitmap_init::y#2 bitmap_init::@7/(byte) bitmap_init::y#4 ) - (byte) bitmap_init::y#1 ← (byte) bitmap_init::y#3 + rangenext(0,255) - (bool~) bitmap_init::$15 ← (byte) bitmap_init::y#1 != rangelast(0,255) + (byte) bitmap_init::y#1 ← (byte) bitmap_init::y#3 + rangenext(0,$ff) + (bool~) bitmap_init::$15 ← (byte) bitmap_init::y#1 != rangelast(0,$ff) if((bool~) bitmap_init::$15) goto bitmap_init::@3 to:bitmap_init::@return bitmap_init::@7: scope:[bitmap_init] from bitmap_init::@3 (byte) bitmap_init::y#4 ← phi( bitmap_init::@3/(byte) bitmap_init::y#2 ) (byte*) bitmap_init::yoffs#3 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 ) - (word/signed word/dword/signed dword~) bitmap_init::$13 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 8 + (word/signed word/dword/signed dword~) bitmap_init::$13 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 8 (byte*~) bitmap_init::$14 ← (byte*) bitmap_init::yoffs#3 + (word/signed word/dword/signed dword~) bitmap_init::$13 (byte*) bitmap_init::yoffs#1 ← (byte*~) bitmap_init::$14 to:bitmap_init::@4 @@ -525,7 +525,7 @@ bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4 return to:@return bitmap_clear: scope:[bitmap_clear] from mode_stdbitmap::@9 - (byte*~) bitmap_clear::$0 ← ((byte*)) { *((byte[256]) bitmap_plot_xhi#0 + (byte/signed byte/word/signed word/dword/signed dword) 0), *((byte[256]) bitmap_plot_xlo#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) } + (byte*~) bitmap_clear::$0 ← ((byte*)) { *((byte[$100]) bitmap_plot_xhi#0 + (byte/signed byte/word/signed word/dword/signed dword) 0), *((byte[$100]) bitmap_plot_xlo#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) } (byte*) bitmap_clear::bitmap#0 ← (byte*~) bitmap_clear::$0 (byte) bitmap_clear::y#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:bitmap_clear::@1 @@ -540,15 +540,15 @@ bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1 bitmap_clear::@2 (byte*) bitmap_clear::bitmap#2 ← phi( bitmap_clear::@1/(byte*) bitmap_clear::bitmap#3 bitmap_clear::@2/(byte*) bitmap_clear::bitmap#1 ) *((byte*) bitmap_clear::bitmap#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) bitmap_clear::bitmap#1 ← ++ (byte*) bitmap_clear::bitmap#2 - (byte) bitmap_clear::x#1 ← (byte) bitmap_clear::x#2 + rangenext(0,199) - (bool~) bitmap_clear::$1 ← (byte) bitmap_clear::x#1 != rangelast(0,199) + (byte) bitmap_clear::x#1 ← (byte) bitmap_clear::x#2 + rangenext(0,$c7) + (bool~) bitmap_clear::$1 ← (byte) bitmap_clear::x#1 != rangelast(0,$c7) if((bool~) bitmap_clear::$1) goto bitmap_clear::@2 to:bitmap_clear::@3 bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2 (byte*) bitmap_clear::bitmap#4 ← phi( bitmap_clear::@2/(byte*) bitmap_clear::bitmap#1 ) (byte) bitmap_clear::y#2 ← phi( bitmap_clear::@2/(byte) bitmap_clear::y#3 ) - (byte) bitmap_clear::y#1 ← (byte) bitmap_clear::y#2 + rangenext(0,39) - (bool~) bitmap_clear::$2 ← (byte) bitmap_clear::y#1 != rangelast(0,39) + (byte) bitmap_clear::y#1 ← (byte) bitmap_clear::y#2 + rangenext(0,$27) + (bool~) bitmap_clear::$2 ← (byte) bitmap_clear::y#1 != rangelast(0,$27) if((bool~) bitmap_clear::$2) goto bitmap_clear::@1 to:bitmap_clear::@return bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3 @@ -557,11 +557,11 @@ bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3 bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1 bitmap_line_ydxd::@1 bitmap_line_ydxi::@1 (byte) bitmap_plot::y#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::y#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::y#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::y#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::y#2 ) (byte) bitmap_plot::x#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::x#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::x#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::x#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::x#2 ) - (word) bitmap_plot::plotter_x#0 ← { *((byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4), *((byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) } - (word) bitmap_plot::plotter_y#0 ← { *((byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4), *((byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) } + (word) bitmap_plot::plotter_x#0 ← { *((byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4), *((byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) } + (word) bitmap_plot::plotter_y#0 ← { *((byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4), *((byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) } (word~) bitmap_plot::$0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0 (byte*) bitmap_plot::plotter#0 ← ((byte*)) (word~) bitmap_plot::$0 - (byte~) bitmap_plot::$1 ← *((byte*) bitmap_plot::plotter#0) | *((byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) + (byte~) bitmap_plot::$1 ← *((byte*) bitmap_plot::plotter#0) | *((byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) *((byte*) bitmap_plot::plotter#0) ← (byte~) bitmap_plot::$1 to:bitmap_plot::@return bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot @@ -1077,24 +1077,24 @@ menu: scope:[menu] from main::@2 (byte*) print_char_cursor#100 ← phi( main::@2/(byte*) print_char_cursor#35 ) (byte*) print_line_cursor#100 ← phi( main::@2/(byte*) print_line_cursor#33 ) (byte*) print_screen#81 ← phi( main::@2/(byte*) print_screen#17 ) - (byte*) menu::SCREEN#0 ← ((byte*)) (word/dword/signed dword) 32768 - (byte*) menu::CHARSET#0 ← ((byte*)) (word/dword/signed dword) 38912 + (byte*) menu::SCREEN#0 ← ((byte*)) (word/dword/signed dword) $8000 + (byte*) menu::CHARSET#0 ← ((byte*)) (word/dword/signed dword) $9800 (dword~) menu::$0 ← ((dword)) (byte*) menu::CHARSET#0 - (dword~) menu::$1 ← (dword~) menu::$0 / (dword/signed dword) 65536 + (dword~) menu::$1 ← (dword~) menu::$0 / (dword/signed dword) $10000 (byte~) menu::$2 ← ((byte)) (dword~) menu::$1 *((byte*) DTV_GRAPHICS_VIC_BANK#0) ← (byte~) menu::$2 - (dword~) menu::$3 ← (dword) DTV_COLOR_BANK_DEFAULT#0 / (word/signed word/dword/signed dword) 1024 + (dword~) menu::$3 ← (dword) DTV_COLOR_BANK_DEFAULT#0 / (word/signed word/dword/signed dword) $400 (word~) menu::$4 ← ((word)) (dword~) menu::$3 (byte~) menu::$5 ← < (word~) menu::$4 *((byte*) DTV_COLOR_BANK_LO#0) ← (byte~) menu::$5 - (dword~) menu::$6 ← (dword) DTV_COLOR_BANK_DEFAULT#0 / (word/signed word/dword/signed dword) 1024 + (dword~) menu::$6 ← (dword) DTV_COLOR_BANK_DEFAULT#0 / (word/signed word/dword/signed dword) $400 (word~) menu::$7 ← ((word)) (dword~) menu::$6 (byte~) menu::$8 ← > (word~) menu::$7 *((byte*) DTV_COLOR_BANK_HI#0) ← (byte~) menu::$8 *((byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 (word~) menu::$9 ← ((word)) (byte*) menu::CHARSET#0 - (word/signed dword/dword~) menu::$10 ← (word~) menu::$9 / (word/signed word/dword/signed dword) 16384 + (word/signed dword/dword~) menu::$10 ← (word~) menu::$9 / (word/signed word/dword/signed dword) $4000 (byte~) menu::$11 ← ((byte)) (word/signed dword/dword~) menu::$10 (byte/word/dword~) menu::$12 ← (byte/signed byte/word/signed word/dword/signed dword) 3 ^ (byte~) menu::$11 *((byte*) CIA2_PORT_A#0) ← (byte/word/dword~) menu::$12 @@ -1103,11 +1103,11 @@ menu: scope:[menu] from main::@2 *((byte*) VIC_CONTROL#0) ← (byte/word/dword~) menu::$14 *((byte*) VIC_CONTROL2#0) ← (byte) VIC_CSEL#0 (word~) menu::$15 ← ((word)) (byte*) menu::SCREEN#0 - (word~) menu::$16 ← (word~) menu::$15 & (word/signed word/dword/signed dword) 16383 - (word/signed dword/dword~) menu::$17 ← (word~) menu::$16 / (byte/signed byte/word/signed word/dword/signed dword) 64 + (word~) menu::$16 ← (word~) menu::$15 & (word/signed word/dword/signed dword) $3fff + (word/signed dword/dword~) menu::$17 ← (word~) menu::$16 / (byte/signed byte/word/signed word/dword/signed dword) $40 (word~) menu::$18 ← ((word)) (byte*) menu::CHARSET#0 - (word~) menu::$19 ← (word~) menu::$18 & (word/signed word/dword/signed dword) 16383 - (word/signed dword/dword~) menu::$20 ← (word~) menu::$19 / (word/signed word/dword/signed dword) 1024 + (word~) menu::$19 ← (word~) menu::$18 & (word/signed word/dword/signed dword) $3fff + (word/signed dword/dword~) menu::$20 ← (word~) menu::$19 / (word/signed word/dword/signed dword) $400 (word/dword~) menu::$21 ← (word/signed dword/dword~) menu::$17 | (word/signed dword/dword~) menu::$20 (byte~) menu::$22 ← ((byte)) (word/dword~) menu::$21 *((byte*) VIC_MEMORY#0) ← (byte~) menu::$22 @@ -1119,9 +1119,9 @@ menu::@1: scope:[menu] from menu menu::@1 (byte*) print_line_cursor#86 ← phi( menu/(byte*) print_line_cursor#100 menu::@1/(byte*) print_line_cursor#86 ) (byte*) print_screen#67 ← phi( menu/(byte*) print_screen#81 menu::@1/(byte*) print_screen#67 ) (byte) menu::i#2 ← phi( menu/(byte) menu::i#0 menu::@1/(byte) menu::i#1 ) - *((byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) - (byte) menu::i#1 ← (byte) menu::i#2 + rangenext(0,15) - (bool~) menu::$23 ← (byte) menu::i#1 != rangelast(0,15) + *((byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) + (byte) menu::i#1 ← (byte) menu::i#2 + rangenext(0,$f) + (bool~) menu::$23 ← (byte) menu::i#1 != rangelast(0,$f) if((bool~) menu::$23) goto menu::@1 to:menu::@18 menu::@18: scope:[menu] from menu::@1 @@ -1139,7 +1139,7 @@ menu::@2: scope:[menu] from menu::@18 menu::@2 (byte*) menu::c#2 ← phi( menu::@18/(byte*) menu::c#0 menu::@2/(byte*) menu::c#1 ) *((byte*) menu::c#2) ← (byte) LIGHT_GREEN#0 (byte*) menu::c#1 ← ++ (byte*) menu::c#2 - (byte*~) menu::$24 ← (byte*) COLS#0 + (word/signed word/dword/signed dword) 1000 + (byte*~) menu::$24 ← (byte*) COLS#0 + (word/signed word/dword/signed dword) $3e8 (bool~) menu::$25 ← (byte*) menu::c#1 != (byte*~) menu::$24 if((bool~) menu::$25) goto menu::@2 to:menu::@19 @@ -1631,7 +1631,7 @@ mode_ctrl::@2: scope:[mode_ctrl] from mode_ctrl::@1 to:mode_ctrl::@4 mode_ctrl::@4: scope:[mode_ctrl] from mode_ctrl::@2 mode_ctrl::@5 (byte) dtv_control#174 ← phi( mode_ctrl::@2/(byte) dtv_control#190 mode_ctrl::@5/(byte) dtv_control#191 ) - (bool~) mode_ctrl::$0 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 255 + (bool~) mode_ctrl::$0 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) $ff if((bool~) mode_ctrl::$0) goto mode_ctrl::@5 to:mode_ctrl::@6 mode_ctrl::@5: scope:[mode_ctrl] from mode_ctrl::@4 @@ -1825,18 +1825,18 @@ mode_ctrl::@30: scope:[mode_ctrl] from mode_ctrl::@14 *((byte*) BORDERCOL#0) ← (byte) mode_ctrl::ctrl#15 to:mode_ctrl::@1 mode_stdchar: scope:[mode_stdchar] from menu::@22 - (byte*) mode_stdchar::SCREEN#0 ← ((byte*)) (word/dword/signed dword) 32768 - (byte*) mode_stdchar::CHARSET#0 ← ((byte*)) (word/dword/signed dword) 36864 - (byte*) mode_stdchar::COLORS#0 ← ((byte*)) (word/dword/signed dword) 55296 + (byte*) mode_stdchar::SCREEN#0 ← ((byte*)) (word/dword/signed dword) $8000 + (byte*) mode_stdchar::CHARSET#0 ← ((byte*)) (word/dword/signed dword) $9000 + (byte*) mode_stdchar::COLORS#0 ← ((byte*)) (word/dword/signed dword) $d800 (dword~) mode_stdchar::$0 ← ((dword)) (byte*) mode_stdchar::CHARSET#0 - (dword~) mode_stdchar::$1 ← (dword~) mode_stdchar::$0 / (dword/signed dword) 65536 + (dword~) mode_stdchar::$1 ← (dword~) mode_stdchar::$0 / (dword/signed dword) $10000 (byte~) mode_stdchar::$2 ← ((byte)) (dword~) mode_stdchar::$1 *((byte*) DTV_GRAPHICS_VIC_BANK#0) ← (byte~) mode_stdchar::$2 - (dword~) mode_stdchar::$3 ← (dword) DTV_COLOR_BANK_DEFAULT#0 / (word/signed word/dword/signed dword) 1024 + (dword~) mode_stdchar::$3 ← (dword) DTV_COLOR_BANK_DEFAULT#0 / (word/signed word/dword/signed dword) $400 (word~) mode_stdchar::$4 ← ((word)) (dword~) mode_stdchar::$3 (byte~) mode_stdchar::$5 ← < (word~) mode_stdchar::$4 *((byte*) DTV_COLOR_BANK_LO#0) ← (byte~) mode_stdchar::$5 - (dword~) mode_stdchar::$6 ← (dword) DTV_COLOR_BANK_DEFAULT#0 / (word/signed word/dword/signed dword) 1024 + (dword~) mode_stdchar::$6 ← (dword) DTV_COLOR_BANK_DEFAULT#0 / (word/signed word/dword/signed dword) $400 (word~) mode_stdchar::$7 ← ((word)) (dword~) mode_stdchar::$6 (byte~) mode_stdchar::$8 ← > (word~) mode_stdchar::$7 *((byte*) DTV_COLOR_BANK_HI#0) ← (byte~) mode_stdchar::$8 @@ -1844,7 +1844,7 @@ mode_stdchar: scope:[mode_stdchar] from menu::@22 *((byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 (word~) mode_stdchar::$9 ← ((word)) (byte*) mode_stdchar::CHARSET#0 - (word/signed dword/dword~) mode_stdchar::$10 ← (word~) mode_stdchar::$9 / (word/signed word/dword/signed dword) 16384 + (word/signed dword/dword~) mode_stdchar::$10 ← (word~) mode_stdchar::$9 / (word/signed word/dword/signed dword) $4000 (byte~) mode_stdchar::$11 ← ((byte)) (word/signed dword/dword~) mode_stdchar::$10 (byte/word/dword~) mode_stdchar::$12 ← (byte/signed byte/word/signed word/dword/signed dword) 3 ^ (byte~) mode_stdchar::$11 *((byte*) CIA2_PORT_A#0) ← (byte/word/dword~) mode_stdchar::$12 @@ -1853,11 +1853,11 @@ mode_stdchar: scope:[mode_stdchar] from menu::@22 *((byte*) VIC_CONTROL#0) ← (byte/word/dword~) mode_stdchar::$14 *((byte*) VIC_CONTROL2#0) ← (byte) VIC_CSEL#0 (word~) mode_stdchar::$15 ← ((word)) (byte*) mode_stdchar::SCREEN#0 - (word~) mode_stdchar::$16 ← (word~) mode_stdchar::$15 & (word/signed word/dword/signed dword) 16383 - (word/signed dword/dword~) mode_stdchar::$17 ← (word~) mode_stdchar::$16 / (byte/signed byte/word/signed word/dword/signed dword) 64 + (word~) mode_stdchar::$16 ← (word~) mode_stdchar::$15 & (word/signed word/dword/signed dword) $3fff + (word/signed dword/dword~) mode_stdchar::$17 ← (word~) mode_stdchar::$16 / (byte/signed byte/word/signed word/dword/signed dword) $40 (word~) mode_stdchar::$18 ← ((word)) (byte*) mode_stdchar::CHARSET#0 - (word~) mode_stdchar::$19 ← (word~) mode_stdchar::$18 & (word/signed word/dword/signed dword) 16383 - (word/signed dword/dword~) mode_stdchar::$20 ← (word~) mode_stdchar::$19 / (word/signed word/dword/signed dword) 1024 + (word~) mode_stdchar::$19 ← (word~) mode_stdchar::$18 & (word/signed word/dword/signed dword) $3fff + (word/signed dword/dword~) mode_stdchar::$20 ← (word~) mode_stdchar::$19 / (word/signed word/dword/signed dword) $400 (word/dword~) mode_stdchar::$21 ← (word/signed dword/dword~) mode_stdchar::$17 | (word/signed dword/dword~) mode_stdchar::$20 (byte~) mode_stdchar::$22 ← ((byte)) (word/dword~) mode_stdchar::$21 *((byte*) VIC_MEMORY#0) ← (byte~) mode_stdchar::$22 @@ -1866,9 +1866,9 @@ mode_stdchar: scope:[mode_stdchar] from menu::@22 mode_stdchar::@1: scope:[mode_stdchar] from mode_stdchar mode_stdchar::@1 (byte) dtv_control#224 ← phi( mode_stdchar/(byte) dtv_control#18 mode_stdchar::@1/(byte) dtv_control#224 ) (byte) mode_stdchar::i#2 ← phi( mode_stdchar/(byte) mode_stdchar::i#0 mode_stdchar::@1/(byte) mode_stdchar::i#1 ) - *((byte*) DTV_PALETTE#0 + (byte) mode_stdchar::i#2) ← *((byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdchar::i#2) - (byte) mode_stdchar::i#1 ← (byte) mode_stdchar::i#2 + rangenext(0,15) - (bool~) mode_stdchar::$23 ← (byte) mode_stdchar::i#1 != rangelast(0,15) + *((byte*) DTV_PALETTE#0 + (byte) mode_stdchar::i#2) ← *((byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdchar::i#2) + (byte) mode_stdchar::i#1 ← (byte) mode_stdchar::i#2 + rangenext(0,$f) + (bool~) mode_stdchar::$23 ← (byte) mode_stdchar::i#1 != rangelast(0,$f) if((bool~) mode_stdchar::$23) goto mode_stdchar::@1 to:mode_stdchar::@4 mode_stdchar::@4: scope:[mode_stdchar] from mode_stdchar::@1 @@ -1893,17 +1893,17 @@ mode_stdchar::@3: scope:[mode_stdchar] from mode_stdchar::@2 mode_stdchar::@3 (byte) mode_stdchar::cy#2 ← phi( mode_stdchar::@2/(byte) mode_stdchar::cy#4 mode_stdchar::@3/(byte) mode_stdchar::cy#2 ) (byte) mode_stdchar::cx#2 ← phi( mode_stdchar::@2/(byte) mode_stdchar::cx#0 mode_stdchar::@3/(byte) mode_stdchar::cx#1 ) (byte~) mode_stdchar::$24 ← (byte) mode_stdchar::cx#2 + (byte) mode_stdchar::cy#2 - (byte~) mode_stdchar::$25 ← (byte~) mode_stdchar::$24 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) mode_stdchar::$25 ← (byte~) mode_stdchar::$24 & (byte/signed byte/word/signed word/dword/signed dword) $f *((byte*) mode_stdchar::col#2) ← (byte~) mode_stdchar::$25 (byte*) mode_stdchar::col#1 ← ++ (byte*) mode_stdchar::col#2 - (byte~) mode_stdchar::$26 ← (byte) mode_stdchar::cy#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) mode_stdchar::$26 ← (byte) mode_stdchar::cy#2 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte~) mode_stdchar::$27 ← (byte~) mode_stdchar::$26 << (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte~) mode_stdchar::$28 ← (byte) mode_stdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) mode_stdchar::$28 ← (byte) mode_stdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte~) mode_stdchar::$29 ← (byte~) mode_stdchar::$27 | (byte~) mode_stdchar::$28 *((byte*) mode_stdchar::ch#2) ← (byte~) mode_stdchar::$29 (byte*) mode_stdchar::ch#1 ← ++ (byte*) mode_stdchar::ch#2 - (byte) mode_stdchar::cx#1 ← (byte) mode_stdchar::cx#2 + rangenext(0,39) - (bool~) mode_stdchar::$30 ← (byte) mode_stdchar::cx#1 != rangelast(0,39) + (byte) mode_stdchar::cx#1 ← (byte) mode_stdchar::cx#2 + rangenext(0,$27) + (bool~) mode_stdchar::$30 ← (byte) mode_stdchar::cx#1 != rangelast(0,$27) if((bool~) mode_stdchar::$30) goto mode_stdchar::@3 to:mode_stdchar::@5 mode_stdchar::@5: scope:[mode_stdchar] from mode_stdchar::@3 @@ -1911,8 +1911,8 @@ mode_stdchar::@5: scope:[mode_stdchar] from mode_stdchar::@3 (byte*) mode_stdchar::ch#4 ← phi( mode_stdchar::@3/(byte*) mode_stdchar::ch#1 ) (byte*) mode_stdchar::col#4 ← phi( mode_stdchar::@3/(byte*) mode_stdchar::col#1 ) (byte) mode_stdchar::cy#3 ← phi( mode_stdchar::@3/(byte) mode_stdchar::cy#2 ) - (byte) mode_stdchar::cy#1 ← (byte) mode_stdchar::cy#3 + rangenext(0,24) - (bool~) mode_stdchar::$31 ← (byte) mode_stdchar::cy#1 != rangelast(0,24) + (byte) mode_stdchar::cy#1 ← (byte) mode_stdchar::cy#3 + rangenext(0,$18) + (bool~) mode_stdchar::$31 ← (byte) mode_stdchar::cy#1 != rangelast(0,$18) if((bool~) mode_stdchar::$31) goto mode_stdchar::@2 to:mode_stdchar::@6 mode_stdchar::@6: scope:[mode_stdchar] from mode_stdchar::@5 @@ -1929,18 +1929,18 @@ mode_stdchar::@return: scope:[mode_stdchar] from mode_stdchar::@7 return to:@return mode_ecmchar: scope:[mode_ecmchar] from menu::@24 - (byte*) mode_ecmchar::SCREEN#0 ← ((byte*)) (word/dword/signed dword) 32768 - (byte*) mode_ecmchar::CHARSET#0 ← ((byte*)) (word/dword/signed dword) 36864 - (byte*) mode_ecmchar::COLORS#0 ← ((byte*)) (word/dword/signed dword) 55296 + (byte*) mode_ecmchar::SCREEN#0 ← ((byte*)) (word/dword/signed dword) $8000 + (byte*) mode_ecmchar::CHARSET#0 ← ((byte*)) (word/dword/signed dword) $9000 + (byte*) mode_ecmchar::COLORS#0 ← ((byte*)) (word/dword/signed dword) $d800 (dword~) mode_ecmchar::$0 ← ((dword)) (byte*) mode_ecmchar::CHARSET#0 - (dword~) mode_ecmchar::$1 ← (dword~) mode_ecmchar::$0 / (dword/signed dword) 65536 + (dword~) mode_ecmchar::$1 ← (dword~) mode_ecmchar::$0 / (dword/signed dword) $10000 (byte~) mode_ecmchar::$2 ← ((byte)) (dword~) mode_ecmchar::$1 *((byte*) DTV_GRAPHICS_VIC_BANK#0) ← (byte~) mode_ecmchar::$2 - (dword~) mode_ecmchar::$3 ← (dword) DTV_COLOR_BANK_DEFAULT#0 / (word/signed word/dword/signed dword) 1024 + (dword~) mode_ecmchar::$3 ← (dword) DTV_COLOR_BANK_DEFAULT#0 / (word/signed word/dword/signed dword) $400 (word~) mode_ecmchar::$4 ← ((word)) (dword~) mode_ecmchar::$3 (byte~) mode_ecmchar::$5 ← < (word~) mode_ecmchar::$4 *((byte*) DTV_COLOR_BANK_LO#0) ← (byte~) mode_ecmchar::$5 - (dword~) mode_ecmchar::$6 ← (dword) DTV_COLOR_BANK_DEFAULT#0 / (word/signed word/dword/signed dword) 1024 + (dword~) mode_ecmchar::$6 ← (dword) DTV_COLOR_BANK_DEFAULT#0 / (word/signed word/dword/signed dword) $400 (word~) mode_ecmchar::$7 ← ((word)) (dword~) mode_ecmchar::$6 (byte~) mode_ecmchar::$8 ← > (word~) mode_ecmchar::$7 *((byte*) DTV_COLOR_BANK_HI#0) ← (byte~) mode_ecmchar::$8 @@ -1948,7 +1948,7 @@ mode_ecmchar: scope:[mode_ecmchar] from menu::@24 *((byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 (word~) mode_ecmchar::$9 ← ((word)) (byte*) mode_ecmchar::CHARSET#0 - (word/signed dword/dword~) mode_ecmchar::$10 ← (word~) mode_ecmchar::$9 / (word/signed word/dword/signed dword) 16384 + (word/signed dword/dword~) mode_ecmchar::$10 ← (word~) mode_ecmchar::$9 / (word/signed word/dword/signed dword) $4000 (byte~) mode_ecmchar::$11 ← ((byte)) (word/signed dword/dword~) mode_ecmchar::$10 (byte/word/dword~) mode_ecmchar::$12 ← (byte/signed byte/word/signed word/dword/signed dword) 3 ^ (byte~) mode_ecmchar::$11 *((byte*) CIA2_PORT_A#0) ← (byte/word/dword~) mode_ecmchar::$12 @@ -1958,11 +1958,11 @@ mode_ecmchar: scope:[mode_ecmchar] from menu::@24 *((byte*) VIC_CONTROL#0) ← (byte/word/dword~) mode_ecmchar::$15 *((byte*) VIC_CONTROL2#0) ← (byte) VIC_CSEL#0 (word~) mode_ecmchar::$16 ← ((word)) (byte*) mode_ecmchar::SCREEN#0 - (word~) mode_ecmchar::$17 ← (word~) mode_ecmchar::$16 & (word/signed word/dword/signed dword) 16383 - (word/signed dword/dword~) mode_ecmchar::$18 ← (word~) mode_ecmchar::$17 / (byte/signed byte/word/signed word/dword/signed dword) 64 + (word~) mode_ecmchar::$17 ← (word~) mode_ecmchar::$16 & (word/signed word/dword/signed dword) $3fff + (word/signed dword/dword~) mode_ecmchar::$18 ← (word~) mode_ecmchar::$17 / (byte/signed byte/word/signed word/dword/signed dword) $40 (word~) mode_ecmchar::$19 ← ((word)) (byte*) mode_ecmchar::CHARSET#0 - (word~) mode_ecmchar::$20 ← (word~) mode_ecmchar::$19 & (word/signed word/dword/signed dword) 16383 - (word/signed dword/dword~) mode_ecmchar::$21 ← (word~) mode_ecmchar::$20 / (word/signed word/dword/signed dword) 1024 + (word~) mode_ecmchar::$20 ← (word~) mode_ecmchar::$19 & (word/signed word/dword/signed dword) $3fff + (word/signed dword/dword~) mode_ecmchar::$21 ← (word~) mode_ecmchar::$20 / (word/signed word/dword/signed dword) $400 (word/dword~) mode_ecmchar::$22 ← (word/signed dword/dword~) mode_ecmchar::$18 | (word/signed dword/dword~) mode_ecmchar::$21 (byte~) mode_ecmchar::$23 ← ((byte)) (word/dword~) mode_ecmchar::$22 *((byte*) VIC_MEMORY#0) ← (byte~) mode_ecmchar::$23 @@ -1971,9 +1971,9 @@ mode_ecmchar: scope:[mode_ecmchar] from menu::@24 mode_ecmchar::@1: scope:[mode_ecmchar] from mode_ecmchar mode_ecmchar::@1 (byte) dtv_control#225 ← phi( mode_ecmchar/(byte) dtv_control#21 mode_ecmchar::@1/(byte) dtv_control#225 ) (byte) mode_ecmchar::i#2 ← phi( mode_ecmchar/(byte) mode_ecmchar::i#0 mode_ecmchar::@1/(byte) mode_ecmchar::i#1 ) - *((byte*) DTV_PALETTE#0 + (byte) mode_ecmchar::i#2) ← *((byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_ecmchar::i#2) - (byte) mode_ecmchar::i#1 ← (byte) mode_ecmchar::i#2 + rangenext(0,15) - (bool~) mode_ecmchar::$24 ← (byte) mode_ecmchar::i#1 != rangelast(0,15) + *((byte*) DTV_PALETTE#0 + (byte) mode_ecmchar::i#2) ← *((byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_ecmchar::i#2) + (byte) mode_ecmchar::i#1 ← (byte) mode_ecmchar::i#2 + rangenext(0,$f) + (bool~) mode_ecmchar::$24 ← (byte) mode_ecmchar::i#1 != rangelast(0,$f) if((bool~) mode_ecmchar::$24) goto mode_ecmchar::@1 to:mode_ecmchar::@4 mode_ecmchar::@4: scope:[mode_ecmchar] from mode_ecmchar::@1 @@ -2001,17 +2001,17 @@ mode_ecmchar::@3: scope:[mode_ecmchar] from mode_ecmchar::@2 mode_ecmchar::@3 (byte) mode_ecmchar::cy#2 ← phi( mode_ecmchar::@2/(byte) mode_ecmchar::cy#4 mode_ecmchar::@3/(byte) mode_ecmchar::cy#2 ) (byte) mode_ecmchar::cx#2 ← phi( mode_ecmchar::@2/(byte) mode_ecmchar::cx#0 mode_ecmchar::@3/(byte) mode_ecmchar::cx#1 ) (byte~) mode_ecmchar::$25 ← (byte) mode_ecmchar::cx#2 + (byte) mode_ecmchar::cy#2 - (byte~) mode_ecmchar::$26 ← (byte~) mode_ecmchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) mode_ecmchar::$26 ← (byte~) mode_ecmchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) $f *((byte*) mode_ecmchar::col#2) ← (byte~) mode_ecmchar::$26 (byte*) mode_ecmchar::col#1 ← ++ (byte*) mode_ecmchar::col#2 - (byte~) mode_ecmchar::$27 ← (byte) mode_ecmchar::cy#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) mode_ecmchar::$27 ← (byte) mode_ecmchar::cy#2 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte~) mode_ecmchar::$28 ← (byte~) mode_ecmchar::$27 << (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte~) mode_ecmchar::$29 ← (byte) mode_ecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) mode_ecmchar::$29 ← (byte) mode_ecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte~) mode_ecmchar::$30 ← (byte~) mode_ecmchar::$28 | (byte~) mode_ecmchar::$29 *((byte*) mode_ecmchar::ch#2) ← (byte~) mode_ecmchar::$30 (byte*) mode_ecmchar::ch#1 ← ++ (byte*) mode_ecmchar::ch#2 - (byte) mode_ecmchar::cx#1 ← (byte) mode_ecmchar::cx#2 + rangenext(0,39) - (bool~) mode_ecmchar::$31 ← (byte) mode_ecmchar::cx#1 != rangelast(0,39) + (byte) mode_ecmchar::cx#1 ← (byte) mode_ecmchar::cx#2 + rangenext(0,$27) + (bool~) mode_ecmchar::$31 ← (byte) mode_ecmchar::cx#1 != rangelast(0,$27) if((bool~) mode_ecmchar::$31) goto mode_ecmchar::@3 to:mode_ecmchar::@5 mode_ecmchar::@5: scope:[mode_ecmchar] from mode_ecmchar::@3 @@ -2019,8 +2019,8 @@ mode_ecmchar::@5: scope:[mode_ecmchar] from mode_ecmchar::@3 (byte*) mode_ecmchar::ch#4 ← phi( mode_ecmchar::@3/(byte*) mode_ecmchar::ch#1 ) (byte*) mode_ecmchar::col#4 ← phi( mode_ecmchar::@3/(byte*) mode_ecmchar::col#1 ) (byte) mode_ecmchar::cy#3 ← phi( mode_ecmchar::@3/(byte) mode_ecmchar::cy#2 ) - (byte) mode_ecmchar::cy#1 ← (byte) mode_ecmchar::cy#3 + rangenext(0,24) - (bool~) mode_ecmchar::$32 ← (byte) mode_ecmchar::cy#1 != rangelast(0,24) + (byte) mode_ecmchar::cy#1 ← (byte) mode_ecmchar::cy#3 + rangenext(0,$18) + (bool~) mode_ecmchar::$32 ← (byte) mode_ecmchar::cy#1 != rangelast(0,$18) if((bool~) mode_ecmchar::$32) goto mode_ecmchar::@2 to:mode_ecmchar::@6 mode_ecmchar::@6: scope:[mode_ecmchar] from mode_ecmchar::@5 @@ -2037,18 +2037,18 @@ mode_ecmchar::@return: scope:[mode_ecmchar] from mode_ecmchar::@7 return to:@return mode_mcchar: scope:[mode_mcchar] from menu::@26 - (byte*) mode_mcchar::SCREEN#0 ← ((byte*)) (word/dword/signed dword) 32768 - (byte*) mode_mcchar::CHARSET#0 ← ((byte*)) (word/dword/signed dword) 36864 - (byte*) mode_mcchar::COLORS#0 ← ((byte*)) (word/dword/signed dword) 55296 + (byte*) mode_mcchar::SCREEN#0 ← ((byte*)) (word/dword/signed dword) $8000 + (byte*) mode_mcchar::CHARSET#0 ← ((byte*)) (word/dword/signed dword) $9000 + (byte*) mode_mcchar::COLORS#0 ← ((byte*)) (word/dword/signed dword) $d800 (dword~) mode_mcchar::$0 ← ((dword)) (byte*) mode_mcchar::CHARSET#0 - (dword~) mode_mcchar::$1 ← (dword~) mode_mcchar::$0 / (dword/signed dword) 65536 + (dword~) mode_mcchar::$1 ← (dword~) mode_mcchar::$0 / (dword/signed dword) $10000 (byte~) mode_mcchar::$2 ← ((byte)) (dword~) mode_mcchar::$1 *((byte*) DTV_GRAPHICS_VIC_BANK#0) ← (byte~) mode_mcchar::$2 - (dword~) mode_mcchar::$3 ← (dword) DTV_COLOR_BANK_DEFAULT#0 / (word/signed word/dword/signed dword) 1024 + (dword~) mode_mcchar::$3 ← (dword) DTV_COLOR_BANK_DEFAULT#0 / (word/signed word/dword/signed dword) $400 (word~) mode_mcchar::$4 ← ((word)) (dword~) mode_mcchar::$3 (byte~) mode_mcchar::$5 ← < (word~) mode_mcchar::$4 *((byte*) DTV_COLOR_BANK_LO#0) ← (byte~) mode_mcchar::$5 - (dword~) mode_mcchar::$6 ← (dword) DTV_COLOR_BANK_DEFAULT#0 / (word/signed word/dword/signed dword) 1024 + (dword~) mode_mcchar::$6 ← (dword) DTV_COLOR_BANK_DEFAULT#0 / (word/signed word/dword/signed dword) $400 (word~) mode_mcchar::$7 ← ((word)) (dword~) mode_mcchar::$6 (byte~) mode_mcchar::$8 ← > (word~) mode_mcchar::$7 *((byte*) DTV_COLOR_BANK_HI#0) ← (byte~) mode_mcchar::$8 @@ -2056,7 +2056,7 @@ mode_mcchar: scope:[mode_mcchar] from menu::@26 *((byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 (word~) mode_mcchar::$9 ← ((word)) (byte*) mode_mcchar::CHARSET#0 - (word/signed dword/dword~) mode_mcchar::$10 ← (word~) mode_mcchar::$9 / (word/signed word/dword/signed dword) 16384 + (word/signed dword/dword~) mode_mcchar::$10 ← (word~) mode_mcchar::$9 / (word/signed word/dword/signed dword) $4000 (byte~) mode_mcchar::$11 ← ((byte)) (word/signed dword/dword~) mode_mcchar::$10 (byte/word/dword~) mode_mcchar::$12 ← (byte/signed byte/word/signed word/dword/signed dword) 3 ^ (byte~) mode_mcchar::$11 *((byte*) CIA2_PORT_A#0) ← (byte/word/dword~) mode_mcchar::$12 @@ -2066,11 +2066,11 @@ mode_mcchar: scope:[mode_mcchar] from menu::@26 (byte~) mode_mcchar::$15 ← (byte) VIC_CSEL#0 | (byte) VIC_MCM#0 *((byte*) VIC_CONTROL2#0) ← (byte~) mode_mcchar::$15 (word~) mode_mcchar::$16 ← ((word)) (byte*) mode_mcchar::SCREEN#0 - (word~) mode_mcchar::$17 ← (word~) mode_mcchar::$16 & (word/signed word/dword/signed dword) 16383 - (word/signed dword/dword~) mode_mcchar::$18 ← (word~) mode_mcchar::$17 / (byte/signed byte/word/signed word/dword/signed dword) 64 + (word~) mode_mcchar::$17 ← (word~) mode_mcchar::$16 & (word/signed word/dword/signed dword) $3fff + (word/signed dword/dword~) mode_mcchar::$18 ← (word~) mode_mcchar::$17 / (byte/signed byte/word/signed word/dword/signed dword) $40 (word~) mode_mcchar::$19 ← ((word)) (byte*) mode_mcchar::CHARSET#0 - (word~) mode_mcchar::$20 ← (word~) mode_mcchar::$19 & (word/signed word/dword/signed dword) 16383 - (word/signed dword/dword~) mode_mcchar::$21 ← (word~) mode_mcchar::$20 / (word/signed word/dword/signed dword) 1024 + (word~) mode_mcchar::$20 ← (word~) mode_mcchar::$19 & (word/signed word/dword/signed dword) $3fff + (word/signed dword/dword~) mode_mcchar::$21 ← (word~) mode_mcchar::$20 / (word/signed word/dword/signed dword) $400 (word/dword~) mode_mcchar::$22 ← (word/signed dword/dword~) mode_mcchar::$18 | (word/signed dword/dword~) mode_mcchar::$21 (byte~) mode_mcchar::$23 ← ((byte)) (word/dword~) mode_mcchar::$22 *((byte*) VIC_MEMORY#0) ← (byte~) mode_mcchar::$23 @@ -2079,9 +2079,9 @@ mode_mcchar: scope:[mode_mcchar] from menu::@26 mode_mcchar::@1: scope:[mode_mcchar] from mode_mcchar mode_mcchar::@1 (byte) dtv_control#226 ← phi( mode_mcchar/(byte) dtv_control#24 mode_mcchar::@1/(byte) dtv_control#226 ) (byte) mode_mcchar::i#2 ← phi( mode_mcchar/(byte) mode_mcchar::i#0 mode_mcchar::@1/(byte) mode_mcchar::i#1 ) - *((byte*) DTV_PALETTE#0 + (byte) mode_mcchar::i#2) ← *((byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_mcchar::i#2) - (byte) mode_mcchar::i#1 ← (byte) mode_mcchar::i#2 + rangenext(0,15) - (bool~) mode_mcchar::$24 ← (byte) mode_mcchar::i#1 != rangelast(0,15) + *((byte*) DTV_PALETTE#0 + (byte) mode_mcchar::i#2) ← *((byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_mcchar::i#2) + (byte) mode_mcchar::i#1 ← (byte) mode_mcchar::i#2 + rangenext(0,$f) + (bool~) mode_mcchar::$24 ← (byte) mode_mcchar::i#1 != rangelast(0,$f) if((bool~) mode_mcchar::$24) goto mode_mcchar::@1 to:mode_mcchar::@4 mode_mcchar::@4: scope:[mode_mcchar] from mode_mcchar::@1 @@ -2108,17 +2108,17 @@ mode_mcchar::@3: scope:[mode_mcchar] from mode_mcchar::@2 mode_mcchar::@3 (byte) mode_mcchar::cy#2 ← phi( mode_mcchar::@2/(byte) mode_mcchar::cy#4 mode_mcchar::@3/(byte) mode_mcchar::cy#2 ) (byte) mode_mcchar::cx#2 ← phi( mode_mcchar::@2/(byte) mode_mcchar::cx#0 mode_mcchar::@3/(byte) mode_mcchar::cx#1 ) (byte~) mode_mcchar::$25 ← (byte) mode_mcchar::cx#2 + (byte) mode_mcchar::cy#2 - (byte~) mode_mcchar::$26 ← (byte~) mode_mcchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) mode_mcchar::$26 ← (byte~) mode_mcchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) $f *((byte*) mode_mcchar::col#2) ← (byte~) mode_mcchar::$26 (byte*) mode_mcchar::col#1 ← ++ (byte*) mode_mcchar::col#2 - (byte~) mode_mcchar::$27 ← (byte) mode_mcchar::cy#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) mode_mcchar::$27 ← (byte) mode_mcchar::cy#2 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte~) mode_mcchar::$28 ← (byte~) mode_mcchar::$27 << (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte~) mode_mcchar::$29 ← (byte) mode_mcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) mode_mcchar::$29 ← (byte) mode_mcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte~) mode_mcchar::$30 ← (byte~) mode_mcchar::$28 | (byte~) mode_mcchar::$29 *((byte*) mode_mcchar::ch#2) ← (byte~) mode_mcchar::$30 (byte*) mode_mcchar::ch#1 ← ++ (byte*) mode_mcchar::ch#2 - (byte) mode_mcchar::cx#1 ← (byte) mode_mcchar::cx#2 + rangenext(0,39) - (bool~) mode_mcchar::$31 ← (byte) mode_mcchar::cx#1 != rangelast(0,39) + (byte) mode_mcchar::cx#1 ← (byte) mode_mcchar::cx#2 + rangenext(0,$27) + (bool~) mode_mcchar::$31 ← (byte) mode_mcchar::cx#1 != rangelast(0,$27) if((bool~) mode_mcchar::$31) goto mode_mcchar::@3 to:mode_mcchar::@5 mode_mcchar::@5: scope:[mode_mcchar] from mode_mcchar::@3 @@ -2126,8 +2126,8 @@ mode_mcchar::@5: scope:[mode_mcchar] from mode_mcchar::@3 (byte*) mode_mcchar::ch#4 ← phi( mode_mcchar::@3/(byte*) mode_mcchar::ch#1 ) (byte*) mode_mcchar::col#4 ← phi( mode_mcchar::@3/(byte*) mode_mcchar::col#1 ) (byte) mode_mcchar::cy#3 ← phi( mode_mcchar::@3/(byte) mode_mcchar::cy#2 ) - (byte) mode_mcchar::cy#1 ← (byte) mode_mcchar::cy#3 + rangenext(0,24) - (bool~) mode_mcchar::$32 ← (byte) mode_mcchar::cy#1 != rangelast(0,24) + (byte) mode_mcchar::cy#1 ← (byte) mode_mcchar::cy#3 + rangenext(0,$18) + (bool~) mode_mcchar::$32 ← (byte) mode_mcchar::cy#1 != rangelast(0,$18) if((bool~) mode_mcchar::$32) goto mode_mcchar::@2 to:mode_mcchar::@6 mode_mcchar::@6: scope:[mode_mcchar] from mode_mcchar::@5 @@ -2144,17 +2144,17 @@ mode_mcchar::@return: scope:[mode_mcchar] from mode_mcchar::@7 return to:@return mode_stdbitmap: scope:[mode_stdbitmap] from menu::@28 - (byte*) mode_stdbitmap::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 16384 - (byte*) mode_stdbitmap::BITMAP#0 ← ((byte*)) (word/signed word/dword/signed dword) 24576 + (byte*) mode_stdbitmap::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $4000 + (byte*) mode_stdbitmap::BITMAP#0 ← ((byte*)) (word/signed word/dword/signed dword) $6000 (dword~) mode_stdbitmap::$0 ← ((dword)) (byte*) mode_stdbitmap::BITMAP#0 - (dword~) mode_stdbitmap::$1 ← (dword~) mode_stdbitmap::$0 / (dword/signed dword) 65536 + (dword~) mode_stdbitmap::$1 ← (dword~) mode_stdbitmap::$0 / (dword/signed dword) $10000 (byte~) mode_stdbitmap::$2 ← ((byte)) (dword~) mode_stdbitmap::$1 *((byte*) DTV_GRAPHICS_VIC_BANK#0) ← (byte~) mode_stdbitmap::$2 (byte) dtv_control#27 ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 (word~) mode_stdbitmap::$3 ← ((word)) (byte*) mode_stdbitmap::BITMAP#0 - (word/signed dword/dword~) mode_stdbitmap::$4 ← (word~) mode_stdbitmap::$3 / (word/signed word/dword/signed dword) 16384 + (word/signed dword/dword~) mode_stdbitmap::$4 ← (word~) mode_stdbitmap::$3 / (word/signed word/dword/signed dword) $4000 (byte~) mode_stdbitmap::$5 ← ((byte)) (word/signed dword/dword~) mode_stdbitmap::$4 (byte/word/dword~) mode_stdbitmap::$6 ← (byte/signed byte/word/signed word/dword/signed dword) 3 ^ (byte~) mode_stdbitmap::$5 *((byte*) CIA2_PORT_A#0) ← (byte/word/dword~) mode_stdbitmap::$6 @@ -2164,11 +2164,11 @@ mode_stdbitmap: scope:[mode_stdbitmap] from menu::@28 *((byte*) VIC_CONTROL#0) ← (byte/word/dword~) mode_stdbitmap::$9 *((byte*) VIC_CONTROL2#0) ← (byte) VIC_CSEL#0 (word~) mode_stdbitmap::$10 ← ((word)) (byte*) mode_stdbitmap::SCREEN#0 - (word~) mode_stdbitmap::$11 ← (word~) mode_stdbitmap::$10 & (word/signed word/dword/signed dword) 16383 - (word/signed dword/dword~) mode_stdbitmap::$12 ← (word~) mode_stdbitmap::$11 / (byte/signed byte/word/signed word/dword/signed dword) 64 + (word~) mode_stdbitmap::$11 ← (word~) mode_stdbitmap::$10 & (word/signed word/dword/signed dword) $3fff + (word/signed dword/dword~) mode_stdbitmap::$12 ← (word~) mode_stdbitmap::$11 / (byte/signed byte/word/signed word/dword/signed dword) $40 (word~) mode_stdbitmap::$13 ← ((word)) (byte*) mode_stdbitmap::BITMAP#0 - (word~) mode_stdbitmap::$14 ← (word~) mode_stdbitmap::$13 & (word/signed word/dword/signed dword) 16383 - (word/signed dword/dword~) mode_stdbitmap::$15 ← (word~) mode_stdbitmap::$14 / (word/signed word/dword/signed dword) 1024 + (word~) mode_stdbitmap::$14 ← (word~) mode_stdbitmap::$13 & (word/signed word/dword/signed dword) $3fff + (word/signed dword/dword~) mode_stdbitmap::$15 ← (word~) mode_stdbitmap::$14 / (word/signed word/dword/signed dword) $400 (word/dword~) mode_stdbitmap::$16 ← (word/signed dword/dword~) mode_stdbitmap::$12 | (word/signed dword/dword~) mode_stdbitmap::$15 (byte~) mode_stdbitmap::$17 ← ((byte)) (word/dword~) mode_stdbitmap::$16 *((byte*) VIC_MEMORY#0) ← (byte~) mode_stdbitmap::$17 @@ -2177,9 +2177,9 @@ mode_stdbitmap: scope:[mode_stdbitmap] from menu::@28 mode_stdbitmap::@1: scope:[mode_stdbitmap] from mode_stdbitmap mode_stdbitmap::@1 (byte) dtv_control#272 ← phi( mode_stdbitmap/(byte) dtv_control#27 mode_stdbitmap::@1/(byte) dtv_control#272 ) (byte) mode_stdbitmap::i#2 ← phi( mode_stdbitmap/(byte) mode_stdbitmap::i#0 mode_stdbitmap::@1/(byte) mode_stdbitmap::i#1 ) - *((byte*) DTV_PALETTE#0 + (byte) mode_stdbitmap::i#2) ← *((byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdbitmap::i#2) - (byte) mode_stdbitmap::i#1 ← (byte) mode_stdbitmap::i#2 + rangenext(0,15) - (bool~) mode_stdbitmap::$18 ← (byte) mode_stdbitmap::i#1 != rangelast(0,15) + *((byte*) DTV_PALETTE#0 + (byte) mode_stdbitmap::i#2) ← *((byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdbitmap::i#2) + (byte) mode_stdbitmap::i#1 ← (byte) mode_stdbitmap::i#2 + rangenext(0,$f) + (bool~) mode_stdbitmap::$18 ← (byte) mode_stdbitmap::i#1 != rangelast(0,$f) if((bool~) mode_stdbitmap::$18) goto mode_stdbitmap::@1 to:mode_stdbitmap::@5 mode_stdbitmap::@5: scope:[mode_stdbitmap] from mode_stdbitmap::@1 @@ -2201,24 +2201,24 @@ mode_stdbitmap::@3: scope:[mode_stdbitmap] from mode_stdbitmap::@2 mode_stdbitm (byte) mode_stdbitmap::cy#2 ← phi( mode_stdbitmap::@2/(byte) mode_stdbitmap::cy#4 mode_stdbitmap::@3/(byte) mode_stdbitmap::cy#2 ) (byte) mode_stdbitmap::cx#2 ← phi( mode_stdbitmap::@2/(byte) mode_stdbitmap::cx#0 mode_stdbitmap::@3/(byte) mode_stdbitmap::cx#1 ) (byte~) mode_stdbitmap::$19 ← (byte) mode_stdbitmap::cx#2 + (byte) mode_stdbitmap::cy#2 - (byte~) mode_stdbitmap::$20 ← (byte~) mode_stdbitmap::$19 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) mode_stdbitmap::$20 ← (byte~) mode_stdbitmap::$19 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte) mode_stdbitmap::col#0 ← (byte~) mode_stdbitmap::$20 - (byte/signed word/word/dword/signed dword~) mode_stdbitmap::$21 ← (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) mode_stdbitmap::col#0 + (byte/signed word/word/dword/signed dword~) mode_stdbitmap::$21 ← (byte/signed byte/word/signed word/dword/signed dword) $f - (byte) mode_stdbitmap::col#0 (byte) mode_stdbitmap::col2#0 ← (byte/signed word/word/dword/signed dword~) mode_stdbitmap::$21 (byte~) mode_stdbitmap::$22 ← (byte) mode_stdbitmap::col#0 << (byte/signed byte/word/signed word/dword/signed dword) 4 (byte~) mode_stdbitmap::$23 ← (byte~) mode_stdbitmap::$22 | (byte) mode_stdbitmap::col2#0 *((byte*) mode_stdbitmap::ch#2) ← (byte~) mode_stdbitmap::$23 (byte*) mode_stdbitmap::ch#1 ← ++ (byte*) mode_stdbitmap::ch#2 - (byte) mode_stdbitmap::cx#1 ← (byte) mode_stdbitmap::cx#2 + rangenext(0,39) - (bool~) mode_stdbitmap::$24 ← (byte) mode_stdbitmap::cx#1 != rangelast(0,39) + (byte) mode_stdbitmap::cx#1 ← (byte) mode_stdbitmap::cx#2 + rangenext(0,$27) + (bool~) mode_stdbitmap::$24 ← (byte) mode_stdbitmap::cx#1 != rangelast(0,$27) if((bool~) mode_stdbitmap::$24) goto mode_stdbitmap::@3 to:mode_stdbitmap::@6 mode_stdbitmap::@6: scope:[mode_stdbitmap] from mode_stdbitmap::@3 (byte) dtv_control#240 ← phi( mode_stdbitmap::@3/(byte) dtv_control#248 ) (byte*) mode_stdbitmap::ch#4 ← phi( mode_stdbitmap::@3/(byte*) mode_stdbitmap::ch#1 ) (byte) mode_stdbitmap::cy#3 ← phi( mode_stdbitmap::@3/(byte) mode_stdbitmap::cy#2 ) - (byte) mode_stdbitmap::cy#1 ← (byte) mode_stdbitmap::cy#3 + rangenext(0,24) - (bool~) mode_stdbitmap::$25 ← (byte) mode_stdbitmap::cy#1 != rangelast(0,24) + (byte) mode_stdbitmap::cy#1 ← (byte) mode_stdbitmap::cy#3 + rangenext(0,$18) + (bool~) mode_stdbitmap::$25 ← (byte) mode_stdbitmap::cy#1 != rangelast(0,$18) if((bool~) mode_stdbitmap::$25) goto mode_stdbitmap::@2 to:mode_stdbitmap::@7 mode_stdbitmap::@7: scope:[mode_stdbitmap] from mode_stdbitmap::@6 @@ -2232,8 +2232,8 @@ mode_stdbitmap::@9: scope:[mode_stdbitmap] from mode_stdbitmap::@7 to:mode_stdbitmap::@10 mode_stdbitmap::@10: scope:[mode_stdbitmap] from mode_stdbitmap::@9 (byte) dtv_control#196 ← phi( mode_stdbitmap::@9/(byte) dtv_control#211 ) - (byte[]) mode_stdbitmap::lines_x#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 128, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 128, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 128 } - (byte[]) mode_stdbitmap::lines_y#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 199, (byte/word/signed word/dword/signed dword) 199, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/word/signed word/dword/signed dword) 199, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/signed byte/word/signed word/dword/signed dword) 0 } + (byte[]) mode_stdbitmap::lines_x#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $ff, (byte/word/signed word/dword/signed dword) $ff, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $80, (byte/word/signed word/dword/signed dword) $ff, (byte/word/signed word/dword/signed dword) $80, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $80 } + (byte[]) mode_stdbitmap::lines_y#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $c7, (byte/word/signed word/dword/signed dword) $c7, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $64, (byte/word/signed word/dword/signed dword) $c7, (byte/signed byte/word/signed word/dword/signed dword) $64, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte) mode_stdbitmap::lines_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 (byte) mode_stdbitmap::l#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:mode_stdbitmap::@4 @@ -2271,18 +2271,18 @@ mode_stdbitmap::@return: scope:[mode_stdbitmap] from mode_stdbitmap::@12 return to:@return mode_hicolstdchar: scope:[mode_hicolstdchar] from menu::@30 - (byte*) mode_hicolstdchar::SCREEN#0 ← ((byte*)) (word/dword/signed dword) 32768 - (byte*) mode_hicolstdchar::CHARSET#0 ← ((byte*)) (word/dword/signed dword) 36864 - (byte*) mode_hicolstdchar::COLORS#0 ← ((byte*)) (word/dword/signed dword) 33792 + (byte*) mode_hicolstdchar::SCREEN#0 ← ((byte*)) (word/dword/signed dword) $8000 + (byte*) mode_hicolstdchar::CHARSET#0 ← ((byte*)) (word/dword/signed dword) $9000 + (byte*) mode_hicolstdchar::COLORS#0 ← ((byte*)) (word/dword/signed dword) $8400 (dword~) mode_hicolstdchar::$0 ← ((dword)) (byte*) mode_hicolstdchar::CHARSET#0 - (dword~) mode_hicolstdchar::$1 ← (dword~) mode_hicolstdchar::$0 / (dword/signed dword) 65536 + (dword~) mode_hicolstdchar::$1 ← (dword~) mode_hicolstdchar::$0 / (dword/signed dword) $10000 (byte~) mode_hicolstdchar::$2 ← ((byte)) (dword~) mode_hicolstdchar::$1 *((byte*) DTV_GRAPHICS_VIC_BANK#0) ← (byte~) mode_hicolstdchar::$2 - (byte*~) mode_hicolstdchar::$3 ← (byte*) mode_hicolstdchar::COLORS#0 / (word/signed word/dword/signed dword) 1024 + (byte*~) mode_hicolstdchar::$3 ← (byte*) mode_hicolstdchar::COLORS#0 / (word/signed word/dword/signed dword) $400 (word~) mode_hicolstdchar::$4 ← ((word)) (byte*~) mode_hicolstdchar::$3 (byte~) mode_hicolstdchar::$5 ← < (word~) mode_hicolstdchar::$4 *((byte*) DTV_COLOR_BANK_LO#0) ← (byte~) mode_hicolstdchar::$5 - (byte*~) mode_hicolstdchar::$6 ← (byte*) mode_hicolstdchar::COLORS#0 / (word/signed word/dword/signed dword) 1024 + (byte*~) mode_hicolstdchar::$6 ← (byte*) mode_hicolstdchar::COLORS#0 / (word/signed word/dword/signed dword) $400 (word~) mode_hicolstdchar::$7 ← ((word)) (byte*~) mode_hicolstdchar::$6 (byte~) mode_hicolstdchar::$8 ← > (word~) mode_hicolstdchar::$7 *((byte*) DTV_COLOR_BANK_HI#0) ← (byte~) mode_hicolstdchar::$8 @@ -2290,7 +2290,7 @@ mode_hicolstdchar: scope:[mode_hicolstdchar] from menu::@30 *((byte*) DTV_CONTROL#0) ← (byte) DTV_HIGHCOLOR#0 *((byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 (word~) mode_hicolstdchar::$9 ← ((word)) (byte*) mode_hicolstdchar::CHARSET#0 - (word/signed dword/dword~) mode_hicolstdchar::$10 ← (word~) mode_hicolstdchar::$9 / (word/signed word/dword/signed dword) 16384 + (word/signed dword/dword~) mode_hicolstdchar::$10 ← (word~) mode_hicolstdchar::$9 / (word/signed word/dword/signed dword) $4000 (byte~) mode_hicolstdchar::$11 ← ((byte)) (word/signed dword/dword~) mode_hicolstdchar::$10 (byte/word/dword~) mode_hicolstdchar::$12 ← (byte/signed byte/word/signed word/dword/signed dword) 3 ^ (byte~) mode_hicolstdchar::$11 *((byte*) CIA2_PORT_A#0) ← (byte/word/dword~) mode_hicolstdchar::$12 @@ -2299,11 +2299,11 @@ mode_hicolstdchar: scope:[mode_hicolstdchar] from menu::@30 *((byte*) VIC_CONTROL#0) ← (byte/word/dword~) mode_hicolstdchar::$14 *((byte*) VIC_CONTROL2#0) ← (byte) VIC_CSEL#0 (word~) mode_hicolstdchar::$15 ← ((word)) (byte*) mode_hicolstdchar::SCREEN#0 - (word~) mode_hicolstdchar::$16 ← (word~) mode_hicolstdchar::$15 & (word/signed word/dword/signed dword) 16383 - (word/signed dword/dword~) mode_hicolstdchar::$17 ← (word~) mode_hicolstdchar::$16 / (byte/signed byte/word/signed word/dword/signed dword) 64 + (word~) mode_hicolstdchar::$16 ← (word~) mode_hicolstdchar::$15 & (word/signed word/dword/signed dword) $3fff + (word/signed dword/dword~) mode_hicolstdchar::$17 ← (word~) mode_hicolstdchar::$16 / (byte/signed byte/word/signed word/dword/signed dword) $40 (word~) mode_hicolstdchar::$18 ← ((word)) (byte*) mode_hicolstdchar::CHARSET#0 - (word~) mode_hicolstdchar::$19 ← (word~) mode_hicolstdchar::$18 & (word/signed word/dword/signed dword) 16383 - (word/signed dword/dword~) mode_hicolstdchar::$20 ← (word~) mode_hicolstdchar::$19 / (word/signed word/dword/signed dword) 1024 + (word~) mode_hicolstdchar::$19 ← (word~) mode_hicolstdchar::$18 & (word/signed word/dword/signed dword) $3fff + (word/signed dword/dword~) mode_hicolstdchar::$20 ← (word~) mode_hicolstdchar::$19 / (word/signed word/dword/signed dword) $400 (word/dword~) mode_hicolstdchar::$21 ← (word/signed dword/dword~) mode_hicolstdchar::$17 | (word/signed dword/dword~) mode_hicolstdchar::$20 (byte~) mode_hicolstdchar::$22 ← ((byte)) (word/dword~) mode_hicolstdchar::$21 *((byte*) VIC_MEMORY#0) ← (byte~) mode_hicolstdchar::$22 @@ -2313,8 +2313,8 @@ mode_hicolstdchar::@1: scope:[mode_hicolstdchar] from mode_hicolstdchar mode_hi (byte) dtv_control#228 ← phi( mode_hicolstdchar/(byte) dtv_control#30 mode_hicolstdchar::@1/(byte) dtv_control#228 ) (byte) mode_hicolstdchar::i#2 ← phi( mode_hicolstdchar/(byte) mode_hicolstdchar::i#0 mode_hicolstdchar::@1/(byte) mode_hicolstdchar::i#1 ) *((byte*) DTV_PALETTE#0 + (byte) mode_hicolstdchar::i#2) ← (byte) mode_hicolstdchar::i#2 - (byte) mode_hicolstdchar::i#1 ← (byte) mode_hicolstdchar::i#2 + rangenext(0,15) - (bool~) mode_hicolstdchar::$23 ← (byte) mode_hicolstdchar::i#1 != rangelast(0,15) + (byte) mode_hicolstdchar::i#1 ← (byte) mode_hicolstdchar::i#2 + rangenext(0,$f) + (bool~) mode_hicolstdchar::$23 ← (byte) mode_hicolstdchar::i#1 != rangelast(0,$f) if((bool~) mode_hicolstdchar::$23) goto mode_hicolstdchar::@1 to:mode_hicolstdchar::@4 mode_hicolstdchar::@4: scope:[mode_hicolstdchar] from mode_hicolstdchar::@1 @@ -2338,17 +2338,17 @@ mode_hicolstdchar::@3: scope:[mode_hicolstdchar] from mode_hicolstdchar::@2 mod (byte*) mode_hicolstdchar::col#2 ← phi( mode_hicolstdchar::@2/(byte*) mode_hicolstdchar::col#3 mode_hicolstdchar::@3/(byte*) mode_hicolstdchar::col#1 ) (byte) mode_hicolstdchar::cx#2 ← phi( mode_hicolstdchar::@2/(byte) mode_hicolstdchar::cx#0 mode_hicolstdchar::@3/(byte) mode_hicolstdchar::cx#1 ) (byte) mode_hicolstdchar::cy#2 ← phi( mode_hicolstdchar::@2/(byte) mode_hicolstdchar::cy#4 mode_hicolstdchar::@3/(byte) mode_hicolstdchar::cy#2 ) - (byte~) mode_hicolstdchar::$24 ← (byte) mode_hicolstdchar::cy#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) mode_hicolstdchar::$24 ← (byte) mode_hicolstdchar::cy#2 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte~) mode_hicolstdchar::$25 ← (byte~) mode_hicolstdchar::$24 << (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte~) mode_hicolstdchar::$26 ← (byte) mode_hicolstdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) mode_hicolstdchar::$26 ← (byte) mode_hicolstdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte~) mode_hicolstdchar::$27 ← (byte~) mode_hicolstdchar::$25 | (byte~) mode_hicolstdchar::$26 (byte) mode_hicolstdchar::v#0 ← (byte~) mode_hicolstdchar::$27 *((byte*) mode_hicolstdchar::col#2) ← (byte) mode_hicolstdchar::v#0 (byte*) mode_hicolstdchar::col#1 ← ++ (byte*) mode_hicolstdchar::col#2 *((byte*) mode_hicolstdchar::ch#2) ← (byte) mode_hicolstdchar::v#0 (byte*) mode_hicolstdchar::ch#1 ← ++ (byte*) mode_hicolstdchar::ch#2 - (byte) mode_hicolstdchar::cx#1 ← (byte) mode_hicolstdchar::cx#2 + rangenext(0,39) - (bool~) mode_hicolstdchar::$28 ← (byte) mode_hicolstdchar::cx#1 != rangelast(0,39) + (byte) mode_hicolstdchar::cx#1 ← (byte) mode_hicolstdchar::cx#2 + rangenext(0,$27) + (bool~) mode_hicolstdchar::$28 ← (byte) mode_hicolstdchar::cx#1 != rangelast(0,$27) if((bool~) mode_hicolstdchar::$28) goto mode_hicolstdchar::@3 to:mode_hicolstdchar::@5 mode_hicolstdchar::@5: scope:[mode_hicolstdchar] from mode_hicolstdchar::@3 @@ -2356,8 +2356,8 @@ mode_hicolstdchar::@5: scope:[mode_hicolstdchar] from mode_hicolstdchar::@3 (byte*) mode_hicolstdchar::ch#4 ← phi( mode_hicolstdchar::@3/(byte*) mode_hicolstdchar::ch#1 ) (byte*) mode_hicolstdchar::col#4 ← phi( mode_hicolstdchar::@3/(byte*) mode_hicolstdchar::col#1 ) (byte) mode_hicolstdchar::cy#3 ← phi( mode_hicolstdchar::@3/(byte) mode_hicolstdchar::cy#2 ) - (byte) mode_hicolstdchar::cy#1 ← (byte) mode_hicolstdchar::cy#3 + rangenext(0,24) - (bool~) mode_hicolstdchar::$29 ← (byte) mode_hicolstdchar::cy#1 != rangelast(0,24) + (byte) mode_hicolstdchar::cy#1 ← (byte) mode_hicolstdchar::cy#3 + rangenext(0,$18) + (bool~) mode_hicolstdchar::$29 ← (byte) mode_hicolstdchar::cy#1 != rangelast(0,$18) if((bool~) mode_hicolstdchar::$29) goto mode_hicolstdchar::@2 to:mode_hicolstdchar::@6 mode_hicolstdchar::@6: scope:[mode_hicolstdchar] from mode_hicolstdchar::@5 @@ -2374,18 +2374,18 @@ mode_hicolstdchar::@return: scope:[mode_hicolstdchar] from mode_hicolstdchar::@ return to:@return mode_hicolecmchar: scope:[mode_hicolecmchar] from menu::@32 - (byte*) mode_hicolecmchar::SCREEN#0 ← ((byte*)) (word/dword/signed dword) 32768 - (byte*) mode_hicolecmchar::CHARSET#0 ← ((byte*)) (word/dword/signed dword) 36864 - (byte*) mode_hicolecmchar::COLORS#0 ← ((byte*)) (word/dword/signed dword) 33792 + (byte*) mode_hicolecmchar::SCREEN#0 ← ((byte*)) (word/dword/signed dword) $8000 + (byte*) mode_hicolecmchar::CHARSET#0 ← ((byte*)) (word/dword/signed dword) $9000 + (byte*) mode_hicolecmchar::COLORS#0 ← ((byte*)) (word/dword/signed dword) $8400 (dword~) mode_hicolecmchar::$0 ← ((dword)) (byte*) mode_hicolecmchar::CHARSET#0 - (dword~) mode_hicolecmchar::$1 ← (dword~) mode_hicolecmchar::$0 / (dword/signed dword) 65536 + (dword~) mode_hicolecmchar::$1 ← (dword~) mode_hicolecmchar::$0 / (dword/signed dword) $10000 (byte~) mode_hicolecmchar::$2 ← ((byte)) (dword~) mode_hicolecmchar::$1 *((byte*) DTV_GRAPHICS_VIC_BANK#0) ← (byte~) mode_hicolecmchar::$2 - (byte*~) mode_hicolecmchar::$3 ← (byte*) mode_hicolecmchar::COLORS#0 / (word/signed word/dword/signed dword) 1024 + (byte*~) mode_hicolecmchar::$3 ← (byte*) mode_hicolecmchar::COLORS#0 / (word/signed word/dword/signed dword) $400 (word~) mode_hicolecmchar::$4 ← ((word)) (byte*~) mode_hicolecmchar::$3 (byte~) mode_hicolecmchar::$5 ← < (word~) mode_hicolecmchar::$4 *((byte*) DTV_COLOR_BANK_LO#0) ← (byte~) mode_hicolecmchar::$5 - (byte*~) mode_hicolecmchar::$6 ← (byte*) mode_hicolecmchar::COLORS#0 / (word/signed word/dword/signed dword) 1024 + (byte*~) mode_hicolecmchar::$6 ← (byte*) mode_hicolecmchar::COLORS#0 / (word/signed word/dword/signed dword) $400 (word~) mode_hicolecmchar::$7 ← ((word)) (byte*~) mode_hicolecmchar::$6 (byte~) mode_hicolecmchar::$8 ← > (word~) mode_hicolecmchar::$7 *((byte*) DTV_COLOR_BANK_HI#0) ← (byte~) mode_hicolecmchar::$8 @@ -2393,7 +2393,7 @@ mode_hicolecmchar: scope:[mode_hicolecmchar] from menu::@32 *((byte*) DTV_CONTROL#0) ← (byte) DTV_HIGHCOLOR#0 *((byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 (word~) mode_hicolecmchar::$9 ← ((word)) (byte*) mode_hicolecmchar::CHARSET#0 - (word/signed dword/dword~) mode_hicolecmchar::$10 ← (word~) mode_hicolecmchar::$9 / (word/signed word/dword/signed dword) 16384 + (word/signed dword/dword~) mode_hicolecmchar::$10 ← (word~) mode_hicolecmchar::$9 / (word/signed word/dword/signed dword) $4000 (byte~) mode_hicolecmchar::$11 ← ((byte)) (word/signed dword/dword~) mode_hicolecmchar::$10 (byte/word/dword~) mode_hicolecmchar::$12 ← (byte/signed byte/word/signed word/dword/signed dword) 3 ^ (byte~) mode_hicolecmchar::$11 *((byte*) CIA2_PORT_A#0) ← (byte/word/dword~) mode_hicolecmchar::$12 @@ -2403,11 +2403,11 @@ mode_hicolecmchar: scope:[mode_hicolecmchar] from menu::@32 *((byte*) VIC_CONTROL#0) ← (byte/word/dword~) mode_hicolecmchar::$15 *((byte*) VIC_CONTROL2#0) ← (byte) VIC_CSEL#0 (word~) mode_hicolecmchar::$16 ← ((word)) (byte*) mode_hicolecmchar::SCREEN#0 - (word~) mode_hicolecmchar::$17 ← (word~) mode_hicolecmchar::$16 & (word/signed word/dword/signed dword) 16383 - (word/signed dword/dword~) mode_hicolecmchar::$18 ← (word~) mode_hicolecmchar::$17 / (byte/signed byte/word/signed word/dword/signed dword) 64 + (word~) mode_hicolecmchar::$17 ← (word~) mode_hicolecmchar::$16 & (word/signed word/dword/signed dword) $3fff + (word/signed dword/dword~) mode_hicolecmchar::$18 ← (word~) mode_hicolecmchar::$17 / (byte/signed byte/word/signed word/dword/signed dword) $40 (word~) mode_hicolecmchar::$19 ← ((word)) (byte*) mode_hicolecmchar::CHARSET#0 - (word~) mode_hicolecmchar::$20 ← (word~) mode_hicolecmchar::$19 & (word/signed word/dword/signed dword) 16383 - (word/signed dword/dword~) mode_hicolecmchar::$21 ← (word~) mode_hicolecmchar::$20 / (word/signed word/dword/signed dword) 1024 + (word~) mode_hicolecmchar::$20 ← (word~) mode_hicolecmchar::$19 & (word/signed word/dword/signed dword) $3fff + (word/signed dword/dword~) mode_hicolecmchar::$21 ← (word~) mode_hicolecmchar::$20 / (word/signed word/dword/signed dword) $400 (word/dword~) mode_hicolecmchar::$22 ← (word/signed dword/dword~) mode_hicolecmchar::$18 | (word/signed dword/dword~) mode_hicolecmchar::$21 (byte~) mode_hicolecmchar::$23 ← ((byte)) (word/dword~) mode_hicolecmchar::$22 *((byte*) VIC_MEMORY#0) ← (byte~) mode_hicolecmchar::$23 @@ -2417,17 +2417,17 @@ mode_hicolecmchar::@1: scope:[mode_hicolecmchar] from mode_hicolecmchar mode_hi (byte) dtv_control#229 ← phi( mode_hicolecmchar/(byte) dtv_control#33 mode_hicolecmchar::@1/(byte) dtv_control#229 ) (byte) mode_hicolecmchar::i#2 ← phi( mode_hicolecmchar/(byte) mode_hicolecmchar::i#0 mode_hicolecmchar::@1/(byte) mode_hicolecmchar::i#1 ) *((byte*) DTV_PALETTE#0 + (byte) mode_hicolecmchar::i#2) ← (byte) mode_hicolecmchar::i#2 - (byte) mode_hicolecmchar::i#1 ← (byte) mode_hicolecmchar::i#2 + rangenext(0,15) - (bool~) mode_hicolecmchar::$24 ← (byte) mode_hicolecmchar::i#1 != rangelast(0,15) + (byte) mode_hicolecmchar::i#1 ← (byte) mode_hicolecmchar::i#2 + rangenext(0,$f) + (bool~) mode_hicolecmchar::$24 ← (byte) mode_hicolecmchar::i#1 != rangelast(0,$f) if((bool~) mode_hicolecmchar::$24) goto mode_hicolecmchar::@1 to:mode_hicolecmchar::@4 mode_hicolecmchar::@4: scope:[mode_hicolecmchar] from mode_hicolecmchar::@1 (byte) dtv_control#213 ← phi( mode_hicolecmchar::@1/(byte) dtv_control#229 ) *((byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - *((byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 80 - *((byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 84 - *((byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) 88 - *((byte*) BGCOL4#0) ← (byte/signed byte/word/signed word/dword/signed dword) 92 + *((byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) $50 + *((byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) $54 + *((byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) $58 + *((byte*) BGCOL4#0) ← (byte/signed byte/word/signed word/dword/signed dword) $5c (byte*) mode_hicolecmchar::col#0 ← (byte*) mode_hicolecmchar::COLORS#0 (byte*) mode_hicolecmchar::ch#0 ← (byte*) mode_hicolecmchar::SCREEN#0 (byte) mode_hicolecmchar::cy#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -2445,17 +2445,17 @@ mode_hicolecmchar::@3: scope:[mode_hicolecmchar] from mode_hicolecmchar::@2 mod (byte*) mode_hicolecmchar::col#2 ← phi( mode_hicolecmchar::@2/(byte*) mode_hicolecmchar::col#3 mode_hicolecmchar::@3/(byte*) mode_hicolecmchar::col#1 ) (byte) mode_hicolecmchar::cx#2 ← phi( mode_hicolecmchar::@2/(byte) mode_hicolecmchar::cx#0 mode_hicolecmchar::@3/(byte) mode_hicolecmchar::cx#1 ) (byte) mode_hicolecmchar::cy#2 ← phi( mode_hicolecmchar::@2/(byte) mode_hicolecmchar::cy#4 mode_hicolecmchar::@3/(byte) mode_hicolecmchar::cy#2 ) - (byte~) mode_hicolecmchar::$25 ← (byte) mode_hicolecmchar::cy#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) mode_hicolecmchar::$25 ← (byte) mode_hicolecmchar::cy#2 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte~) mode_hicolecmchar::$26 ← (byte~) mode_hicolecmchar::$25 << (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte~) mode_hicolecmchar::$27 ← (byte) mode_hicolecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) mode_hicolecmchar::$27 ← (byte) mode_hicolecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte~) mode_hicolecmchar::$28 ← (byte~) mode_hicolecmchar::$26 | (byte~) mode_hicolecmchar::$27 (byte) mode_hicolecmchar::v#0 ← (byte~) mode_hicolecmchar::$28 *((byte*) mode_hicolecmchar::col#2) ← (byte) mode_hicolecmchar::v#0 (byte*) mode_hicolecmchar::col#1 ← ++ (byte*) mode_hicolecmchar::col#2 *((byte*) mode_hicolecmchar::ch#2) ← (byte) mode_hicolecmchar::v#0 (byte*) mode_hicolecmchar::ch#1 ← ++ (byte*) mode_hicolecmchar::ch#2 - (byte) mode_hicolecmchar::cx#1 ← (byte) mode_hicolecmchar::cx#2 + rangenext(0,39) - (bool~) mode_hicolecmchar::$29 ← (byte) mode_hicolecmchar::cx#1 != rangelast(0,39) + (byte) mode_hicolecmchar::cx#1 ← (byte) mode_hicolecmchar::cx#2 + rangenext(0,$27) + (bool~) mode_hicolecmchar::$29 ← (byte) mode_hicolecmchar::cx#1 != rangelast(0,$27) if((bool~) mode_hicolecmchar::$29) goto mode_hicolecmchar::@3 to:mode_hicolecmchar::@5 mode_hicolecmchar::@5: scope:[mode_hicolecmchar] from mode_hicolecmchar::@3 @@ -2463,8 +2463,8 @@ mode_hicolecmchar::@5: scope:[mode_hicolecmchar] from mode_hicolecmchar::@3 (byte*) mode_hicolecmchar::ch#4 ← phi( mode_hicolecmchar::@3/(byte*) mode_hicolecmchar::ch#1 ) (byte*) mode_hicolecmchar::col#4 ← phi( mode_hicolecmchar::@3/(byte*) mode_hicolecmchar::col#1 ) (byte) mode_hicolecmchar::cy#3 ← phi( mode_hicolecmchar::@3/(byte) mode_hicolecmchar::cy#2 ) - (byte) mode_hicolecmchar::cy#1 ← (byte) mode_hicolecmchar::cy#3 + rangenext(0,24) - (bool~) mode_hicolecmchar::$30 ← (byte) mode_hicolecmchar::cy#1 != rangelast(0,24) + (byte) mode_hicolecmchar::cy#1 ← (byte) mode_hicolecmchar::cy#3 + rangenext(0,$18) + (bool~) mode_hicolecmchar::$30 ← (byte) mode_hicolecmchar::cy#1 != rangelast(0,$18) if((bool~) mode_hicolecmchar::$30) goto mode_hicolecmchar::@2 to:mode_hicolecmchar::@6 mode_hicolecmchar::@6: scope:[mode_hicolecmchar] from mode_hicolecmchar::@5 @@ -2481,18 +2481,18 @@ mode_hicolecmchar::@return: scope:[mode_hicolecmchar] from mode_hicolecmchar::@ return to:@return mode_hicolmcchar: scope:[mode_hicolmcchar] from menu::@34 - (byte*) mode_hicolmcchar::SCREEN#0 ← ((byte*)) (word/dword/signed dword) 32768 - (byte*) mode_hicolmcchar::CHARSET#0 ← ((byte*)) (word/dword/signed dword) 36864 - (byte*) mode_hicolmcchar::COLORS#0 ← ((byte*)) (word/dword/signed dword) 33792 + (byte*) mode_hicolmcchar::SCREEN#0 ← ((byte*)) (word/dword/signed dword) $8000 + (byte*) mode_hicolmcchar::CHARSET#0 ← ((byte*)) (word/dword/signed dword) $9000 + (byte*) mode_hicolmcchar::COLORS#0 ← ((byte*)) (word/dword/signed dword) $8400 (dword~) mode_hicolmcchar::$0 ← ((dword)) (byte*) mode_hicolmcchar::CHARSET#0 - (dword~) mode_hicolmcchar::$1 ← (dword~) mode_hicolmcchar::$0 / (dword/signed dword) 65536 + (dword~) mode_hicolmcchar::$1 ← (dword~) mode_hicolmcchar::$0 / (dword/signed dword) $10000 (byte~) mode_hicolmcchar::$2 ← ((byte)) (dword~) mode_hicolmcchar::$1 *((byte*) DTV_GRAPHICS_VIC_BANK#0) ← (byte~) mode_hicolmcchar::$2 - (byte*~) mode_hicolmcchar::$3 ← (byte*) mode_hicolmcchar::COLORS#0 / (word/signed word/dword/signed dword) 1024 + (byte*~) mode_hicolmcchar::$3 ← (byte*) mode_hicolmcchar::COLORS#0 / (word/signed word/dword/signed dword) $400 (word~) mode_hicolmcchar::$4 ← ((word)) (byte*~) mode_hicolmcchar::$3 (byte~) mode_hicolmcchar::$5 ← < (word~) mode_hicolmcchar::$4 *((byte*) DTV_COLOR_BANK_LO#0) ← (byte~) mode_hicolmcchar::$5 - (byte*~) mode_hicolmcchar::$6 ← (byte*) mode_hicolmcchar::COLORS#0 / (word/signed word/dword/signed dword) 1024 + (byte*~) mode_hicolmcchar::$6 ← (byte*) mode_hicolmcchar::COLORS#0 / (word/signed word/dword/signed dword) $400 (word~) mode_hicolmcchar::$7 ← ((word)) (byte*~) mode_hicolmcchar::$6 (byte~) mode_hicolmcchar::$8 ← > (word~) mode_hicolmcchar::$7 *((byte*) DTV_COLOR_BANK_HI#0) ← (byte~) mode_hicolmcchar::$8 @@ -2500,7 +2500,7 @@ mode_hicolmcchar: scope:[mode_hicolmcchar] from menu::@34 *((byte*) DTV_CONTROL#0) ← (byte) DTV_HIGHCOLOR#0 *((byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 (word~) mode_hicolmcchar::$9 ← ((word)) (byte*) mode_hicolmcchar::CHARSET#0 - (word/signed dword/dword~) mode_hicolmcchar::$10 ← (word~) mode_hicolmcchar::$9 / (word/signed word/dword/signed dword) 16384 + (word/signed dword/dword~) mode_hicolmcchar::$10 ← (word~) mode_hicolmcchar::$9 / (word/signed word/dword/signed dword) $4000 (byte~) mode_hicolmcchar::$11 ← ((byte)) (word/signed dword/dword~) mode_hicolmcchar::$10 (byte/word/dword~) mode_hicolmcchar::$12 ← (byte/signed byte/word/signed word/dword/signed dword) 3 ^ (byte~) mode_hicolmcchar::$11 *((byte*) CIA2_PORT_A#0) ← (byte/word/dword~) mode_hicolmcchar::$12 @@ -2510,11 +2510,11 @@ mode_hicolmcchar: scope:[mode_hicolmcchar] from menu::@34 (byte~) mode_hicolmcchar::$15 ← (byte) VIC_CSEL#0 | (byte) VIC_MCM#0 *((byte*) VIC_CONTROL2#0) ← (byte~) mode_hicolmcchar::$15 (word~) mode_hicolmcchar::$16 ← ((word)) (byte*) mode_hicolmcchar::SCREEN#0 - (word~) mode_hicolmcchar::$17 ← (word~) mode_hicolmcchar::$16 & (word/signed word/dword/signed dword) 16383 - (word/signed dword/dword~) mode_hicolmcchar::$18 ← (word~) mode_hicolmcchar::$17 / (byte/signed byte/word/signed word/dword/signed dword) 64 + (word~) mode_hicolmcchar::$17 ← (word~) mode_hicolmcchar::$16 & (word/signed word/dword/signed dword) $3fff + (word/signed dword/dword~) mode_hicolmcchar::$18 ← (word~) mode_hicolmcchar::$17 / (byte/signed byte/word/signed word/dword/signed dword) $40 (word~) mode_hicolmcchar::$19 ← ((word)) (byte*) mode_hicolmcchar::CHARSET#0 - (word~) mode_hicolmcchar::$20 ← (word~) mode_hicolmcchar::$19 & (word/signed word/dword/signed dword) 16383 - (word/signed dword/dword~) mode_hicolmcchar::$21 ← (word~) mode_hicolmcchar::$20 / (word/signed word/dword/signed dword) 1024 + (word~) mode_hicolmcchar::$20 ← (word~) mode_hicolmcchar::$19 & (word/signed word/dword/signed dword) $3fff + (word/signed dword/dword~) mode_hicolmcchar::$21 ← (word~) mode_hicolmcchar::$20 / (word/signed word/dword/signed dword) $400 (word/dword~) mode_hicolmcchar::$22 ← (word/signed dword/dword~) mode_hicolmcchar::$18 | (word/signed dword/dword~) mode_hicolmcchar::$21 (byte~) mode_hicolmcchar::$23 ← ((byte)) (word/dword~) mode_hicolmcchar::$22 *((byte*) VIC_MEMORY#0) ← (byte~) mode_hicolmcchar::$23 @@ -2524,16 +2524,16 @@ mode_hicolmcchar::@1: scope:[mode_hicolmcchar] from mode_hicolmcchar mode_hicol (byte) dtv_control#230 ← phi( mode_hicolmcchar/(byte) dtv_control#36 mode_hicolmcchar::@1/(byte) dtv_control#230 ) (byte) mode_hicolmcchar::i#2 ← phi( mode_hicolmcchar/(byte) mode_hicolmcchar::i#0 mode_hicolmcchar::@1/(byte) mode_hicolmcchar::i#1 ) *((byte*) DTV_PALETTE#0 + (byte) mode_hicolmcchar::i#2) ← (byte) mode_hicolmcchar::i#2 - (byte) mode_hicolmcchar::i#1 ← (byte) mode_hicolmcchar::i#2 + rangenext(0,15) - (bool~) mode_hicolmcchar::$24 ← (byte) mode_hicolmcchar::i#1 != rangelast(0,15) + (byte) mode_hicolmcchar::i#1 ← (byte) mode_hicolmcchar::i#2 + rangenext(0,$f) + (bool~) mode_hicolmcchar::$24 ← (byte) mode_hicolmcchar::i#1 != rangelast(0,$f) if((bool~) mode_hicolmcchar::$24) goto mode_hicolmcchar::@1 to:mode_hicolmcchar::@4 mode_hicolmcchar::@4: scope:[mode_hicolmcchar] from mode_hicolmcchar::@1 (byte) dtv_control#214 ← phi( mode_hicolmcchar::@1/(byte) dtv_control#230 ) *((byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - *((byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 80 - *((byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 84 - *((byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) 88 + *((byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) $50 + *((byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) $54 + *((byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) $58 (byte*) mode_hicolmcchar::col#0 ← (byte*) mode_hicolmcchar::COLORS#0 (byte*) mode_hicolmcchar::ch#0 ← (byte*) mode_hicolmcchar::SCREEN#0 (byte) mode_hicolmcchar::cy#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -2551,17 +2551,17 @@ mode_hicolmcchar::@3: scope:[mode_hicolmcchar] from mode_hicolmcchar::@2 mode_h (byte*) mode_hicolmcchar::col#2 ← phi( mode_hicolmcchar::@2/(byte*) mode_hicolmcchar::col#3 mode_hicolmcchar::@3/(byte*) mode_hicolmcchar::col#1 ) (byte) mode_hicolmcchar::cx#2 ← phi( mode_hicolmcchar::@2/(byte) mode_hicolmcchar::cx#0 mode_hicolmcchar::@3/(byte) mode_hicolmcchar::cx#1 ) (byte) mode_hicolmcchar::cy#2 ← phi( mode_hicolmcchar::@2/(byte) mode_hicolmcchar::cy#4 mode_hicolmcchar::@3/(byte) mode_hicolmcchar::cy#2 ) - (byte~) mode_hicolmcchar::$25 ← (byte) mode_hicolmcchar::cy#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) mode_hicolmcchar::$25 ← (byte) mode_hicolmcchar::cy#2 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte~) mode_hicolmcchar::$26 ← (byte~) mode_hicolmcchar::$25 << (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte~) mode_hicolmcchar::$27 ← (byte) mode_hicolmcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) mode_hicolmcchar::$27 ← (byte) mode_hicolmcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte~) mode_hicolmcchar::$28 ← (byte~) mode_hicolmcchar::$26 | (byte~) mode_hicolmcchar::$27 (byte) mode_hicolmcchar::v#0 ← (byte~) mode_hicolmcchar::$28 *((byte*) mode_hicolmcchar::col#2) ← (byte) mode_hicolmcchar::v#0 (byte*) mode_hicolmcchar::col#1 ← ++ (byte*) mode_hicolmcchar::col#2 *((byte*) mode_hicolmcchar::ch#2) ← (byte) mode_hicolmcchar::v#0 (byte*) mode_hicolmcchar::ch#1 ← ++ (byte*) mode_hicolmcchar::ch#2 - (byte) mode_hicolmcchar::cx#1 ← (byte) mode_hicolmcchar::cx#2 + rangenext(0,39) - (bool~) mode_hicolmcchar::$29 ← (byte) mode_hicolmcchar::cx#1 != rangelast(0,39) + (byte) mode_hicolmcchar::cx#1 ← (byte) mode_hicolmcchar::cx#2 + rangenext(0,$27) + (bool~) mode_hicolmcchar::$29 ← (byte) mode_hicolmcchar::cx#1 != rangelast(0,$27) if((bool~) mode_hicolmcchar::$29) goto mode_hicolmcchar::@3 to:mode_hicolmcchar::@5 mode_hicolmcchar::@5: scope:[mode_hicolmcchar] from mode_hicolmcchar::@3 @@ -2569,8 +2569,8 @@ mode_hicolmcchar::@5: scope:[mode_hicolmcchar] from mode_hicolmcchar::@3 (byte*) mode_hicolmcchar::ch#4 ← phi( mode_hicolmcchar::@3/(byte*) mode_hicolmcchar::ch#1 ) (byte*) mode_hicolmcchar::col#4 ← phi( mode_hicolmcchar::@3/(byte*) mode_hicolmcchar::col#1 ) (byte) mode_hicolmcchar::cy#3 ← phi( mode_hicolmcchar::@3/(byte) mode_hicolmcchar::cy#2 ) - (byte) mode_hicolmcchar::cy#1 ← (byte) mode_hicolmcchar::cy#3 + rangenext(0,24) - (bool~) mode_hicolmcchar::$30 ← (byte) mode_hicolmcchar::cy#1 != rangelast(0,24) + (byte) mode_hicolmcchar::cy#1 ← (byte) mode_hicolmcchar::cy#3 + rangenext(0,$18) + (bool~) mode_hicolmcchar::$30 ← (byte) mode_hicolmcchar::cy#1 != rangelast(0,$18) if((bool~) mode_hicolmcchar::$30) goto mode_hicolmcchar::@2 to:mode_hicolmcchar::@6 mode_hicolmcchar::@6: scope:[mode_hicolmcchar] from mode_hicolmcchar::@5 @@ -2587,9 +2587,9 @@ mode_hicolmcchar::@return: scope:[mode_hicolmcchar] from mode_hicolmcchar::@7 return to:@return mode_twoplanebitmap: scope:[mode_twoplanebitmap] from menu::@38 - (byte*) mode_twoplanebitmap::PLANEA#0 ← ((byte*)) (word/signed word/dword/signed dword) 16384 - (byte*) mode_twoplanebitmap::PLANEB#0 ← ((byte*)) (word/signed word/dword/signed dword) 24576 - (byte*) mode_twoplanebitmap::COLORS#0 ← ((byte*)) (word/dword/signed dword) 32768 + (byte*) mode_twoplanebitmap::PLANEA#0 ← ((byte*)) (word/signed word/dword/signed dword) $4000 + (byte*) mode_twoplanebitmap::PLANEB#0 ← ((byte*)) (word/signed word/dword/signed dword) $6000 + (byte*) mode_twoplanebitmap::COLORS#0 ← ((byte*)) (word/dword/signed dword) $8000 (byte~) mode_twoplanebitmap::$0 ← (byte) DTV_HIGHCOLOR#0 | (byte) DTV_LINEAR#0 (byte) dtv_control#39 ← (byte~) mode_twoplanebitmap::$0 (byte~) mode_twoplanebitmap::$1 ← (byte) DTV_HIGHCOLOR#0 | (byte) DTV_LINEAR#0 @@ -2616,10 +2616,10 @@ mode_twoplanebitmap: scope:[mode_twoplanebitmap] from menu::@38 *((byte*) DTV_PLANEB_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 *((byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte*~) mode_twoplanebitmap::$10 ← (byte*) mode_twoplanebitmap::COLORS#0 / (word/signed word/dword/signed dword) 1024 + (byte*~) mode_twoplanebitmap::$10 ← (byte*) mode_twoplanebitmap::COLORS#0 / (word/signed word/dword/signed dword) $400 (byte~) mode_twoplanebitmap::$11 ← < (byte*~) mode_twoplanebitmap::$10 *((byte*) DTV_COLOR_BANK_LO#0) ← (byte~) mode_twoplanebitmap::$11 - (byte*~) mode_twoplanebitmap::$12 ← (byte*) mode_twoplanebitmap::COLORS#0 / (word/signed word/dword/signed dword) 1024 + (byte*~) mode_twoplanebitmap::$12 ← (byte*) mode_twoplanebitmap::COLORS#0 / (word/signed word/dword/signed dword) $400 (byte~) mode_twoplanebitmap::$13 ← > (byte*~) mode_twoplanebitmap::$12 *((byte*) DTV_COLOR_BANK_HI#0) ← (byte~) mode_twoplanebitmap::$13 (byte) mode_twoplanebitmap::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -2628,15 +2628,15 @@ mode_twoplanebitmap::@1: scope:[mode_twoplanebitmap] from mode_twoplanebitmap m (byte) dtv_control#292 ← phi( mode_twoplanebitmap/(byte) dtv_control#39 mode_twoplanebitmap::@1/(byte) dtv_control#292 ) (byte) mode_twoplanebitmap::i#2 ← phi( mode_twoplanebitmap/(byte) mode_twoplanebitmap::i#0 mode_twoplanebitmap::@1/(byte) mode_twoplanebitmap::i#1 ) *((byte*) DTV_PALETTE#0 + (byte) mode_twoplanebitmap::i#2) ← (byte) mode_twoplanebitmap::i#2 - (byte) mode_twoplanebitmap::i#1 ← (byte) mode_twoplanebitmap::i#2 + rangenext(0,15) - (bool~) mode_twoplanebitmap::$14 ← (byte) mode_twoplanebitmap::i#1 != rangelast(0,15) + (byte) mode_twoplanebitmap::i#1 ← (byte) mode_twoplanebitmap::i#2 + rangenext(0,$f) + (bool~) mode_twoplanebitmap::$14 ← (byte) mode_twoplanebitmap::i#1 != rangelast(0,$f) if((bool~) mode_twoplanebitmap::$14) goto mode_twoplanebitmap::@1 to:mode_twoplanebitmap::@10 mode_twoplanebitmap::@10: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@1 (byte) dtv_control#291 ← phi( mode_twoplanebitmap::@1/(byte) dtv_control#292 ) *((byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - *((byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 112 - *((byte*) BGCOL2#0) ← (byte/word/signed word/dword/signed dword) 212 + *((byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) $70 + *((byte*) BGCOL2#0) ← (byte/word/signed word/dword/signed dword) $d4 (byte*) mode_twoplanebitmap::col#0 ← (byte*) mode_twoplanebitmap::COLORS#0 (byte) mode_twoplanebitmap::cy#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:mode_twoplanebitmap::@2 @@ -2651,22 +2651,22 @@ mode_twoplanebitmap::@3: scope:[mode_twoplanebitmap] from mode_twoplanebitmap:: (byte*) mode_twoplanebitmap::col#2 ← phi( mode_twoplanebitmap::@2/(byte*) mode_twoplanebitmap::col#3 mode_twoplanebitmap::@3/(byte*) mode_twoplanebitmap::col#1 ) (byte) mode_twoplanebitmap::cx#2 ← phi( mode_twoplanebitmap::@2/(byte) mode_twoplanebitmap::cx#0 mode_twoplanebitmap::@3/(byte) mode_twoplanebitmap::cx#1 ) (byte) mode_twoplanebitmap::cy#2 ← phi( mode_twoplanebitmap::@2/(byte) mode_twoplanebitmap::cy#4 mode_twoplanebitmap::@3/(byte) mode_twoplanebitmap::cy#2 ) - (byte~) mode_twoplanebitmap::$15 ← (byte) mode_twoplanebitmap::cy#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) mode_twoplanebitmap::$15 ← (byte) mode_twoplanebitmap::cy#2 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte~) mode_twoplanebitmap::$16 ← (byte~) mode_twoplanebitmap::$15 << (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte~) mode_twoplanebitmap::$17 ← (byte) mode_twoplanebitmap::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) mode_twoplanebitmap::$17 ← (byte) mode_twoplanebitmap::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte~) mode_twoplanebitmap::$18 ← (byte~) mode_twoplanebitmap::$16 | (byte~) mode_twoplanebitmap::$17 *((byte*) mode_twoplanebitmap::col#2) ← (byte~) mode_twoplanebitmap::$18 (byte*) mode_twoplanebitmap::col#1 ← ++ (byte*) mode_twoplanebitmap::col#2 - (byte) mode_twoplanebitmap::cx#1 ← (byte) mode_twoplanebitmap::cx#2 + rangenext(0,39) - (bool~) mode_twoplanebitmap::$19 ← (byte) mode_twoplanebitmap::cx#1 != rangelast(0,39) + (byte) mode_twoplanebitmap::cx#1 ← (byte) mode_twoplanebitmap::cx#2 + rangenext(0,$27) + (bool~) mode_twoplanebitmap::$19 ← (byte) mode_twoplanebitmap::cx#1 != rangelast(0,$27) if((bool~) mode_twoplanebitmap::$19) goto mode_twoplanebitmap::@3 to:mode_twoplanebitmap::@11 mode_twoplanebitmap::@11: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@3 (byte) dtv_control#278 ← phi( mode_twoplanebitmap::@3/(byte) dtv_control#284 ) (byte*) mode_twoplanebitmap::col#4 ← phi( mode_twoplanebitmap::@3/(byte*) mode_twoplanebitmap::col#1 ) (byte) mode_twoplanebitmap::cy#3 ← phi( mode_twoplanebitmap::@3/(byte) mode_twoplanebitmap::cy#2 ) - (byte) mode_twoplanebitmap::cy#1 ← (byte) mode_twoplanebitmap::cy#3 + rangenext(0,24) - (bool~) mode_twoplanebitmap::$20 ← (byte) mode_twoplanebitmap::cy#1 != rangelast(0,24) + (byte) mode_twoplanebitmap::cy#1 ← (byte) mode_twoplanebitmap::cy#3 + rangenext(0,$18) + (bool~) mode_twoplanebitmap::$20 ← (byte) mode_twoplanebitmap::cy#1 != rangelast(0,$18) if((bool~) mode_twoplanebitmap::$20) goto mode_twoplanebitmap::@2 to:mode_twoplanebitmap::@12 mode_twoplanebitmap::@12: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@11 @@ -2702,7 +2702,7 @@ mode_twoplanebitmap::@13: scope:[mode_twoplanebitmap] from mode_twoplanebitmap: (byte) mode_twoplanebitmap::ay#6 ← phi( mode_twoplanebitmap::@5/(byte) mode_twoplanebitmap::ay#2 ) (byte) mode_twoplanebitmap::ax#3 ← phi( mode_twoplanebitmap::@5/(byte) mode_twoplanebitmap::ax#5 ) (byte*) mode_twoplanebitmap::gfxa#4 ← phi( mode_twoplanebitmap::@5/(byte*) mode_twoplanebitmap::gfxa#5 ) - *((byte*) mode_twoplanebitmap::gfxa#4) ← (byte/word/signed word/dword/signed dword) 255 + *((byte*) mode_twoplanebitmap::gfxa#4) ← (byte/word/signed word/dword/signed dword) $ff (byte*) mode_twoplanebitmap::gfxa#2 ← ++ (byte*) mode_twoplanebitmap::gfxa#4 to:mode_twoplanebitmap::@7 mode_twoplanebitmap::@7: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@13 mode_twoplanebitmap::@6 @@ -2710,16 +2710,16 @@ mode_twoplanebitmap::@7: scope:[mode_twoplanebitmap] from mode_twoplanebitmap:: (byte*) mode_twoplanebitmap::gfxa#7 ← phi( mode_twoplanebitmap::@13/(byte*) mode_twoplanebitmap::gfxa#2 mode_twoplanebitmap::@6/(byte*) mode_twoplanebitmap::gfxa#1 ) (byte) mode_twoplanebitmap::ay#5 ← phi( mode_twoplanebitmap::@13/(byte) mode_twoplanebitmap::ay#6 mode_twoplanebitmap::@6/(byte) mode_twoplanebitmap::ay#7 ) (byte) mode_twoplanebitmap::ax#2 ← phi( mode_twoplanebitmap::@13/(byte) mode_twoplanebitmap::ax#3 mode_twoplanebitmap::@6/(byte) mode_twoplanebitmap::ax#4 ) - (byte) mode_twoplanebitmap::ax#1 ← (byte) mode_twoplanebitmap::ax#2 + rangenext(0,39) - (bool~) mode_twoplanebitmap::$23 ← (byte) mode_twoplanebitmap::ax#1 != rangelast(0,39) + (byte) mode_twoplanebitmap::ax#1 ← (byte) mode_twoplanebitmap::ax#2 + rangenext(0,$27) + (bool~) mode_twoplanebitmap::$23 ← (byte) mode_twoplanebitmap::ax#1 != rangelast(0,$27) if((bool~) mode_twoplanebitmap::$23) goto mode_twoplanebitmap::@5 to:mode_twoplanebitmap::@15 mode_twoplanebitmap::@15: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@7 (byte) dtv_control#231 ← phi( mode_twoplanebitmap::@7/(byte) dtv_control#241 ) (byte*) mode_twoplanebitmap::gfxa#8 ← phi( mode_twoplanebitmap::@7/(byte*) mode_twoplanebitmap::gfxa#7 ) (byte) mode_twoplanebitmap::ay#3 ← phi( mode_twoplanebitmap::@7/(byte) mode_twoplanebitmap::ay#5 ) - (byte) mode_twoplanebitmap::ay#1 ← (byte) mode_twoplanebitmap::ay#3 + rangenext(0,199) - (bool~) mode_twoplanebitmap::$24 ← (byte) mode_twoplanebitmap::ay#1 != rangelast(0,199) + (byte) mode_twoplanebitmap::ay#1 ← (byte) mode_twoplanebitmap::ay#3 + rangenext(0,$c7) + (bool~) mode_twoplanebitmap::$24 ← (byte) mode_twoplanebitmap::ay#1 != rangelast(0,$c7) if((bool~) mode_twoplanebitmap::$24) goto mode_twoplanebitmap::@4 to:mode_twoplanebitmap::@16 mode_twoplanebitmap::@16: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@15 @@ -2738,18 +2738,18 @@ mode_twoplanebitmap::@9: scope:[mode_twoplanebitmap] from mode_twoplanebitmap:: (byte) mode_twoplanebitmap::by#3 ← phi( mode_twoplanebitmap::@8/(byte) mode_twoplanebitmap::by#4 mode_twoplanebitmap::@9/(byte) mode_twoplanebitmap::by#3 ) (byte) mode_twoplanebitmap::bx#2 ← phi( mode_twoplanebitmap::@8/(byte) mode_twoplanebitmap::bx#0 mode_twoplanebitmap::@9/(byte) mode_twoplanebitmap::bx#1 ) (byte*) mode_twoplanebitmap::gfxb#2 ← phi( mode_twoplanebitmap::@8/(byte*) mode_twoplanebitmap::gfxb#3 mode_twoplanebitmap::@9/(byte*) mode_twoplanebitmap::gfxb#1 ) - *((byte*) mode_twoplanebitmap::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 15 + *((byte*) mode_twoplanebitmap::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $f (byte*) mode_twoplanebitmap::gfxb#1 ← ++ (byte*) mode_twoplanebitmap::gfxb#2 - (byte) mode_twoplanebitmap::bx#1 ← (byte) mode_twoplanebitmap::bx#2 + rangenext(0,39) - (bool~) mode_twoplanebitmap::$25 ← (byte) mode_twoplanebitmap::bx#1 != rangelast(0,39) + (byte) mode_twoplanebitmap::bx#1 ← (byte) mode_twoplanebitmap::bx#2 + rangenext(0,$27) + (bool~) mode_twoplanebitmap::$25 ← (byte) mode_twoplanebitmap::bx#1 != rangelast(0,$27) if((bool~) mode_twoplanebitmap::$25) goto mode_twoplanebitmap::@9 to:mode_twoplanebitmap::@17 mode_twoplanebitmap::@17: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@9 (byte) dtv_control#156 ← phi( mode_twoplanebitmap::@9/(byte) dtv_control#184 ) (byte*) mode_twoplanebitmap::gfxb#4 ← phi( mode_twoplanebitmap::@9/(byte*) mode_twoplanebitmap::gfxb#1 ) (byte) mode_twoplanebitmap::by#2 ← phi( mode_twoplanebitmap::@9/(byte) mode_twoplanebitmap::by#3 ) - (byte) mode_twoplanebitmap::by#1 ← (byte) mode_twoplanebitmap::by#2 + rangenext(0,199) - (bool~) mode_twoplanebitmap::$26 ← (byte) mode_twoplanebitmap::by#1 != rangelast(0,199) + (byte) mode_twoplanebitmap::by#1 ← (byte) mode_twoplanebitmap::by#2 + rangenext(0,$c7) + (bool~) mode_twoplanebitmap::$26 ← (byte) mode_twoplanebitmap::by#1 != rangelast(0,$c7) if((bool~) mode_twoplanebitmap::$26) goto mode_twoplanebitmap::@8 to:mode_twoplanebitmap::@18 mode_twoplanebitmap::@18: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@17 @@ -2766,9 +2766,9 @@ mode_twoplanebitmap::@return: scope:[mode_twoplanebitmap] from mode_twoplanebit return to:@return mode_sixsfred: scope:[mode_sixsfred] from menu::@40 - (byte*) mode_sixsfred::PLANEA#0 ← ((byte*)) (word/signed word/dword/signed dword) 16384 - (byte*) mode_sixsfred::PLANEB#0 ← ((byte*)) (word/signed word/dword/signed dword) 24576 - (byte*) mode_sixsfred::COLORS#0 ← ((byte*)) (word/dword/signed dword) 32768 + (byte*) mode_sixsfred::PLANEA#0 ← ((byte*)) (word/signed word/dword/signed dword) $4000 + (byte*) mode_sixsfred::PLANEB#0 ← ((byte*)) (word/signed word/dword/signed dword) $6000 + (byte*) mode_sixsfred::COLORS#0 ← ((byte*)) (word/dword/signed dword) $8000 (byte~) mode_sixsfred::$0 ← (byte) DTV_HIGHCOLOR#0 | (byte) DTV_LINEAR#0 (byte) dtv_control#42 ← (byte~) mode_sixsfred::$0 (byte~) mode_sixsfred::$1 ← (byte) DTV_HIGHCOLOR#0 | (byte) DTV_LINEAR#0 @@ -2796,10 +2796,10 @@ mode_sixsfred: scope:[mode_sixsfred] from menu::@40 *((byte*) DTV_PLANEB_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 *((byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte*~) mode_sixsfred::$11 ← (byte*) mode_sixsfred::COLORS#0 / (word/signed word/dword/signed dword) 1024 + (byte*~) mode_sixsfred::$11 ← (byte*) mode_sixsfred::COLORS#0 / (word/signed word/dword/signed dword) $400 (byte~) mode_sixsfred::$12 ← < (byte*~) mode_sixsfred::$11 *((byte*) DTV_COLOR_BANK_LO#0) ← (byte~) mode_sixsfred::$12 - (byte*~) mode_sixsfred::$13 ← (byte*) mode_sixsfred::COLORS#0 / (word/signed word/dword/signed dword) 1024 + (byte*~) mode_sixsfred::$13 ← (byte*) mode_sixsfred::COLORS#0 / (word/signed word/dword/signed dword) $400 (byte~) mode_sixsfred::$14 ← > (byte*~) mode_sixsfred::$13 *((byte*) DTV_COLOR_BANK_HI#0) ← (byte~) mode_sixsfred::$14 (byte) mode_sixsfred::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -2808,8 +2808,8 @@ mode_sixsfred::@1: scope:[mode_sixsfred] from mode_sixsfred mode_sixsfred::@1 (byte) dtv_control#289 ← phi( mode_sixsfred/(byte) dtv_control#42 mode_sixsfred::@1/(byte) dtv_control#289 ) (byte) mode_sixsfred::i#2 ← phi( mode_sixsfred/(byte) mode_sixsfred::i#0 mode_sixsfred::@1/(byte) mode_sixsfred::i#1 ) *((byte*) DTV_PALETTE#0 + (byte) mode_sixsfred::i#2) ← (byte) mode_sixsfred::i#2 - (byte) mode_sixsfred::i#1 ← (byte) mode_sixsfred::i#2 + rangenext(0,15) - (bool~) mode_sixsfred::$15 ← (byte) mode_sixsfred::i#1 != rangelast(0,15) + (byte) mode_sixsfred::i#1 ← (byte) mode_sixsfred::i#2 + rangenext(0,$f) + (bool~) mode_sixsfred::$15 ← (byte) mode_sixsfred::i#1 != rangelast(0,$f) if((bool~) mode_sixsfred::$15) goto mode_sixsfred::@1 to:mode_sixsfred::@8 mode_sixsfred::@8: scope:[mode_sixsfred] from mode_sixsfred::@1 @@ -2830,25 +2830,25 @@ mode_sixsfred::@3: scope:[mode_sixsfred] from mode_sixsfred::@2 mode_sixsfred:: (byte) mode_sixsfred::cy#2 ← phi( mode_sixsfred::@2/(byte) mode_sixsfred::cy#4 mode_sixsfred::@3/(byte) mode_sixsfred::cy#2 ) (byte) mode_sixsfred::cx#2 ← phi( mode_sixsfred::@2/(byte) mode_sixsfred::cx#0 mode_sixsfred::@3/(byte) mode_sixsfred::cx#1 ) (byte~) mode_sixsfred::$16 ← (byte) mode_sixsfred::cx#2 + (byte) mode_sixsfred::cy#2 - (byte~) mode_sixsfred::$17 ← (byte~) mode_sixsfred::$16 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) mode_sixsfred::$17 ← (byte~) mode_sixsfred::$16 & (byte/signed byte/word/signed word/dword/signed dword) $f *((byte*) mode_sixsfred::col#2) ← (byte~) mode_sixsfred::$17 (byte*) mode_sixsfred::col#1 ← ++ (byte*) mode_sixsfred::col#2 - (byte) mode_sixsfred::cx#1 ← (byte) mode_sixsfred::cx#2 + rangenext(0,39) - (bool~) mode_sixsfred::$18 ← (byte) mode_sixsfred::cx#1 != rangelast(0,39) + (byte) mode_sixsfred::cx#1 ← (byte) mode_sixsfred::cx#2 + rangenext(0,$27) + (bool~) mode_sixsfred::$18 ← (byte) mode_sixsfred::cx#1 != rangelast(0,$27) if((bool~) mode_sixsfred::$18) goto mode_sixsfred::@3 to:mode_sixsfred::@9 mode_sixsfred::@9: scope:[mode_sixsfred] from mode_sixsfred::@3 (byte) dtv_control#267 ← phi( mode_sixsfred::@3/(byte) dtv_control#274 ) (byte*) mode_sixsfred::col#4 ← phi( mode_sixsfred::@3/(byte*) mode_sixsfred::col#1 ) (byte) mode_sixsfred::cy#3 ← phi( mode_sixsfred::@3/(byte) mode_sixsfred::cy#2 ) - (byte) mode_sixsfred::cy#1 ← (byte) mode_sixsfred::cy#3 + rangenext(0,24) - (bool~) mode_sixsfred::$19 ← (byte) mode_sixsfred::cy#1 != rangelast(0,24) + (byte) mode_sixsfred::cy#1 ← (byte) mode_sixsfred::cy#3 + rangenext(0,$18) + (bool~) mode_sixsfred::$19 ← (byte) mode_sixsfred::cy#1 != rangelast(0,$18) if((bool~) mode_sixsfred::$19) goto mode_sixsfred::@2 to:mode_sixsfred::@10 mode_sixsfred::@10: scope:[mode_sixsfred] from mode_sixsfred::@9 (byte) dtv_control#260 ← phi( mode_sixsfred::@9/(byte) dtv_control#267 ) (byte*) mode_sixsfred::gfxa#0 ← (byte*) mode_sixsfred::PLANEA#0 - (byte[]) mode_sixsfred::row_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 85, (byte/word/signed word/dword/signed dword) 170, (byte/word/signed word/dword/signed dword) 255 } + (byte[]) mode_sixsfred::row_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $55, (byte/word/signed word/dword/signed dword) $aa, (byte/word/signed word/dword/signed dword) $ff } (byte) mode_sixsfred::ay#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:mode_sixsfred::@4 mode_sixsfred::@4: scope:[mode_sixsfred] from mode_sixsfred::@10 mode_sixsfred::@11 @@ -2867,16 +2867,16 @@ mode_sixsfred::@5: scope:[mode_sixsfred] from mode_sixsfred::@4 mode_sixsfred:: (byte) mode_sixsfred::row#0 ← (byte~) mode_sixsfred::$21 *((byte*) mode_sixsfred::gfxa#2) ← *((byte[]) mode_sixsfred::row_bitmask#0 + (byte) mode_sixsfred::row#0) (byte*) mode_sixsfred::gfxa#1 ← ++ (byte*) mode_sixsfred::gfxa#2 - (byte) mode_sixsfred::ax#1 ← (byte) mode_sixsfred::ax#2 + rangenext(0,39) - (bool~) mode_sixsfred::$22 ← (byte) mode_sixsfred::ax#1 != rangelast(0,39) + (byte) mode_sixsfred::ax#1 ← (byte) mode_sixsfred::ax#2 + rangenext(0,$27) + (bool~) mode_sixsfred::$22 ← (byte) mode_sixsfred::ax#1 != rangelast(0,$27) if((bool~) mode_sixsfred::$22) goto mode_sixsfred::@5 to:mode_sixsfred::@11 mode_sixsfred::@11: scope:[mode_sixsfred] from mode_sixsfred::@5 (byte) dtv_control#232 ← phi( mode_sixsfred::@5/(byte) dtv_control#242 ) (byte*) mode_sixsfred::gfxa#4 ← phi( mode_sixsfred::@5/(byte*) mode_sixsfred::gfxa#1 ) (byte) mode_sixsfred::ay#3 ← phi( mode_sixsfred::@5/(byte) mode_sixsfred::ay#2 ) - (byte) mode_sixsfred::ay#1 ← (byte) mode_sixsfred::ay#3 + rangenext(0,199) - (bool~) mode_sixsfred::$23 ← (byte) mode_sixsfred::ay#1 != rangelast(0,199) + (byte) mode_sixsfred::ay#1 ← (byte) mode_sixsfred::ay#3 + rangenext(0,$c7) + (bool~) mode_sixsfred::$23 ← (byte) mode_sixsfred::ay#1 != rangelast(0,$c7) if((bool~) mode_sixsfred::$23) goto mode_sixsfred::@4 to:mode_sixsfred::@12 mode_sixsfred::@12: scope:[mode_sixsfred] from mode_sixsfred::@11 @@ -2895,18 +2895,18 @@ mode_sixsfred::@7: scope:[mode_sixsfred] from mode_sixsfred::@6 mode_sixsfred:: (byte) mode_sixsfred::by#3 ← phi( mode_sixsfred::@6/(byte) mode_sixsfred::by#4 mode_sixsfred::@7/(byte) mode_sixsfred::by#3 ) (byte) mode_sixsfred::bx#2 ← phi( mode_sixsfred::@6/(byte) mode_sixsfred::bx#0 mode_sixsfred::@7/(byte) mode_sixsfred::bx#1 ) (byte*) mode_sixsfred::gfxb#2 ← phi( mode_sixsfred::@6/(byte*) mode_sixsfred::gfxb#3 mode_sixsfred::@7/(byte*) mode_sixsfred::gfxb#1 ) - *((byte*) mode_sixsfred::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 27 + *((byte*) mode_sixsfred::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $1b (byte*) mode_sixsfred::gfxb#1 ← ++ (byte*) mode_sixsfred::gfxb#2 - (byte) mode_sixsfred::bx#1 ← (byte) mode_sixsfred::bx#2 + rangenext(0,39) - (bool~) mode_sixsfred::$24 ← (byte) mode_sixsfred::bx#1 != rangelast(0,39) + (byte) mode_sixsfred::bx#1 ← (byte) mode_sixsfred::bx#2 + rangenext(0,$27) + (bool~) mode_sixsfred::$24 ← (byte) mode_sixsfred::bx#1 != rangelast(0,$27) if((bool~) mode_sixsfred::$24) goto mode_sixsfred::@7 to:mode_sixsfred::@13 mode_sixsfred::@13: scope:[mode_sixsfred] from mode_sixsfred::@7 (byte) dtv_control#157 ← phi( mode_sixsfred::@7/(byte) dtv_control#185 ) (byte*) mode_sixsfred::gfxb#4 ← phi( mode_sixsfred::@7/(byte*) mode_sixsfred::gfxb#1 ) (byte) mode_sixsfred::by#2 ← phi( mode_sixsfred::@7/(byte) mode_sixsfred::by#3 ) - (byte) mode_sixsfred::by#1 ← (byte) mode_sixsfred::by#2 + rangenext(0,199) - (bool~) mode_sixsfred::$25 ← (byte) mode_sixsfred::by#1 != rangelast(0,199) + (byte) mode_sixsfred::by#1 ← (byte) mode_sixsfred::by#2 + rangenext(0,$c7) + (bool~) mode_sixsfred::$25 ← (byte) mode_sixsfred::by#1 != rangelast(0,$c7) if((bool~) mode_sixsfred::$25) goto mode_sixsfred::@6 to:mode_sixsfred::@14 mode_sixsfred::@14: scope:[mode_sixsfred] from mode_sixsfred::@13 @@ -2923,9 +2923,9 @@ mode_sixsfred::@return: scope:[mode_sixsfred] from mode_sixsfred::@15 return to:@return mode_sixsfred2: scope:[mode_sixsfred2] from menu::@36 - (byte*) mode_sixsfred2::PLANEA#0 ← ((byte*)) (word/signed word/dword/signed dword) 16384 - (byte*) mode_sixsfred2::PLANEB#0 ← ((byte*)) (word/signed word/dword/signed dword) 24576 - (byte*) mode_sixsfred2::COLORS#0 ← ((byte*)) (word/dword/signed dword) 32768 + (byte*) mode_sixsfred2::PLANEA#0 ← ((byte*)) (word/signed word/dword/signed dword) $4000 + (byte*) mode_sixsfred2::PLANEB#0 ← ((byte*)) (word/signed word/dword/signed dword) $6000 + (byte*) mode_sixsfred2::COLORS#0 ← ((byte*)) (word/dword/signed dword) $8000 (byte) dtv_control#45 ← (byte) DTV_LINEAR#0 *((byte*) DTV_CONTROL#0) ← (byte) DTV_LINEAR#0 (byte~) mode_sixsfred2::$0 ← (byte) VIC_ECM#0 | (byte) VIC_BMM#0 @@ -2951,10 +2951,10 @@ mode_sixsfred2: scope:[mode_sixsfred2] from menu::@36 *((byte*) DTV_PLANEB_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 *((byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte*~) mode_sixsfred2::$9 ← (byte*) mode_sixsfred2::COLORS#0 / (word/signed word/dword/signed dword) 1024 + (byte*~) mode_sixsfred2::$9 ← (byte*) mode_sixsfred2::COLORS#0 / (word/signed word/dword/signed dword) $400 (byte~) mode_sixsfred2::$10 ← < (byte*~) mode_sixsfred2::$9 *((byte*) DTV_COLOR_BANK_LO#0) ← (byte~) mode_sixsfred2::$10 - (byte*~) mode_sixsfred2::$11 ← (byte*) mode_sixsfred2::COLORS#0 / (word/signed word/dword/signed dword) 1024 + (byte*~) mode_sixsfred2::$11 ← (byte*) mode_sixsfred2::COLORS#0 / (word/signed word/dword/signed dword) $400 (byte~) mode_sixsfred2::$12 ← > (byte*~) mode_sixsfred2::$11 *((byte*) DTV_COLOR_BANK_HI#0) ← (byte~) mode_sixsfred2::$12 (byte) mode_sixsfred2::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -2963,8 +2963,8 @@ mode_sixsfred2::@1: scope:[mode_sixsfred2] from mode_sixsfred2 mode_sixsfred2:: (byte) dtv_control#290 ← phi( mode_sixsfred2/(byte) dtv_control#45 mode_sixsfred2::@1/(byte) dtv_control#290 ) (byte) mode_sixsfred2::i#2 ← phi( mode_sixsfred2/(byte) mode_sixsfred2::i#0 mode_sixsfred2::@1/(byte) mode_sixsfred2::i#1 ) *((byte*) DTV_PALETTE#0 + (byte) mode_sixsfred2::i#2) ← (byte) mode_sixsfred2::i#2 - (byte) mode_sixsfred2::i#1 ← (byte) mode_sixsfred2::i#2 + rangenext(0,15) - (bool~) mode_sixsfred2::$13 ← (byte) mode_sixsfred2::i#1 != rangelast(0,15) + (byte) mode_sixsfred2::i#1 ← (byte) mode_sixsfred2::i#2 + rangenext(0,$f) + (bool~) mode_sixsfred2::$13 ← (byte) mode_sixsfred2::i#1 != rangelast(0,$f) if((bool~) mode_sixsfred2::$13) goto mode_sixsfred2::@1 to:mode_sixsfred2::@8 mode_sixsfred2::@8: scope:[mode_sixsfred2] from mode_sixsfred2::@1 @@ -2990,22 +2990,22 @@ mode_sixsfred2::@3: scope:[mode_sixsfred2] from mode_sixsfred2::@2 mode_sixsfre (byte~) mode_sixsfred2::$17 ← (byte~) mode_sixsfred2::$15 | (byte~) mode_sixsfred2::$16 *((byte*) mode_sixsfred2::col#2) ← (byte~) mode_sixsfred2::$17 (byte*) mode_sixsfred2::col#1 ← ++ (byte*) mode_sixsfred2::col#2 - (byte) mode_sixsfred2::cx#1 ← (byte) mode_sixsfred2::cx#2 + rangenext(0,39) - (bool~) mode_sixsfred2::$18 ← (byte) mode_sixsfred2::cx#1 != rangelast(0,39) + (byte) mode_sixsfred2::cx#1 ← (byte) mode_sixsfred2::cx#2 + rangenext(0,$27) + (bool~) mode_sixsfred2::$18 ← (byte) mode_sixsfred2::cx#1 != rangelast(0,$27) if((bool~) mode_sixsfred2::$18) goto mode_sixsfred2::@3 to:mode_sixsfred2::@9 mode_sixsfred2::@9: scope:[mode_sixsfred2] from mode_sixsfred2::@3 (byte) dtv_control#268 ← phi( mode_sixsfred2::@3/(byte) dtv_control#275 ) (byte*) mode_sixsfred2::col#4 ← phi( mode_sixsfred2::@3/(byte*) mode_sixsfred2::col#1 ) (byte) mode_sixsfred2::cy#3 ← phi( mode_sixsfred2::@3/(byte) mode_sixsfred2::cy#2 ) - (byte) mode_sixsfred2::cy#1 ← (byte) mode_sixsfred2::cy#3 + rangenext(0,24) - (bool~) mode_sixsfred2::$19 ← (byte) mode_sixsfred2::cy#1 != rangelast(0,24) + (byte) mode_sixsfred2::cy#1 ← (byte) mode_sixsfred2::cy#3 + rangenext(0,$18) + (bool~) mode_sixsfred2::$19 ← (byte) mode_sixsfred2::cy#1 != rangelast(0,$18) if((bool~) mode_sixsfred2::$19) goto mode_sixsfred2::@2 to:mode_sixsfred2::@10 mode_sixsfred2::@10: scope:[mode_sixsfred2] from mode_sixsfred2::@9 (byte) dtv_control#261 ← phi( mode_sixsfred2::@9/(byte) dtv_control#268 ) (byte*) mode_sixsfred2::gfxa#0 ← (byte*) mode_sixsfred2::PLANEA#0 - (byte[]) mode_sixsfred2::row_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 85, (byte/word/signed word/dword/signed dword) 170, (byte/word/signed word/dword/signed dword) 255 } + (byte[]) mode_sixsfred2::row_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $55, (byte/word/signed word/dword/signed dword) $aa, (byte/word/signed word/dword/signed dword) $ff } (byte) mode_sixsfred2::ay#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:mode_sixsfred2::@4 mode_sixsfred2::@4: scope:[mode_sixsfred2] from mode_sixsfred2::@10 mode_sixsfred2::@11 @@ -3024,16 +3024,16 @@ mode_sixsfred2::@5: scope:[mode_sixsfred2] from mode_sixsfred2::@4 mode_sixsfre (byte) mode_sixsfred2::row#0 ← (byte~) mode_sixsfred2::$21 *((byte*) mode_sixsfred2::gfxa#2) ← *((byte[]) mode_sixsfred2::row_bitmask#0 + (byte) mode_sixsfred2::row#0) (byte*) mode_sixsfred2::gfxa#1 ← ++ (byte*) mode_sixsfred2::gfxa#2 - (byte) mode_sixsfred2::ax#1 ← (byte) mode_sixsfred2::ax#2 + rangenext(0,39) - (bool~) mode_sixsfred2::$22 ← (byte) mode_sixsfred2::ax#1 != rangelast(0,39) + (byte) mode_sixsfred2::ax#1 ← (byte) mode_sixsfred2::ax#2 + rangenext(0,$27) + (bool~) mode_sixsfred2::$22 ← (byte) mode_sixsfred2::ax#1 != rangelast(0,$27) if((bool~) mode_sixsfred2::$22) goto mode_sixsfred2::@5 to:mode_sixsfred2::@11 mode_sixsfred2::@11: scope:[mode_sixsfred2] from mode_sixsfred2::@5 (byte) dtv_control#233 ← phi( mode_sixsfred2::@5/(byte) dtv_control#243 ) (byte*) mode_sixsfred2::gfxa#4 ← phi( mode_sixsfred2::@5/(byte*) mode_sixsfred2::gfxa#1 ) (byte) mode_sixsfred2::ay#3 ← phi( mode_sixsfred2::@5/(byte) mode_sixsfred2::ay#2 ) - (byte) mode_sixsfred2::ay#1 ← (byte) mode_sixsfred2::ay#3 + rangenext(0,199) - (bool~) mode_sixsfred2::$23 ← (byte) mode_sixsfred2::ay#1 != rangelast(0,199) + (byte) mode_sixsfred2::ay#1 ← (byte) mode_sixsfred2::ay#3 + rangenext(0,$c7) + (bool~) mode_sixsfred2::$23 ← (byte) mode_sixsfred2::ay#1 != rangelast(0,$c7) if((bool~) mode_sixsfred2::$23) goto mode_sixsfred2::@4 to:mode_sixsfred2::@12 mode_sixsfred2::@12: scope:[mode_sixsfred2] from mode_sixsfred2::@11 @@ -3052,18 +3052,18 @@ mode_sixsfred2::@7: scope:[mode_sixsfred2] from mode_sixsfred2::@6 mode_sixsfre (byte) mode_sixsfred2::by#3 ← phi( mode_sixsfred2::@6/(byte) mode_sixsfred2::by#4 mode_sixsfred2::@7/(byte) mode_sixsfred2::by#3 ) (byte) mode_sixsfred2::bx#2 ← phi( mode_sixsfred2::@6/(byte) mode_sixsfred2::bx#0 mode_sixsfred2::@7/(byte) mode_sixsfred2::bx#1 ) (byte*) mode_sixsfred2::gfxb#2 ← phi( mode_sixsfred2::@6/(byte*) mode_sixsfred2::gfxb#3 mode_sixsfred2::@7/(byte*) mode_sixsfred2::gfxb#1 ) - *((byte*) mode_sixsfred2::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 27 + *((byte*) mode_sixsfred2::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $1b (byte*) mode_sixsfred2::gfxb#1 ← ++ (byte*) mode_sixsfred2::gfxb#2 - (byte) mode_sixsfred2::bx#1 ← (byte) mode_sixsfred2::bx#2 + rangenext(0,39) - (bool~) mode_sixsfred2::$24 ← (byte) mode_sixsfred2::bx#1 != rangelast(0,39) + (byte) mode_sixsfred2::bx#1 ← (byte) mode_sixsfred2::bx#2 + rangenext(0,$27) + (bool~) mode_sixsfred2::$24 ← (byte) mode_sixsfred2::bx#1 != rangelast(0,$27) if((bool~) mode_sixsfred2::$24) goto mode_sixsfred2::@7 to:mode_sixsfred2::@13 mode_sixsfred2::@13: scope:[mode_sixsfred2] from mode_sixsfred2::@7 (byte) dtv_control#158 ← phi( mode_sixsfred2::@7/(byte) dtv_control#186 ) (byte*) mode_sixsfred2::gfxb#4 ← phi( mode_sixsfred2::@7/(byte*) mode_sixsfred2::gfxb#1 ) (byte) mode_sixsfred2::by#2 ← phi( mode_sixsfred2::@7/(byte) mode_sixsfred2::by#3 ) - (byte) mode_sixsfred2::by#1 ← (byte) mode_sixsfred2::by#2 + rangenext(0,199) - (bool~) mode_sixsfred2::$25 ← (byte) mode_sixsfred2::by#1 != rangelast(0,199) + (byte) mode_sixsfred2::by#1 ← (byte) mode_sixsfred2::by#2 + rangenext(0,$c7) + (bool~) mode_sixsfred2::$25 ← (byte) mode_sixsfred2::by#1 != rangelast(0,$c7) if((bool~) mode_sixsfred2::$25) goto mode_sixsfred2::@6 to:mode_sixsfred2::@14 mode_sixsfred2::@14: scope:[mode_sixsfred2] from mode_sixsfred2::@13 @@ -3080,8 +3080,8 @@ mode_sixsfred2::@return: scope:[mode_sixsfred2] from mode_sixsfred2::@15 return to:@return mode_8bpppixelcell: scope:[mode_8bpppixelcell] from menu::@42 - (byte*) mode_8bpppixelcell::PLANEA#0 ← ((byte*)) (word/signed word/dword/signed dword) 15360 - (byte*) mode_8bpppixelcell::PLANEB#0 ← ((byte*)) (word/signed word/dword/signed dword) 16384 + (byte*) mode_8bpppixelcell::PLANEA#0 ← ((byte*)) (word/signed word/dword/signed dword) $3c00 + (byte*) mode_8bpppixelcell::PLANEB#0 ← ((byte*)) (word/signed word/dword/signed dword) $4000 (byte~) mode_8bpppixelcell::$0 ← (byte) DTV_HIGHCOLOR#0 | (byte) DTV_LINEAR#0 (byte~) mode_8bpppixelcell::$1 ← (byte~) mode_8bpppixelcell::$0 | (byte) DTV_CHUNKY#0 (byte) dtv_control#48 ← (byte~) mode_8bpppixelcell::$1 @@ -3117,8 +3117,8 @@ mode_8bpppixelcell::@1: scope:[mode_8bpppixelcell] from mode_8bpppixelcell mode (byte) dtv_control#287 ← phi( mode_8bpppixelcell/(byte) dtv_control#48 mode_8bpppixelcell::@1/(byte) dtv_control#287 ) (byte) mode_8bpppixelcell::i#2 ← phi( mode_8bpppixelcell/(byte) mode_8bpppixelcell::i#0 mode_8bpppixelcell::@1/(byte) mode_8bpppixelcell::i#1 ) *((byte*) DTV_PALETTE#0 + (byte) mode_8bpppixelcell::i#2) ← (byte) mode_8bpppixelcell::i#2 - (byte) mode_8bpppixelcell::i#1 ← (byte) mode_8bpppixelcell::i#2 + rangenext(0,15) - (bool~) mode_8bpppixelcell::$12 ← (byte) mode_8bpppixelcell::i#1 != rangelast(0,15) + (byte) mode_8bpppixelcell::i#1 ← (byte) mode_8bpppixelcell::i#2 + rangenext(0,$f) + (bool~) mode_8bpppixelcell::$12 ← (byte) mode_8bpppixelcell::i#1 != rangelast(0,$f) if((bool~) mode_8bpppixelcell::$12) goto mode_8bpppixelcell::@1 to:mode_8bpppixelcell::@8 mode_8bpppixelcell::@8: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@1 @@ -3137,28 +3137,28 @@ mode_8bpppixelcell::@3: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@2 (byte*) mode_8bpppixelcell::gfxa#2 ← phi( mode_8bpppixelcell::@2/(byte*) mode_8bpppixelcell::gfxa#3 mode_8bpppixelcell::@3/(byte*) mode_8bpppixelcell::gfxa#1 ) (byte) mode_8bpppixelcell::ax#2 ← phi( mode_8bpppixelcell::@2/(byte) mode_8bpppixelcell::ax#0 mode_8bpppixelcell::@3/(byte) mode_8bpppixelcell::ax#1 ) (byte) mode_8bpppixelcell::ay#2 ← phi( mode_8bpppixelcell::@2/(byte) mode_8bpppixelcell::ay#4 mode_8bpppixelcell::@3/(byte) mode_8bpppixelcell::ay#2 ) - (byte~) mode_8bpppixelcell::$13 ← (byte) mode_8bpppixelcell::ay#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) mode_8bpppixelcell::$13 ← (byte) mode_8bpppixelcell::ay#2 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte~) mode_8bpppixelcell::$14 ← (byte~) mode_8bpppixelcell::$13 << (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte~) mode_8bpppixelcell::$15 ← (byte) mode_8bpppixelcell::ax#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) mode_8bpppixelcell::$15 ← (byte) mode_8bpppixelcell::ax#2 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte~) mode_8bpppixelcell::$16 ← (byte~) mode_8bpppixelcell::$14 | (byte~) mode_8bpppixelcell::$15 *((byte*) mode_8bpppixelcell::gfxa#2) ← (byte~) mode_8bpppixelcell::$16 (byte*) mode_8bpppixelcell::gfxa#1 ← ++ (byte*) mode_8bpppixelcell::gfxa#2 - (byte) mode_8bpppixelcell::ax#1 ← (byte) mode_8bpppixelcell::ax#2 + rangenext(0,39) - (bool~) mode_8bpppixelcell::$17 ← (byte) mode_8bpppixelcell::ax#1 != rangelast(0,39) + (byte) mode_8bpppixelcell::ax#1 ← (byte) mode_8bpppixelcell::ax#2 + rangenext(0,$27) + (bool~) mode_8bpppixelcell::$17 ← (byte) mode_8bpppixelcell::ax#1 != rangelast(0,$27) if((bool~) mode_8bpppixelcell::$17) goto mode_8bpppixelcell::@3 to:mode_8bpppixelcell::@9 mode_8bpppixelcell::@9: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@3 (byte) dtv_control#262 ← phi( mode_8bpppixelcell::@3/(byte) dtv_control#269 ) (byte*) mode_8bpppixelcell::gfxa#4 ← phi( mode_8bpppixelcell::@3/(byte*) mode_8bpppixelcell::gfxa#1 ) (byte) mode_8bpppixelcell::ay#3 ← phi( mode_8bpppixelcell::@3/(byte) mode_8bpppixelcell::ay#2 ) - (byte) mode_8bpppixelcell::ay#1 ← (byte) mode_8bpppixelcell::ay#3 + rangenext(0,24) - (bool~) mode_8bpppixelcell::$18 ← (byte) mode_8bpppixelcell::ay#1 != rangelast(0,24) + (byte) mode_8bpppixelcell::ay#1 ← (byte) mode_8bpppixelcell::ay#3 + rangenext(0,$18) + (bool~) mode_8bpppixelcell::$18 ← (byte) mode_8bpppixelcell::ay#1 != rangelast(0,$18) if((bool~) mode_8bpppixelcell::$18) goto mode_8bpppixelcell::@2 to:mode_8bpppixelcell::@10 mode_8bpppixelcell::@10: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@9 (byte) dtv_control#253 ← phi( mode_8bpppixelcell::@9/(byte) dtv_control#262 ) *((byte*) PROCPORT#0) ← (byte) PROCPORT_RAM_CHARROM#0 - (byte*) mode_8bpppixelcell::CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 + (byte*) mode_8bpppixelcell::CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 (byte*) mode_8bpppixelcell::gfxb#0 ← (byte*) mode_8bpppixelcell::PLANEB#0 (byte*) mode_8bpppixelcell::chargen#0 ← (byte*) mode_8bpppixelcell::CHARGEN#0 (byte) mode_8bpppixelcell::col#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -3193,7 +3193,7 @@ mode_8bpppixelcell::@6: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@5 (byte*) mode_8bpppixelcell::gfxb#4 ← phi( mode_8bpppixelcell::@5/(byte*) mode_8bpppixelcell::gfxb#5 mode_8bpppixelcell::@7/(byte*) mode_8bpppixelcell::gfxb#1 ) (byte) mode_8bpppixelcell::bits#2 ← phi( mode_8bpppixelcell::@5/(byte) mode_8bpppixelcell::bits#0 mode_8bpppixelcell::@7/(byte) mode_8bpppixelcell::bits#1 ) (byte) mode_8bpppixelcell::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte~) mode_8bpppixelcell::$19 ← (byte) mode_8bpppixelcell::bits#2 & (byte/word/signed word/dword/signed dword) 128 + (byte~) mode_8bpppixelcell::$19 ← (byte) mode_8bpppixelcell::bits#2 & (byte/word/signed word/dword/signed dword) $80 (bool~) mode_8bpppixelcell::$20 ← (byte~) mode_8bpppixelcell::$19 != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) mode_8bpppixelcell::$21 ← ! (bool~) mode_8bpppixelcell::$20 if((bool~) mode_8bpppixelcell::$21) goto mode_8bpppixelcell::@7 @@ -3245,8 +3245,8 @@ mode_8bpppixelcell::@13: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@1 (byte) dtv_control#159 ← phi( mode_8bpppixelcell::@12/(byte) dtv_control#187 ) (byte*) mode_8bpppixelcell::chargen#5 ← phi( mode_8bpppixelcell::@12/(byte*) mode_8bpppixelcell::chargen#3 ) (byte) mode_8bpppixelcell::ch#2 ← phi( mode_8bpppixelcell::@12/(byte) mode_8bpppixelcell::ch#3 ) - (byte) mode_8bpppixelcell::ch#1 ← (byte) mode_8bpppixelcell::ch#2 + rangenext(0,255) - (bool~) mode_8bpppixelcell::$25 ← (byte) mode_8bpppixelcell::ch#1 != rangelast(0,255) + (byte) mode_8bpppixelcell::ch#1 ← (byte) mode_8bpppixelcell::ch#2 + rangenext(0,$ff) + (bool~) mode_8bpppixelcell::$25 ← (byte) mode_8bpppixelcell::ch#1 != rangelast(0,$ff) if((bool~) mode_8bpppixelcell::$25) goto mode_8bpppixelcell::@4 to:mode_8bpppixelcell::@14 mode_8bpppixelcell::@14: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@13 @@ -3264,7 +3264,7 @@ mode_8bpppixelcell::@return: scope:[mode_8bpppixelcell] from mode_8bpppixelcell return to:@return mode_8bppchunkybmm: scope:[mode_8bppchunkybmm] from menu::@44 - (dword) mode_8bppchunkybmm::PLANEB#0 ← (dword/signed dword) 131072 + (dword) mode_8bppchunkybmm::PLANEB#0 ← (dword/signed dword) $20000 (byte~) mode_8bppchunkybmm::$0 ← (byte) DTV_HIGHCOLOR#0 | (byte) DTV_LINEAR#0 (byte~) mode_8bppchunkybmm::$1 ← (byte~) mode_8bppchunkybmm::$0 | (byte) DTV_CHUNKY#0 (byte~) mode_8bppchunkybmm::$2 ← (byte~) mode_8bppchunkybmm::$1 | (byte) DTV_COLORRAM_OFF#0 @@ -3298,13 +3298,13 @@ mode_8bppchunkybmm::@1: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm mode (byte) dtv_control#263 ← phi( mode_8bppchunkybmm/(byte) dtv_control#51 mode_8bppchunkybmm::@1/(byte) dtv_control#263 ) (byte) mode_8bppchunkybmm::i#2 ← phi( mode_8bppchunkybmm/(byte) mode_8bppchunkybmm::i#0 mode_8bppchunkybmm::@1/(byte) mode_8bppchunkybmm::i#1 ) *((byte*) DTV_PALETTE#0 + (byte) mode_8bppchunkybmm::i#2) ← (byte) mode_8bppchunkybmm::i#2 - (byte) mode_8bppchunkybmm::i#1 ← (byte) mode_8bppchunkybmm::i#2 + rangenext(0,15) - (bool~) mode_8bppchunkybmm::$16 ← (byte) mode_8bppchunkybmm::i#1 != rangelast(0,15) + (byte) mode_8bppchunkybmm::i#1 ← (byte) mode_8bppchunkybmm::i#2 + rangenext(0,$f) + (bool~) mode_8bppchunkybmm::$16 ← (byte) mode_8bppchunkybmm::i#1 != rangelast(0,$f) if((bool~) mode_8bppchunkybmm::$16) goto mode_8bppchunkybmm::@1 to:mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@5: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@1 (byte) dtv_control#254 ← phi( mode_8bppchunkybmm::@1/(byte) dtv_control#263 ) - (dword~) mode_8bppchunkybmm::$17 ← (dword) mode_8bppchunkybmm::PLANEB#0 / (word/signed word/dword/signed dword) 16384 + (dword~) mode_8bppchunkybmm::$17 ← (dword) mode_8bppchunkybmm::PLANEB#0 / (word/signed word/dword/signed dword) $4000 (byte~) mode_8bppchunkybmm::$18 ← ((byte)) (dword~) mode_8bppchunkybmm::$17 (byte) mode_8bppchunkybmm::gfxbCpuBank#0 ← (byte~) mode_8bppchunkybmm::$18 (byte) dtvSetCpuBankSegment1::cpuBankIdx#0 ← (byte) mode_8bppchunkybmm::gfxbCpuBank#0 @@ -3314,7 +3314,7 @@ mode_8bppchunkybmm::@9: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@5 (byte) dtv_control#245 ← phi( mode_8bppchunkybmm::@5/(byte) dtv_control#254 ) (byte) mode_8bppchunkybmm::gfxbCpuBank#3 ← phi( mode_8bppchunkybmm::@5/(byte) mode_8bppchunkybmm::gfxbCpuBank#0 ) (byte) mode_8bppchunkybmm::gfxbCpuBank#1 ← ++ (byte) mode_8bppchunkybmm::gfxbCpuBank#3 - (byte*) mode_8bppchunkybmm::gfxb#0 ← ((byte*)) (word/signed word/dword/signed dword) 16384 + (byte*) mode_8bppchunkybmm::gfxb#0 ← ((byte*)) (word/signed word/dword/signed dword) $4000 (byte) mode_8bppchunkybmm::y#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@2: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@7 mode_8bppchunkybmm::@9 @@ -3330,7 +3330,7 @@ mode_8bppchunkybmm::@3: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@2 (byte) mode_8bppchunkybmm::y#5 ← phi( mode_8bppchunkybmm::@2/(byte) mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::@4/(byte) mode_8bppchunkybmm::y#2 ) (word) mode_8bppchunkybmm::x#4 ← phi( mode_8bppchunkybmm::@2/(word) mode_8bppchunkybmm::x#0 mode_8bppchunkybmm::@4/(word) mode_8bppchunkybmm::x#1 ) (byte*) mode_8bppchunkybmm::gfxb#3 ← phi( mode_8bppchunkybmm::@2/(byte*) mode_8bppchunkybmm::gfxb#5 mode_8bppchunkybmm::@4/(byte*) mode_8bppchunkybmm::gfxb#1 ) - (bool~) mode_8bppchunkybmm::$20 ← (byte*) mode_8bppchunkybmm::gfxb#3 == (word/dword/signed dword) 32768 + (bool~) mode_8bppchunkybmm::$20 ← (byte*) mode_8bppchunkybmm::gfxb#3 == (word/dword/signed dword) $8000 (bool~) mode_8bppchunkybmm::$21 ← ! (bool~) mode_8bppchunkybmm::$20 if((bool~) mode_8bppchunkybmm::$21) goto mode_8bppchunkybmm::@4 to:mode_8bppchunkybmm::@6 @@ -3345,8 +3345,8 @@ mode_8bppchunkybmm::@4: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@10 (byte) mode_8bppchunkybmm::c#0 ← (byte~) mode_8bppchunkybmm::$24 *((byte*) mode_8bppchunkybmm::gfxb#4) ← (byte) mode_8bppchunkybmm::c#0 (byte*) mode_8bppchunkybmm::gfxb#1 ← ++ (byte*) mode_8bppchunkybmm::gfxb#4 - (word) mode_8bppchunkybmm::x#1 ← (word) mode_8bppchunkybmm::x#2 + rangenext(0,319) - (bool~) mode_8bppchunkybmm::$25 ← (word) mode_8bppchunkybmm::x#1 != rangelast(0,319) + (word) mode_8bppchunkybmm::x#1 ← (word) mode_8bppchunkybmm::x#2 + rangenext(0,$13f) + (bool~) mode_8bppchunkybmm::$25 ← (word) mode_8bppchunkybmm::x#1 != rangelast(0,$13f) if((bool~) mode_8bppchunkybmm::$25) goto mode_8bppchunkybmm::@3 to:mode_8bppchunkybmm::@7 mode_8bppchunkybmm::@6: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@3 @@ -3363,20 +3363,20 @@ mode_8bppchunkybmm::@10: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@6 (word) mode_8bppchunkybmm::x#3 ← phi( mode_8bppchunkybmm::@6/(word) mode_8bppchunkybmm::x#5 ) (byte) mode_8bppchunkybmm::gfxbCpuBank#5 ← phi( mode_8bppchunkybmm::@6/(byte) mode_8bppchunkybmm::gfxbCpuBank#4 ) (byte) mode_8bppchunkybmm::gfxbCpuBank#2 ← ++ (byte) mode_8bppchunkybmm::gfxbCpuBank#5 - (byte*) mode_8bppchunkybmm::gfxb#2 ← ((byte*)) (word/signed word/dword/signed dword) 16384 + (byte*) mode_8bppchunkybmm::gfxb#2 ← ((byte*)) (word/signed word/dword/signed dword) $4000 to:mode_8bppchunkybmm::@4 mode_8bppchunkybmm::@7: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@4 (byte) dtv_control#188 ← phi( mode_8bppchunkybmm::@4/(byte) dtv_control#204 ) (byte) mode_8bppchunkybmm::gfxbCpuBank#9 ← phi( mode_8bppchunkybmm::@4/(byte) mode_8bppchunkybmm::gfxbCpuBank#8 ) (byte*) mode_8bppchunkybmm::gfxb#6 ← phi( mode_8bppchunkybmm::@4/(byte*) mode_8bppchunkybmm::gfxb#1 ) (byte) mode_8bppchunkybmm::y#3 ← phi( mode_8bppchunkybmm::@4/(byte) mode_8bppchunkybmm::y#2 ) - (byte) mode_8bppchunkybmm::y#1 ← (byte) mode_8bppchunkybmm::y#3 + rangenext(0,199) - (bool~) mode_8bppchunkybmm::$26 ← (byte) mode_8bppchunkybmm::y#1 != rangelast(0,199) + (byte) mode_8bppchunkybmm::y#1 ← (byte) mode_8bppchunkybmm::y#3 + rangenext(0,$c7) + (bool~) mode_8bppchunkybmm::$26 ← (byte) mode_8bppchunkybmm::y#1 != rangelast(0,$c7) if((bool~) mode_8bppchunkybmm::$26) goto mode_8bppchunkybmm::@2 to:mode_8bppchunkybmm::@8 mode_8bppchunkybmm::@8: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@7 (byte) dtv_control#160 ← phi( mode_8bppchunkybmm::@7/(byte) dtv_control#188 ) - (byte/signed byte/word/signed word/dword/signed dword~) mode_8bppchunkybmm::$27 ← (word/signed word/dword/signed dword) 16384 / (word/signed word/dword/signed dword) 16384 + (byte/signed byte/word/signed word/dword/signed dword~) mode_8bppchunkybmm::$27 ← (word/signed word/dword/signed dword) $4000 / (word/signed word/dword/signed dword) $4000 (byte~) mode_8bppchunkybmm::$28 ← ((byte)) (byte/signed byte/word/signed word/dword/signed dword~) mode_8bppchunkybmm::$27 (byte) dtvSetCpuBankSegment1::cpuBankIdx#2 ← (byte~) mode_8bppchunkybmm::$28 call dtvSetCpuBankSegment1 @@ -3685,8 +3685,8 @@ SYMBOL TABLE SSA (byte) DTV_OVERSCAN#0 (byte*) DTV_PALETTE (byte*) DTV_PALETTE#0 -(byte[16]) DTV_PALETTE_DEFAULT -(byte[16]) DTV_PALETTE_DEFAULT#0 +(byte[$10]) DTV_PALETTE_DEFAULT +(byte[$10]) DTV_PALETTE_DEFAULT#0 (byte*) DTV_PLANEA_MODULO_HI (byte*) DTV_PLANEA_MODULO_HI#0 (byte*) DTV_PLANEA_MODULO_LO @@ -4438,16 +4438,16 @@ SYMBOL TABLE SSA (byte) bitmap_plot::y#2 (byte) bitmap_plot::y#3 (byte) bitmap_plot::y#4 -(byte[256]) bitmap_plot_bit -(byte[256]) bitmap_plot_bit#0 -(byte[256]) bitmap_plot_xhi -(byte[256]) bitmap_plot_xhi#0 -(byte[256]) bitmap_plot_xlo -(byte[256]) bitmap_plot_xlo#0 -(byte[256]) bitmap_plot_yhi -(byte[256]) bitmap_plot_yhi#0 -(byte[256]) bitmap_plot_ylo -(byte[256]) bitmap_plot_ylo#0 +(byte[$100]) bitmap_plot_bit +(byte[$100]) bitmap_plot_bit#0 +(byte[$100]) bitmap_plot_xhi +(byte[$100]) bitmap_plot_xhi#0 +(byte[$100]) bitmap_plot_xlo +(byte[$100]) bitmap_plot_xlo#0 +(byte[$100]) bitmap_plot_yhi +(byte[$100]) bitmap_plot_yhi#0 +(byte[$100]) bitmap_plot_ylo +(byte[$100]) bitmap_plot_ylo#0 (void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx) (label) dtvSetCpuBankSegment1::@return (byte*) dtvSetCpuBankSegment1::cpuBank @@ -6541,7 +6541,7 @@ Inversing boolean not [966] (bool~) mode_ctrl::$26 ← (byte~) mode_ctrl::$24 == Inversing boolean not [978] (bool~) mode_ctrl::$30 ← (byte~) mode_ctrl::$28 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [977] (bool~) mode_ctrl::$29 ← (byte~) mode_ctrl::$28 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not [985] (bool~) mode_ctrl::$32 ← (byte) mode_ctrl::ctrl#14 == (byte) dtv_control#72 from [984] (bool~) mode_ctrl::$31 ← (byte) mode_ctrl::ctrl#14 != (byte) dtv_control#72 Inversing boolean not [1925] (bool~) mode_8bpppixelcell::$21 ← (byte~) mode_8bpppixelcell::$19 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1924] (bool~) mode_8bpppixelcell::$20 ← (byte~) mode_8bpppixelcell::$19 != (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not [2002] (bool~) mode_8bppchunkybmm::$21 ← (byte*) mode_8bppchunkybmm::gfxb#3 != (word/dword/signed dword) 32768 from [2001] (bool~) mode_8bppchunkybmm::$20 ← (byte*) mode_8bppchunkybmm::gfxb#3 == (word/dword/signed dword) 32768 +Inversing boolean not [2002] (bool~) mode_8bppchunkybmm::$21 ← (byte*) mode_8bppchunkybmm::gfxb#3 != (word/dword/signed dword) $8000 from [2001] (bool~) mode_8bppchunkybmm::$20 ← (byte*) mode_8bppchunkybmm::gfxb#3 == (word/dword/signed dword) $8000 Successful SSA optimization Pass2UnaryNotSimplification Alias (byte*) print_screen#0 = (byte*) print_line_cursor#0 (byte*) print_char_cursor#0 (byte*) print_screen#83 (byte*) print_line_cursor#102 (byte*) print_char_cursor#102 (byte*) print_screen#82 (byte*) print_line_cursor#101 (byte*) print_char_cursor#101 (byte*) print_screen#80 (byte*) print_line_cursor#99 (byte*) print_char_cursor#99 (byte*) print_screen#66 (byte*) print_line_cursor#85 (byte*) print_char_cursor#85 (byte*) print_screen#65 (byte*) print_line_cursor#83 (byte*) print_char_cursor#84 (byte*) print_screen#50 (byte*) print_line_cursor#67 (byte*) print_char_cursor#70 (byte*) print_screen#33 (byte*) print_line_cursor#49 (byte*) print_char_cursor#51 Alias (byte*) print_str_lines::str#2 = (byte*) print_str_lines::str#6 @@ -7149,11 +7149,11 @@ Simple Condition (bool~) print_str_lines::$3 [195] if((byte) print_str_lines::ch Simple Condition (bool~) print_ln::$1 [213] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1 Simple Condition (bool~) print_cls::$1 [229] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 Simple Condition (bool~) bitmap_init::$4 [367] if((byte) bitmap_init::bits#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@2 -Simple Condition (bool~) bitmap_init::$5 [371] if((byte) bitmap_init::x#1!=rangelast(0,255)) goto bitmap_init::@1 +Simple Condition (bool~) bitmap_init::$5 [371] if((byte) bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 Simple Condition (bool~) bitmap_init::$12 [386] if((byte~) bitmap_init::$10!=(byte/signed byte/word/signed word/dword/signed dword) 7) goto bitmap_init::@4 -Simple Condition (bool~) bitmap_init::$15 [390] if((byte) bitmap_init::y#1!=rangelast(0,255)) goto bitmap_init::@3 -Simple Condition (bool~) bitmap_clear::$1 [406] if((byte) bitmap_clear::x#1!=rangelast(0,199)) goto bitmap_clear::@2 -Simple Condition (bool~) bitmap_clear::$2 [410] if((byte) bitmap_clear::y#1!=rangelast(0,39)) goto bitmap_clear::@1 +Simple Condition (bool~) bitmap_init::$15 [390] if((byte) bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@3 +Simple Condition (bool~) bitmap_clear::$1 [406] if((byte) bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2 +Simple Condition (bool~) bitmap_clear::$2 [410] if((byte) bitmap_clear::y#1!=rangelast(0,$27)) goto bitmap_clear::@1 Simple Condition (bool~) bitmap_line::$0 [424] if((byte) bitmap_line::x0#0<(byte) bitmap_line::x1#0) goto bitmap_line::@1 Simple Condition (bool~) bitmap_line::$12 [429] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@9 Simple Condition (bool~) bitmap_line::$2 [434] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@2 @@ -7169,7 +7169,7 @@ Simple Condition (bool~) bitmap_line_ydxi::$4 [571] if((byte) bitmap_line_ydxi:: Simple Condition (bool~) bitmap_line_ydxi::$7 [575] if((byte) bitmap_line_ydxi::y#2!=(byte/signed word/word/dword/signed dword~) bitmap_line_ydxi::$6) goto bitmap_line_ydxi::@1 Simple Condition (bool~) bitmap_line_ydxd::$4 [595] if((byte) bitmap_line_ydxd::yd#5>=(byte) bitmap_line_ydxd::e#1) goto bitmap_line_ydxd::@2 Simple Condition (bool~) bitmap_line_ydxd::$7 [599] if((byte) bitmap_line_ydxd::y#3!=(byte/signed word/word/dword/signed dword~) bitmap_line_ydxd::$6) goto bitmap_line_ydxd::@1 -Simple Condition (bool~) menu::$23 [687] if((byte) menu::i#1!=rangelast(0,15)) goto menu::@1 +Simple Condition (bool~) menu::$23 [687] if((byte) menu::i#1!=rangelast(0,$f)) goto menu::@1 Simple Condition (bool~) menu::$25 [695] if((byte*) menu::c#1!=(byte*~) menu::$24) goto menu::@2 Simple Condition (bool~) menu::$31 [724] if((byte~) menu::$29==(byte/signed byte/word/signed word/dword/signed dword) 0) goto menu::@6 Simple Condition (bool~) menu::$35 [733] if((byte~) menu::$33==(byte/signed byte/word/signed word/dword/signed dword) 0) goto menu::@7 @@ -7183,7 +7183,7 @@ Simple Condition (bool~) menu::$63 [830] if((byte~) menu::$61==(byte/signed byte Simple Condition (bool~) menu::$67 [843] if((byte~) menu::$65==(byte/signed byte/word/signed word/dword/signed dword) 0) goto menu::@15 Simple Condition (bool~) menu::$71 [856] if((byte~) menu::$69==(byte/signed byte/word/signed word/dword/signed dword) 0) goto menu::@16 Simple Condition (bool~) menu::$75 [869] if((byte~) menu::$73==(byte/signed byte/word/signed word/dword/signed dword) 0) goto menu::@17 -Simple Condition (bool~) mode_ctrl::$0 [887] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto mode_ctrl::@5 +Simple Condition (bool~) mode_ctrl::$0 [887] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto mode_ctrl::@5 Simple Condition (bool~) mode_ctrl::$3 [897] if((byte~) mode_ctrl::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_ctrl::@7 Simple Condition (bool~) mode_ctrl::$6 [907] if((byte~) mode_ctrl::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_ctrl::@8 Simple Condition (bool~) mode_ctrl::$10 [919] if((byte~) mode_ctrl::$8==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_ctrl::@9 @@ -7193,125 +7193,125 @@ Simple Condition (bool~) mode_ctrl::$22 [955] if((byte~) mode_ctrl::$20==(byte/s Simple Condition (bool~) mode_ctrl::$26 [967] if((byte~) mode_ctrl::$24==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_ctrl::@13 Simple Condition (bool~) mode_ctrl::$30 [979] if((byte~) mode_ctrl::$28==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_ctrl::@14 Simple Condition (bool~) mode_ctrl::$32 [986] if((byte) mode_ctrl::ctrl#14==(byte) dtv_control#114) goto mode_ctrl::@15 -Simple Condition (bool~) mode_stdchar::$23 [1035] if((byte) mode_stdchar::i#1!=rangelast(0,15)) goto mode_stdchar::@1 -Simple Condition (bool~) mode_stdchar::$30 [1057] if((byte) mode_stdchar::cx#1!=rangelast(0,39)) goto mode_stdchar::@3 -Simple Condition (bool~) mode_stdchar::$31 [1061] if((byte) mode_stdchar::cy#1!=rangelast(0,24)) goto mode_stdchar::@2 -Simple Condition (bool~) mode_ecmchar::$24 [1111] if((byte) mode_ecmchar::i#1!=rangelast(0,15)) goto mode_ecmchar::@1 -Simple Condition (bool~) mode_ecmchar::$31 [1136] if((byte) mode_ecmchar::cx#1!=rangelast(0,39)) goto mode_ecmchar::@3 -Simple Condition (bool~) mode_ecmchar::$32 [1140] if((byte) mode_ecmchar::cy#1!=rangelast(0,24)) goto mode_ecmchar::@2 -Simple Condition (bool~) mode_mcchar::$24 [1190] if((byte) mode_mcchar::i#1!=rangelast(0,15)) goto mode_mcchar::@1 -Simple Condition (bool~) mode_mcchar::$31 [1214] if((byte) mode_mcchar::cx#1!=rangelast(0,39)) goto mode_mcchar::@3 -Simple Condition (bool~) mode_mcchar::$32 [1218] if((byte) mode_mcchar::cy#1!=rangelast(0,24)) goto mode_mcchar::@2 -Simple Condition (bool~) mode_stdbitmap::$18 [1259] if((byte) mode_stdbitmap::i#1!=rangelast(0,15)) goto mode_stdbitmap::@1 -Simple Condition (bool~) mode_stdbitmap::$24 [1279] if((byte) mode_stdbitmap::cx#1!=rangelast(0,39)) goto mode_stdbitmap::@3 -Simple Condition (bool~) mode_stdbitmap::$25 [1283] if((byte) mode_stdbitmap::cy#1!=rangelast(0,24)) goto mode_stdbitmap::@2 +Simple Condition (bool~) mode_stdchar::$23 [1035] if((byte) mode_stdchar::i#1!=rangelast(0,$f)) goto mode_stdchar::@1 +Simple Condition (bool~) mode_stdchar::$30 [1057] if((byte) mode_stdchar::cx#1!=rangelast(0,$27)) goto mode_stdchar::@3 +Simple Condition (bool~) mode_stdchar::$31 [1061] if((byte) mode_stdchar::cy#1!=rangelast(0,$18)) goto mode_stdchar::@2 +Simple Condition (bool~) mode_ecmchar::$24 [1111] if((byte) mode_ecmchar::i#1!=rangelast(0,$f)) goto mode_ecmchar::@1 +Simple Condition (bool~) mode_ecmchar::$31 [1136] if((byte) mode_ecmchar::cx#1!=rangelast(0,$27)) goto mode_ecmchar::@3 +Simple Condition (bool~) mode_ecmchar::$32 [1140] if((byte) mode_ecmchar::cy#1!=rangelast(0,$18)) goto mode_ecmchar::@2 +Simple Condition (bool~) mode_mcchar::$24 [1190] if((byte) mode_mcchar::i#1!=rangelast(0,$f)) goto mode_mcchar::@1 +Simple Condition (bool~) mode_mcchar::$31 [1214] if((byte) mode_mcchar::cx#1!=rangelast(0,$27)) goto mode_mcchar::@3 +Simple Condition (bool~) mode_mcchar::$32 [1218] if((byte) mode_mcchar::cy#1!=rangelast(0,$18)) goto mode_mcchar::@2 +Simple Condition (bool~) mode_stdbitmap::$18 [1259] if((byte) mode_stdbitmap::i#1!=rangelast(0,$f)) goto mode_stdbitmap::@1 +Simple Condition (bool~) mode_stdbitmap::$24 [1279] if((byte) mode_stdbitmap::cx#1!=rangelast(0,$27)) goto mode_stdbitmap::@3 +Simple Condition (bool~) mode_stdbitmap::$25 [1283] if((byte) mode_stdbitmap::cy#1!=rangelast(0,$18)) goto mode_stdbitmap::@2 Simple Condition (bool~) mode_stdbitmap::$31 [1305] if((byte) mode_stdbitmap::l#1<(byte) mode_stdbitmap::lines_cnt#0) goto mode_stdbitmap::@4 -Simple Condition (bool~) mode_hicolstdchar::$23 [1354] if((byte) mode_hicolstdchar::i#1!=rangelast(0,15)) goto mode_hicolstdchar::@1 -Simple Condition (bool~) mode_hicolstdchar::$28 [1375] if((byte) mode_hicolstdchar::cx#1!=rangelast(0,39)) goto mode_hicolstdchar::@3 -Simple Condition (bool~) mode_hicolstdchar::$29 [1379] if((byte) mode_hicolstdchar::cy#1!=rangelast(0,24)) goto mode_hicolstdchar::@2 -Simple Condition (bool~) mode_hicolecmchar::$24 [1429] if((byte) mode_hicolecmchar::i#1!=rangelast(0,15)) goto mode_hicolecmchar::@1 -Simple Condition (bool~) mode_hicolecmchar::$29 [1453] if((byte) mode_hicolecmchar::cx#1!=rangelast(0,39)) goto mode_hicolecmchar::@3 -Simple Condition (bool~) mode_hicolecmchar::$30 [1457] if((byte) mode_hicolecmchar::cy#1!=rangelast(0,24)) goto mode_hicolecmchar::@2 -Simple Condition (bool~) mode_hicolmcchar::$24 [1507] if((byte) mode_hicolmcchar::i#1!=rangelast(0,15)) goto mode_hicolmcchar::@1 -Simple Condition (bool~) mode_hicolmcchar::$29 [1530] if((byte) mode_hicolmcchar::cx#1!=rangelast(0,39)) goto mode_hicolmcchar::@3 -Simple Condition (bool~) mode_hicolmcchar::$30 [1534] if((byte) mode_hicolmcchar::cy#1!=rangelast(0,24)) goto mode_hicolmcchar::@2 -Simple Condition (bool~) mode_twoplanebitmap::$14 [1582] if((byte) mode_twoplanebitmap::i#1!=rangelast(0,15)) goto mode_twoplanebitmap::@1 -Simple Condition (bool~) mode_twoplanebitmap::$19 [1600] if((byte) mode_twoplanebitmap::cx#1!=rangelast(0,39)) goto mode_twoplanebitmap::@3 -Simple Condition (bool~) mode_twoplanebitmap::$20 [1604] if((byte) mode_twoplanebitmap::cy#1!=rangelast(0,24)) goto mode_twoplanebitmap::@2 +Simple Condition (bool~) mode_hicolstdchar::$23 [1354] if((byte) mode_hicolstdchar::i#1!=rangelast(0,$f)) goto mode_hicolstdchar::@1 +Simple Condition (bool~) mode_hicolstdchar::$28 [1375] if((byte) mode_hicolstdchar::cx#1!=rangelast(0,$27)) goto mode_hicolstdchar::@3 +Simple Condition (bool~) mode_hicolstdchar::$29 [1379] if((byte) mode_hicolstdchar::cy#1!=rangelast(0,$18)) goto mode_hicolstdchar::@2 +Simple Condition (bool~) mode_hicolecmchar::$24 [1429] if((byte) mode_hicolecmchar::i#1!=rangelast(0,$f)) goto mode_hicolecmchar::@1 +Simple Condition (bool~) mode_hicolecmchar::$29 [1453] if((byte) mode_hicolecmchar::cx#1!=rangelast(0,$27)) goto mode_hicolecmchar::@3 +Simple Condition (bool~) mode_hicolecmchar::$30 [1457] if((byte) mode_hicolecmchar::cy#1!=rangelast(0,$18)) goto mode_hicolecmchar::@2 +Simple Condition (bool~) mode_hicolmcchar::$24 [1507] if((byte) mode_hicolmcchar::i#1!=rangelast(0,$f)) goto mode_hicolmcchar::@1 +Simple Condition (bool~) mode_hicolmcchar::$29 [1530] if((byte) mode_hicolmcchar::cx#1!=rangelast(0,$27)) goto mode_hicolmcchar::@3 +Simple Condition (bool~) mode_hicolmcchar::$30 [1534] if((byte) mode_hicolmcchar::cy#1!=rangelast(0,$18)) goto mode_hicolmcchar::@2 +Simple Condition (bool~) mode_twoplanebitmap::$14 [1582] if((byte) mode_twoplanebitmap::i#1!=rangelast(0,$f)) goto mode_twoplanebitmap::@1 +Simple Condition (bool~) mode_twoplanebitmap::$19 [1600] if((byte) mode_twoplanebitmap::cx#1!=rangelast(0,$27)) goto mode_twoplanebitmap::@3 +Simple Condition (bool~) mode_twoplanebitmap::$20 [1604] if((byte) mode_twoplanebitmap::cy#1!=rangelast(0,$18)) goto mode_twoplanebitmap::@2 Simple Condition (bool~) mode_twoplanebitmap::$22 [1613] if((byte~) mode_twoplanebitmap::$21==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_twoplanebitmap::@6 -Simple Condition (bool~) mode_twoplanebitmap::$23 [1623] if((byte) mode_twoplanebitmap::ax#1!=rangelast(0,39)) goto mode_twoplanebitmap::@5 -Simple Condition (bool~) mode_twoplanebitmap::$24 [1627] if((byte) mode_twoplanebitmap::ay#1!=rangelast(0,199)) goto mode_twoplanebitmap::@4 -Simple Condition (bool~) mode_twoplanebitmap::$25 [1638] if((byte) mode_twoplanebitmap::bx#1!=rangelast(0,39)) goto mode_twoplanebitmap::@9 -Simple Condition (bool~) mode_twoplanebitmap::$26 [1642] if((byte) mode_twoplanebitmap::by#1!=rangelast(0,199)) goto mode_twoplanebitmap::@8 -Simple Condition (bool~) mode_sixsfred::$15 [1691] if((byte) mode_sixsfred::i#1!=rangelast(0,15)) goto mode_sixsfred::@1 -Simple Condition (bool~) mode_sixsfred::$18 [1705] if((byte) mode_sixsfred::cx#1!=rangelast(0,39)) goto mode_sixsfred::@3 -Simple Condition (bool~) mode_sixsfred::$19 [1709] if((byte) mode_sixsfred::cy#1!=rangelast(0,24)) goto mode_sixsfred::@2 -Simple Condition (bool~) mode_sixsfred::$22 [1724] if((byte) mode_sixsfred::ax#1!=rangelast(0,39)) goto mode_sixsfred::@5 -Simple Condition (bool~) mode_sixsfred::$23 [1728] if((byte) mode_sixsfred::ay#1!=rangelast(0,199)) goto mode_sixsfred::@4 -Simple Condition (bool~) mode_sixsfred::$24 [1739] if((byte) mode_sixsfred::bx#1!=rangelast(0,39)) goto mode_sixsfred::@7 -Simple Condition (bool~) mode_sixsfred::$25 [1743] if((byte) mode_sixsfred::by#1!=rangelast(0,199)) goto mode_sixsfred::@6 -Simple Condition (bool~) mode_sixsfred2::$13 [1790] if((byte) mode_sixsfred2::i#1!=rangelast(0,15)) goto mode_sixsfred2::@1 -Simple Condition (bool~) mode_sixsfred2::$18 [1806] if((byte) mode_sixsfred2::cx#1!=rangelast(0,39)) goto mode_sixsfred2::@3 -Simple Condition (bool~) mode_sixsfred2::$19 [1810] if((byte) mode_sixsfred2::cy#1!=rangelast(0,24)) goto mode_sixsfred2::@2 -Simple Condition (bool~) mode_sixsfred2::$22 [1825] if((byte) mode_sixsfred2::ax#1!=rangelast(0,39)) goto mode_sixsfred2::@5 -Simple Condition (bool~) mode_sixsfred2::$23 [1829] if((byte) mode_sixsfred2::ay#1!=rangelast(0,199)) goto mode_sixsfred2::@4 -Simple Condition (bool~) mode_sixsfred2::$24 [1840] if((byte) mode_sixsfred2::bx#1!=rangelast(0,39)) goto mode_sixsfred2::@7 -Simple Condition (bool~) mode_sixsfred2::$25 [1844] if((byte) mode_sixsfred2::by#1!=rangelast(0,199)) goto mode_sixsfred2::@6 -Simple Condition (bool~) mode_8bpppixelcell::$12 [1888] if((byte) mode_8bpppixelcell::i#1!=rangelast(0,15)) goto mode_8bpppixelcell::@1 -Simple Condition (bool~) mode_8bpppixelcell::$17 [1903] if((byte) mode_8bpppixelcell::ax#1!=rangelast(0,39)) goto mode_8bpppixelcell::@3 -Simple Condition (bool~) mode_8bpppixelcell::$18 [1907] if((byte) mode_8bpppixelcell::ay#1!=rangelast(0,24)) goto mode_8bpppixelcell::@2 +Simple Condition (bool~) mode_twoplanebitmap::$23 [1623] if((byte) mode_twoplanebitmap::ax#1!=rangelast(0,$27)) goto mode_twoplanebitmap::@5 +Simple Condition (bool~) mode_twoplanebitmap::$24 [1627] if((byte) mode_twoplanebitmap::ay#1!=rangelast(0,$c7)) goto mode_twoplanebitmap::@4 +Simple Condition (bool~) mode_twoplanebitmap::$25 [1638] if((byte) mode_twoplanebitmap::bx#1!=rangelast(0,$27)) goto mode_twoplanebitmap::@9 +Simple Condition (bool~) mode_twoplanebitmap::$26 [1642] if((byte) mode_twoplanebitmap::by#1!=rangelast(0,$c7)) goto mode_twoplanebitmap::@8 +Simple Condition (bool~) mode_sixsfred::$15 [1691] if((byte) mode_sixsfred::i#1!=rangelast(0,$f)) goto mode_sixsfred::@1 +Simple Condition (bool~) mode_sixsfred::$18 [1705] if((byte) mode_sixsfred::cx#1!=rangelast(0,$27)) goto mode_sixsfred::@3 +Simple Condition (bool~) mode_sixsfred::$19 [1709] if((byte) mode_sixsfred::cy#1!=rangelast(0,$18)) goto mode_sixsfred::@2 +Simple Condition (bool~) mode_sixsfred::$22 [1724] if((byte) mode_sixsfred::ax#1!=rangelast(0,$27)) goto mode_sixsfred::@5 +Simple Condition (bool~) mode_sixsfred::$23 [1728] if((byte) mode_sixsfred::ay#1!=rangelast(0,$c7)) goto mode_sixsfred::@4 +Simple Condition (bool~) mode_sixsfred::$24 [1739] if((byte) mode_sixsfred::bx#1!=rangelast(0,$27)) goto mode_sixsfred::@7 +Simple Condition (bool~) mode_sixsfred::$25 [1743] if((byte) mode_sixsfred::by#1!=rangelast(0,$c7)) goto mode_sixsfred::@6 +Simple Condition (bool~) mode_sixsfred2::$13 [1790] if((byte) mode_sixsfred2::i#1!=rangelast(0,$f)) goto mode_sixsfred2::@1 +Simple Condition (bool~) mode_sixsfred2::$18 [1806] if((byte) mode_sixsfred2::cx#1!=rangelast(0,$27)) goto mode_sixsfred2::@3 +Simple Condition (bool~) mode_sixsfred2::$19 [1810] if((byte) mode_sixsfred2::cy#1!=rangelast(0,$18)) goto mode_sixsfred2::@2 +Simple Condition (bool~) mode_sixsfred2::$22 [1825] if((byte) mode_sixsfred2::ax#1!=rangelast(0,$27)) goto mode_sixsfred2::@5 +Simple Condition (bool~) mode_sixsfred2::$23 [1829] if((byte) mode_sixsfred2::ay#1!=rangelast(0,$c7)) goto mode_sixsfred2::@4 +Simple Condition (bool~) mode_sixsfred2::$24 [1840] if((byte) mode_sixsfred2::bx#1!=rangelast(0,$27)) goto mode_sixsfred2::@7 +Simple Condition (bool~) mode_sixsfred2::$25 [1844] if((byte) mode_sixsfred2::by#1!=rangelast(0,$c7)) goto mode_sixsfred2::@6 +Simple Condition (bool~) mode_8bpppixelcell::$12 [1888] if((byte) mode_8bpppixelcell::i#1!=rangelast(0,$f)) goto mode_8bpppixelcell::@1 +Simple Condition (bool~) mode_8bpppixelcell::$17 [1903] if((byte) mode_8bpppixelcell::ax#1!=rangelast(0,$27)) goto mode_8bpppixelcell::@3 +Simple Condition (bool~) mode_8bpppixelcell::$18 [1907] if((byte) mode_8bpppixelcell::ay#1!=rangelast(0,$18)) goto mode_8bpppixelcell::@2 Simple Condition (bool~) mode_8bpppixelcell::$21 [1926] if((byte~) mode_8bpppixelcell::$19==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_8bpppixelcell::@7 Simple Condition (bool~) mode_8bpppixelcell::$23 [1935] if((byte) mode_8bpppixelcell::cp#1!=rangelast(0,7)) goto mode_8bpppixelcell::@6 Simple Condition (bool~) mode_8bpppixelcell::$24 [1941] if((byte) mode_8bpppixelcell::cr#1!=rangelast(0,7)) goto mode_8bpppixelcell::@5 -Simple Condition (bool~) mode_8bpppixelcell::$25 [1945] if((byte) mode_8bpppixelcell::ch#1!=rangelast(0,255)) goto mode_8bpppixelcell::@4 -Simple Condition (bool~) mode_8bppchunkybmm::$16 [1987] if((byte) mode_8bppchunkybmm::i#1!=rangelast(0,15)) goto mode_8bppchunkybmm::@1 -Simple Condition (bool~) mode_8bppchunkybmm::$21 [2003] if((byte*) mode_8bppchunkybmm::gfxb#3!=(word/dword/signed dword) 32768) goto mode_8bppchunkybmm::@4 -Simple Condition (bool~) mode_8bppchunkybmm::$25 [2012] if((word) mode_8bppchunkybmm::x#1!=rangelast(0,319)) goto mode_8bppchunkybmm::@3 -Simple Condition (bool~) mode_8bppchunkybmm::$26 [2022] if((byte) mode_8bppchunkybmm::y#1!=rangelast(0,199)) goto mode_8bppchunkybmm::@2 +Simple Condition (bool~) mode_8bpppixelcell::$25 [1945] if((byte) mode_8bpppixelcell::ch#1!=rangelast(0,$ff)) goto mode_8bpppixelcell::@4 +Simple Condition (bool~) mode_8bppchunkybmm::$16 [1987] if((byte) mode_8bppchunkybmm::i#1!=rangelast(0,$f)) goto mode_8bppchunkybmm::@1 +Simple Condition (bool~) mode_8bppchunkybmm::$21 [2003] if((byte*) mode_8bppchunkybmm::gfxb#3!=(word/dword/signed dword) $8000) goto mode_8bppchunkybmm::@4 +Simple Condition (bool~) mode_8bppchunkybmm::$25 [2012] if((word) mode_8bppchunkybmm::x#1!=rangelast(0,$13f)) goto mode_8bppchunkybmm::@3 +Simple Condition (bool~) mode_8bppchunkybmm::$26 [2022] if((byte) mode_8bppchunkybmm::y#1!=rangelast(0,$c7)) goto mode_8bppchunkybmm::@2 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -7322,85 +7322,85 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 -Constant (const byte*) DTV_FEATURE#0 = ((byte*))53311 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f +Constant (const byte*) DTV_FEATURE#0 = ((byte*))$d03f Constant (const byte) DTV_FEATURE_ENABLE#0 = 1 Constant (const byte) DTV_FEATURE_DISABLE_TIL_RESET#0 = 2 -Constant (const byte*) DTV_CONTROL#0 = ((byte*))53308 +Constant (const byte*) DTV_CONTROL#0 = ((byte*))$d03c Constant (const byte) DTV_LINEAR#0 = 1 Constant (const byte) DTV_BORDER_OFF#0 = 2 Constant (const byte) DTV_HIGHCOLOR#0 = 4 Constant (const byte) DTV_OVERSCAN#0 = 8 -Constant (const byte) DTV_COLORRAM_OFF#0 = 16 -Constant (const byte) DTV_BADLINE_OFF#0 = 32 -Constant (const byte) DTV_CHUNKY#0 = 64 -Constant (const byte*) DTV_PALETTE#0 = ((byte*))53760 -Constant (const byte[16]) DTV_PALETTE_DEFAULT#0 = { 0, 15, 54, 190, 88, 219, 134, 255, 41, 38, 59, 5, 7, 223, 154, 10 } -Constant (const byte*) DTV_PLANEA_START_LO#0 = ((byte*))53306 -Constant (const byte*) DTV_PLANEA_START_MI#0 = ((byte*))53307 -Constant (const byte*) DTV_PLANEA_START_HI#0 = ((byte*))53317 -Constant (const byte*) DTV_PLANEA_STEP#0 = ((byte*))53318 -Constant (const byte*) DTV_PLANEA_MODULO_LO#0 = ((byte*))53304 -Constant (const byte*) DTV_PLANEA_MODULO_HI#0 = ((byte*))53305 -Constant (const byte*) DTV_PLANEB_START_LO#0 = ((byte*))53321 -Constant (const byte*) DTV_PLANEB_START_MI#0 = ((byte*))53322 -Constant (const byte*) DTV_PLANEB_START_HI#0 = ((byte*))53323 -Constant (const byte*) DTV_PLANEB_STEP#0 = ((byte*))53324 -Constant (const byte*) DTV_PLANEB_MODULO_LO#0 = ((byte*))53319 -Constant (const byte*) DTV_PLANEB_MODULO_HI#0 = ((byte*))53320 -Constant (const byte*) DTV_SPRITE_BANK#0 = ((byte*))53325 -Constant (const byte*) DTV_COLOR_BANK_LO#0 = ((byte*))53302 -Constant (const byte*) DTV_COLOR_BANK_HI#0 = ((byte*))53303 -Constant (const dword) DTV_COLOR_BANK_DEFAULT#0 = 120832 -Constant (const byte*) DTV_GRAPHICS_VIC_BANK#0 = ((byte*))53309 -Constant (const byte*) DTV_GRAPHICS_HICOL_BANK#0 = ((byte*))53310 -Constant (const byte*) dtvSetCpuBankSegment1::cpuBank#0 = ((byte*))255 -Constant (const byte*) DTV_BLITTER_SRCA_LO#0 = ((byte*))54048 -Constant (const byte*) DTV_BLITTER_SRCA_MI#0 = ((byte*))54049 -Constant (const byte*) DTV_BLITTER_SRCA_HI#0 = ((byte*))54050 -Constant (const byte*) DTV_BLITTER_SRCA_MOD_LO#0 = ((byte*))54051 -Constant (const byte*) DTV_BLITTER_SRCA_MOD_HI#0 = ((byte*))54052 -Constant (const byte*) DTV_BLITTER_SRCA_LIN_LO#0 = ((byte*))54053 -Constant (const byte*) DTV_BLITTER_SRCA_LIN_HI#0 = ((byte*))54054 -Constant (const byte*) DTV_BLITTER_SRCA_STEP#0 = ((byte*))54055 -Constant (const byte*) DTV_BLITTER_SRCB_LO#0 = ((byte*))54056 -Constant (const byte*) DTV_BLITTER_SRCB_MI#0 = ((byte*))54057 -Constant (const byte*) DTV_BLITTER_SRCB_HI#0 = ((byte*))54058 -Constant (const byte*) DTV_BLITTER_SRCB_MOD_LO#0 = ((byte*))54059 -Constant (const byte*) DTV_BLITTER_SRCB_MOD_HI#0 = ((byte*))54060 -Constant (const byte*) DTV_BLITTER_SRCB_LIN_LO#0 = ((byte*))54061 -Constant (const byte*) DTV_BLITTER_SRCB_LIN_HI#0 = ((byte*))54062 -Constant (const byte*) DTV_BLITTER_SRCB_STEP#0 = ((byte*))54063 -Constant (const byte*) DTV_BLITTER_DEST_LO#0 = ((byte*))54064 -Constant (const byte*) DTV_BLITTER_DEST_MI#0 = ((byte*))54065 -Constant (const byte*) DTV_BLITTER_DEST_HI#0 = ((byte*))54066 -Constant (const byte*) DTV_BLITTER_DEST_MOD_LO#0 = ((byte*))54067 -Constant (const byte*) DTV_BLITTER_DEST_MOD_HI#0 = ((byte*))54068 -Constant (const byte*) DTV_BLITTER_DEST_LIN_LO#0 = ((byte*))54069 -Constant (const byte*) DTV_BLITTER_DEST_LIN_HI#0 = ((byte*))54070 -Constant (const byte*) DTV_BLITTER_DEST_STEP#0 = ((byte*))54071 -Constant (const byte*) DTV_BLITTER_LEN_LO#0 = ((byte*))54072 -Constant (const byte*) DTV_BLITTER_LEN_HI#0 = ((byte*))54073 -Constant (const byte*) DTV_BLITTER_CONTROL#0 = ((byte*))54074 +Constant (const byte) DTV_COLORRAM_OFF#0 = $10 +Constant (const byte) DTV_BADLINE_OFF#0 = $20 +Constant (const byte) DTV_CHUNKY#0 = $40 +Constant (const byte*) DTV_PALETTE#0 = ((byte*))$d200 +Constant (const byte[$10]) DTV_PALETTE_DEFAULT#0 = { 0, $f, $36, $be, $58, $db, $86, $ff, $29, $26, $3b, 5, 7, $df, $9a, $a } +Constant (const byte*) DTV_PLANEA_START_LO#0 = ((byte*))$d03a +Constant (const byte*) DTV_PLANEA_START_MI#0 = ((byte*))$d03b +Constant (const byte*) DTV_PLANEA_START_HI#0 = ((byte*))$d045 +Constant (const byte*) DTV_PLANEA_STEP#0 = ((byte*))$d046 +Constant (const byte*) DTV_PLANEA_MODULO_LO#0 = ((byte*))$d038 +Constant (const byte*) DTV_PLANEA_MODULO_HI#0 = ((byte*))$d039 +Constant (const byte*) DTV_PLANEB_START_LO#0 = ((byte*))$d049 +Constant (const byte*) DTV_PLANEB_START_MI#0 = ((byte*))$d04a +Constant (const byte*) DTV_PLANEB_START_HI#0 = ((byte*))$d04b +Constant (const byte*) DTV_PLANEB_STEP#0 = ((byte*))$d04c +Constant (const byte*) DTV_PLANEB_MODULO_LO#0 = ((byte*))$d047 +Constant (const byte*) DTV_PLANEB_MODULO_HI#0 = ((byte*))$d048 +Constant (const byte*) DTV_SPRITE_BANK#0 = ((byte*))$d04d +Constant (const byte*) DTV_COLOR_BANK_LO#0 = ((byte*))$d036 +Constant (const byte*) DTV_COLOR_BANK_HI#0 = ((byte*))$d037 +Constant (const dword) DTV_COLOR_BANK_DEFAULT#0 = $1d800 +Constant (const byte*) DTV_GRAPHICS_VIC_BANK#0 = ((byte*))$d03d +Constant (const byte*) DTV_GRAPHICS_HICOL_BANK#0 = ((byte*))$d03e +Constant (const byte*) dtvSetCpuBankSegment1::cpuBank#0 = ((byte*))$ff +Constant (const byte*) DTV_BLITTER_SRCA_LO#0 = ((byte*))$d320 +Constant (const byte*) DTV_BLITTER_SRCA_MI#0 = ((byte*))$d321 +Constant (const byte*) DTV_BLITTER_SRCA_HI#0 = ((byte*))$d322 +Constant (const byte*) DTV_BLITTER_SRCA_MOD_LO#0 = ((byte*))$d323 +Constant (const byte*) DTV_BLITTER_SRCA_MOD_HI#0 = ((byte*))$d324 +Constant (const byte*) DTV_BLITTER_SRCA_LIN_LO#0 = ((byte*))$d325 +Constant (const byte*) DTV_BLITTER_SRCA_LIN_HI#0 = ((byte*))$d326 +Constant (const byte*) DTV_BLITTER_SRCA_STEP#0 = ((byte*))$d327 +Constant (const byte*) DTV_BLITTER_SRCB_LO#0 = ((byte*))$d328 +Constant (const byte*) DTV_BLITTER_SRCB_MI#0 = ((byte*))$d329 +Constant (const byte*) DTV_BLITTER_SRCB_HI#0 = ((byte*))$d32a +Constant (const byte*) DTV_BLITTER_SRCB_MOD_LO#0 = ((byte*))$d32b +Constant (const byte*) DTV_BLITTER_SRCB_MOD_HI#0 = ((byte*))$d32c +Constant (const byte*) DTV_BLITTER_SRCB_LIN_LO#0 = ((byte*))$d32d +Constant (const byte*) DTV_BLITTER_SRCB_LIN_HI#0 = ((byte*))$d32e +Constant (const byte*) DTV_BLITTER_SRCB_STEP#0 = ((byte*))$d32f +Constant (const byte*) DTV_BLITTER_DEST_LO#0 = ((byte*))$d330 +Constant (const byte*) DTV_BLITTER_DEST_MI#0 = ((byte*))$d331 +Constant (const byte*) DTV_BLITTER_DEST_HI#0 = ((byte*))$d332 +Constant (const byte*) DTV_BLITTER_DEST_MOD_LO#0 = ((byte*))$d333 +Constant (const byte*) DTV_BLITTER_DEST_MOD_HI#0 = ((byte*))$d334 +Constant (const byte*) DTV_BLITTER_DEST_LIN_LO#0 = ((byte*))$d335 +Constant (const byte*) DTV_BLITTER_DEST_LIN_HI#0 = ((byte*))$d336 +Constant (const byte*) DTV_BLITTER_DEST_STEP#0 = ((byte*))$d337 +Constant (const byte*) DTV_BLITTER_LEN_LO#0 = ((byte*))$d338 +Constant (const byte*) DTV_BLITTER_LEN_HI#0 = ((byte*))$d339 +Constant (const byte*) DTV_BLITTER_CONTROL#0 = ((byte*))$d33a Constant (const byte) DTV_BLIT_FORCE_START#0 = 1 Constant (const byte) DTV_BLIT_SRCA_FWD#0 = 2 Constant (const byte) DTV_BLIT_SRCB_FWD#0 = 4 Constant (const byte) DTV_BLIT_DEST_FWD#0 = 8 -Constant (const byte) DTV_BLIT_VIC_IRQ#0 = 16 -Constant (const byte) DTV_BLIT_CIA_IRQ#0 = 32 -Constant (const byte) DTV_BLIT_VBLANK#0 = 64 -Constant (const byte) DTV_BLIT_IRQ_EN#0 = 128 -Constant (const byte*) DTV_BLITTER_TRANSPARANCY#0 = ((byte*))54075 +Constant (const byte) DTV_BLIT_VIC_IRQ#0 = $10 +Constant (const byte) DTV_BLIT_CIA_IRQ#0 = $20 +Constant (const byte) DTV_BLIT_VBLANK#0 = $40 +Constant (const byte) DTV_BLIT_IRQ_EN#0 = $80 +Constant (const byte*) DTV_BLITTER_TRANSPARANCY#0 = ((byte*))$d33b Constant (const byte) DTV_BLIT_DISABLE_B#0 = 1 Constant (const byte) DTV_BLIT_WRITE_TRANSPARENT#0 = 2 Constant (const byte) DTV_BLIT_WRITE_NONTRANSPARENT#0 = 4 Constant (const byte) DTV_BLIT_TRANSPARANCY_NONE#0 = 0 -Constant (const byte*) DTV_BLITTER_ALU#0 = ((byte*))54078 +Constant (const byte*) DTV_BLITTER_ALU#0 = ((byte*))$d33e Constant (const byte) DTV_BLIT_SHIFT0#0 = 0 Constant (const byte) DTV_BLIT_SHIFT1#0 = 1 Constant (const byte) DTV_BLIT_SHIFT2#0 = 2 @@ -7411,20 +7411,20 @@ Constant (const byte) DTV_BLIT_SHIFT6#0 = 6 Constant (const byte) DTV_BLIT_SHIFT7#0 = 7 Constant (const byte) DTV_BLIT_AND#0 = 0 Constant (const byte) DTV_BLIT_NAND#0 = 8 -Constant (const byte) DTV_BLIT_NOR#0 = 16 -Constant (const byte) DTV_BLIT_OR#0 = 24 -Constant (const byte) DTV_BLIT_XOR#0 = 32 -Constant (const byte) DTV_BLIT_XNOR#0 = 40 -Constant (const byte) DTV_BLIT_ADD#0 = 48 -Constant (const byte) DTV_BLIT_SUB#0 = 56 -Constant (const byte*) DTV_BLITTER_CONTROL2#0 = ((byte*))54079 +Constant (const byte) DTV_BLIT_NOR#0 = $10 +Constant (const byte) DTV_BLIT_OR#0 = $18 +Constant (const byte) DTV_BLIT_XOR#0 = $20 +Constant (const byte) DTV_BLIT_XNOR#0 = $28 +Constant (const byte) DTV_BLIT_ADD#0 = $30 +Constant (const byte) DTV_BLIT_SUB#0 = $38 +Constant (const byte*) DTV_BLITTER_CONTROL2#0 = ((byte*))$d33f Constant (const byte) DTV_BLIT_CLEAR_IRQ#0 = 1 Constant (const byte) DTV_BLIT_SRCA_CONT#0 = 2 Constant (const byte) DTV_BLIT_SRCB_CONT#0 = 4 Constant (const byte) DTV_BLIT_DEST_CONT#0 = 8 Constant (const byte) DTV_BLIT_STATUS_BUSY#0 = 1 Constant (const byte) DTV_BLIT_STATUS_IRQ#0 = 2 -Constant (const byte*) print_screen#0 = ((byte*))1024 +Constant (const byte*) print_screen#0 = ((byte*))$400 Constant (const byte[]) print_hextab#0 = $21 Constant (const byte) KEY_DEL#0 = 0 Constant (const byte) KEY_RETURN#0 = 1 @@ -7436,62 +7436,62 @@ Constant (const byte) KEY_F5#0 = 6 Constant (const byte) KEY_CRSR_DOWN#0 = 7 Constant (const byte) KEY_3#0 = 8 Constant (const byte) KEY_W#0 = 9 -Constant (const byte) KEY_A#0 = 10 -Constant (const byte) KEY_4#0 = 11 -Constant (const byte) KEY_Z#0 = 12 -Constant (const byte) KEY_S#0 = 13 -Constant (const byte) KEY_E#0 = 14 -Constant (const byte) KEY_LSHIFT#0 = 15 -Constant (const byte) KEY_5#0 = 16 -Constant (const byte) KEY_R#0 = 17 -Constant (const byte) KEY_D#0 = 18 -Constant (const byte) KEY_6#0 = 19 -Constant (const byte) KEY_C#0 = 20 -Constant (const byte) KEY_F#0 = 21 -Constant (const byte) KEY_T#0 = 22 -Constant (const byte) KEY_X#0 = 23 -Constant (const byte) KEY_7#0 = 24 -Constant (const byte) KEY_Y#0 = 25 -Constant (const byte) KEY_G#0 = 26 -Constant (const byte) KEY_8#0 = 27 -Constant (const byte) KEY_B#0 = 28 -Constant (const byte) KEY_H#0 = 29 -Constant (const byte) KEY_U#0 = 30 -Constant (const byte) KEY_V#0 = 31 -Constant (const byte) KEY_9#0 = 32 -Constant (const byte) KEY_I#0 = 33 -Constant (const byte) KEY_J#0 = 34 -Constant (const byte) KEY_0#0 = 35 -Constant (const byte) KEY_M#0 = 36 -Constant (const byte) KEY_K#0 = 37 -Constant (const byte) KEY_O#0 = 38 -Constant (const byte) KEY_N#0 = 39 -Constant (const byte) KEY_PLUS#0 = 40 -Constant (const byte) KEY_P#0 = 41 -Constant (const byte) KEY_L#0 = 42 -Constant (const byte) KEY_MINUS#0 = 43 -Constant (const byte) KEY_DOT#0 = 44 -Constant (const byte) KEY_COLON#0 = 45 -Constant (const byte) KEY_AT#0 = 46 -Constant (const byte) KEY_COMMA#0 = 47 -Constant (const byte) KEY_POUND#0 = 48 -Constant (const byte) KEY_ASTERISK#0 = 49 -Constant (const byte) KEY_SEMICOLON#0 = 50 -Constant (const byte) KEY_HOME#0 = 51 -Constant (const byte) KEY_RSHIFT#0 = 52 -Constant (const byte) KEY_EQUALS#0 = 53 -Constant (const byte) KEY_ARROW_UP#0 = 54 -Constant (const byte) KEY_SLASH#0 = 55 -Constant (const byte) KEY_1#0 = 56 -Constant (const byte) KEY_ARROW_LEFT#0 = 57 -Constant (const byte) KEY_CTRL#0 = 58 -Constant (const byte) KEY_2#0 = 59 -Constant (const byte) KEY_SPACE#0 = 60 -Constant (const byte) KEY_COMMODORE#0 = 61 -Constant (const byte) KEY_Q#0 = 62 -Constant (const byte) KEY_RUNSTOP#0 = 63 -Constant (const byte[8]) keyboard_matrix_row_bitmask#0 = { 254, 253, 251, 247, 239, 223, 191, 127 } -Constant (const byte[8]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, 16, 32, 64, 128 } +Constant (const byte) KEY_A#0 = $a +Constant (const byte) KEY_4#0 = $b +Constant (const byte) KEY_Z#0 = $c +Constant (const byte) KEY_S#0 = $d +Constant (const byte) KEY_E#0 = $e +Constant (const byte) KEY_LSHIFT#0 = $f +Constant (const byte) KEY_5#0 = $10 +Constant (const byte) KEY_R#0 = $11 +Constant (const byte) KEY_D#0 = $12 +Constant (const byte) KEY_6#0 = $13 +Constant (const byte) KEY_C#0 = $14 +Constant (const byte) KEY_F#0 = $15 +Constant (const byte) KEY_T#0 = $16 +Constant (const byte) KEY_X#0 = $17 +Constant (const byte) KEY_7#0 = $18 +Constant (const byte) KEY_Y#0 = $19 +Constant (const byte) KEY_G#0 = $1a +Constant (const byte) KEY_8#0 = $1b +Constant (const byte) KEY_B#0 = $1c +Constant (const byte) KEY_H#0 = $1d +Constant (const byte) KEY_U#0 = $1e +Constant (const byte) KEY_V#0 = $1f +Constant (const byte) KEY_9#0 = $20 +Constant (const byte) KEY_I#0 = $21 +Constant (const byte) KEY_J#0 = $22 +Constant (const byte) KEY_0#0 = $23 +Constant (const byte) KEY_M#0 = $24 +Constant (const byte) KEY_K#0 = $25 +Constant (const byte) KEY_O#0 = $26 +Constant (const byte) KEY_N#0 = $27 +Constant (const byte) KEY_PLUS#0 = $28 +Constant (const byte) KEY_P#0 = $29 +Constant (const byte) KEY_L#0 = $2a +Constant (const byte) KEY_MINUS#0 = $2b +Constant (const byte) KEY_DOT#0 = $2c +Constant (const byte) KEY_COLON#0 = $2d +Constant (const byte) KEY_AT#0 = $2e +Constant (const byte) KEY_COMMA#0 = $2f +Constant (const byte) KEY_POUND#0 = $30 +Constant (const byte) KEY_ASTERISK#0 = $31 +Constant (const byte) KEY_SEMICOLON#0 = $32 +Constant (const byte) KEY_HOME#0 = $33 +Constant (const byte) KEY_RSHIFT#0 = $34 +Constant (const byte) KEY_EQUALS#0 = $35 +Constant (const byte) KEY_ARROW_UP#0 = $36 +Constant (const byte) KEY_SLASH#0 = $37 +Constant (const byte) KEY_1#0 = $38 +Constant (const byte) KEY_ARROW_LEFT#0 = $39 +Constant (const byte) KEY_CTRL#0 = $3a +Constant (const byte) KEY_2#0 = $3b +Constant (const byte) KEY_SPACE#0 = $3c +Constant (const byte) KEY_COMMODORE#0 = $3d +Constant (const byte) KEY_Q#0 = $3e +Constant (const byte) KEY_RUNSTOP#0 = $3f +Constant (const byte[8]) keyboard_matrix_row_bitmask#0 = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f } +Constant (const byte[8]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, $10, $20, $40, $80 } Constant (const byte[8]) keyboard_events#0 = { fill( 8, 0) } Constant (const byte) keyboard_events_size#0 = 0 Constant (const byte) keyboard_modifiers#0 = 0 @@ -7500,79 +7500,79 @@ Constant (const byte) KEY_MODIFIER_RSHIFT#0 = 2 Constant (const byte) KEY_MODIFIER_CTRL#0 = 4 Constant (const byte) KEY_MODIFIER_COMMODORE#0 = 8 Constant (const byte[8]) keyboard_scan_values#0 = { fill( 8, 0) } -Constant (const byte[256]) bitmap_plot_xlo#0 = { fill( 256, 0) } -Constant (const byte[256]) bitmap_plot_xhi#0 = { fill( 256, 0) } -Constant (const byte[256]) bitmap_plot_ylo#0 = { fill( 256, 0) } -Constant (const byte[256]) bitmap_plot_yhi#0 = { fill( 256, 0) } -Constant (const byte[256]) bitmap_plot_bit#0 = { fill( 256, 0) } -Constant (const byte) bitmap_init::bits#0 = 128 +Constant (const byte[$100]) bitmap_plot_xlo#0 = { fill( $100, 0) } +Constant (const byte[$100]) bitmap_plot_xhi#0 = { fill( $100, 0) } +Constant (const byte[$100]) bitmap_plot_ylo#0 = { fill( $100, 0) } +Constant (const byte[$100]) bitmap_plot_yhi#0 = { fill( $100, 0) } +Constant (const byte[$100]) bitmap_plot_bit#0 = { fill( $100, 0) } +Constant (const byte) bitmap_init::bits#0 = $80 Constant (const byte) bitmap_init::x#0 = 0 -Constant (const byte) bitmap_init::bits#2 = 128 +Constant (const byte) bitmap_init::bits#2 = $80 Constant (const byte*) bitmap_init::yoffs#0 = ((byte*))0 Constant (const byte) bitmap_init::y#0 = 0 -Constant (const word/signed word/dword/signed dword) bitmap_init::$13 = 40*8 +Constant (const word/signed word/dword/signed dword) bitmap_init::$13 = $28*8 Constant (const byte) bitmap_clear::y#0 = 0 Constant (const byte) bitmap_clear::x#0 = 0 Constant (const byte) bitmap_line::xd#0 = 0 Constant (const byte) bitmap_line::yd#0 = 0 Constant (const string) $1 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@" -Constant (const byte*) menu::SCREEN#0 = ((byte*))32768 -Constant (const byte*) menu::CHARSET#0 = ((byte*))38912 +Constant (const byte*) menu::SCREEN#0 = ((byte*))$8000 +Constant (const byte*) menu::CHARSET#0 = ((byte*))$9800 Constant (const byte) menu::i#0 = 0 Constant (const byte) dtv_control#129 = 0 Constant (const byte) mode_ctrl::ctrl#7 = 0 -Constant (const byte*) mode_stdchar::SCREEN#0 = ((byte*))32768 -Constant (const byte*) mode_stdchar::CHARSET#0 = ((byte*))36864 -Constant (const byte*) mode_stdchar::COLORS#0 = ((byte*))55296 +Constant (const byte*) mode_stdchar::SCREEN#0 = ((byte*))$8000 +Constant (const byte*) mode_stdchar::CHARSET#0 = ((byte*))$9000 +Constant (const byte*) mode_stdchar::COLORS#0 = ((byte*))$d800 Constant (const byte) dtv_control#18 = 0 Constant (const byte) mode_stdchar::i#0 = 0 Constant (const byte) mode_stdchar::cy#0 = 0 Constant (const byte) mode_stdchar::cx#0 = 0 -Constant (const byte*) mode_ecmchar::SCREEN#0 = ((byte*))32768 -Constant (const byte*) mode_ecmchar::CHARSET#0 = ((byte*))36864 -Constant (const byte*) mode_ecmchar::COLORS#0 = ((byte*))55296 +Constant (const byte*) mode_ecmchar::SCREEN#0 = ((byte*))$8000 +Constant (const byte*) mode_ecmchar::CHARSET#0 = ((byte*))$9000 +Constant (const byte*) mode_ecmchar::COLORS#0 = ((byte*))$d800 Constant (const byte) dtv_control#21 = 0 Constant (const byte) mode_ecmchar::i#0 = 0 Constant (const byte) mode_ecmchar::cy#0 = 0 Constant (const byte) mode_ecmchar::cx#0 = 0 -Constant (const byte*) mode_mcchar::SCREEN#0 = ((byte*))32768 -Constant (const byte*) mode_mcchar::CHARSET#0 = ((byte*))36864 -Constant (const byte*) mode_mcchar::COLORS#0 = ((byte*))55296 +Constant (const byte*) mode_mcchar::SCREEN#0 = ((byte*))$8000 +Constant (const byte*) mode_mcchar::CHARSET#0 = ((byte*))$9000 +Constant (const byte*) mode_mcchar::COLORS#0 = ((byte*))$d800 Constant (const byte) dtv_control#24 = 0 Constant (const byte) mode_mcchar::i#0 = 0 Constant (const byte) mode_mcchar::cy#0 = 0 Constant (const byte) mode_mcchar::cx#0 = 0 -Constant (const byte*) mode_stdbitmap::SCREEN#0 = ((byte*))16384 -Constant (const byte*) mode_stdbitmap::BITMAP#0 = ((byte*))24576 +Constant (const byte*) mode_stdbitmap::SCREEN#0 = ((byte*))$4000 +Constant (const byte*) mode_stdbitmap::BITMAP#0 = ((byte*))$6000 Constant (const byte) dtv_control#27 = 0 Constant (const byte) mode_stdbitmap::i#0 = 0 Constant (const byte) mode_stdbitmap::cy#0 = 0 Constant (const byte) mode_stdbitmap::cx#0 = 0 -Constant (const byte[]) mode_stdbitmap::lines_x#0 = { 0, 255, 255, 0, 0, 128, 255, 128, 0, 128 } -Constant (const byte[]) mode_stdbitmap::lines_y#0 = { 0, 0, 199, 199, 0, 0, 100, 199, 100, 0 } +Constant (const byte[]) mode_stdbitmap::lines_x#0 = { 0, $ff, $ff, 0, 0, $80, $ff, $80, 0, $80 } +Constant (const byte[]) mode_stdbitmap::lines_y#0 = { 0, 0, $c7, $c7, 0, 0, $64, $c7, $64, 0 } Constant (const byte) mode_stdbitmap::lines_cnt#0 = 9 Constant (const byte) mode_stdbitmap::l#0 = 0 -Constant (const byte*) mode_hicolstdchar::SCREEN#0 = ((byte*))32768 -Constant (const byte*) mode_hicolstdchar::CHARSET#0 = ((byte*))36864 -Constant (const byte*) mode_hicolstdchar::COLORS#0 = ((byte*))33792 +Constant (const byte*) mode_hicolstdchar::SCREEN#0 = ((byte*))$8000 +Constant (const byte*) mode_hicolstdchar::CHARSET#0 = ((byte*))$9000 +Constant (const byte*) mode_hicolstdchar::COLORS#0 = ((byte*))$8400 Constant (const byte) mode_hicolstdchar::i#0 = 0 Constant (const byte) mode_hicolstdchar::cy#0 = 0 Constant (const byte) mode_hicolstdchar::cx#0 = 0 -Constant (const byte*) mode_hicolecmchar::SCREEN#0 = ((byte*))32768 -Constant (const byte*) mode_hicolecmchar::CHARSET#0 = ((byte*))36864 -Constant (const byte*) mode_hicolecmchar::COLORS#0 = ((byte*))33792 +Constant (const byte*) mode_hicolecmchar::SCREEN#0 = ((byte*))$8000 +Constant (const byte*) mode_hicolecmchar::CHARSET#0 = ((byte*))$9000 +Constant (const byte*) mode_hicolecmchar::COLORS#0 = ((byte*))$8400 Constant (const byte) mode_hicolecmchar::i#0 = 0 Constant (const byte) mode_hicolecmchar::cy#0 = 0 Constant (const byte) mode_hicolecmchar::cx#0 = 0 -Constant (const byte*) mode_hicolmcchar::SCREEN#0 = ((byte*))32768 -Constant (const byte*) mode_hicolmcchar::CHARSET#0 = ((byte*))36864 -Constant (const byte*) mode_hicolmcchar::COLORS#0 = ((byte*))33792 +Constant (const byte*) mode_hicolmcchar::SCREEN#0 = ((byte*))$8000 +Constant (const byte*) mode_hicolmcchar::CHARSET#0 = ((byte*))$9000 +Constant (const byte*) mode_hicolmcchar::COLORS#0 = ((byte*))$8400 Constant (const byte) mode_hicolmcchar::i#0 = 0 Constant (const byte) mode_hicolmcchar::cy#0 = 0 Constant (const byte) mode_hicolmcchar::cx#0 = 0 -Constant (const byte*) mode_twoplanebitmap::PLANEA#0 = ((byte*))16384 -Constant (const byte*) mode_twoplanebitmap::PLANEB#0 = ((byte*))24576 -Constant (const byte*) mode_twoplanebitmap::COLORS#0 = ((byte*))32768 +Constant (const byte*) mode_twoplanebitmap::PLANEA#0 = ((byte*))$4000 +Constant (const byte*) mode_twoplanebitmap::PLANEB#0 = ((byte*))$6000 +Constant (const byte*) mode_twoplanebitmap::COLORS#0 = ((byte*))$8000 Constant (const byte) mode_twoplanebitmap::i#0 = 0 Constant (const byte) mode_twoplanebitmap::cy#0 = 0 Constant (const byte) mode_twoplanebitmap::cx#0 = 0 @@ -7580,59 +7580,59 @@ Constant (const byte) mode_twoplanebitmap::ay#0 = 0 Constant (const byte) mode_twoplanebitmap::ax#0 = 0 Constant (const byte) mode_twoplanebitmap::by#0 = 0 Constant (const byte) mode_twoplanebitmap::bx#0 = 0 -Constant (const byte*) mode_sixsfred::PLANEA#0 = ((byte*))16384 -Constant (const byte*) mode_sixsfred::PLANEB#0 = ((byte*))24576 -Constant (const byte*) mode_sixsfred::COLORS#0 = ((byte*))32768 +Constant (const byte*) mode_sixsfred::PLANEA#0 = ((byte*))$4000 +Constant (const byte*) mode_sixsfred::PLANEB#0 = ((byte*))$6000 +Constant (const byte*) mode_sixsfred::COLORS#0 = ((byte*))$8000 Constant (const byte) mode_sixsfred::i#0 = 0 Constant (const byte) mode_sixsfred::cy#0 = 0 Constant (const byte) mode_sixsfred::cx#0 = 0 -Constant (const byte[]) mode_sixsfred::row_bitmask#0 = { 0, 85, 170, 255 } +Constant (const byte[]) mode_sixsfred::row_bitmask#0 = { 0, $55, $aa, $ff } Constant (const byte) mode_sixsfred::ay#0 = 0 Constant (const byte) mode_sixsfred::ax#0 = 0 Constant (const byte) mode_sixsfred::by#0 = 0 Constant (const byte) mode_sixsfred::bx#0 = 0 -Constant (const byte*) mode_sixsfred2::PLANEA#0 = ((byte*))16384 -Constant (const byte*) mode_sixsfred2::PLANEB#0 = ((byte*))24576 -Constant (const byte*) mode_sixsfred2::COLORS#0 = ((byte*))32768 +Constant (const byte*) mode_sixsfred2::PLANEA#0 = ((byte*))$4000 +Constant (const byte*) mode_sixsfred2::PLANEB#0 = ((byte*))$6000 +Constant (const byte*) mode_sixsfred2::COLORS#0 = ((byte*))$8000 Constant (const byte) mode_sixsfred2::i#0 = 0 Constant (const byte) mode_sixsfred2::cy#0 = 0 Constant (const byte) mode_sixsfred2::cx#0 = 0 -Constant (const byte[]) mode_sixsfred2::row_bitmask#0 = { 0, 85, 170, 255 } +Constant (const byte[]) mode_sixsfred2::row_bitmask#0 = { 0, $55, $aa, $ff } Constant (const byte) mode_sixsfred2::ay#0 = 0 Constant (const byte) mode_sixsfred2::ax#0 = 0 Constant (const byte) mode_sixsfred2::by#0 = 0 Constant (const byte) mode_sixsfred2::bx#0 = 0 -Constant (const byte*) mode_8bpppixelcell::PLANEA#0 = ((byte*))15360 -Constant (const byte*) mode_8bpppixelcell::PLANEB#0 = ((byte*))16384 +Constant (const byte*) mode_8bpppixelcell::PLANEA#0 = ((byte*))$3c00 +Constant (const byte*) mode_8bpppixelcell::PLANEB#0 = ((byte*))$4000 Constant (const byte) mode_8bpppixelcell::i#0 = 0 Constant (const byte) mode_8bpppixelcell::ay#0 = 0 Constant (const byte) mode_8bpppixelcell::ax#0 = 0 -Constant (const byte*) mode_8bpppixelcell::chargen#0 = ((byte*))53248 +Constant (const byte*) mode_8bpppixelcell::chargen#0 = ((byte*))$d000 Constant (const byte) mode_8bpppixelcell::col#0 = 0 Constant (const byte) mode_8bpppixelcell::ch#0 = 0 Constant (const byte) mode_8bpppixelcell::cr#0 = 0 Constant (const byte) mode_8bpppixelcell::cp#0 = 0 Constant (const byte) mode_8bpppixelcell::c#0 = 0 -Constant (const dword) mode_8bppchunkybmm::PLANEB#0 = 131072 +Constant (const dword) mode_8bppchunkybmm::PLANEB#0 = $20000 Constant (const byte) mode_8bppchunkybmm::i#0 = 0 -Constant (const byte*) mode_8bppchunkybmm::gfxb#0 = ((byte*))16384 +Constant (const byte*) mode_8bppchunkybmm::gfxb#0 = ((byte*))$4000 Constant (const byte) mode_8bppchunkybmm::y#0 = 0 Constant (const word) mode_8bppchunkybmm::x#0 = 0 -Constant (const byte*) mode_8bppchunkybmm::gfxb#2 = ((byte*))16384 -Constant (const byte/signed byte/word/signed word/dword/signed dword) mode_8bppchunkybmm::$27 = 16384/16384 +Constant (const byte*) mode_8bppchunkybmm::gfxb#2 = ((byte*))$4000 +Constant (const byte/signed byte/word/signed word/dword/signed dword) mode_8bppchunkybmm::$27 = $4000/$4000 Successful SSA optimization Pass2ConstantIdentification -Constant (const byte[]) keyboard_char_keycodes#0 = { KEY_AT#0, KEY_A#0, KEY_B#0, KEY_C#0, KEY_D#0, KEY_E#0, KEY_F#0, KEY_G#0, KEY_H#0, KEY_I#0, KEY_J#0, KEY_K#0, KEY_L#0, KEY_M#0, KEY_N#0, KEY_O#0, KEY_P#0, KEY_Q#0, KEY_R#0, KEY_S#0, KEY_T#0, KEY_U#0, KEY_V#0, KEY_W#0, KEY_X#0, KEY_Y#0, KEY_Z#0, 63, KEY_POUND#0, 63, KEY_ARROW_UP#0, KEY_ARROW_LEFT#0, KEY_SPACE#0, 63, 63, 63, 63, 63, 63, 63, 63, 63, KEY_ASTERISK#0, KEY_PLUS#0, KEY_COMMA#0, KEY_MINUS#0, KEY_DOT#0, KEY_SLASH#0, KEY_0#0, KEY_1#0, KEY_2#0, KEY_3#0, KEY_4#0, KEY_5#0, KEY_6#0, KEY_7#0, KEY_8#0, KEY_9#0, KEY_COLON#0, KEY_SEMICOLON#0, 63, KEY_EQUALS#0, 63, 63 } +Constant (const byte[]) keyboard_char_keycodes#0 = { KEY_AT#0, KEY_A#0, KEY_B#0, KEY_C#0, KEY_D#0, KEY_E#0, KEY_F#0, KEY_G#0, KEY_H#0, KEY_I#0, KEY_J#0, KEY_K#0, KEY_L#0, KEY_M#0, KEY_N#0, KEY_O#0, KEY_P#0, KEY_Q#0, KEY_R#0, KEY_S#0, KEY_T#0, KEY_U#0, KEY_V#0, KEY_W#0, KEY_X#0, KEY_Y#0, KEY_Z#0, $3f, KEY_POUND#0, $3f, KEY_ARROW_UP#0, KEY_ARROW_LEFT#0, KEY_SPACE#0, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, KEY_ASTERISK#0, KEY_PLUS#0, KEY_COMMA#0, KEY_MINUS#0, KEY_DOT#0, KEY_SLASH#0, KEY_0#0, KEY_1#0, KEY_2#0, KEY_3#0, KEY_4#0, KEY_5#0, KEY_6#0, KEY_7#0, KEY_8#0, KEY_9#0, KEY_COLON#0, KEY_SEMICOLON#0, $3f, KEY_EQUALS#0, $3f, $3f } Constant (const byte) KEY_MODIFIER_SHIFT#0 = KEY_MODIFIER_LSHIFT#0|KEY_MODIFIER_RSHIFT#0 Constant (const string) $2 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@" Constant (const dword) menu::$0 = ((dword))menu::CHARSET#0 -Constant (const dword) menu::$3 = DTV_COLOR_BANK_DEFAULT#0/1024 -Constant (const dword) menu::$6 = DTV_COLOR_BANK_DEFAULT#0/1024 +Constant (const dword) menu::$3 = DTV_COLOR_BANK_DEFAULT#0/$400 +Constant (const dword) menu::$6 = DTV_COLOR_BANK_DEFAULT#0/$400 Constant (const word) menu::$9 = ((word))menu::CHARSET#0 Constant (const byte) menu::$13 = VIC_DEN#0|VIC_RSEL#0 Constant (const word) menu::$15 = ((word))menu::SCREEN#0 Constant (const word) menu::$18 = ((word))menu::CHARSET#0 Constant (const byte*) menu::c#0 = COLS#0 -Constant (const byte*) menu::$24 = COLS#0+1000 +Constant (const byte*) menu::$24 = COLS#0+$3e8 Constant (const byte*) print_set_screen::screen#0 = menu::SCREEN#0 Constant (const byte) keyboard_key_pressed::key#0 = KEY_1#0 Constant (const byte) keyboard_key_pressed::key#1 = KEY_2#0 @@ -7655,22 +7655,22 @@ Constant (const byte) keyboard_key_pressed::key#17 = KEY_U#0 Constant (const byte) keyboard_key_pressed::key#18 = KEY_C#0 Constant (const byte) keyboard_key_pressed::key#19 = KEY_0#0 Constant (const dword) mode_stdchar::$0 = ((dword))mode_stdchar::CHARSET#0 -Constant (const dword) mode_stdchar::$3 = DTV_COLOR_BANK_DEFAULT#0/1024 -Constant (const dword) mode_stdchar::$6 = DTV_COLOR_BANK_DEFAULT#0/1024 +Constant (const dword) mode_stdchar::$3 = DTV_COLOR_BANK_DEFAULT#0/$400 +Constant (const dword) mode_stdchar::$6 = DTV_COLOR_BANK_DEFAULT#0/$400 Constant (const word) mode_stdchar::$9 = ((word))mode_stdchar::CHARSET#0 Constant (const byte) mode_stdchar::$13 = VIC_DEN#0|VIC_RSEL#0 Constant (const word) mode_stdchar::$15 = ((word))mode_stdchar::SCREEN#0 Constant (const word) mode_stdchar::$18 = ((word))mode_stdchar::CHARSET#0 Constant (const dword) mode_ecmchar::$0 = ((dword))mode_ecmchar::CHARSET#0 -Constant (const dword) mode_ecmchar::$3 = DTV_COLOR_BANK_DEFAULT#0/1024 -Constant (const dword) mode_ecmchar::$6 = DTV_COLOR_BANK_DEFAULT#0/1024 +Constant (const dword) mode_ecmchar::$3 = DTV_COLOR_BANK_DEFAULT#0/$400 +Constant (const dword) mode_ecmchar::$6 = DTV_COLOR_BANK_DEFAULT#0/$400 Constant (const word) mode_ecmchar::$9 = ((word))mode_ecmchar::CHARSET#0 Constant (const byte) mode_ecmchar::$13 = VIC_DEN#0|VIC_RSEL#0 Constant (const word) mode_ecmchar::$16 = ((word))mode_ecmchar::SCREEN#0 Constant (const word) mode_ecmchar::$19 = ((word))mode_ecmchar::CHARSET#0 Constant (const dword) mode_mcchar::$0 = ((dword))mode_mcchar::CHARSET#0 -Constant (const dword) mode_mcchar::$3 = DTV_COLOR_BANK_DEFAULT#0/1024 -Constant (const dword) mode_mcchar::$6 = DTV_COLOR_BANK_DEFAULT#0/1024 +Constant (const dword) mode_mcchar::$3 = DTV_COLOR_BANK_DEFAULT#0/$400 +Constant (const dword) mode_mcchar::$6 = DTV_COLOR_BANK_DEFAULT#0/$400 Constant (const word) mode_mcchar::$9 = ((word))mode_mcchar::CHARSET#0 Constant (const byte) mode_mcchar::$13 = VIC_DEN#0|VIC_RSEL#0 Constant (const byte) mode_mcchar::$15 = VIC_CSEL#0|VIC_MCM#0 @@ -7683,24 +7683,24 @@ Constant (const word) mode_stdbitmap::$10 = ((word))mode_stdbitmap::SCREEN#0 Constant (const word) mode_stdbitmap::$13 = ((word))mode_stdbitmap::BITMAP#0 Constant (const byte*) bitmap_init::bitmap#0 = mode_stdbitmap::BITMAP#0 Constant (const dword) mode_hicolstdchar::$0 = ((dword))mode_hicolstdchar::CHARSET#0 -Constant (const byte*) mode_hicolstdchar::$3 = mode_hicolstdchar::COLORS#0/1024 -Constant (const byte*) mode_hicolstdchar::$6 = mode_hicolstdchar::COLORS#0/1024 +Constant (const byte*) mode_hicolstdchar::$3 = mode_hicolstdchar::COLORS#0/$400 +Constant (const byte*) mode_hicolstdchar::$6 = mode_hicolstdchar::COLORS#0/$400 Constant (const byte) dtv_control#30 = DTV_HIGHCOLOR#0 Constant (const word) mode_hicolstdchar::$9 = ((word))mode_hicolstdchar::CHARSET#0 Constant (const byte) mode_hicolstdchar::$13 = VIC_DEN#0|VIC_RSEL#0 Constant (const word) mode_hicolstdchar::$15 = ((word))mode_hicolstdchar::SCREEN#0 Constant (const word) mode_hicolstdchar::$18 = ((word))mode_hicolstdchar::CHARSET#0 Constant (const dword) mode_hicolecmchar::$0 = ((dword))mode_hicolecmchar::CHARSET#0 -Constant (const byte*) mode_hicolecmchar::$3 = mode_hicolecmchar::COLORS#0/1024 -Constant (const byte*) mode_hicolecmchar::$6 = mode_hicolecmchar::COLORS#0/1024 +Constant (const byte*) mode_hicolecmchar::$3 = mode_hicolecmchar::COLORS#0/$400 +Constant (const byte*) mode_hicolecmchar::$6 = mode_hicolecmchar::COLORS#0/$400 Constant (const byte) dtv_control#33 = DTV_HIGHCOLOR#0 Constant (const word) mode_hicolecmchar::$9 = ((word))mode_hicolecmchar::CHARSET#0 Constant (const byte) mode_hicolecmchar::$13 = VIC_DEN#0|VIC_RSEL#0 Constant (const word) mode_hicolecmchar::$16 = ((word))mode_hicolecmchar::SCREEN#0 Constant (const word) mode_hicolecmchar::$19 = ((word))mode_hicolecmchar::CHARSET#0 Constant (const dword) mode_hicolmcchar::$0 = ((dword))mode_hicolmcchar::CHARSET#0 -Constant (const byte*) mode_hicolmcchar::$3 = mode_hicolmcchar::COLORS#0/1024 -Constant (const byte*) mode_hicolmcchar::$6 = mode_hicolmcchar::COLORS#0/1024 +Constant (const byte*) mode_hicolmcchar::$3 = mode_hicolmcchar::COLORS#0/$400 +Constant (const byte*) mode_hicolmcchar::$6 = mode_hicolmcchar::COLORS#0/$400 Constant (const byte) dtv_control#36 = DTV_HIGHCOLOR#0 Constant (const word) mode_hicolmcchar::$9 = ((word))mode_hicolmcchar::CHARSET#0 Constant (const byte) mode_hicolmcchar::$13 = VIC_DEN#0|VIC_RSEL#0 @@ -7714,8 +7714,8 @@ Constant (const byte) mode_twoplanebitmap::$6 = mode_twoplanebitmap::PLANEA#0 Constant (const byte) mode_twoplanebitmap::$8 = mode_twoplanebitmap::PLANEB#0 -Constant (const byte*) mode_twoplanebitmap::$10 = mode_twoplanebitmap::COLORS#0/1024 -Constant (const byte*) mode_twoplanebitmap::$12 = mode_twoplanebitmap::COLORS#0/1024 +Constant (const byte*) mode_twoplanebitmap::$10 = mode_twoplanebitmap::COLORS#0/$400 +Constant (const byte*) mode_twoplanebitmap::$12 = mode_twoplanebitmap::COLORS#0/$400 Constant (const byte) dtv_control#42 = DTV_HIGHCOLOR#0|DTV_LINEAR#0 Constant (const byte) mode_sixsfred::$1 = DTV_HIGHCOLOR#0|DTV_LINEAR#0 Constant (const byte) mode_sixsfred::$2 = VIC_ECM#0|VIC_BMM#0 @@ -7724,8 +7724,8 @@ Constant (const byte) mode_sixsfred::$7 = mode_sixsfred::PLANEA#0 Constant (const byte) mode_sixsfred::$9 = mode_sixsfred::PLANEB#0 -Constant (const byte*) mode_sixsfred::$11 = mode_sixsfred::COLORS#0/1024 -Constant (const byte*) mode_sixsfred::$13 = mode_sixsfred::COLORS#0/1024 +Constant (const byte*) mode_sixsfred::$11 = mode_sixsfred::COLORS#0/$400 +Constant (const byte*) mode_sixsfred::$13 = mode_sixsfred::COLORS#0/$400 Constant (const byte) dtv_control#45 = DTV_LINEAR#0 Constant (const byte) mode_sixsfred2::$0 = VIC_ECM#0|VIC_BMM#0 Constant (const byte) mode_sixsfred2::$4 = VIC_MCM#0|VIC_CSEL#0 @@ -7733,8 +7733,8 @@ Constant (const byte) mode_sixsfred2::$5 = mode_sixsfred2::PLANEA#0 Constant (const byte) mode_sixsfred2::$7 = mode_sixsfred2::PLANEB#0 -Constant (const byte*) mode_sixsfred2::$9 = mode_sixsfred2::COLORS#0/1024 -Constant (const byte*) mode_sixsfred2::$11 = mode_sixsfred2::COLORS#0/1024 +Constant (const byte*) mode_sixsfred2::$9 = mode_sixsfred2::COLORS#0/$400 +Constant (const byte*) mode_sixsfred2::$11 = mode_sixsfred2::COLORS#0/$400 Constant (const byte) mode_8bpppixelcell::$0 = DTV_HIGHCOLOR#0|DTV_LINEAR#0 Constant (const byte) mode_8bpppixelcell::$2 = DTV_HIGHCOLOR#0|DTV_LINEAR#0 Constant (const byte) mode_8bpppixelcell::$4 = VIC_ECM#0|VIC_DEN#0 @@ -7750,66 +7750,66 @@ Constant (const byte) mode_8bppchunkybmm::$9 = VIC_MCM#0|VIC_CSEL#0 Constant (const word) mode_8bppchunkybmm::$10 = mode_8bppchunkybmm::PLANEB#0 -Constant (const dword) mode_8bppchunkybmm::$17 = mode_8bppchunkybmm::PLANEB#0/16384 +Constant (const dword) mode_8bppchunkybmm::$17 = mode_8bppchunkybmm::PLANEB#0/$4000 Constant (const byte) dtvSetCpuBankSegment1::cpuBankIdx#2 = ((byte))mode_8bppchunkybmm::$27 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) print_screen#1 = print_set_screen::screen#0 Constant (const byte) bitmap_init::$1 = >bitmap_init::bitmap#0 Constant (const string) $3 = "C64DTV Graphics Modes CCLHBME@"+" OHIIMCC@"+" LUNCMMM@"+"----------------------------------------@" -Constant (const dword) menu::$1 = menu::$0/65536 +Constant (const dword) menu::$1 = menu::$0/$10000 Constant (const word) menu::$4 = ((word))menu::$3 Constant (const word) menu::$7 = ((word))menu::$6 -Constant (const word/signed dword/dword) menu::$10 = menu::$9/16384 +Constant (const word/signed dword/dword) menu::$10 = menu::$9/$4000 Constant (const byte/word/dword) menu::$14 = menu::$13|3 -Constant (const word) menu::$16 = menu::$15&16383 -Constant (const word) menu::$19 = menu::$18&16383 -Constant (const dword) mode_stdchar::$1 = mode_stdchar::$0/65536 +Constant (const word) menu::$16 = menu::$15&$3fff +Constant (const word) menu::$19 = menu::$18&$3fff +Constant (const dword) mode_stdchar::$1 = mode_stdchar::$0/$10000 Constant (const word) mode_stdchar::$4 = ((word))mode_stdchar::$3 Constant (const word) mode_stdchar::$7 = ((word))mode_stdchar::$6 -Constant (const word/signed dword/dword) mode_stdchar::$10 = mode_stdchar::$9/16384 +Constant (const word/signed dword/dword) mode_stdchar::$10 = mode_stdchar::$9/$4000 Constant (const byte/word/dword) mode_stdchar::$14 = mode_stdchar::$13|3 -Constant (const word) mode_stdchar::$16 = mode_stdchar::$15&16383 -Constant (const word) mode_stdchar::$19 = mode_stdchar::$18&16383 -Constant (const dword) mode_ecmchar::$1 = mode_ecmchar::$0/65536 +Constant (const word) mode_stdchar::$16 = mode_stdchar::$15&$3fff +Constant (const word) mode_stdchar::$19 = mode_stdchar::$18&$3fff +Constant (const dword) mode_ecmchar::$1 = mode_ecmchar::$0/$10000 Constant (const word) mode_ecmchar::$4 = ((word))mode_ecmchar::$3 Constant (const word) mode_ecmchar::$7 = ((word))mode_ecmchar::$6 -Constant (const word/signed dword/dword) mode_ecmchar::$10 = mode_ecmchar::$9/16384 +Constant (const word/signed dword/dword) mode_ecmchar::$10 = mode_ecmchar::$9/$4000 Constant (const byte) mode_ecmchar::$14 = mode_ecmchar::$13|VIC_ECM#0 -Constant (const word) mode_ecmchar::$17 = mode_ecmchar::$16&16383 -Constant (const word) mode_ecmchar::$20 = mode_ecmchar::$19&16383 -Constant (const dword) mode_mcchar::$1 = mode_mcchar::$0/65536 +Constant (const word) mode_ecmchar::$17 = mode_ecmchar::$16&$3fff +Constant (const word) mode_ecmchar::$20 = mode_ecmchar::$19&$3fff +Constant (const dword) mode_mcchar::$1 = mode_mcchar::$0/$10000 Constant (const word) mode_mcchar::$4 = ((word))mode_mcchar::$3 Constant (const word) mode_mcchar::$7 = ((word))mode_mcchar::$6 -Constant (const word/signed dword/dword) mode_mcchar::$10 = mode_mcchar::$9/16384 +Constant (const word/signed dword/dword) mode_mcchar::$10 = mode_mcchar::$9/$4000 Constant (const byte/word/dword) mode_mcchar::$14 = mode_mcchar::$13|3 -Constant (const word) mode_mcchar::$17 = mode_mcchar::$16&16383 -Constant (const word) mode_mcchar::$20 = mode_mcchar::$19&16383 -Constant (const dword) mode_stdbitmap::$1 = mode_stdbitmap::$0/65536 -Constant (const word/signed dword/dword) mode_stdbitmap::$4 = mode_stdbitmap::$3/16384 +Constant (const word) mode_mcchar::$17 = mode_mcchar::$16&$3fff +Constant (const word) mode_mcchar::$20 = mode_mcchar::$19&$3fff +Constant (const dword) mode_stdbitmap::$1 = mode_stdbitmap::$0/$10000 +Constant (const word/signed dword/dword) mode_stdbitmap::$4 = mode_stdbitmap::$3/$4000 Constant (const byte) mode_stdbitmap::$8 = mode_stdbitmap::$7|VIC_RSEL#0 -Constant (const word) mode_stdbitmap::$11 = mode_stdbitmap::$10&16383 -Constant (const word) mode_stdbitmap::$14 = mode_stdbitmap::$13&16383 -Constant (const dword) mode_hicolstdchar::$1 = mode_hicolstdchar::$0/65536 +Constant (const word) mode_stdbitmap::$11 = mode_stdbitmap::$10&$3fff +Constant (const word) mode_stdbitmap::$14 = mode_stdbitmap::$13&$3fff +Constant (const dword) mode_hicolstdchar::$1 = mode_hicolstdchar::$0/$10000 Constant (const word) mode_hicolstdchar::$4 = ((word))mode_hicolstdchar::$3 Constant (const word) mode_hicolstdchar::$7 = ((word))mode_hicolstdchar::$6 -Constant (const word/signed dword/dword) mode_hicolstdchar::$10 = mode_hicolstdchar::$9/16384 +Constant (const word/signed dword/dword) mode_hicolstdchar::$10 = mode_hicolstdchar::$9/$4000 Constant (const byte/word/dword) mode_hicolstdchar::$14 = mode_hicolstdchar::$13|3 -Constant (const word) mode_hicolstdchar::$16 = mode_hicolstdchar::$15&16383 -Constant (const word) mode_hicolstdchar::$19 = mode_hicolstdchar::$18&16383 -Constant (const dword) mode_hicolecmchar::$1 = mode_hicolecmchar::$0/65536 +Constant (const word) mode_hicolstdchar::$16 = mode_hicolstdchar::$15&$3fff +Constant (const word) mode_hicolstdchar::$19 = mode_hicolstdchar::$18&$3fff +Constant (const dword) mode_hicolecmchar::$1 = mode_hicolecmchar::$0/$10000 Constant (const word) mode_hicolecmchar::$4 = ((word))mode_hicolecmchar::$3 Constant (const word) mode_hicolecmchar::$7 = ((word))mode_hicolecmchar::$6 -Constant (const word/signed dword/dword) mode_hicolecmchar::$10 = mode_hicolecmchar::$9/16384 +Constant (const word/signed dword/dword) mode_hicolecmchar::$10 = mode_hicolecmchar::$9/$4000 Constant (const byte) mode_hicolecmchar::$14 = mode_hicolecmchar::$13|VIC_ECM#0 -Constant (const word) mode_hicolecmchar::$17 = mode_hicolecmchar::$16&16383 -Constant (const word) mode_hicolecmchar::$20 = mode_hicolecmchar::$19&16383 -Constant (const dword) mode_hicolmcchar::$1 = mode_hicolmcchar::$0/65536 +Constant (const word) mode_hicolecmchar::$17 = mode_hicolecmchar::$16&$3fff +Constant (const word) mode_hicolecmchar::$20 = mode_hicolecmchar::$19&$3fff +Constant (const dword) mode_hicolmcchar::$1 = mode_hicolmcchar::$0/$10000 Constant (const word) mode_hicolmcchar::$4 = ((word))mode_hicolmcchar::$3 Constant (const word) mode_hicolmcchar::$7 = ((word))mode_hicolmcchar::$6 -Constant (const word/signed dword/dword) mode_hicolmcchar::$10 = mode_hicolmcchar::$9/16384 +Constant (const word/signed dword/dword) mode_hicolmcchar::$10 = mode_hicolmcchar::$9/$4000 Constant (const byte/word/dword) mode_hicolmcchar::$14 = mode_hicolmcchar::$13|3 -Constant (const word) mode_hicolmcchar::$17 = mode_hicolmcchar::$16&16383 -Constant (const word) mode_hicolmcchar::$20 = mode_hicolmcchar::$19&16383 +Constant (const word) mode_hicolmcchar::$17 = mode_hicolmcchar::$16&$3fff +Constant (const word) mode_hicolmcchar::$20 = mode_hicolmcchar::$19&$3fff Constant (const byte) mode_twoplanebitmap::$3 = mode_twoplanebitmap::$2|VIC_DEN#0 Constant (const byte) mode_twoplanebitmap::$11 = mode_twoplanebitmap::$12 @@ -7831,57 +7831,57 @@ Constant (const byte) mode_8bppchunkybmm::$15 = menu::$7 Constant (const byte) menu::$11 = ((byte))menu::$10 -Constant (const word/signed dword/dword) menu::$17 = menu::$16/64 -Constant (const word/signed dword/dword) menu::$20 = menu::$19/1024 +Constant (const word/signed dword/dword) menu::$17 = menu::$16/$40 +Constant (const word/signed dword/dword) menu::$20 = menu::$19/$400 Constant (const byte) mode_stdchar::$2 = ((byte))mode_stdchar::$1 Constant (const byte) mode_stdchar::$5 = mode_stdchar::$7 Constant (const byte) mode_stdchar::$11 = ((byte))mode_stdchar::$10 -Constant (const word/signed dword/dword) mode_stdchar::$17 = mode_stdchar::$16/64 -Constant (const word/signed dword/dword) mode_stdchar::$20 = mode_stdchar::$19/1024 +Constant (const word/signed dword/dword) mode_stdchar::$17 = mode_stdchar::$16/$40 +Constant (const word/signed dword/dword) mode_stdchar::$20 = mode_stdchar::$19/$400 Constant (const byte) mode_ecmchar::$2 = ((byte))mode_ecmchar::$1 Constant (const byte) mode_ecmchar::$5 = mode_ecmchar::$7 Constant (const byte) mode_ecmchar::$11 = ((byte))mode_ecmchar::$10 Constant (const byte/word/dword) mode_ecmchar::$15 = mode_ecmchar::$14|3 -Constant (const word/signed dword/dword) mode_ecmchar::$18 = mode_ecmchar::$17/64 -Constant (const word/signed dword/dword) mode_ecmchar::$21 = mode_ecmchar::$20/1024 +Constant (const word/signed dword/dword) mode_ecmchar::$18 = mode_ecmchar::$17/$40 +Constant (const word/signed dword/dword) mode_ecmchar::$21 = mode_ecmchar::$20/$400 Constant (const byte) mode_mcchar::$2 = ((byte))mode_mcchar::$1 Constant (const byte) mode_mcchar::$5 = mode_mcchar::$7 Constant (const byte) mode_mcchar::$11 = ((byte))mode_mcchar::$10 -Constant (const word/signed dword/dword) mode_mcchar::$18 = mode_mcchar::$17/64 -Constant (const word/signed dword/dword) mode_mcchar::$21 = mode_mcchar::$20/1024 +Constant (const word/signed dword/dword) mode_mcchar::$18 = mode_mcchar::$17/$40 +Constant (const word/signed dword/dword) mode_mcchar::$21 = mode_mcchar::$20/$400 Constant (const byte) mode_stdbitmap::$2 = ((byte))mode_stdbitmap::$1 Constant (const byte) mode_stdbitmap::$5 = ((byte))mode_stdbitmap::$4 Constant (const byte/word/dword) mode_stdbitmap::$9 = mode_stdbitmap::$8|3 -Constant (const word/signed dword/dword) mode_stdbitmap::$12 = mode_stdbitmap::$11/64 -Constant (const word/signed dword/dword) mode_stdbitmap::$15 = mode_stdbitmap::$14/1024 +Constant (const word/signed dword/dword) mode_stdbitmap::$12 = mode_stdbitmap::$11/$40 +Constant (const word/signed dword/dword) mode_stdbitmap::$15 = mode_stdbitmap::$14/$400 Constant (const byte) mode_hicolstdchar::$2 = ((byte))mode_hicolstdchar::$1 Constant (const byte) mode_hicolstdchar::$5 = mode_hicolstdchar::$7 Constant (const byte) mode_hicolstdchar::$11 = ((byte))mode_hicolstdchar::$10 -Constant (const word/signed dword/dword) mode_hicolstdchar::$17 = mode_hicolstdchar::$16/64 -Constant (const word/signed dword/dword) mode_hicolstdchar::$20 = mode_hicolstdchar::$19/1024 +Constant (const word/signed dword/dword) mode_hicolstdchar::$17 = mode_hicolstdchar::$16/$40 +Constant (const word/signed dword/dword) mode_hicolstdchar::$20 = mode_hicolstdchar::$19/$400 Constant (const byte) mode_hicolecmchar::$2 = ((byte))mode_hicolecmchar::$1 Constant (const byte) mode_hicolecmchar::$5 = mode_hicolecmchar::$7 Constant (const byte) mode_hicolecmchar::$11 = ((byte))mode_hicolecmchar::$10 Constant (const byte/word/dword) mode_hicolecmchar::$15 = mode_hicolecmchar::$14|3 -Constant (const word/signed dword/dword) mode_hicolecmchar::$18 = mode_hicolecmchar::$17/64 -Constant (const word/signed dword/dword) mode_hicolecmchar::$21 = mode_hicolecmchar::$20/1024 +Constant (const word/signed dword/dword) mode_hicolecmchar::$18 = mode_hicolecmchar::$17/$40 +Constant (const word/signed dword/dword) mode_hicolecmchar::$21 = mode_hicolecmchar::$20/$400 Constant (const byte) mode_hicolmcchar::$2 = ((byte))mode_hicolmcchar::$1 Constant (const byte) mode_hicolmcchar::$5 = mode_hicolmcchar::$7 Constant (const byte) mode_hicolmcchar::$11 = ((byte))mode_hicolmcchar::$10 -Constant (const word/signed dword/dword) mode_hicolmcchar::$18 = mode_hicolmcchar::$17/64 -Constant (const word/signed dword/dword) mode_hicolmcchar::$21 = mode_hicolmcchar::$20/1024 +Constant (const word/signed dword/dword) mode_hicolmcchar::$18 = mode_hicolmcchar::$17/$40 +Constant (const word/signed dword/dword) mode_hicolmcchar::$21 = mode_hicolmcchar::$20/$400 Constant (const byte) mode_twoplanebitmap::$4 = mode_twoplanebitmap::$3|VIC_RSEL#0 Constant (const byte) mode_sixsfred::$4 = mode_sixsfred::$3|VIC_RSEL#0 Constant (const byte) mode_sixsfred2::$2 = mode_sixsfred2::$1|VIC_RSEL#0 @@ -7976,117 +7976,117 @@ Successful SSA optimization Pass2NopCastElimination Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks Resolved ranged next value bitmap_init::x#1 ← ++ bitmap_init::x#2 to ++ -Resolved ranged comparison value if(bitmap_init::x#1!=rangelast(0,255)) goto bitmap_init::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 Resolved ranged next value bitmap_init::y#1 ← ++ bitmap_init::y#2 to ++ -Resolved ranged comparison value if(bitmap_init::y#1!=rangelast(0,255)) goto bitmap_init::@3 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@3 to (byte/signed byte/word/signed word/dword/signed dword) 0 Resolved ranged next value bitmap_clear::x#1 ← ++ bitmap_clear::x#2 to ++ -Resolved ranged comparison value if(bitmap_clear::x#1!=rangelast(0,199)) goto bitmap_clear::@2 to (byte/word/signed word/dword/signed dword) 200 +Resolved ranged comparison value if(bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2 to (byte/word/signed word/dword/signed dword) $c8 Resolved ranged next value bitmap_clear::y#1 ← ++ bitmap_clear::y#4 to ++ -Resolved ranged comparison value if(bitmap_clear::y#1!=rangelast(0,39)) goto bitmap_clear::@1 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(bitmap_clear::y#1!=rangelast(0,$27)) goto bitmap_clear::@1 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value menu::i#1 ← ++ menu::i#2 to ++ -Resolved ranged comparison value if(menu::i#1!=rangelast(0,15)) goto menu::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(menu::i#1!=rangelast(0,$f)) goto menu::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value mode_stdchar::i#1 ← ++ mode_stdchar::i#2 to ++ -Resolved ranged comparison value if(mode_stdchar::i#1!=rangelast(0,15)) goto mode_stdchar::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(mode_stdchar::i#1!=rangelast(0,$f)) goto mode_stdchar::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value mode_stdchar::cx#1 ← ++ mode_stdchar::cx#2 to ++ -Resolved ranged comparison value if(mode_stdchar::cx#1!=rangelast(0,39)) goto mode_stdchar::@3 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(mode_stdchar::cx#1!=rangelast(0,$27)) goto mode_stdchar::@3 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value mode_stdchar::cy#1 ← ++ mode_stdchar::cy#4 to ++ -Resolved ranged comparison value if(mode_stdchar::cy#1!=rangelast(0,24)) goto mode_stdchar::@2 to (byte/signed byte/word/signed word/dword/signed dword) 25 +Resolved ranged comparison value if(mode_stdchar::cy#1!=rangelast(0,$18)) goto mode_stdchar::@2 to (byte/signed byte/word/signed word/dword/signed dword) $19 Resolved ranged next value mode_ecmchar::i#1 ← ++ mode_ecmchar::i#2 to ++ -Resolved ranged comparison value if(mode_ecmchar::i#1!=rangelast(0,15)) goto mode_ecmchar::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(mode_ecmchar::i#1!=rangelast(0,$f)) goto mode_ecmchar::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value mode_ecmchar::cx#1 ← ++ mode_ecmchar::cx#2 to ++ -Resolved ranged comparison value if(mode_ecmchar::cx#1!=rangelast(0,39)) goto mode_ecmchar::@3 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(mode_ecmchar::cx#1!=rangelast(0,$27)) goto mode_ecmchar::@3 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value mode_ecmchar::cy#1 ← ++ mode_ecmchar::cy#4 to ++ -Resolved ranged comparison value if(mode_ecmchar::cy#1!=rangelast(0,24)) goto mode_ecmchar::@2 to (byte/signed byte/word/signed word/dword/signed dword) 25 +Resolved ranged comparison value if(mode_ecmchar::cy#1!=rangelast(0,$18)) goto mode_ecmchar::@2 to (byte/signed byte/word/signed word/dword/signed dword) $19 Resolved ranged next value mode_mcchar::i#1 ← ++ mode_mcchar::i#2 to ++ -Resolved ranged comparison value if(mode_mcchar::i#1!=rangelast(0,15)) goto mode_mcchar::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(mode_mcchar::i#1!=rangelast(0,$f)) goto mode_mcchar::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value mode_mcchar::cx#1 ← ++ mode_mcchar::cx#2 to ++ -Resolved ranged comparison value if(mode_mcchar::cx#1!=rangelast(0,39)) goto mode_mcchar::@3 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(mode_mcchar::cx#1!=rangelast(0,$27)) goto mode_mcchar::@3 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value mode_mcchar::cy#1 ← ++ mode_mcchar::cy#4 to ++ -Resolved ranged comparison value if(mode_mcchar::cy#1!=rangelast(0,24)) goto mode_mcchar::@2 to (byte/signed byte/word/signed word/dword/signed dword) 25 +Resolved ranged comparison value if(mode_mcchar::cy#1!=rangelast(0,$18)) goto mode_mcchar::@2 to (byte/signed byte/word/signed word/dword/signed dword) $19 Resolved ranged next value mode_stdbitmap::i#1 ← ++ mode_stdbitmap::i#2 to ++ -Resolved ranged comparison value if(mode_stdbitmap::i#1!=rangelast(0,15)) goto mode_stdbitmap::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(mode_stdbitmap::i#1!=rangelast(0,$f)) goto mode_stdbitmap::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value mode_stdbitmap::cx#1 ← ++ mode_stdbitmap::cx#2 to ++ -Resolved ranged comparison value if(mode_stdbitmap::cx#1!=rangelast(0,39)) goto mode_stdbitmap::@3 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(mode_stdbitmap::cx#1!=rangelast(0,$27)) goto mode_stdbitmap::@3 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value mode_stdbitmap::cy#1 ← ++ mode_stdbitmap::cy#4 to ++ -Resolved ranged comparison value if(mode_stdbitmap::cy#1!=rangelast(0,24)) goto mode_stdbitmap::@2 to (byte/signed byte/word/signed word/dword/signed dword) 25 +Resolved ranged comparison value if(mode_stdbitmap::cy#1!=rangelast(0,$18)) goto mode_stdbitmap::@2 to (byte/signed byte/word/signed word/dword/signed dword) $19 Resolved ranged next value mode_hicolstdchar::i#1 ← ++ mode_hicolstdchar::i#2 to ++ -Resolved ranged comparison value if(mode_hicolstdchar::i#1!=rangelast(0,15)) goto mode_hicolstdchar::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(mode_hicolstdchar::i#1!=rangelast(0,$f)) goto mode_hicolstdchar::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value mode_hicolstdchar::cx#1 ← ++ mode_hicolstdchar::cx#2 to ++ -Resolved ranged comparison value if(mode_hicolstdchar::cx#1!=rangelast(0,39)) goto mode_hicolstdchar::@3 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(mode_hicolstdchar::cx#1!=rangelast(0,$27)) goto mode_hicolstdchar::@3 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value mode_hicolstdchar::cy#1 ← ++ mode_hicolstdchar::cy#4 to ++ -Resolved ranged comparison value if(mode_hicolstdchar::cy#1!=rangelast(0,24)) goto mode_hicolstdchar::@2 to (byte/signed byte/word/signed word/dword/signed dword) 25 +Resolved ranged comparison value if(mode_hicolstdchar::cy#1!=rangelast(0,$18)) goto mode_hicolstdchar::@2 to (byte/signed byte/word/signed word/dword/signed dword) $19 Resolved ranged next value mode_hicolecmchar::i#1 ← ++ mode_hicolecmchar::i#2 to ++ -Resolved ranged comparison value if(mode_hicolecmchar::i#1!=rangelast(0,15)) goto mode_hicolecmchar::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(mode_hicolecmchar::i#1!=rangelast(0,$f)) goto mode_hicolecmchar::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value mode_hicolecmchar::cx#1 ← ++ mode_hicolecmchar::cx#2 to ++ -Resolved ranged comparison value if(mode_hicolecmchar::cx#1!=rangelast(0,39)) goto mode_hicolecmchar::@3 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(mode_hicolecmchar::cx#1!=rangelast(0,$27)) goto mode_hicolecmchar::@3 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value mode_hicolecmchar::cy#1 ← ++ mode_hicolecmchar::cy#4 to ++ -Resolved ranged comparison value if(mode_hicolecmchar::cy#1!=rangelast(0,24)) goto mode_hicolecmchar::@2 to (byte/signed byte/word/signed word/dword/signed dword) 25 +Resolved ranged comparison value if(mode_hicolecmchar::cy#1!=rangelast(0,$18)) goto mode_hicolecmchar::@2 to (byte/signed byte/word/signed word/dword/signed dword) $19 Resolved ranged next value mode_hicolmcchar::i#1 ← ++ mode_hicolmcchar::i#2 to ++ -Resolved ranged comparison value if(mode_hicolmcchar::i#1!=rangelast(0,15)) goto mode_hicolmcchar::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(mode_hicolmcchar::i#1!=rangelast(0,$f)) goto mode_hicolmcchar::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value mode_hicolmcchar::cx#1 ← ++ mode_hicolmcchar::cx#2 to ++ -Resolved ranged comparison value if(mode_hicolmcchar::cx#1!=rangelast(0,39)) goto mode_hicolmcchar::@3 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(mode_hicolmcchar::cx#1!=rangelast(0,$27)) goto mode_hicolmcchar::@3 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value mode_hicolmcchar::cy#1 ← ++ mode_hicolmcchar::cy#4 to ++ -Resolved ranged comparison value if(mode_hicolmcchar::cy#1!=rangelast(0,24)) goto mode_hicolmcchar::@2 to (byte/signed byte/word/signed word/dword/signed dword) 25 +Resolved ranged comparison value if(mode_hicolmcchar::cy#1!=rangelast(0,$18)) goto mode_hicolmcchar::@2 to (byte/signed byte/word/signed word/dword/signed dword) $19 Resolved ranged next value mode_twoplanebitmap::i#1 ← ++ mode_twoplanebitmap::i#2 to ++ -Resolved ranged comparison value if(mode_twoplanebitmap::i#1!=rangelast(0,15)) goto mode_twoplanebitmap::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(mode_twoplanebitmap::i#1!=rangelast(0,$f)) goto mode_twoplanebitmap::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value mode_twoplanebitmap::cx#1 ← ++ mode_twoplanebitmap::cx#2 to ++ -Resolved ranged comparison value if(mode_twoplanebitmap::cx#1!=rangelast(0,39)) goto mode_twoplanebitmap::@3 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(mode_twoplanebitmap::cx#1!=rangelast(0,$27)) goto mode_twoplanebitmap::@3 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value mode_twoplanebitmap::cy#1 ← ++ mode_twoplanebitmap::cy#4 to ++ -Resolved ranged comparison value if(mode_twoplanebitmap::cy#1!=rangelast(0,24)) goto mode_twoplanebitmap::@2 to (byte/signed byte/word/signed word/dword/signed dword) 25 +Resolved ranged comparison value if(mode_twoplanebitmap::cy#1!=rangelast(0,$18)) goto mode_twoplanebitmap::@2 to (byte/signed byte/word/signed word/dword/signed dword) $19 Resolved ranged next value mode_twoplanebitmap::ax#1 ← ++ mode_twoplanebitmap::ax#2 to ++ -Resolved ranged comparison value if(mode_twoplanebitmap::ax#1!=rangelast(0,39)) goto mode_twoplanebitmap::@5 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(mode_twoplanebitmap::ax#1!=rangelast(0,$27)) goto mode_twoplanebitmap::@5 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value mode_twoplanebitmap::ay#1 ← ++ mode_twoplanebitmap::ay#4 to ++ -Resolved ranged comparison value if(mode_twoplanebitmap::ay#1!=rangelast(0,199)) goto mode_twoplanebitmap::@4 to (byte/word/signed word/dword/signed dword) 200 +Resolved ranged comparison value if(mode_twoplanebitmap::ay#1!=rangelast(0,$c7)) goto mode_twoplanebitmap::@4 to (byte/word/signed word/dword/signed dword) $c8 Resolved ranged next value mode_twoplanebitmap::bx#1 ← ++ mode_twoplanebitmap::bx#2 to ++ -Resolved ranged comparison value if(mode_twoplanebitmap::bx#1!=rangelast(0,39)) goto mode_twoplanebitmap::@9 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(mode_twoplanebitmap::bx#1!=rangelast(0,$27)) goto mode_twoplanebitmap::@9 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value mode_twoplanebitmap::by#1 ← ++ mode_twoplanebitmap::by#4 to ++ -Resolved ranged comparison value if(mode_twoplanebitmap::by#1!=rangelast(0,199)) goto mode_twoplanebitmap::@8 to (byte/word/signed word/dword/signed dword) 200 +Resolved ranged comparison value if(mode_twoplanebitmap::by#1!=rangelast(0,$c7)) goto mode_twoplanebitmap::@8 to (byte/word/signed word/dword/signed dword) $c8 Resolved ranged next value mode_sixsfred::i#1 ← ++ mode_sixsfred::i#2 to ++ -Resolved ranged comparison value if(mode_sixsfred::i#1!=rangelast(0,15)) goto mode_sixsfred::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(mode_sixsfred::i#1!=rangelast(0,$f)) goto mode_sixsfred::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value mode_sixsfred::cx#1 ← ++ mode_sixsfred::cx#2 to ++ -Resolved ranged comparison value if(mode_sixsfred::cx#1!=rangelast(0,39)) goto mode_sixsfred::@3 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(mode_sixsfred::cx#1!=rangelast(0,$27)) goto mode_sixsfred::@3 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value mode_sixsfred::cy#1 ← ++ mode_sixsfred::cy#4 to ++ -Resolved ranged comparison value if(mode_sixsfred::cy#1!=rangelast(0,24)) goto mode_sixsfred::@2 to (byte/signed byte/word/signed word/dword/signed dword) 25 +Resolved ranged comparison value if(mode_sixsfred::cy#1!=rangelast(0,$18)) goto mode_sixsfred::@2 to (byte/signed byte/word/signed word/dword/signed dword) $19 Resolved ranged next value mode_sixsfred::ax#1 ← ++ mode_sixsfred::ax#2 to ++ -Resolved ranged comparison value if(mode_sixsfred::ax#1!=rangelast(0,39)) goto mode_sixsfred::@5 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(mode_sixsfred::ax#1!=rangelast(0,$27)) goto mode_sixsfred::@5 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value mode_sixsfred::ay#1 ← ++ mode_sixsfred::ay#4 to ++ -Resolved ranged comparison value if(mode_sixsfred::ay#1!=rangelast(0,199)) goto mode_sixsfred::@4 to (byte/word/signed word/dword/signed dword) 200 +Resolved ranged comparison value if(mode_sixsfred::ay#1!=rangelast(0,$c7)) goto mode_sixsfred::@4 to (byte/word/signed word/dword/signed dword) $c8 Resolved ranged next value mode_sixsfred::bx#1 ← ++ mode_sixsfred::bx#2 to ++ -Resolved ranged comparison value if(mode_sixsfred::bx#1!=rangelast(0,39)) goto mode_sixsfred::@7 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(mode_sixsfred::bx#1!=rangelast(0,$27)) goto mode_sixsfred::@7 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value mode_sixsfred::by#1 ← ++ mode_sixsfred::by#4 to ++ -Resolved ranged comparison value if(mode_sixsfred::by#1!=rangelast(0,199)) goto mode_sixsfred::@6 to (byte/word/signed word/dword/signed dword) 200 +Resolved ranged comparison value if(mode_sixsfred::by#1!=rangelast(0,$c7)) goto mode_sixsfred::@6 to (byte/word/signed word/dword/signed dword) $c8 Resolved ranged next value mode_sixsfred2::i#1 ← ++ mode_sixsfred2::i#2 to ++ -Resolved ranged comparison value if(mode_sixsfred2::i#1!=rangelast(0,15)) goto mode_sixsfred2::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(mode_sixsfred2::i#1!=rangelast(0,$f)) goto mode_sixsfred2::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value mode_sixsfred2::cx#1 ← ++ mode_sixsfred2::cx#2 to ++ -Resolved ranged comparison value if(mode_sixsfred2::cx#1!=rangelast(0,39)) goto mode_sixsfred2::@3 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(mode_sixsfred2::cx#1!=rangelast(0,$27)) goto mode_sixsfred2::@3 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value mode_sixsfred2::cy#1 ← ++ mode_sixsfred2::cy#4 to ++ -Resolved ranged comparison value if(mode_sixsfred2::cy#1!=rangelast(0,24)) goto mode_sixsfred2::@2 to (byte/signed byte/word/signed word/dword/signed dword) 25 +Resolved ranged comparison value if(mode_sixsfred2::cy#1!=rangelast(0,$18)) goto mode_sixsfred2::@2 to (byte/signed byte/word/signed word/dword/signed dword) $19 Resolved ranged next value mode_sixsfred2::ax#1 ← ++ mode_sixsfred2::ax#2 to ++ -Resolved ranged comparison value if(mode_sixsfred2::ax#1!=rangelast(0,39)) goto mode_sixsfred2::@5 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(mode_sixsfred2::ax#1!=rangelast(0,$27)) goto mode_sixsfred2::@5 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value mode_sixsfred2::ay#1 ← ++ mode_sixsfred2::ay#4 to ++ -Resolved ranged comparison value if(mode_sixsfred2::ay#1!=rangelast(0,199)) goto mode_sixsfred2::@4 to (byte/word/signed word/dword/signed dword) 200 +Resolved ranged comparison value if(mode_sixsfred2::ay#1!=rangelast(0,$c7)) goto mode_sixsfred2::@4 to (byte/word/signed word/dword/signed dword) $c8 Resolved ranged next value mode_sixsfred2::bx#1 ← ++ mode_sixsfred2::bx#2 to ++ -Resolved ranged comparison value if(mode_sixsfred2::bx#1!=rangelast(0,39)) goto mode_sixsfred2::@7 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(mode_sixsfred2::bx#1!=rangelast(0,$27)) goto mode_sixsfred2::@7 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value mode_sixsfred2::by#1 ← ++ mode_sixsfred2::by#4 to ++ -Resolved ranged comparison value if(mode_sixsfred2::by#1!=rangelast(0,199)) goto mode_sixsfred2::@6 to (byte/word/signed word/dword/signed dword) 200 +Resolved ranged comparison value if(mode_sixsfred2::by#1!=rangelast(0,$c7)) goto mode_sixsfred2::@6 to (byte/word/signed word/dword/signed dword) $c8 Resolved ranged next value mode_8bpppixelcell::i#1 ← ++ mode_8bpppixelcell::i#2 to ++ -Resolved ranged comparison value if(mode_8bpppixelcell::i#1!=rangelast(0,15)) goto mode_8bpppixelcell::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(mode_8bpppixelcell::i#1!=rangelast(0,$f)) goto mode_8bpppixelcell::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value mode_8bpppixelcell::ax#1 ← ++ mode_8bpppixelcell::ax#2 to ++ -Resolved ranged comparison value if(mode_8bpppixelcell::ax#1!=rangelast(0,39)) goto mode_8bpppixelcell::@3 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(mode_8bpppixelcell::ax#1!=rangelast(0,$27)) goto mode_8bpppixelcell::@3 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value mode_8bpppixelcell::ay#1 ← ++ mode_8bpppixelcell::ay#4 to ++ -Resolved ranged comparison value if(mode_8bpppixelcell::ay#1!=rangelast(0,24)) goto mode_8bpppixelcell::@2 to (byte/signed byte/word/signed word/dword/signed dword) 25 +Resolved ranged comparison value if(mode_8bpppixelcell::ay#1!=rangelast(0,$18)) goto mode_8bpppixelcell::@2 to (byte/signed byte/word/signed word/dword/signed dword) $19 Resolved ranged next value mode_8bpppixelcell::cp#1 ← ++ mode_8bpppixelcell::cp#2 to ++ Resolved ranged comparison value if(mode_8bpppixelcell::cp#1!=rangelast(0,7)) goto mode_8bpppixelcell::@6 to (byte/signed byte/word/signed word/dword/signed dword) 8 Resolved ranged next value mode_8bpppixelcell::cr#1 ← ++ mode_8bpppixelcell::cr#6 to ++ Resolved ranged comparison value if(mode_8bpppixelcell::cr#1!=rangelast(0,7)) goto mode_8bpppixelcell::@5 to (byte/signed byte/word/signed word/dword/signed dword) 8 Resolved ranged next value mode_8bpppixelcell::ch#1 ← ++ mode_8bpppixelcell::ch#7 to ++ -Resolved ranged comparison value if(mode_8bpppixelcell::ch#1!=rangelast(0,255)) goto mode_8bpppixelcell::@4 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(mode_8bpppixelcell::ch#1!=rangelast(0,$ff)) goto mode_8bpppixelcell::@4 to (byte/signed byte/word/signed word/dword/signed dword) 0 Resolved ranged next value mode_8bppchunkybmm::i#1 ← ++ mode_8bppchunkybmm::i#2 to ++ -Resolved ranged comparison value if(mode_8bppchunkybmm::i#1!=rangelast(0,15)) goto mode_8bppchunkybmm::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(mode_8bppchunkybmm::i#1!=rangelast(0,$f)) goto mode_8bppchunkybmm::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value mode_8bppchunkybmm::x#1 ← ++ mode_8bppchunkybmm::x#2 to ++ -Resolved ranged comparison value if(mode_8bppchunkybmm::x#1!=rangelast(0,319)) goto mode_8bppchunkybmm::@3 to (word/signed word/dword/signed dword) 320 +Resolved ranged comparison value if(mode_8bppchunkybmm::x#1!=rangelast(0,$13f)) goto mode_8bppchunkybmm::@3 to (word/signed word/dword/signed dword) $140 Resolved ranged next value mode_8bppchunkybmm::y#1 ← ++ mode_8bppchunkybmm::y#6 to ++ -Resolved ranged comparison value if(mode_8bppchunkybmm::y#1!=rangelast(0,199)) goto mode_8bppchunkybmm::@2 to (byte/word/signed word/dword/signed dword) 200 +Resolved ranged comparison value if(mode_8bppchunkybmm::y#1!=rangelast(0,$c7)) goto mode_8bppchunkybmm::@2 to (byte/word/signed word/dword/signed dword) $c8 Culled Empty Block (label) @4 Culled Empty Block (label) @5 Culled Empty Block (label) print_str_lines::@2 @@ -8307,49 +8307,49 @@ Inlining constant with var siblings (const byte) dtv_control#51 Constant inlined mode_hicolecmchar::cx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined menu::c#0 = (const byte*) COLS#0 Constant inlined mode_hicolecmchar::$0 = ((dword))(const byte*) mode_hicolecmchar::CHARSET#0 -Constant inlined mode_hicolecmchar::$1 = ((dword))(const byte*) mode_hicolecmchar::CHARSET#0/(dword/signed dword) 65536 -Constant inlined mode_stdbitmap::$6 = (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdbitmap::BITMAP#0/(word/signed word/dword/signed dword) 16384 -Constant inlined mode_hicolecmchar::$4 = ((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_hicolecmchar::$1 = ((dword))(const byte*) mode_hicolecmchar::CHARSET#0/(dword/signed dword) $10000 +Constant inlined mode_stdbitmap::$6 = (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdbitmap::BITMAP#0/(word/signed word/dword/signed dword) $4000 +Constant inlined mode_hicolecmchar::$4 = ((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) $400 Constant inlined mode_stdbitmap::$7 = (const byte) VIC_BMM#0|(const byte) VIC_DEN#0 -Constant inlined mode_hicolecmchar::$5 = <((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_hicolecmchar::$5 = <((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) $400 Constant inlined mode_stdbitmap::$8 = (const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0 -Constant inlined mode_hicolecmchar::$2 = ((byte))((dword))(const byte*) mode_hicolecmchar::CHARSET#0/(dword/signed dword) 65536 +Constant inlined mode_hicolecmchar::$2 = ((byte))((dword))(const byte*) mode_hicolecmchar::CHARSET#0/(dword/signed dword) $10000 Constant inlined mode_stdbitmap::$9 = (const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 -Constant inlined mode_hicolecmchar::$3 = (const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_hicolecmchar::$8 = >((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_hicolecmchar::$3 = (const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_hicolecmchar::$8 = >((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) $400 Constant inlined mode_hicolecmchar::$9 = ((word))(const byte*) mode_hicolecmchar::CHARSET#0 -Constant inlined mode_hicolecmchar::$6 = (const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_hicolecmchar::$7 = ((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_hicolecmchar::$6 = (const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_hicolecmchar::$7 = ((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) $400 Constant inlined mode_stdbitmap::$0 = ((dword))(const byte*) mode_stdbitmap::BITMAP#0 -Constant inlined mode_stdbitmap::$1 = ((dword))(const byte*) mode_stdbitmap::BITMAP#0/(dword/signed dword) 65536 -Constant inlined mode_stdbitmap::$2 = ((byte))((dword))(const byte*) mode_stdbitmap::BITMAP#0/(dword/signed dword) 65536 +Constant inlined mode_stdbitmap::$1 = ((dword))(const byte*) mode_stdbitmap::BITMAP#0/(dword/signed dword) $10000 +Constant inlined mode_stdbitmap::$2 = ((byte))((dword))(const byte*) mode_stdbitmap::BITMAP#0/(dword/signed dword) $10000 Constant inlined mode_stdbitmap::$3 = ((word))(const byte*) mode_stdbitmap::BITMAP#0 -Constant inlined mode_stdbitmap::$4 = ((word))(const byte*) mode_stdbitmap::BITMAP#0/(word/signed word/dword/signed dword) 16384 -Constant inlined mode_stdbitmap::$5 = ((byte))((word))(const byte*) mode_stdbitmap::BITMAP#0/(word/signed word/dword/signed dword) 16384 -Constant inlined mode_mcchar::$6 = (const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_stdbitmap::$4 = ((word))(const byte*) mode_stdbitmap::BITMAP#0/(word/signed word/dword/signed dword) $4000 +Constant inlined mode_stdbitmap::$5 = ((byte))((word))(const byte*) mode_stdbitmap::BITMAP#0/(word/signed word/dword/signed dword) $4000 +Constant inlined mode_mcchar::$6 = (const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 Constant inlined mode_twoplanebitmap::$5 = (const byte) VIC_ECM#0|(const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 -Constant inlined mode_mcchar::$7 = ((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_mcchar::$7 = ((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 Constant inlined mode_twoplanebitmap::$6 = <(const byte*) mode_twoplanebitmap::PLANEA#0 Constant inlined bitmap_init::yoffs#0 = ((byte*))(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mode_mcchar::$4 = ((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_mcchar::$4 = ((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 Constant inlined mode_twoplanebitmap::$7 = >(const byte*) mode_twoplanebitmap::PLANEA#0 -Constant inlined mode_mcchar::$5 = <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_mcchar::$5 = <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 Constant inlined mode_twoplanebitmap::$8 = <(const byte*) mode_twoplanebitmap::PLANEB#0 Constant inlined mode_twoplanebitmap::$1 = (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0 Constant inlined mode_twoplanebitmap::$2 = (const byte) VIC_ECM#0|(const byte) VIC_BMM#0 -Constant inlined mode_mcchar::$8 = >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_mcchar::$8 = >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 Constant inlined mode_twoplanebitmap::$3 = (const byte) VIC_ECM#0|(const byte) VIC_BMM#0|(const byte) VIC_DEN#0 Constant inlined mode_mcchar::$9 = ((word))(const byte*) mode_mcchar::CHARSET#0 Constant inlined mode_twoplanebitmap::$4 = (const byte) VIC_ECM#0|(const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0 -Constant inlined mode_mcchar::$2 = ((byte))((dword))(const byte*) mode_mcchar::CHARSET#0/(dword/signed dword) 65536 -Constant inlined mode_mcchar::$3 = (const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_mcchar::$2 = ((byte))((dword))(const byte*) mode_mcchar::CHARSET#0/(dword/signed dword) $10000 +Constant inlined mode_mcchar::$3 = (const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 Constant inlined mode_mcchar::$0 = ((dword))(const byte*) mode_mcchar::CHARSET#0 -Constant inlined mode_mcchar::$1 = ((dword))(const byte*) mode_mcchar::CHARSET#0/(dword/signed dword) 65536 -Constant inlined mode_hicolmcchar::$8 = >((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_hicolmcchar::$7 = ((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_8bpppixelcell::chargen#0 = ((byte*))(word/dword/signed dword) 53248 -Constant inlined mode_hicolmcchar::$6 = (const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_hicolmcchar::$5 = <((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_mcchar::$1 = ((dword))(const byte*) mode_mcchar::CHARSET#0/(dword/signed dword) $10000 +Constant inlined mode_hicolmcchar::$8 = >((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_hicolmcchar::$7 = ((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_8bpppixelcell::chargen#0 = ((byte*))(word/dword/signed dword) $d000 +Constant inlined mode_hicolmcchar::$6 = (const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_hicolmcchar::$5 = <((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) $400 Constant inlined mode_hicolmcchar::$9 = ((word))(const byte*) mode_hicolmcchar::CHARSET#0 Constant inlined mode_twoplanebitmap::$9 = >(const byte*) mode_twoplanebitmap::PLANEB#0 Constant inlined mode_hicolecmchar::$15 = (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(const byte) VIC_ECM#0|(byte/signed byte/word/signed word/dword/signed dword) 3 @@ -8358,65 +8358,65 @@ Constant inlined menu::$9 = ((word))(const byte*) menu::CHARSET#0 Constant inlined mode_hicolecmchar::$13 = (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0 Constant inlined mode_8bpppixelcell::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mode_hicolecmchar::$14 = (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(const byte) VIC_ECM#0 -Constant inlined menu::$7 = ((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_hicolecmchar::$11 = ((byte))((word))(const byte*) mode_hicolecmchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 -Constant inlined menu::$8 = >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_hicolecmchar::$12 = (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolecmchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 -Constant inlined menu::$5 = <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -Constant inlined menu::$6 = (const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_hicolecmchar::$10 = ((word))(const byte*) mode_hicolecmchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 +Constant inlined menu::$7 = ((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_hicolecmchar::$11 = ((byte))((word))(const byte*) mode_hicolecmchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 +Constant inlined menu::$8 = >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_hicolecmchar::$12 = (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolecmchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 +Constant inlined menu::$5 = <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 +Constant inlined menu::$6 = (const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_hicolecmchar::$10 = ((word))(const byte*) mode_hicolecmchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 Constant inlined mode_mcchar::$15 = (const byte) VIC_CSEL#0|(const byte) VIC_MCM#0 Constant inlined mode_hicolmcchar::$0 = ((dword))(const byte*) mode_hicolmcchar::CHARSET#0 Constant inlined mode_mcchar::$16 = ((word))(const byte*) mode_mcchar::SCREEN#0 -Constant inlined mode_mcchar::$17 = ((word))(const byte*) mode_mcchar::SCREEN#0&(word/signed word/dword/signed dword) 16383 -Constant inlined mode_mcchar::$18 = ((word))(const byte*) mode_mcchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64 +Constant inlined mode_mcchar::$17 = ((word))(const byte*) mode_mcchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff +Constant inlined mode_mcchar::$18 = ((word))(const byte*) mode_mcchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40 Constant inlined mode_mcchar::$19 = ((word))(const byte*) mode_mcchar::CHARSET#0 Constant inlined mode_hicolecmchar::$19 = ((word))(const byte*) mode_hicolecmchar::CHARSET#0 -Constant inlined mode_hicolmcchar::$4 = ((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_hicolmcchar::$3 = (const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_hicolecmchar::$17 = ((word))(const byte*) mode_hicolecmchar::SCREEN#0&(word/signed word/dword/signed dword) 16383 -Constant inlined mode_hicolmcchar::$2 = ((byte))((dword))(const byte*) mode_hicolmcchar::CHARSET#0/(dword/signed dword) 65536 -Constant inlined mode_hicolecmchar::$18 = ((word))(const byte*) mode_hicolecmchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64 -Constant inlined mode_hicolmcchar::$1 = ((dword))(const byte*) mode_hicolmcchar::CHARSET#0/(dword/signed dword) 65536 -Constant inlined mode_mcchar::$20 = ((word))(const byte*) mode_mcchar::CHARSET#0&(word/signed word/dword/signed dword) 16383 -Constant inlined mode_mcchar::$21 = ((word))(const byte*) mode_mcchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_mcchar::$22 = ((word))(const byte*) mode_mcchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_mcchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_hicolstdchar::$6 = (const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_mcchar::$23 = ((byte))((word))(const byte*) mode_mcchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_mcchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_hicolstdchar::$7 = ((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_hicolstdchar::$8 = >((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_hicolmcchar::$4 = ((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_hicolmcchar::$3 = (const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_hicolecmchar::$17 = ((word))(const byte*) mode_hicolecmchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff +Constant inlined mode_hicolmcchar::$2 = ((byte))((dword))(const byte*) mode_hicolmcchar::CHARSET#0/(dword/signed dword) $10000 +Constant inlined mode_hicolecmchar::$18 = ((word))(const byte*) mode_hicolecmchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40 +Constant inlined mode_hicolmcchar::$1 = ((dword))(const byte*) mode_hicolmcchar::CHARSET#0/(dword/signed dword) $10000 +Constant inlined mode_mcchar::$20 = ((word))(const byte*) mode_mcchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff +Constant inlined mode_mcchar::$21 = ((word))(const byte*) mode_mcchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 +Constant inlined mode_mcchar::$22 = ((word))(const byte*) mode_mcchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_mcchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 +Constant inlined mode_hicolstdchar::$6 = (const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_mcchar::$23 = ((byte))((word))(const byte*) mode_mcchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_mcchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 +Constant inlined mode_hicolstdchar::$7 = ((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_hicolstdchar::$8 = >((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) $400 Constant inlined mode_hicolstdchar::$9 = ((word))(const byte*) mode_hicolstdchar::CHARSET#0 -Constant inlined menu::$3 = (const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_hicolstdchar::$2 = ((byte))((dword))(const byte*) mode_hicolstdchar::CHARSET#0/(dword/signed dword) 65536 -Constant inlined menu::$4 = ((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_hicolstdchar::$3 = (const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -Constant inlined menu::$1 = ((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 -Constant inlined mode_hicolstdchar::$4 = ((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -Constant inlined menu::$2 = ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 -Constant inlined mode_hicolstdchar::$5 = <((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) 1024 +Constant inlined menu::$3 = (const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_hicolstdchar::$2 = ((byte))((dword))(const byte*) mode_hicolstdchar::CHARSET#0/(dword/signed dword) $10000 +Constant inlined menu::$4 = ((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_hicolstdchar::$3 = (const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) $400 +Constant inlined menu::$1 = ((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) $10000 +Constant inlined mode_hicolstdchar::$4 = ((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) $400 +Constant inlined menu::$2 = ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) $10000 +Constant inlined mode_hicolstdchar::$5 = <((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) $400 Constant inlined menu::$0 = ((dword))(const byte*) menu::CHARSET#0 Constant inlined mode_hicolstdchar::$0 = ((dword))(const byte*) mode_hicolstdchar::CHARSET#0 -Constant inlined mode_hicolstdchar::$1 = ((dword))(const byte*) mode_hicolstdchar::CHARSET#0/(dword/signed dword) 65536 +Constant inlined mode_hicolstdchar::$1 = ((dword))(const byte*) mode_hicolstdchar::CHARSET#0/(dword/signed dword) $10000 Constant inlined mode_stdbitmap::l#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mode_hicolecmchar::$22 = ((word))(const byte*) mode_hicolecmchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_hicolecmchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_hicolecmchar::$23 = ((byte))((word))(const byte*) mode_hicolecmchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_hicolecmchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_hicolecmchar::$20 = ((word))(const byte*) mode_hicolecmchar::CHARSET#0&(word/signed word/dword/signed dword) 16383 -Constant inlined mode_hicolecmchar::$21 = ((word))(const byte*) mode_hicolecmchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_stdchar::$1 = ((dword))(const byte*) mode_stdchar::CHARSET#0/(dword/signed dword) 65536 -Constant inlined mode_stdchar::$2 = ((byte))((dword))(const byte*) mode_stdchar::CHARSET#0/(dword/signed dword) 65536 +Constant inlined mode_hicolecmchar::$22 = ((word))(const byte*) mode_hicolecmchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_hicolecmchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 +Constant inlined mode_hicolecmchar::$23 = ((byte))((word))(const byte*) mode_hicolecmchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_hicolecmchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 +Constant inlined mode_hicolecmchar::$20 = ((word))(const byte*) mode_hicolecmchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff +Constant inlined mode_hicolecmchar::$21 = ((word))(const byte*) mode_hicolecmchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 +Constant inlined mode_stdchar::$1 = ((dword))(const byte*) mode_stdchar::CHARSET#0/(dword/signed dword) $10000 +Constant inlined mode_stdchar::$2 = ((byte))((dword))(const byte*) mode_stdchar::CHARSET#0/(dword/signed dword) $10000 Constant inlined mode_stdchar::$0 = ((dword))(const byte*) mode_stdchar::CHARSET#0 -Constant inlined mode_stdchar::$5 = <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_stdchar::$5 = <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 Constant inlined print_cls::sc#0 = (const byte*) menu::SCREEN#0 -Constant inlined mode_stdchar::$6 = (const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_stdchar::$3 = (const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_stdchar::$4 = ((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_stdchar::$6 = (const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_stdchar::$3 = (const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_stdchar::$4 = ((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 Constant inlined mode_stdchar::$9 = ((word))(const byte*) mode_stdchar::CHARSET#0 -Constant inlined mode_stdchar::$7 = ((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_stdchar::$8 = >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_twoplanebitmap::$13 = >(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_twoplanebitmap::$12 = (const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_twoplanebitmap::$11 = <(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_twoplanebitmap::$10 = (const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_stdchar::$7 = ((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_stdchar::$8 = >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_twoplanebitmap::$13 = >(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_twoplanebitmap::$12 = (const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_twoplanebitmap::$11 = <(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_twoplanebitmap::$10 = (const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) $400 Constant inlined bitmap_init::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mode_sixsfred2::cx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined print_screen#1 = (const byte*) menu::SCREEN#0 @@ -8426,70 +8426,70 @@ Constant inlined mode_sixsfred::ax#0 = (byte/signed byte/word/signed word/dword/ Constant inlined mode_sixsfred2::cy#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mode_twoplanebitmap::cy#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined bitmap_init::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mode_8bppchunkybmm::gfxb#2 = ((byte*))(word/signed word/dword/signed dword) 16384 +Constant inlined mode_8bppchunkybmm::gfxb#2 = ((byte*))(word/signed word/dword/signed dword) $4000 Constant inlined mode_hicolmcchar::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mode_8bppchunkybmm::gfxbCpuBank#1 = ++((byte))(const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) 16384 -Constant inlined mode_8bppchunkybmm::gfxb#0 = ((byte*))(word/signed word/dword/signed dword) 16384 -Constant inlined mode_8bppchunkybmm::gfxbCpuBank#0 = ((byte))(const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) 16384 -Constant inlined menu::$16 = ((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) 16383 -Constant inlined menu::$17 = ((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64 +Constant inlined mode_8bppchunkybmm::gfxbCpuBank#1 = ++((byte))(const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) $4000 +Constant inlined mode_8bppchunkybmm::gfxb#0 = ((byte*))(word/signed word/dword/signed dword) $4000 +Constant inlined mode_8bppchunkybmm::gfxbCpuBank#0 = ((byte))(const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) $4000 +Constant inlined menu::$16 = ((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) $3fff +Constant inlined menu::$17 = ((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40 Constant inlined menu::$14 = (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 Constant inlined menu::$15 = ((word))(const byte*) menu::SCREEN#0 Constant inlined menu::$18 = ((word))(const byte*) menu::CHARSET#0 Constant inlined mode_8bpppixelcell::ch#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined menu::$19 = ((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) 16383 +Constant inlined menu::$19 = ((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) $3fff Constant inlined mode_8bpppixelcell::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mode_hicolstdchar::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined bitmap_init::$13 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 +Constant inlined bitmap_init::$13 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 Constant inlined mode_sixsfred2::by#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined menu::$12 = (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 +Constant inlined menu::$12 = (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) $4000 Constant inlined menu::$13 = (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0 -Constant inlined menu::$10 = ((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 +Constant inlined menu::$10 = ((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) $4000 Constant inlined mode_8bpppixelcell::cp#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined menu::$11 = ((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 +Constant inlined menu::$11 = ((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) $4000 Constant inlined mode_sixsfred::ay#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mode_ctrl::ctrl#7 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mode_stdbitmap::$16 = ((word))(const byte*) mode_stdbitmap::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_stdbitmap::BITMAP#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_stdbitmap::$16 = ((word))(const byte*) mode_stdbitmap::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_stdbitmap::BITMAP#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 Constant inlined mode_8bpppixelcell::$4 = (const byte) VIC_ECM#0|(const byte) VIC_DEN#0 Constant inlined mode_8bpppixelcell::col#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mode_stdbitmap::$15 = ((word))(const byte*) mode_stdbitmap::BITMAP#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_stdbitmap::$15 = ((word))(const byte*) mode_stdbitmap::BITMAP#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 Constant inlined mode_8bpppixelcell::$5 = (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0 -Constant inlined mode_stdbitmap::$14 = ((word))(const byte*) mode_stdbitmap::BITMAP#0&(word/signed word/dword/signed dword) 16383 +Constant inlined mode_stdbitmap::$14 = ((word))(const byte*) mode_stdbitmap::BITMAP#0&(word/signed word/dword/signed dword) $3fff Constant inlined mode_8bpppixelcell::$2 = (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0 Constant inlined mode_stdbitmap::$13 = ((word))(const byte*) mode_stdbitmap::BITMAP#0 Constant inlined mode_8bpppixelcell::$3 = (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0|(const byte) DTV_CHUNKY#0 Constant inlined mode_8bpppixelcell::$8 = <(const byte*) mode_8bpppixelcell::PLANEA#0 Constant inlined mode_8bpppixelcell::$9 = >(const byte*) mode_8bpppixelcell::PLANEA#0 Constant inlined mode_8bpppixelcell::$6 = (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 -Constant inlined mode_stdbitmap::$17 = ((byte))((word))(const byte*) mode_stdbitmap::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_stdbitmap::BITMAP#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_stdbitmap::$17 = ((byte))((word))(const byte*) mode_stdbitmap::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_stdbitmap::BITMAP#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 Constant inlined mode_8bpppixelcell::$7 = (const byte) VIC_MCM#0|(const byte) VIC_CSEL#0 Constant inlined mode_sixsfred::$10 = >(const byte*) mode_sixsfred::PLANEB#0 -Constant inlined mode_stdbitmap::$12 = ((word))(const byte*) mode_stdbitmap::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64 -Constant inlined mode_sixsfred::$11 = (const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_stdbitmap::$12 = ((word))(const byte*) mode_stdbitmap::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40 +Constant inlined mode_sixsfred::$11 = (const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) $400 Constant inlined mode_8bpppixelcell::$0 = (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0 -Constant inlined mode_stdbitmap::$11 = ((word))(const byte*) mode_stdbitmap::SCREEN#0&(word/signed word/dword/signed dword) 16383 -Constant inlined mode_sixsfred::$12 = <(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_stdbitmap::$11 = ((word))(const byte*) mode_stdbitmap::SCREEN#0&(word/signed word/dword/signed dword) $3fff +Constant inlined mode_sixsfred::$12 = <(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) $400 Constant inlined mode_stdbitmap::$10 = ((word))(const byte*) mode_stdbitmap::SCREEN#0 -Constant inlined mode_sixsfred::$13 = (const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_sixsfred::$14 = >(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) 1024 -Constant inlined menu::$20 = ((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_sixsfred::$13 = (const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_sixsfred::$14 = >(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) $400 +Constant inlined menu::$20 = ((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 Constant inlined mode_twoplanebitmap::cx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined menu::$24 = (const byte*) COLS#0+(word/signed word/dword/signed dword) 1000 -Constant inlined menu::$21 = ((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -Constant inlined menu::$22 = ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 +Constant inlined menu::$24 = (const byte*) COLS#0+(word/signed word/dword/signed dword) $3e8 +Constant inlined menu::$21 = ((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 +Constant inlined menu::$22 = ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 Constant inlined mode_8bppchunkybmm::$11 = <<(const dword) mode_8bppchunkybmm::PLANEB#0 Constant inlined mode_8bppchunkybmm::$12 = <(const dword) mode_8bppchunkybmm::PLANEB#0 -Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#0 = ((byte))(const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) 16384 +Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#0 = ((byte))(const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) $4000 Constant inlined mode_8bppchunkybmm::$13 = ><(const dword) mode_8bppchunkybmm::PLANEB#0 Constant inlined mode_8bppchunkybmm::$14 = >(const dword) mode_8bppchunkybmm::PLANEB#0 -Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#2 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 +Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#2 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 Constant inlined mode_twoplanebitmap::ay#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mode_8bppchunkybmm::$10 = <(const dword) mode_8bppchunkybmm::PLANEB#0 Constant inlined mode_mcchar::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mode_sixsfred::bx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mode_mcchar::cx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mode_8bppchunkybmm::$15 = <>(const dword) mode_8bppchunkybmm::PLANEB#0 -Constant inlined mode_8bppchunkybmm::$17 = (const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) 16384 +Constant inlined mode_8bppchunkybmm::$17 = (const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) $4000 Constant inlined mode_8bppchunkybmm::$3 = (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0 Constant inlined mode_8bppchunkybmm::$0 = (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0 Constant inlined mode_8bppchunkybmm::$1 = (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0|(const byte) DTV_CHUNKY#0 @@ -8529,7 +8529,7 @@ Constant inlined mode_sixsfred2::ax#0 = (byte/signed byte/word/signed word/dword Constant inlined keyboard_key_pressed::key#10 = (const byte) KEY_D#0 Constant inlined keyboard_key_pressed::key#11 = (const byte) KEY_E#0 Constant inlined keyboard_key_pressed::key#12 = (const byte) KEY_SPACE#0 -Constant inlined mode_stdchar::$12 = (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 +Constant inlined mode_stdchar::$12 = (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 Constant inlined mode_sixsfred2::$2 = (const byte) VIC_ECM#0|(const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0 Constant inlined mode_sixsfred::by#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mode_stdchar::$13 = (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0 @@ -8538,22 +8538,22 @@ Constant inlined mode_stdchar::$14 = (const byte) VIC_DEN#0|(const byte) VIC_RSE Constant inlined mode_sixsfred2::$4 = (const byte) VIC_MCM#0|(const byte) VIC_CSEL#0 Constant inlined mode_stdchar::$15 = ((word))(const byte*) mode_stdchar::SCREEN#0 Constant inlined mode_sixsfred2::$5 = <(const byte*) mode_sixsfred2::PLANEA#0 -Constant inlined print_cls::$0 = (const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) 1000 -Constant inlined mode_stdchar::$16 = ((word))(const byte*) mode_stdchar::SCREEN#0&(word/signed word/dword/signed dword) 16383 +Constant inlined print_cls::$0 = (const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) $3e8 +Constant inlined mode_stdchar::$16 = ((word))(const byte*) mode_stdchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff Constant inlined mode_sixsfred2::$6 = >(const byte*) mode_sixsfred2::PLANEA#0 -Constant inlined mode_stdchar::$17 = ((word))(const byte*) mode_stdchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64 +Constant inlined mode_stdchar::$17 = ((word))(const byte*) mode_stdchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40 Constant inlined mode_sixsfred2::$7 = <(const byte*) mode_sixsfred2::PLANEB#0 Constant inlined mode_stdchar::$18 = ((word))(const byte*) mode_stdchar::CHARSET#0 Constant inlined mode_sixsfred2::$8 = >(const byte*) mode_sixsfred2::PLANEB#0 -Constant inlined mode_stdchar::$19 = ((word))(const byte*) mode_stdchar::CHARSET#0&(word/signed word/dword/signed dword) 16383 -Constant inlined mode_sixsfred2::$9 = (const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_sixsfred2::$11 = (const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_sixsfred2::$12 = >(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_stdchar::$19 = ((word))(const byte*) mode_stdchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff +Constant inlined mode_sixsfred2::$9 = (const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_sixsfred2::$11 = (const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_sixsfred2::$12 = >(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) $400 Constant inlined mode_mcchar::cy#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mode_sixsfred2::$10 = <(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_stdchar::$10 = ((word))(const byte*) mode_stdchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 +Constant inlined mode_sixsfred2::$10 = <(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_stdchar::$10 = ((word))(const byte*) mode_stdchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 Constant inlined mode_sixsfred2::$0 = (const byte) VIC_ECM#0|(const byte) VIC_BMM#0 -Constant inlined mode_stdchar::$11 = ((byte))((word))(const byte*) mode_stdchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 +Constant inlined mode_stdchar::$11 = ((byte))((word))(const byte*) mode_stdchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 Constant inlined mode_sixsfred2::$1 = (const byte) VIC_ECM#0|(const byte) VIC_BMM#0|(const byte) VIC_DEN#0 Constant inlined mode_twoplanebitmap::by#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mode_8bpppixelcell::cr#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -8565,40 +8565,40 @@ Constant inlined mode_hicolstdchar::$14 = (const byte) VIC_DEN#0|(const byte) VI Constant inlined bitmap_clear::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mode_hicolstdchar::cy#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mode_hicolstdchar::$15 = ((word))(const byte*) mode_hicolstdchar::SCREEN#0 -Constant inlined mode_hicolstdchar::$16 = ((word))(const byte*) mode_hicolstdchar::SCREEN#0&(word/signed word/dword/signed dword) 16383 -Constant inlined mode_hicolstdchar::$17 = ((word))(const byte*) mode_hicolstdchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64 -Constant inlined mode_stdchar::$20 = ((word))(const byte*) mode_stdchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_hicolstdchar::$16 = ((word))(const byte*) mode_hicolstdchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff +Constant inlined mode_hicolstdchar::$17 = ((word))(const byte*) mode_hicolstdchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40 +Constant inlined mode_stdchar::$20 = ((word))(const byte*) mode_stdchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 Constant inlined mode_hicolstdchar::$18 = ((word))(const byte*) mode_hicolstdchar::CHARSET#0 -Constant inlined mode_8bppchunkybmm::$27 = (word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 -Constant inlined mode_stdchar::$21 = ((word))(const byte*) mode_stdchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_stdchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_hicolstdchar::$19 = ((word))(const byte*) mode_hicolstdchar::CHARSET#0&(word/signed word/dword/signed dword) 16383 -Constant inlined mode_stdchar::$22 = ((byte))((word))(const byte*) mode_stdchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_stdchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_hicolmcchar::$12 = (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolmcchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 -Constant inlined mode_hicolstdchar::$10 = ((word))(const byte*) mode_hicolstdchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 +Constant inlined mode_8bppchunkybmm::$27 = (word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 +Constant inlined mode_stdchar::$21 = ((word))(const byte*) mode_stdchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_stdchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 +Constant inlined mode_hicolstdchar::$19 = ((word))(const byte*) mode_hicolstdchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff +Constant inlined mode_stdchar::$22 = ((byte))((word))(const byte*) mode_stdchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_stdchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 +Constant inlined mode_hicolmcchar::$12 = (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolmcchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 +Constant inlined mode_hicolstdchar::$10 = ((word))(const byte*) mode_hicolstdchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 Constant inlined mode_hicolmcchar::$13 = (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0 -Constant inlined mode_hicolstdchar::$11 = ((byte))((word))(const byte*) mode_hicolstdchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 -Constant inlined mode_hicolmcchar::$10 = ((word))(const byte*) mode_hicolmcchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 -Constant inlined mode_hicolstdchar::$12 = (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolstdchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 -Constant inlined mode_hicolmcchar::$11 = ((byte))((word))(const byte*) mode_hicolmcchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 +Constant inlined mode_hicolstdchar::$11 = ((byte))((word))(const byte*) mode_hicolstdchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 +Constant inlined mode_hicolmcchar::$10 = ((word))(const byte*) mode_hicolmcchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 +Constant inlined mode_hicolstdchar::$12 = (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolstdchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 +Constant inlined mode_hicolmcchar::$11 = ((byte))((word))(const byte*) mode_hicolmcchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 Constant inlined mode_hicolmcchar::$16 = ((word))(const byte*) mode_hicolmcchar::SCREEN#0 -Constant inlined mode_hicolmcchar::$17 = ((word))(const byte*) mode_hicolmcchar::SCREEN#0&(word/signed word/dword/signed dword) 16383 +Constant inlined mode_hicolmcchar::$17 = ((word))(const byte*) mode_hicolmcchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff Constant inlined mode_hicolmcchar::$14 = (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 Constant inlined mode_hicolmcchar::$15 = (const byte) VIC_CSEL#0|(const byte) VIC_MCM#0 Constant inlined mode_sixsfred2::ay#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mode_hicolmcchar::$18 = ((word))(const byte*) mode_hicolmcchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64 +Constant inlined mode_hicolmcchar::$18 = ((word))(const byte*) mode_hicolmcchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40 Constant inlined mode_hicolmcchar::$19 = ((word))(const byte*) mode_hicolmcchar::CHARSET#0 Constant inlined dtv_control#33 = (const byte) DTV_HIGHCOLOR#0 Constant inlined dtv_control#30 = (const byte) DTV_HIGHCOLOR#0 Constant inlined menu::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mode_stdchar::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mode_hicolmcchar::$20 = ((word))(const byte*) mode_hicolmcchar::CHARSET#0&(word/signed word/dword/signed dword) 16383 -Constant inlined mode_hicolstdchar::$20 = ((word))(const byte*) mode_hicolstdchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_hicolmcchar::$23 = ((byte))((word))(const byte*) mode_hicolmcchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_hicolmcchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_hicolmcchar::$20 = ((word))(const byte*) mode_hicolmcchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff +Constant inlined mode_hicolstdchar::$20 = ((word))(const byte*) mode_hicolstdchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 +Constant inlined mode_hicolmcchar::$23 = ((byte))((word))(const byte*) mode_hicolmcchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_hicolmcchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 Constant inlined mode_8bpppixelcell::$10 = <(const byte*) mode_8bpppixelcell::PLANEB#0 -Constant inlined mode_hicolstdchar::$21 = ((word))(const byte*) mode_hicolstdchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_hicolstdchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_hicolstdchar::$22 = ((byte))((word))(const byte*) mode_hicolstdchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_hicolstdchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_hicolmcchar::$21 = ((word))(const byte*) mode_hicolmcchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_hicolmcchar::$22 = ((word))(const byte*) mode_hicolmcchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_hicolmcchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_hicolstdchar::$21 = ((word))(const byte*) mode_hicolstdchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_hicolstdchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 +Constant inlined mode_hicolstdchar::$22 = ((byte))((word))(const byte*) mode_hicolstdchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_hicolstdchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 +Constant inlined mode_hicolmcchar::$21 = ((word))(const byte*) mode_hicolmcchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 +Constant inlined mode_hicolmcchar::$22 = ((word))(const byte*) mode_hicolmcchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_hicolmcchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 Constant inlined mode_8bpppixelcell::$11 = >(const byte*) mode_8bpppixelcell::PLANEB#0 Constant inlined dtv_control#27 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined dtv_control#24 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -8609,10 +8609,10 @@ Constant inlined mode_8bpppixelcell::ay#0 = (byte/signed byte/word/signed word/d Constant inlined mode_sixsfred::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined bitmap_clear::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mode_hicolstdchar::cx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mode_mcchar::$10 = ((word))(const byte*) mode_mcchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 +Constant inlined mode_mcchar::$10 = ((word))(const byte*) mode_mcchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 Constant inlined mode_8bppchunkybmm::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mode_mcchar::$11 = ((byte))((word))(const byte*) mode_mcchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 -Constant inlined mode_mcchar::$12 = (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_mcchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 +Constant inlined mode_mcchar::$11 = ((byte))((word))(const byte*) mode_mcchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 +Constant inlined mode_mcchar::$12 = (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_mcchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 Constant inlined mode_mcchar::$13 = (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0 Constant inlined mode_mcchar::$14 = (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 Constant inlined dtv_control#18 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -8625,33 +8625,33 @@ Constant inlined mode_sixsfred::$2 = (const byte) VIC_ECM#0|(const byte) VIC_BMM Constant inlined mode_sixsfred::$5 = (const byte) VIC_ECM#0|(const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 Constant inlined mode_sixsfred::$4 = (const byte) VIC_ECM#0|(const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0 Constant inlined mode_sixsfred::$7 = <(const byte*) mode_sixsfred::PLANEA#0 -Constant inlined mode_ecmchar::$23 = ((byte))((word))(const byte*) mode_ecmchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_ecmchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_ecmchar::$23 = ((byte))((word))(const byte*) mode_ecmchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_ecmchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 Constant inlined mode_sixsfred::$6 = (const byte) VIC_MCM#0|(const byte) VIC_CSEL#0 -Constant inlined bitmap_init::bits#0 = (byte/word/signed word/dword/signed dword) 128 +Constant inlined bitmap_init::bits#0 = (byte/word/signed word/dword/signed dword) $80 Constant inlined mode_stdchar::cx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mode_ecmchar::$22 = ((word))(const byte*) mode_ecmchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_ecmchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_ecmchar::$22 = ((word))(const byte*) mode_ecmchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_ecmchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 Constant inlined mode_sixsfred::$9 = <(const byte*) mode_sixsfred::PLANEB#0 -Constant inlined mode_ecmchar::$21 = ((word))(const byte*) mode_ecmchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_ecmchar::$21 = ((word))(const byte*) mode_ecmchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 Constant inlined mode_sixsfred::$8 = >(const byte*) mode_sixsfred::PLANEA#0 -Constant inlined bitmap_init::bits#2 = (byte/word/signed word/dword/signed dword) 128 -Constant inlined mode_ecmchar::$20 = ((word))(const byte*) mode_ecmchar::CHARSET#0&(word/signed word/dword/signed dword) 16383 -Constant inlined mode_ecmchar::$2 = ((byte))((dword))(const byte*) mode_ecmchar::CHARSET#0/(dword/signed dword) 65536 -Constant inlined mode_ecmchar::$1 = ((dword))(const byte*) mode_ecmchar::CHARSET#0/(dword/signed dword) 65536 +Constant inlined bitmap_init::bits#2 = (byte/word/signed word/dword/signed dword) $80 +Constant inlined mode_ecmchar::$20 = ((word))(const byte*) mode_ecmchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff +Constant inlined mode_ecmchar::$2 = ((byte))((dword))(const byte*) mode_ecmchar::CHARSET#0/(dword/signed dword) $10000 +Constant inlined mode_ecmchar::$1 = ((dword))(const byte*) mode_ecmchar::CHARSET#0/(dword/signed dword) $10000 Constant inlined mode_ecmchar::$0 = ((dword))(const byte*) mode_ecmchar::CHARSET#0 Constant inlined mode_ecmchar::$19 = ((word))(const byte*) mode_ecmchar::CHARSET#0 -Constant inlined mode_ecmchar::$18 = ((word))(const byte*) mode_ecmchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64 -Constant inlined mode_ecmchar::$17 = ((word))(const byte*) mode_ecmchar::SCREEN#0&(word/signed word/dword/signed dword) 16383 +Constant inlined mode_ecmchar::$18 = ((word))(const byte*) mode_ecmchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40 +Constant inlined mode_ecmchar::$17 = ((word))(const byte*) mode_ecmchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff Constant inlined print_set_screen::screen#0 = (const byte*) menu::SCREEN#0 Constant inlined mode_ecmchar::$16 = ((word))(const byte*) mode_ecmchar::SCREEN#0 Constant inlined mode_ecmchar::$9 = ((word))(const byte*) mode_ecmchar::CHARSET#0 -Constant inlined mode_ecmchar::$8 = >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_ecmchar::$7 = ((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_ecmchar::$8 = >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_ecmchar::$7 = ((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 Constant inlined mode_twoplanebitmap::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mode_ecmchar::$6 = (const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_ecmchar::$6 = (const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 Constant inlined dtv_control#48 = (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0|(const byte) DTV_CHUNKY#0 -Constant inlined mode_ecmchar::$5 = <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_ecmchar::$4 = ((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -Constant inlined mode_ecmchar::$3 = (const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 +Constant inlined mode_ecmchar::$5 = <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_ecmchar::$4 = ((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 +Constant inlined mode_ecmchar::$3 = (const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 Constant inlined dtv_control#45 = (const byte) DTV_LINEAR#0 Constant inlined mode_hicolmcchar::cx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mode_8bppchunkybmm::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -8660,9 +8660,9 @@ Constant inlined mode_sixsfred::cx#0 = (byte/signed byte/word/signed word/dword/ Constant inlined mode_ecmchar::$15 = (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(const byte) VIC_ECM#0|(byte/signed byte/word/signed word/dword/signed dword) 3 Constant inlined mode_ecmchar::$14 = (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(const byte) VIC_ECM#0 Constant inlined mode_ecmchar::$13 = (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0 -Constant inlined mode_ecmchar::$12 = (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_ecmchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 -Constant inlined mode_ecmchar::$11 = ((byte))((word))(const byte*) mode_ecmchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 -Constant inlined mode_ecmchar::$10 = ((word))(const byte*) mode_ecmchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 +Constant inlined mode_ecmchar::$12 = (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_ecmchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 +Constant inlined mode_ecmchar::$11 = ((byte))((word))(const byte*) mode_ecmchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 +Constant inlined mode_ecmchar::$10 = ((word))(const byte*) mode_ecmchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 Constant inlined mode_stdchar::cy#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined bitmap_init::$1 = >(const byte*) mode_stdbitmap::BITMAP#0 Constant inlined dtv_control#39 = (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0 @@ -9266,27 +9266,27 @@ main::@2: scope:[main] from main main::@2 [9] call menu to:main::@2 menu: scope:[menu] from main::@2 - [10] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 - [11] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 - [12] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 + [10] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) $10000 + [11] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 + [12] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [13] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [14] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 - [15] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 + [15] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) $4000 [16] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [17] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 - [18] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 + [18] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 to:menu::@1 menu::@1: scope:[menu] from menu menu::@1 [19] (byte) menu::i#2 ← phi( menu/(byte/signed byte/word/signed word/dword/signed dword) 0 menu::@1/(byte) menu::i#1 ) - [20] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) + [20] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) [21] (byte) menu::i#1 ← ++ (byte) menu::i#2 - [22] if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto menu::@1 + [22] if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto menu::@1 to:menu::@2 menu::@2: scope:[menu] from menu::@1 menu::@2 [23] (byte*) menu::c#2 ← phi( menu::@1/(const byte*) COLS#0 menu::@2/(byte*) menu::c#1 ) [24] *((byte*) menu::c#2) ← (const byte) LIGHT_GREEN#0 [25] (byte*) menu::c#1 ← ++ (byte*) menu::c#2 - [26] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) 1000) goto menu::@2 + [26] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) $3e8) goto menu::@2 to:menu::@19 menu::@19: scope:[menu] from menu::@2 [27] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -9476,22 +9476,22 @@ mode_8bppchunkybmm::@1: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm mode [129] (byte) mode_8bppchunkybmm::i#2 ← phi( mode_8bppchunkybmm/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_8bppchunkybmm::@1/(byte) mode_8bppchunkybmm::i#1 ) [130] *((const byte*) DTV_PALETTE#0 + (byte) mode_8bppchunkybmm::i#2) ← (byte) mode_8bppchunkybmm::i#2 [131] (byte) mode_8bppchunkybmm::i#1 ← ++ (byte) mode_8bppchunkybmm::i#2 - [132] if((byte) mode_8bppchunkybmm::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_8bppchunkybmm::@1 + [132] if((byte) mode_8bppchunkybmm::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_8bppchunkybmm::@1 to:mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@5: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@1 [133] phi() [134] call dtvSetCpuBankSegment1 to:mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@2: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@7 - [135] (byte) mode_8bppchunkybmm::gfxbCpuBank#7 ← phi( mode_8bppchunkybmm::@7/(byte) mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::@5/++((byte))(const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) 16384 ) + [135] (byte) mode_8bppchunkybmm::gfxbCpuBank#7 ← phi( mode_8bppchunkybmm::@7/(byte) mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::@5/++((byte))(const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) $4000 ) [135] (byte) mode_8bppchunkybmm::y#6 ← phi( mode_8bppchunkybmm::@7/(byte) mode_8bppchunkybmm::y#1 mode_8bppchunkybmm::@5/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [135] (byte*) mode_8bppchunkybmm::gfxb#5 ← phi( mode_8bppchunkybmm::@7/(byte*) mode_8bppchunkybmm::gfxb#1 mode_8bppchunkybmm::@5/((byte*))(word/signed word/dword/signed dword) 16384 ) + [135] (byte*) mode_8bppchunkybmm::gfxb#5 ← phi( mode_8bppchunkybmm::@7/(byte*) mode_8bppchunkybmm::gfxb#1 mode_8bppchunkybmm::@5/((byte*))(word/signed word/dword/signed dword) $4000 ) to:mode_8bppchunkybmm::@3 mode_8bppchunkybmm::@3: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@4 [136] (byte) mode_8bppchunkybmm::gfxbCpuBank#4 ← phi( mode_8bppchunkybmm::@2/(byte) mode_8bppchunkybmm::gfxbCpuBank#7 mode_8bppchunkybmm::@4/(byte) mode_8bppchunkybmm::gfxbCpuBank#8 ) [136] (word) mode_8bppchunkybmm::x#2 ← phi( mode_8bppchunkybmm::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_8bppchunkybmm::@4/(word) mode_8bppchunkybmm::x#1 ) [136] (byte*) mode_8bppchunkybmm::gfxb#3 ← phi( mode_8bppchunkybmm::@2/(byte*) mode_8bppchunkybmm::gfxb#5 mode_8bppchunkybmm::@4/(byte*) mode_8bppchunkybmm::gfxb#1 ) - [137] if((byte*) mode_8bppchunkybmm::gfxb#3!=(word/dword/signed dword) 32768) goto mode_8bppchunkybmm::@4 + [137] if((byte*) mode_8bppchunkybmm::gfxb#3!=(word/dword/signed dword) $8000) goto mode_8bppchunkybmm::@4 to:mode_8bppchunkybmm::@6 mode_8bppchunkybmm::@6: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@3 [138] (byte) dtvSetCpuBankSegment1::cpuBankIdx#1 ← (byte) mode_8bppchunkybmm::gfxbCpuBank#4 @@ -9502,17 +9502,17 @@ mode_8bppchunkybmm::@10: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@6 to:mode_8bppchunkybmm::@4 mode_8bppchunkybmm::@4: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@10 mode_8bppchunkybmm::@3 [141] (byte) mode_8bppchunkybmm::gfxbCpuBank#8 ← phi( mode_8bppchunkybmm::@10/(byte) mode_8bppchunkybmm::gfxbCpuBank#2 mode_8bppchunkybmm::@3/(byte) mode_8bppchunkybmm::gfxbCpuBank#4 ) - [141] (byte*) mode_8bppchunkybmm::gfxb#4 ← phi( mode_8bppchunkybmm::@10/((byte*))(word/signed word/dword/signed dword) 16384 mode_8bppchunkybmm::@3/(byte*) mode_8bppchunkybmm::gfxb#3 ) + [141] (byte*) mode_8bppchunkybmm::gfxb#4 ← phi( mode_8bppchunkybmm::@10/((byte*))(word/signed word/dword/signed dword) $4000 mode_8bppchunkybmm::@3/(byte*) mode_8bppchunkybmm::gfxb#3 ) [142] (word~) mode_8bppchunkybmm::$23 ← (word) mode_8bppchunkybmm::x#2 + (byte) mode_8bppchunkybmm::y#6 [143] (byte) mode_8bppchunkybmm::c#0 ← ((byte)) (word~) mode_8bppchunkybmm::$23 [144] *((byte*) mode_8bppchunkybmm::gfxb#4) ← (byte) mode_8bppchunkybmm::c#0 [145] (byte*) mode_8bppchunkybmm::gfxb#1 ← ++ (byte*) mode_8bppchunkybmm::gfxb#4 [146] (word) mode_8bppchunkybmm::x#1 ← ++ (word) mode_8bppchunkybmm::x#2 - [147] if((word) mode_8bppchunkybmm::x#1!=(word/signed word/dword/signed dword) 320) goto mode_8bppchunkybmm::@3 + [147] if((word) mode_8bppchunkybmm::x#1!=(word/signed word/dword/signed dword) $140) goto mode_8bppchunkybmm::@3 to:mode_8bppchunkybmm::@7 mode_8bppchunkybmm::@7: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@4 [148] (byte) mode_8bppchunkybmm::y#1 ← ++ (byte) mode_8bppchunkybmm::y#6 - [149] if((byte) mode_8bppchunkybmm::y#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_8bppchunkybmm::@2 + [149] if((byte) mode_8bppchunkybmm::y#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_8bppchunkybmm::@2 to:mode_8bppchunkybmm::@8 mode_8bppchunkybmm::@8: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@7 [150] phi() @@ -9532,7 +9532,7 @@ mode_ctrl::@1: scope:[mode_ctrl] from mode_ctrl mode_ctrl::@14 mode_ctrl::@30 [156] (byte) dtv_control#114 ← phi( mode_ctrl/(byte) dtv_control#145 mode_ctrl::@30/(byte) dtv_control#17 ) to:mode_ctrl::@4 mode_ctrl::@4: scope:[mode_ctrl] from mode_ctrl::@1 mode_ctrl::@4 - [157] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto mode_ctrl::@4 + [157] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto mode_ctrl::@4 to:mode_ctrl::@6 mode_ctrl::@6: scope:[mode_ctrl] from mode_ctrl::@4 [158] phi() @@ -9662,7 +9662,7 @@ keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matri [222] return to:@return dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from mode_8bppchunkybmm::@5 mode_8bppchunkybmm::@6 mode_8bppchunkybmm::@8 - [223] (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 ← phi( mode_8bppchunkybmm::@5/((byte))(const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) 16384 mode_8bppchunkybmm::@6/(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 mode_8bppchunkybmm::@8/((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 ) + [223] (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 ← phi( mode_8bppchunkybmm::@5/((byte))(const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) $4000 mode_8bppchunkybmm::@6/(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 mode_8bppchunkybmm::@8/((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 ) [224] *((const byte*) dtvSetCpuBankSegment1::cpuBank#0) ← (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 asm { .byte$32,$dd lda$ff .byte$32,$00 } to:dtvSetCpuBankSegment1::@return @@ -9691,7 +9691,7 @@ mode_8bpppixelcell::@1: scope:[mode_8bpppixelcell] from mode_8bpppixelcell mode [243] (byte) mode_8bpppixelcell::i#2 ← phi( mode_8bpppixelcell/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_8bpppixelcell::@1/(byte) mode_8bpppixelcell::i#1 ) [244] *((const byte*) DTV_PALETTE#0 + (byte) mode_8bpppixelcell::i#2) ← (byte) mode_8bpppixelcell::i#2 [245] (byte) mode_8bpppixelcell::i#1 ← ++ (byte) mode_8bpppixelcell::i#2 - [246] if((byte) mode_8bpppixelcell::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_8bpppixelcell::@1 + [246] if((byte) mode_8bpppixelcell::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_8bpppixelcell::@1 to:mode_8bpppixelcell::@2 mode_8bpppixelcell::@2: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@1 mode_8bpppixelcell::@9 [247] (byte*) mode_8bpppixelcell::gfxa#3 ← phi( mode_8bpppixelcell::@1/(const byte*) mode_8bpppixelcell::PLANEA#0 mode_8bpppixelcell::@9/(byte*) mode_8bpppixelcell::gfxa#1 ) @@ -9700,18 +9700,18 @@ mode_8bpppixelcell::@2: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@1 mode_8bpppixelcell::@3: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@2 mode_8bpppixelcell::@3 [248] (byte*) mode_8bpppixelcell::gfxa#2 ← phi( mode_8bpppixelcell::@2/(byte*) mode_8bpppixelcell::gfxa#3 mode_8bpppixelcell::@3/(byte*) mode_8bpppixelcell::gfxa#1 ) [248] (byte) mode_8bpppixelcell::ax#2 ← phi( mode_8bpppixelcell::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_8bpppixelcell::@3/(byte) mode_8bpppixelcell::ax#1 ) - [249] (byte~) mode_8bpppixelcell::$13 ← (byte) mode_8bpppixelcell::ay#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [249] (byte~) mode_8bpppixelcell::$13 ← (byte) mode_8bpppixelcell::ay#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [250] (byte~) mode_8bpppixelcell::$14 ← (byte~) mode_8bpppixelcell::$13 << (byte/signed byte/word/signed word/dword/signed dword) 4 - [251] (byte~) mode_8bpppixelcell::$15 ← (byte) mode_8bpppixelcell::ax#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [251] (byte~) mode_8bpppixelcell::$15 ← (byte) mode_8bpppixelcell::ax#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [252] (byte~) mode_8bpppixelcell::$16 ← (byte~) mode_8bpppixelcell::$14 | (byte~) mode_8bpppixelcell::$15 [253] *((byte*) mode_8bpppixelcell::gfxa#2) ← (byte~) mode_8bpppixelcell::$16 [254] (byte*) mode_8bpppixelcell::gfxa#1 ← ++ (byte*) mode_8bpppixelcell::gfxa#2 [255] (byte) mode_8bpppixelcell::ax#1 ← ++ (byte) mode_8bpppixelcell::ax#2 - [256] if((byte) mode_8bpppixelcell::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_8bpppixelcell::@3 + [256] if((byte) mode_8bpppixelcell::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_8bpppixelcell::@3 to:mode_8bpppixelcell::@9 mode_8bpppixelcell::@9: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@3 [257] (byte) mode_8bpppixelcell::ay#1 ← ++ (byte) mode_8bpppixelcell::ay#4 - [258] if((byte) mode_8bpppixelcell::ay#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_8bpppixelcell::@2 + [258] if((byte) mode_8bpppixelcell::ay#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_8bpppixelcell::@2 to:mode_8bpppixelcell::@10 mode_8bpppixelcell::@10: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@9 [259] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_CHARROM#0 @@ -9720,7 +9720,7 @@ mode_8bpppixelcell::@4: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@10 [260] (byte) mode_8bpppixelcell::ch#8 ← phi( mode_8bpppixelcell::@10/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_8bpppixelcell::@13/(byte) mode_8bpppixelcell::ch#1 ) [260] (byte) mode_8bpppixelcell::col#7 ← phi( mode_8bpppixelcell::@10/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_8bpppixelcell::@13/(byte) mode_8bpppixelcell::col#1 ) [260] (byte*) mode_8bpppixelcell::gfxb#7 ← phi( mode_8bpppixelcell::@10/(const byte*) mode_8bpppixelcell::PLANEB#0 mode_8bpppixelcell::@13/(byte*) mode_8bpppixelcell::gfxb#1 ) - [260] (byte*) mode_8bpppixelcell::chargen#4 ← phi( mode_8bpppixelcell::@10/((byte*))(word/dword/signed dword) 53248 mode_8bpppixelcell::@13/(byte*) mode_8bpppixelcell::chargen#1 ) + [260] (byte*) mode_8bpppixelcell::chargen#4 ← phi( mode_8bpppixelcell::@10/((byte*))(word/dword/signed dword) $d000 mode_8bpppixelcell::@13/(byte*) mode_8bpppixelcell::chargen#1 ) to:mode_8bpppixelcell::@5 mode_8bpppixelcell::@5: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@12 mode_8bpppixelcell::@4 [261] (byte) mode_8bpppixelcell::cr#6 ← phi( mode_8bpppixelcell::@12/(byte) mode_8bpppixelcell::cr#1 mode_8bpppixelcell::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 ) @@ -9735,7 +9735,7 @@ mode_8bpppixelcell::@6: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@5 [264] (byte) mode_8bpppixelcell::col#2 ← phi( mode_8bpppixelcell::@5/(byte) mode_8bpppixelcell::col#5 mode_8bpppixelcell::@7/(byte) mode_8bpppixelcell::col#1 ) [264] (byte*) mode_8bpppixelcell::gfxb#2 ← phi( mode_8bpppixelcell::@5/(byte*) mode_8bpppixelcell::gfxb#5 mode_8bpppixelcell::@7/(byte*) mode_8bpppixelcell::gfxb#1 ) [264] (byte) mode_8bpppixelcell::bits#2 ← phi( mode_8bpppixelcell::@5/(byte) mode_8bpppixelcell::bits#0 mode_8bpppixelcell::@7/(byte) mode_8bpppixelcell::bits#1 ) - [265] (byte~) mode_8bpppixelcell::$19 ← (byte) mode_8bpppixelcell::bits#2 & (byte/word/signed word/dword/signed dword) 128 + [265] (byte~) mode_8bpppixelcell::$19 ← (byte) mode_8bpppixelcell::bits#2 & (byte/word/signed word/dword/signed dword) $80 [266] if((byte~) mode_8bpppixelcell::$19==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_8bpppixelcell::@7 to:mode_8bpppixelcell::@11 mode_8bpppixelcell::@11: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@6 @@ -9781,14 +9781,14 @@ mode_sixsfred: scope:[mode_sixsfred] from menu::@40 [294] *((const byte*) DTV_PLANEB_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [295] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [296] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [297] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) 1024 - [298] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) 1024 + [297] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) $400 + [298] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) $400 to:mode_sixsfred::@1 mode_sixsfred::@1: scope:[mode_sixsfred] from mode_sixsfred mode_sixsfred::@1 [299] (byte) mode_sixsfred::i#2 ← phi( mode_sixsfred/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_sixsfred::@1/(byte) mode_sixsfred::i#1 ) [300] *((const byte*) DTV_PALETTE#0 + (byte) mode_sixsfred::i#2) ← (byte) mode_sixsfred::i#2 [301] (byte) mode_sixsfred::i#1 ← ++ (byte) mode_sixsfred::i#2 - [302] if((byte) mode_sixsfred::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_sixsfred::@1 + [302] if((byte) mode_sixsfred::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_sixsfred::@1 to:mode_sixsfred::@8 mode_sixsfred::@8: scope:[mode_sixsfred] from mode_sixsfred::@1 [303] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -9801,15 +9801,15 @@ mode_sixsfred::@3: scope:[mode_sixsfred] from mode_sixsfred::@2 mode_sixsfred:: [305] (byte*) mode_sixsfred::col#2 ← phi( mode_sixsfred::@2/(byte*) mode_sixsfred::col#3 mode_sixsfred::@3/(byte*) mode_sixsfred::col#1 ) [305] (byte) mode_sixsfred::cx#2 ← phi( mode_sixsfred::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_sixsfred::@3/(byte) mode_sixsfred::cx#1 ) [306] (byte~) mode_sixsfred::$16 ← (byte) mode_sixsfred::cx#2 + (byte) mode_sixsfred::cy#4 - [307] (byte~) mode_sixsfred::$17 ← (byte~) mode_sixsfred::$16 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [307] (byte~) mode_sixsfred::$17 ← (byte~) mode_sixsfred::$16 & (byte/signed byte/word/signed word/dword/signed dword) $f [308] *((byte*) mode_sixsfred::col#2) ← (byte~) mode_sixsfred::$17 [309] (byte*) mode_sixsfred::col#1 ← ++ (byte*) mode_sixsfred::col#2 [310] (byte) mode_sixsfred::cx#1 ← ++ (byte) mode_sixsfred::cx#2 - [311] if((byte) mode_sixsfred::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred::@3 + [311] if((byte) mode_sixsfred::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred::@3 to:mode_sixsfred::@9 mode_sixsfred::@9: scope:[mode_sixsfred] from mode_sixsfred::@3 [312] (byte) mode_sixsfred::cy#1 ← ++ (byte) mode_sixsfred::cy#4 - [313] if((byte) mode_sixsfred::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_sixsfred::@2 + [313] if((byte) mode_sixsfred::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_sixsfred::@2 to:mode_sixsfred::@4 mode_sixsfred::@4: scope:[mode_sixsfred] from mode_sixsfred::@11 mode_sixsfred::@9 [314] (byte*) mode_sixsfred::gfxa#3 ← phi( mode_sixsfred::@9/(const byte*) mode_sixsfred::PLANEA#0 mode_sixsfred::@11/(byte*) mode_sixsfred::gfxa#1 ) @@ -9823,11 +9823,11 @@ mode_sixsfred::@5: scope:[mode_sixsfred] from mode_sixsfred::@4 mode_sixsfred:: [318] *((byte*) mode_sixsfred::gfxa#2) ← *((const byte[]) mode_sixsfred::row_bitmask#0 + (byte) mode_sixsfred::row#0) [319] (byte*) mode_sixsfred::gfxa#1 ← ++ (byte*) mode_sixsfred::gfxa#2 [320] (byte) mode_sixsfred::ax#1 ← ++ (byte) mode_sixsfred::ax#2 - [321] if((byte) mode_sixsfred::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred::@5 + [321] if((byte) mode_sixsfred::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred::@5 to:mode_sixsfred::@11 mode_sixsfred::@11: scope:[mode_sixsfred] from mode_sixsfred::@5 [322] (byte) mode_sixsfred::ay#1 ← ++ (byte) mode_sixsfred::ay#4 - [323] if((byte) mode_sixsfred::ay#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_sixsfred::@4 + [323] if((byte) mode_sixsfred::ay#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_sixsfred::@4 to:mode_sixsfred::@6 mode_sixsfred::@6: scope:[mode_sixsfred] from mode_sixsfred::@11 mode_sixsfred::@13 [324] (byte) mode_sixsfred::by#4 ← phi( mode_sixsfred::@11/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_sixsfred::@13/(byte) mode_sixsfred::by#1 ) @@ -9836,14 +9836,14 @@ mode_sixsfred::@6: scope:[mode_sixsfred] from mode_sixsfred::@11 mode_sixsfred: mode_sixsfred::@7: scope:[mode_sixsfred] from mode_sixsfred::@6 mode_sixsfred::@7 [325] (byte) mode_sixsfred::bx#2 ← phi( mode_sixsfred::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_sixsfred::@7/(byte) mode_sixsfred::bx#1 ) [325] (byte*) mode_sixsfred::gfxb#2 ← phi( mode_sixsfred::@6/(byte*) mode_sixsfred::gfxb#3 mode_sixsfred::@7/(byte*) mode_sixsfred::gfxb#1 ) - [326] *((byte*) mode_sixsfred::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 27 + [326] *((byte*) mode_sixsfred::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $1b [327] (byte*) mode_sixsfred::gfxb#1 ← ++ (byte*) mode_sixsfred::gfxb#2 [328] (byte) mode_sixsfred::bx#1 ← ++ (byte) mode_sixsfred::bx#2 - [329] if((byte) mode_sixsfred::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred::@7 + [329] if((byte) mode_sixsfred::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred::@7 to:mode_sixsfred::@13 mode_sixsfred::@13: scope:[mode_sixsfred] from mode_sixsfred::@7 [330] (byte) mode_sixsfred::by#1 ← ++ (byte) mode_sixsfred::by#4 - [331] if((byte) mode_sixsfred::by#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_sixsfred::@6 + [331] if((byte) mode_sixsfred::by#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_sixsfred::@6 to:mode_sixsfred::@14 mode_sixsfred::@14: scope:[mode_sixsfred] from mode_sixsfred::@13 [332] phi() @@ -9868,19 +9868,19 @@ mode_twoplanebitmap: scope:[mode_twoplanebitmap] from menu::@38 [347] *((const byte*) DTV_PLANEB_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [348] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [349] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [350] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) 1024 - [351] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) 1024 + [350] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) $400 + [351] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) $400 to:mode_twoplanebitmap::@1 mode_twoplanebitmap::@1: scope:[mode_twoplanebitmap] from mode_twoplanebitmap mode_twoplanebitmap::@1 [352] (byte) mode_twoplanebitmap::i#2 ← phi( mode_twoplanebitmap/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_twoplanebitmap::@1/(byte) mode_twoplanebitmap::i#1 ) [353] *((const byte*) DTV_PALETTE#0 + (byte) mode_twoplanebitmap::i#2) ← (byte) mode_twoplanebitmap::i#2 [354] (byte) mode_twoplanebitmap::i#1 ← ++ (byte) mode_twoplanebitmap::i#2 - [355] if((byte) mode_twoplanebitmap::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_twoplanebitmap::@1 + [355] if((byte) mode_twoplanebitmap::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_twoplanebitmap::@1 to:mode_twoplanebitmap::@10 mode_twoplanebitmap::@10: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@1 [356] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [357] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 112 - [358] *((const byte*) BGCOL2#0) ← (byte/word/signed word/dword/signed dword) 212 + [357] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) $70 + [358] *((const byte*) BGCOL2#0) ← (byte/word/signed word/dword/signed dword) $d4 to:mode_twoplanebitmap::@2 mode_twoplanebitmap::@2: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@10 mode_twoplanebitmap::@11 [359] (byte*) mode_twoplanebitmap::col#3 ← phi( mode_twoplanebitmap::@10/(const byte*) mode_twoplanebitmap::COLORS#0 mode_twoplanebitmap::@11/(byte*) mode_twoplanebitmap::col#1 ) @@ -9889,18 +9889,18 @@ mode_twoplanebitmap::@2: scope:[mode_twoplanebitmap] from mode_twoplanebitmap:: mode_twoplanebitmap::@3: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@2 mode_twoplanebitmap::@3 [360] (byte*) mode_twoplanebitmap::col#2 ← phi( mode_twoplanebitmap::@2/(byte*) mode_twoplanebitmap::col#3 mode_twoplanebitmap::@3/(byte*) mode_twoplanebitmap::col#1 ) [360] (byte) mode_twoplanebitmap::cx#2 ← phi( mode_twoplanebitmap::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_twoplanebitmap::@3/(byte) mode_twoplanebitmap::cx#1 ) - [361] (byte~) mode_twoplanebitmap::$15 ← (byte) mode_twoplanebitmap::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [361] (byte~) mode_twoplanebitmap::$15 ← (byte) mode_twoplanebitmap::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [362] (byte~) mode_twoplanebitmap::$16 ← (byte~) mode_twoplanebitmap::$15 << (byte/signed byte/word/signed word/dword/signed dword) 4 - [363] (byte~) mode_twoplanebitmap::$17 ← (byte) mode_twoplanebitmap::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [363] (byte~) mode_twoplanebitmap::$17 ← (byte) mode_twoplanebitmap::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [364] (byte~) mode_twoplanebitmap::$18 ← (byte~) mode_twoplanebitmap::$16 | (byte~) mode_twoplanebitmap::$17 [365] *((byte*) mode_twoplanebitmap::col#2) ← (byte~) mode_twoplanebitmap::$18 [366] (byte*) mode_twoplanebitmap::col#1 ← ++ (byte*) mode_twoplanebitmap::col#2 [367] (byte) mode_twoplanebitmap::cx#1 ← ++ (byte) mode_twoplanebitmap::cx#2 - [368] if((byte) mode_twoplanebitmap::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_twoplanebitmap::@3 + [368] if((byte) mode_twoplanebitmap::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_twoplanebitmap::@3 to:mode_twoplanebitmap::@11 mode_twoplanebitmap::@11: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@3 [369] (byte) mode_twoplanebitmap::cy#1 ← ++ (byte) mode_twoplanebitmap::cy#4 - [370] if((byte) mode_twoplanebitmap::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_twoplanebitmap::@2 + [370] if((byte) mode_twoplanebitmap::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_twoplanebitmap::@2 to:mode_twoplanebitmap::@4 mode_twoplanebitmap::@4: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@11 mode_twoplanebitmap::@15 [371] (byte*) mode_twoplanebitmap::gfxa#6 ← phi( mode_twoplanebitmap::@11/(const byte*) mode_twoplanebitmap::PLANEA#0 mode_twoplanebitmap::@15/(byte*) mode_twoplanebitmap::gfxa#7 ) @@ -9913,17 +9913,17 @@ mode_twoplanebitmap::@5: scope:[mode_twoplanebitmap] from mode_twoplanebitmap:: [374] if((byte~) mode_twoplanebitmap::$21==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_twoplanebitmap::@6 to:mode_twoplanebitmap::@13 mode_twoplanebitmap::@13: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@5 - [375] *((byte*) mode_twoplanebitmap::gfxa#3) ← (byte/word/signed word/dword/signed dword) 255 + [375] *((byte*) mode_twoplanebitmap::gfxa#3) ← (byte/word/signed word/dword/signed dword) $ff [376] (byte*) mode_twoplanebitmap::gfxa#2 ← ++ (byte*) mode_twoplanebitmap::gfxa#3 to:mode_twoplanebitmap::@7 mode_twoplanebitmap::@7: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@13 mode_twoplanebitmap::@6 [377] (byte*) mode_twoplanebitmap::gfxa#7 ← phi( mode_twoplanebitmap::@13/(byte*) mode_twoplanebitmap::gfxa#2 mode_twoplanebitmap::@6/(byte*) mode_twoplanebitmap::gfxa#1 ) [378] (byte) mode_twoplanebitmap::ax#1 ← ++ (byte) mode_twoplanebitmap::ax#2 - [379] if((byte) mode_twoplanebitmap::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_twoplanebitmap::@5 + [379] if((byte) mode_twoplanebitmap::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_twoplanebitmap::@5 to:mode_twoplanebitmap::@15 mode_twoplanebitmap::@15: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@7 [380] (byte) mode_twoplanebitmap::ay#1 ← ++ (byte) mode_twoplanebitmap::ay#4 - [381] if((byte) mode_twoplanebitmap::ay#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_twoplanebitmap::@4 + [381] if((byte) mode_twoplanebitmap::ay#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_twoplanebitmap::@4 to:mode_twoplanebitmap::@8 mode_twoplanebitmap::@8: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@15 mode_twoplanebitmap::@17 [382] (byte) mode_twoplanebitmap::by#4 ← phi( mode_twoplanebitmap::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_twoplanebitmap::@17/(byte) mode_twoplanebitmap::by#1 ) @@ -9932,14 +9932,14 @@ mode_twoplanebitmap::@8: scope:[mode_twoplanebitmap] from mode_twoplanebitmap:: mode_twoplanebitmap::@9: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@8 mode_twoplanebitmap::@9 [383] (byte) mode_twoplanebitmap::bx#2 ← phi( mode_twoplanebitmap::@8/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_twoplanebitmap::@9/(byte) mode_twoplanebitmap::bx#1 ) [383] (byte*) mode_twoplanebitmap::gfxb#2 ← phi( mode_twoplanebitmap::@8/(byte*) mode_twoplanebitmap::gfxb#3 mode_twoplanebitmap::@9/(byte*) mode_twoplanebitmap::gfxb#1 ) - [384] *((byte*) mode_twoplanebitmap::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 15 + [384] *((byte*) mode_twoplanebitmap::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $f [385] (byte*) mode_twoplanebitmap::gfxb#1 ← ++ (byte*) mode_twoplanebitmap::gfxb#2 [386] (byte) mode_twoplanebitmap::bx#1 ← ++ (byte) mode_twoplanebitmap::bx#2 - [387] if((byte) mode_twoplanebitmap::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_twoplanebitmap::@9 + [387] if((byte) mode_twoplanebitmap::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_twoplanebitmap::@9 to:mode_twoplanebitmap::@17 mode_twoplanebitmap::@17: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@9 [388] (byte) mode_twoplanebitmap::by#1 ← ++ (byte) mode_twoplanebitmap::by#4 - [389] if((byte) mode_twoplanebitmap::by#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_twoplanebitmap::@8 + [389] if((byte) mode_twoplanebitmap::by#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_twoplanebitmap::@8 to:mode_twoplanebitmap::@18 mode_twoplanebitmap::@18: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@17 [390] phi() @@ -9968,14 +9968,14 @@ mode_sixsfred2: scope:[mode_sixsfred2] from menu::@36 [407] *((const byte*) DTV_PLANEB_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [408] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [409] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [410] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) 1024 - [411] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) 1024 + [410] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) $400 + [411] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) $400 to:mode_sixsfred2::@1 mode_sixsfred2::@1: scope:[mode_sixsfred2] from mode_sixsfred2 mode_sixsfred2::@1 [412] (byte) mode_sixsfred2::i#2 ← phi( mode_sixsfred2/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_sixsfred2::@1/(byte) mode_sixsfred2::i#1 ) [413] *((const byte*) DTV_PALETTE#0 + (byte) mode_sixsfred2::i#2) ← (byte) mode_sixsfred2::i#2 [414] (byte) mode_sixsfred2::i#1 ← ++ (byte) mode_sixsfred2::i#2 - [415] if((byte) mode_sixsfred2::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_sixsfred2::@1 + [415] if((byte) mode_sixsfred2::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_sixsfred2::@1 to:mode_sixsfred2::@8 mode_sixsfred2::@8: scope:[mode_sixsfred2] from mode_sixsfred2::@1 [416] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -9994,11 +9994,11 @@ mode_sixsfred2::@3: scope:[mode_sixsfred2] from mode_sixsfred2::@2 mode_sixsfre [423] *((byte*) mode_sixsfred2::col#2) ← (byte~) mode_sixsfred2::$17 [424] (byte*) mode_sixsfred2::col#1 ← ++ (byte*) mode_sixsfred2::col#2 [425] (byte) mode_sixsfred2::cx#1 ← ++ (byte) mode_sixsfred2::cx#2 - [426] if((byte) mode_sixsfred2::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred2::@3 + [426] if((byte) mode_sixsfred2::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred2::@3 to:mode_sixsfred2::@9 mode_sixsfred2::@9: scope:[mode_sixsfred2] from mode_sixsfred2::@3 [427] (byte) mode_sixsfred2::cy#1 ← ++ (byte) mode_sixsfred2::cy#4 - [428] if((byte) mode_sixsfred2::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_sixsfred2::@2 + [428] if((byte) mode_sixsfred2::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_sixsfred2::@2 to:mode_sixsfred2::@4 mode_sixsfred2::@4: scope:[mode_sixsfred2] from mode_sixsfred2::@11 mode_sixsfred2::@9 [429] (byte*) mode_sixsfred2::gfxa#3 ← phi( mode_sixsfred2::@9/(const byte*) mode_sixsfred2::PLANEA#0 mode_sixsfred2::@11/(byte*) mode_sixsfred2::gfxa#1 ) @@ -10012,11 +10012,11 @@ mode_sixsfred2::@5: scope:[mode_sixsfred2] from mode_sixsfred2::@4 mode_sixsfre [433] *((byte*) mode_sixsfred2::gfxa#2) ← *((const byte[]) mode_sixsfred2::row_bitmask#0 + (byte) mode_sixsfred2::row#0) [434] (byte*) mode_sixsfred2::gfxa#1 ← ++ (byte*) mode_sixsfred2::gfxa#2 [435] (byte) mode_sixsfred2::ax#1 ← ++ (byte) mode_sixsfred2::ax#2 - [436] if((byte) mode_sixsfred2::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred2::@5 + [436] if((byte) mode_sixsfred2::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred2::@5 to:mode_sixsfred2::@11 mode_sixsfred2::@11: scope:[mode_sixsfred2] from mode_sixsfred2::@5 [437] (byte) mode_sixsfred2::ay#1 ← ++ (byte) mode_sixsfred2::ay#4 - [438] if((byte) mode_sixsfred2::ay#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_sixsfred2::@4 + [438] if((byte) mode_sixsfred2::ay#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_sixsfred2::@4 to:mode_sixsfred2::@6 mode_sixsfred2::@6: scope:[mode_sixsfred2] from mode_sixsfred2::@11 mode_sixsfred2::@13 [439] (byte) mode_sixsfred2::by#4 ← phi( mode_sixsfred2::@11/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_sixsfred2::@13/(byte) mode_sixsfred2::by#1 ) @@ -10025,14 +10025,14 @@ mode_sixsfred2::@6: scope:[mode_sixsfred2] from mode_sixsfred2::@11 mode_sixsfr mode_sixsfred2::@7: scope:[mode_sixsfred2] from mode_sixsfred2::@6 mode_sixsfred2::@7 [440] (byte) mode_sixsfred2::bx#2 ← phi( mode_sixsfred2::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_sixsfred2::@7/(byte) mode_sixsfred2::bx#1 ) [440] (byte*) mode_sixsfred2::gfxb#2 ← phi( mode_sixsfred2::@6/(byte*) mode_sixsfred2::gfxb#3 mode_sixsfred2::@7/(byte*) mode_sixsfred2::gfxb#1 ) - [441] *((byte*) mode_sixsfred2::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 27 + [441] *((byte*) mode_sixsfred2::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $1b [442] (byte*) mode_sixsfred2::gfxb#1 ← ++ (byte*) mode_sixsfred2::gfxb#2 [443] (byte) mode_sixsfred2::bx#1 ← ++ (byte) mode_sixsfred2::bx#2 - [444] if((byte) mode_sixsfred2::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred2::@7 + [444] if((byte) mode_sixsfred2::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred2::@7 to:mode_sixsfred2::@13 mode_sixsfred2::@13: scope:[mode_sixsfred2] from mode_sixsfred2::@7 [445] (byte) mode_sixsfred2::by#1 ← ++ (byte) mode_sixsfred2::by#4 - [446] if((byte) mode_sixsfred2::by#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_sixsfred2::@6 + [446] if((byte) mode_sixsfred2::by#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_sixsfred2::@6 to:mode_sixsfred2::@14 mode_sixsfred2::@14: scope:[mode_sixsfred2] from mode_sixsfred2::@13 [447] phi() @@ -10042,27 +10042,27 @@ mode_sixsfred2::@return: scope:[mode_sixsfred2] from mode_sixsfred2::@14 [449] return to:@return mode_hicolmcchar: scope:[mode_hicolmcchar] from menu::@34 - [450] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolmcchar::CHARSET#0/(dword/signed dword) 65536 - [451] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) 1024 - [452] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) 1024 + [450] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolmcchar::CHARSET#0/(dword/signed dword) $10000 + [451] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) $400 + [452] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) $400 [453] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0 [454] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 - [455] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolmcchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 + [455] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolmcchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 [456] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [457] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0|(const byte) VIC_MCM#0 - [458] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolmcchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_hicolmcchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 + [458] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolmcchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_hicolmcchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 to:mode_hicolmcchar::@1 mode_hicolmcchar::@1: scope:[mode_hicolmcchar] from mode_hicolmcchar mode_hicolmcchar::@1 [459] (byte) mode_hicolmcchar::i#2 ← phi( mode_hicolmcchar/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_hicolmcchar::@1/(byte) mode_hicolmcchar::i#1 ) [460] *((const byte*) DTV_PALETTE#0 + (byte) mode_hicolmcchar::i#2) ← (byte) mode_hicolmcchar::i#2 [461] (byte) mode_hicolmcchar::i#1 ← ++ (byte) mode_hicolmcchar::i#2 - [462] if((byte) mode_hicolmcchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_hicolmcchar::@1 + [462] if((byte) mode_hicolmcchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_hicolmcchar::@1 to:mode_hicolmcchar::@4 mode_hicolmcchar::@4: scope:[mode_hicolmcchar] from mode_hicolmcchar::@1 [463] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [464] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 80 - [465] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 84 - [466] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) 88 + [464] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) $50 + [465] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) $54 + [466] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) $58 to:mode_hicolmcchar::@2 mode_hicolmcchar::@2: scope:[mode_hicolmcchar] from mode_hicolmcchar::@4 mode_hicolmcchar::@5 [467] (byte*) mode_hicolmcchar::ch#3 ← phi( mode_hicolmcchar::@4/(const byte*) mode_hicolmcchar::SCREEN#0 mode_hicolmcchar::@5/(byte*) mode_hicolmcchar::ch#1 ) @@ -10073,20 +10073,20 @@ mode_hicolmcchar::@3: scope:[mode_hicolmcchar] from mode_hicolmcchar::@2 mode_h [468] (byte*) mode_hicolmcchar::ch#2 ← phi( mode_hicolmcchar::@2/(byte*) mode_hicolmcchar::ch#3 mode_hicolmcchar::@3/(byte*) mode_hicolmcchar::ch#1 ) [468] (byte*) mode_hicolmcchar::col#2 ← phi( mode_hicolmcchar::@2/(byte*) mode_hicolmcchar::col#3 mode_hicolmcchar::@3/(byte*) mode_hicolmcchar::col#1 ) [468] (byte) mode_hicolmcchar::cx#2 ← phi( mode_hicolmcchar::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_hicolmcchar::@3/(byte) mode_hicolmcchar::cx#1 ) - [469] (byte~) mode_hicolmcchar::$25 ← (byte) mode_hicolmcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [469] (byte~) mode_hicolmcchar::$25 ← (byte) mode_hicolmcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [470] (byte~) mode_hicolmcchar::$26 ← (byte~) mode_hicolmcchar::$25 << (byte/signed byte/word/signed word/dword/signed dword) 4 - [471] (byte~) mode_hicolmcchar::$27 ← (byte) mode_hicolmcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [471] (byte~) mode_hicolmcchar::$27 ← (byte) mode_hicolmcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [472] (byte) mode_hicolmcchar::v#0 ← (byte~) mode_hicolmcchar::$26 | (byte~) mode_hicolmcchar::$27 [473] *((byte*) mode_hicolmcchar::col#2) ← (byte) mode_hicolmcchar::v#0 [474] (byte*) mode_hicolmcchar::col#1 ← ++ (byte*) mode_hicolmcchar::col#2 [475] *((byte*) mode_hicolmcchar::ch#2) ← (byte) mode_hicolmcchar::v#0 [476] (byte*) mode_hicolmcchar::ch#1 ← ++ (byte*) mode_hicolmcchar::ch#2 [477] (byte) mode_hicolmcchar::cx#1 ← ++ (byte) mode_hicolmcchar::cx#2 - [478] if((byte) mode_hicolmcchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_hicolmcchar::@3 + [478] if((byte) mode_hicolmcchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_hicolmcchar::@3 to:mode_hicolmcchar::@5 mode_hicolmcchar::@5: scope:[mode_hicolmcchar] from mode_hicolmcchar::@3 [479] (byte) mode_hicolmcchar::cy#1 ← ++ (byte) mode_hicolmcchar::cy#4 - [480] if((byte) mode_hicolmcchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_hicolmcchar::@2 + [480] if((byte) mode_hicolmcchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_hicolmcchar::@2 to:mode_hicolmcchar::@6 mode_hicolmcchar::@6: scope:[mode_hicolmcchar] from mode_hicolmcchar::@5 [481] phi() @@ -10096,28 +10096,28 @@ mode_hicolmcchar::@return: scope:[mode_hicolmcchar] from mode_hicolmcchar::@6 [483] return to:@return mode_hicolecmchar: scope:[mode_hicolecmchar] from menu::@32 - [484] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolecmchar::CHARSET#0/(dword/signed dword) 65536 - [485] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) 1024 - [486] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) 1024 + [484] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolecmchar::CHARSET#0/(dword/signed dword) $10000 + [485] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) $400 + [486] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) $400 [487] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0 [488] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 - [489] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolecmchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 + [489] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolecmchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 [490] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(const byte) VIC_ECM#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [491] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 - [492] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolecmchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_hicolecmchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 + [492] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolecmchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_hicolecmchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 to:mode_hicolecmchar::@1 mode_hicolecmchar::@1: scope:[mode_hicolecmchar] from mode_hicolecmchar mode_hicolecmchar::@1 [493] (byte) mode_hicolecmchar::i#2 ← phi( mode_hicolecmchar/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_hicolecmchar::@1/(byte) mode_hicolecmchar::i#1 ) [494] *((const byte*) DTV_PALETTE#0 + (byte) mode_hicolecmchar::i#2) ← (byte) mode_hicolecmchar::i#2 [495] (byte) mode_hicolecmchar::i#1 ← ++ (byte) mode_hicolecmchar::i#2 - [496] if((byte) mode_hicolecmchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_hicolecmchar::@1 + [496] if((byte) mode_hicolecmchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_hicolecmchar::@1 to:mode_hicolecmchar::@4 mode_hicolecmchar::@4: scope:[mode_hicolecmchar] from mode_hicolecmchar::@1 [497] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [498] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 80 - [499] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 84 - [500] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) 88 - [501] *((const byte*) BGCOL4#0) ← (byte/signed byte/word/signed word/dword/signed dword) 92 + [498] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) $50 + [499] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) $54 + [500] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) $58 + [501] *((const byte*) BGCOL4#0) ← (byte/signed byte/word/signed word/dword/signed dword) $5c to:mode_hicolecmchar::@2 mode_hicolecmchar::@2: scope:[mode_hicolecmchar] from mode_hicolecmchar::@4 mode_hicolecmchar::@5 [502] (byte*) mode_hicolecmchar::ch#3 ← phi( mode_hicolecmchar::@4/(const byte*) mode_hicolecmchar::SCREEN#0 mode_hicolecmchar::@5/(byte*) mode_hicolecmchar::ch#1 ) @@ -10128,20 +10128,20 @@ mode_hicolecmchar::@3: scope:[mode_hicolecmchar] from mode_hicolecmchar::@2 mod [503] (byte*) mode_hicolecmchar::ch#2 ← phi( mode_hicolecmchar::@2/(byte*) mode_hicolecmchar::ch#3 mode_hicolecmchar::@3/(byte*) mode_hicolecmchar::ch#1 ) [503] (byte*) mode_hicolecmchar::col#2 ← phi( mode_hicolecmchar::@2/(byte*) mode_hicolecmchar::col#3 mode_hicolecmchar::@3/(byte*) mode_hicolecmchar::col#1 ) [503] (byte) mode_hicolecmchar::cx#2 ← phi( mode_hicolecmchar::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_hicolecmchar::@3/(byte) mode_hicolecmchar::cx#1 ) - [504] (byte~) mode_hicolecmchar::$25 ← (byte) mode_hicolecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [504] (byte~) mode_hicolecmchar::$25 ← (byte) mode_hicolecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [505] (byte~) mode_hicolecmchar::$26 ← (byte~) mode_hicolecmchar::$25 << (byte/signed byte/word/signed word/dword/signed dword) 4 - [506] (byte~) mode_hicolecmchar::$27 ← (byte) mode_hicolecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [506] (byte~) mode_hicolecmchar::$27 ← (byte) mode_hicolecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [507] (byte) mode_hicolecmchar::v#0 ← (byte~) mode_hicolecmchar::$26 | (byte~) mode_hicolecmchar::$27 [508] *((byte*) mode_hicolecmchar::col#2) ← (byte) mode_hicolecmchar::v#0 [509] (byte*) mode_hicolecmchar::col#1 ← ++ (byte*) mode_hicolecmchar::col#2 [510] *((byte*) mode_hicolecmchar::ch#2) ← (byte) mode_hicolecmchar::v#0 [511] (byte*) mode_hicolecmchar::ch#1 ← ++ (byte*) mode_hicolecmchar::ch#2 [512] (byte) mode_hicolecmchar::cx#1 ← ++ (byte) mode_hicolecmchar::cx#2 - [513] if((byte) mode_hicolecmchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_hicolecmchar::@3 + [513] if((byte) mode_hicolecmchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_hicolecmchar::@3 to:mode_hicolecmchar::@5 mode_hicolecmchar::@5: scope:[mode_hicolecmchar] from mode_hicolecmchar::@3 [514] (byte) mode_hicolecmchar::cy#1 ← ++ (byte) mode_hicolecmchar::cy#4 - [515] if((byte) mode_hicolecmchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_hicolecmchar::@2 + [515] if((byte) mode_hicolecmchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_hicolecmchar::@2 to:mode_hicolecmchar::@6 mode_hicolecmchar::@6: scope:[mode_hicolecmchar] from mode_hicolecmchar::@5 [516] phi() @@ -10151,21 +10151,21 @@ mode_hicolecmchar::@return: scope:[mode_hicolecmchar] from mode_hicolecmchar::@ [518] return to:@return mode_hicolstdchar: scope:[mode_hicolstdchar] from menu::@30 - [519] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolstdchar::CHARSET#0/(dword/signed dword) 65536 - [520] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) 1024 - [521] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) 1024 + [519] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolstdchar::CHARSET#0/(dword/signed dword) $10000 + [520] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) $400 + [521] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) $400 [522] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0 [523] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 - [524] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolstdchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 + [524] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolstdchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 [525] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [526] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 - [527] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolstdchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_hicolstdchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 + [527] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolstdchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_hicolstdchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 to:mode_hicolstdchar::@1 mode_hicolstdchar::@1: scope:[mode_hicolstdchar] from mode_hicolstdchar mode_hicolstdchar::@1 [528] (byte) mode_hicolstdchar::i#2 ← phi( mode_hicolstdchar/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_hicolstdchar::@1/(byte) mode_hicolstdchar::i#1 ) [529] *((const byte*) DTV_PALETTE#0 + (byte) mode_hicolstdchar::i#2) ← (byte) mode_hicolstdchar::i#2 [530] (byte) mode_hicolstdchar::i#1 ← ++ (byte) mode_hicolstdchar::i#2 - [531] if((byte) mode_hicolstdchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_hicolstdchar::@1 + [531] if((byte) mode_hicolstdchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_hicolstdchar::@1 to:mode_hicolstdchar::@4 mode_hicolstdchar::@4: scope:[mode_hicolstdchar] from mode_hicolstdchar::@1 [532] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -10180,20 +10180,20 @@ mode_hicolstdchar::@3: scope:[mode_hicolstdchar] from mode_hicolstdchar::@2 mod [535] (byte*) mode_hicolstdchar::ch#2 ← phi( mode_hicolstdchar::@2/(byte*) mode_hicolstdchar::ch#3 mode_hicolstdchar::@3/(byte*) mode_hicolstdchar::ch#1 ) [535] (byte*) mode_hicolstdchar::col#2 ← phi( mode_hicolstdchar::@2/(byte*) mode_hicolstdchar::col#3 mode_hicolstdchar::@3/(byte*) mode_hicolstdchar::col#1 ) [535] (byte) mode_hicolstdchar::cx#2 ← phi( mode_hicolstdchar::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_hicolstdchar::@3/(byte) mode_hicolstdchar::cx#1 ) - [536] (byte~) mode_hicolstdchar::$24 ← (byte) mode_hicolstdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [536] (byte~) mode_hicolstdchar::$24 ← (byte) mode_hicolstdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [537] (byte~) mode_hicolstdchar::$25 ← (byte~) mode_hicolstdchar::$24 << (byte/signed byte/word/signed word/dword/signed dword) 4 - [538] (byte~) mode_hicolstdchar::$26 ← (byte) mode_hicolstdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [538] (byte~) mode_hicolstdchar::$26 ← (byte) mode_hicolstdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [539] (byte) mode_hicolstdchar::v#0 ← (byte~) mode_hicolstdchar::$25 | (byte~) mode_hicolstdchar::$26 [540] *((byte*) mode_hicolstdchar::col#2) ← (byte) mode_hicolstdchar::v#0 [541] (byte*) mode_hicolstdchar::col#1 ← ++ (byte*) mode_hicolstdchar::col#2 [542] *((byte*) mode_hicolstdchar::ch#2) ← (byte) mode_hicolstdchar::v#0 [543] (byte*) mode_hicolstdchar::ch#1 ← ++ (byte*) mode_hicolstdchar::ch#2 [544] (byte) mode_hicolstdchar::cx#1 ← ++ (byte) mode_hicolstdchar::cx#2 - [545] if((byte) mode_hicolstdchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_hicolstdchar::@3 + [545] if((byte) mode_hicolstdchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_hicolstdchar::@3 to:mode_hicolstdchar::@5 mode_hicolstdchar::@5: scope:[mode_hicolstdchar] from mode_hicolstdchar::@3 [546] (byte) mode_hicolstdchar::cy#1 ← ++ (byte) mode_hicolstdchar::cy#4 - [547] if((byte) mode_hicolstdchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_hicolstdchar::@2 + [547] if((byte) mode_hicolstdchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_hicolstdchar::@2 to:mode_hicolstdchar::@6 mode_hicolstdchar::@6: scope:[mode_hicolstdchar] from mode_hicolstdchar::@5 [548] phi() @@ -10203,19 +10203,19 @@ mode_hicolstdchar::@return: scope:[mode_hicolstdchar] from mode_hicolstdchar::@ [550] return to:@return mode_stdbitmap: scope:[mode_stdbitmap] from menu::@28 - [551] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdbitmap::BITMAP#0/(dword/signed dword) 65536 + [551] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdbitmap::BITMAP#0/(dword/signed dword) $10000 [552] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [553] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 - [554] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdbitmap::BITMAP#0/(word/signed word/dword/signed dword) 16384 + [554] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdbitmap::BITMAP#0/(word/signed word/dword/signed dword) $4000 [555] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [556] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 - [557] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdbitmap::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_stdbitmap::BITMAP#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 + [557] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdbitmap::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_stdbitmap::BITMAP#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 to:mode_stdbitmap::@1 mode_stdbitmap::@1: scope:[mode_stdbitmap] from mode_stdbitmap mode_stdbitmap::@1 [558] (byte) mode_stdbitmap::i#2 ← phi( mode_stdbitmap/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_stdbitmap::@1/(byte) mode_stdbitmap::i#1 ) - [559] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdbitmap::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdbitmap::i#2) + [559] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdbitmap::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdbitmap::i#2) [560] (byte) mode_stdbitmap::i#1 ← ++ (byte) mode_stdbitmap::i#2 - [561] if((byte) mode_stdbitmap::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_stdbitmap::@1 + [561] if((byte) mode_stdbitmap::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_stdbitmap::@1 to:mode_stdbitmap::@5 mode_stdbitmap::@5: scope:[mode_stdbitmap] from mode_stdbitmap::@1 [562] *((const byte*) BGCOL#0) ← (const byte) BLACK#0 @@ -10229,18 +10229,18 @@ mode_stdbitmap::@3: scope:[mode_stdbitmap] from mode_stdbitmap::@2 mode_stdbitm [565] (byte*) mode_stdbitmap::ch#2 ← phi( mode_stdbitmap::@2/(byte*) mode_stdbitmap::ch#3 mode_stdbitmap::@3/(byte*) mode_stdbitmap::ch#1 ) [565] (byte) mode_stdbitmap::cx#2 ← phi( mode_stdbitmap::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_stdbitmap::@3/(byte) mode_stdbitmap::cx#1 ) [566] (byte~) mode_stdbitmap::$19 ← (byte) mode_stdbitmap::cx#2 + (byte) mode_stdbitmap::cy#4 - [567] (byte) mode_stdbitmap::col#0 ← (byte~) mode_stdbitmap::$19 & (byte/signed byte/word/signed word/dword/signed dword) 15 - [568] (byte) mode_stdbitmap::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) mode_stdbitmap::col#0 + [567] (byte) mode_stdbitmap::col#0 ← (byte~) mode_stdbitmap::$19 & (byte/signed byte/word/signed word/dword/signed dword) $f + [568] (byte) mode_stdbitmap::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f - (byte) mode_stdbitmap::col#0 [569] (byte~) mode_stdbitmap::$22 ← (byte) mode_stdbitmap::col#0 << (byte/signed byte/word/signed word/dword/signed dword) 4 [570] (byte~) mode_stdbitmap::$23 ← (byte~) mode_stdbitmap::$22 | (byte) mode_stdbitmap::col2#0 [571] *((byte*) mode_stdbitmap::ch#2) ← (byte~) mode_stdbitmap::$23 [572] (byte*) mode_stdbitmap::ch#1 ← ++ (byte*) mode_stdbitmap::ch#2 [573] (byte) mode_stdbitmap::cx#1 ← ++ (byte) mode_stdbitmap::cx#2 - [574] if((byte) mode_stdbitmap::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_stdbitmap::@3 + [574] if((byte) mode_stdbitmap::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_stdbitmap::@3 to:mode_stdbitmap::@6 mode_stdbitmap::@6: scope:[mode_stdbitmap] from mode_stdbitmap::@3 [575] (byte) mode_stdbitmap::cy#1 ← ++ (byte) mode_stdbitmap::cy#4 - [576] if((byte) mode_stdbitmap::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_stdbitmap::@2 + [576] if((byte) mode_stdbitmap::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_stdbitmap::@2 to:mode_stdbitmap::@7 mode_stdbitmap::@7: scope:[mode_stdbitmap] from mode_stdbitmap::@6 [577] phi() @@ -10400,10 +10400,10 @@ bitmap_line_xdyi::@return: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@2 bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1 bitmap_line_ydxd::@1 bitmap_line_ydxi::@1 [669] (byte) bitmap_plot::y#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::y#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::y#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::y#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::y#2 ) [669] (byte) bitmap_plot::x#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::x#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::x#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::x#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::x#2 ) - [670] (word) bitmap_plot::plotter_x#0 ← *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) - [671] (word) bitmap_plot::plotter_y#0 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) + [670] (word) bitmap_plot::plotter_x#0 ← *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) + [671] (word) bitmap_plot::plotter_y#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) [672] (word~) bitmap_plot::$0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0 - [673] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) + [673] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) [674] *((byte*)(word~) bitmap_plot::$0) ← (byte~) bitmap_plot::$1 to:bitmap_plot::@return bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot @@ -10512,7 +10512,7 @@ bitmap_line_ydxd::@return: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@2 [720] return to:@return bitmap_clear: scope:[bitmap_clear] from mode_stdbitmap::@9 - [721] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_xhi#0) w= *((const byte[256]) bitmap_plot_xlo#0) + [721] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_xhi#0) w= *((const byte[$100]) bitmap_plot_xlo#0) [722] (byte*~) bitmap_clear::bitmap#5 ← (byte*)(word~) bitmap_clear::$3 to:bitmap_clear::@1 bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear bitmap_clear::@3 @@ -10525,11 +10525,11 @@ bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1 bitmap_clear::@2 [725] *((byte*) bitmap_clear::bitmap#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [726] (byte*) bitmap_clear::bitmap#1 ← ++ (byte*) bitmap_clear::bitmap#2 [727] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 - [728] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) 200) goto bitmap_clear::@2 + [728] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) $c8) goto bitmap_clear::@2 to:bitmap_clear::@3 bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2 [729] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 - [730] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto bitmap_clear::@1 + [730] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto bitmap_clear::@1 to:bitmap_clear::@return bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3 [731] return @@ -10538,17 +10538,17 @@ bitmap_init: scope:[bitmap_init] from mode_stdbitmap::@7 [732] phi() to:bitmap_init::@1 bitmap_init::@1: scope:[bitmap_init] from bitmap_init bitmap_init::@2 - [733] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte/word/signed word/dword/signed dword) 128 bitmap_init::@2/(byte) bitmap_init::bits#4 ) + [733] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte/word/signed word/dword/signed dword) $80 bitmap_init::@2/(byte) bitmap_init::bits#4 ) [733] (byte) bitmap_init::x#2 ← phi( bitmap_init/(byte/signed byte/word/signed word/dword/signed dword) 0 bitmap_init::@2/(byte) bitmap_init::x#1 ) - [734] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) 248 - [735] *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 - [736] *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) mode_stdbitmap::BITMAP#0 - [737] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 + [734] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) $f8 + [735] *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 + [736] *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) mode_stdbitmap::BITMAP#0 + [737] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [738] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [739] if((byte) bitmap_init::bits#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@10 to:bitmap_init::@2 bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@10 - [740] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@10/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte/word/signed word/dword/signed dword) 128 ) + [740] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@10/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte/word/signed word/dword/signed dword) $80 ) [741] (byte) bitmap_init::x#1 ← ++ (byte) bitmap_init::x#2 [742] if((byte) bitmap_init::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@1 to:bitmap_init::@3 @@ -10558,14 +10558,14 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4 [744] (byte~) bitmap_init::$6 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [745] (byte~) bitmap_init::$7 ← < (byte*) bitmap_init::yoffs#2 [746] (byte~) bitmap_init::$8 ← (byte~) bitmap_init::$6 | (byte~) bitmap_init::$7 - [747] *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 + [747] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 [748] (byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2 - [749] *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 + [749] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 [750] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [751] if((byte~) bitmap_init::$10!=(byte/signed byte/word/signed word/dword/signed dword) 7) goto bitmap_init::@4 to:bitmap_init::@7 bitmap_init::@7: scope:[bitmap_init] from bitmap_init::@3 - [752] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 + [752] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 to:bitmap_init::@4 bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@7 [753] (byte*) bitmap_init::yoffs#4 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 bitmap_init::@7/(byte*) bitmap_init::yoffs#1 ) @@ -10579,21 +10579,21 @@ bitmap_init::@10: scope:[bitmap_init] from bitmap_init::@1 [757] phi() to:bitmap_init::@2 mode_mcchar: scope:[mode_mcchar] from menu::@26 - [758] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_mcchar::CHARSET#0/(dword/signed dword) 65536 - [759] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 - [760] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 + [758] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_mcchar::CHARSET#0/(dword/signed dword) $10000 + [759] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 + [760] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [761] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [762] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 - [763] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_mcchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 + [763] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_mcchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 [764] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [765] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0|(const byte) VIC_MCM#0 - [766] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_mcchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_mcchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 + [766] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_mcchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_mcchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 to:mode_mcchar::@1 mode_mcchar::@1: scope:[mode_mcchar] from mode_mcchar mode_mcchar::@1 [767] (byte) mode_mcchar::i#2 ← phi( mode_mcchar/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_mcchar::@1/(byte) mode_mcchar::i#1 ) - [768] *((const byte*) DTV_PALETTE#0 + (byte) mode_mcchar::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_mcchar::i#2) + [768] *((const byte*) DTV_PALETTE#0 + (byte) mode_mcchar::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_mcchar::i#2) [769] (byte) mode_mcchar::i#1 ← ++ (byte) mode_mcchar::i#2 - [770] if((byte) mode_mcchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_mcchar::@1 + [770] if((byte) mode_mcchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_mcchar::@1 to:mode_mcchar::@4 mode_mcchar::@4: scope:[mode_mcchar] from mode_mcchar::@1 [771] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -10611,21 +10611,21 @@ mode_mcchar::@3: scope:[mode_mcchar] from mode_mcchar::@2 mode_mcchar::@3 [776] (byte*) mode_mcchar::col#2 ← phi( mode_mcchar::@2/(byte*) mode_mcchar::col#3 mode_mcchar::@3/(byte*) mode_mcchar::col#1 ) [776] (byte) mode_mcchar::cx#2 ← phi( mode_mcchar::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_mcchar::@3/(byte) mode_mcchar::cx#1 ) [777] (byte~) mode_mcchar::$25 ← (byte) mode_mcchar::cx#2 + (byte) mode_mcchar::cy#4 - [778] (byte~) mode_mcchar::$26 ← (byte~) mode_mcchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [778] (byte~) mode_mcchar::$26 ← (byte~) mode_mcchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) $f [779] *((byte*) mode_mcchar::col#2) ← (byte~) mode_mcchar::$26 [780] (byte*) mode_mcchar::col#1 ← ++ (byte*) mode_mcchar::col#2 - [781] (byte~) mode_mcchar::$27 ← (byte) mode_mcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [781] (byte~) mode_mcchar::$27 ← (byte) mode_mcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [782] (byte~) mode_mcchar::$28 ← (byte~) mode_mcchar::$27 << (byte/signed byte/word/signed word/dword/signed dword) 4 - [783] (byte~) mode_mcchar::$29 ← (byte) mode_mcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [783] (byte~) mode_mcchar::$29 ← (byte) mode_mcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [784] (byte~) mode_mcchar::$30 ← (byte~) mode_mcchar::$28 | (byte~) mode_mcchar::$29 [785] *((byte*) mode_mcchar::ch#2) ← (byte~) mode_mcchar::$30 [786] (byte*) mode_mcchar::ch#1 ← ++ (byte*) mode_mcchar::ch#2 [787] (byte) mode_mcchar::cx#1 ← ++ (byte) mode_mcchar::cx#2 - [788] if((byte) mode_mcchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_mcchar::@3 + [788] if((byte) mode_mcchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_mcchar::@3 to:mode_mcchar::@5 mode_mcchar::@5: scope:[mode_mcchar] from mode_mcchar::@3 [789] (byte) mode_mcchar::cy#1 ← ++ (byte) mode_mcchar::cy#4 - [790] if((byte) mode_mcchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_mcchar::@2 + [790] if((byte) mode_mcchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_mcchar::@2 to:mode_mcchar::@6 mode_mcchar::@6: scope:[mode_mcchar] from mode_mcchar::@5 [791] phi() @@ -10635,21 +10635,21 @@ mode_mcchar::@return: scope:[mode_mcchar] from mode_mcchar::@6 [793] return to:@return mode_ecmchar: scope:[mode_ecmchar] from menu::@24 - [794] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_ecmchar::CHARSET#0/(dword/signed dword) 65536 - [795] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 - [796] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 + [794] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_ecmchar::CHARSET#0/(dword/signed dword) $10000 + [795] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 + [796] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [797] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [798] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 - [799] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_ecmchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 + [799] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_ecmchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 [800] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(const byte) VIC_ECM#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [801] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 - [802] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_ecmchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_ecmchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 + [802] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_ecmchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_ecmchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 to:mode_ecmchar::@1 mode_ecmchar::@1: scope:[mode_ecmchar] from mode_ecmchar mode_ecmchar::@1 [803] (byte) mode_ecmchar::i#2 ← phi( mode_ecmchar/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_ecmchar::@1/(byte) mode_ecmchar::i#1 ) - [804] *((const byte*) DTV_PALETTE#0 + (byte) mode_ecmchar::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_ecmchar::i#2) + [804] *((const byte*) DTV_PALETTE#0 + (byte) mode_ecmchar::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_ecmchar::i#2) [805] (byte) mode_ecmchar::i#1 ← ++ (byte) mode_ecmchar::i#2 - [806] if((byte) mode_ecmchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_ecmchar::@1 + [806] if((byte) mode_ecmchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_ecmchar::@1 to:mode_ecmchar::@4 mode_ecmchar::@4: scope:[mode_ecmchar] from mode_ecmchar::@1 [807] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -10668,21 +10668,21 @@ mode_ecmchar::@3: scope:[mode_ecmchar] from mode_ecmchar::@2 mode_ecmchar::@3 [813] (byte*) mode_ecmchar::col#2 ← phi( mode_ecmchar::@2/(byte*) mode_ecmchar::col#3 mode_ecmchar::@3/(byte*) mode_ecmchar::col#1 ) [813] (byte) mode_ecmchar::cx#2 ← phi( mode_ecmchar::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_ecmchar::@3/(byte) mode_ecmchar::cx#1 ) [814] (byte~) mode_ecmchar::$25 ← (byte) mode_ecmchar::cx#2 + (byte) mode_ecmchar::cy#4 - [815] (byte~) mode_ecmchar::$26 ← (byte~) mode_ecmchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [815] (byte~) mode_ecmchar::$26 ← (byte~) mode_ecmchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) $f [816] *((byte*) mode_ecmchar::col#2) ← (byte~) mode_ecmchar::$26 [817] (byte*) mode_ecmchar::col#1 ← ++ (byte*) mode_ecmchar::col#2 - [818] (byte~) mode_ecmchar::$27 ← (byte) mode_ecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [818] (byte~) mode_ecmchar::$27 ← (byte) mode_ecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [819] (byte~) mode_ecmchar::$28 ← (byte~) mode_ecmchar::$27 << (byte/signed byte/word/signed word/dword/signed dword) 4 - [820] (byte~) mode_ecmchar::$29 ← (byte) mode_ecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [820] (byte~) mode_ecmchar::$29 ← (byte) mode_ecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [821] (byte~) mode_ecmchar::$30 ← (byte~) mode_ecmchar::$28 | (byte~) mode_ecmchar::$29 [822] *((byte*) mode_ecmchar::ch#2) ← (byte~) mode_ecmchar::$30 [823] (byte*) mode_ecmchar::ch#1 ← ++ (byte*) mode_ecmchar::ch#2 [824] (byte) mode_ecmchar::cx#1 ← ++ (byte) mode_ecmchar::cx#2 - [825] if((byte) mode_ecmchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_ecmchar::@3 + [825] if((byte) mode_ecmchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_ecmchar::@3 to:mode_ecmchar::@5 mode_ecmchar::@5: scope:[mode_ecmchar] from mode_ecmchar::@3 [826] (byte) mode_ecmchar::cy#1 ← ++ (byte) mode_ecmchar::cy#4 - [827] if((byte) mode_ecmchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_ecmchar::@2 + [827] if((byte) mode_ecmchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_ecmchar::@2 to:mode_ecmchar::@6 mode_ecmchar::@6: scope:[mode_ecmchar] from mode_ecmchar::@5 [828] phi() @@ -10692,21 +10692,21 @@ mode_ecmchar::@return: scope:[mode_ecmchar] from mode_ecmchar::@6 [830] return to:@return mode_stdchar: scope:[mode_stdchar] from menu::@22 - [831] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdchar::CHARSET#0/(dword/signed dword) 65536 - [832] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 - [833] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 + [831] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdchar::CHARSET#0/(dword/signed dword) $10000 + [832] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 + [833] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [834] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [835] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 - [836] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 + [836] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 [837] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [838] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 - [839] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_stdchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 + [839] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_stdchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 to:mode_stdchar::@1 mode_stdchar::@1: scope:[mode_stdchar] from mode_stdchar mode_stdchar::@1 [840] (byte) mode_stdchar::i#2 ← phi( mode_stdchar/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_stdchar::@1/(byte) mode_stdchar::i#1 ) - [841] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdchar::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdchar::i#2) + [841] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdchar::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdchar::i#2) [842] (byte) mode_stdchar::i#1 ← ++ (byte) mode_stdchar::i#2 - [843] if((byte) mode_stdchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_stdchar::@1 + [843] if((byte) mode_stdchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_stdchar::@1 to:mode_stdchar::@4 mode_stdchar::@4: scope:[mode_stdchar] from mode_stdchar::@1 [844] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -10722,21 +10722,21 @@ mode_stdchar::@3: scope:[mode_stdchar] from mode_stdchar::@2 mode_stdchar::@3 [847] (byte*) mode_stdchar::col#2 ← phi( mode_stdchar::@2/(byte*) mode_stdchar::col#3 mode_stdchar::@3/(byte*) mode_stdchar::col#1 ) [847] (byte) mode_stdchar::cx#2 ← phi( mode_stdchar::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_stdchar::@3/(byte) mode_stdchar::cx#1 ) [848] (byte~) mode_stdchar::$24 ← (byte) mode_stdchar::cx#2 + (byte) mode_stdchar::cy#4 - [849] (byte~) mode_stdchar::$25 ← (byte~) mode_stdchar::$24 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [849] (byte~) mode_stdchar::$25 ← (byte~) mode_stdchar::$24 & (byte/signed byte/word/signed word/dword/signed dword) $f [850] *((byte*) mode_stdchar::col#2) ← (byte~) mode_stdchar::$25 [851] (byte*) mode_stdchar::col#1 ← ++ (byte*) mode_stdchar::col#2 - [852] (byte~) mode_stdchar::$26 ← (byte) mode_stdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [852] (byte~) mode_stdchar::$26 ← (byte) mode_stdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [853] (byte~) mode_stdchar::$27 ← (byte~) mode_stdchar::$26 << (byte/signed byte/word/signed word/dword/signed dword) 4 - [854] (byte~) mode_stdchar::$28 ← (byte) mode_stdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [854] (byte~) mode_stdchar::$28 ← (byte) mode_stdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [855] (byte~) mode_stdchar::$29 ← (byte~) mode_stdchar::$27 | (byte~) mode_stdchar::$28 [856] *((byte*) mode_stdchar::ch#2) ← (byte~) mode_stdchar::$29 [857] (byte*) mode_stdchar::ch#1 ← ++ (byte*) mode_stdchar::ch#2 [858] (byte) mode_stdchar::cx#1 ← ++ (byte) mode_stdchar::cx#2 - [859] if((byte) mode_stdchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_stdchar::@3 + [859] if((byte) mode_stdchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_stdchar::@3 to:mode_stdchar::@5 mode_stdchar::@5: scope:[mode_stdchar] from mode_stdchar::@3 [860] (byte) mode_stdchar::cy#1 ← ++ (byte) mode_stdchar::cy#4 - [861] if((byte) mode_stdchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_stdchar::@2 + [861] if((byte) mode_stdchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_stdchar::@2 to:mode_stdchar::@6 mode_stdchar::@6: scope:[mode_stdchar] from mode_stdchar::@5 [862] phi() @@ -10782,7 +10782,7 @@ print_ln: scope:[print_ln] from print_str_lines::@9 to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [881] (byte*) print_line_cursor#18 ← phi( print_ln/(byte*) print_line_cursor#17 print_ln::@1/(byte*) print_line_cursor#19 ) - [882] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [882] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) $28 [883] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 @@ -10795,7 +10795,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 [886] (byte*) print_cls::sc#2 ← phi( print_cls/(const byte*) menu::SCREEN#0 print_cls::@1/(byte*) print_cls::sc#1 ) [887] *((byte*) print_cls::sc#2) ← (byte) ' ' [888] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [889] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [889] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [890] return @@ -10949,7 +10949,7 @@ VARIABLE REGISTER WEIGHTS (byte) DTV_LINEAR (byte) DTV_OVERSCAN (byte*) DTV_PALETTE -(byte[16]) DTV_PALETTE_DEFAULT +(byte[$10]) DTV_PALETTE_DEFAULT (byte*) DTV_PLANEA_MODULO_HI (byte*) DTV_PLANEA_MODULO_LO (byte*) DTV_PLANEA_START_HI @@ -11289,11 +11289,11 @@ VARIABLE REGISTER WEIGHTS (byte) bitmap_plot::y#2 2002.0 (byte) bitmap_plot::y#3 2002.0 (byte) bitmap_plot::y#4 2004.0 -(byte[256]) bitmap_plot_bit -(byte[256]) bitmap_plot_xhi -(byte[256]) bitmap_plot_xlo -(byte[256]) bitmap_plot_yhi -(byte[256]) bitmap_plot_ylo +(byte[$100]) bitmap_plot_bit +(byte[$100]) bitmap_plot_xhi +(byte[$100]) bitmap_plot_xlo +(byte[$100]) bitmap_plot_yhi +(byte[$100]) bitmap_plot_ylo (void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx) (byte*) dtvSetCpuBankSegment1::cpuBank (byte) dtvSetCpuBankSegment1::cpuBankIdx @@ -12747,16 +12747,16 @@ menu: { .label _73 = $b8 .label i = 2 .label c = 3 - //SEG18 [10] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 -- _deref_pbuc1=vbuc2 + //SEG18 [10] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) $10000 -- _deref_pbuc1=vbuc2 // Charset ROM // DTV Graphics Bank lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG19 [11] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG19 [11] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #DTV_COLOR_BANK_DEFAULT/$400 sta DTV_COLOR_BANK_LO - //SEG20 [12] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG20 [12] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI //SEG21 [13] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 @@ -12767,7 +12767,7 @@ menu: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG23 [15] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG23 [15] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^CHARSET/$4000 sta CIA2_PORT_A @@ -12779,7 +12779,7 @@ menu: { //SEG25 [17] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 -- _deref_pbuc1=vbuc2 lda #VIC_CSEL sta VIC_CONTROL2 - //SEG26 [18] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG26 [18] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // VIC Memory Pointers lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY @@ -12796,13 +12796,13 @@ menu: { jmp b1 //SEG31 menu::@1 b1: - //SEG32 [20] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 + //SEG32 [20] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 ldy i lda DTV_PALETTE_DEFAULT,y sta DTV_PALETTE,y //SEG33 [21] (byte) menu::i#1 ← ++ (byte) menu::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG34 [22] if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto menu::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG34 [22] if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto menu::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b1 @@ -12830,7 +12830,7 @@ menu: { bne !+ inc c+1 !: - //SEG42 [26] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) 1000) goto menu::@2 -- pbuz1_neq_pbuc1_then_la1 + //SEG42 [26] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) $3e8) goto menu::@2 -- pbuz1_neq_pbuc1_then_la1 lda c+1 cmp #>COLS+$3e8 bne b2_from_b2 @@ -13340,7 +13340,7 @@ mode_8bppchunkybmm: { sta DTV_PALETTE,y //SEG219 [131] (byte) mode_8bppchunkybmm::i#1 ← ++ (byte) mode_8bppchunkybmm::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG220 [132] if((byte) mode_8bppchunkybmm::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_8bppchunkybmm::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG220 [132] if((byte) mode_8bppchunkybmm::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_8bppchunkybmm::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b1 @@ -13352,19 +13352,19 @@ mode_8bppchunkybmm: { //SEG223 [134] call dtvSetCpuBankSegment1 //SEG224 [223] phi from mode_8bppchunkybmm::@5 to dtvSetCpuBankSegment1 [phi:mode_8bppchunkybmm::@5->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from_b5: - //SEG225 [223] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 = ((byte))(const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) 16384 [phi:mode_8bppchunkybmm::@5->dtvSetCpuBankSegment1#0] -- vbuz1=vbuc1 + //SEG225 [223] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 = ((byte))(const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) $4000 [phi:mode_8bppchunkybmm::@5->dtvSetCpuBankSegment1#0] -- vbuz1=vbuc1 lda #PLANEB/$4000 sta dtvSetCpuBankSegment1.cpuBankIdx jsr dtvSetCpuBankSegment1 //SEG226 [135] phi from mode_8bppchunkybmm::@5 to mode_8bppchunkybmm::@2 [phi:mode_8bppchunkybmm::@5->mode_8bppchunkybmm::@2] b2_from_b5: - //SEG227 [135] phi (byte) mode_8bppchunkybmm::gfxbCpuBank#7 = ++((byte))(const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) 16384 [phi:mode_8bppchunkybmm::@5->mode_8bppchunkybmm::@2#0] -- vbuz1=vbuc1 + //SEG227 [135] phi (byte) mode_8bppchunkybmm::gfxbCpuBank#7 = ++((byte))(const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) $4000 [phi:mode_8bppchunkybmm::@5->mode_8bppchunkybmm::@2#0] -- vbuz1=vbuc1 lda #PLANEB/$4000+1 sta gfxbCpuBank //SEG228 [135] phi (byte) mode_8bppchunkybmm::y#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mode_8bppchunkybmm::@5->mode_8bppchunkybmm::@2#1] -- vbuz1=vbuc1 lda #0 sta y - //SEG229 [135] phi (byte*) mode_8bppchunkybmm::gfxb#5 = ((byte*))(word/signed word/dword/signed dword) 16384 [phi:mode_8bppchunkybmm::@5->mode_8bppchunkybmm::@2#2] -- pbuz1=pbuc1 + //SEG229 [135] phi (byte*) mode_8bppchunkybmm::gfxb#5 = ((byte*))(word/signed word/dword/signed dword) $4000 [phi:mode_8bppchunkybmm::@5->mode_8bppchunkybmm::@2#2] -- pbuz1=pbuc1 lda #<$4000 sta gfxb lda #>$4000 @@ -13396,7 +13396,7 @@ mode_8bppchunkybmm: { jmp b3 //SEG243 mode_8bppchunkybmm::@3 b3: - //SEG244 [137] if((byte*) mode_8bppchunkybmm::gfxb#3!=(word/dword/signed dword) 32768) goto mode_8bppchunkybmm::@4 -- pbuz1_neq_vwuc1_then_la1 + //SEG244 [137] if((byte*) mode_8bppchunkybmm::gfxb#3!=(word/dword/signed dword) $8000) goto mode_8bppchunkybmm::@4 -- pbuz1_neq_vwuc1_then_la1 lda gfxb+1 cmp #>$8000 bne b4_from_b3 @@ -13422,7 +13422,7 @@ mode_8bppchunkybmm: { //SEG252 [141] phi from mode_8bppchunkybmm::@10 to mode_8bppchunkybmm::@4 [phi:mode_8bppchunkybmm::@10->mode_8bppchunkybmm::@4] b4_from_b10: //SEG253 [141] phi (byte) mode_8bppchunkybmm::gfxbCpuBank#8 = (byte) mode_8bppchunkybmm::gfxbCpuBank#2 [phi:mode_8bppchunkybmm::@10->mode_8bppchunkybmm::@4#0] -- register_copy - //SEG254 [141] phi (byte*) mode_8bppchunkybmm::gfxb#4 = ((byte*))(word/signed word/dword/signed dword) 16384 [phi:mode_8bppchunkybmm::@10->mode_8bppchunkybmm::@4#1] -- pbuz1=pbuc1 + //SEG254 [141] phi (byte*) mode_8bppchunkybmm::gfxb#4 = ((byte*))(word/signed word/dword/signed dword) $4000 [phi:mode_8bppchunkybmm::@10->mode_8bppchunkybmm::@4#1] -- pbuz1=pbuc1 lda #<$4000 sta gfxb lda #>$4000 @@ -13460,7 +13460,7 @@ mode_8bppchunkybmm: { bne !+ inc x+1 !: - //SEG264 [147] if((word) mode_8bppchunkybmm::x#1!=(word/signed word/dword/signed dword) 320) goto mode_8bppchunkybmm::@3 -- vwuz1_neq_vwuc1_then_la1 + //SEG264 [147] if((word) mode_8bppchunkybmm::x#1!=(word/signed word/dword/signed dword) $140) goto mode_8bppchunkybmm::@3 -- vwuz1_neq_vwuc1_then_la1 lda x+1 cmp #>$140 bne b3_from_b4 @@ -13472,7 +13472,7 @@ mode_8bppchunkybmm: { b7: //SEG266 [148] (byte) mode_8bppchunkybmm::y#1 ← ++ (byte) mode_8bppchunkybmm::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG267 [149] if((byte) mode_8bppchunkybmm::y#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_8bppchunkybmm::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG267 [149] if((byte) mode_8bppchunkybmm::y#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_8bppchunkybmm::@2 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$c8 bne b2_from_b7 @@ -13484,7 +13484,7 @@ mode_8bppchunkybmm: { //SEG270 [151] call dtvSetCpuBankSegment1 //SEG271 [223] phi from mode_8bppchunkybmm::@8 to dtvSetCpuBankSegment1 [phi:mode_8bppchunkybmm::@8->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from_b8: - //SEG272 [223] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 [phi:mode_8bppchunkybmm::@8->dtvSetCpuBankSegment1#0] -- vbuz1=vbuc1 + //SEG272 [223] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 [phi:mode_8bppchunkybmm::@8->dtvSetCpuBankSegment1#0] -- vbuz1=vbuc1 lda #$4000/$4000 sta dtvSetCpuBankSegment1.cpuBankIdx jsr dtvSetCpuBankSegment1 @@ -13532,7 +13532,7 @@ mode_ctrl: { // Wait for the raster //SEG285 mode_ctrl::@4 b4: - //SEG286 [157] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto mode_ctrl::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG286 [157] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto mode_ctrl::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -14048,7 +14048,7 @@ mode_8bpppixelcell: { sta DTV_PALETTE,y //SEG435 [245] (byte) mode_8bpppixelcell::i#1 ← ++ (byte) mode_8bpppixelcell::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG436 [246] if((byte) mode_8bpppixelcell::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_8bpppixelcell::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG436 [246] if((byte) mode_8bpppixelcell::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_8bpppixelcell::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b1 @@ -14084,7 +14084,7 @@ mode_8bpppixelcell: { jmp b3 //SEG450 mode_8bpppixelcell::@3 b3: - //SEG451 [249] (byte~) mode_8bpppixelcell::$13 ← (byte) mode_8bpppixelcell::ay#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG451 [249] (byte~) mode_8bpppixelcell::$13 ← (byte) mode_8bpppixelcell::ay#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and ay sta _13 @@ -14095,7 +14095,7 @@ mode_8bpppixelcell: { asl asl sta _14 - //SEG453 [251] (byte~) mode_8bpppixelcell::$15 ← (byte) mode_8bpppixelcell::ax#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG453 [251] (byte~) mode_8bpppixelcell::$15 ← (byte) mode_8bpppixelcell::ax#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and ax sta _15 @@ -14114,7 +14114,7 @@ mode_8bpppixelcell: { !: //SEG457 [255] (byte) mode_8bpppixelcell::ax#1 ← ++ (byte) mode_8bpppixelcell::ax#2 -- vbuz1=_inc_vbuz1 inc ax - //SEG458 [256] if((byte) mode_8bpppixelcell::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_8bpppixelcell::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG458 [256] if((byte) mode_8bpppixelcell::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_8bpppixelcell::@3 -- vbuz1_neq_vbuc1_then_la1 lda ax cmp #$28 bne b3_from_b3 @@ -14123,7 +14123,7 @@ mode_8bpppixelcell: { b9: //SEG460 [257] (byte) mode_8bpppixelcell::ay#1 ← ++ (byte) mode_8bpppixelcell::ay#4 -- vbuz1=_inc_vbuz1 inc ay - //SEG461 [258] if((byte) mode_8bpppixelcell::ay#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_8bpppixelcell::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG461 [258] if((byte) mode_8bpppixelcell::ay#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_8bpppixelcell::@2 -- vbuz1_neq_vbuc1_then_la1 lda ay cmp #$19 bne b2_from_b9 @@ -14147,7 +14147,7 @@ mode_8bpppixelcell: { sta gfxb lda #>PLANEB sta gfxb+1 - //SEG468 [260] phi (byte*) mode_8bpppixelcell::chargen#4 = ((byte*))(word/dword/signed dword) 53248 [phi:mode_8bpppixelcell::@10->mode_8bpppixelcell::@4#3] -- pbuz1=pbuc1 + //SEG468 [260] phi (byte*) mode_8bpppixelcell::chargen#4 = ((byte*))(word/dword/signed dword) $d000 [phi:mode_8bpppixelcell::@10->mode_8bpppixelcell::@4#3] -- pbuz1=pbuc1 lda #<$d000 sta chargen lda #>$d000 @@ -14207,7 +14207,7 @@ mode_8bpppixelcell: { jmp b6 //SEG498 mode_8bpppixelcell::@6 b6: - //SEG499 [265] (byte~) mode_8bpppixelcell::$19 ← (byte) mode_8bpppixelcell::bits#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG499 [265] (byte~) mode_8bpppixelcell::$19 ← (byte) mode_8bpppixelcell::bits#2 & (byte/word/signed word/dword/signed dword) $80 -- vbuz1=vbuz2_band_vbuc1 lda #$80 and bits sta _19 @@ -14362,11 +14362,11 @@ mode_sixsfred: { //SEG542 [296] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_PLANEB_MODULO_HI - //SEG543 [297] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG543 [297] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG544 [298] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #>COLORS/$400 sta DTV_COLOR_BANK_HI //SEG545 [299] phi from mode_sixsfred to mode_sixsfred::@1 [phi:mode_sixsfred->mode_sixsfred::@1] @@ -14388,7 +14388,7 @@ mode_sixsfred: { sta DTV_PALETTE,y //SEG551 [301] (byte) mode_sixsfred::i#1 ← ++ (byte) mode_sixsfred::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG552 [302] if((byte) mode_sixsfred::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_sixsfred::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG552 [302] if((byte) mode_sixsfred::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_sixsfred::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b1 @@ -14436,7 +14436,7 @@ mode_sixsfred: { clc adc cy sta _16 - //SEG570 [307] (byte~) mode_sixsfred::$17 ← (byte~) mode_sixsfred::$16 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG570 [307] (byte~) mode_sixsfred::$17 ← (byte~) mode_sixsfred::$16 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and _16 sta _17 @@ -14451,7 +14451,7 @@ mode_sixsfred: { !: //SEG573 [310] (byte) mode_sixsfred::cx#1 ← ++ (byte) mode_sixsfred::cx#2 -- vbuz1=_inc_vbuz1 inc cx - //SEG574 [311] if((byte) mode_sixsfred::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG574 [311] if((byte) mode_sixsfred::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred::@3 -- vbuz1_neq_vbuc1_then_la1 lda cx cmp #$28 bne b3_from_b3 @@ -14460,7 +14460,7 @@ mode_sixsfred: { b9: //SEG576 [312] (byte) mode_sixsfred::cy#1 ← ++ (byte) mode_sixsfred::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG577 [313] if((byte) mode_sixsfred::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_sixsfred::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG577 [313] if((byte) mode_sixsfred::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_sixsfred::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2_from_b9 @@ -14516,7 +14516,7 @@ mode_sixsfred: { !: //SEG596 [320] (byte) mode_sixsfred::ax#1 ← ++ (byte) mode_sixsfred::ax#2 -- vbuz1=_inc_vbuz1 inc ax - //SEG597 [321] if((byte) mode_sixsfred::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred::@5 -- vbuz1_neq_vbuc1_then_la1 + //SEG597 [321] if((byte) mode_sixsfred::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred::@5 -- vbuz1_neq_vbuc1_then_la1 lda ax cmp #$28 bne b5_from_b5 @@ -14525,7 +14525,7 @@ mode_sixsfred: { b11: //SEG599 [322] (byte) mode_sixsfred::ay#1 ← ++ (byte) mode_sixsfred::ay#4 -- vbuz1=_inc_vbuz1 inc ay - //SEG600 [323] if((byte) mode_sixsfred::ay#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_sixsfred::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG600 [323] if((byte) mode_sixsfred::ay#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_sixsfred::@4 -- vbuz1_neq_vbuc1_then_la1 lda ay cmp #$c8 bne b4_from_b11 @@ -14561,7 +14561,7 @@ mode_sixsfred: { jmp b7 //SEG614 mode_sixsfred::@7 b7: - //SEG615 [326] *((byte*) mode_sixsfred::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 27 -- _deref_pbuz1=vbuc1 + //SEG615 [326] *((byte*) mode_sixsfred::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $1b -- _deref_pbuz1=vbuc1 lda #$1b ldy #0 sta (gfxb),y @@ -14572,7 +14572,7 @@ mode_sixsfred: { !: //SEG617 [328] (byte) mode_sixsfred::bx#1 ← ++ (byte) mode_sixsfred::bx#2 -- vbuz1=_inc_vbuz1 inc bx - //SEG618 [329] if((byte) mode_sixsfred::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred::@7 -- vbuz1_neq_vbuc1_then_la1 + //SEG618 [329] if((byte) mode_sixsfred::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred::@7 -- vbuz1_neq_vbuc1_then_la1 lda bx cmp #$28 bne b7_from_b7 @@ -14581,7 +14581,7 @@ mode_sixsfred: { b13: //SEG620 [330] (byte) mode_sixsfred::by#1 ← ++ (byte) mode_sixsfred::by#4 -- vbuz1=_inc_vbuz1 inc by - //SEG621 [331] if((byte) mode_sixsfred::by#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_sixsfred::@6 -- vbuz1_neq_vbuc1_then_la1 + //SEG621 [331] if((byte) mode_sixsfred::by#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_sixsfred::@6 -- vbuz1_neq_vbuc1_then_la1 lda by cmp #$c8 bne b6_from_b13 @@ -14681,11 +14681,11 @@ mode_twoplanebitmap: { //SEG644 [349] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_PLANEB_MODULO_HI - //SEG645 [350] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG645 [350] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG646 [351] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #>COLORS/$400 sta DTV_COLOR_BANK_HI //SEG647 [352] phi from mode_twoplanebitmap to mode_twoplanebitmap::@1 [phi:mode_twoplanebitmap->mode_twoplanebitmap::@1] @@ -14707,7 +14707,7 @@ mode_twoplanebitmap: { sta DTV_PALETTE,y //SEG653 [354] (byte) mode_twoplanebitmap::i#1 ← ++ (byte) mode_twoplanebitmap::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG654 [355] if((byte) mode_twoplanebitmap::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_twoplanebitmap::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG654 [355] if((byte) mode_twoplanebitmap::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_twoplanebitmap::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b1 @@ -14718,10 +14718,10 @@ mode_twoplanebitmap: { // Screen colors lda #0 sta BORDERCOL - //SEG657 [357] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 112 -- _deref_pbuc1=vbuc2 + //SEG657 [357] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) $70 -- _deref_pbuc1=vbuc2 lda #$70 sta BGCOL1 - //SEG658 [358] *((const byte*) BGCOL2#0) ← (byte/word/signed word/dword/signed dword) 212 -- _deref_pbuc1=vbuc2 + //SEG658 [358] *((const byte*) BGCOL2#0) ← (byte/word/signed word/dword/signed dword) $d4 -- _deref_pbuc1=vbuc2 // Color for bits 00 lda #$d4 sta BGCOL2 @@ -14757,7 +14757,7 @@ mode_twoplanebitmap: { jmp b3 //SEG672 mode_twoplanebitmap::@3 b3: - //SEG673 [361] (byte~) mode_twoplanebitmap::$15 ← (byte) mode_twoplanebitmap::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG673 [361] (byte~) mode_twoplanebitmap::$15 ← (byte) mode_twoplanebitmap::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and cy sta _15 @@ -14768,7 +14768,7 @@ mode_twoplanebitmap: { asl asl sta _16 - //SEG675 [363] (byte~) mode_twoplanebitmap::$17 ← (byte) mode_twoplanebitmap::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG675 [363] (byte~) mode_twoplanebitmap::$17 ← (byte) mode_twoplanebitmap::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and cx sta _17 @@ -14787,7 +14787,7 @@ mode_twoplanebitmap: { !: //SEG679 [367] (byte) mode_twoplanebitmap::cx#1 ← ++ (byte) mode_twoplanebitmap::cx#2 -- vbuz1=_inc_vbuz1 inc cx - //SEG680 [368] if((byte) mode_twoplanebitmap::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_twoplanebitmap::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG680 [368] if((byte) mode_twoplanebitmap::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_twoplanebitmap::@3 -- vbuz1_neq_vbuc1_then_la1 lda cx cmp #$28 bne b3_from_b3 @@ -14796,7 +14796,7 @@ mode_twoplanebitmap: { b11: //SEG682 [369] (byte) mode_twoplanebitmap::cy#1 ← ++ (byte) mode_twoplanebitmap::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG683 [370] if((byte) mode_twoplanebitmap::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_twoplanebitmap::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG683 [370] if((byte) mode_twoplanebitmap::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_twoplanebitmap::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2_from_b11 @@ -14843,7 +14843,7 @@ mode_twoplanebitmap: { jmp b13 //SEG700 mode_twoplanebitmap::@13 b13: - //SEG701 [375] *((byte*) mode_twoplanebitmap::gfxa#3) ← (byte/word/signed word/dword/signed dword) 255 -- _deref_pbuz1=vbuc1 + //SEG701 [375] *((byte*) mode_twoplanebitmap::gfxa#3) ← (byte/word/signed word/dword/signed dword) $ff -- _deref_pbuz1=vbuc1 lda #$ff ldy #0 sta (gfxa),y @@ -14861,7 +14861,7 @@ mode_twoplanebitmap: { b7: //SEG706 [378] (byte) mode_twoplanebitmap::ax#1 ← ++ (byte) mode_twoplanebitmap::ax#2 -- vbuz1=_inc_vbuz1 inc ax - //SEG707 [379] if((byte) mode_twoplanebitmap::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_twoplanebitmap::@5 -- vbuz1_neq_vbuc1_then_la1 + //SEG707 [379] if((byte) mode_twoplanebitmap::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_twoplanebitmap::@5 -- vbuz1_neq_vbuc1_then_la1 lda ax cmp #$28 bne b5_from_b7 @@ -14870,7 +14870,7 @@ mode_twoplanebitmap: { b15: //SEG709 [380] (byte) mode_twoplanebitmap::ay#1 ← ++ (byte) mode_twoplanebitmap::ay#4 -- vbuz1=_inc_vbuz1 inc ay - //SEG710 [381] if((byte) mode_twoplanebitmap::ay#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_twoplanebitmap::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG710 [381] if((byte) mode_twoplanebitmap::ay#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_twoplanebitmap::@4 -- vbuz1_neq_vbuc1_then_la1 lda ay cmp #$c8 bne b4_from_b15 @@ -14906,7 +14906,7 @@ mode_twoplanebitmap: { jmp b9 //SEG724 mode_twoplanebitmap::@9 b9: - //SEG725 [384] *((byte*) mode_twoplanebitmap::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuz1=vbuc1 + //SEG725 [384] *((byte*) mode_twoplanebitmap::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $f -- _deref_pbuz1=vbuc1 lda #$f ldy #0 sta (gfxb),y @@ -14917,7 +14917,7 @@ mode_twoplanebitmap: { !: //SEG727 [386] (byte) mode_twoplanebitmap::bx#1 ← ++ (byte) mode_twoplanebitmap::bx#2 -- vbuz1=_inc_vbuz1 inc bx - //SEG728 [387] if((byte) mode_twoplanebitmap::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_twoplanebitmap::@9 -- vbuz1_neq_vbuc1_then_la1 + //SEG728 [387] if((byte) mode_twoplanebitmap::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_twoplanebitmap::@9 -- vbuz1_neq_vbuc1_then_la1 lda bx cmp #$28 bne b9_from_b9 @@ -14926,7 +14926,7 @@ mode_twoplanebitmap: { b17: //SEG730 [388] (byte) mode_twoplanebitmap::by#1 ← ++ (byte) mode_twoplanebitmap::by#4 -- vbuz1=_inc_vbuz1 inc by - //SEG731 [389] if((byte) mode_twoplanebitmap::by#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_twoplanebitmap::@8 -- vbuz1_neq_vbuc1_then_la1 + //SEG731 [389] if((byte) mode_twoplanebitmap::by#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_twoplanebitmap::@8 -- vbuz1_neq_vbuc1_then_la1 lda by cmp #$c8 bne b8_from_b17 @@ -15035,11 +15035,11 @@ mode_sixsfred2: { //SEG757 [409] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_PLANEB_MODULO_HI - //SEG758 [410] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG758 [410] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG759 [411] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #>COLORS/$400 sta DTV_COLOR_BANK_HI //SEG760 [412] phi from mode_sixsfred2 to mode_sixsfred2::@1 [phi:mode_sixsfred2->mode_sixsfred2::@1] @@ -15061,7 +15061,7 @@ mode_sixsfred2: { sta DTV_PALETTE,y //SEG766 [414] (byte) mode_sixsfred2::i#1 ← ++ (byte) mode_sixsfred2::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG767 [415] if((byte) mode_sixsfred2::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_sixsfred2::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG767 [415] if((byte) mode_sixsfred2::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_sixsfred2::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b1 @@ -15134,7 +15134,7 @@ mode_sixsfred2: { !: //SEG790 [425] (byte) mode_sixsfred2::cx#1 ← ++ (byte) mode_sixsfred2::cx#2 -- vbuz1=_inc_vbuz1 inc cx - //SEG791 [426] if((byte) mode_sixsfred2::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred2::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG791 [426] if((byte) mode_sixsfred2::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred2::@3 -- vbuz1_neq_vbuc1_then_la1 lda cx cmp #$28 bne b3_from_b3 @@ -15143,7 +15143,7 @@ mode_sixsfred2: { b9: //SEG793 [427] (byte) mode_sixsfred2::cy#1 ← ++ (byte) mode_sixsfred2::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG794 [428] if((byte) mode_sixsfred2::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_sixsfred2::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG794 [428] if((byte) mode_sixsfred2::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_sixsfred2::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2_from_b9 @@ -15199,7 +15199,7 @@ mode_sixsfred2: { !: //SEG813 [435] (byte) mode_sixsfred2::ax#1 ← ++ (byte) mode_sixsfred2::ax#2 -- vbuz1=_inc_vbuz1 inc ax - //SEG814 [436] if((byte) mode_sixsfred2::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred2::@5 -- vbuz1_neq_vbuc1_then_la1 + //SEG814 [436] if((byte) mode_sixsfred2::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred2::@5 -- vbuz1_neq_vbuc1_then_la1 lda ax cmp #$28 bne b5_from_b5 @@ -15208,7 +15208,7 @@ mode_sixsfred2: { b11: //SEG816 [437] (byte) mode_sixsfred2::ay#1 ← ++ (byte) mode_sixsfred2::ay#4 -- vbuz1=_inc_vbuz1 inc ay - //SEG817 [438] if((byte) mode_sixsfred2::ay#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_sixsfred2::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG817 [438] if((byte) mode_sixsfred2::ay#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_sixsfred2::@4 -- vbuz1_neq_vbuc1_then_la1 lda ay cmp #$c8 bne b4_from_b11 @@ -15244,7 +15244,7 @@ mode_sixsfred2: { jmp b7 //SEG831 mode_sixsfred2::@7 b7: - //SEG832 [441] *((byte*) mode_sixsfred2::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 27 -- _deref_pbuz1=vbuc1 + //SEG832 [441] *((byte*) mode_sixsfred2::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $1b -- _deref_pbuz1=vbuc1 lda #$1b ldy #0 sta (gfxb),y @@ -15255,7 +15255,7 @@ mode_sixsfred2: { !: //SEG834 [443] (byte) mode_sixsfred2::bx#1 ← ++ (byte) mode_sixsfred2::bx#2 -- vbuz1=_inc_vbuz1 inc bx - //SEG835 [444] if((byte) mode_sixsfred2::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred2::@7 -- vbuz1_neq_vbuc1_then_la1 + //SEG835 [444] if((byte) mode_sixsfred2::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred2::@7 -- vbuz1_neq_vbuc1_then_la1 lda bx cmp #$28 bne b7_from_b7 @@ -15264,7 +15264,7 @@ mode_sixsfred2: { b13: //SEG837 [445] (byte) mode_sixsfred2::by#1 ← ++ (byte) mode_sixsfred2::by#4 -- vbuz1=_inc_vbuz1 inc by - //SEG838 [446] if((byte) mode_sixsfred2::by#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_sixsfred2::@6 -- vbuz1_neq_vbuc1_then_la1 + //SEG838 [446] if((byte) mode_sixsfred2::by#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_sixsfred2::@6 -- vbuz1_neq_vbuc1_then_la1 lda by cmp #$c8 bne b6_from_b13 @@ -15314,15 +15314,15 @@ mode_hicolmcchar: { .label ch = $4b .label cx = $48 .label cy = $47 - //SEG847 [450] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolmcchar::CHARSET#0/(dword/signed dword) 65536 -- _deref_pbuc1=vbuc2 + //SEG847 [450] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolmcchar::CHARSET#0/(dword/signed dword) $10000 -- _deref_pbuc1=vbuc2 // DTV Graphics Bank lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG848 [451] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG848 [451] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #COLORS/$400 sta DTV_COLOR_BANK_LO - //SEG849 [452] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG849 [452] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI //SEG850 [453] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0 -- _deref_pbuc1=vbuc2 @@ -15332,7 +15332,7 @@ mode_hicolmcchar: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG852 [455] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolmcchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG852 [455] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolmcchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^CHARSET/$4000 sta CIA2_PORT_A @@ -15344,7 +15344,7 @@ mode_hicolmcchar: { //SEG854 [457] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0|(const byte) VIC_MCM#0 -- _deref_pbuc1=vbuc2 lda #VIC_CSEL|VIC_MCM sta VIC_CONTROL2 - //SEG855 [458] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolmcchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_hicolmcchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG855 [458] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolmcchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_hicolmcchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // VIC Memory Pointers lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY @@ -15367,7 +15367,7 @@ mode_hicolmcchar: { sta DTV_PALETTE,y //SEG862 [461] (byte) mode_hicolmcchar::i#1 ← ++ (byte) mode_hicolmcchar::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG863 [462] if((byte) mode_hicolmcchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_hicolmcchar::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG863 [462] if((byte) mode_hicolmcchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_hicolmcchar::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b1 @@ -15378,13 +15378,13 @@ mode_hicolmcchar: { // Screen colors lda #0 sta BORDERCOL - //SEG866 [464] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 80 -- _deref_pbuc1=vbuc2 + //SEG866 [464] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) $50 -- _deref_pbuc1=vbuc2 lda #$50 sta BGCOL1 - //SEG867 [465] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 84 -- _deref_pbuc1=vbuc2 + //SEG867 [465] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) $54 -- _deref_pbuc1=vbuc2 lda #$54 sta BGCOL2 - //SEG868 [466] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) 88 -- _deref_pbuc1=vbuc2 + //SEG868 [466] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) $58 -- _deref_pbuc1=vbuc2 lda #$58 sta BGCOL3 //SEG869 [467] phi from mode_hicolmcchar::@4 to mode_hicolmcchar::@2 [phi:mode_hicolmcchar::@4->mode_hicolmcchar::@2] @@ -15427,7 +15427,7 @@ mode_hicolmcchar: { jmp b3 //SEG886 mode_hicolmcchar::@3 b3: - //SEG887 [469] (byte~) mode_hicolmcchar::$25 ← (byte) mode_hicolmcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG887 [469] (byte~) mode_hicolmcchar::$25 ← (byte) mode_hicolmcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and cy sta _25 @@ -15438,7 +15438,7 @@ mode_hicolmcchar: { asl asl sta _26 - //SEG889 [471] (byte~) mode_hicolmcchar::$27 ← (byte) mode_hicolmcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG889 [471] (byte~) mode_hicolmcchar::$27 ← (byte) mode_hicolmcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and cx sta _27 @@ -15466,7 +15466,7 @@ mode_hicolmcchar: { !: //SEG895 [477] (byte) mode_hicolmcchar::cx#1 ← ++ (byte) mode_hicolmcchar::cx#2 -- vbuz1=_inc_vbuz1 inc cx - //SEG896 [478] if((byte) mode_hicolmcchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_hicolmcchar::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG896 [478] if((byte) mode_hicolmcchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_hicolmcchar::@3 -- vbuz1_neq_vbuc1_then_la1 lda cx cmp #$28 bne b3_from_b3 @@ -15475,7 +15475,7 @@ mode_hicolmcchar: { b5: //SEG898 [479] (byte) mode_hicolmcchar::cy#1 ← ++ (byte) mode_hicolmcchar::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG899 [480] if((byte) mode_hicolmcchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_hicolmcchar::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG899 [480] if((byte) mode_hicolmcchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_hicolmcchar::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2_from_b5 @@ -15523,15 +15523,15 @@ mode_hicolecmchar: { .label ch = $52 .label cx = $4f .label cy = $4e - //SEG908 [484] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolecmchar::CHARSET#0/(dword/signed dword) 65536 -- _deref_pbuc1=vbuc2 + //SEG908 [484] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolecmchar::CHARSET#0/(dword/signed dword) $10000 -- _deref_pbuc1=vbuc2 // DTV Graphics Bank lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG909 [485] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG909 [485] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #COLORS/$400 sta DTV_COLOR_BANK_LO - //SEG910 [486] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG910 [486] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI //SEG911 [487] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0 -- _deref_pbuc1=vbuc2 @@ -15541,7 +15541,7 @@ mode_hicolecmchar: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG913 [489] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolecmchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG913 [489] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolecmchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^CHARSET/$4000 sta CIA2_PORT_A @@ -15553,7 +15553,7 @@ mode_hicolecmchar: { //SEG915 [491] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 -- _deref_pbuc1=vbuc2 lda #VIC_CSEL sta VIC_CONTROL2 - //SEG916 [492] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolecmchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_hicolecmchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG916 [492] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolecmchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_hicolecmchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // VIC Memory Pointers lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY @@ -15576,7 +15576,7 @@ mode_hicolecmchar: { sta DTV_PALETTE,y //SEG923 [495] (byte) mode_hicolecmchar::i#1 ← ++ (byte) mode_hicolecmchar::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG924 [496] if((byte) mode_hicolecmchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_hicolecmchar::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG924 [496] if((byte) mode_hicolecmchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_hicolecmchar::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b1 @@ -15587,16 +15587,16 @@ mode_hicolecmchar: { // Screen colors lda #0 sta BORDERCOL - //SEG927 [498] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 80 -- _deref_pbuc1=vbuc2 + //SEG927 [498] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) $50 -- _deref_pbuc1=vbuc2 lda #$50 sta BGCOL1 - //SEG928 [499] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 84 -- _deref_pbuc1=vbuc2 + //SEG928 [499] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) $54 -- _deref_pbuc1=vbuc2 lda #$54 sta BGCOL2 - //SEG929 [500] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) 88 -- _deref_pbuc1=vbuc2 + //SEG929 [500] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) $58 -- _deref_pbuc1=vbuc2 lda #$58 sta BGCOL3 - //SEG930 [501] *((const byte*) BGCOL4#0) ← (byte/signed byte/word/signed word/dword/signed dword) 92 -- _deref_pbuc1=vbuc2 + //SEG930 [501] *((const byte*) BGCOL4#0) ← (byte/signed byte/word/signed word/dword/signed dword) $5c -- _deref_pbuc1=vbuc2 lda #$5c sta BGCOL4 //SEG931 [502] phi from mode_hicolecmchar::@4 to mode_hicolecmchar::@2 [phi:mode_hicolecmchar::@4->mode_hicolecmchar::@2] @@ -15639,7 +15639,7 @@ mode_hicolecmchar: { jmp b3 //SEG948 mode_hicolecmchar::@3 b3: - //SEG949 [504] (byte~) mode_hicolecmchar::$25 ← (byte) mode_hicolecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG949 [504] (byte~) mode_hicolecmchar::$25 ← (byte) mode_hicolecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and cy sta _25 @@ -15650,7 +15650,7 @@ mode_hicolecmchar: { asl asl sta _26 - //SEG951 [506] (byte~) mode_hicolecmchar::$27 ← (byte) mode_hicolecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG951 [506] (byte~) mode_hicolecmchar::$27 ← (byte) mode_hicolecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and cx sta _27 @@ -15678,7 +15678,7 @@ mode_hicolecmchar: { !: //SEG957 [512] (byte) mode_hicolecmchar::cx#1 ← ++ (byte) mode_hicolecmchar::cx#2 -- vbuz1=_inc_vbuz1 inc cx - //SEG958 [513] if((byte) mode_hicolecmchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_hicolecmchar::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG958 [513] if((byte) mode_hicolecmchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_hicolecmchar::@3 -- vbuz1_neq_vbuc1_then_la1 lda cx cmp #$28 bne b3_from_b3 @@ -15687,7 +15687,7 @@ mode_hicolecmchar: { b5: //SEG960 [514] (byte) mode_hicolecmchar::cy#1 ← ++ (byte) mode_hicolecmchar::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG961 [515] if((byte) mode_hicolecmchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_hicolecmchar::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG961 [515] if((byte) mode_hicolecmchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_hicolecmchar::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2_from_b5 @@ -15731,15 +15731,15 @@ mode_hicolstdchar: { .label ch = $59 .label cx = $56 .label cy = $55 - //SEG970 [519] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolstdchar::CHARSET#0/(dword/signed dword) 65536 -- _deref_pbuc1=vbuc2 + //SEG970 [519] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolstdchar::CHARSET#0/(dword/signed dword) $10000 -- _deref_pbuc1=vbuc2 // DTV Graphics Bank lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG971 [520] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG971 [520] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #COLORS/$400 sta DTV_COLOR_BANK_LO - //SEG972 [521] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG972 [521] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI //SEG973 [522] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0 -- _deref_pbuc1=vbuc2 @@ -15749,7 +15749,7 @@ mode_hicolstdchar: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG975 [524] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolstdchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG975 [524] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolstdchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^CHARSET/$4000 sta CIA2_PORT_A @@ -15761,7 +15761,7 @@ mode_hicolstdchar: { //SEG977 [526] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 -- _deref_pbuc1=vbuc2 lda #VIC_CSEL sta VIC_CONTROL2 - //SEG978 [527] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolstdchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_hicolstdchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG978 [527] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolstdchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_hicolstdchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // VIC Memory Pointers lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY @@ -15784,7 +15784,7 @@ mode_hicolstdchar: { sta DTV_PALETTE,y //SEG985 [530] (byte) mode_hicolstdchar::i#1 ← ++ (byte) mode_hicolstdchar::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG986 [531] if((byte) mode_hicolstdchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_hicolstdchar::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG986 [531] if((byte) mode_hicolstdchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_hicolstdchar::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b1 @@ -15838,7 +15838,7 @@ mode_hicolstdchar: { jmp b3 //SEG1007 mode_hicolstdchar::@3 b3: - //SEG1008 [536] (byte~) mode_hicolstdchar::$24 ← (byte) mode_hicolstdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG1008 [536] (byte~) mode_hicolstdchar::$24 ← (byte) mode_hicolstdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and cy sta _24 @@ -15849,7 +15849,7 @@ mode_hicolstdchar: { asl asl sta _25 - //SEG1010 [538] (byte~) mode_hicolstdchar::$26 ← (byte) mode_hicolstdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG1010 [538] (byte~) mode_hicolstdchar::$26 ← (byte) mode_hicolstdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and cx sta _26 @@ -15877,7 +15877,7 @@ mode_hicolstdchar: { !: //SEG1016 [544] (byte) mode_hicolstdchar::cx#1 ← ++ (byte) mode_hicolstdchar::cx#2 -- vbuz1=_inc_vbuz1 inc cx - //SEG1017 [545] if((byte) mode_hicolstdchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_hicolstdchar::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG1017 [545] if((byte) mode_hicolstdchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_hicolstdchar::@3 -- vbuz1_neq_vbuc1_then_la1 lda cx cmp #$28 bne b3_from_b3 @@ -15886,7 +15886,7 @@ mode_hicolstdchar: { b5: //SEG1019 [546] (byte) mode_hicolstdchar::cy#1 ← ++ (byte) mode_hicolstdchar::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1020 [547] if((byte) mode_hicolstdchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_hicolstdchar::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG1020 [547] if((byte) mode_hicolstdchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_hicolstdchar::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2_from_b5 @@ -15930,7 +15930,7 @@ mode_stdbitmap: { .label cx = $5d .label cy = $5c .label l = $60 - //SEG1029 [551] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdbitmap::BITMAP#0/(dword/signed dword) 65536 -- _deref_pbuc1=vbuc2 + //SEG1029 [551] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdbitmap::BITMAP#0/(dword/signed dword) $10000 -- _deref_pbuc1=vbuc2 // DTV Graphics Bank lda #($ffffffff&BITMAP)/$10000 sta DTV_GRAPHICS_VIC_BANK @@ -15941,7 +15941,7 @@ mode_stdbitmap: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG1032 [554] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdbitmap::BITMAP#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG1032 [554] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdbitmap::BITMAP#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^BITMAP/$4000 sta CIA2_PORT_A @@ -15953,7 +15953,7 @@ mode_stdbitmap: { //SEG1034 [556] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 -- _deref_pbuc1=vbuc2 lda #VIC_CSEL sta VIC_CONTROL2 - //SEG1035 [557] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdbitmap::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_stdbitmap::BITMAP#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1035 [557] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdbitmap::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_stdbitmap::BITMAP#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // VIC Memory Pointers lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400 sta VIC_MEMORY @@ -15970,13 +15970,13 @@ mode_stdbitmap: { jmp b1 //SEG1040 mode_stdbitmap::@1 b1: - //SEG1041 [559] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdbitmap::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdbitmap::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 + //SEG1041 [559] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdbitmap::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdbitmap::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 ldy i lda DTV_PALETTE_DEFAULT,y sta DTV_PALETTE,y //SEG1042 [560] (byte) mode_stdbitmap::i#1 ← ++ (byte) mode_stdbitmap::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG1043 [561] if((byte) mode_stdbitmap::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_stdbitmap::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1043 [561] if((byte) mode_stdbitmap::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_stdbitmap::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b1 @@ -16027,11 +16027,11 @@ mode_stdbitmap: { clc adc cy sta _19 - //SEG1062 [567] (byte) mode_stdbitmap::col#0 ← (byte~) mode_stdbitmap::$19 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG1062 [567] (byte) mode_stdbitmap::col#0 ← (byte~) mode_stdbitmap::$19 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and _19 sta col - //SEG1063 [568] (byte) mode_stdbitmap::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) mode_stdbitmap::col#0 -- vbuz1=vbuc1_minus_vbuz2 + //SEG1063 [568] (byte) mode_stdbitmap::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f - (byte) mode_stdbitmap::col#0 -- vbuz1=vbuc1_minus_vbuz2 lda #$f sec sbc col @@ -16058,7 +16058,7 @@ mode_stdbitmap: { !: //SEG1068 [573] (byte) mode_stdbitmap::cx#1 ← ++ (byte) mode_stdbitmap::cx#2 -- vbuz1=_inc_vbuz1 inc cx - //SEG1069 [574] if((byte) mode_stdbitmap::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_stdbitmap::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG1069 [574] if((byte) mode_stdbitmap::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_stdbitmap::@3 -- vbuz1_neq_vbuc1_then_la1 lda cx cmp #$28 bne b3_from_b3 @@ -16067,7 +16067,7 @@ mode_stdbitmap: { b6: //SEG1071 [575] (byte) mode_stdbitmap::cy#1 ← ++ (byte) mode_stdbitmap::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1072 [576] if((byte) mode_stdbitmap::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_stdbitmap::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG1072 [576] if((byte) mode_stdbitmap::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_stdbitmap::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2_from_b6 @@ -16548,13 +16548,13 @@ bitmap_plot: { .label plotter_y = $105 .label x = $67 .label y = $68 - //SEG1255 [670] (word) bitmap_plot::plotter_x#0 ← *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) -- vwuz1=pbuc1_derefidx_vbuz2_word_pbuc2_derefidx_vbuz2 + //SEG1255 [670] (word) bitmap_plot::plotter_x#0 ← *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) -- vwuz1=pbuc1_derefidx_vbuz2_word_pbuc2_derefidx_vbuz2 ldy x lda bitmap_plot_xhi,y sta plotter_x+1 lda bitmap_plot_xlo,y sta plotter_x - //SEG1256 [671] (word) bitmap_plot::plotter_y#0 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) -- vwuz1=pbuc1_derefidx_vbuz2_word_pbuc2_derefidx_vbuz2 + //SEG1256 [671] (word) bitmap_plot::plotter_y#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) -- vwuz1=pbuc1_derefidx_vbuz2_word_pbuc2_derefidx_vbuz2 ldy y lda bitmap_plot_yhi,y sta plotter_y+1 @@ -16568,7 +16568,7 @@ bitmap_plot: { lda plotter_x+1 adc plotter_y+1 sta _0+1 - //SEG1258 [673] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) -- vbuz1=_deref_pbuz2_bor_pbuc1_derefidx_vbuz3 + //SEG1258 [673] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) -- vbuz1=_deref_pbuz2_bor_pbuc1_derefidx_vbuz3 ldy #0 lda (_0),y ldy x @@ -16834,7 +16834,7 @@ bitmap_clear: { .label x = $7e .label y = $7b .label _3 = $10d - //SEG1347 [721] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_xhi#0) w= *((const byte[256]) bitmap_plot_xlo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 + //SEG1347 [721] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_xhi#0) w= *((const byte[$100]) bitmap_plot_xlo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 lda bitmap_plot_xlo sta _3 lda bitmap_plot_xhi @@ -16883,7 +16883,7 @@ bitmap_clear: { !: //SEG1365 [727] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG1366 [728] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) 200) goto bitmap_clear::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG1366 [728] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) $c8) goto bitmap_clear::@2 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #$c8 bne b2_from_b2 @@ -16892,7 +16892,7 @@ bitmap_clear: { b3: //SEG1368 [729] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 -- vbuz1=_inc_vbuz1 inc y - //SEG1369 [730] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1369 [730] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$28 bne b1_from_b3 @@ -16917,7 +16917,7 @@ bitmap_init: { .label yoffs = $82 //SEG1373 [733] phi from bitmap_init to bitmap_init::@1 [phi:bitmap_init->bitmap_init::@1] b1_from_bitmap_init: - //SEG1374 [733] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init->bitmap_init::@1#0] -- vbuz1=vbuc1 + //SEG1374 [733] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init->bitmap_init::@1#0] -- vbuz1=vbuc1 lda #$80 sta bits //SEG1375 [733] phi (byte) bitmap_init::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:bitmap_init->bitmap_init::@1#1] -- vbuz1=vbuc1 @@ -16931,19 +16931,19 @@ bitmap_init: { jmp b1 //SEG1379 bitmap_init::@1 b1: - //SEG1380 [734] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) 248 -- vbuz1=vbuz2_band_vbuc1 + //SEG1380 [734] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) $f8 -- vbuz1=vbuz2_band_vbuc1 lda #$f8 and x sta _0 - //SEG1381 [735] *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG1381 [735] *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 -- pbuc1_derefidx_vbuz1=vbuz2 lda _0 ldy x sta bitmap_plot_xlo,y - //SEG1382 [736] *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) mode_stdbitmap::BITMAP#0 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG1382 [736] *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) mode_stdbitmap::BITMAP#0 -- pbuc1_derefidx_vbuz1=vbuc2 ldy x lda #>mode_stdbitmap.BITMAP sta bitmap_plot_xhi,y - //SEG1383 [737] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG1383 [737] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuz1=vbuz2 lda bits ldy x sta bitmap_plot_bit,y @@ -16955,7 +16955,7 @@ bitmap_init: { bne b10_from_b1 //SEG1386 [740] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2] b2_from_b1: - //SEG1387 [740] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuz1=vbuc1 + //SEG1387 [740] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuz1=vbuc1 lda #$80 sta bits jmp b2 @@ -16996,14 +16996,14 @@ bitmap_init: { lda _6 ora _7 sta _8 - //SEG1401 [747] *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG1401 [747] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 -- pbuc1_derefidx_vbuz1=vbuz2 lda _8 ldy y sta bitmap_plot_ylo,y //SEG1402 [748] (byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2 -- vbuz1=_hi_pbuz2 lda yoffs+1 sta _9 - //SEG1403 [749] *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG1403 [749] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 -- pbuc1_derefidx_vbuz1=vbuz2 lda _9 ldy y sta bitmap_plot_yhi,y @@ -17018,7 +17018,7 @@ bitmap_init: { jmp b7 //SEG1406 bitmap_init::@7 b7: - //SEG1407 [752] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 + //SEG1407 [752] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 clc lda yoffs adc #<$28*8 @@ -17083,15 +17083,15 @@ mode_mcchar: { .label ch = $89 .label cx = $86 .label cy = $85 - //SEG1420 [758] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_mcchar::CHARSET#0/(dword/signed dword) 65536 -- _deref_pbuc1=vbuc2 + //SEG1420 [758] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_mcchar::CHARSET#0/(dword/signed dword) $10000 -- _deref_pbuc1=vbuc2 // DTV Graphics Bank lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG1421 [759] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1421 [759] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #DTV_COLOR_BANK_DEFAULT/$400 sta DTV_COLOR_BANK_LO - //SEG1422 [760] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1422 [760] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI //SEG1423 [761] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 @@ -17101,7 +17101,7 @@ mode_mcchar: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG1425 [763] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_mcchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG1425 [763] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_mcchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^CHARSET/$4000 sta CIA2_PORT_A @@ -17113,7 +17113,7 @@ mode_mcchar: { //SEG1427 [765] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0|(const byte) VIC_MCM#0 -- _deref_pbuc1=vbuc2 lda #VIC_CSEL|VIC_MCM sta VIC_CONTROL2 - //SEG1428 [766] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_mcchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_mcchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1428 [766] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_mcchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_mcchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // VIC Memory Pointers lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY @@ -17130,13 +17130,13 @@ mode_mcchar: { jmp b1 //SEG1433 mode_mcchar::@1 b1: - //SEG1434 [768] *((const byte*) DTV_PALETTE#0 + (byte) mode_mcchar::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_mcchar::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 + //SEG1434 [768] *((const byte*) DTV_PALETTE#0 + (byte) mode_mcchar::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_mcchar::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 ldy i lda DTV_PALETTE_DEFAULT,y sta DTV_PALETTE,y //SEG1435 [769] (byte) mode_mcchar::i#1 ← ++ (byte) mode_mcchar::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG1436 [770] if((byte) mode_mcchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_mcchar::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1436 [770] if((byte) mode_mcchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_mcchar::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b1 @@ -17201,7 +17201,7 @@ mode_mcchar: { clc adc cy sta _25 - //SEG1461 [778] (byte~) mode_mcchar::$26 ← (byte~) mode_mcchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG1461 [778] (byte~) mode_mcchar::$26 ← (byte~) mode_mcchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and _25 sta _26 @@ -17214,7 +17214,7 @@ mode_mcchar: { bne !+ inc col+1 !: - //SEG1464 [781] (byte~) mode_mcchar::$27 ← (byte) mode_mcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG1464 [781] (byte~) mode_mcchar::$27 ← (byte) mode_mcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and cy sta _27 @@ -17225,7 +17225,7 @@ mode_mcchar: { asl asl sta _28 - //SEG1466 [783] (byte~) mode_mcchar::$29 ← (byte) mode_mcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG1466 [783] (byte~) mode_mcchar::$29 ← (byte) mode_mcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and cx sta _29 @@ -17244,7 +17244,7 @@ mode_mcchar: { !: //SEG1470 [787] (byte) mode_mcchar::cx#1 ← ++ (byte) mode_mcchar::cx#2 -- vbuz1=_inc_vbuz1 inc cx - //SEG1471 [788] if((byte) mode_mcchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_mcchar::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG1471 [788] if((byte) mode_mcchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_mcchar::@3 -- vbuz1_neq_vbuc1_then_la1 lda cx cmp #$28 bne b3_from_b3 @@ -17253,7 +17253,7 @@ mode_mcchar: { b5: //SEG1473 [789] (byte) mode_mcchar::cy#1 ← ++ (byte) mode_mcchar::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1474 [790] if((byte) mode_mcchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_mcchar::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG1474 [790] if((byte) mode_mcchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_mcchar::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2_from_b5 @@ -17303,15 +17303,15 @@ mode_ecmchar: { .label ch = $90 .label cx = $8d .label cy = $8c - //SEG1483 [794] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_ecmchar::CHARSET#0/(dword/signed dword) 65536 -- _deref_pbuc1=vbuc2 + //SEG1483 [794] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_ecmchar::CHARSET#0/(dword/signed dword) $10000 -- _deref_pbuc1=vbuc2 // DTV Graphics Bank lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG1484 [795] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1484 [795] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #DTV_COLOR_BANK_DEFAULT/$400 sta DTV_COLOR_BANK_LO - //SEG1485 [796] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1485 [796] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI //SEG1486 [797] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 @@ -17321,7 +17321,7 @@ mode_ecmchar: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG1488 [799] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_ecmchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG1488 [799] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_ecmchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^CHARSET/$4000 sta CIA2_PORT_A @@ -17333,7 +17333,7 @@ mode_ecmchar: { //SEG1490 [801] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 -- _deref_pbuc1=vbuc2 lda #VIC_CSEL sta VIC_CONTROL2 - //SEG1491 [802] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_ecmchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_ecmchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1491 [802] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_ecmchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_ecmchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // VIC Memory Pointers lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY @@ -17350,13 +17350,13 @@ mode_ecmchar: { jmp b1 //SEG1496 mode_ecmchar::@1 b1: - //SEG1497 [804] *((const byte*) DTV_PALETTE#0 + (byte) mode_ecmchar::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_ecmchar::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 + //SEG1497 [804] *((const byte*) DTV_PALETTE#0 + (byte) mode_ecmchar::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_ecmchar::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 ldy i lda DTV_PALETTE_DEFAULT,y sta DTV_PALETTE,y //SEG1498 [805] (byte) mode_ecmchar::i#1 ← ++ (byte) mode_ecmchar::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG1499 [806] if((byte) mode_ecmchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_ecmchar::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1499 [806] if((byte) mode_ecmchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_ecmchar::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b1 @@ -17424,7 +17424,7 @@ mode_ecmchar: { clc adc cy sta _25 - //SEG1525 [815] (byte~) mode_ecmchar::$26 ← (byte~) mode_ecmchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG1525 [815] (byte~) mode_ecmchar::$26 ← (byte~) mode_ecmchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and _25 sta _26 @@ -17437,7 +17437,7 @@ mode_ecmchar: { bne !+ inc col+1 !: - //SEG1528 [818] (byte~) mode_ecmchar::$27 ← (byte) mode_ecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG1528 [818] (byte~) mode_ecmchar::$27 ← (byte) mode_ecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and cy sta _27 @@ -17448,7 +17448,7 @@ mode_ecmchar: { asl asl sta _28 - //SEG1530 [820] (byte~) mode_ecmchar::$29 ← (byte) mode_ecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG1530 [820] (byte~) mode_ecmchar::$29 ← (byte) mode_ecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and cx sta _29 @@ -17467,7 +17467,7 @@ mode_ecmchar: { !: //SEG1534 [824] (byte) mode_ecmchar::cx#1 ← ++ (byte) mode_ecmchar::cx#2 -- vbuz1=_inc_vbuz1 inc cx - //SEG1535 [825] if((byte) mode_ecmchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_ecmchar::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG1535 [825] if((byte) mode_ecmchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_ecmchar::@3 -- vbuz1_neq_vbuc1_then_la1 lda cx cmp #$28 bne b3_from_b3 @@ -17476,7 +17476,7 @@ mode_ecmchar: { b5: //SEG1537 [826] (byte) mode_ecmchar::cy#1 ← ++ (byte) mode_ecmchar::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1538 [827] if((byte) mode_ecmchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_ecmchar::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG1538 [827] if((byte) mode_ecmchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_ecmchar::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2_from_b5 @@ -17522,15 +17522,15 @@ mode_stdchar: { .label ch = $97 .label cx = $94 .label cy = $93 - //SEG1547 [831] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdchar::CHARSET#0/(dword/signed dword) 65536 -- _deref_pbuc1=vbuc2 + //SEG1547 [831] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdchar::CHARSET#0/(dword/signed dword) $10000 -- _deref_pbuc1=vbuc2 // DTV Graphics Bank lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG1548 [832] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1548 [832] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #DTV_COLOR_BANK_DEFAULT/$400 sta DTV_COLOR_BANK_LO - //SEG1549 [833] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1549 [833] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI //SEG1550 [834] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 @@ -17540,7 +17540,7 @@ mode_stdchar: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG1552 [836] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG1552 [836] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^CHARSET/$4000 sta CIA2_PORT_A @@ -17552,7 +17552,7 @@ mode_stdchar: { //SEG1554 [838] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 -- _deref_pbuc1=vbuc2 lda #VIC_CSEL sta VIC_CONTROL2 - //SEG1555 [839] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_stdchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1555 [839] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_stdchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // VIC Memory Pointers lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY @@ -17569,13 +17569,13 @@ mode_stdchar: { jmp b1 //SEG1560 mode_stdchar::@1 b1: - //SEG1561 [841] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdchar::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdchar::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 + //SEG1561 [841] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdchar::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdchar::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 ldy i lda DTV_PALETTE_DEFAULT,y sta DTV_PALETTE,y //SEG1562 [842] (byte) mode_stdchar::i#1 ← ++ (byte) mode_stdchar::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG1563 [843] if((byte) mode_stdchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_stdchar::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1563 [843] if((byte) mode_stdchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_stdchar::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b1 @@ -17634,7 +17634,7 @@ mode_stdchar: { clc adc cy sta _24 - //SEG1586 [849] (byte~) mode_stdchar::$25 ← (byte~) mode_stdchar::$24 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG1586 [849] (byte~) mode_stdchar::$25 ← (byte~) mode_stdchar::$24 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and _24 sta _25 @@ -17647,7 +17647,7 @@ mode_stdchar: { bne !+ inc col+1 !: - //SEG1589 [852] (byte~) mode_stdchar::$26 ← (byte) mode_stdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG1589 [852] (byte~) mode_stdchar::$26 ← (byte) mode_stdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and cy sta _26 @@ -17658,7 +17658,7 @@ mode_stdchar: { asl asl sta _27 - //SEG1591 [854] (byte~) mode_stdchar::$28 ← (byte) mode_stdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG1591 [854] (byte~) mode_stdchar::$28 ← (byte) mode_stdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and cx sta _28 @@ -17677,7 +17677,7 @@ mode_stdchar: { !: //SEG1595 [858] (byte) mode_stdchar::cx#1 ← ++ (byte) mode_stdchar::cx#2 -- vbuz1=_inc_vbuz1 inc cx - //SEG1596 [859] if((byte) mode_stdchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_stdchar::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG1596 [859] if((byte) mode_stdchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_stdchar::@3 -- vbuz1_neq_vbuc1_then_la1 lda cx cmp #$28 bne b3_from_b3 @@ -17686,7 +17686,7 @@ mode_stdchar: { b5: //SEG1598 [860] (byte) mode_stdchar::cy#1 ← ++ (byte) mode_stdchar::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1599 [861] if((byte) mode_stdchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_stdchar::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG1599 [861] if((byte) mode_stdchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_stdchar::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2_from_b5 @@ -17820,7 +17820,7 @@ print_ln: { jmp b1 //SEG1642 print_ln::@1 b1: - //SEG1643 [882] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG1643 [882] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -17870,7 +17870,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG1655 [889] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG1655 [889] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>menu.SCREEN+$3e8 bne b1_from_b1 @@ -17911,19 +17911,19 @@ Equivalence Class zp ZP_BYTE:273 [ bitmap_init::$7 ] has ALU potential. Statement [5] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [6] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [7] *((const byte*) DTV_FEATURE#0) ← (const byte) DTV_FEATURE_ENABLE#0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [10] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [11] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [12] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a +Statement [10] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) $10000 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a +Statement [11] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a +Statement [12] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a Statement [13] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a Statement [14] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [15] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a +Statement [15] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) $4000 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a Statement [16] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a Statement [17] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [18] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [20] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) [ menu::i#2 ] ( main:2::menu:9 [ menu::i#2 ] ) always clobbers reg byte a +Statement [18] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a +Statement [20] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) [ menu::i#2 ] ( main:2::menu:9 [ menu::i#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ menu::i#2 menu::i#1 ] Statement [24] *((byte*) menu::c#2) ← (const byte) LIGHT_GREEN#0 [ menu::c#2 ] ( main:2::menu:9 [ menu::c#2 ] ) always clobbers reg byte a reg byte y -Statement [26] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) 1000) goto menu::@2 [ menu::c#1 ] ( main:2::menu:9 [ menu::c#1 ] ) always clobbers reg byte a +Statement [26] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) $3e8) goto menu::@2 [ menu::c#1 ] ( main:2::menu:9 [ menu::c#1 ] ) always clobbers reg byte a Statement [27] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a Statement [28] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a Statement [119] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0|(const byte) DTV_CHUNKY#0|(const byte) DTV_COLORRAM_OFF#0 [ ] ( main:2::menu:9::mode_8bppchunkybmm:118 [ ] ) always clobbers reg byte a @@ -17936,7 +17936,7 @@ Statement [125] *((const byte*) DTV_PLANEB_STEP#0) ← (byte/signed byte/word/si Statement [126] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_8bppchunkybmm:118 [ ] ) always clobbers reg byte a Statement [127] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_8bppchunkybmm:118 [ ] ) always clobbers reg byte a Statement [128] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_8bppchunkybmm:118 [ ] ) always clobbers reg byte a -Statement [137] if((byte*) mode_8bppchunkybmm::gfxb#3!=(word/dword/signed dword) 32768) goto mode_8bppchunkybmm::@4 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::gfxb#3 mode_8bppchunkybmm::x#2 mode_8bppchunkybmm::gfxbCpuBank#4 ] ( main:2::menu:9::mode_8bppchunkybmm:118 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::gfxb#3 mode_8bppchunkybmm::x#2 mode_8bppchunkybmm::gfxbCpuBank#4 ] ) always clobbers reg byte a +Statement [137] if((byte*) mode_8bppchunkybmm::gfxb#3!=(word/dword/signed dword) $8000) goto mode_8bppchunkybmm::@4 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::gfxb#3 mode_8bppchunkybmm::x#2 mode_8bppchunkybmm::gfxbCpuBank#4 ] ( main:2::menu:9::mode_8bppchunkybmm:118 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::gfxb#3 mode_8bppchunkybmm::x#2 mode_8bppchunkybmm::gfxbCpuBank#4 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:6 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::y#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:9 [ mode_8bppchunkybmm::gfxbCpuBank#4 mode_8bppchunkybmm::gfxbCpuBank#7 mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::gfxbCpuBank#2 ] Statement [142] (word~) mode_8bppchunkybmm::$23 ← (word) mode_8bppchunkybmm::x#2 + (byte) mode_8bppchunkybmm::y#6 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::x#2 mode_8bppchunkybmm::gfxb#4 mode_8bppchunkybmm::$23 ] ( main:2::menu:9::mode_8bppchunkybmm:118 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::x#2 mode_8bppchunkybmm::gfxb#4 mode_8bppchunkybmm::$23 ] ) always clobbers reg byte a @@ -17944,8 +17944,8 @@ Statement [143] (byte) mode_8bppchunkybmm::c#0 ← ((byte)) (word~) mode_8bppchu Statement [144] *((byte*) mode_8bppchunkybmm::gfxb#4) ← (byte) mode_8bppchunkybmm::c#0 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::x#2 mode_8bppchunkybmm::gfxb#4 ] ( main:2::menu:9::mode_8bppchunkybmm:118 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::x#2 mode_8bppchunkybmm::gfxb#4 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:6 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::y#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:9 [ mode_8bppchunkybmm::gfxbCpuBank#4 mode_8bppchunkybmm::gfxbCpuBank#7 mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::gfxbCpuBank#2 ] -Statement [147] if((word) mode_8bppchunkybmm::x#1!=(word/signed word/dword/signed dword) 320) goto mode_8bppchunkybmm::@3 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::gfxb#1 mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::x#1 ] ( main:2::menu:9::mode_8bppchunkybmm:118 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::gfxb#1 mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::x#1 ] ) always clobbers reg byte a -Statement [157] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto mode_ctrl::@4 [ dtv_control#114 ] ( main:2::menu:9::mode_8bppchunkybmm:118::mode_ctrl:153 [ dtv_control#114 ] main:2::menu:9::mode_8bpppixelcell:111::mode_ctrl:280 [ dtv_control#114 ] main:2::menu:9::mode_sixsfred:104::mode_ctrl:333 [ dtv_control#114 ] main:2::menu:9::mode_twoplanebitmap:97::mode_ctrl:391 [ dtv_control#114 ] main:2::menu:9::mode_sixsfred2:90::mode_ctrl:448 [ dtv_control#114 ] main:2::menu:9::mode_hicolmcchar:83::mode_ctrl:482 [ dtv_control#114 ] main:2::menu:9::mode_hicolecmchar:76::mode_ctrl:517 [ dtv_control#114 ] main:2::menu:9::mode_hicolstdchar:69::mode_ctrl:549 [ dtv_control#114 ] main:2::menu:9::mode_stdbitmap:62::mode_ctrl:590 [ dtv_control#114 ] main:2::menu:9::mode_mcchar:55::mode_ctrl:792 [ dtv_control#114 ] main:2::menu:9::mode_ecmchar:48::mode_ctrl:829 [ dtv_control#114 ] main:2::menu:9::mode_stdchar:40::mode_ctrl:863 [ dtv_control#114 ] ) always clobbers reg byte a +Statement [147] if((word) mode_8bppchunkybmm::x#1!=(word/signed word/dword/signed dword) $140) goto mode_8bppchunkybmm::@3 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::gfxb#1 mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::x#1 ] ( main:2::menu:9::mode_8bppchunkybmm:118 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::gfxb#1 mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::x#1 ] ) always clobbers reg byte a +Statement [157] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto mode_ctrl::@4 [ dtv_control#114 ] ( main:2::menu:9::mode_8bppchunkybmm:118::mode_ctrl:153 [ dtv_control#114 ] main:2::menu:9::mode_8bpppixelcell:111::mode_ctrl:280 [ dtv_control#114 ] main:2::menu:9::mode_sixsfred:104::mode_ctrl:333 [ dtv_control#114 ] main:2::menu:9::mode_twoplanebitmap:97::mode_ctrl:391 [ dtv_control#114 ] main:2::menu:9::mode_sixsfred2:90::mode_ctrl:448 [ dtv_control#114 ] main:2::menu:9::mode_hicolmcchar:83::mode_ctrl:482 [ dtv_control#114 ] main:2::menu:9::mode_hicolecmchar:76::mode_ctrl:517 [ dtv_control#114 ] main:2::menu:9::mode_hicolstdchar:69::mode_ctrl:549 [ dtv_control#114 ] main:2::menu:9::mode_stdbitmap:62::mode_ctrl:590 [ dtv_control#114 ] main:2::menu:9::mode_mcchar:55::mode_ctrl:792 [ dtv_control#114 ] main:2::menu:9::mode_ecmchar:48::mode_ctrl:829 [ dtv_control#114 ] main:2::menu:9::mode_stdchar:40::mode_ctrl:863 [ dtv_control#114 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:12 [ dtv_control#114 dtv_control#145 dtv_control#17 ] Statement [169] (byte) mode_ctrl::ctrl#1 ← (byte) mode_ctrl::ctrl#0 | (const byte) DTV_LINEAR#0 [ dtv_control#114 mode_ctrl::ctrl#1 ] ( main:2::menu:9::mode_8bppchunkybmm:118::mode_ctrl:153 [ dtv_control#114 mode_ctrl::ctrl#1 ] main:2::menu:9::mode_8bpppixelcell:111::mode_ctrl:280 [ dtv_control#114 mode_ctrl::ctrl#1 ] main:2::menu:9::mode_sixsfred:104::mode_ctrl:333 [ dtv_control#114 mode_ctrl::ctrl#1 ] main:2::menu:9::mode_twoplanebitmap:97::mode_ctrl:391 [ dtv_control#114 mode_ctrl::ctrl#1 ] main:2::menu:9::mode_sixsfred2:90::mode_ctrl:448 [ dtv_control#114 mode_ctrl::ctrl#1 ] main:2::menu:9::mode_hicolmcchar:83::mode_ctrl:482 [ dtv_control#114 mode_ctrl::ctrl#1 ] main:2::menu:9::mode_hicolecmchar:76::mode_ctrl:517 [ dtv_control#114 mode_ctrl::ctrl#1 ] main:2::menu:9::mode_hicolstdchar:69::mode_ctrl:549 [ dtv_control#114 mode_ctrl::ctrl#1 ] main:2::menu:9::mode_stdbitmap:62::mode_ctrl:590 [ dtv_control#114 mode_ctrl::ctrl#1 ] main:2::menu:9::mode_mcchar:55::mode_ctrl:792 [ dtv_control#114 mode_ctrl::ctrl#1 ] main:2::menu:9::mode_ecmchar:48::mode_ctrl:829 [ dtv_control#114 mode_ctrl::ctrl#1 ] main:2::menu:9::mode_stdchar:40::mode_ctrl:863 [ dtv_control#114 mode_ctrl::ctrl#1 ] ) always clobbers reg byte a Statement [175] (byte) mode_ctrl::ctrl#2 ← (byte) mode_ctrl::ctrl#17 | (const byte) DTV_HIGHCOLOR#0 [ dtv_control#114 mode_ctrl::ctrl#2 ] ( main:2::menu:9::mode_8bppchunkybmm:118::mode_ctrl:153 [ dtv_control#114 mode_ctrl::ctrl#2 ] main:2::menu:9::mode_8bpppixelcell:111::mode_ctrl:280 [ dtv_control#114 mode_ctrl::ctrl#2 ] main:2::menu:9::mode_sixsfred:104::mode_ctrl:333 [ dtv_control#114 mode_ctrl::ctrl#2 ] main:2::menu:9::mode_twoplanebitmap:97::mode_ctrl:391 [ dtv_control#114 mode_ctrl::ctrl#2 ] main:2::menu:9::mode_sixsfred2:90::mode_ctrl:448 [ dtv_control#114 mode_ctrl::ctrl#2 ] main:2::menu:9::mode_hicolmcchar:83::mode_ctrl:482 [ dtv_control#114 mode_ctrl::ctrl#2 ] main:2::menu:9::mode_hicolecmchar:76::mode_ctrl:517 [ dtv_control#114 mode_ctrl::ctrl#2 ] main:2::menu:9::mode_hicolstdchar:69::mode_ctrl:549 [ dtv_control#114 mode_ctrl::ctrl#2 ] main:2::menu:9::mode_stdbitmap:62::mode_ctrl:590 [ dtv_control#114 mode_ctrl::ctrl#2 ] main:2::menu:9::mode_mcchar:55::mode_ctrl:792 [ dtv_control#114 mode_ctrl::ctrl#2 ] main:2::menu:9::mode_ecmchar:48::mode_ctrl:829 [ dtv_control#114 mode_ctrl::ctrl#2 ] main:2::menu:9::mode_stdchar:40::mode_ctrl:863 [ dtv_control#114 mode_ctrl::ctrl#2 ] ) always clobbers reg byte a @@ -17978,11 +17978,11 @@ Statement [239] *((const byte*) DTV_PLANEB_STEP#0) ← (byte/signed byte/word/si Statement [240] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_8bpppixelcell:111 [ ] ) always clobbers reg byte a Statement [241] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_8bpppixelcell:111 [ ] ) always clobbers reg byte a Statement [242] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_8bpppixelcell:111 [ ] ) always clobbers reg byte a -Statement [249] (byte~) mode_8bpppixelcell::$13 ← (byte) mode_8bpppixelcell::ay#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ax#2 mode_8bpppixelcell::gfxa#2 mode_8bpppixelcell::$13 ] ( main:2::menu:9::mode_8bpppixelcell:111 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ax#2 mode_8bpppixelcell::gfxa#2 mode_8bpppixelcell::$13 ] ) always clobbers reg byte a +Statement [249] (byte~) mode_8bpppixelcell::$13 ← (byte) mode_8bpppixelcell::ay#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ax#2 mode_8bpppixelcell::gfxa#2 mode_8bpppixelcell::$13 ] ( main:2::menu:9::mode_8bpppixelcell:111 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ax#2 mode_8bpppixelcell::gfxa#2 mode_8bpppixelcell::$13 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:17 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ay#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:18 [ mode_8bpppixelcell::ax#2 mode_8bpppixelcell::ax#1 ] Statement [250] (byte~) mode_8bpppixelcell::$14 ← (byte~) mode_8bpppixelcell::$13 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ax#2 mode_8bpppixelcell::gfxa#2 mode_8bpppixelcell::$14 ] ( main:2::menu:9::mode_8bpppixelcell:111 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ax#2 mode_8bpppixelcell::gfxa#2 mode_8bpppixelcell::$14 ] ) always clobbers reg byte a -Statement [251] (byte~) mode_8bpppixelcell::$15 ← (byte) mode_8bpppixelcell::ax#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ax#2 mode_8bpppixelcell::gfxa#2 mode_8bpppixelcell::$14 mode_8bpppixelcell::$15 ] ( main:2::menu:9::mode_8bpppixelcell:111 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ax#2 mode_8bpppixelcell::gfxa#2 mode_8bpppixelcell::$14 mode_8bpppixelcell::$15 ] ) always clobbers reg byte a +Statement [251] (byte~) mode_8bpppixelcell::$15 ← (byte) mode_8bpppixelcell::ax#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ax#2 mode_8bpppixelcell::gfxa#2 mode_8bpppixelcell::$14 mode_8bpppixelcell::$15 ] ( main:2::menu:9::mode_8bpppixelcell:111 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ax#2 mode_8bpppixelcell::gfxa#2 mode_8bpppixelcell::$14 mode_8bpppixelcell::$15 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:212 [ mode_8bpppixelcell::$14 ] Statement [253] *((byte*) mode_8bpppixelcell::gfxa#2) ← (byte~) mode_8bpppixelcell::$16 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ax#2 mode_8bpppixelcell::gfxa#2 ] ( main:2::menu:9::mode_8bpppixelcell:111 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ax#2 mode_8bpppixelcell::gfxa#2 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:17 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ay#1 ] @@ -17995,7 +17995,7 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:28 [ m Removing always clobbered register reg byte y as potential for zp ZP_BYTE:28 [ mode_8bpppixelcell::col#2 mode_8bpppixelcell::col#5 mode_8bpppixelcell::col#7 mode_8bpppixelcell::col#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:24 [ mode_8bpppixelcell::cr#6 mode_8bpppixelcell::cr#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:24 [ mode_8bpppixelcell::cr#6 mode_8bpppixelcell::cr#1 ] -Statement [265] (byte~) mode_8bpppixelcell::$19 ← (byte) mode_8bpppixelcell::bits#2 & (byte/word/signed word/dword/signed dword) 128 [ mode_8bpppixelcell::ch#8 mode_8bpppixelcell::chargen#1 mode_8bpppixelcell::cr#6 mode_8bpppixelcell::bits#2 mode_8bpppixelcell::gfxb#2 mode_8bpppixelcell::col#2 mode_8bpppixelcell::cp#2 mode_8bpppixelcell::$19 ] ( main:2::menu:9::mode_8bpppixelcell:111 [ mode_8bpppixelcell::ch#8 mode_8bpppixelcell::chargen#1 mode_8bpppixelcell::cr#6 mode_8bpppixelcell::bits#2 mode_8bpppixelcell::gfxb#2 mode_8bpppixelcell::col#2 mode_8bpppixelcell::cp#2 mode_8bpppixelcell::$19 ] ) always clobbers reg byte a +Statement [265] (byte~) mode_8bpppixelcell::$19 ← (byte) mode_8bpppixelcell::bits#2 & (byte/word/signed word/dword/signed dword) $80 [ mode_8bpppixelcell::ch#8 mode_8bpppixelcell::chargen#1 mode_8bpppixelcell::cr#6 mode_8bpppixelcell::bits#2 mode_8bpppixelcell::gfxb#2 mode_8bpppixelcell::col#2 mode_8bpppixelcell::cp#2 mode_8bpppixelcell::$19 ] ( main:2::menu:9::mode_8bpppixelcell:111 [ mode_8bpppixelcell::ch#8 mode_8bpppixelcell::chargen#1 mode_8bpppixelcell::cr#6 mode_8bpppixelcell::bits#2 mode_8bpppixelcell::gfxb#2 mode_8bpppixelcell::col#2 mode_8bpppixelcell::cp#2 mode_8bpppixelcell::$19 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:25 [ mode_8bpppixelcell::bits#2 mode_8bpppixelcell::bits#0 mode_8bpppixelcell::bits#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:29 [ mode_8bpppixelcell::cp#2 mode_8bpppixelcell::cp#1 ] Statement [269] *((byte*) mode_8bpppixelcell::gfxb#2) ← (byte) mode_8bpppixelcell::c#2 [ mode_8bpppixelcell::ch#8 mode_8bpppixelcell::chargen#1 mode_8bpppixelcell::cr#6 mode_8bpppixelcell::bits#2 mode_8bpppixelcell::gfxb#2 mode_8bpppixelcell::col#2 mode_8bpppixelcell::cp#2 ] ( main:2::menu:9::mode_8bpppixelcell:111 [ mode_8bpppixelcell::ch#8 mode_8bpppixelcell::chargen#1 mode_8bpppixelcell::cr#6 mode_8bpppixelcell::bits#2 mode_8bpppixelcell::gfxb#2 mode_8bpppixelcell::col#2 mode_8bpppixelcell::cp#2 ] ) always clobbers reg byte y @@ -18017,13 +18017,13 @@ Statement [293] *((const byte*) DTV_PLANEB_START_HI#0) ← (byte/signed byte/wor Statement [294] *((const byte*) DTV_PLANEB_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2::menu:9::mode_sixsfred:104 [ ] ) always clobbers reg byte a Statement [295] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_sixsfred:104 [ ] ) always clobbers reg byte a Statement [296] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_sixsfred:104 [ ] ) always clobbers reg byte a -Statement [297] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_sixsfred:104 [ ] ) always clobbers reg byte a -Statement [298] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_sixsfred:104 [ ] ) always clobbers reg byte a +Statement [297] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_sixsfred:104 [ ] ) always clobbers reg byte a +Statement [298] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_sixsfred:104 [ ] ) always clobbers reg byte a Statement [303] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_sixsfred:104 [ ] ) always clobbers reg byte a Statement [306] (byte~) mode_sixsfred::$16 ← (byte) mode_sixsfred::cx#2 + (byte) mode_sixsfred::cy#4 [ mode_sixsfred::cy#4 mode_sixsfred::cx#2 mode_sixsfred::col#2 mode_sixsfred::$16 ] ( main:2::menu:9::mode_sixsfred:104 [ mode_sixsfred::cy#4 mode_sixsfred::cx#2 mode_sixsfred::col#2 mode_sixsfred::$16 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:32 [ mode_sixsfred::cy#4 mode_sixsfred::cy#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:33 [ mode_sixsfred::cx#2 mode_sixsfred::cx#1 ] -Statement [307] (byte~) mode_sixsfred::$17 ← (byte~) mode_sixsfred::$16 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_sixsfred::cy#4 mode_sixsfred::cx#2 mode_sixsfred::col#2 mode_sixsfred::$17 ] ( main:2::menu:9::mode_sixsfred:104 [ mode_sixsfred::cy#4 mode_sixsfred::cx#2 mode_sixsfred::col#2 mode_sixsfred::$17 ] ) always clobbers reg byte a +Statement [307] (byte~) mode_sixsfred::$17 ← (byte~) mode_sixsfred::$16 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_sixsfred::cy#4 mode_sixsfred::cx#2 mode_sixsfred::col#2 mode_sixsfred::$17 ] ( main:2::menu:9::mode_sixsfred:104 [ mode_sixsfred::cy#4 mode_sixsfred::cx#2 mode_sixsfred::col#2 mode_sixsfred::$17 ] ) always clobbers reg byte a Statement [308] *((byte*) mode_sixsfred::col#2) ← (byte~) mode_sixsfred::$17 [ mode_sixsfred::cy#4 mode_sixsfred::cx#2 mode_sixsfred::col#2 ] ( main:2::menu:9::mode_sixsfred:104 [ mode_sixsfred::cy#4 mode_sixsfred::cx#2 mode_sixsfred::col#2 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:32 [ mode_sixsfred::cy#4 mode_sixsfred::cy#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:33 [ mode_sixsfred::cx#2 mode_sixsfred::cx#1 ] @@ -18034,7 +18034,7 @@ Statement [317] (byte) mode_sixsfred::row#0 ← (byte~) mode_sixsfred::$20 & (by Statement [318] *((byte*) mode_sixsfred::gfxa#2) ← *((const byte[]) mode_sixsfred::row_bitmask#0 + (byte) mode_sixsfred::row#0) [ mode_sixsfred::ay#4 mode_sixsfred::gfxa#2 mode_sixsfred::ax#2 ] ( main:2::menu:9::mode_sixsfred:104 [ mode_sixsfred::ay#4 mode_sixsfred::gfxa#2 mode_sixsfred::ax#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:36 [ mode_sixsfred::ay#4 mode_sixsfred::ay#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:39 [ mode_sixsfred::ax#2 mode_sixsfred::ax#1 ] -Statement [326] *((byte*) mode_sixsfred::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 27 [ mode_sixsfred::by#4 mode_sixsfred::gfxb#2 mode_sixsfred::bx#2 ] ( main:2::menu:9::mode_sixsfred:104 [ mode_sixsfred::by#4 mode_sixsfred::gfxb#2 mode_sixsfred::bx#2 ] ) always clobbers reg byte a reg byte y +Statement [326] *((byte*) mode_sixsfred::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $1b [ mode_sixsfred::by#4 mode_sixsfred::gfxb#2 mode_sixsfred::bx#2 ] ( main:2::menu:9::mode_sixsfred:104 [ mode_sixsfred::by#4 mode_sixsfred::gfxb#2 mode_sixsfred::bx#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp ZP_BYTE:40 [ mode_sixsfred::by#4 mode_sixsfred::by#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:40 [ mode_sixsfred::by#4 mode_sixsfred::by#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:43 [ mode_sixsfred::bx#2 mode_sixsfred::bx#1 ] @@ -18054,16 +18054,16 @@ Statement [346] *((const byte*) DTV_PLANEB_START_HI#0) ← (byte/signed byte/wor Statement [347] *((const byte*) DTV_PLANEB_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] ) always clobbers reg byte a Statement [348] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] ) always clobbers reg byte a Statement [349] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] ) always clobbers reg byte a -Statement [350] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] ) always clobbers reg byte a -Statement [351] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] ) always clobbers reg byte a +Statement [350] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] ) always clobbers reg byte a +Statement [351] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] ) always clobbers reg byte a Statement [356] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] ) always clobbers reg byte a -Statement [357] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 112 [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] ) always clobbers reg byte a -Statement [358] *((const byte*) BGCOL2#0) ← (byte/word/signed word/dword/signed dword) 212 [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] ) always clobbers reg byte a -Statement [361] (byte~) mode_twoplanebitmap::$15 ← (byte) mode_twoplanebitmap::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cx#2 mode_twoplanebitmap::col#2 mode_twoplanebitmap::$15 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cx#2 mode_twoplanebitmap::col#2 mode_twoplanebitmap::$15 ] ) always clobbers reg byte a +Statement [357] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) $70 [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] ) always clobbers reg byte a +Statement [358] *((const byte*) BGCOL2#0) ← (byte/word/signed word/dword/signed dword) $d4 [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] ) always clobbers reg byte a +Statement [361] (byte~) mode_twoplanebitmap::$15 ← (byte) mode_twoplanebitmap::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cx#2 mode_twoplanebitmap::col#2 mode_twoplanebitmap::$15 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cx#2 mode_twoplanebitmap::col#2 mode_twoplanebitmap::$15 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:45 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cy#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:46 [ mode_twoplanebitmap::cx#2 mode_twoplanebitmap::cx#1 ] Statement [362] (byte~) mode_twoplanebitmap::$16 ← (byte~) mode_twoplanebitmap::$15 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cx#2 mode_twoplanebitmap::col#2 mode_twoplanebitmap::$16 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cx#2 mode_twoplanebitmap::col#2 mode_twoplanebitmap::$16 ] ) always clobbers reg byte a -Statement [363] (byte~) mode_twoplanebitmap::$17 ← (byte) mode_twoplanebitmap::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cx#2 mode_twoplanebitmap::col#2 mode_twoplanebitmap::$16 mode_twoplanebitmap::$17 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cx#2 mode_twoplanebitmap::col#2 mode_twoplanebitmap::$16 mode_twoplanebitmap::$17 ] ) always clobbers reg byte a +Statement [363] (byte~) mode_twoplanebitmap::$17 ← (byte) mode_twoplanebitmap::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cx#2 mode_twoplanebitmap::col#2 mode_twoplanebitmap::$16 mode_twoplanebitmap::$17 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cx#2 mode_twoplanebitmap::col#2 mode_twoplanebitmap::$16 mode_twoplanebitmap::$17 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:221 [ mode_twoplanebitmap::$16 ] Statement [365] *((byte*) mode_twoplanebitmap::col#2) ← (byte~) mode_twoplanebitmap::$18 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cx#2 mode_twoplanebitmap::col#2 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cx#2 mode_twoplanebitmap::col#2 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:45 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cy#1 ] @@ -18071,10 +18071,10 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:46 [ m Statement [373] (byte~) mode_twoplanebitmap::$21 ← (byte) mode_twoplanebitmap::ay#4 & (byte/signed byte/word/signed word/dword/signed dword) 4 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 mode_twoplanebitmap::$21 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 mode_twoplanebitmap::$21 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:49 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ay#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:52 [ mode_twoplanebitmap::ax#2 mode_twoplanebitmap::ax#1 ] -Statement [375] *((byte*) mode_twoplanebitmap::gfxa#3) ← (byte/word/signed word/dword/signed dword) 255 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ) always clobbers reg byte a reg byte y +Statement [375] *((byte*) mode_twoplanebitmap::gfxa#3) ← (byte/word/signed word/dword/signed dword) $ff [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:49 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ay#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:52 [ mode_twoplanebitmap::ax#2 mode_twoplanebitmap::ax#1 ] -Statement [384] *((byte*) mode_twoplanebitmap::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::bx#2 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::bx#2 ] ) always clobbers reg byte a reg byte y +Statement [384] *((byte*) mode_twoplanebitmap::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::bx#2 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::bx#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp ZP_BYTE:53 [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::by#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:53 [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::by#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:56 [ mode_twoplanebitmap::bx#2 mode_twoplanebitmap::bx#1 ] @@ -18095,8 +18095,8 @@ Statement [406] *((const byte*) DTV_PLANEB_START_HI#0) ← (byte/signed byte/wor Statement [407] *((const byte*) DTV_PLANEB_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2::menu:9::mode_sixsfred2:90 [ ] ) always clobbers reg byte a Statement [408] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_sixsfred2:90 [ ] ) always clobbers reg byte a Statement [409] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_sixsfred2:90 [ ] ) always clobbers reg byte a -Statement [410] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_sixsfred2:90 [ ] ) always clobbers reg byte a -Statement [411] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_sixsfred2:90 [ ] ) always clobbers reg byte a +Statement [410] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_sixsfred2:90 [ ] ) always clobbers reg byte a +Statement [411] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_sixsfred2:90 [ ] ) always clobbers reg byte a Statement [416] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_sixsfred2:90 [ ] ) always clobbers reg byte a Statement [419] (byte~) mode_sixsfred2::$14 ← (byte) mode_sixsfred2::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 3 [ mode_sixsfred2::cy#4 mode_sixsfred2::cx#2 mode_sixsfred2::col#2 mode_sixsfred2::$14 ] ( main:2::menu:9::mode_sixsfred2:90 [ mode_sixsfred2::cy#4 mode_sixsfred2::cx#2 mode_sixsfred2::col#2 mode_sixsfred2::$14 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:58 [ mode_sixsfred2::cy#4 mode_sixsfred2::cy#1 ] @@ -18114,98 +18114,98 @@ Statement [432] (byte) mode_sixsfred2::row#0 ← (byte~) mode_sixsfred2::$20 & ( Statement [433] *((byte*) mode_sixsfred2::gfxa#2) ← *((const byte[]) mode_sixsfred2::row_bitmask#0 + (byte) mode_sixsfred2::row#0) [ mode_sixsfred2::ay#4 mode_sixsfred2::gfxa#2 mode_sixsfred2::ax#2 ] ( main:2::menu:9::mode_sixsfred2:90 [ mode_sixsfred2::ay#4 mode_sixsfred2::gfxa#2 mode_sixsfred2::ax#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:62 [ mode_sixsfred2::ay#4 mode_sixsfred2::ay#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:65 [ mode_sixsfred2::ax#2 mode_sixsfred2::ax#1 ] -Statement [441] *((byte*) mode_sixsfred2::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 27 [ mode_sixsfred2::by#4 mode_sixsfred2::gfxb#2 mode_sixsfred2::bx#2 ] ( main:2::menu:9::mode_sixsfred2:90 [ mode_sixsfred2::by#4 mode_sixsfred2::gfxb#2 mode_sixsfred2::bx#2 ] ) always clobbers reg byte a reg byte y +Statement [441] *((byte*) mode_sixsfred2::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $1b [ mode_sixsfred2::by#4 mode_sixsfred2::gfxb#2 mode_sixsfred2::bx#2 ] ( main:2::menu:9::mode_sixsfred2:90 [ mode_sixsfred2::by#4 mode_sixsfred2::gfxb#2 mode_sixsfred2::bx#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp ZP_BYTE:66 [ mode_sixsfred2::by#4 mode_sixsfred2::by#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:66 [ mode_sixsfred2::by#4 mode_sixsfred2::by#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:69 [ mode_sixsfred2::bx#2 mode_sixsfred2::bx#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:69 [ mode_sixsfred2::bx#2 mode_sixsfred2::bx#1 ] -Statement [450] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolmcchar::CHARSET#0/(dword/signed dword) 65536 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a -Statement [451] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a -Statement [452] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a +Statement [450] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolmcchar::CHARSET#0/(dword/signed dword) $10000 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a +Statement [451] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a +Statement [452] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a Statement [453] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a Statement [454] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a -Statement [455] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolmcchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a +Statement [455] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolmcchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a Statement [456] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a Statement [457] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0|(const byte) VIC_MCM#0 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a -Statement [458] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolmcchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_hicolmcchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a +Statement [458] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolmcchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_hicolmcchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a Statement [463] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a -Statement [464] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 80 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a -Statement [465] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 84 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a -Statement [466] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) 88 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a -Statement [469] (byte~) mode_hicolmcchar::$25 ← (byte) mode_hicolmcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cx#2 mode_hicolmcchar::col#2 mode_hicolmcchar::ch#2 mode_hicolmcchar::$25 ] ( main:2::menu:9::mode_hicolmcchar:83 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cx#2 mode_hicolmcchar::col#2 mode_hicolmcchar::ch#2 mode_hicolmcchar::$25 ] ) always clobbers reg byte a +Statement [464] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) $50 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a +Statement [465] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) $54 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a +Statement [466] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) $58 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a +Statement [469] (byte~) mode_hicolmcchar::$25 ← (byte) mode_hicolmcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cx#2 mode_hicolmcchar::col#2 mode_hicolmcchar::ch#2 mode_hicolmcchar::$25 ] ( main:2::menu:9::mode_hicolmcchar:83 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cx#2 mode_hicolmcchar::col#2 mode_hicolmcchar::ch#2 mode_hicolmcchar::$25 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:71 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cy#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:72 [ mode_hicolmcchar::cx#2 mode_hicolmcchar::cx#1 ] Statement [470] (byte~) mode_hicolmcchar::$26 ← (byte~) mode_hicolmcchar::$25 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cx#2 mode_hicolmcchar::col#2 mode_hicolmcchar::ch#2 mode_hicolmcchar::$26 ] ( main:2::menu:9::mode_hicolmcchar:83 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cx#2 mode_hicolmcchar::col#2 mode_hicolmcchar::ch#2 mode_hicolmcchar::$26 ] ) always clobbers reg byte a -Statement [471] (byte~) mode_hicolmcchar::$27 ← (byte) mode_hicolmcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cx#2 mode_hicolmcchar::col#2 mode_hicolmcchar::ch#2 mode_hicolmcchar::$26 mode_hicolmcchar::$27 ] ( main:2::menu:9::mode_hicolmcchar:83 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cx#2 mode_hicolmcchar::col#2 mode_hicolmcchar::ch#2 mode_hicolmcchar::$26 mode_hicolmcchar::$27 ] ) always clobbers reg byte a +Statement [471] (byte~) mode_hicolmcchar::$27 ← (byte) mode_hicolmcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cx#2 mode_hicolmcchar::col#2 mode_hicolmcchar::ch#2 mode_hicolmcchar::$26 mode_hicolmcchar::$27 ] ( main:2::menu:9::mode_hicolmcchar:83 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cx#2 mode_hicolmcchar::col#2 mode_hicolmcchar::ch#2 mode_hicolmcchar::$26 mode_hicolmcchar::$27 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:232 [ mode_hicolmcchar::$26 ] Statement [473] *((byte*) mode_hicolmcchar::col#2) ← (byte) mode_hicolmcchar::v#0 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cx#2 mode_hicolmcchar::col#2 mode_hicolmcchar::ch#2 mode_hicolmcchar::v#0 ] ( main:2::menu:9::mode_hicolmcchar:83 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cx#2 mode_hicolmcchar::col#2 mode_hicolmcchar::ch#2 mode_hicolmcchar::v#0 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:71 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cy#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:72 [ mode_hicolmcchar::cx#2 mode_hicolmcchar::cx#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:234 [ mode_hicolmcchar::v#0 ] Statement [475] *((byte*) mode_hicolmcchar::ch#2) ← (byte) mode_hicolmcchar::v#0 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::col#1 mode_hicolmcchar::cx#2 mode_hicolmcchar::ch#2 ] ( main:2::menu:9::mode_hicolmcchar:83 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::col#1 mode_hicolmcchar::cx#2 mode_hicolmcchar::ch#2 ] ) always clobbers reg byte y -Statement [484] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolecmchar::CHARSET#0/(dword/signed dword) 65536 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a -Statement [485] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a -Statement [486] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a +Statement [484] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolecmchar::CHARSET#0/(dword/signed dword) $10000 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a +Statement [485] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a +Statement [486] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a Statement [487] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a Statement [488] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a -Statement [489] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolecmchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a +Statement [489] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolecmchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a Statement [490] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(const byte) VIC_ECM#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a Statement [491] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a -Statement [492] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolecmchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_hicolecmchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a +Statement [492] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolecmchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_hicolecmchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a Statement [497] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a -Statement [498] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 80 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a -Statement [499] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 84 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a -Statement [500] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) 88 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a -Statement [501] *((const byte*) BGCOL4#0) ← (byte/signed byte/word/signed word/dword/signed dword) 92 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a -Statement [504] (byte~) mode_hicolecmchar::$25 ← (byte) mode_hicolecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cx#2 mode_hicolecmchar::col#2 mode_hicolecmchar::ch#2 mode_hicolecmchar::$25 ] ( main:2::menu:9::mode_hicolecmchar:76 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cx#2 mode_hicolecmchar::col#2 mode_hicolecmchar::ch#2 mode_hicolecmchar::$25 ] ) always clobbers reg byte a +Statement [498] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) $50 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a +Statement [499] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) $54 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a +Statement [500] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) $58 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a +Statement [501] *((const byte*) BGCOL4#0) ← (byte/signed byte/word/signed word/dword/signed dword) $5c [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a +Statement [504] (byte~) mode_hicolecmchar::$25 ← (byte) mode_hicolecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cx#2 mode_hicolecmchar::col#2 mode_hicolecmchar::ch#2 mode_hicolecmchar::$25 ] ( main:2::menu:9::mode_hicolecmchar:76 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cx#2 mode_hicolecmchar::col#2 mode_hicolecmchar::ch#2 mode_hicolecmchar::$25 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:78 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cy#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:79 [ mode_hicolecmchar::cx#2 mode_hicolecmchar::cx#1 ] Statement [505] (byte~) mode_hicolecmchar::$26 ← (byte~) mode_hicolecmchar::$25 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cx#2 mode_hicolecmchar::col#2 mode_hicolecmchar::ch#2 mode_hicolecmchar::$26 ] ( main:2::menu:9::mode_hicolecmchar:76 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cx#2 mode_hicolecmchar::col#2 mode_hicolecmchar::ch#2 mode_hicolecmchar::$26 ] ) always clobbers reg byte a -Statement [506] (byte~) mode_hicolecmchar::$27 ← (byte) mode_hicolecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cx#2 mode_hicolecmchar::col#2 mode_hicolecmchar::ch#2 mode_hicolecmchar::$26 mode_hicolecmchar::$27 ] ( main:2::menu:9::mode_hicolecmchar:76 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cx#2 mode_hicolecmchar::col#2 mode_hicolecmchar::ch#2 mode_hicolecmchar::$26 mode_hicolecmchar::$27 ] ) always clobbers reg byte a +Statement [506] (byte~) mode_hicolecmchar::$27 ← (byte) mode_hicolecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cx#2 mode_hicolecmchar::col#2 mode_hicolecmchar::ch#2 mode_hicolecmchar::$26 mode_hicolecmchar::$27 ] ( main:2::menu:9::mode_hicolecmchar:76 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cx#2 mode_hicolecmchar::col#2 mode_hicolecmchar::ch#2 mode_hicolecmchar::$26 mode_hicolecmchar::$27 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:236 [ mode_hicolecmchar::$26 ] Statement [508] *((byte*) mode_hicolecmchar::col#2) ← (byte) mode_hicolecmchar::v#0 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cx#2 mode_hicolecmchar::col#2 mode_hicolecmchar::ch#2 mode_hicolecmchar::v#0 ] ( main:2::menu:9::mode_hicolecmchar:76 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cx#2 mode_hicolecmchar::col#2 mode_hicolecmchar::ch#2 mode_hicolecmchar::v#0 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:78 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cy#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:79 [ mode_hicolecmchar::cx#2 mode_hicolecmchar::cx#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:238 [ mode_hicolecmchar::v#0 ] Statement [510] *((byte*) mode_hicolecmchar::ch#2) ← (byte) mode_hicolecmchar::v#0 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::col#1 mode_hicolecmchar::cx#2 mode_hicolecmchar::ch#2 ] ( main:2::menu:9::mode_hicolecmchar:76 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::col#1 mode_hicolecmchar::cx#2 mode_hicolecmchar::ch#2 ] ) always clobbers reg byte y -Statement [519] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolstdchar::CHARSET#0/(dword/signed dword) 65536 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a -Statement [520] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a -Statement [521] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a +Statement [519] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolstdchar::CHARSET#0/(dword/signed dword) $10000 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a +Statement [520] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a +Statement [521] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a Statement [522] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a Statement [523] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a -Statement [524] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolstdchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a +Statement [524] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolstdchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a Statement [525] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a Statement [526] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a -Statement [527] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolstdchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_hicolstdchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a +Statement [527] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolstdchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_hicolstdchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a Statement [532] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a Statement [533] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a -Statement [536] (byte~) mode_hicolstdchar::$24 ← (byte) mode_hicolstdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cx#2 mode_hicolstdchar::col#2 mode_hicolstdchar::ch#2 mode_hicolstdchar::$24 ] ( main:2::menu:9::mode_hicolstdchar:69 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cx#2 mode_hicolstdchar::col#2 mode_hicolstdchar::ch#2 mode_hicolstdchar::$24 ] ) always clobbers reg byte a +Statement [536] (byte~) mode_hicolstdchar::$24 ← (byte) mode_hicolstdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cx#2 mode_hicolstdchar::col#2 mode_hicolstdchar::ch#2 mode_hicolstdchar::$24 ] ( main:2::menu:9::mode_hicolstdchar:69 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cx#2 mode_hicolstdchar::col#2 mode_hicolstdchar::ch#2 mode_hicolstdchar::$24 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:85 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cy#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:86 [ mode_hicolstdchar::cx#2 mode_hicolstdchar::cx#1 ] Statement [537] (byte~) mode_hicolstdchar::$25 ← (byte~) mode_hicolstdchar::$24 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cx#2 mode_hicolstdchar::col#2 mode_hicolstdchar::ch#2 mode_hicolstdchar::$25 ] ( main:2::menu:9::mode_hicolstdchar:69 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cx#2 mode_hicolstdchar::col#2 mode_hicolstdchar::ch#2 mode_hicolstdchar::$25 ] ) always clobbers reg byte a -Statement [538] (byte~) mode_hicolstdchar::$26 ← (byte) mode_hicolstdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cx#2 mode_hicolstdchar::col#2 mode_hicolstdchar::ch#2 mode_hicolstdchar::$25 mode_hicolstdchar::$26 ] ( main:2::menu:9::mode_hicolstdchar:69 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cx#2 mode_hicolstdchar::col#2 mode_hicolstdchar::ch#2 mode_hicolstdchar::$25 mode_hicolstdchar::$26 ] ) always clobbers reg byte a +Statement [538] (byte~) mode_hicolstdchar::$26 ← (byte) mode_hicolstdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cx#2 mode_hicolstdchar::col#2 mode_hicolstdchar::ch#2 mode_hicolstdchar::$25 mode_hicolstdchar::$26 ] ( main:2::menu:9::mode_hicolstdchar:69 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cx#2 mode_hicolstdchar::col#2 mode_hicolstdchar::ch#2 mode_hicolstdchar::$25 mode_hicolstdchar::$26 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:240 [ mode_hicolstdchar::$25 ] Statement [540] *((byte*) mode_hicolstdchar::col#2) ← (byte) mode_hicolstdchar::v#0 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cx#2 mode_hicolstdchar::col#2 mode_hicolstdchar::ch#2 mode_hicolstdchar::v#0 ] ( main:2::menu:9::mode_hicolstdchar:69 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cx#2 mode_hicolstdchar::col#2 mode_hicolstdchar::ch#2 mode_hicolstdchar::v#0 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:85 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cy#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:86 [ mode_hicolstdchar::cx#2 mode_hicolstdchar::cx#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:242 [ mode_hicolstdchar::v#0 ] Statement [542] *((byte*) mode_hicolstdchar::ch#2) ← (byte) mode_hicolstdchar::v#0 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::col#1 mode_hicolstdchar::cx#2 mode_hicolstdchar::ch#2 ] ( main:2::menu:9::mode_hicolstdchar:69 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::col#1 mode_hicolstdchar::cx#2 mode_hicolstdchar::ch#2 ] ) always clobbers reg byte y -Statement [551] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdbitmap::BITMAP#0/(dword/signed dword) 65536 [ ] ( main:2::menu:9::mode_stdbitmap:62 [ ] ) always clobbers reg byte a +Statement [551] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdbitmap::BITMAP#0/(dword/signed dword) $10000 [ ] ( main:2::menu:9::mode_stdbitmap:62 [ ] ) always clobbers reg byte a Statement [552] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_stdbitmap:62 [ ] ) always clobbers reg byte a Statement [553] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_stdbitmap:62 [ ] ) always clobbers reg byte a -Statement [554] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdbitmap::BITMAP#0/(word/signed word/dword/signed dword) 16384 [ ] ( main:2::menu:9::mode_stdbitmap:62 [ ] ) always clobbers reg byte a +Statement [554] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdbitmap::BITMAP#0/(word/signed word/dword/signed dword) $4000 [ ] ( main:2::menu:9::mode_stdbitmap:62 [ ] ) always clobbers reg byte a Statement [555] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_stdbitmap:62 [ ] ) always clobbers reg byte a Statement [556] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ ] ( main:2::menu:9::mode_stdbitmap:62 [ ] ) always clobbers reg byte a -Statement [557] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdbitmap::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_stdbitmap::BITMAP#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_stdbitmap:62 [ ] ) always clobbers reg byte a -Statement [559] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdbitmap::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdbitmap::i#2) [ mode_stdbitmap::i#2 ] ( main:2::menu:9::mode_stdbitmap:62 [ mode_stdbitmap::i#2 ] ) always clobbers reg byte a +Statement [557] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdbitmap::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_stdbitmap::BITMAP#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_stdbitmap:62 [ ] ) always clobbers reg byte a +Statement [559] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdbitmap::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdbitmap::i#2) [ mode_stdbitmap::i#2 ] ( main:2::menu:9::mode_stdbitmap:62 [ mode_stdbitmap::i#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:91 [ mode_stdbitmap::i#2 mode_stdbitmap::i#1 ] Statement [562] *((const byte*) BGCOL#0) ← (const byte) BLACK#0 [ ] ( main:2::menu:9::mode_stdbitmap:62 [ ] ) always clobbers reg byte a Statement [563] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( main:2::menu:9::mode_stdbitmap:62 [ ] ) always clobbers reg byte a Statement [566] (byte~) mode_stdbitmap::$19 ← (byte) mode_stdbitmap::cx#2 + (byte) mode_stdbitmap::cy#4 [ mode_stdbitmap::cy#4 mode_stdbitmap::cx#2 mode_stdbitmap::ch#2 mode_stdbitmap::$19 ] ( main:2::menu:9::mode_stdbitmap:62 [ mode_stdbitmap::cy#4 mode_stdbitmap::cx#2 mode_stdbitmap::ch#2 mode_stdbitmap::$19 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:92 [ mode_stdbitmap::cy#4 mode_stdbitmap::cy#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:93 [ mode_stdbitmap::cx#2 mode_stdbitmap::cx#1 ] -Statement [567] (byte) mode_stdbitmap::col#0 ← (byte~) mode_stdbitmap::$19 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_stdbitmap::cy#4 mode_stdbitmap::cx#2 mode_stdbitmap::ch#2 mode_stdbitmap::col#0 ] ( main:2::menu:9::mode_stdbitmap:62 [ mode_stdbitmap::cy#4 mode_stdbitmap::cx#2 mode_stdbitmap::ch#2 mode_stdbitmap::col#0 ] ) always clobbers reg byte a -Statement [568] (byte) mode_stdbitmap::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) mode_stdbitmap::col#0 [ mode_stdbitmap::cy#4 mode_stdbitmap::cx#2 mode_stdbitmap::ch#2 mode_stdbitmap::col#0 mode_stdbitmap::col2#0 ] ( main:2::menu:9::mode_stdbitmap:62 [ mode_stdbitmap::cy#4 mode_stdbitmap::cx#2 mode_stdbitmap::ch#2 mode_stdbitmap::col#0 mode_stdbitmap::col2#0 ] ) always clobbers reg byte a +Statement [567] (byte) mode_stdbitmap::col#0 ← (byte~) mode_stdbitmap::$19 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_stdbitmap::cy#4 mode_stdbitmap::cx#2 mode_stdbitmap::ch#2 mode_stdbitmap::col#0 ] ( main:2::menu:9::mode_stdbitmap:62 [ mode_stdbitmap::cy#4 mode_stdbitmap::cx#2 mode_stdbitmap::ch#2 mode_stdbitmap::col#0 ] ) always clobbers reg byte a +Statement [568] (byte) mode_stdbitmap::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f - (byte) mode_stdbitmap::col#0 [ mode_stdbitmap::cy#4 mode_stdbitmap::cx#2 mode_stdbitmap::ch#2 mode_stdbitmap::col#0 mode_stdbitmap::col2#0 ] ( main:2::menu:9::mode_stdbitmap:62 [ mode_stdbitmap::cy#4 mode_stdbitmap::cx#2 mode_stdbitmap::ch#2 mode_stdbitmap::col#0 mode_stdbitmap::col2#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:244 [ mode_stdbitmap::col#0 ] Statement [569] (byte~) mode_stdbitmap::$22 ← (byte) mode_stdbitmap::col#0 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ mode_stdbitmap::cy#4 mode_stdbitmap::cx#2 mode_stdbitmap::ch#2 mode_stdbitmap::col2#0 mode_stdbitmap::$22 ] ( main:2::menu:9::mode_stdbitmap:62 [ mode_stdbitmap::cy#4 mode_stdbitmap::cx#2 mode_stdbitmap::ch#2 mode_stdbitmap::col2#0 mode_stdbitmap::$22 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:245 [ mode_stdbitmap::col2#0 ] @@ -18233,7 +18233,7 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:98 [ b Removing always clobbered register reg byte a as potential for zp ZP_BYTE:99 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 ] Statement [661] (byte) bitmap_line_xdyi::e#1 ← (byte) bitmap_line_xdyi::e#3 + (byte) bitmap_line_xdyi::yd#2 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ) always clobbers reg byte a Statement [664] (byte) bitmap_line_xdyi::e#2 ← (byte) bitmap_line_xdyi::e#1 - (byte) bitmap_line_xdyi::xd#5 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] ) always clobbers reg byte a -Statement [670] (word) bitmap_plot::plotter_x#0 ← *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ) always clobbers reg byte a +Statement [670] (word) bitmap_plot::plotter_x#0 ← *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:102 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:103 [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:104 [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] @@ -18255,9 +18255,9 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:119 [ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:120 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#5 bitmap_line_ydxd::x#0 bitmap_line_ydxd::x#1 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:121 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:122 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] -Statement [671] (word) bitmap_plot::plotter_y#0 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) [ bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ) always clobbers reg byte a +Statement [671] (word) bitmap_plot::plotter_y#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) [ bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ) always clobbers reg byte a Statement [672] (word~) bitmap_plot::$0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0 [ bitmap_plot::x#4 bitmap_plot::$0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] ) always clobbers reg byte a -Statement [673] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::$0 bitmap_plot::$1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] ) always clobbers reg byte a reg byte y +Statement [673] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::$0 bitmap_plot::$1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:96 [ mode_stdbitmap::l#2 mode_stdbitmap::l#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:97 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:98 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 ] @@ -18293,32 +18293,32 @@ Statement [701] (byte) bitmap_line_xdyd::e#2 ← (byte) bitmap_line_xdyd::e#1 - Statement [707] (byte) bitmap_line_ydxd::e#0 ← (byte) bitmap_line_ydxd::xd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] ) always clobbers reg byte a Statement [713] (byte) bitmap_line_ydxd::e#1 ← (byte) bitmap_line_ydxd::e#3 + (byte) bitmap_line_ydxd::xd#2 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ) always clobbers reg byte a Statement [716] (byte) bitmap_line_ydxd::e#2 ← (byte) bitmap_line_ydxd::e#1 - (byte) bitmap_line_ydxd::yd#5 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] ) always clobbers reg byte a -Statement [721] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_xhi#0) w= *((const byte[256]) bitmap_plot_xlo#0) [ bitmap_clear::$3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_clear:580 [ bitmap_clear::$3 ] ) always clobbers reg byte a +Statement [721] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_xhi#0) w= *((const byte[$100]) bitmap_plot_xlo#0) [ bitmap_clear::$3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_clear:580 [ bitmap_clear::$3 ] ) always clobbers reg byte a Statement [722] (byte*~) bitmap_clear::bitmap#5 ← (byte*)(word~) bitmap_clear::$3 [ bitmap_clear::bitmap#5 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_clear:580 [ bitmap_clear::bitmap#5 ] ) always clobbers reg byte a Statement [725] *((byte*) bitmap_clear::bitmap#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_clear:580 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp ZP_BYTE:123 [ bitmap_clear::y#4 bitmap_clear::y#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:123 [ bitmap_clear::y#4 bitmap_clear::y#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:126 [ bitmap_clear::x#2 bitmap_clear::x#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:126 [ bitmap_clear::x#2 bitmap_clear::x#1 ] -Statement [734] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) 248 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_init:578 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ) always clobbers reg byte a +Statement [734] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) $f8 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_init:578 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:127 [ bitmap_init::x#2 bitmap_init::x#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:128 [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] -Statement [736] *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) mode_stdbitmap::BITMAP#0 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_init:578 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a -Statement [737] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_init:578 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a +Statement [736] *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) mode_stdbitmap::BITMAP#0 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_init:578 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a +Statement [737] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_init:578 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a Statement [744] (byte~) bitmap_init::$6 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_init:578 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$6 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:129 [ bitmap_init::y#2 bitmap_init::y#1 ] Statement [750] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$10 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_init:578 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$10 ] ) always clobbers reg byte a -Statement [752] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_init:578 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ) always clobbers reg byte a -Statement [758] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_mcchar::CHARSET#0/(dword/signed dword) 65536 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a -Statement [759] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a -Statement [760] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a +Statement [752] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_init:578 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ) always clobbers reg byte a +Statement [758] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_mcchar::CHARSET#0/(dword/signed dword) $10000 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a +Statement [759] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a +Statement [760] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a Statement [761] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a Statement [762] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a -Statement [763] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_mcchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a +Statement [763] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_mcchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a Statement [764] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a Statement [765] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0|(const byte) VIC_MCM#0 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a -Statement [766] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_mcchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_mcchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a -Statement [768] *((const byte*) DTV_PALETTE#0 + (byte) mode_mcchar::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_mcchar::i#2) [ mode_mcchar::i#2 ] ( main:2::menu:9::mode_mcchar:55 [ mode_mcchar::i#2 ] ) always clobbers reg byte a +Statement [766] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_mcchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_mcchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a +Statement [768] *((const byte*) DTV_PALETTE#0 + (byte) mode_mcchar::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_mcchar::i#2) [ mode_mcchar::i#2 ] ( main:2::menu:9::mode_mcchar:55 [ mode_mcchar::i#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:132 [ mode_mcchar::i#2 mode_mcchar::i#1 ] Statement [771] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a Statement [772] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a @@ -18327,25 +18327,25 @@ Statement [774] *((const byte*) BGCOL3#0) ← (const byte) BLUE#0 [ ] ( main:2:: Statement [777] (byte~) mode_mcchar::$25 ← (byte) mode_mcchar::cx#2 + (byte) mode_mcchar::cy#4 [ mode_mcchar::cy#4 mode_mcchar::cx#2 mode_mcchar::col#2 mode_mcchar::ch#2 mode_mcchar::$25 ] ( main:2::menu:9::mode_mcchar:55 [ mode_mcchar::cy#4 mode_mcchar::cx#2 mode_mcchar::col#2 mode_mcchar::ch#2 mode_mcchar::$25 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:133 [ mode_mcchar::cy#4 mode_mcchar::cy#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:134 [ mode_mcchar::cx#2 mode_mcchar::cx#1 ] -Statement [778] (byte~) mode_mcchar::$26 ← (byte~) mode_mcchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_mcchar::cy#4 mode_mcchar::cx#2 mode_mcchar::col#2 mode_mcchar::ch#2 mode_mcchar::$26 ] ( main:2::menu:9::mode_mcchar:55 [ mode_mcchar::cy#4 mode_mcchar::cx#2 mode_mcchar::col#2 mode_mcchar::ch#2 mode_mcchar::$26 ] ) always clobbers reg byte a +Statement [778] (byte~) mode_mcchar::$26 ← (byte~) mode_mcchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_mcchar::cy#4 mode_mcchar::cx#2 mode_mcchar::col#2 mode_mcchar::ch#2 mode_mcchar::$26 ] ( main:2::menu:9::mode_mcchar:55 [ mode_mcchar::cy#4 mode_mcchar::cx#2 mode_mcchar::col#2 mode_mcchar::ch#2 mode_mcchar::$26 ] ) always clobbers reg byte a Statement [779] *((byte*) mode_mcchar::col#2) ← (byte~) mode_mcchar::$26 [ mode_mcchar::cy#4 mode_mcchar::cx#2 mode_mcchar::col#2 mode_mcchar::ch#2 ] ( main:2::menu:9::mode_mcchar:55 [ mode_mcchar::cy#4 mode_mcchar::cx#2 mode_mcchar::col#2 mode_mcchar::ch#2 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:133 [ mode_mcchar::cy#4 mode_mcchar::cy#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:134 [ mode_mcchar::cx#2 mode_mcchar::cx#1 ] -Statement [781] (byte~) mode_mcchar::$27 ← (byte) mode_mcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_mcchar::cy#4 mode_mcchar::col#1 mode_mcchar::cx#2 mode_mcchar::ch#2 mode_mcchar::$27 ] ( main:2::menu:9::mode_mcchar:55 [ mode_mcchar::cy#4 mode_mcchar::col#1 mode_mcchar::cx#2 mode_mcchar::ch#2 mode_mcchar::$27 ] ) always clobbers reg byte a +Statement [781] (byte~) mode_mcchar::$27 ← (byte) mode_mcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_mcchar::cy#4 mode_mcchar::col#1 mode_mcchar::cx#2 mode_mcchar::ch#2 mode_mcchar::$27 ] ( main:2::menu:9::mode_mcchar:55 [ mode_mcchar::cy#4 mode_mcchar::col#1 mode_mcchar::cx#2 mode_mcchar::ch#2 mode_mcchar::$27 ] ) always clobbers reg byte a Statement [782] (byte~) mode_mcchar::$28 ← (byte~) mode_mcchar::$27 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ mode_mcchar::cy#4 mode_mcchar::col#1 mode_mcchar::cx#2 mode_mcchar::ch#2 mode_mcchar::$28 ] ( main:2::menu:9::mode_mcchar:55 [ mode_mcchar::cy#4 mode_mcchar::col#1 mode_mcchar::cx#2 mode_mcchar::ch#2 mode_mcchar::$28 ] ) always clobbers reg byte a -Statement [783] (byte~) mode_mcchar::$29 ← (byte) mode_mcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_mcchar::cy#4 mode_mcchar::col#1 mode_mcchar::cx#2 mode_mcchar::ch#2 mode_mcchar::$28 mode_mcchar::$29 ] ( main:2::menu:9::mode_mcchar:55 [ mode_mcchar::cy#4 mode_mcchar::col#1 mode_mcchar::cx#2 mode_mcchar::ch#2 mode_mcchar::$28 mode_mcchar::$29 ] ) always clobbers reg byte a +Statement [783] (byte~) mode_mcchar::$29 ← (byte) mode_mcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_mcchar::cy#4 mode_mcchar::col#1 mode_mcchar::cx#2 mode_mcchar::ch#2 mode_mcchar::$28 mode_mcchar::$29 ] ( main:2::menu:9::mode_mcchar:55 [ mode_mcchar::cy#4 mode_mcchar::col#1 mode_mcchar::cx#2 mode_mcchar::ch#2 mode_mcchar::$28 mode_mcchar::$29 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:280 [ mode_mcchar::$28 ] Statement [785] *((byte*) mode_mcchar::ch#2) ← (byte~) mode_mcchar::$30 [ mode_mcchar::cy#4 mode_mcchar::col#1 mode_mcchar::cx#2 mode_mcchar::ch#2 ] ( main:2::menu:9::mode_mcchar:55 [ mode_mcchar::cy#4 mode_mcchar::col#1 mode_mcchar::cx#2 mode_mcchar::ch#2 ] ) always clobbers reg byte y -Statement [794] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_ecmchar::CHARSET#0/(dword/signed dword) 65536 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a -Statement [795] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a -Statement [796] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a +Statement [794] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_ecmchar::CHARSET#0/(dword/signed dword) $10000 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a +Statement [795] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a +Statement [796] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a Statement [797] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a Statement [798] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a -Statement [799] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_ecmchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a +Statement [799] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_ecmchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a Statement [800] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(const byte) VIC_ECM#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a Statement [801] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a -Statement [802] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_ecmchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_ecmchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a -Statement [804] *((const byte*) DTV_PALETTE#0 + (byte) mode_ecmchar::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_ecmchar::i#2) [ mode_ecmchar::i#2 ] ( main:2::menu:9::mode_ecmchar:48 [ mode_ecmchar::i#2 ] ) always clobbers reg byte a +Statement [802] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_ecmchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_ecmchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a +Statement [804] *((const byte*) DTV_PALETTE#0 + (byte) mode_ecmchar::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_ecmchar::i#2) [ mode_ecmchar::i#2 ] ( main:2::menu:9::mode_ecmchar:48 [ mode_ecmchar::i#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:139 [ mode_ecmchar::i#2 mode_ecmchar::i#1 ] Statement [807] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a Statement [808] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a @@ -18355,38 +18355,38 @@ Statement [811] *((const byte*) BGCOL4#0) ← (byte/signed byte/word/signed word Statement [814] (byte~) mode_ecmchar::$25 ← (byte) mode_ecmchar::cx#2 + (byte) mode_ecmchar::cy#4 [ mode_ecmchar::cy#4 mode_ecmchar::cx#2 mode_ecmchar::col#2 mode_ecmchar::ch#2 mode_ecmchar::$25 ] ( main:2::menu:9::mode_ecmchar:48 [ mode_ecmchar::cy#4 mode_ecmchar::cx#2 mode_ecmchar::col#2 mode_ecmchar::ch#2 mode_ecmchar::$25 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:140 [ mode_ecmchar::cy#4 mode_ecmchar::cy#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:141 [ mode_ecmchar::cx#2 mode_ecmchar::cx#1 ] -Statement [815] (byte~) mode_ecmchar::$26 ← (byte~) mode_ecmchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_ecmchar::cy#4 mode_ecmchar::cx#2 mode_ecmchar::col#2 mode_ecmchar::ch#2 mode_ecmchar::$26 ] ( main:2::menu:9::mode_ecmchar:48 [ mode_ecmchar::cy#4 mode_ecmchar::cx#2 mode_ecmchar::col#2 mode_ecmchar::ch#2 mode_ecmchar::$26 ] ) always clobbers reg byte a +Statement [815] (byte~) mode_ecmchar::$26 ← (byte~) mode_ecmchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_ecmchar::cy#4 mode_ecmchar::cx#2 mode_ecmchar::col#2 mode_ecmchar::ch#2 mode_ecmchar::$26 ] ( main:2::menu:9::mode_ecmchar:48 [ mode_ecmchar::cy#4 mode_ecmchar::cx#2 mode_ecmchar::col#2 mode_ecmchar::ch#2 mode_ecmchar::$26 ] ) always clobbers reg byte a Statement [816] *((byte*) mode_ecmchar::col#2) ← (byte~) mode_ecmchar::$26 [ mode_ecmchar::cy#4 mode_ecmchar::cx#2 mode_ecmchar::col#2 mode_ecmchar::ch#2 ] ( main:2::menu:9::mode_ecmchar:48 [ mode_ecmchar::cy#4 mode_ecmchar::cx#2 mode_ecmchar::col#2 mode_ecmchar::ch#2 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:140 [ mode_ecmchar::cy#4 mode_ecmchar::cy#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:141 [ mode_ecmchar::cx#2 mode_ecmchar::cx#1 ] -Statement [818] (byte~) mode_ecmchar::$27 ← (byte) mode_ecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_ecmchar::cy#4 mode_ecmchar::col#1 mode_ecmchar::cx#2 mode_ecmchar::ch#2 mode_ecmchar::$27 ] ( main:2::menu:9::mode_ecmchar:48 [ mode_ecmchar::cy#4 mode_ecmchar::col#1 mode_ecmchar::cx#2 mode_ecmchar::ch#2 mode_ecmchar::$27 ] ) always clobbers reg byte a +Statement [818] (byte~) mode_ecmchar::$27 ← (byte) mode_ecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_ecmchar::cy#4 mode_ecmchar::col#1 mode_ecmchar::cx#2 mode_ecmchar::ch#2 mode_ecmchar::$27 ] ( main:2::menu:9::mode_ecmchar:48 [ mode_ecmchar::cy#4 mode_ecmchar::col#1 mode_ecmchar::cx#2 mode_ecmchar::ch#2 mode_ecmchar::$27 ] ) always clobbers reg byte a Statement [819] (byte~) mode_ecmchar::$28 ← (byte~) mode_ecmchar::$27 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ mode_ecmchar::cy#4 mode_ecmchar::col#1 mode_ecmchar::cx#2 mode_ecmchar::ch#2 mode_ecmchar::$28 ] ( main:2::menu:9::mode_ecmchar:48 [ mode_ecmchar::cy#4 mode_ecmchar::col#1 mode_ecmchar::cx#2 mode_ecmchar::ch#2 mode_ecmchar::$28 ] ) always clobbers reg byte a -Statement [820] (byte~) mode_ecmchar::$29 ← (byte) mode_ecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_ecmchar::cy#4 mode_ecmchar::col#1 mode_ecmchar::cx#2 mode_ecmchar::ch#2 mode_ecmchar::$28 mode_ecmchar::$29 ] ( main:2::menu:9::mode_ecmchar:48 [ mode_ecmchar::cy#4 mode_ecmchar::col#1 mode_ecmchar::cx#2 mode_ecmchar::ch#2 mode_ecmchar::$28 mode_ecmchar::$29 ] ) always clobbers reg byte a +Statement [820] (byte~) mode_ecmchar::$29 ← (byte) mode_ecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_ecmchar::cy#4 mode_ecmchar::col#1 mode_ecmchar::cx#2 mode_ecmchar::ch#2 mode_ecmchar::$28 mode_ecmchar::$29 ] ( main:2::menu:9::mode_ecmchar:48 [ mode_ecmchar::cy#4 mode_ecmchar::col#1 mode_ecmchar::cx#2 mode_ecmchar::ch#2 mode_ecmchar::$28 mode_ecmchar::$29 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:286 [ mode_ecmchar::$28 ] Statement [822] *((byte*) mode_ecmchar::ch#2) ← (byte~) mode_ecmchar::$30 [ mode_ecmchar::cy#4 mode_ecmchar::col#1 mode_ecmchar::cx#2 mode_ecmchar::ch#2 ] ( main:2::menu:9::mode_ecmchar:48 [ mode_ecmchar::cy#4 mode_ecmchar::col#1 mode_ecmchar::cx#2 mode_ecmchar::ch#2 ] ) always clobbers reg byte y -Statement [831] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdchar::CHARSET#0/(dword/signed dword) 65536 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a -Statement [832] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a -Statement [833] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a +Statement [831] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdchar::CHARSET#0/(dword/signed dword) $10000 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a +Statement [832] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a +Statement [833] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a Statement [834] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a Statement [835] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a -Statement [836] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a +Statement [836] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a Statement [837] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a Statement [838] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a -Statement [839] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_stdchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a -Statement [841] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdchar::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdchar::i#2) [ mode_stdchar::i#2 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::i#2 ] ) always clobbers reg byte a +Statement [839] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_stdchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a +Statement [841] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdchar::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdchar::i#2) [ mode_stdchar::i#2 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::i#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:146 [ mode_stdchar::i#2 mode_stdchar::i#1 ] Statement [844] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a Statement [845] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a Statement [848] (byte~) mode_stdchar::$24 ← (byte) mode_stdchar::cx#2 + (byte) mode_stdchar::cy#4 [ mode_stdchar::cy#4 mode_stdchar::cx#2 mode_stdchar::col#2 mode_stdchar::ch#2 mode_stdchar::$24 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::cx#2 mode_stdchar::col#2 mode_stdchar::ch#2 mode_stdchar::$24 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:147 [ mode_stdchar::cy#4 mode_stdchar::cy#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:148 [ mode_stdchar::cx#2 mode_stdchar::cx#1 ] -Statement [849] (byte~) mode_stdchar::$25 ← (byte~) mode_stdchar::$24 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_stdchar::cy#4 mode_stdchar::cx#2 mode_stdchar::col#2 mode_stdchar::ch#2 mode_stdchar::$25 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::cx#2 mode_stdchar::col#2 mode_stdchar::ch#2 mode_stdchar::$25 ] ) always clobbers reg byte a +Statement [849] (byte~) mode_stdchar::$25 ← (byte~) mode_stdchar::$24 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_stdchar::cy#4 mode_stdchar::cx#2 mode_stdchar::col#2 mode_stdchar::ch#2 mode_stdchar::$25 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::cx#2 mode_stdchar::col#2 mode_stdchar::ch#2 mode_stdchar::$25 ] ) always clobbers reg byte a Statement [850] *((byte*) mode_stdchar::col#2) ← (byte~) mode_stdchar::$25 [ mode_stdchar::cy#4 mode_stdchar::cx#2 mode_stdchar::col#2 mode_stdchar::ch#2 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::cx#2 mode_stdchar::col#2 mode_stdchar::ch#2 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:147 [ mode_stdchar::cy#4 mode_stdchar::cy#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:148 [ mode_stdchar::cx#2 mode_stdchar::cx#1 ] -Statement [852] (byte~) mode_stdchar::$26 ← (byte) mode_stdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$26 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$26 ] ) always clobbers reg byte a +Statement [852] (byte~) mode_stdchar::$26 ← (byte) mode_stdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$26 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$26 ] ) always clobbers reg byte a Statement [853] (byte~) mode_stdchar::$27 ← (byte~) mode_stdchar::$26 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$27 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$27 ] ) always clobbers reg byte a -Statement [854] (byte~) mode_stdchar::$28 ← (byte) mode_stdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$27 mode_stdchar::$28 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$27 mode_stdchar::$28 ] ) always clobbers reg byte a +Statement [854] (byte~) mode_stdchar::$28 ← (byte) mode_stdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$27 mode_stdchar::$28 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$27 mode_stdchar::$28 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:292 [ mode_stdchar::$27 ] Statement [856] *((byte*) mode_stdchar::ch#2) ← (byte~) mode_stdchar::$29 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 ] ) always clobbers reg byte y Statement [867] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) always clobbers reg byte a reg byte y @@ -18394,25 +18394,25 @@ Statement [870] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str# Statement [873] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:295 [ print_str_lines::ch#0 ] Statement [879] (byte*~) print_char_cursor#103 ← (byte*) print_line_cursor#19 [ print_str_lines::str#0 print_char_cursor#103 print_line_cursor#19 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#0 print_char_cursor#103 print_line_cursor#19 ] ) always clobbers reg byte a -Statement [882] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:9::print_str_lines:33::print_ln:878 [ print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) always clobbers reg byte a +Statement [882] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:9::print_str_lines:33::print_ln:878 [ print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) always clobbers reg byte a Statement [883] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:9::print_str_lines:33::print_ln:878 [ print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) always clobbers reg byte a Statement [887] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::menu:9::print_cls:31 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [889] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::menu:9::print_cls:31 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [889] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::menu:9::print_cls:31 [ print_cls::sc#1 ] ) always clobbers reg byte a Statement [5] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [6] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [7] *((const byte*) DTV_FEATURE#0) ← (const byte) DTV_FEATURE_ENABLE#0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [10] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [11] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [12] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a +Statement [10] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) $10000 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a +Statement [11] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a +Statement [12] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a Statement [13] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a Statement [14] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [15] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a +Statement [15] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) $4000 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a Statement [16] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a Statement [17] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [18] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [20] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) [ menu::i#2 ] ( main:2::menu:9 [ menu::i#2 ] ) always clobbers reg byte a +Statement [18] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a +Statement [20] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) [ menu::i#2 ] ( main:2::menu:9 [ menu::i#2 ] ) always clobbers reg byte a Statement [24] *((byte*) menu::c#2) ← (const byte) LIGHT_GREEN#0 [ menu::c#2 ] ( main:2::menu:9 [ menu::c#2 ] ) always clobbers reg byte a reg byte y -Statement [26] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) 1000) goto menu::@2 [ menu::c#1 ] ( main:2::menu:9 [ menu::c#1 ] ) always clobbers reg byte a +Statement [26] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) $3e8) goto menu::@2 [ menu::c#1 ] ( main:2::menu:9 [ menu::c#1 ] ) always clobbers reg byte a Statement [27] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a Statement [28] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a Statement [119] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0|(const byte) DTV_CHUNKY#0|(const byte) DTV_COLORRAM_OFF#0 [ ] ( main:2::menu:9::mode_8bppchunkybmm:118 [ ] ) always clobbers reg byte a @@ -18425,12 +18425,12 @@ Statement [125] *((const byte*) DTV_PLANEB_STEP#0) ← (byte/signed byte/word/si Statement [126] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_8bppchunkybmm:118 [ ] ) always clobbers reg byte a Statement [127] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_8bppchunkybmm:118 [ ] ) always clobbers reg byte a Statement [128] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_8bppchunkybmm:118 [ ] ) always clobbers reg byte a -Statement [137] if((byte*) mode_8bppchunkybmm::gfxb#3!=(word/dword/signed dword) 32768) goto mode_8bppchunkybmm::@4 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::gfxb#3 mode_8bppchunkybmm::x#2 mode_8bppchunkybmm::gfxbCpuBank#4 ] ( main:2::menu:9::mode_8bppchunkybmm:118 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::gfxb#3 mode_8bppchunkybmm::x#2 mode_8bppchunkybmm::gfxbCpuBank#4 ] ) always clobbers reg byte a +Statement [137] if((byte*) mode_8bppchunkybmm::gfxb#3!=(word/dword/signed dword) $8000) goto mode_8bppchunkybmm::@4 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::gfxb#3 mode_8bppchunkybmm::x#2 mode_8bppchunkybmm::gfxbCpuBank#4 ] ( main:2::menu:9::mode_8bppchunkybmm:118 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::gfxb#3 mode_8bppchunkybmm::x#2 mode_8bppchunkybmm::gfxbCpuBank#4 ] ) always clobbers reg byte a Statement [142] (word~) mode_8bppchunkybmm::$23 ← (word) mode_8bppchunkybmm::x#2 + (byte) mode_8bppchunkybmm::y#6 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::x#2 mode_8bppchunkybmm::gfxb#4 mode_8bppchunkybmm::$23 ] ( main:2::menu:9::mode_8bppchunkybmm:118 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::x#2 mode_8bppchunkybmm::gfxb#4 mode_8bppchunkybmm::$23 ] ) always clobbers reg byte a Statement [143] (byte) mode_8bppchunkybmm::c#0 ← ((byte)) (word~) mode_8bppchunkybmm::$23 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::x#2 mode_8bppchunkybmm::gfxb#4 mode_8bppchunkybmm::c#0 ] ( main:2::menu:9::mode_8bppchunkybmm:118 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::x#2 mode_8bppchunkybmm::gfxb#4 mode_8bppchunkybmm::c#0 ] ) always clobbers reg byte a Statement [144] *((byte*) mode_8bppchunkybmm::gfxb#4) ← (byte) mode_8bppchunkybmm::c#0 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::x#2 mode_8bppchunkybmm::gfxb#4 ] ( main:2::menu:9::mode_8bppchunkybmm:118 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::x#2 mode_8bppchunkybmm::gfxb#4 ] ) always clobbers reg byte y -Statement [147] if((word) mode_8bppchunkybmm::x#1!=(word/signed word/dword/signed dword) 320) goto mode_8bppchunkybmm::@3 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::gfxb#1 mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::x#1 ] ( main:2::menu:9::mode_8bppchunkybmm:118 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::gfxb#1 mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::x#1 ] ) always clobbers reg byte a -Statement [157] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto mode_ctrl::@4 [ dtv_control#114 ] ( main:2::menu:9::mode_8bppchunkybmm:118::mode_ctrl:153 [ dtv_control#114 ] main:2::menu:9::mode_8bpppixelcell:111::mode_ctrl:280 [ dtv_control#114 ] main:2::menu:9::mode_sixsfred:104::mode_ctrl:333 [ dtv_control#114 ] main:2::menu:9::mode_twoplanebitmap:97::mode_ctrl:391 [ dtv_control#114 ] main:2::menu:9::mode_sixsfred2:90::mode_ctrl:448 [ dtv_control#114 ] main:2::menu:9::mode_hicolmcchar:83::mode_ctrl:482 [ dtv_control#114 ] main:2::menu:9::mode_hicolecmchar:76::mode_ctrl:517 [ dtv_control#114 ] main:2::menu:9::mode_hicolstdchar:69::mode_ctrl:549 [ dtv_control#114 ] main:2::menu:9::mode_stdbitmap:62::mode_ctrl:590 [ dtv_control#114 ] main:2::menu:9::mode_mcchar:55::mode_ctrl:792 [ dtv_control#114 ] main:2::menu:9::mode_ecmchar:48::mode_ctrl:829 [ dtv_control#114 ] main:2::menu:9::mode_stdchar:40::mode_ctrl:863 [ dtv_control#114 ] ) always clobbers reg byte a +Statement [147] if((word) mode_8bppchunkybmm::x#1!=(word/signed word/dword/signed dword) $140) goto mode_8bppchunkybmm::@3 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::gfxb#1 mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::x#1 ] ( main:2::menu:9::mode_8bppchunkybmm:118 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::gfxb#1 mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::x#1 ] ) always clobbers reg byte a +Statement [157] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto mode_ctrl::@4 [ dtv_control#114 ] ( main:2::menu:9::mode_8bppchunkybmm:118::mode_ctrl:153 [ dtv_control#114 ] main:2::menu:9::mode_8bpppixelcell:111::mode_ctrl:280 [ dtv_control#114 ] main:2::menu:9::mode_sixsfred:104::mode_ctrl:333 [ dtv_control#114 ] main:2::menu:9::mode_twoplanebitmap:97::mode_ctrl:391 [ dtv_control#114 ] main:2::menu:9::mode_sixsfred2:90::mode_ctrl:448 [ dtv_control#114 ] main:2::menu:9::mode_hicolmcchar:83::mode_ctrl:482 [ dtv_control#114 ] main:2::menu:9::mode_hicolecmchar:76::mode_ctrl:517 [ dtv_control#114 ] main:2::menu:9::mode_hicolstdchar:69::mode_ctrl:549 [ dtv_control#114 ] main:2::menu:9::mode_stdbitmap:62::mode_ctrl:590 [ dtv_control#114 ] main:2::menu:9::mode_mcchar:55::mode_ctrl:792 [ dtv_control#114 ] main:2::menu:9::mode_ecmchar:48::mode_ctrl:829 [ dtv_control#114 ] main:2::menu:9::mode_stdchar:40::mode_ctrl:863 [ dtv_control#114 ] ) always clobbers reg byte a Statement [169] (byte) mode_ctrl::ctrl#1 ← (byte) mode_ctrl::ctrl#0 | (const byte) DTV_LINEAR#0 [ dtv_control#114 mode_ctrl::ctrl#1 ] ( main:2::menu:9::mode_8bppchunkybmm:118::mode_ctrl:153 [ dtv_control#114 mode_ctrl::ctrl#1 ] main:2::menu:9::mode_8bpppixelcell:111::mode_ctrl:280 [ dtv_control#114 mode_ctrl::ctrl#1 ] main:2::menu:9::mode_sixsfred:104::mode_ctrl:333 [ dtv_control#114 mode_ctrl::ctrl#1 ] main:2::menu:9::mode_twoplanebitmap:97::mode_ctrl:391 [ dtv_control#114 mode_ctrl::ctrl#1 ] main:2::menu:9::mode_sixsfred2:90::mode_ctrl:448 [ dtv_control#114 mode_ctrl::ctrl#1 ] main:2::menu:9::mode_hicolmcchar:83::mode_ctrl:482 [ dtv_control#114 mode_ctrl::ctrl#1 ] main:2::menu:9::mode_hicolecmchar:76::mode_ctrl:517 [ dtv_control#114 mode_ctrl::ctrl#1 ] main:2::menu:9::mode_hicolstdchar:69::mode_ctrl:549 [ dtv_control#114 mode_ctrl::ctrl#1 ] main:2::menu:9::mode_stdbitmap:62::mode_ctrl:590 [ dtv_control#114 mode_ctrl::ctrl#1 ] main:2::menu:9::mode_mcchar:55::mode_ctrl:792 [ dtv_control#114 mode_ctrl::ctrl#1 ] main:2::menu:9::mode_ecmchar:48::mode_ctrl:829 [ dtv_control#114 mode_ctrl::ctrl#1 ] main:2::menu:9::mode_stdchar:40::mode_ctrl:863 [ dtv_control#114 mode_ctrl::ctrl#1 ] ) always clobbers reg byte a Statement [175] (byte) mode_ctrl::ctrl#2 ← (byte) mode_ctrl::ctrl#17 | (const byte) DTV_HIGHCOLOR#0 [ dtv_control#114 mode_ctrl::ctrl#2 ] ( main:2::menu:9::mode_8bppchunkybmm:118::mode_ctrl:153 [ dtv_control#114 mode_ctrl::ctrl#2 ] main:2::menu:9::mode_8bpppixelcell:111::mode_ctrl:280 [ dtv_control#114 mode_ctrl::ctrl#2 ] main:2::menu:9::mode_sixsfred:104::mode_ctrl:333 [ dtv_control#114 mode_ctrl::ctrl#2 ] main:2::menu:9::mode_twoplanebitmap:97::mode_ctrl:391 [ dtv_control#114 mode_ctrl::ctrl#2 ] main:2::menu:9::mode_sixsfred2:90::mode_ctrl:448 [ dtv_control#114 mode_ctrl::ctrl#2 ] main:2::menu:9::mode_hicolmcchar:83::mode_ctrl:482 [ dtv_control#114 mode_ctrl::ctrl#2 ] main:2::menu:9::mode_hicolecmchar:76::mode_ctrl:517 [ dtv_control#114 mode_ctrl::ctrl#2 ] main:2::menu:9::mode_hicolstdchar:69::mode_ctrl:549 [ dtv_control#114 mode_ctrl::ctrl#2 ] main:2::menu:9::mode_stdbitmap:62::mode_ctrl:590 [ dtv_control#114 mode_ctrl::ctrl#2 ] main:2::menu:9::mode_mcchar:55::mode_ctrl:792 [ dtv_control#114 mode_ctrl::ctrl#2 ] main:2::menu:9::mode_ecmchar:48::mode_ctrl:829 [ dtv_control#114 mode_ctrl::ctrl#2 ] main:2::menu:9::mode_stdchar:40::mode_ctrl:863 [ dtv_control#114 mode_ctrl::ctrl#2 ] ) always clobbers reg byte a Statement [181] (byte) mode_ctrl::ctrl#3 ← (byte) mode_ctrl::ctrl#10 | (const byte) DTV_OVERSCAN#0 [ dtv_control#114 mode_ctrl::ctrl#3 ] ( main:2::menu:9::mode_8bppchunkybmm:118::mode_ctrl:153 [ dtv_control#114 mode_ctrl::ctrl#3 ] main:2::menu:9::mode_8bpppixelcell:111::mode_ctrl:280 [ dtv_control#114 mode_ctrl::ctrl#3 ] main:2::menu:9::mode_sixsfred:104::mode_ctrl:333 [ dtv_control#114 mode_ctrl::ctrl#3 ] main:2::menu:9::mode_twoplanebitmap:97::mode_ctrl:391 [ dtv_control#114 mode_ctrl::ctrl#3 ] main:2::menu:9::mode_sixsfred2:90::mode_ctrl:448 [ dtv_control#114 mode_ctrl::ctrl#3 ] main:2::menu:9::mode_hicolmcchar:83::mode_ctrl:482 [ dtv_control#114 mode_ctrl::ctrl#3 ] main:2::menu:9::mode_hicolecmchar:76::mode_ctrl:517 [ dtv_control#114 mode_ctrl::ctrl#3 ] main:2::menu:9::mode_hicolstdchar:69::mode_ctrl:549 [ dtv_control#114 mode_ctrl::ctrl#3 ] main:2::menu:9::mode_stdbitmap:62::mode_ctrl:590 [ dtv_control#114 mode_ctrl::ctrl#3 ] main:2::menu:9::mode_mcchar:55::mode_ctrl:792 [ dtv_control#114 mode_ctrl::ctrl#3 ] main:2::menu:9::mode_ecmchar:48::mode_ctrl:829 [ dtv_control#114 mode_ctrl::ctrl#3 ] main:2::menu:9::mode_stdchar:40::mode_ctrl:863 [ dtv_control#114 mode_ctrl::ctrl#3 ] ) always clobbers reg byte a @@ -18459,13 +18459,13 @@ Statement [239] *((const byte*) DTV_PLANEB_STEP#0) ← (byte/signed byte/word/si Statement [240] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_8bpppixelcell:111 [ ] ) always clobbers reg byte a Statement [241] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_8bpppixelcell:111 [ ] ) always clobbers reg byte a Statement [242] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_8bpppixelcell:111 [ ] ) always clobbers reg byte a -Statement [249] (byte~) mode_8bpppixelcell::$13 ← (byte) mode_8bpppixelcell::ay#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ax#2 mode_8bpppixelcell::gfxa#2 mode_8bpppixelcell::$13 ] ( main:2::menu:9::mode_8bpppixelcell:111 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ax#2 mode_8bpppixelcell::gfxa#2 mode_8bpppixelcell::$13 ] ) always clobbers reg byte a +Statement [249] (byte~) mode_8bpppixelcell::$13 ← (byte) mode_8bpppixelcell::ay#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ax#2 mode_8bpppixelcell::gfxa#2 mode_8bpppixelcell::$13 ] ( main:2::menu:9::mode_8bpppixelcell:111 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ax#2 mode_8bpppixelcell::gfxa#2 mode_8bpppixelcell::$13 ] ) always clobbers reg byte a Statement [250] (byte~) mode_8bpppixelcell::$14 ← (byte~) mode_8bpppixelcell::$13 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ax#2 mode_8bpppixelcell::gfxa#2 mode_8bpppixelcell::$14 ] ( main:2::menu:9::mode_8bpppixelcell:111 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ax#2 mode_8bpppixelcell::gfxa#2 mode_8bpppixelcell::$14 ] ) always clobbers reg byte a -Statement [251] (byte~) mode_8bpppixelcell::$15 ← (byte) mode_8bpppixelcell::ax#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ax#2 mode_8bpppixelcell::gfxa#2 mode_8bpppixelcell::$14 mode_8bpppixelcell::$15 ] ( main:2::menu:9::mode_8bpppixelcell:111 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ax#2 mode_8bpppixelcell::gfxa#2 mode_8bpppixelcell::$14 mode_8bpppixelcell::$15 ] ) always clobbers reg byte a +Statement [251] (byte~) mode_8bpppixelcell::$15 ← (byte) mode_8bpppixelcell::ax#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ax#2 mode_8bpppixelcell::gfxa#2 mode_8bpppixelcell::$14 mode_8bpppixelcell::$15 ] ( main:2::menu:9::mode_8bpppixelcell:111 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ax#2 mode_8bpppixelcell::gfxa#2 mode_8bpppixelcell::$14 mode_8bpppixelcell::$15 ] ) always clobbers reg byte a Statement [253] *((byte*) mode_8bpppixelcell::gfxa#2) ← (byte~) mode_8bpppixelcell::$16 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ax#2 mode_8bpppixelcell::gfxa#2 ] ( main:2::menu:9::mode_8bpppixelcell:111 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ax#2 mode_8bpppixelcell::gfxa#2 ] ) always clobbers reg byte y Statement [259] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_CHARROM#0 [ ] ( main:2::menu:9::mode_8bpppixelcell:111 [ ] ) always clobbers reg byte a Statement [262] (byte) mode_8bpppixelcell::bits#0 ← *((byte*) mode_8bpppixelcell::chargen#2) [ mode_8bpppixelcell::ch#8 mode_8bpppixelcell::chargen#2 mode_8bpppixelcell::gfxb#5 mode_8bpppixelcell::col#5 mode_8bpppixelcell::cr#6 mode_8bpppixelcell::bits#0 ] ( main:2::menu:9::mode_8bpppixelcell:111 [ mode_8bpppixelcell::ch#8 mode_8bpppixelcell::chargen#2 mode_8bpppixelcell::gfxb#5 mode_8bpppixelcell::col#5 mode_8bpppixelcell::cr#6 mode_8bpppixelcell::bits#0 ] ) always clobbers reg byte a reg byte y -Statement [265] (byte~) mode_8bpppixelcell::$19 ← (byte) mode_8bpppixelcell::bits#2 & (byte/word/signed word/dword/signed dword) 128 [ mode_8bpppixelcell::ch#8 mode_8bpppixelcell::chargen#1 mode_8bpppixelcell::cr#6 mode_8bpppixelcell::bits#2 mode_8bpppixelcell::gfxb#2 mode_8bpppixelcell::col#2 mode_8bpppixelcell::cp#2 mode_8bpppixelcell::$19 ] ( main:2::menu:9::mode_8bpppixelcell:111 [ mode_8bpppixelcell::ch#8 mode_8bpppixelcell::chargen#1 mode_8bpppixelcell::cr#6 mode_8bpppixelcell::bits#2 mode_8bpppixelcell::gfxb#2 mode_8bpppixelcell::col#2 mode_8bpppixelcell::cp#2 mode_8bpppixelcell::$19 ] ) always clobbers reg byte a +Statement [265] (byte~) mode_8bpppixelcell::$19 ← (byte) mode_8bpppixelcell::bits#2 & (byte/word/signed word/dword/signed dword) $80 [ mode_8bpppixelcell::ch#8 mode_8bpppixelcell::chargen#1 mode_8bpppixelcell::cr#6 mode_8bpppixelcell::bits#2 mode_8bpppixelcell::gfxb#2 mode_8bpppixelcell::col#2 mode_8bpppixelcell::cp#2 mode_8bpppixelcell::$19 ] ( main:2::menu:9::mode_8bpppixelcell:111 [ mode_8bpppixelcell::ch#8 mode_8bpppixelcell::chargen#1 mode_8bpppixelcell::cr#6 mode_8bpppixelcell::bits#2 mode_8bpppixelcell::gfxb#2 mode_8bpppixelcell::col#2 mode_8bpppixelcell::cp#2 mode_8bpppixelcell::$19 ] ) always clobbers reg byte a Statement [269] *((byte*) mode_8bpppixelcell::gfxb#2) ← (byte) mode_8bpppixelcell::c#2 [ mode_8bpppixelcell::ch#8 mode_8bpppixelcell::chargen#1 mode_8bpppixelcell::cr#6 mode_8bpppixelcell::bits#2 mode_8bpppixelcell::gfxb#2 mode_8bpppixelcell::col#2 mode_8bpppixelcell::cp#2 ] ( main:2::menu:9::mode_8bpppixelcell:111 [ mode_8bpppixelcell::ch#8 mode_8bpppixelcell::chargen#1 mode_8bpppixelcell::cr#6 mode_8bpppixelcell::bits#2 mode_8bpppixelcell::gfxb#2 mode_8bpppixelcell::col#2 mode_8bpppixelcell::cp#2 ] ) always clobbers reg byte y Statement [279] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:2::menu:9::mode_8bpppixelcell:111 [ ] ) always clobbers reg byte a Statement [282] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0 [ ] ( main:2::menu:9::mode_sixsfred:104 [ ] ) always clobbers reg byte a @@ -18483,16 +18483,16 @@ Statement [293] *((const byte*) DTV_PLANEB_START_HI#0) ← (byte/signed byte/wor Statement [294] *((const byte*) DTV_PLANEB_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2::menu:9::mode_sixsfred:104 [ ] ) always clobbers reg byte a Statement [295] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_sixsfred:104 [ ] ) always clobbers reg byte a Statement [296] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_sixsfred:104 [ ] ) always clobbers reg byte a -Statement [297] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_sixsfred:104 [ ] ) always clobbers reg byte a -Statement [298] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_sixsfred:104 [ ] ) always clobbers reg byte a +Statement [297] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_sixsfred:104 [ ] ) always clobbers reg byte a +Statement [298] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_sixsfred:104 [ ] ) always clobbers reg byte a Statement [303] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_sixsfred:104 [ ] ) always clobbers reg byte a Statement [306] (byte~) mode_sixsfred::$16 ← (byte) mode_sixsfred::cx#2 + (byte) mode_sixsfred::cy#4 [ mode_sixsfred::cy#4 mode_sixsfred::cx#2 mode_sixsfred::col#2 mode_sixsfred::$16 ] ( main:2::menu:9::mode_sixsfred:104 [ mode_sixsfred::cy#4 mode_sixsfred::cx#2 mode_sixsfred::col#2 mode_sixsfred::$16 ] ) always clobbers reg byte a -Statement [307] (byte~) mode_sixsfred::$17 ← (byte~) mode_sixsfred::$16 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_sixsfred::cy#4 mode_sixsfred::cx#2 mode_sixsfred::col#2 mode_sixsfred::$17 ] ( main:2::menu:9::mode_sixsfred:104 [ mode_sixsfred::cy#4 mode_sixsfred::cx#2 mode_sixsfred::col#2 mode_sixsfred::$17 ] ) always clobbers reg byte a +Statement [307] (byte~) mode_sixsfred::$17 ← (byte~) mode_sixsfred::$16 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_sixsfred::cy#4 mode_sixsfred::cx#2 mode_sixsfred::col#2 mode_sixsfred::$17 ] ( main:2::menu:9::mode_sixsfred:104 [ mode_sixsfred::cy#4 mode_sixsfred::cx#2 mode_sixsfred::col#2 mode_sixsfred::$17 ] ) always clobbers reg byte a Statement [308] *((byte*) mode_sixsfred::col#2) ← (byte~) mode_sixsfred::$17 [ mode_sixsfred::cy#4 mode_sixsfred::cx#2 mode_sixsfred::col#2 ] ( main:2::menu:9::mode_sixsfred:104 [ mode_sixsfred::cy#4 mode_sixsfred::cx#2 mode_sixsfred::col#2 ] ) always clobbers reg byte y Statement [316] (byte~) mode_sixsfred::$20 ← (byte) mode_sixsfred::ay#4 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ mode_sixsfred::ay#4 mode_sixsfred::gfxa#2 mode_sixsfred::ax#2 mode_sixsfred::$20 ] ( main:2::menu:9::mode_sixsfred:104 [ mode_sixsfred::ay#4 mode_sixsfred::gfxa#2 mode_sixsfred::ax#2 mode_sixsfred::$20 ] ) always clobbers reg byte a Statement [317] (byte) mode_sixsfred::row#0 ← (byte~) mode_sixsfred::$20 & (byte/signed byte/word/signed word/dword/signed dword) 3 [ mode_sixsfred::ay#4 mode_sixsfred::gfxa#2 mode_sixsfred::ax#2 mode_sixsfred::row#0 ] ( main:2::menu:9::mode_sixsfred:104 [ mode_sixsfred::ay#4 mode_sixsfred::gfxa#2 mode_sixsfred::ax#2 mode_sixsfred::row#0 ] ) always clobbers reg byte a Statement [318] *((byte*) mode_sixsfred::gfxa#2) ← *((const byte[]) mode_sixsfred::row_bitmask#0 + (byte) mode_sixsfred::row#0) [ mode_sixsfred::ay#4 mode_sixsfred::gfxa#2 mode_sixsfred::ax#2 ] ( main:2::menu:9::mode_sixsfred:104 [ mode_sixsfred::ay#4 mode_sixsfred::gfxa#2 mode_sixsfred::ax#2 ] ) always clobbers reg byte a reg byte y -Statement [326] *((byte*) mode_sixsfred::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 27 [ mode_sixsfred::by#4 mode_sixsfred::gfxb#2 mode_sixsfred::bx#2 ] ( main:2::menu:9::mode_sixsfred:104 [ mode_sixsfred::by#4 mode_sixsfred::gfxb#2 mode_sixsfred::bx#2 ] ) always clobbers reg byte a reg byte y +Statement [326] *((byte*) mode_sixsfred::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $1b [ mode_sixsfred::by#4 mode_sixsfred::gfxb#2 mode_sixsfred::bx#2 ] ( main:2::menu:9::mode_sixsfred:104 [ mode_sixsfred::by#4 mode_sixsfred::gfxb#2 mode_sixsfred::bx#2 ] ) always clobbers reg byte a reg byte y Statement [335] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0 [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] ) always clobbers reg byte a Statement [336] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_ECM#0|(const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] ) always clobbers reg byte a Statement [337] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] ) always clobbers reg byte a @@ -18508,18 +18508,18 @@ Statement [346] *((const byte*) DTV_PLANEB_START_HI#0) ← (byte/signed byte/wor Statement [347] *((const byte*) DTV_PLANEB_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] ) always clobbers reg byte a Statement [348] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] ) always clobbers reg byte a Statement [349] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] ) always clobbers reg byte a -Statement [350] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] ) always clobbers reg byte a -Statement [351] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] ) always clobbers reg byte a +Statement [350] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] ) always clobbers reg byte a +Statement [351] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] ) always clobbers reg byte a Statement [356] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] ) always clobbers reg byte a -Statement [357] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 112 [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] ) always clobbers reg byte a -Statement [358] *((const byte*) BGCOL2#0) ← (byte/word/signed word/dword/signed dword) 212 [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] ) always clobbers reg byte a -Statement [361] (byte~) mode_twoplanebitmap::$15 ← (byte) mode_twoplanebitmap::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cx#2 mode_twoplanebitmap::col#2 mode_twoplanebitmap::$15 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cx#2 mode_twoplanebitmap::col#2 mode_twoplanebitmap::$15 ] ) always clobbers reg byte a +Statement [357] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) $70 [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] ) always clobbers reg byte a +Statement [358] *((const byte*) BGCOL2#0) ← (byte/word/signed word/dword/signed dword) $d4 [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] ) always clobbers reg byte a +Statement [361] (byte~) mode_twoplanebitmap::$15 ← (byte) mode_twoplanebitmap::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cx#2 mode_twoplanebitmap::col#2 mode_twoplanebitmap::$15 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cx#2 mode_twoplanebitmap::col#2 mode_twoplanebitmap::$15 ] ) always clobbers reg byte a Statement [362] (byte~) mode_twoplanebitmap::$16 ← (byte~) mode_twoplanebitmap::$15 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cx#2 mode_twoplanebitmap::col#2 mode_twoplanebitmap::$16 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cx#2 mode_twoplanebitmap::col#2 mode_twoplanebitmap::$16 ] ) always clobbers reg byte a -Statement [363] (byte~) mode_twoplanebitmap::$17 ← (byte) mode_twoplanebitmap::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cx#2 mode_twoplanebitmap::col#2 mode_twoplanebitmap::$16 mode_twoplanebitmap::$17 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cx#2 mode_twoplanebitmap::col#2 mode_twoplanebitmap::$16 mode_twoplanebitmap::$17 ] ) always clobbers reg byte a +Statement [363] (byte~) mode_twoplanebitmap::$17 ← (byte) mode_twoplanebitmap::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cx#2 mode_twoplanebitmap::col#2 mode_twoplanebitmap::$16 mode_twoplanebitmap::$17 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cx#2 mode_twoplanebitmap::col#2 mode_twoplanebitmap::$16 mode_twoplanebitmap::$17 ] ) always clobbers reg byte a Statement [365] *((byte*) mode_twoplanebitmap::col#2) ← (byte~) mode_twoplanebitmap::$18 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cx#2 mode_twoplanebitmap::col#2 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cx#2 mode_twoplanebitmap::col#2 ] ) always clobbers reg byte y Statement [373] (byte~) mode_twoplanebitmap::$21 ← (byte) mode_twoplanebitmap::ay#4 & (byte/signed byte/word/signed word/dword/signed dword) 4 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 mode_twoplanebitmap::$21 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 mode_twoplanebitmap::$21 ] ) always clobbers reg byte a -Statement [375] *((byte*) mode_twoplanebitmap::gfxa#3) ← (byte/word/signed word/dword/signed dword) 255 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ) always clobbers reg byte a reg byte y -Statement [384] *((byte*) mode_twoplanebitmap::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::bx#2 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::bx#2 ] ) always clobbers reg byte a reg byte y +Statement [375] *((byte*) mode_twoplanebitmap::gfxa#3) ← (byte/word/signed word/dword/signed dword) $ff [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ) always clobbers reg byte a reg byte y +Statement [384] *((byte*) mode_twoplanebitmap::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::bx#2 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::bx#2 ] ) always clobbers reg byte a reg byte y Statement [393] *((byte*) mode_twoplanebitmap::gfxa#3) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ) always clobbers reg byte a reg byte y Statement [395] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_LINEAR#0 [ ] ( main:2::menu:9::mode_sixsfred2:90 [ ] ) always clobbers reg byte a Statement [396] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_ECM#0|(const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_sixsfred2:90 [ ] ) always clobbers reg byte a @@ -18536,8 +18536,8 @@ Statement [406] *((const byte*) DTV_PLANEB_START_HI#0) ← (byte/signed byte/wor Statement [407] *((const byte*) DTV_PLANEB_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2::menu:9::mode_sixsfred2:90 [ ] ) always clobbers reg byte a Statement [408] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_sixsfred2:90 [ ] ) always clobbers reg byte a Statement [409] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_sixsfred2:90 [ ] ) always clobbers reg byte a -Statement [410] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_sixsfred2:90 [ ] ) always clobbers reg byte a -Statement [411] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_sixsfred2:90 [ ] ) always clobbers reg byte a +Statement [410] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_sixsfred2:90 [ ] ) always clobbers reg byte a +Statement [411] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_sixsfred2:90 [ ] ) always clobbers reg byte a Statement [416] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_sixsfred2:90 [ ] ) always clobbers reg byte a Statement [419] (byte~) mode_sixsfred2::$14 ← (byte) mode_sixsfred2::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 3 [ mode_sixsfred2::cy#4 mode_sixsfred2::cx#2 mode_sixsfred2::col#2 mode_sixsfred2::$14 ] ( main:2::menu:9::mode_sixsfred2:90 [ mode_sixsfred2::cy#4 mode_sixsfred2::cx#2 mode_sixsfred2::col#2 mode_sixsfred2::$14 ] ) always clobbers reg byte a Statement [420] (byte~) mode_sixsfred2::$15 ← (byte~) mode_sixsfred2::$14 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ mode_sixsfred2::cy#4 mode_sixsfred2::cx#2 mode_sixsfred2::col#2 mode_sixsfred2::$15 ] ( main:2::menu:9::mode_sixsfred2:90 [ mode_sixsfred2::cy#4 mode_sixsfred2::cx#2 mode_sixsfred2::col#2 mode_sixsfred2::$15 ] ) always clobbers reg byte a @@ -18546,73 +18546,73 @@ Statement [423] *((byte*) mode_sixsfred2::col#2) ← (byte~) mode_sixsfred2::$17 Statement [431] (byte~) mode_sixsfred2::$20 ← (byte) mode_sixsfred2::ay#4 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ mode_sixsfred2::ay#4 mode_sixsfred2::gfxa#2 mode_sixsfred2::ax#2 mode_sixsfred2::$20 ] ( main:2::menu:9::mode_sixsfred2:90 [ mode_sixsfred2::ay#4 mode_sixsfred2::gfxa#2 mode_sixsfred2::ax#2 mode_sixsfred2::$20 ] ) always clobbers reg byte a Statement [432] (byte) mode_sixsfred2::row#0 ← (byte~) mode_sixsfred2::$20 & (byte/signed byte/word/signed word/dword/signed dword) 3 [ mode_sixsfred2::ay#4 mode_sixsfred2::gfxa#2 mode_sixsfred2::ax#2 mode_sixsfred2::row#0 ] ( main:2::menu:9::mode_sixsfred2:90 [ mode_sixsfred2::ay#4 mode_sixsfred2::gfxa#2 mode_sixsfred2::ax#2 mode_sixsfred2::row#0 ] ) always clobbers reg byte a Statement [433] *((byte*) mode_sixsfred2::gfxa#2) ← *((const byte[]) mode_sixsfred2::row_bitmask#0 + (byte) mode_sixsfred2::row#0) [ mode_sixsfred2::ay#4 mode_sixsfred2::gfxa#2 mode_sixsfred2::ax#2 ] ( main:2::menu:9::mode_sixsfred2:90 [ mode_sixsfred2::ay#4 mode_sixsfred2::gfxa#2 mode_sixsfred2::ax#2 ] ) always clobbers reg byte a reg byte y -Statement [441] *((byte*) mode_sixsfred2::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 27 [ mode_sixsfred2::by#4 mode_sixsfred2::gfxb#2 mode_sixsfred2::bx#2 ] ( main:2::menu:9::mode_sixsfred2:90 [ mode_sixsfred2::by#4 mode_sixsfred2::gfxb#2 mode_sixsfred2::bx#2 ] ) always clobbers reg byte a reg byte y -Statement [450] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolmcchar::CHARSET#0/(dword/signed dword) 65536 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a -Statement [451] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a -Statement [452] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a +Statement [441] *((byte*) mode_sixsfred2::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $1b [ mode_sixsfred2::by#4 mode_sixsfred2::gfxb#2 mode_sixsfred2::bx#2 ] ( main:2::menu:9::mode_sixsfred2:90 [ mode_sixsfred2::by#4 mode_sixsfred2::gfxb#2 mode_sixsfred2::bx#2 ] ) always clobbers reg byte a reg byte y +Statement [450] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolmcchar::CHARSET#0/(dword/signed dword) $10000 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a +Statement [451] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a +Statement [452] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a Statement [453] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a Statement [454] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a -Statement [455] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolmcchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a +Statement [455] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolmcchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a Statement [456] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a Statement [457] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0|(const byte) VIC_MCM#0 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a -Statement [458] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolmcchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_hicolmcchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a +Statement [458] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolmcchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_hicolmcchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a Statement [463] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a -Statement [464] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 80 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a -Statement [465] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 84 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a -Statement [466] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) 88 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a -Statement [469] (byte~) mode_hicolmcchar::$25 ← (byte) mode_hicolmcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cx#2 mode_hicolmcchar::col#2 mode_hicolmcchar::ch#2 mode_hicolmcchar::$25 ] ( main:2::menu:9::mode_hicolmcchar:83 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cx#2 mode_hicolmcchar::col#2 mode_hicolmcchar::ch#2 mode_hicolmcchar::$25 ] ) always clobbers reg byte a +Statement [464] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) $50 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a +Statement [465] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) $54 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a +Statement [466] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) $58 [ ] ( main:2::menu:9::mode_hicolmcchar:83 [ ] ) always clobbers reg byte a +Statement [469] (byte~) mode_hicolmcchar::$25 ← (byte) mode_hicolmcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cx#2 mode_hicolmcchar::col#2 mode_hicolmcchar::ch#2 mode_hicolmcchar::$25 ] ( main:2::menu:9::mode_hicolmcchar:83 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cx#2 mode_hicolmcchar::col#2 mode_hicolmcchar::ch#2 mode_hicolmcchar::$25 ] ) always clobbers reg byte a Statement [470] (byte~) mode_hicolmcchar::$26 ← (byte~) mode_hicolmcchar::$25 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cx#2 mode_hicolmcchar::col#2 mode_hicolmcchar::ch#2 mode_hicolmcchar::$26 ] ( main:2::menu:9::mode_hicolmcchar:83 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cx#2 mode_hicolmcchar::col#2 mode_hicolmcchar::ch#2 mode_hicolmcchar::$26 ] ) always clobbers reg byte a -Statement [471] (byte~) mode_hicolmcchar::$27 ← (byte) mode_hicolmcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cx#2 mode_hicolmcchar::col#2 mode_hicolmcchar::ch#2 mode_hicolmcchar::$26 mode_hicolmcchar::$27 ] ( main:2::menu:9::mode_hicolmcchar:83 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cx#2 mode_hicolmcchar::col#2 mode_hicolmcchar::ch#2 mode_hicolmcchar::$26 mode_hicolmcchar::$27 ] ) always clobbers reg byte a +Statement [471] (byte~) mode_hicolmcchar::$27 ← (byte) mode_hicolmcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cx#2 mode_hicolmcchar::col#2 mode_hicolmcchar::ch#2 mode_hicolmcchar::$26 mode_hicolmcchar::$27 ] ( main:2::menu:9::mode_hicolmcchar:83 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cx#2 mode_hicolmcchar::col#2 mode_hicolmcchar::ch#2 mode_hicolmcchar::$26 mode_hicolmcchar::$27 ] ) always clobbers reg byte a Statement [473] *((byte*) mode_hicolmcchar::col#2) ← (byte) mode_hicolmcchar::v#0 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cx#2 mode_hicolmcchar::col#2 mode_hicolmcchar::ch#2 mode_hicolmcchar::v#0 ] ( main:2::menu:9::mode_hicolmcchar:83 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cx#2 mode_hicolmcchar::col#2 mode_hicolmcchar::ch#2 mode_hicolmcchar::v#0 ] ) always clobbers reg byte y Statement [475] *((byte*) mode_hicolmcchar::ch#2) ← (byte) mode_hicolmcchar::v#0 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::col#1 mode_hicolmcchar::cx#2 mode_hicolmcchar::ch#2 ] ( main:2::menu:9::mode_hicolmcchar:83 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::col#1 mode_hicolmcchar::cx#2 mode_hicolmcchar::ch#2 ] ) always clobbers reg byte y -Statement [484] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolecmchar::CHARSET#0/(dword/signed dword) 65536 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a -Statement [485] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a -Statement [486] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a +Statement [484] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolecmchar::CHARSET#0/(dword/signed dword) $10000 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a +Statement [485] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a +Statement [486] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a Statement [487] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a Statement [488] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a -Statement [489] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolecmchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a +Statement [489] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolecmchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a Statement [490] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(const byte) VIC_ECM#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a Statement [491] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a -Statement [492] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolecmchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_hicolecmchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a +Statement [492] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolecmchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_hicolecmchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a Statement [497] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a -Statement [498] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 80 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a -Statement [499] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 84 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a -Statement [500] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) 88 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a -Statement [501] *((const byte*) BGCOL4#0) ← (byte/signed byte/word/signed word/dword/signed dword) 92 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a -Statement [504] (byte~) mode_hicolecmchar::$25 ← (byte) mode_hicolecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cx#2 mode_hicolecmchar::col#2 mode_hicolecmchar::ch#2 mode_hicolecmchar::$25 ] ( main:2::menu:9::mode_hicolecmchar:76 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cx#2 mode_hicolecmchar::col#2 mode_hicolecmchar::ch#2 mode_hicolecmchar::$25 ] ) always clobbers reg byte a +Statement [498] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) $50 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a +Statement [499] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) $54 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a +Statement [500] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) $58 [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a +Statement [501] *((const byte*) BGCOL4#0) ← (byte/signed byte/word/signed word/dword/signed dword) $5c [ ] ( main:2::menu:9::mode_hicolecmchar:76 [ ] ) always clobbers reg byte a +Statement [504] (byte~) mode_hicolecmchar::$25 ← (byte) mode_hicolecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cx#2 mode_hicolecmchar::col#2 mode_hicolecmchar::ch#2 mode_hicolecmchar::$25 ] ( main:2::menu:9::mode_hicolecmchar:76 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cx#2 mode_hicolecmchar::col#2 mode_hicolecmchar::ch#2 mode_hicolecmchar::$25 ] ) always clobbers reg byte a Statement [505] (byte~) mode_hicolecmchar::$26 ← (byte~) mode_hicolecmchar::$25 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cx#2 mode_hicolecmchar::col#2 mode_hicolecmchar::ch#2 mode_hicolecmchar::$26 ] ( main:2::menu:9::mode_hicolecmchar:76 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cx#2 mode_hicolecmchar::col#2 mode_hicolecmchar::ch#2 mode_hicolecmchar::$26 ] ) always clobbers reg byte a -Statement [506] (byte~) mode_hicolecmchar::$27 ← (byte) mode_hicolecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cx#2 mode_hicolecmchar::col#2 mode_hicolecmchar::ch#2 mode_hicolecmchar::$26 mode_hicolecmchar::$27 ] ( main:2::menu:9::mode_hicolecmchar:76 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cx#2 mode_hicolecmchar::col#2 mode_hicolecmchar::ch#2 mode_hicolecmchar::$26 mode_hicolecmchar::$27 ] ) always clobbers reg byte a +Statement [506] (byte~) mode_hicolecmchar::$27 ← (byte) mode_hicolecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cx#2 mode_hicolecmchar::col#2 mode_hicolecmchar::ch#2 mode_hicolecmchar::$26 mode_hicolecmchar::$27 ] ( main:2::menu:9::mode_hicolecmchar:76 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cx#2 mode_hicolecmchar::col#2 mode_hicolecmchar::ch#2 mode_hicolecmchar::$26 mode_hicolecmchar::$27 ] ) always clobbers reg byte a Statement [508] *((byte*) mode_hicolecmchar::col#2) ← (byte) mode_hicolecmchar::v#0 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cx#2 mode_hicolecmchar::col#2 mode_hicolecmchar::ch#2 mode_hicolecmchar::v#0 ] ( main:2::menu:9::mode_hicolecmchar:76 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cx#2 mode_hicolecmchar::col#2 mode_hicolecmchar::ch#2 mode_hicolecmchar::v#0 ] ) always clobbers reg byte y Statement [510] *((byte*) mode_hicolecmchar::ch#2) ← (byte) mode_hicolecmchar::v#0 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::col#1 mode_hicolecmchar::cx#2 mode_hicolecmchar::ch#2 ] ( main:2::menu:9::mode_hicolecmchar:76 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::col#1 mode_hicolecmchar::cx#2 mode_hicolecmchar::ch#2 ] ) always clobbers reg byte y -Statement [519] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolstdchar::CHARSET#0/(dword/signed dword) 65536 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a -Statement [520] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a -Statement [521] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a +Statement [519] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolstdchar::CHARSET#0/(dword/signed dword) $10000 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a +Statement [520] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a +Statement [521] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a Statement [522] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a Statement [523] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a -Statement [524] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolstdchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a +Statement [524] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolstdchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a Statement [525] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a Statement [526] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a -Statement [527] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolstdchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_hicolstdchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a +Statement [527] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolstdchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_hicolstdchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a Statement [532] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a Statement [533] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_hicolstdchar:69 [ ] ) always clobbers reg byte a -Statement [536] (byte~) mode_hicolstdchar::$24 ← (byte) mode_hicolstdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cx#2 mode_hicolstdchar::col#2 mode_hicolstdchar::ch#2 mode_hicolstdchar::$24 ] ( main:2::menu:9::mode_hicolstdchar:69 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cx#2 mode_hicolstdchar::col#2 mode_hicolstdchar::ch#2 mode_hicolstdchar::$24 ] ) always clobbers reg byte a +Statement [536] (byte~) mode_hicolstdchar::$24 ← (byte) mode_hicolstdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cx#2 mode_hicolstdchar::col#2 mode_hicolstdchar::ch#2 mode_hicolstdchar::$24 ] ( main:2::menu:9::mode_hicolstdchar:69 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cx#2 mode_hicolstdchar::col#2 mode_hicolstdchar::ch#2 mode_hicolstdchar::$24 ] ) always clobbers reg byte a Statement [537] (byte~) mode_hicolstdchar::$25 ← (byte~) mode_hicolstdchar::$24 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cx#2 mode_hicolstdchar::col#2 mode_hicolstdchar::ch#2 mode_hicolstdchar::$25 ] ( main:2::menu:9::mode_hicolstdchar:69 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cx#2 mode_hicolstdchar::col#2 mode_hicolstdchar::ch#2 mode_hicolstdchar::$25 ] ) always clobbers reg byte a -Statement [538] (byte~) mode_hicolstdchar::$26 ← (byte) mode_hicolstdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cx#2 mode_hicolstdchar::col#2 mode_hicolstdchar::ch#2 mode_hicolstdchar::$25 mode_hicolstdchar::$26 ] ( main:2::menu:9::mode_hicolstdchar:69 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cx#2 mode_hicolstdchar::col#2 mode_hicolstdchar::ch#2 mode_hicolstdchar::$25 mode_hicolstdchar::$26 ] ) always clobbers reg byte a +Statement [538] (byte~) mode_hicolstdchar::$26 ← (byte) mode_hicolstdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cx#2 mode_hicolstdchar::col#2 mode_hicolstdchar::ch#2 mode_hicolstdchar::$25 mode_hicolstdchar::$26 ] ( main:2::menu:9::mode_hicolstdchar:69 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cx#2 mode_hicolstdchar::col#2 mode_hicolstdchar::ch#2 mode_hicolstdchar::$25 mode_hicolstdchar::$26 ] ) always clobbers reg byte a Statement [540] *((byte*) mode_hicolstdchar::col#2) ← (byte) mode_hicolstdchar::v#0 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cx#2 mode_hicolstdchar::col#2 mode_hicolstdchar::ch#2 mode_hicolstdchar::v#0 ] ( main:2::menu:9::mode_hicolstdchar:69 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cx#2 mode_hicolstdchar::col#2 mode_hicolstdchar::ch#2 mode_hicolstdchar::v#0 ] ) always clobbers reg byte y Statement [542] *((byte*) mode_hicolstdchar::ch#2) ← (byte) mode_hicolstdchar::v#0 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::col#1 mode_hicolstdchar::cx#2 mode_hicolstdchar::ch#2 ] ( main:2::menu:9::mode_hicolstdchar:69 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::col#1 mode_hicolstdchar::cx#2 mode_hicolstdchar::ch#2 ] ) always clobbers reg byte y -Statement [551] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdbitmap::BITMAP#0/(dword/signed dword) 65536 [ ] ( main:2::menu:9::mode_stdbitmap:62 [ ] ) always clobbers reg byte a +Statement [551] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdbitmap::BITMAP#0/(dword/signed dword) $10000 [ ] ( main:2::menu:9::mode_stdbitmap:62 [ ] ) always clobbers reg byte a Statement [552] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_stdbitmap:62 [ ] ) always clobbers reg byte a Statement [553] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_stdbitmap:62 [ ] ) always clobbers reg byte a -Statement [554] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdbitmap::BITMAP#0/(word/signed word/dword/signed dword) 16384 [ ] ( main:2::menu:9::mode_stdbitmap:62 [ ] ) always clobbers reg byte a +Statement [554] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdbitmap::BITMAP#0/(word/signed word/dword/signed dword) $4000 [ ] ( main:2::menu:9::mode_stdbitmap:62 [ ] ) always clobbers reg byte a Statement [555] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_stdbitmap:62 [ ] ) always clobbers reg byte a Statement [556] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ ] ( main:2::menu:9::mode_stdbitmap:62 [ ] ) always clobbers reg byte a -Statement [557] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdbitmap::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_stdbitmap::BITMAP#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_stdbitmap:62 [ ] ) always clobbers reg byte a -Statement [559] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdbitmap::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdbitmap::i#2) [ mode_stdbitmap::i#2 ] ( main:2::menu:9::mode_stdbitmap:62 [ mode_stdbitmap::i#2 ] ) always clobbers reg byte a +Statement [557] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdbitmap::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_stdbitmap::BITMAP#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_stdbitmap:62 [ ] ) always clobbers reg byte a +Statement [559] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdbitmap::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdbitmap::i#2) [ mode_stdbitmap::i#2 ] ( main:2::menu:9::mode_stdbitmap:62 [ mode_stdbitmap::i#2 ] ) always clobbers reg byte a Statement [562] *((const byte*) BGCOL#0) ← (const byte) BLACK#0 [ ] ( main:2::menu:9::mode_stdbitmap:62 [ ] ) always clobbers reg byte a Statement [563] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( main:2::menu:9::mode_stdbitmap:62 [ ] ) always clobbers reg byte a Statement [566] (byte~) mode_stdbitmap::$19 ← (byte) mode_stdbitmap::cx#2 + (byte) mode_stdbitmap::cy#4 [ mode_stdbitmap::cy#4 mode_stdbitmap::cx#2 mode_stdbitmap::ch#2 mode_stdbitmap::$19 ] ( main:2::menu:9::mode_stdbitmap:62 [ mode_stdbitmap::cy#4 mode_stdbitmap::cx#2 mode_stdbitmap::ch#2 mode_stdbitmap::$19 ] ) always clobbers reg byte a -Statement [567] (byte) mode_stdbitmap::col#0 ← (byte~) mode_stdbitmap::$19 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_stdbitmap::cy#4 mode_stdbitmap::cx#2 mode_stdbitmap::ch#2 mode_stdbitmap::col#0 ] ( main:2::menu:9::mode_stdbitmap:62 [ mode_stdbitmap::cy#4 mode_stdbitmap::cx#2 mode_stdbitmap::ch#2 mode_stdbitmap::col#0 ] ) always clobbers reg byte a -Statement [568] (byte) mode_stdbitmap::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) mode_stdbitmap::col#0 [ mode_stdbitmap::cy#4 mode_stdbitmap::cx#2 mode_stdbitmap::ch#2 mode_stdbitmap::col#0 mode_stdbitmap::col2#0 ] ( main:2::menu:9::mode_stdbitmap:62 [ mode_stdbitmap::cy#4 mode_stdbitmap::cx#2 mode_stdbitmap::ch#2 mode_stdbitmap::col#0 mode_stdbitmap::col2#0 ] ) always clobbers reg byte a +Statement [567] (byte) mode_stdbitmap::col#0 ← (byte~) mode_stdbitmap::$19 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_stdbitmap::cy#4 mode_stdbitmap::cx#2 mode_stdbitmap::ch#2 mode_stdbitmap::col#0 ] ( main:2::menu:9::mode_stdbitmap:62 [ mode_stdbitmap::cy#4 mode_stdbitmap::cx#2 mode_stdbitmap::ch#2 mode_stdbitmap::col#0 ] ) always clobbers reg byte a +Statement [568] (byte) mode_stdbitmap::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f - (byte) mode_stdbitmap::col#0 [ mode_stdbitmap::cy#4 mode_stdbitmap::cx#2 mode_stdbitmap::ch#2 mode_stdbitmap::col#0 mode_stdbitmap::col2#0 ] ( main:2::menu:9::mode_stdbitmap:62 [ mode_stdbitmap::cy#4 mode_stdbitmap::cx#2 mode_stdbitmap::ch#2 mode_stdbitmap::col#0 mode_stdbitmap::col2#0 ] ) always clobbers reg byte a Statement [569] (byte~) mode_stdbitmap::$22 ← (byte) mode_stdbitmap::col#0 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ mode_stdbitmap::cy#4 mode_stdbitmap::cx#2 mode_stdbitmap::ch#2 mode_stdbitmap::col2#0 mode_stdbitmap::$22 ] ( main:2::menu:9::mode_stdbitmap:62 [ mode_stdbitmap::cy#4 mode_stdbitmap::cx#2 mode_stdbitmap::ch#2 mode_stdbitmap::col2#0 mode_stdbitmap::$22 ] ) always clobbers reg byte a Statement [571] *((byte*) mode_stdbitmap::ch#2) ← (byte~) mode_stdbitmap::$23 [ mode_stdbitmap::cy#4 mode_stdbitmap::cx#2 mode_stdbitmap::ch#2 ] ( main:2::menu:9::mode_stdbitmap:62 [ mode_stdbitmap::cy#4 mode_stdbitmap::cx#2 mode_stdbitmap::ch#2 ] ) always clobbers reg byte y Statement [593] (byte) bitmap_line::xd#2 ← (byte) bitmap_line::x0#0 - (byte) bitmap_line::x1#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#2 ] ) always clobbers reg byte a @@ -18624,10 +18624,10 @@ Statement [640] (byte) bitmap_line::yd#11 ← (byte) bitmap_line::y1#0 - (byte) Statement [655] (byte) bitmap_line_xdyi::e#0 ← (byte) bitmap_line_xdyi::yd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] ) always clobbers reg byte a Statement [661] (byte) bitmap_line_xdyi::e#1 ← (byte) bitmap_line_xdyi::e#3 + (byte) bitmap_line_xdyi::yd#2 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ) always clobbers reg byte a Statement [664] (byte) bitmap_line_xdyi::e#2 ← (byte) bitmap_line_xdyi::e#1 - (byte) bitmap_line_xdyi::xd#5 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] ) always clobbers reg byte a -Statement [670] (word) bitmap_plot::plotter_x#0 ← *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ) always clobbers reg byte a -Statement [671] (word) bitmap_plot::plotter_y#0 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) [ bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ) always clobbers reg byte a +Statement [670] (word) bitmap_plot::plotter_x#0 ← *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ) always clobbers reg byte a +Statement [671] (word) bitmap_plot::plotter_y#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) [ bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ) always clobbers reg byte a Statement [672] (word~) bitmap_plot::$0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0 [ bitmap_plot::x#4 bitmap_plot::$0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] ) always clobbers reg byte a -Statement [673] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::$0 bitmap_plot::$1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] ) always clobbers reg byte a reg byte y +Statement [673] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::$0 bitmap_plot::$1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] ) always clobbers reg byte a reg byte y Statement [674] *((byte*)(word~) bitmap_plot::$0) ← (byte~) bitmap_plot::$1 [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ) always clobbers reg byte y Statement [677] (byte) bitmap_line_ydxi::e#0 ← (byte) bitmap_line_ydxi::xd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] ) always clobbers reg byte a Statement [683] (byte) bitmap_line_ydxi::e#1 ← (byte) bitmap_line_ydxi::e#3 + (byte) bitmap_line_ydxi::xd#2 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] ) always clobbers reg byte a @@ -18638,85 +18638,85 @@ Statement [701] (byte) bitmap_line_xdyd::e#2 ← (byte) bitmap_line_xdyd::e#1 - Statement [707] (byte) bitmap_line_ydxd::e#0 ← (byte) bitmap_line_ydxd::xd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] ) always clobbers reg byte a Statement [713] (byte) bitmap_line_ydxd::e#1 ← (byte) bitmap_line_ydxd::e#3 + (byte) bitmap_line_ydxd::xd#2 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ) always clobbers reg byte a Statement [716] (byte) bitmap_line_ydxd::e#2 ← (byte) bitmap_line_ydxd::e#1 - (byte) bitmap_line_ydxd::yd#5 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] ) always clobbers reg byte a -Statement [721] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_xhi#0) w= *((const byte[256]) bitmap_plot_xlo#0) [ bitmap_clear::$3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_clear:580 [ bitmap_clear::$3 ] ) always clobbers reg byte a +Statement [721] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_xhi#0) w= *((const byte[$100]) bitmap_plot_xlo#0) [ bitmap_clear::$3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_clear:580 [ bitmap_clear::$3 ] ) always clobbers reg byte a Statement [722] (byte*~) bitmap_clear::bitmap#5 ← (byte*)(word~) bitmap_clear::$3 [ bitmap_clear::bitmap#5 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_clear:580 [ bitmap_clear::bitmap#5 ] ) always clobbers reg byte a Statement [725] *((byte*) bitmap_clear::bitmap#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_clear:580 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ) always clobbers reg byte a reg byte y -Statement [734] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) 248 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_init:578 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ) always clobbers reg byte a -Statement [736] *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) mode_stdbitmap::BITMAP#0 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_init:578 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a -Statement [737] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_init:578 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a +Statement [734] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) $f8 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_init:578 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ) always clobbers reg byte a +Statement [736] *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) mode_stdbitmap::BITMAP#0 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_init:578 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a +Statement [737] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_init:578 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a Statement [744] (byte~) bitmap_init::$6 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_init:578 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$6 ] ) always clobbers reg byte a Statement [750] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$10 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_init:578 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$10 ] ) always clobbers reg byte a -Statement [752] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_init:578 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ) always clobbers reg byte a -Statement [758] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_mcchar::CHARSET#0/(dword/signed dword) 65536 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a -Statement [759] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a -Statement [760] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a +Statement [752] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_init:578 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ) always clobbers reg byte a +Statement [758] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_mcchar::CHARSET#0/(dword/signed dword) $10000 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a +Statement [759] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a +Statement [760] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a Statement [761] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a Statement [762] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a -Statement [763] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_mcchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a +Statement [763] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_mcchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a Statement [764] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a Statement [765] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0|(const byte) VIC_MCM#0 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a -Statement [766] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_mcchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_mcchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a -Statement [768] *((const byte*) DTV_PALETTE#0 + (byte) mode_mcchar::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_mcchar::i#2) [ mode_mcchar::i#2 ] ( main:2::menu:9::mode_mcchar:55 [ mode_mcchar::i#2 ] ) always clobbers reg byte a +Statement [766] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_mcchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_mcchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a +Statement [768] *((const byte*) DTV_PALETTE#0 + (byte) mode_mcchar::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_mcchar::i#2) [ mode_mcchar::i#2 ] ( main:2::menu:9::mode_mcchar:55 [ mode_mcchar::i#2 ] ) always clobbers reg byte a Statement [771] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a Statement [772] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a Statement [773] *((const byte*) BGCOL2#0) ← (const byte) GREEN#0 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a Statement [774] *((const byte*) BGCOL3#0) ← (const byte) BLUE#0 [ ] ( main:2::menu:9::mode_mcchar:55 [ ] ) always clobbers reg byte a Statement [777] (byte~) mode_mcchar::$25 ← (byte) mode_mcchar::cx#2 + (byte) mode_mcchar::cy#4 [ mode_mcchar::cy#4 mode_mcchar::cx#2 mode_mcchar::col#2 mode_mcchar::ch#2 mode_mcchar::$25 ] ( main:2::menu:9::mode_mcchar:55 [ mode_mcchar::cy#4 mode_mcchar::cx#2 mode_mcchar::col#2 mode_mcchar::ch#2 mode_mcchar::$25 ] ) always clobbers reg byte a -Statement [778] (byte~) mode_mcchar::$26 ← (byte~) mode_mcchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_mcchar::cy#4 mode_mcchar::cx#2 mode_mcchar::col#2 mode_mcchar::ch#2 mode_mcchar::$26 ] ( main:2::menu:9::mode_mcchar:55 [ mode_mcchar::cy#4 mode_mcchar::cx#2 mode_mcchar::col#2 mode_mcchar::ch#2 mode_mcchar::$26 ] ) always clobbers reg byte a +Statement [778] (byte~) mode_mcchar::$26 ← (byte~) mode_mcchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_mcchar::cy#4 mode_mcchar::cx#2 mode_mcchar::col#2 mode_mcchar::ch#2 mode_mcchar::$26 ] ( main:2::menu:9::mode_mcchar:55 [ mode_mcchar::cy#4 mode_mcchar::cx#2 mode_mcchar::col#2 mode_mcchar::ch#2 mode_mcchar::$26 ] ) always clobbers reg byte a Statement [779] *((byte*) mode_mcchar::col#2) ← (byte~) mode_mcchar::$26 [ mode_mcchar::cy#4 mode_mcchar::cx#2 mode_mcchar::col#2 mode_mcchar::ch#2 ] ( main:2::menu:9::mode_mcchar:55 [ mode_mcchar::cy#4 mode_mcchar::cx#2 mode_mcchar::col#2 mode_mcchar::ch#2 ] ) always clobbers reg byte y -Statement [781] (byte~) mode_mcchar::$27 ← (byte) mode_mcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_mcchar::cy#4 mode_mcchar::col#1 mode_mcchar::cx#2 mode_mcchar::ch#2 mode_mcchar::$27 ] ( main:2::menu:9::mode_mcchar:55 [ mode_mcchar::cy#4 mode_mcchar::col#1 mode_mcchar::cx#2 mode_mcchar::ch#2 mode_mcchar::$27 ] ) always clobbers reg byte a +Statement [781] (byte~) mode_mcchar::$27 ← (byte) mode_mcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_mcchar::cy#4 mode_mcchar::col#1 mode_mcchar::cx#2 mode_mcchar::ch#2 mode_mcchar::$27 ] ( main:2::menu:9::mode_mcchar:55 [ mode_mcchar::cy#4 mode_mcchar::col#1 mode_mcchar::cx#2 mode_mcchar::ch#2 mode_mcchar::$27 ] ) always clobbers reg byte a Statement [782] (byte~) mode_mcchar::$28 ← (byte~) mode_mcchar::$27 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ mode_mcchar::cy#4 mode_mcchar::col#1 mode_mcchar::cx#2 mode_mcchar::ch#2 mode_mcchar::$28 ] ( main:2::menu:9::mode_mcchar:55 [ mode_mcchar::cy#4 mode_mcchar::col#1 mode_mcchar::cx#2 mode_mcchar::ch#2 mode_mcchar::$28 ] ) always clobbers reg byte a -Statement [783] (byte~) mode_mcchar::$29 ← (byte) mode_mcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_mcchar::cy#4 mode_mcchar::col#1 mode_mcchar::cx#2 mode_mcchar::ch#2 mode_mcchar::$28 mode_mcchar::$29 ] ( main:2::menu:9::mode_mcchar:55 [ mode_mcchar::cy#4 mode_mcchar::col#1 mode_mcchar::cx#2 mode_mcchar::ch#2 mode_mcchar::$28 mode_mcchar::$29 ] ) always clobbers reg byte a +Statement [783] (byte~) mode_mcchar::$29 ← (byte) mode_mcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_mcchar::cy#4 mode_mcchar::col#1 mode_mcchar::cx#2 mode_mcchar::ch#2 mode_mcchar::$28 mode_mcchar::$29 ] ( main:2::menu:9::mode_mcchar:55 [ mode_mcchar::cy#4 mode_mcchar::col#1 mode_mcchar::cx#2 mode_mcchar::ch#2 mode_mcchar::$28 mode_mcchar::$29 ] ) always clobbers reg byte a Statement [785] *((byte*) mode_mcchar::ch#2) ← (byte~) mode_mcchar::$30 [ mode_mcchar::cy#4 mode_mcchar::col#1 mode_mcchar::cx#2 mode_mcchar::ch#2 ] ( main:2::menu:9::mode_mcchar:55 [ mode_mcchar::cy#4 mode_mcchar::col#1 mode_mcchar::cx#2 mode_mcchar::ch#2 ] ) always clobbers reg byte y -Statement [794] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_ecmchar::CHARSET#0/(dword/signed dword) 65536 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a -Statement [795] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a -Statement [796] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a +Statement [794] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_ecmchar::CHARSET#0/(dword/signed dword) $10000 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a +Statement [795] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a +Statement [796] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a Statement [797] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a Statement [798] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a -Statement [799] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_ecmchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a +Statement [799] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_ecmchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a Statement [800] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(const byte) VIC_ECM#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a Statement [801] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a -Statement [802] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_ecmchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_ecmchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a -Statement [804] *((const byte*) DTV_PALETTE#0 + (byte) mode_ecmchar::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_ecmchar::i#2) [ mode_ecmchar::i#2 ] ( main:2::menu:9::mode_ecmchar:48 [ mode_ecmchar::i#2 ] ) always clobbers reg byte a +Statement [802] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_ecmchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_ecmchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a +Statement [804] *((const byte*) DTV_PALETTE#0 + (byte) mode_ecmchar::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_ecmchar::i#2) [ mode_ecmchar::i#2 ] ( main:2::menu:9::mode_ecmchar:48 [ mode_ecmchar::i#2 ] ) always clobbers reg byte a Statement [807] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a Statement [808] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a Statement [809] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a Statement [810] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a Statement [811] *((const byte*) BGCOL4#0) ← (byte/signed byte/word/signed word/dword/signed dword) 6 [ ] ( main:2::menu:9::mode_ecmchar:48 [ ] ) always clobbers reg byte a Statement [814] (byte~) mode_ecmchar::$25 ← (byte) mode_ecmchar::cx#2 + (byte) mode_ecmchar::cy#4 [ mode_ecmchar::cy#4 mode_ecmchar::cx#2 mode_ecmchar::col#2 mode_ecmchar::ch#2 mode_ecmchar::$25 ] ( main:2::menu:9::mode_ecmchar:48 [ mode_ecmchar::cy#4 mode_ecmchar::cx#2 mode_ecmchar::col#2 mode_ecmchar::ch#2 mode_ecmchar::$25 ] ) always clobbers reg byte a -Statement [815] (byte~) mode_ecmchar::$26 ← (byte~) mode_ecmchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_ecmchar::cy#4 mode_ecmchar::cx#2 mode_ecmchar::col#2 mode_ecmchar::ch#2 mode_ecmchar::$26 ] ( main:2::menu:9::mode_ecmchar:48 [ mode_ecmchar::cy#4 mode_ecmchar::cx#2 mode_ecmchar::col#2 mode_ecmchar::ch#2 mode_ecmchar::$26 ] ) always clobbers reg byte a +Statement [815] (byte~) mode_ecmchar::$26 ← (byte~) mode_ecmchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_ecmchar::cy#4 mode_ecmchar::cx#2 mode_ecmchar::col#2 mode_ecmchar::ch#2 mode_ecmchar::$26 ] ( main:2::menu:9::mode_ecmchar:48 [ mode_ecmchar::cy#4 mode_ecmchar::cx#2 mode_ecmchar::col#2 mode_ecmchar::ch#2 mode_ecmchar::$26 ] ) always clobbers reg byte a Statement [816] *((byte*) mode_ecmchar::col#2) ← (byte~) mode_ecmchar::$26 [ mode_ecmchar::cy#4 mode_ecmchar::cx#2 mode_ecmchar::col#2 mode_ecmchar::ch#2 ] ( main:2::menu:9::mode_ecmchar:48 [ mode_ecmchar::cy#4 mode_ecmchar::cx#2 mode_ecmchar::col#2 mode_ecmchar::ch#2 ] ) always clobbers reg byte y -Statement [818] (byte~) mode_ecmchar::$27 ← (byte) mode_ecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_ecmchar::cy#4 mode_ecmchar::col#1 mode_ecmchar::cx#2 mode_ecmchar::ch#2 mode_ecmchar::$27 ] ( main:2::menu:9::mode_ecmchar:48 [ mode_ecmchar::cy#4 mode_ecmchar::col#1 mode_ecmchar::cx#2 mode_ecmchar::ch#2 mode_ecmchar::$27 ] ) always clobbers reg byte a +Statement [818] (byte~) mode_ecmchar::$27 ← (byte) mode_ecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_ecmchar::cy#4 mode_ecmchar::col#1 mode_ecmchar::cx#2 mode_ecmchar::ch#2 mode_ecmchar::$27 ] ( main:2::menu:9::mode_ecmchar:48 [ mode_ecmchar::cy#4 mode_ecmchar::col#1 mode_ecmchar::cx#2 mode_ecmchar::ch#2 mode_ecmchar::$27 ] ) always clobbers reg byte a Statement [819] (byte~) mode_ecmchar::$28 ← (byte~) mode_ecmchar::$27 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ mode_ecmchar::cy#4 mode_ecmchar::col#1 mode_ecmchar::cx#2 mode_ecmchar::ch#2 mode_ecmchar::$28 ] ( main:2::menu:9::mode_ecmchar:48 [ mode_ecmchar::cy#4 mode_ecmchar::col#1 mode_ecmchar::cx#2 mode_ecmchar::ch#2 mode_ecmchar::$28 ] ) always clobbers reg byte a -Statement [820] (byte~) mode_ecmchar::$29 ← (byte) mode_ecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_ecmchar::cy#4 mode_ecmchar::col#1 mode_ecmchar::cx#2 mode_ecmchar::ch#2 mode_ecmchar::$28 mode_ecmchar::$29 ] ( main:2::menu:9::mode_ecmchar:48 [ mode_ecmchar::cy#4 mode_ecmchar::col#1 mode_ecmchar::cx#2 mode_ecmchar::ch#2 mode_ecmchar::$28 mode_ecmchar::$29 ] ) always clobbers reg byte a +Statement [820] (byte~) mode_ecmchar::$29 ← (byte) mode_ecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_ecmchar::cy#4 mode_ecmchar::col#1 mode_ecmchar::cx#2 mode_ecmchar::ch#2 mode_ecmchar::$28 mode_ecmchar::$29 ] ( main:2::menu:9::mode_ecmchar:48 [ mode_ecmchar::cy#4 mode_ecmchar::col#1 mode_ecmchar::cx#2 mode_ecmchar::ch#2 mode_ecmchar::$28 mode_ecmchar::$29 ] ) always clobbers reg byte a Statement [822] *((byte*) mode_ecmchar::ch#2) ← (byte~) mode_ecmchar::$30 [ mode_ecmchar::cy#4 mode_ecmchar::col#1 mode_ecmchar::cx#2 mode_ecmchar::ch#2 ] ( main:2::menu:9::mode_ecmchar:48 [ mode_ecmchar::cy#4 mode_ecmchar::col#1 mode_ecmchar::cx#2 mode_ecmchar::ch#2 ] ) always clobbers reg byte y -Statement [831] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdchar::CHARSET#0/(dword/signed dword) 65536 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a -Statement [832] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a -Statement [833] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a +Statement [831] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdchar::CHARSET#0/(dword/signed dword) $10000 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a +Statement [832] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a +Statement [833] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a Statement [834] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a Statement [835] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a -Statement [836] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a +Statement [836] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a Statement [837] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a Statement [838] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a -Statement [839] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_stdchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a -Statement [841] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdchar::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdchar::i#2) [ mode_stdchar::i#2 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::i#2 ] ) always clobbers reg byte a +Statement [839] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_stdchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a +Statement [841] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdchar::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdchar::i#2) [ mode_stdchar::i#2 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::i#2 ] ) always clobbers reg byte a Statement [844] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a Statement [845] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_stdchar:40 [ ] ) always clobbers reg byte a Statement [848] (byte~) mode_stdchar::$24 ← (byte) mode_stdchar::cx#2 + (byte) mode_stdchar::cy#4 [ mode_stdchar::cy#4 mode_stdchar::cx#2 mode_stdchar::col#2 mode_stdchar::ch#2 mode_stdchar::$24 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::cx#2 mode_stdchar::col#2 mode_stdchar::ch#2 mode_stdchar::$24 ] ) always clobbers reg byte a -Statement [849] (byte~) mode_stdchar::$25 ← (byte~) mode_stdchar::$24 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_stdchar::cy#4 mode_stdchar::cx#2 mode_stdchar::col#2 mode_stdchar::ch#2 mode_stdchar::$25 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::cx#2 mode_stdchar::col#2 mode_stdchar::ch#2 mode_stdchar::$25 ] ) always clobbers reg byte a +Statement [849] (byte~) mode_stdchar::$25 ← (byte~) mode_stdchar::$24 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_stdchar::cy#4 mode_stdchar::cx#2 mode_stdchar::col#2 mode_stdchar::ch#2 mode_stdchar::$25 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::cx#2 mode_stdchar::col#2 mode_stdchar::ch#2 mode_stdchar::$25 ] ) always clobbers reg byte a Statement [850] *((byte*) mode_stdchar::col#2) ← (byte~) mode_stdchar::$25 [ mode_stdchar::cy#4 mode_stdchar::cx#2 mode_stdchar::col#2 mode_stdchar::ch#2 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::cx#2 mode_stdchar::col#2 mode_stdchar::ch#2 ] ) always clobbers reg byte y -Statement [852] (byte~) mode_stdchar::$26 ← (byte) mode_stdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$26 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$26 ] ) always clobbers reg byte a +Statement [852] (byte~) mode_stdchar::$26 ← (byte) mode_stdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$26 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$26 ] ) always clobbers reg byte a Statement [853] (byte~) mode_stdchar::$27 ← (byte~) mode_stdchar::$26 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$27 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$27 ] ) always clobbers reg byte a -Statement [854] (byte~) mode_stdchar::$28 ← (byte) mode_stdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$27 mode_stdchar::$28 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$27 mode_stdchar::$28 ] ) always clobbers reg byte a +Statement [854] (byte~) mode_stdchar::$28 ← (byte) mode_stdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$27 mode_stdchar::$28 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 mode_stdchar::$27 mode_stdchar::$28 ] ) always clobbers reg byte a Statement [856] *((byte*) mode_stdchar::ch#2) ← (byte~) mode_stdchar::$29 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 ] ( main:2::menu:9::mode_stdchar:40 [ mode_stdchar::cy#4 mode_stdchar::col#1 mode_stdchar::cx#2 mode_stdchar::ch#2 ] ) always clobbers reg byte y Statement [867] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) always clobbers reg byte a reg byte y Statement [870] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ) always clobbers reg byte a reg byte y Statement [873] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) always clobbers reg byte y Statement [879] (byte*~) print_char_cursor#103 ← (byte*) print_line_cursor#19 [ print_str_lines::str#0 print_char_cursor#103 print_line_cursor#19 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#0 print_char_cursor#103 print_line_cursor#19 ] ) always clobbers reg byte a -Statement [882] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:9::print_str_lines:33::print_ln:878 [ print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) always clobbers reg byte a +Statement [882] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:9::print_str_lines:33::print_ln:878 [ print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) always clobbers reg byte a Statement [883] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:9::print_str_lines:33::print_ln:878 [ print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) always clobbers reg byte a Statement [887] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::menu:9::print_cls:31 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [889] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::menu:9::print_cls:31 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [889] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::menu:9::print_cls:31 [ print_cls::sc#1 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ menu::i#2 menu::i#1 ] : zp ZP_BYTE:2 , reg byte x , reg byte y , Potential registers zp ZP_WORD:3 [ menu::c#2 menu::c#1 ] : zp ZP_WORD:3 , Potential registers zp ZP_BYTE:5 [ mode_8bppchunkybmm::i#2 mode_8bppchunkybmm::i#1 ] : zp ZP_BYTE:5 , reg byte a , reg byte x , reg byte y , @@ -19658,16 +19658,16 @@ menu: { .label SCREEN = $8000 .label CHARSET = $9800 .label c = 2 - //SEG18 [10] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 -- _deref_pbuc1=vbuc2 + //SEG18 [10] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) $10000 -- _deref_pbuc1=vbuc2 // Charset ROM // DTV Graphics Bank lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG19 [11] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG19 [11] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #DTV_COLOR_BANK_DEFAULT/$400 sta DTV_COLOR_BANK_LO - //SEG20 [12] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG20 [12] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI //SEG21 [13] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 @@ -19678,7 +19678,7 @@ menu: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG23 [15] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG23 [15] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^CHARSET/$4000 sta CIA2_PORT_A @@ -19690,7 +19690,7 @@ menu: { //SEG25 [17] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 -- _deref_pbuc1=vbuc2 lda #VIC_CSEL sta VIC_CONTROL2 - //SEG26 [18] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG26 [18] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // VIC Memory Pointers lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY @@ -19706,12 +19706,12 @@ menu: { jmp b1 //SEG31 menu::@1 b1: - //SEG32 [20] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG32 [20] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda DTV_PALETTE_DEFAULT,x sta DTV_PALETTE,x //SEG33 [21] (byte) menu::i#1 ← ++ (byte) menu::i#2 -- vbuxx=_inc_vbuxx inx - //SEG34 [22] if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto menu::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG34 [22] if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto menu::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1_from_b1 //SEG35 [23] phi from menu::@1 to menu::@2 [phi:menu::@1->menu::@2] @@ -19738,7 +19738,7 @@ menu: { bne !+ inc c+1 !: - //SEG42 [26] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) 1000) goto menu::@2 -- pbuz1_neq_pbuc1_then_la1 + //SEG42 [26] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) $3e8) goto menu::@2 -- pbuz1_neq_pbuc1_then_la1 lda c+1 cmp #>COLS+$3e8 bne b2_from_b2 @@ -20171,7 +20171,7 @@ mode_8bppchunkybmm: { sta DTV_PALETTE,x //SEG219 [131] (byte) mode_8bppchunkybmm::i#1 ← ++ (byte) mode_8bppchunkybmm::i#2 -- vbuxx=_inc_vbuxx inx - //SEG220 [132] if((byte) mode_8bppchunkybmm::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_8bppchunkybmm::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG220 [132] if((byte) mode_8bppchunkybmm::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_8bppchunkybmm::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1_from_b1 //SEG221 [133] phi from mode_8bppchunkybmm::@1 to mode_8bppchunkybmm::@5 [phi:mode_8bppchunkybmm::@1->mode_8bppchunkybmm::@5] @@ -20182,17 +20182,17 @@ mode_8bppchunkybmm: { //SEG223 [134] call dtvSetCpuBankSegment1 //SEG224 [223] phi from mode_8bppchunkybmm::@5 to dtvSetCpuBankSegment1 [phi:mode_8bppchunkybmm::@5->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from_b5: - //SEG225 [223] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 = ((byte))(const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) 16384 [phi:mode_8bppchunkybmm::@5->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + //SEG225 [223] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 = ((byte))(const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) $4000 [phi:mode_8bppchunkybmm::@5->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #PLANEB/$4000 jsr dtvSetCpuBankSegment1 //SEG226 [135] phi from mode_8bppchunkybmm::@5 to mode_8bppchunkybmm::@2 [phi:mode_8bppchunkybmm::@5->mode_8bppchunkybmm::@2] b2_from_b5: - //SEG227 [135] phi (byte) mode_8bppchunkybmm::gfxbCpuBank#7 = ++((byte))(const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) 16384 [phi:mode_8bppchunkybmm::@5->mode_8bppchunkybmm::@2#0] -- vbuxx=vbuc1 + //SEG227 [135] phi (byte) mode_8bppchunkybmm::gfxbCpuBank#7 = ++((byte))(const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) $4000 [phi:mode_8bppchunkybmm::@5->mode_8bppchunkybmm::@2#0] -- vbuxx=vbuc1 ldx #PLANEB/$4000+1 //SEG228 [135] phi (byte) mode_8bppchunkybmm::y#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mode_8bppchunkybmm::@5->mode_8bppchunkybmm::@2#1] -- vbuz1=vbuc1 lda #0 sta y - //SEG229 [135] phi (byte*) mode_8bppchunkybmm::gfxb#5 = ((byte*))(word/signed word/dword/signed dword) 16384 [phi:mode_8bppchunkybmm::@5->mode_8bppchunkybmm::@2#2] -- pbuz1=pbuc1 + //SEG229 [135] phi (byte*) mode_8bppchunkybmm::gfxb#5 = ((byte*))(word/signed word/dword/signed dword) $4000 [phi:mode_8bppchunkybmm::@5->mode_8bppchunkybmm::@2#2] -- pbuz1=pbuc1 lda #<$4000 sta gfxb lda #>$4000 @@ -20224,7 +20224,7 @@ mode_8bppchunkybmm: { jmp b3 //SEG243 mode_8bppchunkybmm::@3 b3: - //SEG244 [137] if((byte*) mode_8bppchunkybmm::gfxb#3!=(word/dword/signed dword) 32768) goto mode_8bppchunkybmm::@4 -- pbuz1_neq_vwuc1_then_la1 + //SEG244 [137] if((byte*) mode_8bppchunkybmm::gfxb#3!=(word/dword/signed dword) $8000) goto mode_8bppchunkybmm::@4 -- pbuz1_neq_vwuc1_then_la1 lda gfxb+1 cmp #>$8000 bne b4_from_b3 @@ -20249,7 +20249,7 @@ mode_8bppchunkybmm: { //SEG252 [141] phi from mode_8bppchunkybmm::@10 to mode_8bppchunkybmm::@4 [phi:mode_8bppchunkybmm::@10->mode_8bppchunkybmm::@4] b4_from_b10: //SEG253 [141] phi (byte) mode_8bppchunkybmm::gfxbCpuBank#8 = (byte) mode_8bppchunkybmm::gfxbCpuBank#2 [phi:mode_8bppchunkybmm::@10->mode_8bppchunkybmm::@4#0] -- register_copy - //SEG254 [141] phi (byte*) mode_8bppchunkybmm::gfxb#4 = ((byte*))(word/signed word/dword/signed dword) 16384 [phi:mode_8bppchunkybmm::@10->mode_8bppchunkybmm::@4#1] -- pbuz1=pbuc1 + //SEG254 [141] phi (byte*) mode_8bppchunkybmm::gfxb#4 = ((byte*))(word/signed word/dword/signed dword) $4000 [phi:mode_8bppchunkybmm::@10->mode_8bppchunkybmm::@4#1] -- pbuz1=pbuc1 lda #<$4000 sta gfxb lda #>$4000 @@ -20285,7 +20285,7 @@ mode_8bppchunkybmm: { bne !+ inc x+1 !: - //SEG264 [147] if((word) mode_8bppchunkybmm::x#1!=(word/signed word/dword/signed dword) 320) goto mode_8bppchunkybmm::@3 -- vwuz1_neq_vwuc1_then_la1 + //SEG264 [147] if((word) mode_8bppchunkybmm::x#1!=(word/signed word/dword/signed dword) $140) goto mode_8bppchunkybmm::@3 -- vwuz1_neq_vwuc1_then_la1 lda x+1 cmp #>$140 bne b3_from_b4 @@ -20297,7 +20297,7 @@ mode_8bppchunkybmm: { b7: //SEG266 [148] (byte) mode_8bppchunkybmm::y#1 ← ++ (byte) mode_8bppchunkybmm::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG267 [149] if((byte) mode_8bppchunkybmm::y#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_8bppchunkybmm::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG267 [149] if((byte) mode_8bppchunkybmm::y#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_8bppchunkybmm::@2 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$c8 bne b2_from_b7 @@ -20309,7 +20309,7 @@ mode_8bppchunkybmm: { //SEG270 [151] call dtvSetCpuBankSegment1 //SEG271 [223] phi from mode_8bppchunkybmm::@8 to dtvSetCpuBankSegment1 [phi:mode_8bppchunkybmm::@8->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from_b8: - //SEG272 [223] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 [phi:mode_8bppchunkybmm::@8->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + //SEG272 [223] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 [phi:mode_8bppchunkybmm::@8->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #$4000/$4000 jsr dtvSetCpuBankSegment1 //SEG273 [152] phi from mode_8bppchunkybmm::@8 to mode_8bppchunkybmm::@11 [phi:mode_8bppchunkybmm::@8->mode_8bppchunkybmm::@11] @@ -20347,7 +20347,7 @@ mode_ctrl: { // Wait for the raster //SEG285 mode_ctrl::@4 b4: - //SEG286 [157] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto mode_ctrl::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG286 [157] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto mode_ctrl::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -20760,7 +20760,7 @@ mode_8bpppixelcell: { sta DTV_PALETTE,x //SEG435 [245] (byte) mode_8bpppixelcell::i#1 ← ++ (byte) mode_8bpppixelcell::i#2 -- vbuxx=_inc_vbuxx inx - //SEG436 [246] if((byte) mode_8bpppixelcell::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_8bpppixelcell::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG436 [246] if((byte) mode_8bpppixelcell::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_8bpppixelcell::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1_from_b1 //SEG437 [247] phi from mode_8bpppixelcell::@1 to mode_8bpppixelcell::@2 [phi:mode_8bpppixelcell::@1->mode_8bpppixelcell::@2] @@ -20794,7 +20794,7 @@ mode_8bpppixelcell: { jmp b3 //SEG450 mode_8bpppixelcell::@3 b3: - //SEG451 [249] (byte~) mode_8bpppixelcell::$13 ← (byte) mode_8bpppixelcell::ay#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG451 [249] (byte~) mode_8bpppixelcell::$13 ← (byte) mode_8bpppixelcell::ay#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and ay //SEG452 [250] (byte~) mode_8bpppixelcell::$14 ← (byte~) mode_8bpppixelcell::$13 << (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuaa_rol_4 @@ -20803,7 +20803,7 @@ mode_8bpppixelcell: { asl asl sta _14 - //SEG453 [251] (byte~) mode_8bpppixelcell::$15 ← (byte) mode_8bpppixelcell::ax#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG453 [251] (byte~) mode_8bpppixelcell::$15 ← (byte) mode_8bpppixelcell::ax#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG454 [252] (byte~) mode_8bpppixelcell::$16 ← (byte~) mode_8bpppixelcell::$14 | (byte~) mode_8bpppixelcell::$15 -- vbuaa=vbuz1_bor_vbuaa @@ -20818,7 +20818,7 @@ mode_8bpppixelcell: { !: //SEG457 [255] (byte) mode_8bpppixelcell::ax#1 ← ++ (byte) mode_8bpppixelcell::ax#2 -- vbuxx=_inc_vbuxx inx - //SEG458 [256] if((byte) mode_8bpppixelcell::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_8bpppixelcell::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG458 [256] if((byte) mode_8bpppixelcell::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_8bpppixelcell::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b3_from_b3 jmp b9 @@ -20826,7 +20826,7 @@ mode_8bpppixelcell: { b9: //SEG460 [257] (byte) mode_8bpppixelcell::ay#1 ← ++ (byte) mode_8bpppixelcell::ay#4 -- vbuz1=_inc_vbuz1 inc ay - //SEG461 [258] if((byte) mode_8bpppixelcell::ay#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_8bpppixelcell::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG461 [258] if((byte) mode_8bpppixelcell::ay#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_8bpppixelcell::@2 -- vbuz1_neq_vbuc1_then_la1 lda ay cmp #$19 bne b2_from_b9 @@ -20850,7 +20850,7 @@ mode_8bpppixelcell: { sta gfxb lda #>PLANEB sta gfxb+1 - //SEG468 [260] phi (byte*) mode_8bpppixelcell::chargen#4 = ((byte*))(word/dword/signed dword) 53248 [phi:mode_8bpppixelcell::@10->mode_8bpppixelcell::@4#3] -- pbuz1=pbuc1 + //SEG468 [260] phi (byte*) mode_8bpppixelcell::chargen#4 = ((byte*))(word/dword/signed dword) $d000 [phi:mode_8bpppixelcell::@10->mode_8bpppixelcell::@4#3] -- pbuz1=pbuc1 lda #<$d000 sta chargen lda #>$d000 @@ -20909,7 +20909,7 @@ mode_8bpppixelcell: { jmp b6 //SEG498 mode_8bpppixelcell::@6 b6: - //SEG499 [265] (byte~) mode_8bpppixelcell::$19 ← (byte) mode_8bpppixelcell::bits#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG499 [265] (byte~) mode_8bpppixelcell::$19 ← (byte) mode_8bpppixelcell::bits#2 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuz1_band_vbuc1 lda #$80 and bits //SEG500 [266] if((byte~) mode_8bpppixelcell::$19==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_8bpppixelcell::@7 -- vbuaa_eq_0_then_la1 @@ -21050,11 +21050,11 @@ mode_sixsfred: { //SEG542 [296] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_PLANEB_MODULO_HI - //SEG543 [297] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG543 [297] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG544 [298] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #>COLORS/$400 sta DTV_COLOR_BANK_HI //SEG545 [299] phi from mode_sixsfred to mode_sixsfred::@1 [phi:mode_sixsfred->mode_sixsfred::@1] @@ -21074,7 +21074,7 @@ mode_sixsfred: { sta DTV_PALETTE,x //SEG551 [301] (byte) mode_sixsfred::i#1 ← ++ (byte) mode_sixsfred::i#2 -- vbuxx=_inc_vbuxx inx - //SEG552 [302] if((byte) mode_sixsfred::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_sixsfred::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG552 [302] if((byte) mode_sixsfred::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_sixsfred::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1_from_b1 jmp b8 @@ -21119,7 +21119,7 @@ mode_sixsfred: { txa clc adc cy - //SEG570 [307] (byte~) mode_sixsfred::$17 ← (byte~) mode_sixsfred::$16 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuaa_band_vbuc1 + //SEG570 [307] (byte~) mode_sixsfred::$17 ← (byte~) mode_sixsfred::$16 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuaa_band_vbuc1 and #$f //SEG571 [308] *((byte*) mode_sixsfred::col#2) ← (byte~) mode_sixsfred::$17 -- _deref_pbuz1=vbuaa ldy #0 @@ -21131,7 +21131,7 @@ mode_sixsfred: { !: //SEG573 [310] (byte) mode_sixsfred::cx#1 ← ++ (byte) mode_sixsfred::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG574 [311] if((byte) mode_sixsfred::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG574 [311] if((byte) mode_sixsfred::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b3_from_b3 jmp b9 @@ -21139,7 +21139,7 @@ mode_sixsfred: { b9: //SEG576 [312] (byte) mode_sixsfred::cy#1 ← ++ (byte) mode_sixsfred::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG577 [313] if((byte) mode_sixsfred::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_sixsfred::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG577 [313] if((byte) mode_sixsfred::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_sixsfred::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2_from_b9 @@ -21191,7 +21191,7 @@ mode_sixsfred: { !: //SEG596 [320] (byte) mode_sixsfred::ax#1 ← ++ (byte) mode_sixsfred::ax#2 -- vbuxx=_inc_vbuxx inx - //SEG597 [321] if((byte) mode_sixsfred::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred::@5 -- vbuxx_neq_vbuc1_then_la1 + //SEG597 [321] if((byte) mode_sixsfred::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred::@5 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b5_from_b5 jmp b11 @@ -21199,7 +21199,7 @@ mode_sixsfred: { b11: //SEG599 [322] (byte) mode_sixsfred::ay#1 ← ++ (byte) mode_sixsfred::ay#4 -- vbuz1=_inc_vbuz1 inc ay - //SEG600 [323] if((byte) mode_sixsfred::ay#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_sixsfred::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG600 [323] if((byte) mode_sixsfred::ay#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_sixsfred::@4 -- vbuz1_neq_vbuc1_then_la1 lda ay cmp #$c8 bne b4_from_b11 @@ -21234,7 +21234,7 @@ mode_sixsfred: { jmp b7 //SEG614 mode_sixsfred::@7 b7: - //SEG615 [326] *((byte*) mode_sixsfred::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 27 -- _deref_pbuz1=vbuc1 + //SEG615 [326] *((byte*) mode_sixsfred::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $1b -- _deref_pbuz1=vbuc1 lda #$1b ldy #0 sta (gfxb),y @@ -21245,7 +21245,7 @@ mode_sixsfred: { !: //SEG617 [328] (byte) mode_sixsfred::bx#1 ← ++ (byte) mode_sixsfred::bx#2 -- vbuxx=_inc_vbuxx inx - //SEG618 [329] if((byte) mode_sixsfred::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred::@7 -- vbuxx_neq_vbuc1_then_la1 + //SEG618 [329] if((byte) mode_sixsfred::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred::@7 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b7_from_b7 jmp b13 @@ -21253,7 +21253,7 @@ mode_sixsfred: { b13: //SEG620 [330] (byte) mode_sixsfred::by#1 ← ++ (byte) mode_sixsfred::by#4 -- vbuz1=_inc_vbuz1 inc by - //SEG621 [331] if((byte) mode_sixsfred::by#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_sixsfred::@6 -- vbuz1_neq_vbuc1_then_la1 + //SEG621 [331] if((byte) mode_sixsfred::by#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_sixsfred::@6 -- vbuz1_neq_vbuc1_then_la1 lda by cmp #$c8 bne b6_from_b13 @@ -21345,11 +21345,11 @@ mode_twoplanebitmap: { //SEG644 [349] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_PLANEB_MODULO_HI - //SEG645 [350] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG645 [350] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG646 [351] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #>COLORS/$400 sta DTV_COLOR_BANK_HI //SEG647 [352] phi from mode_twoplanebitmap to mode_twoplanebitmap::@1 [phi:mode_twoplanebitmap->mode_twoplanebitmap::@1] @@ -21369,7 +21369,7 @@ mode_twoplanebitmap: { sta DTV_PALETTE,x //SEG653 [354] (byte) mode_twoplanebitmap::i#1 ← ++ (byte) mode_twoplanebitmap::i#2 -- vbuxx=_inc_vbuxx inx - //SEG654 [355] if((byte) mode_twoplanebitmap::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_twoplanebitmap::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG654 [355] if((byte) mode_twoplanebitmap::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_twoplanebitmap::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1_from_b1 jmp b10 @@ -21379,10 +21379,10 @@ mode_twoplanebitmap: { // Screen colors lda #0 sta BORDERCOL - //SEG657 [357] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 112 -- _deref_pbuc1=vbuc2 + //SEG657 [357] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) $70 -- _deref_pbuc1=vbuc2 lda #$70 sta BGCOL1 - //SEG658 [358] *((const byte*) BGCOL2#0) ← (byte/word/signed word/dword/signed dword) 212 -- _deref_pbuc1=vbuc2 + //SEG658 [358] *((const byte*) BGCOL2#0) ← (byte/word/signed word/dword/signed dword) $d4 -- _deref_pbuc1=vbuc2 // Color for bits 00 lda #$d4 sta BGCOL2 @@ -21417,7 +21417,7 @@ mode_twoplanebitmap: { jmp b3 //SEG672 mode_twoplanebitmap::@3 b3: - //SEG673 [361] (byte~) mode_twoplanebitmap::$15 ← (byte) mode_twoplanebitmap::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG673 [361] (byte~) mode_twoplanebitmap::$15 ← (byte) mode_twoplanebitmap::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and cy //SEG674 [362] (byte~) mode_twoplanebitmap::$16 ← (byte~) mode_twoplanebitmap::$15 << (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuaa_rol_4 @@ -21426,7 +21426,7 @@ mode_twoplanebitmap: { asl asl sta _16 - //SEG675 [363] (byte~) mode_twoplanebitmap::$17 ← (byte) mode_twoplanebitmap::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG675 [363] (byte~) mode_twoplanebitmap::$17 ← (byte) mode_twoplanebitmap::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG676 [364] (byte~) mode_twoplanebitmap::$18 ← (byte~) mode_twoplanebitmap::$16 | (byte~) mode_twoplanebitmap::$17 -- vbuaa=vbuz1_bor_vbuaa @@ -21441,7 +21441,7 @@ mode_twoplanebitmap: { !: //SEG679 [367] (byte) mode_twoplanebitmap::cx#1 ← ++ (byte) mode_twoplanebitmap::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG680 [368] if((byte) mode_twoplanebitmap::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_twoplanebitmap::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG680 [368] if((byte) mode_twoplanebitmap::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_twoplanebitmap::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b3_from_b3 jmp b11 @@ -21449,7 +21449,7 @@ mode_twoplanebitmap: { b11: //SEG682 [369] (byte) mode_twoplanebitmap::cy#1 ← ++ (byte) mode_twoplanebitmap::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG683 [370] if((byte) mode_twoplanebitmap::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_twoplanebitmap::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG683 [370] if((byte) mode_twoplanebitmap::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_twoplanebitmap::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2_from_b11 @@ -21493,7 +21493,7 @@ mode_twoplanebitmap: { jmp b13 //SEG700 mode_twoplanebitmap::@13 b13: - //SEG701 [375] *((byte*) mode_twoplanebitmap::gfxa#3) ← (byte/word/signed word/dword/signed dword) 255 -- _deref_pbuz1=vbuc1 + //SEG701 [375] *((byte*) mode_twoplanebitmap::gfxa#3) ← (byte/word/signed word/dword/signed dword) $ff -- _deref_pbuz1=vbuc1 lda #$ff ldy #0 sta (gfxa),y @@ -21511,7 +21511,7 @@ mode_twoplanebitmap: { b7: //SEG706 [378] (byte) mode_twoplanebitmap::ax#1 ← ++ (byte) mode_twoplanebitmap::ax#2 -- vbuxx=_inc_vbuxx inx - //SEG707 [379] if((byte) mode_twoplanebitmap::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_twoplanebitmap::@5 -- vbuxx_neq_vbuc1_then_la1 + //SEG707 [379] if((byte) mode_twoplanebitmap::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_twoplanebitmap::@5 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b5_from_b7 jmp b15 @@ -21519,7 +21519,7 @@ mode_twoplanebitmap: { b15: //SEG709 [380] (byte) mode_twoplanebitmap::ay#1 ← ++ (byte) mode_twoplanebitmap::ay#4 -- vbuz1=_inc_vbuz1 inc ay - //SEG710 [381] if((byte) mode_twoplanebitmap::ay#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_twoplanebitmap::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG710 [381] if((byte) mode_twoplanebitmap::ay#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_twoplanebitmap::@4 -- vbuz1_neq_vbuc1_then_la1 lda ay cmp #$c8 bne b4_from_b15 @@ -21554,7 +21554,7 @@ mode_twoplanebitmap: { jmp b9 //SEG724 mode_twoplanebitmap::@9 b9: - //SEG725 [384] *((byte*) mode_twoplanebitmap::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuz1=vbuc1 + //SEG725 [384] *((byte*) mode_twoplanebitmap::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $f -- _deref_pbuz1=vbuc1 lda #$f ldy #0 sta (gfxb),y @@ -21565,7 +21565,7 @@ mode_twoplanebitmap: { !: //SEG727 [386] (byte) mode_twoplanebitmap::bx#1 ← ++ (byte) mode_twoplanebitmap::bx#2 -- vbuxx=_inc_vbuxx inx - //SEG728 [387] if((byte) mode_twoplanebitmap::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_twoplanebitmap::@9 -- vbuxx_neq_vbuc1_then_la1 + //SEG728 [387] if((byte) mode_twoplanebitmap::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_twoplanebitmap::@9 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b9_from_b9 jmp b17 @@ -21573,7 +21573,7 @@ mode_twoplanebitmap: { b17: //SEG730 [388] (byte) mode_twoplanebitmap::by#1 ← ++ (byte) mode_twoplanebitmap::by#4 -- vbuz1=_inc_vbuz1 inc by - //SEG731 [389] if((byte) mode_twoplanebitmap::by#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_twoplanebitmap::@8 -- vbuz1_neq_vbuc1_then_la1 + //SEG731 [389] if((byte) mode_twoplanebitmap::by#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_twoplanebitmap::@8 -- vbuz1_neq_vbuc1_then_la1 lda by cmp #$c8 bne b8_from_b17 @@ -21673,11 +21673,11 @@ mode_sixsfred2: { //SEG757 [409] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_PLANEB_MODULO_HI - //SEG758 [410] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG758 [410] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG759 [411] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #>COLORS/$400 sta DTV_COLOR_BANK_HI //SEG760 [412] phi from mode_sixsfred2 to mode_sixsfred2::@1 [phi:mode_sixsfred2->mode_sixsfred2::@1] @@ -21697,7 +21697,7 @@ mode_sixsfred2: { sta DTV_PALETTE,x //SEG766 [414] (byte) mode_sixsfred2::i#1 ← ++ (byte) mode_sixsfred2::i#2 -- vbuxx=_inc_vbuxx inx - //SEG767 [415] if((byte) mode_sixsfred2::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_sixsfred2::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG767 [415] if((byte) mode_sixsfred2::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_sixsfred2::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1_from_b1 jmp b8 @@ -21762,7 +21762,7 @@ mode_sixsfred2: { !: //SEG790 [425] (byte) mode_sixsfred2::cx#1 ← ++ (byte) mode_sixsfred2::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG791 [426] if((byte) mode_sixsfred2::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred2::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG791 [426] if((byte) mode_sixsfred2::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred2::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b3_from_b3 jmp b9 @@ -21770,7 +21770,7 @@ mode_sixsfred2: { b9: //SEG793 [427] (byte) mode_sixsfred2::cy#1 ← ++ (byte) mode_sixsfred2::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG794 [428] if((byte) mode_sixsfred2::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_sixsfred2::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG794 [428] if((byte) mode_sixsfred2::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_sixsfred2::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2_from_b9 @@ -21822,7 +21822,7 @@ mode_sixsfred2: { !: //SEG813 [435] (byte) mode_sixsfred2::ax#1 ← ++ (byte) mode_sixsfred2::ax#2 -- vbuxx=_inc_vbuxx inx - //SEG814 [436] if((byte) mode_sixsfred2::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred2::@5 -- vbuxx_neq_vbuc1_then_la1 + //SEG814 [436] if((byte) mode_sixsfred2::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred2::@5 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b5_from_b5 jmp b11 @@ -21830,7 +21830,7 @@ mode_sixsfred2: { b11: //SEG816 [437] (byte) mode_sixsfred2::ay#1 ← ++ (byte) mode_sixsfred2::ay#4 -- vbuz1=_inc_vbuz1 inc ay - //SEG817 [438] if((byte) mode_sixsfred2::ay#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_sixsfred2::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG817 [438] if((byte) mode_sixsfred2::ay#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_sixsfred2::@4 -- vbuz1_neq_vbuc1_then_la1 lda ay cmp #$c8 bne b4_from_b11 @@ -21865,7 +21865,7 @@ mode_sixsfred2: { jmp b7 //SEG831 mode_sixsfred2::@7 b7: - //SEG832 [441] *((byte*) mode_sixsfred2::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 27 -- _deref_pbuz1=vbuc1 + //SEG832 [441] *((byte*) mode_sixsfred2::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $1b -- _deref_pbuz1=vbuc1 lda #$1b ldy #0 sta (gfxb),y @@ -21876,7 +21876,7 @@ mode_sixsfred2: { !: //SEG834 [443] (byte) mode_sixsfred2::bx#1 ← ++ (byte) mode_sixsfred2::bx#2 -- vbuxx=_inc_vbuxx inx - //SEG835 [444] if((byte) mode_sixsfred2::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred2::@7 -- vbuxx_neq_vbuc1_then_la1 + //SEG835 [444] if((byte) mode_sixsfred2::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred2::@7 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b7_from_b7 jmp b13 @@ -21884,7 +21884,7 @@ mode_sixsfred2: { b13: //SEG837 [445] (byte) mode_sixsfred2::by#1 ← ++ (byte) mode_sixsfred2::by#4 -- vbuz1=_inc_vbuz1 inc by - //SEG838 [446] if((byte) mode_sixsfred2::by#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_sixsfred2::@6 -- vbuz1_neq_vbuc1_then_la1 + //SEG838 [446] if((byte) mode_sixsfred2::by#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_sixsfred2::@6 -- vbuz1_neq_vbuc1_then_la1 lda by cmp #$c8 bne b6_from_b13 @@ -21929,15 +21929,15 @@ mode_hicolmcchar: { .label col = 2 .label ch = 5 .label cy = 4 - //SEG847 [450] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolmcchar::CHARSET#0/(dword/signed dword) 65536 -- _deref_pbuc1=vbuc2 + //SEG847 [450] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolmcchar::CHARSET#0/(dword/signed dword) $10000 -- _deref_pbuc1=vbuc2 // DTV Graphics Bank lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG848 [451] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG848 [451] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #COLORS/$400 sta DTV_COLOR_BANK_LO - //SEG849 [452] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG849 [452] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI //SEG850 [453] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0 -- _deref_pbuc1=vbuc2 @@ -21947,7 +21947,7 @@ mode_hicolmcchar: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG852 [455] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolmcchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG852 [455] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolmcchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^CHARSET/$4000 sta CIA2_PORT_A @@ -21959,7 +21959,7 @@ mode_hicolmcchar: { //SEG854 [457] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0|(const byte) VIC_MCM#0 -- _deref_pbuc1=vbuc2 lda #VIC_CSEL|VIC_MCM sta VIC_CONTROL2 - //SEG855 [458] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolmcchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_hicolmcchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG855 [458] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolmcchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_hicolmcchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // VIC Memory Pointers lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY @@ -21980,7 +21980,7 @@ mode_hicolmcchar: { sta DTV_PALETTE,x //SEG862 [461] (byte) mode_hicolmcchar::i#1 ← ++ (byte) mode_hicolmcchar::i#2 -- vbuxx=_inc_vbuxx inx - //SEG863 [462] if((byte) mode_hicolmcchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_hicolmcchar::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG863 [462] if((byte) mode_hicolmcchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_hicolmcchar::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1_from_b1 jmp b4 @@ -21990,13 +21990,13 @@ mode_hicolmcchar: { // Screen colors lda #0 sta BORDERCOL - //SEG866 [464] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 80 -- _deref_pbuc1=vbuc2 + //SEG866 [464] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) $50 -- _deref_pbuc1=vbuc2 lda #$50 sta BGCOL1 - //SEG867 [465] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 84 -- _deref_pbuc1=vbuc2 + //SEG867 [465] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) $54 -- _deref_pbuc1=vbuc2 lda #$54 sta BGCOL2 - //SEG868 [466] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) 88 -- _deref_pbuc1=vbuc2 + //SEG868 [466] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) $58 -- _deref_pbuc1=vbuc2 lda #$58 sta BGCOL3 //SEG869 [467] phi from mode_hicolmcchar::@4 to mode_hicolmcchar::@2 [phi:mode_hicolmcchar::@4->mode_hicolmcchar::@2] @@ -22038,7 +22038,7 @@ mode_hicolmcchar: { jmp b3 //SEG886 mode_hicolmcchar::@3 b3: - //SEG887 [469] (byte~) mode_hicolmcchar::$25 ← (byte) mode_hicolmcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG887 [469] (byte~) mode_hicolmcchar::$25 ← (byte) mode_hicolmcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and cy //SEG888 [470] (byte~) mode_hicolmcchar::$26 ← (byte~) mode_hicolmcchar::$25 << (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuaa_rol_4 @@ -22047,7 +22047,7 @@ mode_hicolmcchar: { asl asl sta _26 - //SEG889 [471] (byte~) mode_hicolmcchar::$27 ← (byte) mode_hicolmcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG889 [471] (byte~) mode_hicolmcchar::$27 ← (byte) mode_hicolmcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG890 [472] (byte) mode_hicolmcchar::v#0 ← (byte~) mode_hicolmcchar::$26 | (byte~) mode_hicolmcchar::$27 -- vbuaa=vbuz1_bor_vbuaa @@ -22070,7 +22070,7 @@ mode_hicolmcchar: { !: //SEG895 [477] (byte) mode_hicolmcchar::cx#1 ← ++ (byte) mode_hicolmcchar::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG896 [478] if((byte) mode_hicolmcchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_hicolmcchar::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG896 [478] if((byte) mode_hicolmcchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_hicolmcchar::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b3_from_b3 jmp b5 @@ -22078,7 +22078,7 @@ mode_hicolmcchar: { b5: //SEG898 [479] (byte) mode_hicolmcchar::cy#1 ← ++ (byte) mode_hicolmcchar::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG899 [480] if((byte) mode_hicolmcchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_hicolmcchar::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG899 [480] if((byte) mode_hicolmcchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_hicolmcchar::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2_from_b5 @@ -22121,15 +22121,15 @@ mode_hicolecmchar: { .label col = 2 .label ch = 5 .label cy = 4 - //SEG908 [484] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolecmchar::CHARSET#0/(dword/signed dword) 65536 -- _deref_pbuc1=vbuc2 + //SEG908 [484] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolecmchar::CHARSET#0/(dword/signed dword) $10000 -- _deref_pbuc1=vbuc2 // DTV Graphics Bank lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG909 [485] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG909 [485] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #COLORS/$400 sta DTV_COLOR_BANK_LO - //SEG910 [486] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG910 [486] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI //SEG911 [487] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0 -- _deref_pbuc1=vbuc2 @@ -22139,7 +22139,7 @@ mode_hicolecmchar: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG913 [489] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolecmchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG913 [489] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolecmchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^CHARSET/$4000 sta CIA2_PORT_A @@ -22151,7 +22151,7 @@ mode_hicolecmchar: { //SEG915 [491] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 -- _deref_pbuc1=vbuc2 lda #VIC_CSEL sta VIC_CONTROL2 - //SEG916 [492] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolecmchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_hicolecmchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG916 [492] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolecmchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_hicolecmchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // VIC Memory Pointers lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY @@ -22172,7 +22172,7 @@ mode_hicolecmchar: { sta DTV_PALETTE,x //SEG923 [495] (byte) mode_hicolecmchar::i#1 ← ++ (byte) mode_hicolecmchar::i#2 -- vbuxx=_inc_vbuxx inx - //SEG924 [496] if((byte) mode_hicolecmchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_hicolecmchar::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG924 [496] if((byte) mode_hicolecmchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_hicolecmchar::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1_from_b1 jmp b4 @@ -22182,16 +22182,16 @@ mode_hicolecmchar: { // Screen colors lda #0 sta BORDERCOL - //SEG927 [498] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 80 -- _deref_pbuc1=vbuc2 + //SEG927 [498] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) $50 -- _deref_pbuc1=vbuc2 lda #$50 sta BGCOL1 - //SEG928 [499] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 84 -- _deref_pbuc1=vbuc2 + //SEG928 [499] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) $54 -- _deref_pbuc1=vbuc2 lda #$54 sta BGCOL2 - //SEG929 [500] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) 88 -- _deref_pbuc1=vbuc2 + //SEG929 [500] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) $58 -- _deref_pbuc1=vbuc2 lda #$58 sta BGCOL3 - //SEG930 [501] *((const byte*) BGCOL4#0) ← (byte/signed byte/word/signed word/dword/signed dword) 92 -- _deref_pbuc1=vbuc2 + //SEG930 [501] *((const byte*) BGCOL4#0) ← (byte/signed byte/word/signed word/dword/signed dword) $5c -- _deref_pbuc1=vbuc2 lda #$5c sta BGCOL4 //SEG931 [502] phi from mode_hicolecmchar::@4 to mode_hicolecmchar::@2 [phi:mode_hicolecmchar::@4->mode_hicolecmchar::@2] @@ -22233,7 +22233,7 @@ mode_hicolecmchar: { jmp b3 //SEG948 mode_hicolecmchar::@3 b3: - //SEG949 [504] (byte~) mode_hicolecmchar::$25 ← (byte) mode_hicolecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG949 [504] (byte~) mode_hicolecmchar::$25 ← (byte) mode_hicolecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and cy //SEG950 [505] (byte~) mode_hicolecmchar::$26 ← (byte~) mode_hicolecmchar::$25 << (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuaa_rol_4 @@ -22242,7 +22242,7 @@ mode_hicolecmchar: { asl asl sta _26 - //SEG951 [506] (byte~) mode_hicolecmchar::$27 ← (byte) mode_hicolecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG951 [506] (byte~) mode_hicolecmchar::$27 ← (byte) mode_hicolecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG952 [507] (byte) mode_hicolecmchar::v#0 ← (byte~) mode_hicolecmchar::$26 | (byte~) mode_hicolecmchar::$27 -- vbuaa=vbuz1_bor_vbuaa @@ -22265,7 +22265,7 @@ mode_hicolecmchar: { !: //SEG957 [512] (byte) mode_hicolecmchar::cx#1 ← ++ (byte) mode_hicolecmchar::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG958 [513] if((byte) mode_hicolecmchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_hicolecmchar::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG958 [513] if((byte) mode_hicolecmchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_hicolecmchar::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b3_from_b3 jmp b5 @@ -22273,7 +22273,7 @@ mode_hicolecmchar: { b5: //SEG960 [514] (byte) mode_hicolecmchar::cy#1 ← ++ (byte) mode_hicolecmchar::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG961 [515] if((byte) mode_hicolecmchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_hicolecmchar::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG961 [515] if((byte) mode_hicolecmchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_hicolecmchar::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2_from_b5 @@ -22312,15 +22312,15 @@ mode_hicolstdchar: { .label col = 2 .label ch = 5 .label cy = 4 - //SEG970 [519] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolstdchar::CHARSET#0/(dword/signed dword) 65536 -- _deref_pbuc1=vbuc2 + //SEG970 [519] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolstdchar::CHARSET#0/(dword/signed dword) $10000 -- _deref_pbuc1=vbuc2 // DTV Graphics Bank lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG971 [520] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG971 [520] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #COLORS/$400 sta DTV_COLOR_BANK_LO - //SEG972 [521] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG972 [521] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI //SEG973 [522] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0 -- _deref_pbuc1=vbuc2 @@ -22330,7 +22330,7 @@ mode_hicolstdchar: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG975 [524] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolstdchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG975 [524] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolstdchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^CHARSET/$4000 sta CIA2_PORT_A @@ -22342,7 +22342,7 @@ mode_hicolstdchar: { //SEG977 [526] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 -- _deref_pbuc1=vbuc2 lda #VIC_CSEL sta VIC_CONTROL2 - //SEG978 [527] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolstdchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_hicolstdchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG978 [527] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolstdchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_hicolstdchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // VIC Memory Pointers lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY @@ -22363,7 +22363,7 @@ mode_hicolstdchar: { sta DTV_PALETTE,x //SEG985 [530] (byte) mode_hicolstdchar::i#1 ← ++ (byte) mode_hicolstdchar::i#2 -- vbuxx=_inc_vbuxx inx - //SEG986 [531] if((byte) mode_hicolstdchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_hicolstdchar::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG986 [531] if((byte) mode_hicolstdchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_hicolstdchar::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1_from_b1 jmp b4 @@ -22415,7 +22415,7 @@ mode_hicolstdchar: { jmp b3 //SEG1007 mode_hicolstdchar::@3 b3: - //SEG1008 [536] (byte~) mode_hicolstdchar::$24 ← (byte) mode_hicolstdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG1008 [536] (byte~) mode_hicolstdchar::$24 ← (byte) mode_hicolstdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and cy //SEG1009 [537] (byte~) mode_hicolstdchar::$25 ← (byte~) mode_hicolstdchar::$24 << (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuaa_rol_4 @@ -22424,7 +22424,7 @@ mode_hicolstdchar: { asl asl sta _25 - //SEG1010 [538] (byte~) mode_hicolstdchar::$26 ← (byte) mode_hicolstdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG1010 [538] (byte~) mode_hicolstdchar::$26 ← (byte) mode_hicolstdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG1011 [539] (byte) mode_hicolstdchar::v#0 ← (byte~) mode_hicolstdchar::$25 | (byte~) mode_hicolstdchar::$26 -- vbuaa=vbuz1_bor_vbuaa @@ -22447,7 +22447,7 @@ mode_hicolstdchar: { !: //SEG1016 [544] (byte) mode_hicolstdchar::cx#1 ← ++ (byte) mode_hicolstdchar::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG1017 [545] if((byte) mode_hicolstdchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_hicolstdchar::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG1017 [545] if((byte) mode_hicolstdchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_hicolstdchar::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b3_from_b3 jmp b5 @@ -22455,7 +22455,7 @@ mode_hicolstdchar: { b5: //SEG1019 [546] (byte) mode_hicolstdchar::cy#1 ← ++ (byte) mode_hicolstdchar::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1020 [547] if((byte) mode_hicolstdchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_hicolstdchar::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG1020 [547] if((byte) mode_hicolstdchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_hicolstdchar::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2_from_b5 @@ -22493,7 +22493,7 @@ mode_stdbitmap: { .label ch = 2 .label cy = 4 .label l = 4 - //SEG1029 [551] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdbitmap::BITMAP#0/(dword/signed dword) 65536 -- _deref_pbuc1=vbuc2 + //SEG1029 [551] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdbitmap::BITMAP#0/(dword/signed dword) $10000 -- _deref_pbuc1=vbuc2 // DTV Graphics Bank lda #($ffffffff&BITMAP)/$10000 sta DTV_GRAPHICS_VIC_BANK @@ -22504,7 +22504,7 @@ mode_stdbitmap: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG1032 [554] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdbitmap::BITMAP#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG1032 [554] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdbitmap::BITMAP#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^BITMAP/$4000 sta CIA2_PORT_A @@ -22516,7 +22516,7 @@ mode_stdbitmap: { //SEG1034 [556] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 -- _deref_pbuc1=vbuc2 lda #VIC_CSEL sta VIC_CONTROL2 - //SEG1035 [557] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdbitmap::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_stdbitmap::BITMAP#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1035 [557] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdbitmap::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_stdbitmap::BITMAP#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // VIC Memory Pointers lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400 sta VIC_MEMORY @@ -22532,12 +22532,12 @@ mode_stdbitmap: { jmp b1 //SEG1040 mode_stdbitmap::@1 b1: - //SEG1041 [559] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdbitmap::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdbitmap::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG1041 [559] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdbitmap::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdbitmap::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda DTV_PALETTE_DEFAULT,x sta DTV_PALETTE,x //SEG1042 [560] (byte) mode_stdbitmap::i#1 ← ++ (byte) mode_stdbitmap::i#2 -- vbuxx=_inc_vbuxx inx - //SEG1043 [561] if((byte) mode_stdbitmap::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_stdbitmap::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG1043 [561] if((byte) mode_stdbitmap::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_stdbitmap::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1_from_b1 jmp b5 @@ -22585,10 +22585,10 @@ mode_stdbitmap: { txa clc adc cy - //SEG1062 [567] (byte) mode_stdbitmap::col#0 ← (byte~) mode_stdbitmap::$19 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuyy=vbuaa_band_vbuc1 + //SEG1062 [567] (byte) mode_stdbitmap::col#0 ← (byte~) mode_stdbitmap::$19 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuyy=vbuaa_band_vbuc1 and #$f tay - //SEG1063 [568] (byte) mode_stdbitmap::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) mode_stdbitmap::col#0 -- vbuz1=vbuc1_minus_vbuyy + //SEG1063 [568] (byte) mode_stdbitmap::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f - (byte) mode_stdbitmap::col#0 -- vbuz1=vbuc1_minus_vbuyy tya eor #$ff clc @@ -22612,7 +22612,7 @@ mode_stdbitmap: { !: //SEG1068 [573] (byte) mode_stdbitmap::cx#1 ← ++ (byte) mode_stdbitmap::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG1069 [574] if((byte) mode_stdbitmap::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_stdbitmap::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG1069 [574] if((byte) mode_stdbitmap::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_stdbitmap::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b3_from_b3 jmp b6 @@ -22620,7 +22620,7 @@ mode_stdbitmap: { b6: //SEG1071 [575] (byte) mode_stdbitmap::cy#1 ← ++ (byte) mode_stdbitmap::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1072 [576] if((byte) mode_stdbitmap::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_stdbitmap::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG1072 [576] if((byte) mode_stdbitmap::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_stdbitmap::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2_from_b6 @@ -23039,12 +23039,12 @@ bitmap_plot: { .label _0 = 2 .label plotter_x = 2 .label plotter_y = 5 - //SEG1255 [670] (word) bitmap_plot::plotter_x#0 ← *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx + //SEG1255 [670] (word) bitmap_plot::plotter_x#0 ← *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx lda bitmap_plot_xhi,x sta plotter_x+1 lda bitmap_plot_xlo,x sta plotter_x - //SEG1256 [671] (word) bitmap_plot::plotter_y#0 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) -- vwuz1=pbuc1_derefidx_vbuyy_word_pbuc2_derefidx_vbuyy + //SEG1256 [671] (word) bitmap_plot::plotter_y#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) -- vwuz1=pbuc1_derefidx_vbuyy_word_pbuc2_derefidx_vbuyy lda bitmap_plot_yhi,y sta plotter_y+1 lda bitmap_plot_ylo,y @@ -23057,7 +23057,7 @@ bitmap_plot: { lda _0+1 adc plotter_y+1 sta _0+1 - //SEG1258 [673] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) -- vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx + //SEG1258 [673] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) -- vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx lda bitmap_plot_bit,x ldy #0 ora (_0),y @@ -23302,7 +23302,7 @@ bitmap_clear: { .label bitmap = 2 .label y = 4 .label _3 = 2 - //SEG1347 [721] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_xhi#0) w= *((const byte[256]) bitmap_plot_xlo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 + //SEG1347 [721] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_xhi#0) w= *((const byte[$100]) bitmap_plot_xlo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 lda bitmap_plot_xlo sta _3 lda bitmap_plot_xhi @@ -23346,7 +23346,7 @@ bitmap_clear: { !: //SEG1365 [727] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 -- vbuxx=_inc_vbuxx inx - //SEG1366 [728] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) 200) goto bitmap_clear::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG1366 [728] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) $c8) goto bitmap_clear::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$c8 bne b2_from_b2 jmp b3 @@ -23354,7 +23354,7 @@ bitmap_clear: { b3: //SEG1368 [729] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 -- vbuz1=_inc_vbuz1 inc y - //SEG1369 [730] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1369 [730] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$28 bne b1_from_b3 @@ -23371,7 +23371,7 @@ bitmap_init: { .label yoffs = 2 //SEG1373 [733] phi from bitmap_init to bitmap_init::@1 [phi:bitmap_init->bitmap_init::@1] b1_from_bitmap_init: - //SEG1374 [733] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init->bitmap_init::@1#0] -- vbuyy=vbuc1 + //SEG1374 [733] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init->bitmap_init::@1#0] -- vbuyy=vbuc1 ldy #$80 //SEG1375 [733] phi (byte) bitmap_init::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:bitmap_init->bitmap_init::@1#1] -- vbuxx=vbuc1 ldx #0 @@ -23383,15 +23383,15 @@ bitmap_init: { jmp b1 //SEG1379 bitmap_init::@1 b1: - //SEG1380 [734] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) 248 -- vbuaa=vbuxx_band_vbuc1 + //SEG1380 [734] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) $f8 -- vbuaa=vbuxx_band_vbuc1 txa and #$f8 - //SEG1381 [735] *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG1381 [735] *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_xlo,x - //SEG1382 [736] *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) mode_stdbitmap::BITMAP#0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG1382 [736] *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) mode_stdbitmap::BITMAP#0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #>mode_stdbitmap.BITMAP sta bitmap_plot_xhi,x - //SEG1383 [737] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuxx=vbuyy + //SEG1383 [737] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuxx=vbuyy tya sta bitmap_plot_bit,x //SEG1384 [738] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuyy_ror_1 @@ -23403,7 +23403,7 @@ bitmap_init: { bne b10_from_b1 //SEG1386 [740] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2] b2_from_b1: - //SEG1387 [740] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuyy=vbuc1 + //SEG1387 [740] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuyy=vbuc1 ldy #$80 jmp b2 //SEG1388 bitmap_init::@2 @@ -23438,11 +23438,11 @@ bitmap_init: { lda yoffs //SEG1400 [746] (byte~) bitmap_init::$8 ← (byte~) bitmap_init::$6 | (byte~) bitmap_init::$7 -- vbuaa=vbuz1_bor_vbuaa ora _6 - //SEG1401 [747] *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG1401 [747] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_ylo,x //SEG1402 [748] (byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2 -- vbuaa=_hi_pbuz1 lda yoffs+1 - //SEG1403 [749] *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG1403 [749] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_yhi,x //SEG1404 [750] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuxx_band_vbuc1 txa @@ -23453,7 +23453,7 @@ bitmap_init: { jmp b7 //SEG1406 bitmap_init::@7 b7: - //SEG1407 [752] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 + //SEG1407 [752] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 clc lda yoffs adc #<$28*8 @@ -23510,15 +23510,15 @@ mode_mcchar: { .label col = 2 .label ch = 5 .label cy = 4 - //SEG1420 [758] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_mcchar::CHARSET#0/(dword/signed dword) 65536 -- _deref_pbuc1=vbuc2 + //SEG1420 [758] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_mcchar::CHARSET#0/(dword/signed dword) $10000 -- _deref_pbuc1=vbuc2 // DTV Graphics Bank lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG1421 [759] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1421 [759] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #DTV_COLOR_BANK_DEFAULT/$400 sta DTV_COLOR_BANK_LO - //SEG1422 [760] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1422 [760] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI //SEG1423 [761] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 @@ -23528,7 +23528,7 @@ mode_mcchar: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG1425 [763] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_mcchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG1425 [763] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_mcchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^CHARSET/$4000 sta CIA2_PORT_A @@ -23540,7 +23540,7 @@ mode_mcchar: { //SEG1427 [765] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0|(const byte) VIC_MCM#0 -- _deref_pbuc1=vbuc2 lda #VIC_CSEL|VIC_MCM sta VIC_CONTROL2 - //SEG1428 [766] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_mcchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_mcchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1428 [766] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_mcchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_mcchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // VIC Memory Pointers lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY @@ -23556,12 +23556,12 @@ mode_mcchar: { jmp b1 //SEG1433 mode_mcchar::@1 b1: - //SEG1434 [768] *((const byte*) DTV_PALETTE#0 + (byte) mode_mcchar::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_mcchar::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG1434 [768] *((const byte*) DTV_PALETTE#0 + (byte) mode_mcchar::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_mcchar::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda DTV_PALETTE_DEFAULT,x sta DTV_PALETTE,x //SEG1435 [769] (byte) mode_mcchar::i#1 ← ++ (byte) mode_mcchar::i#2 -- vbuxx=_inc_vbuxx inx - //SEG1436 [770] if((byte) mode_mcchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_mcchar::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG1436 [770] if((byte) mode_mcchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_mcchar::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1_from_b1 jmp b4 @@ -23623,7 +23623,7 @@ mode_mcchar: { txa clc adc cy - //SEG1461 [778] (byte~) mode_mcchar::$26 ← (byte~) mode_mcchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuaa_band_vbuc1 + //SEG1461 [778] (byte~) mode_mcchar::$26 ← (byte~) mode_mcchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuaa_band_vbuc1 and #$f //SEG1462 [779] *((byte*) mode_mcchar::col#2) ← (byte~) mode_mcchar::$26 -- _deref_pbuz1=vbuaa ldy #0 @@ -23633,7 +23633,7 @@ mode_mcchar: { bne !+ inc col+1 !: - //SEG1464 [781] (byte~) mode_mcchar::$27 ← (byte) mode_mcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG1464 [781] (byte~) mode_mcchar::$27 ← (byte) mode_mcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and cy //SEG1465 [782] (byte~) mode_mcchar::$28 ← (byte~) mode_mcchar::$27 << (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuaa_rol_4 @@ -23642,7 +23642,7 @@ mode_mcchar: { asl asl sta _28 - //SEG1466 [783] (byte~) mode_mcchar::$29 ← (byte) mode_mcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG1466 [783] (byte~) mode_mcchar::$29 ← (byte) mode_mcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG1467 [784] (byte~) mode_mcchar::$30 ← (byte~) mode_mcchar::$28 | (byte~) mode_mcchar::$29 -- vbuaa=vbuz1_bor_vbuaa @@ -23657,7 +23657,7 @@ mode_mcchar: { !: //SEG1470 [787] (byte) mode_mcchar::cx#1 ← ++ (byte) mode_mcchar::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG1471 [788] if((byte) mode_mcchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_mcchar::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG1471 [788] if((byte) mode_mcchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_mcchar::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b3_from_b3 jmp b5 @@ -23665,7 +23665,7 @@ mode_mcchar: { b5: //SEG1473 [789] (byte) mode_mcchar::cy#1 ← ++ (byte) mode_mcchar::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1474 [790] if((byte) mode_mcchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_mcchar::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG1474 [790] if((byte) mode_mcchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_mcchar::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2_from_b5 @@ -23708,15 +23708,15 @@ mode_ecmchar: { .label col = 2 .label ch = 5 .label cy = 4 - //SEG1483 [794] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_ecmchar::CHARSET#0/(dword/signed dword) 65536 -- _deref_pbuc1=vbuc2 + //SEG1483 [794] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_ecmchar::CHARSET#0/(dword/signed dword) $10000 -- _deref_pbuc1=vbuc2 // DTV Graphics Bank lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG1484 [795] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1484 [795] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #DTV_COLOR_BANK_DEFAULT/$400 sta DTV_COLOR_BANK_LO - //SEG1485 [796] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1485 [796] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI //SEG1486 [797] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 @@ -23726,7 +23726,7 @@ mode_ecmchar: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG1488 [799] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_ecmchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG1488 [799] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_ecmchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^CHARSET/$4000 sta CIA2_PORT_A @@ -23738,7 +23738,7 @@ mode_ecmchar: { //SEG1490 [801] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 -- _deref_pbuc1=vbuc2 lda #VIC_CSEL sta VIC_CONTROL2 - //SEG1491 [802] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_ecmchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_ecmchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1491 [802] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_ecmchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_ecmchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // VIC Memory Pointers lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY @@ -23754,12 +23754,12 @@ mode_ecmchar: { jmp b1 //SEG1496 mode_ecmchar::@1 b1: - //SEG1497 [804] *((const byte*) DTV_PALETTE#0 + (byte) mode_ecmchar::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_ecmchar::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG1497 [804] *((const byte*) DTV_PALETTE#0 + (byte) mode_ecmchar::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_ecmchar::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda DTV_PALETTE_DEFAULT,x sta DTV_PALETTE,x //SEG1498 [805] (byte) mode_ecmchar::i#1 ← ++ (byte) mode_ecmchar::i#2 -- vbuxx=_inc_vbuxx inx - //SEG1499 [806] if((byte) mode_ecmchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_ecmchar::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG1499 [806] if((byte) mode_ecmchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_ecmchar::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1_from_b1 jmp b4 @@ -23824,7 +23824,7 @@ mode_ecmchar: { txa clc adc cy - //SEG1525 [815] (byte~) mode_ecmchar::$26 ← (byte~) mode_ecmchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuaa_band_vbuc1 + //SEG1525 [815] (byte~) mode_ecmchar::$26 ← (byte~) mode_ecmchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuaa_band_vbuc1 and #$f //SEG1526 [816] *((byte*) mode_ecmchar::col#2) ← (byte~) mode_ecmchar::$26 -- _deref_pbuz1=vbuaa ldy #0 @@ -23834,7 +23834,7 @@ mode_ecmchar: { bne !+ inc col+1 !: - //SEG1528 [818] (byte~) mode_ecmchar::$27 ← (byte) mode_ecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG1528 [818] (byte~) mode_ecmchar::$27 ← (byte) mode_ecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and cy //SEG1529 [819] (byte~) mode_ecmchar::$28 ← (byte~) mode_ecmchar::$27 << (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuaa_rol_4 @@ -23843,7 +23843,7 @@ mode_ecmchar: { asl asl sta _28 - //SEG1530 [820] (byte~) mode_ecmchar::$29 ← (byte) mode_ecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG1530 [820] (byte~) mode_ecmchar::$29 ← (byte) mode_ecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG1531 [821] (byte~) mode_ecmchar::$30 ← (byte~) mode_ecmchar::$28 | (byte~) mode_ecmchar::$29 -- vbuaa=vbuz1_bor_vbuaa @@ -23858,7 +23858,7 @@ mode_ecmchar: { !: //SEG1534 [824] (byte) mode_ecmchar::cx#1 ← ++ (byte) mode_ecmchar::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG1535 [825] if((byte) mode_ecmchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_ecmchar::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG1535 [825] if((byte) mode_ecmchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_ecmchar::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b3_from_b3 jmp b5 @@ -23866,7 +23866,7 @@ mode_ecmchar: { b5: //SEG1537 [826] (byte) mode_ecmchar::cy#1 ← ++ (byte) mode_ecmchar::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1538 [827] if((byte) mode_ecmchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_ecmchar::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG1538 [827] if((byte) mode_ecmchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_ecmchar::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2_from_b5 @@ -23905,15 +23905,15 @@ mode_stdchar: { .label col = 2 .label ch = 5 .label cy = 4 - //SEG1547 [831] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdchar::CHARSET#0/(dword/signed dword) 65536 -- _deref_pbuc1=vbuc2 + //SEG1547 [831] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdchar::CHARSET#0/(dword/signed dword) $10000 -- _deref_pbuc1=vbuc2 // DTV Graphics Bank lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG1548 [832] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1548 [832] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #DTV_COLOR_BANK_DEFAULT/$400 sta DTV_COLOR_BANK_LO - //SEG1549 [833] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1549 [833] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI //SEG1550 [834] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 @@ -23923,7 +23923,7 @@ mode_stdchar: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG1552 [836] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG1552 [836] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^CHARSET/$4000 sta CIA2_PORT_A @@ -23935,7 +23935,7 @@ mode_stdchar: { //SEG1554 [838] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 -- _deref_pbuc1=vbuc2 lda #VIC_CSEL sta VIC_CONTROL2 - //SEG1555 [839] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_stdchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1555 [839] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_stdchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // VIC Memory Pointers lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY @@ -23951,12 +23951,12 @@ mode_stdchar: { jmp b1 //SEG1560 mode_stdchar::@1 b1: - //SEG1561 [841] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdchar::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdchar::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG1561 [841] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdchar::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdchar::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda DTV_PALETTE_DEFAULT,x sta DTV_PALETTE,x //SEG1562 [842] (byte) mode_stdchar::i#1 ← ++ (byte) mode_stdchar::i#2 -- vbuxx=_inc_vbuxx inx - //SEG1563 [843] if((byte) mode_stdchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_stdchar::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG1563 [843] if((byte) mode_stdchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_stdchar::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1_from_b1 jmp b4 @@ -24012,7 +24012,7 @@ mode_stdchar: { txa clc adc cy - //SEG1586 [849] (byte~) mode_stdchar::$25 ← (byte~) mode_stdchar::$24 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuaa_band_vbuc1 + //SEG1586 [849] (byte~) mode_stdchar::$25 ← (byte~) mode_stdchar::$24 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuaa_band_vbuc1 and #$f //SEG1587 [850] *((byte*) mode_stdchar::col#2) ← (byte~) mode_stdchar::$25 -- _deref_pbuz1=vbuaa ldy #0 @@ -24022,7 +24022,7 @@ mode_stdchar: { bne !+ inc col+1 !: - //SEG1589 [852] (byte~) mode_stdchar::$26 ← (byte) mode_stdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG1589 [852] (byte~) mode_stdchar::$26 ← (byte) mode_stdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and cy //SEG1590 [853] (byte~) mode_stdchar::$27 ← (byte~) mode_stdchar::$26 << (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuaa_rol_4 @@ -24031,7 +24031,7 @@ mode_stdchar: { asl asl sta _27 - //SEG1591 [854] (byte~) mode_stdchar::$28 ← (byte) mode_stdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG1591 [854] (byte~) mode_stdchar::$28 ← (byte) mode_stdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG1592 [855] (byte~) mode_stdchar::$29 ← (byte~) mode_stdchar::$27 | (byte~) mode_stdchar::$28 -- vbuaa=vbuz1_bor_vbuaa @@ -24046,7 +24046,7 @@ mode_stdchar: { !: //SEG1595 [858] (byte) mode_stdchar::cx#1 ← ++ (byte) mode_stdchar::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG1596 [859] if((byte) mode_stdchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_stdchar::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG1596 [859] if((byte) mode_stdchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_stdchar::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b3_from_b3 jmp b5 @@ -24054,7 +24054,7 @@ mode_stdchar: { b5: //SEG1598 [860] (byte) mode_stdchar::cy#1 ← ++ (byte) mode_stdchar::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1599 [861] if((byte) mode_stdchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_stdchar::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG1599 [861] if((byte) mode_stdchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_stdchar::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2_from_b5 @@ -24183,7 +24183,7 @@ print_ln: { jmp b1 //SEG1642 print_ln::@1 b1: - //SEG1643 [882] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG1643 [882] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -24233,7 +24233,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG1655 [889] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG1655 [889] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>menu.SCREEN+$3e8 bne b1_from_b1 @@ -25161,40 +25161,40 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL1 -(const byte*) BGCOL1#0 BGCOL1 = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL1#0 BGCOL1 = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL2 -(const byte*) BGCOL2#0 BGCOL2 = ((byte*))(word/dword/signed dword) 53282 +(const byte*) BGCOL2#0 BGCOL2 = ((byte*))(word/dword/signed dword) $d022 (byte*) BGCOL3 -(const byte*) BGCOL3#0 BGCOL3 = ((byte*))(word/dword/signed dword) 53283 +(const byte*) BGCOL3#0 BGCOL3 = ((byte*))(word/dword/signed dword) $d023 (byte*) BGCOL4 -(const byte*) BGCOL4#0 BGCOL4 = ((byte*))(word/dword/signed dword) 53284 +(const byte*) BGCOL4#0 BGCOL4 = ((byte*))(word/dword/signed dword) $d024 (byte) BLACK (const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) BLUE (const byte) BLUE#0 BLUE = (byte/signed byte/word/signed word/dword/signed dword) 6 (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN (byte*) CIA1_INTERRUPT (byte*) CIA1_PORT_A -(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) 56320 +(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) $dc00 (byte*) CIA1_PORT_A_DDR (byte*) CIA1_PORT_B -(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) 56321 +(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) $dc01 (byte*) CIA1_PORT_B_DDR (byte*) CIA2_INTERRUPT (byte*) CIA2_PORT_A -(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) 56576 +(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) $dd00 (byte*) CIA2_PORT_A_DDR -(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56578 +(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) $dd02 (byte*) CIA2_PORT_B (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR (byte*) COLS -(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) 55296 +(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) $d800 (byte) CYAN (byte*) D011 (byte*) D016 @@ -25268,25 +25268,25 @@ FINAL SYMBOL TABLE (byte) DTV_BORDER_OFF (const byte) DTV_BORDER_OFF#0 DTV_BORDER_OFF = (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_CHUNKY -(const byte) DTV_CHUNKY#0 DTV_CHUNKY = (byte/signed byte/word/signed word/dword/signed dword) 64 +(const byte) DTV_CHUNKY#0 DTV_CHUNKY = (byte/signed byte/word/signed word/dword/signed dword) $40 (byte) DTV_COLORRAM_OFF -(const byte) DTV_COLORRAM_OFF#0 DTV_COLORRAM_OFF = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) DTV_COLORRAM_OFF#0 DTV_COLORRAM_OFF = (byte/signed byte/word/signed word/dword/signed dword) $10 (dword) DTV_COLOR_BANK_DEFAULT -(const dword) DTV_COLOR_BANK_DEFAULT#0 DTV_COLOR_BANK_DEFAULT = (dword/signed dword) 120832 +(const dword) DTV_COLOR_BANK_DEFAULT#0 DTV_COLOR_BANK_DEFAULT = (dword/signed dword) $1d800 (byte*) DTV_COLOR_BANK_HI -(const byte*) DTV_COLOR_BANK_HI#0 DTV_COLOR_BANK_HI = ((byte*))(word/dword/signed dword) 53303 +(const byte*) DTV_COLOR_BANK_HI#0 DTV_COLOR_BANK_HI = ((byte*))(word/dword/signed dword) $d037 (byte*) DTV_COLOR_BANK_LO -(const byte*) DTV_COLOR_BANK_LO#0 DTV_COLOR_BANK_LO = ((byte*))(word/dword/signed dword) 53302 +(const byte*) DTV_COLOR_BANK_LO#0 DTV_COLOR_BANK_LO = ((byte*))(word/dword/signed dword) $d036 (byte*) DTV_CONTROL -(const byte*) DTV_CONTROL#0 DTV_CONTROL = ((byte*))(word/dword/signed dword) 53308 +(const byte*) DTV_CONTROL#0 DTV_CONTROL = ((byte*))(word/dword/signed dword) $d03c (byte*) DTV_FEATURE -(const byte*) DTV_FEATURE#0 DTV_FEATURE = ((byte*))(word/dword/signed dword) 53311 +(const byte*) DTV_FEATURE#0 DTV_FEATURE = ((byte*))(word/dword/signed dword) $d03f (byte) DTV_FEATURE_DISABLE_TIL_RESET (byte) DTV_FEATURE_ENABLE (const byte) DTV_FEATURE_ENABLE#0 DTV_FEATURE_ENABLE = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) DTV_GRAPHICS_HICOL_BANK (byte*) DTV_GRAPHICS_VIC_BANK -(const byte*) DTV_GRAPHICS_VIC_BANK#0 DTV_GRAPHICS_VIC_BANK = ((byte*))(word/dword/signed dword) 53309 +(const byte*) DTV_GRAPHICS_VIC_BANK#0 DTV_GRAPHICS_VIC_BANK = ((byte*))(word/dword/signed dword) $d03d (byte) DTV_HIGHCOLOR (const byte) DTV_HIGHCOLOR#0 DTV_HIGHCOLOR = (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DTV_LINEAR @@ -25294,33 +25294,33 @@ FINAL SYMBOL TABLE (byte) DTV_OVERSCAN (const byte) DTV_OVERSCAN#0 DTV_OVERSCAN = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte*) DTV_PALETTE -(const byte*) DTV_PALETTE#0 DTV_PALETTE = ((byte*))(word/dword/signed dword) 53760 -(byte[16]) DTV_PALETTE_DEFAULT -(const byte[16]) DTV_PALETTE_DEFAULT#0 DTV_PALETTE_DEFAULT = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 54, (byte/word/signed word/dword/signed dword) 190, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 219, (byte/word/signed word/dword/signed dword) 134, (byte/word/signed word/dword/signed dword) 255, (byte/signed byte/word/signed word/dword/signed dword) 41, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 59, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 154, (byte/signed byte/word/signed word/dword/signed dword) 10 } +(const byte*) DTV_PALETTE#0 DTV_PALETTE = ((byte*))(word/dword/signed dword) $d200 +(byte[$10]) DTV_PALETTE_DEFAULT +(const byte[$10]) DTV_PALETTE_DEFAULT#0 DTV_PALETTE_DEFAULT = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $36, (byte/word/signed word/dword/signed dword) $be, (byte/signed byte/word/signed word/dword/signed dword) $58, (byte/word/signed word/dword/signed dword) $db, (byte/word/signed word/dword/signed dword) $86, (byte/word/signed word/dword/signed dword) $ff, (byte/signed byte/word/signed word/dword/signed dword) $29, (byte/signed byte/word/signed word/dword/signed dword) $26, (byte/signed byte/word/signed word/dword/signed dword) $3b, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $9a, (byte/signed byte/word/signed word/dword/signed dword) $a } (byte*) DTV_PLANEA_MODULO_HI -(const byte*) DTV_PLANEA_MODULO_HI#0 DTV_PLANEA_MODULO_HI = ((byte*))(word/dword/signed dword) 53305 +(const byte*) DTV_PLANEA_MODULO_HI#0 DTV_PLANEA_MODULO_HI = ((byte*))(word/dword/signed dword) $d039 (byte*) DTV_PLANEA_MODULO_LO -(const byte*) DTV_PLANEA_MODULO_LO#0 DTV_PLANEA_MODULO_LO = ((byte*))(word/dword/signed dword) 53304 +(const byte*) DTV_PLANEA_MODULO_LO#0 DTV_PLANEA_MODULO_LO = ((byte*))(word/dword/signed dword) $d038 (byte*) DTV_PLANEA_START_HI -(const byte*) DTV_PLANEA_START_HI#0 DTV_PLANEA_START_HI = ((byte*))(word/dword/signed dword) 53317 +(const byte*) DTV_PLANEA_START_HI#0 DTV_PLANEA_START_HI = ((byte*))(word/dword/signed dword) $d045 (byte*) DTV_PLANEA_START_LO -(const byte*) DTV_PLANEA_START_LO#0 DTV_PLANEA_START_LO = ((byte*))(word/dword/signed dword) 53306 +(const byte*) DTV_PLANEA_START_LO#0 DTV_PLANEA_START_LO = ((byte*))(word/dword/signed dword) $d03a (byte*) DTV_PLANEA_START_MI -(const byte*) DTV_PLANEA_START_MI#0 DTV_PLANEA_START_MI = ((byte*))(word/dword/signed dword) 53307 +(const byte*) DTV_PLANEA_START_MI#0 DTV_PLANEA_START_MI = ((byte*))(word/dword/signed dword) $d03b (byte*) DTV_PLANEA_STEP -(const byte*) DTV_PLANEA_STEP#0 DTV_PLANEA_STEP = ((byte*))(word/dword/signed dword) 53318 +(const byte*) DTV_PLANEA_STEP#0 DTV_PLANEA_STEP = ((byte*))(word/dword/signed dword) $d046 (byte*) DTV_PLANEB_MODULO_HI -(const byte*) DTV_PLANEB_MODULO_HI#0 DTV_PLANEB_MODULO_HI = ((byte*))(word/dword/signed dword) 53320 +(const byte*) DTV_PLANEB_MODULO_HI#0 DTV_PLANEB_MODULO_HI = ((byte*))(word/dword/signed dword) $d048 (byte*) DTV_PLANEB_MODULO_LO -(const byte*) DTV_PLANEB_MODULO_LO#0 DTV_PLANEB_MODULO_LO = ((byte*))(word/dword/signed dword) 53319 +(const byte*) DTV_PLANEB_MODULO_LO#0 DTV_PLANEB_MODULO_LO = ((byte*))(word/dword/signed dword) $d047 (byte*) DTV_PLANEB_START_HI -(const byte*) DTV_PLANEB_START_HI#0 DTV_PLANEB_START_HI = ((byte*))(word/dword/signed dword) 53323 +(const byte*) DTV_PLANEB_START_HI#0 DTV_PLANEB_START_HI = ((byte*))(word/dword/signed dword) $d04b (byte*) DTV_PLANEB_START_LO -(const byte*) DTV_PLANEB_START_LO#0 DTV_PLANEB_START_LO = ((byte*))(word/dword/signed dword) 53321 +(const byte*) DTV_PLANEB_START_LO#0 DTV_PLANEB_START_LO = ((byte*))(word/dword/signed dword) $d049 (byte*) DTV_PLANEB_START_MI -(const byte*) DTV_PLANEB_START_MI#0 DTV_PLANEB_START_MI = ((byte*))(word/dword/signed dword) 53322 +(const byte*) DTV_PLANEB_START_MI#0 DTV_PLANEB_START_MI = ((byte*))(word/dword/signed dword) $d04a (byte*) DTV_PLANEB_STEP -(const byte*) DTV_PLANEB_STEP#0 DTV_PLANEB_STEP = ((byte*))(word/dword/signed dword) 53324 +(const byte*) DTV_PLANEB_STEP#0 DTV_PLANEB_STEP = ((byte*))(word/dword/signed dword) $d04c (byte*) DTV_SPRITE_BANK (byte) GREEN (const byte) GREEN#0 GREEN = (byte/signed byte/word/signed word/dword/signed dword) 5 @@ -25334,33 +25334,33 @@ FINAL SYMBOL TABLE (byte*) IRQ_STATUS (void()**) KERNEL_IRQ (byte) KEY_0 -(const byte) KEY_0#0 KEY_0 = (byte/signed byte/word/signed word/dword/signed dword) 35 +(const byte) KEY_0#0 KEY_0 = (byte/signed byte/word/signed word/dword/signed dword) $23 (byte) KEY_1 -(const byte) KEY_1#0 KEY_1 = (byte/signed byte/word/signed word/dword/signed dword) 56 +(const byte) KEY_1#0 KEY_1 = (byte/signed byte/word/signed word/dword/signed dword) $38 (byte) KEY_2 -(const byte) KEY_2#0 KEY_2 = (byte/signed byte/word/signed word/dword/signed dword) 59 +(const byte) KEY_2#0 KEY_2 = (byte/signed byte/word/signed word/dword/signed dword) $3b (byte) KEY_3 (const byte) KEY_3#0 KEY_3 = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) KEY_4 -(const byte) KEY_4#0 KEY_4 = (byte/signed byte/word/signed word/dword/signed dword) 11 +(const byte) KEY_4#0 KEY_4 = (byte/signed byte/word/signed word/dword/signed dword) $b (byte) KEY_5 (byte) KEY_6 -(const byte) KEY_6#0 KEY_6 = (byte/signed byte/word/signed word/dword/signed dword) 19 +(const byte) KEY_6#0 KEY_6 = (byte/signed byte/word/signed word/dword/signed dword) $13 (byte) KEY_7 -(const byte) KEY_7#0 KEY_7 = (byte/signed byte/word/signed word/dword/signed dword) 24 +(const byte) KEY_7#0 KEY_7 = (byte/signed byte/word/signed word/dword/signed dword) $18 (byte) KEY_8 -(const byte) KEY_8#0 KEY_8 = (byte/signed byte/word/signed word/dword/signed dword) 27 +(const byte) KEY_8#0 KEY_8 = (byte/signed byte/word/signed word/dword/signed dword) $1b (byte) KEY_9 (byte) KEY_A -(const byte) KEY_A#0 KEY_A = (byte/signed byte/word/signed word/dword/signed dword) 10 +(const byte) KEY_A#0 KEY_A = (byte/signed byte/word/signed word/dword/signed dword) $a (byte) KEY_ARROW_LEFT (byte) KEY_ARROW_UP (byte) KEY_ASTERISK (byte) KEY_AT (byte) KEY_B -(const byte) KEY_B#0 KEY_B = (byte/signed byte/word/signed word/dword/signed dword) 28 +(const byte) KEY_B#0 KEY_B = (byte/signed byte/word/signed word/dword/signed dword) $1c (byte) KEY_C -(const byte) KEY_C#0 KEY_C = (byte/signed byte/word/signed word/dword/signed dword) 20 +(const byte) KEY_C#0 KEY_C = (byte/signed byte/word/signed word/dword/signed dword) $14 (byte) KEY_COLON (byte) KEY_COMMA (byte) KEY_COMMODORE @@ -25368,11 +25368,11 @@ FINAL SYMBOL TABLE (byte) KEY_CRSR_RIGHT (byte) KEY_CTRL (byte) KEY_D -(const byte) KEY_D#0 KEY_D = (byte/signed byte/word/signed word/dword/signed dword) 18 +(const byte) KEY_D#0 KEY_D = (byte/signed byte/word/signed word/dword/signed dword) $12 (byte) KEY_DEL (byte) KEY_DOT (byte) KEY_E -(const byte) KEY_E#0 KEY_E = (byte/signed byte/word/signed word/dword/signed dword) 14 +(const byte) KEY_E#0 KEY_E = (byte/signed byte/word/signed word/dword/signed dword) $e (byte) KEY_EQUALS (byte) KEY_F (byte) KEY_F1 @@ -25381,13 +25381,13 @@ FINAL SYMBOL TABLE (byte) KEY_F7 (byte) KEY_G (byte) KEY_H -(const byte) KEY_H#0 KEY_H = (byte/signed byte/word/signed word/dword/signed dword) 29 +(const byte) KEY_H#0 KEY_H = (byte/signed byte/word/signed word/dword/signed dword) $1d (byte) KEY_HOME (byte) KEY_I (byte) KEY_J (byte) KEY_K (byte) KEY_L -(const byte) KEY_L#0 KEY_L = (byte/signed byte/word/signed word/dword/signed dword) 42 +(const byte) KEY_L#0 KEY_L = (byte/signed byte/word/signed word/dword/signed dword) $2a (byte) KEY_LSHIFT (byte) KEY_M (byte) KEY_MINUS @@ -25398,7 +25398,7 @@ FINAL SYMBOL TABLE (byte) KEY_MODIFIER_SHIFT (byte) KEY_N (byte) KEY_O -(const byte) KEY_O#0 KEY_O = (byte/signed byte/word/signed word/dword/signed dword) 38 +(const byte) KEY_O#0 KEY_O = (byte/signed byte/word/signed word/dword/signed dword) $26 (byte) KEY_P (byte) KEY_PLUS (byte) KEY_POUND @@ -25411,10 +25411,10 @@ FINAL SYMBOL TABLE (byte) KEY_SEMICOLON (byte) KEY_SLASH (byte) KEY_SPACE -(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) 60 +(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) $3c (byte) KEY_T (byte) KEY_U -(const byte) KEY_U#0 KEY_U = (byte/signed byte/word/signed word/dword/signed dword) 30 +(const byte) KEY_U#0 KEY_U = (byte/signed byte/word/signed word/dword/signed dword) $1e (byte) KEY_V (byte) KEY_W (byte) KEY_X @@ -25424,7 +25424,7 @@ FINAL SYMBOL TABLE (byte*) LIGHTPEN_Y (byte) LIGHT_BLUE (byte) LIGHT_GREEN -(const byte) LIGHT_GREEN#0 LIGHT_GREEN = (byte/signed byte/word/signed word/dword/signed dword) 13 +(const byte) LIGHT_GREEN#0 LIGHT_GREEN = (byte/signed byte/word/signed word/dword/signed dword) $d (byte) LIGHT_GREY (byte[]) MENU_TEXT (const byte[]) MENU_TEXT#0 MENU_TEXT = (string) "C64DTV Graphics Modes CCLHBME@"+(string) " OHIIMCC@"+(string) " LUNCMMM@"+(string) "----------------------------------------@"+(string) "1. Standard Char (V) 0000000@"+(string) "2. Extended Color Char (V) 0000001@"+(string) "3. Multicolor Char (V) 0000010@"+(string) "4. Standard Bitmap (V) 0000100@"+(string) "5. Multicolor Bitmap (V) 0000110@"+(string) "6. High Color Standard Char (H) 0001000@"+(string) "7. High Extended Color Char (H) 0001001@"+(string) "8. High Multicolor Char (H) 0001010@"+(string) "9. High Multicolor Bitmap (H) 0001110@"+(string) "a. Sixs Fred 2 (D) 0010111@"+(string) "b. Two Plane Bitmap (D) 0011101@"+(string) "c. Sixs Fred (2 Plane MC BM) (D) 0011111@"+(string) "d. 8bpp Pixel Cell (D) 0111011@"+(string) "e. Chunky 8bpp Bitmap (D) 1111011@"+(string) "----------------------------------------@"+(string) " (V) vicII (H) vicII+hicol (D) c64dtv@"+(string) "@" @@ -25440,12 +25440,12 @@ FINAL SYMBOL TABLE (byte) PROCPORT_KERNEL_IO (byte) PROCPORT_RAM_ALL (byte) PROCPORT_RAM_CHARROM -(const byte) PROCPORT_RAM_CHARROM#0 PROCPORT_RAM_CHARROM = (byte/signed byte/word/signed word/dword/signed dword) 49 +(const byte) PROCPORT_RAM_CHARROM#0 PROCPORT_RAM_CHARROM = (byte/signed byte/word/signed word/dword/signed dword) $31 (byte) PROCPORT_RAM_IO -(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) 53 +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) $35 (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE @@ -25460,21 +25460,21 @@ FINAL SYMBOL TABLE (byte*) SPRITES_YPOS (word) SPRITE_PTRS (byte) VIC_BMM -(const byte) VIC_BMM#0 VIC_BMM = (byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte) VIC_BMM#0 VIC_BMM = (byte/signed byte/word/signed word/dword/signed dword) $20 (byte*) VIC_CONTROL -(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) 53265 +(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) $d011 (byte*) VIC_CONTROL2 -(const byte*) VIC_CONTROL2#0 VIC_CONTROL2 = ((byte*))(word/dword/signed dword) 53270 +(const byte*) VIC_CONTROL2#0 VIC_CONTROL2 = ((byte*))(word/dword/signed dword) $d016 (byte) VIC_CSEL (const byte) VIC_CSEL#0 VIC_CSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) VIC_DEN -(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_ECM -(const byte) VIC_ECM#0 VIC_ECM = (byte/signed byte/word/signed word/dword/signed dword) 64 +(const byte) VIC_ECM#0 VIC_ECM = (byte/signed byte/word/signed word/dword/signed dword) $40 (byte) VIC_MCM -(const byte) VIC_MCM#0 VIC_MCM = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_MCM#0 VIC_MCM = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte*) VIC_MEMORY -(const byte*) VIC_MEMORY#0 VIC_MEMORY = ((byte*))(word/dword/signed dword) 53272 +(const byte*) VIC_MEMORY#0 VIC_MEMORY = ((byte*))(word/dword/signed dword) $d018 (byte) VIC_RSEL (const byte) VIC_RSEL#0 VIC_RSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) VIC_RST8 @@ -25731,20 +25731,20 @@ FINAL SYMBOL TABLE (byte) bitmap_plot::y#2 reg byte y 2002.0 (byte) bitmap_plot::y#3 reg byte y 2002.0 (byte) bitmap_plot::y#4 reg byte y 2004.0 -(byte[256]) bitmap_plot_bit -(const byte[256]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( 256, 0) } -(byte[256]) bitmap_plot_xhi -(const byte[256]) bitmap_plot_xhi#0 bitmap_plot_xhi = { fill( 256, 0) } -(byte[256]) bitmap_plot_xlo -(const byte[256]) bitmap_plot_xlo#0 bitmap_plot_xlo = { fill( 256, 0) } -(byte[256]) bitmap_plot_yhi -(const byte[256]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( 256, 0) } -(byte[256]) bitmap_plot_ylo -(const byte[256]) bitmap_plot_ylo#0 bitmap_plot_ylo = { fill( 256, 0) } +(byte[$100]) bitmap_plot_bit +(const byte[$100]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( $100, 0) } +(byte[$100]) bitmap_plot_xhi +(const byte[$100]) bitmap_plot_xhi#0 bitmap_plot_xhi = { fill( $100, 0) } +(byte[$100]) bitmap_plot_xlo +(const byte[$100]) bitmap_plot_xlo#0 bitmap_plot_xlo = { fill( $100, 0) } +(byte[$100]) bitmap_plot_yhi +(const byte[$100]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( $100, 0) } +(byte[$100]) bitmap_plot_ylo +(const byte[$100]) bitmap_plot_ylo#0 bitmap_plot_ylo = { fill( $100, 0) } (void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx) (label) dtvSetCpuBankSegment1::@return (byte*) dtvSetCpuBankSegment1::cpuBank -(const byte*) dtvSetCpuBankSegment1::cpuBank#0 cpuBank = ((byte*))(byte/word/signed word/dword/signed dword) 255 +(const byte*) dtvSetCpuBankSegment1::cpuBank#0 cpuBank = ((byte*))(byte/word/signed word/dword/signed dword) $ff (byte) dtvSetCpuBankSegment1::cpuBankIdx (byte) dtvSetCpuBankSegment1::cpuBankIdx#1 reg byte a 2002.0 (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 reg byte a 1003.0 @@ -25788,7 +25788,7 @@ FINAL SYMBOL TABLE (byte) keyboard_key_pressed::rowidx (byte) keyboard_key_pressed::rowidx#0 reg byte a 4.0 (byte[8]) keyboard_matrix_col_bitmask -(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $10, (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/word/signed word/dword/signed dword) $80 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (label) keyboard_matrix_read::@return (byte) keyboard_matrix_read::return @@ -25798,7 +25798,7 @@ FINAL SYMBOL TABLE (byte) keyboard_matrix_read::rowid (byte) keyboard_matrix_read::rowid#0 reg byte y 4.0 (byte[8]) keyboard_matrix_row_bitmask -(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } +(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) $fe, (byte/word/signed word/dword/signed dword) $fd, (byte/word/signed word/dword/signed dword) $fb, (byte/word/signed word/dword/signed dword) $f7, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $bf, (byte/signed byte/word/signed word/dword/signed dword) $7f } (byte) keyboard_modifiers (byte[8]) keyboard_scan_values (void()) main() @@ -25859,9 +25859,9 @@ FINAL SYMBOL TABLE (label) menu::@9 (label) menu::@return (byte*) menu::CHARSET -(const byte*) menu::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) 38912 +(const byte*) menu::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) $9800 (byte*) menu::SCREEN -(const byte*) menu::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768 +(const byte*) menu::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) $8000 (byte*) menu::c (byte*) menu::c#1 c zp ZP_WORD:2 151.5 (byte*) menu::c#2 c zp ZP_WORD:2 151.5 @@ -25882,7 +25882,7 @@ FINAL SYMBOL TABLE (label) mode_8bppchunkybmm::@8 (label) mode_8bppchunkybmm::@return (dword) mode_8bppchunkybmm::PLANEB -(const dword) mode_8bppchunkybmm::PLANEB#0 PLANEB = (dword/signed dword) 131072 +(const dword) mode_8bppchunkybmm::PLANEB#0 PLANEB = (dword/signed dword) $20000 (byte) mode_8bppchunkybmm::c (byte) mode_8bppchunkybmm::c#0 reg byte a 2002.0 (byte*) mode_8bppchunkybmm::gfxb @@ -25926,9 +25926,9 @@ FINAL SYMBOL TABLE (label) mode_8bpppixelcell::@return (byte*) mode_8bpppixelcell::CHARGEN (byte*) mode_8bpppixelcell::PLANEA -(const byte*) mode_8bpppixelcell::PLANEA#0 PLANEA = ((byte*))(word/signed word/dword/signed dword) 15360 +(const byte*) mode_8bpppixelcell::PLANEA#0 PLANEA = ((byte*))(word/signed word/dword/signed dword) $3c00 (byte*) mode_8bpppixelcell::PLANEB -(const byte*) mode_8bpppixelcell::PLANEB#0 PLANEB = ((byte*))(word/signed word/dword/signed dword) 16384 +(const byte*) mode_8bpppixelcell::PLANEB#0 PLANEB = ((byte*))(word/signed word/dword/signed dword) $4000 (byte) mode_8bpppixelcell::ax (byte) mode_8bpppixelcell::ax#1 reg byte x 1501.5 (byte) mode_8bpppixelcell::ax#2 reg byte x 429.0 @@ -26039,11 +26039,11 @@ FINAL SYMBOL TABLE (label) mode_ecmchar::@6 (label) mode_ecmchar::@return (byte*) mode_ecmchar::CHARSET -(const byte*) mode_ecmchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) 36864 +(const byte*) mode_ecmchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) $9000 (byte*) mode_ecmchar::COLORS -(const byte*) mode_ecmchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 55296 +(const byte*) mode_ecmchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) $d800 (byte*) mode_ecmchar::SCREEN -(const byte*) mode_ecmchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768 +(const byte*) mode_ecmchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) $8000 (byte*) mode_ecmchar::ch (byte*) mode_ecmchar::ch#1 ch zp ZP_WORD:5 420.59999999999997 (byte*) mode_ecmchar::ch#2 ch zp ZP_WORD:5 310.4 @@ -26073,11 +26073,11 @@ FINAL SYMBOL TABLE (label) mode_hicolecmchar::@6 (label) mode_hicolecmchar::@return (byte*) mode_hicolecmchar::CHARSET -(const byte*) mode_hicolecmchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) 36864 +(const byte*) mode_hicolecmchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) $9000 (byte*) mode_hicolecmchar::COLORS -(const byte*) mode_hicolecmchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 33792 +(const byte*) mode_hicolecmchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) $8400 (byte*) mode_hicolecmchar::SCREEN -(const byte*) mode_hicolecmchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768 +(const byte*) mode_hicolecmchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) $8000 (byte*) mode_hicolecmchar::ch (byte*) mode_hicolecmchar::ch#1 ch zp ZP_WORD:5 420.59999999999997 (byte*) mode_hicolecmchar::ch#2 ch zp ZP_WORD:5 388.0 @@ -26109,11 +26109,11 @@ FINAL SYMBOL TABLE (label) mode_hicolmcchar::@6 (label) mode_hicolmcchar::@return (byte*) mode_hicolmcchar::CHARSET -(const byte*) mode_hicolmcchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) 36864 +(const byte*) mode_hicolmcchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) $9000 (byte*) mode_hicolmcchar::COLORS -(const byte*) mode_hicolmcchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 33792 +(const byte*) mode_hicolmcchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) $8400 (byte*) mode_hicolmcchar::SCREEN -(const byte*) mode_hicolmcchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768 +(const byte*) mode_hicolmcchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) $8000 (byte*) mode_hicolmcchar::ch (byte*) mode_hicolmcchar::ch#1 ch zp ZP_WORD:5 420.59999999999997 (byte*) mode_hicolmcchar::ch#2 ch zp ZP_WORD:5 388.0 @@ -26145,11 +26145,11 @@ FINAL SYMBOL TABLE (label) mode_hicolstdchar::@6 (label) mode_hicolstdchar::@return (byte*) mode_hicolstdchar::CHARSET -(const byte*) mode_hicolstdchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) 36864 +(const byte*) mode_hicolstdchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) $9000 (byte*) mode_hicolstdchar::COLORS -(const byte*) mode_hicolstdchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 33792 +(const byte*) mode_hicolstdchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) $8400 (byte*) mode_hicolstdchar::SCREEN -(const byte*) mode_hicolstdchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768 +(const byte*) mode_hicolstdchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) $8000 (byte*) mode_hicolstdchar::ch (byte*) mode_hicolstdchar::ch#1 ch zp ZP_WORD:5 420.59999999999997 (byte*) mode_hicolstdchar::ch#2 ch zp ZP_WORD:5 388.0 @@ -26184,11 +26184,11 @@ FINAL SYMBOL TABLE (label) mode_mcchar::@6 (label) mode_mcchar::@return (byte*) mode_mcchar::CHARSET -(const byte*) mode_mcchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) 36864 +(const byte*) mode_mcchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) $9000 (byte*) mode_mcchar::COLORS -(const byte*) mode_mcchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 55296 +(const byte*) mode_mcchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) $d800 (byte*) mode_mcchar::SCREEN -(const byte*) mode_mcchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768 +(const byte*) mode_mcchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) $8000 (byte*) mode_mcchar::ch (byte*) mode_mcchar::ch#1 ch zp ZP_WORD:5 420.59999999999997 (byte*) mode_mcchar::ch#2 ch zp ZP_WORD:5 310.4 @@ -26224,11 +26224,11 @@ FINAL SYMBOL TABLE (label) mode_sixsfred::@9 (label) mode_sixsfred::@return (byte*) mode_sixsfred::COLORS -(const byte*) mode_sixsfred::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 32768 +(const byte*) mode_sixsfred::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) $8000 (byte*) mode_sixsfred::PLANEA -(const byte*) mode_sixsfred::PLANEA#0 PLANEA = ((byte*))(word/signed word/dword/signed dword) 16384 +(const byte*) mode_sixsfred::PLANEA#0 PLANEA = ((byte*))(word/signed word/dword/signed dword) $4000 (byte*) mode_sixsfred::PLANEB -(const byte*) mode_sixsfred::PLANEB#0 PLANEB = ((byte*))(word/signed word/dword/signed dword) 24576 +(const byte*) mode_sixsfred::PLANEB#0 PLANEB = ((byte*))(word/signed word/dword/signed dword) $6000 (byte) mode_sixsfred::ax (byte) mode_sixsfred::ax#1 reg byte x 1501.5 (byte) mode_sixsfred::ax#2 reg byte x 400.4 @@ -26265,7 +26265,7 @@ FINAL SYMBOL TABLE (byte) mode_sixsfred::row (byte) mode_sixsfred::row#0 reg byte a 2002.0 (byte[]) mode_sixsfred::row_bitmask -(const byte[]) mode_sixsfred::row_bitmask#0 row_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 85, (byte/word/signed word/dword/signed dword) 170, (byte/word/signed word/dword/signed dword) 255 } +(const byte[]) mode_sixsfred::row_bitmask#0 row_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $55, (byte/word/signed word/dword/signed dword) $aa, (byte/word/signed word/dword/signed dword) $ff } (void()) mode_sixsfred2() (byte~) mode_sixsfred2::$14 reg byte a 2002.0 (byte~) mode_sixsfred2::$15 $15 zp ZP_BYTE:7 1001.0 @@ -26286,11 +26286,11 @@ FINAL SYMBOL TABLE (label) mode_sixsfred2::@9 (label) mode_sixsfred2::@return (byte*) mode_sixsfred2::COLORS -(const byte*) mode_sixsfred2::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 32768 +(const byte*) mode_sixsfred2::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) $8000 (byte*) mode_sixsfred2::PLANEA -(const byte*) mode_sixsfred2::PLANEA#0 PLANEA = ((byte*))(word/signed word/dword/signed dword) 16384 +(const byte*) mode_sixsfred2::PLANEA#0 PLANEA = ((byte*))(word/signed word/dword/signed dword) $4000 (byte*) mode_sixsfred2::PLANEB -(const byte*) mode_sixsfred2::PLANEB#0 PLANEB = ((byte*))(word/signed word/dword/signed dword) 24576 +(const byte*) mode_sixsfred2::PLANEB#0 PLANEB = ((byte*))(word/signed word/dword/signed dword) $6000 (byte) mode_sixsfred2::ax (byte) mode_sixsfred2::ax#1 reg byte x 1501.5 (byte) mode_sixsfred2::ax#2 reg byte x 400.4 @@ -26327,7 +26327,7 @@ FINAL SYMBOL TABLE (byte) mode_sixsfred2::row (byte) mode_sixsfred2::row#0 reg byte a 2002.0 (byte[]) mode_sixsfred2::row_bitmask -(const byte[]) mode_sixsfred2::row_bitmask#0 row_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 85, (byte/word/signed word/dword/signed dword) 170, (byte/word/signed word/dword/signed dword) 255 } +(const byte[]) mode_sixsfred2::row_bitmask#0 row_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $55, (byte/word/signed word/dword/signed dword) $aa, (byte/word/signed word/dword/signed dword) $ff } (void()) mode_stdbitmap() (byte~) mode_stdbitmap::$19 reg byte a 2002.0 (byte~) mode_stdbitmap::$22 reg byte a 2002.0 @@ -26344,9 +26344,9 @@ FINAL SYMBOL TABLE (label) mode_stdbitmap::@9 (label) mode_stdbitmap::@return (byte*) mode_stdbitmap::BITMAP -(const byte*) mode_stdbitmap::BITMAP#0 BITMAP = ((byte*))(word/signed word/dword/signed dword) 24576 +(const byte*) mode_stdbitmap::BITMAP#0 BITMAP = ((byte*))(word/signed word/dword/signed dword) $6000 (byte*) mode_stdbitmap::SCREEN -(const byte*) mode_stdbitmap::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 16384 +(const byte*) mode_stdbitmap::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $4000 (byte*) mode_stdbitmap::ch (byte*) mode_stdbitmap::ch#1 ch zp ZP_WORD:2 420.59999999999997 (byte*) mode_stdbitmap::ch#2 ch zp ZP_WORD:2 443.42857142857144 @@ -26370,9 +26370,9 @@ FINAL SYMBOL TABLE (byte) mode_stdbitmap::lines_cnt (const byte) mode_stdbitmap::lines_cnt#0 lines_cnt = (byte/signed byte/word/signed word/dword/signed dword) 9 (byte[]) mode_stdbitmap::lines_x -(const byte[]) mode_stdbitmap::lines_x#0 lines_x = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 128, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 128, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 128 } +(const byte[]) mode_stdbitmap::lines_x#0 lines_x = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $ff, (byte/word/signed word/dword/signed dword) $ff, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $80, (byte/word/signed word/dword/signed dword) $ff, (byte/word/signed word/dword/signed dword) $80, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $80 } (byte[]) mode_stdbitmap::lines_y -(const byte[]) mode_stdbitmap::lines_y#0 lines_y = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 199, (byte/word/signed word/dword/signed dword) 199, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/word/signed word/dword/signed dword) 199, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/signed byte/word/signed word/dword/signed dword) 0 } +(const byte[]) mode_stdbitmap::lines_y#0 lines_y = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $c7, (byte/word/signed word/dword/signed dword) $c7, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $64, (byte/word/signed word/dword/signed dword) $c7, (byte/signed byte/word/signed word/dword/signed dword) $64, (byte/signed byte/word/signed word/dword/signed dword) 0 } (void()) mode_stdchar() (byte~) mode_stdchar::$24 reg byte a 2002.0 (byte~) mode_stdchar::$25 reg byte a 2002.0 @@ -26388,11 +26388,11 @@ FINAL SYMBOL TABLE (label) mode_stdchar::@6 (label) mode_stdchar::@return (byte*) mode_stdchar::CHARSET -(const byte*) mode_stdchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) 36864 +(const byte*) mode_stdchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) $9000 (byte*) mode_stdchar::COLORS -(const byte*) mode_stdchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 55296 +(const byte*) mode_stdchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) $d800 (byte*) mode_stdchar::SCREEN -(const byte*) mode_stdchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768 +(const byte*) mode_stdchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) $8000 (byte*) mode_stdchar::ch (byte*) mode_stdchar::ch#1 ch zp ZP_WORD:5 420.59999999999997 (byte*) mode_stdchar::ch#2 ch zp ZP_WORD:5 310.4 @@ -26433,11 +26433,11 @@ FINAL SYMBOL TABLE (label) mode_twoplanebitmap::@9 (label) mode_twoplanebitmap::@return (byte*) mode_twoplanebitmap::COLORS -(const byte*) mode_twoplanebitmap::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 32768 +(const byte*) mode_twoplanebitmap::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) $8000 (byte*) mode_twoplanebitmap::PLANEA -(const byte*) mode_twoplanebitmap::PLANEA#0 PLANEA = ((byte*))(word/signed word/dword/signed dword) 16384 +(const byte*) mode_twoplanebitmap::PLANEA#0 PLANEA = ((byte*))(word/signed word/dword/signed dword) $4000 (byte*) mode_twoplanebitmap::PLANEB -(const byte*) mode_twoplanebitmap::PLANEB#0 PLANEB = ((byte*))(word/signed word/dword/signed dword) 24576 +(const byte*) mode_twoplanebitmap::PLANEB#0 PLANEB = ((byte*))(word/signed word/dword/signed dword) $6000 (byte) mode_twoplanebitmap::ax (byte) mode_twoplanebitmap::ax#1 reg byte x 1501.5 (byte) mode_twoplanebitmap::ax#2 reg byte x 250.25 @@ -26812,16 +26812,16 @@ menu: { .label SCREEN = $8000 .label CHARSET = $9800 .label c = 2 - //SEG18 [10] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 -- _deref_pbuc1=vbuc2 + //SEG18 [10] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) $10000 -- _deref_pbuc1=vbuc2 // Charset ROM // DTV Graphics Bank lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG19 [11] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG19 [11] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #DTV_COLOR_BANK_DEFAULT/$400 sta DTV_COLOR_BANK_LO - //SEG20 [12] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG20 [12] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI //SEG21 [13] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 @@ -26831,7 +26831,7 @@ menu: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG23 [15] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG23 [15] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^CHARSET/$4000 sta CIA2_PORT_A @@ -26843,7 +26843,7 @@ menu: { //SEG25 [17] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 -- _deref_pbuc1=vbuc2 lda #VIC_CSEL sta VIC_CONTROL2 - //SEG26 [18] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG26 [18] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // VIC Memory Pointers lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY @@ -26855,12 +26855,12 @@ menu: { //SEG30 [19] phi (byte) menu::i#2 = (byte) menu::i#1 [phi:menu::@1->menu::@1#0] -- register_copy //SEG31 menu::@1 b1: - //SEG32 [20] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG32 [20] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda DTV_PALETTE_DEFAULT,x sta DTV_PALETTE,x //SEG33 [21] (byte) menu::i#1 ← ++ (byte) menu::i#2 -- vbuxx=_inc_vbuxx inx - //SEG34 [22] if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto menu::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG34 [22] if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto menu::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1 //SEG35 [23] phi from menu::@1 to menu::@2 [phi:menu::@1->menu::@2] @@ -26883,7 +26883,7 @@ menu: { bne !+ inc c+1 !: - //SEG42 [26] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) 1000) goto menu::@2 -- pbuz1_neq_pbuc1_then_la1 + //SEG42 [26] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) $3e8) goto menu::@2 -- pbuz1_neq_pbuc1_then_la1 lda c+1 cmp #>COLS+$3e8 bne b2 @@ -27202,23 +27202,23 @@ mode_8bppchunkybmm: { sta DTV_PALETTE,x //SEG219 [131] (byte) mode_8bppchunkybmm::i#1 ← ++ (byte) mode_8bppchunkybmm::i#2 -- vbuxx=_inc_vbuxx inx - //SEG220 [132] if((byte) mode_8bppchunkybmm::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_8bppchunkybmm::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG220 [132] if((byte) mode_8bppchunkybmm::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_8bppchunkybmm::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1 //SEG221 [133] phi from mode_8bppchunkybmm::@1 to mode_8bppchunkybmm::@5 [phi:mode_8bppchunkybmm::@1->mode_8bppchunkybmm::@5] //SEG222 mode_8bppchunkybmm::@5 //SEG223 [134] call dtvSetCpuBankSegment1 //SEG224 [223] phi from mode_8bppchunkybmm::@5 to dtvSetCpuBankSegment1 [phi:mode_8bppchunkybmm::@5->dtvSetCpuBankSegment1] - //SEG225 [223] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 = ((byte))(const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) 16384 [phi:mode_8bppchunkybmm::@5->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + //SEG225 [223] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 = ((byte))(const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) $4000 [phi:mode_8bppchunkybmm::@5->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #PLANEB/$4000 jsr dtvSetCpuBankSegment1 //SEG226 [135] phi from mode_8bppchunkybmm::@5 to mode_8bppchunkybmm::@2 [phi:mode_8bppchunkybmm::@5->mode_8bppchunkybmm::@2] - //SEG227 [135] phi (byte) mode_8bppchunkybmm::gfxbCpuBank#7 = ++((byte))(const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) 16384 [phi:mode_8bppchunkybmm::@5->mode_8bppchunkybmm::@2#0] -- vbuxx=vbuc1 + //SEG227 [135] phi (byte) mode_8bppchunkybmm::gfxbCpuBank#7 = ++((byte))(const dword) mode_8bppchunkybmm::PLANEB#0/(word/signed word/dword/signed dword) $4000 [phi:mode_8bppchunkybmm::@5->mode_8bppchunkybmm::@2#0] -- vbuxx=vbuc1 ldx #PLANEB/$4000+1 //SEG228 [135] phi (byte) mode_8bppchunkybmm::y#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mode_8bppchunkybmm::@5->mode_8bppchunkybmm::@2#1] -- vbuz1=vbuc1 lda #0 sta y - //SEG229 [135] phi (byte*) mode_8bppchunkybmm::gfxb#5 = ((byte*))(word/signed word/dword/signed dword) 16384 [phi:mode_8bppchunkybmm::@5->mode_8bppchunkybmm::@2#2] -- pbuz1=pbuc1 + //SEG229 [135] phi (byte*) mode_8bppchunkybmm::gfxb#5 = ((byte*))(word/signed word/dword/signed dword) $4000 [phi:mode_8bppchunkybmm::@5->mode_8bppchunkybmm::@2#2] -- pbuz1=pbuc1 lda #<$4000 sta gfxb lda #>$4000 @@ -27242,7 +27242,7 @@ mode_8bppchunkybmm: { //SEG242 [136] phi (byte*) mode_8bppchunkybmm::gfxb#3 = (byte*) mode_8bppchunkybmm::gfxb#1 [phi:mode_8bppchunkybmm::@4->mode_8bppchunkybmm::@3#2] -- register_copy //SEG243 mode_8bppchunkybmm::@3 b3: - //SEG244 [137] if((byte*) mode_8bppchunkybmm::gfxb#3!=(word/dword/signed dword) 32768) goto mode_8bppchunkybmm::@4 -- pbuz1_neq_vwuc1_then_la1 + //SEG244 [137] if((byte*) mode_8bppchunkybmm::gfxb#3!=(word/dword/signed dword) $8000) goto mode_8bppchunkybmm::@4 -- pbuz1_neq_vwuc1_then_la1 lda gfxb+1 cmp #>$8000 bne b4 @@ -27261,7 +27261,7 @@ mode_8bppchunkybmm: { inx //SEG252 [141] phi from mode_8bppchunkybmm::@10 to mode_8bppchunkybmm::@4 [phi:mode_8bppchunkybmm::@10->mode_8bppchunkybmm::@4] //SEG253 [141] phi (byte) mode_8bppchunkybmm::gfxbCpuBank#8 = (byte) mode_8bppchunkybmm::gfxbCpuBank#2 [phi:mode_8bppchunkybmm::@10->mode_8bppchunkybmm::@4#0] -- register_copy - //SEG254 [141] phi (byte*) mode_8bppchunkybmm::gfxb#4 = ((byte*))(word/signed word/dword/signed dword) 16384 [phi:mode_8bppchunkybmm::@10->mode_8bppchunkybmm::@4#1] -- pbuz1=pbuc1 + //SEG254 [141] phi (byte*) mode_8bppchunkybmm::gfxb#4 = ((byte*))(word/signed word/dword/signed dword) $4000 [phi:mode_8bppchunkybmm::@10->mode_8bppchunkybmm::@4#1] -- pbuz1=pbuc1 lda #<$4000 sta gfxb lda #>$4000 @@ -27294,7 +27294,7 @@ mode_8bppchunkybmm: { bne !+ inc x+1 !: - //SEG264 [147] if((word) mode_8bppchunkybmm::x#1!=(word/signed word/dword/signed dword) 320) goto mode_8bppchunkybmm::@3 -- vwuz1_neq_vwuc1_then_la1 + //SEG264 [147] if((word) mode_8bppchunkybmm::x#1!=(word/signed word/dword/signed dword) $140) goto mode_8bppchunkybmm::@3 -- vwuz1_neq_vwuc1_then_la1 lda x+1 cmp #>$140 bne b3 @@ -27304,7 +27304,7 @@ mode_8bppchunkybmm: { //SEG265 mode_8bppchunkybmm::@7 //SEG266 [148] (byte) mode_8bppchunkybmm::y#1 ← ++ (byte) mode_8bppchunkybmm::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG267 [149] if((byte) mode_8bppchunkybmm::y#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_8bppchunkybmm::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG267 [149] if((byte) mode_8bppchunkybmm::y#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_8bppchunkybmm::@2 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$c8 bne b2 @@ -27312,7 +27312,7 @@ mode_8bppchunkybmm: { //SEG269 mode_8bppchunkybmm::@8 //SEG270 [151] call dtvSetCpuBankSegment1 //SEG271 [223] phi from mode_8bppchunkybmm::@8 to dtvSetCpuBankSegment1 [phi:mode_8bppchunkybmm::@8->dtvSetCpuBankSegment1] - //SEG272 [223] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 = ((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 [phi:mode_8bppchunkybmm::@8->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + //SEG272 [223] phi (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 = ((byte))(word/signed word/dword/signed dword) $4000/(word/signed word/dword/signed dword) $4000 [phi:mode_8bppchunkybmm::@8->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #$4000/$4000 jsr dtvSetCpuBankSegment1 //SEG273 [152] phi from mode_8bppchunkybmm::@8 to mode_8bppchunkybmm::@11 [phi:mode_8bppchunkybmm::@8->mode_8bppchunkybmm::@11] @@ -27338,7 +27338,7 @@ mode_ctrl: { // Wait for the raster //SEG285 mode_ctrl::@4 b4: - //SEG286 [157] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto mode_ctrl::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG286 [157] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto mode_ctrl::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -27666,7 +27666,7 @@ mode_8bpppixelcell: { sta DTV_PALETTE,x //SEG435 [245] (byte) mode_8bpppixelcell::i#1 ← ++ (byte) mode_8bpppixelcell::i#2 -- vbuxx=_inc_vbuxx inx - //SEG436 [246] if((byte) mode_8bpppixelcell::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_8bpppixelcell::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG436 [246] if((byte) mode_8bpppixelcell::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_8bpppixelcell::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1 //SEG437 [247] phi from mode_8bpppixelcell::@1 to mode_8bpppixelcell::@2 [phi:mode_8bpppixelcell::@1->mode_8bpppixelcell::@2] @@ -27692,7 +27692,7 @@ mode_8bpppixelcell: { //SEG449 [248] phi (byte) mode_8bpppixelcell::ax#2 = (byte) mode_8bpppixelcell::ax#1 [phi:mode_8bpppixelcell::@3->mode_8bpppixelcell::@3#1] -- register_copy //SEG450 mode_8bpppixelcell::@3 b3: - //SEG451 [249] (byte~) mode_8bpppixelcell::$13 ← (byte) mode_8bpppixelcell::ay#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG451 [249] (byte~) mode_8bpppixelcell::$13 ← (byte) mode_8bpppixelcell::ay#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and ay //SEG452 [250] (byte~) mode_8bpppixelcell::$14 ← (byte~) mode_8bpppixelcell::$13 << (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuaa_rol_4 @@ -27701,7 +27701,7 @@ mode_8bpppixelcell: { asl asl sta _14 - //SEG453 [251] (byte~) mode_8bpppixelcell::$15 ← (byte) mode_8bpppixelcell::ax#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG453 [251] (byte~) mode_8bpppixelcell::$15 ← (byte) mode_8bpppixelcell::ax#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG454 [252] (byte~) mode_8bpppixelcell::$16 ← (byte~) mode_8bpppixelcell::$14 | (byte~) mode_8bpppixelcell::$15 -- vbuaa=vbuz1_bor_vbuaa @@ -27716,13 +27716,13 @@ mode_8bpppixelcell: { !: //SEG457 [255] (byte) mode_8bpppixelcell::ax#1 ← ++ (byte) mode_8bpppixelcell::ax#2 -- vbuxx=_inc_vbuxx inx - //SEG458 [256] if((byte) mode_8bpppixelcell::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_8bpppixelcell::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG458 [256] if((byte) mode_8bpppixelcell::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_8bpppixelcell::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b3 //SEG459 mode_8bpppixelcell::@9 //SEG460 [257] (byte) mode_8bpppixelcell::ay#1 ← ++ (byte) mode_8bpppixelcell::ay#4 -- vbuz1=_inc_vbuz1 inc ay - //SEG461 [258] if((byte) mode_8bpppixelcell::ay#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_8bpppixelcell::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG461 [258] if((byte) mode_8bpppixelcell::ay#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_8bpppixelcell::@2 -- vbuz1_neq_vbuc1_then_la1 lda ay cmp #$19 bne b2 @@ -27742,7 +27742,7 @@ mode_8bpppixelcell: { sta gfxb lda #>PLANEB sta gfxb+1 - //SEG468 [260] phi (byte*) mode_8bpppixelcell::chargen#4 = ((byte*))(word/dword/signed dword) 53248 [phi:mode_8bpppixelcell::@10->mode_8bpppixelcell::@4#3] -- pbuz1=pbuc1 + //SEG468 [260] phi (byte*) mode_8bpppixelcell::chargen#4 = ((byte*))(word/dword/signed dword) $d000 [phi:mode_8bpppixelcell::@10->mode_8bpppixelcell::@4#3] -- pbuz1=pbuc1 lda #<$d000 sta chargen lda #>$d000 @@ -27790,7 +27790,7 @@ mode_8bpppixelcell: { //SEG497 [264] phi (byte) mode_8bpppixelcell::bits#2 = (byte) mode_8bpppixelcell::bits#1 [phi:mode_8bpppixelcell::@7->mode_8bpppixelcell::@6#3] -- register_copy //SEG498 mode_8bpppixelcell::@6 b6: - //SEG499 [265] (byte~) mode_8bpppixelcell::$19 ← (byte) mode_8bpppixelcell::bits#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG499 [265] (byte~) mode_8bpppixelcell::$19 ← (byte) mode_8bpppixelcell::bits#2 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuz1_band_vbuc1 lda #$80 and bits //SEG500 [266] if((byte~) mode_8bpppixelcell::$19==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_8bpppixelcell::@7 -- vbuaa_eq_0_then_la1 @@ -27916,11 +27916,11 @@ mode_sixsfred: { sta DTV_PLANEB_MODULO_LO //SEG542 [296] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 sta DTV_PLANEB_MODULO_HI - //SEG543 [297] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG543 [297] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG544 [298] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_sixsfred::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #>COLORS/$400 sta DTV_COLOR_BANK_HI //SEG545 [299] phi from mode_sixsfred to mode_sixsfred::@1 [phi:mode_sixsfred->mode_sixsfred::@1] @@ -27936,7 +27936,7 @@ mode_sixsfred: { sta DTV_PALETTE,x //SEG551 [301] (byte) mode_sixsfred::i#1 ← ++ (byte) mode_sixsfred::i#2 -- vbuxx=_inc_vbuxx inx - //SEG552 [302] if((byte) mode_sixsfred::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_sixsfred::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG552 [302] if((byte) mode_sixsfred::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_sixsfred::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1 //SEG553 mode_sixsfred::@8 @@ -27971,7 +27971,7 @@ mode_sixsfred: { txa clc adc cy - //SEG570 [307] (byte~) mode_sixsfred::$17 ← (byte~) mode_sixsfred::$16 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuaa_band_vbuc1 + //SEG570 [307] (byte~) mode_sixsfred::$17 ← (byte~) mode_sixsfred::$16 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuaa_band_vbuc1 and #$f //SEG571 [308] *((byte*) mode_sixsfred::col#2) ← (byte~) mode_sixsfred::$17 -- _deref_pbuz1=vbuaa ldy #0 @@ -27983,13 +27983,13 @@ mode_sixsfred: { !: //SEG573 [310] (byte) mode_sixsfred::cx#1 ← ++ (byte) mode_sixsfred::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG574 [311] if((byte) mode_sixsfred::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG574 [311] if((byte) mode_sixsfred::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b3 //SEG575 mode_sixsfred::@9 //SEG576 [312] (byte) mode_sixsfred::cy#1 ← ++ (byte) mode_sixsfred::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG577 [313] if((byte) mode_sixsfred::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_sixsfred::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG577 [313] if((byte) mode_sixsfred::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_sixsfred::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2 @@ -28033,13 +28033,13 @@ mode_sixsfred: { !: //SEG596 [320] (byte) mode_sixsfred::ax#1 ← ++ (byte) mode_sixsfred::ax#2 -- vbuxx=_inc_vbuxx inx - //SEG597 [321] if((byte) mode_sixsfred::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred::@5 -- vbuxx_neq_vbuc1_then_la1 + //SEG597 [321] if((byte) mode_sixsfred::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred::@5 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b5 //SEG598 mode_sixsfred::@11 //SEG599 [322] (byte) mode_sixsfred::ay#1 ← ++ (byte) mode_sixsfred::ay#4 -- vbuz1=_inc_vbuz1 inc ay - //SEG600 [323] if((byte) mode_sixsfred::ay#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_sixsfred::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG600 [323] if((byte) mode_sixsfred::ay#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_sixsfred::@4 -- vbuz1_neq_vbuc1_then_la1 lda ay cmp #$c8 bne b4 @@ -28066,7 +28066,7 @@ mode_sixsfred: { //SEG613 [325] phi (byte*) mode_sixsfred::gfxb#2 = (byte*) mode_sixsfred::gfxb#1 [phi:mode_sixsfred::@7->mode_sixsfred::@7#1] -- register_copy //SEG614 mode_sixsfred::@7 b7: - //SEG615 [326] *((byte*) mode_sixsfred::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 27 -- _deref_pbuz1=vbuc1 + //SEG615 [326] *((byte*) mode_sixsfred::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $1b -- _deref_pbuz1=vbuc1 lda #$1b ldy #0 sta (gfxb),y @@ -28077,13 +28077,13 @@ mode_sixsfred: { !: //SEG617 [328] (byte) mode_sixsfred::bx#1 ← ++ (byte) mode_sixsfred::bx#2 -- vbuxx=_inc_vbuxx inx - //SEG618 [329] if((byte) mode_sixsfred::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred::@7 -- vbuxx_neq_vbuc1_then_la1 + //SEG618 [329] if((byte) mode_sixsfred::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred::@7 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b7 //SEG619 mode_sixsfred::@13 //SEG620 [330] (byte) mode_sixsfred::by#1 ← ++ (byte) mode_sixsfred::by#4 -- vbuz1=_inc_vbuz1 inc by - //SEG621 [331] if((byte) mode_sixsfred::by#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_sixsfred::@6 -- vbuz1_neq_vbuc1_then_la1 + //SEG621 [331] if((byte) mode_sixsfred::by#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_sixsfred::@6 -- vbuz1_neq_vbuc1_then_la1 lda by cmp #$c8 bne b6 @@ -28167,11 +28167,11 @@ mode_twoplanebitmap: { sta DTV_PLANEB_MODULO_LO //SEG644 [349] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 sta DTV_PLANEB_MODULO_HI - //SEG645 [350] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG645 [350] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG646 [351] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_twoplanebitmap::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #>COLORS/$400 sta DTV_COLOR_BANK_HI //SEG647 [352] phi from mode_twoplanebitmap to mode_twoplanebitmap::@1 [phi:mode_twoplanebitmap->mode_twoplanebitmap::@1] @@ -28187,7 +28187,7 @@ mode_twoplanebitmap: { sta DTV_PALETTE,x //SEG653 [354] (byte) mode_twoplanebitmap::i#1 ← ++ (byte) mode_twoplanebitmap::i#2 -- vbuxx=_inc_vbuxx inx - //SEG654 [355] if((byte) mode_twoplanebitmap::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_twoplanebitmap::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG654 [355] if((byte) mode_twoplanebitmap::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_twoplanebitmap::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1 //SEG655 mode_twoplanebitmap::@10 @@ -28195,10 +28195,10 @@ mode_twoplanebitmap: { // Screen colors lda #0 sta BORDERCOL - //SEG657 [357] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 112 -- _deref_pbuc1=vbuc2 + //SEG657 [357] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) $70 -- _deref_pbuc1=vbuc2 lda #$70 sta BGCOL1 - //SEG658 [358] *((const byte*) BGCOL2#0) ← (byte/word/signed word/dword/signed dword) 212 -- _deref_pbuc1=vbuc2 + //SEG658 [358] *((const byte*) BGCOL2#0) ← (byte/word/signed word/dword/signed dword) $d4 -- _deref_pbuc1=vbuc2 // Color for bits 00 lda #$d4 sta BGCOL2 @@ -28225,7 +28225,7 @@ mode_twoplanebitmap: { //SEG671 [360] phi (byte) mode_twoplanebitmap::cx#2 = (byte) mode_twoplanebitmap::cx#1 [phi:mode_twoplanebitmap::@3->mode_twoplanebitmap::@3#1] -- register_copy //SEG672 mode_twoplanebitmap::@3 b3: - //SEG673 [361] (byte~) mode_twoplanebitmap::$15 ← (byte) mode_twoplanebitmap::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG673 [361] (byte~) mode_twoplanebitmap::$15 ← (byte) mode_twoplanebitmap::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and cy //SEG674 [362] (byte~) mode_twoplanebitmap::$16 ← (byte~) mode_twoplanebitmap::$15 << (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuaa_rol_4 @@ -28234,7 +28234,7 @@ mode_twoplanebitmap: { asl asl sta _16 - //SEG675 [363] (byte~) mode_twoplanebitmap::$17 ← (byte) mode_twoplanebitmap::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG675 [363] (byte~) mode_twoplanebitmap::$17 ← (byte) mode_twoplanebitmap::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG676 [364] (byte~) mode_twoplanebitmap::$18 ← (byte~) mode_twoplanebitmap::$16 | (byte~) mode_twoplanebitmap::$17 -- vbuaa=vbuz1_bor_vbuaa @@ -28249,13 +28249,13 @@ mode_twoplanebitmap: { !: //SEG679 [367] (byte) mode_twoplanebitmap::cx#1 ← ++ (byte) mode_twoplanebitmap::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG680 [368] if((byte) mode_twoplanebitmap::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_twoplanebitmap::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG680 [368] if((byte) mode_twoplanebitmap::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_twoplanebitmap::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b3 //SEG681 mode_twoplanebitmap::@11 //SEG682 [369] (byte) mode_twoplanebitmap::cy#1 ← ++ (byte) mode_twoplanebitmap::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG683 [370] if((byte) mode_twoplanebitmap::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_twoplanebitmap::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG683 [370] if((byte) mode_twoplanebitmap::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_twoplanebitmap::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2 @@ -28289,7 +28289,7 @@ mode_twoplanebitmap: { cmp #0 beq b6 //SEG700 mode_twoplanebitmap::@13 - //SEG701 [375] *((byte*) mode_twoplanebitmap::gfxa#3) ← (byte/word/signed word/dword/signed dword) 255 -- _deref_pbuz1=vbuc1 + //SEG701 [375] *((byte*) mode_twoplanebitmap::gfxa#3) ← (byte/word/signed word/dword/signed dword) $ff -- _deref_pbuz1=vbuc1 lda #$ff ldy #0 sta (gfxa),y @@ -28304,13 +28304,13 @@ mode_twoplanebitmap: { b7: //SEG706 [378] (byte) mode_twoplanebitmap::ax#1 ← ++ (byte) mode_twoplanebitmap::ax#2 -- vbuxx=_inc_vbuxx inx - //SEG707 [379] if((byte) mode_twoplanebitmap::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_twoplanebitmap::@5 -- vbuxx_neq_vbuc1_then_la1 + //SEG707 [379] if((byte) mode_twoplanebitmap::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_twoplanebitmap::@5 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b5 //SEG708 mode_twoplanebitmap::@15 //SEG709 [380] (byte) mode_twoplanebitmap::ay#1 ← ++ (byte) mode_twoplanebitmap::ay#4 -- vbuz1=_inc_vbuz1 inc ay - //SEG710 [381] if((byte) mode_twoplanebitmap::ay#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_twoplanebitmap::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG710 [381] if((byte) mode_twoplanebitmap::ay#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_twoplanebitmap::@4 -- vbuz1_neq_vbuc1_then_la1 lda ay cmp #$c8 bne b4 @@ -28337,7 +28337,7 @@ mode_twoplanebitmap: { //SEG723 [383] phi (byte*) mode_twoplanebitmap::gfxb#2 = (byte*) mode_twoplanebitmap::gfxb#1 [phi:mode_twoplanebitmap::@9->mode_twoplanebitmap::@9#1] -- register_copy //SEG724 mode_twoplanebitmap::@9 b9: - //SEG725 [384] *((byte*) mode_twoplanebitmap::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuz1=vbuc1 + //SEG725 [384] *((byte*) mode_twoplanebitmap::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $f -- _deref_pbuz1=vbuc1 lda #$f ldy #0 sta (gfxb),y @@ -28348,13 +28348,13 @@ mode_twoplanebitmap: { !: //SEG727 [386] (byte) mode_twoplanebitmap::bx#1 ← ++ (byte) mode_twoplanebitmap::bx#2 -- vbuxx=_inc_vbuxx inx - //SEG728 [387] if((byte) mode_twoplanebitmap::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_twoplanebitmap::@9 -- vbuxx_neq_vbuc1_then_la1 + //SEG728 [387] if((byte) mode_twoplanebitmap::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_twoplanebitmap::@9 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b9 //SEG729 mode_twoplanebitmap::@17 //SEG730 [388] (byte) mode_twoplanebitmap::by#1 ← ++ (byte) mode_twoplanebitmap::by#4 -- vbuz1=_inc_vbuz1 inc by - //SEG731 [389] if((byte) mode_twoplanebitmap::by#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_twoplanebitmap::@8 -- vbuz1_neq_vbuc1_then_la1 + //SEG731 [389] if((byte) mode_twoplanebitmap::by#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_twoplanebitmap::@8 -- vbuz1_neq_vbuc1_then_la1 lda by cmp #$c8 bne b8 @@ -28446,11 +28446,11 @@ mode_sixsfred2: { sta DTV_PLANEB_MODULO_LO //SEG757 [409] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 sta DTV_PLANEB_MODULO_HI - //SEG758 [410] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG758 [410] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG759 [411] *((const byte*) DTV_COLOR_BANK_HI#0) ← >(const byte*) mode_sixsfred2::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #>COLORS/$400 sta DTV_COLOR_BANK_HI //SEG760 [412] phi from mode_sixsfred2 to mode_sixsfred2::@1 [phi:mode_sixsfred2->mode_sixsfred2::@1] @@ -28466,7 +28466,7 @@ mode_sixsfred2: { sta DTV_PALETTE,x //SEG766 [414] (byte) mode_sixsfred2::i#1 ← ++ (byte) mode_sixsfred2::i#2 -- vbuxx=_inc_vbuxx inx - //SEG767 [415] if((byte) mode_sixsfred2::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_sixsfred2::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG767 [415] if((byte) mode_sixsfred2::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_sixsfred2::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1 //SEG768 mode_sixsfred2::@8 @@ -28521,13 +28521,13 @@ mode_sixsfred2: { !: //SEG790 [425] (byte) mode_sixsfred2::cx#1 ← ++ (byte) mode_sixsfred2::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG791 [426] if((byte) mode_sixsfred2::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred2::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG791 [426] if((byte) mode_sixsfred2::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred2::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b3 //SEG792 mode_sixsfred2::@9 //SEG793 [427] (byte) mode_sixsfred2::cy#1 ← ++ (byte) mode_sixsfred2::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG794 [428] if((byte) mode_sixsfred2::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_sixsfred2::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG794 [428] if((byte) mode_sixsfred2::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_sixsfred2::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2 @@ -28571,13 +28571,13 @@ mode_sixsfred2: { !: //SEG813 [435] (byte) mode_sixsfred2::ax#1 ← ++ (byte) mode_sixsfred2::ax#2 -- vbuxx=_inc_vbuxx inx - //SEG814 [436] if((byte) mode_sixsfred2::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred2::@5 -- vbuxx_neq_vbuc1_then_la1 + //SEG814 [436] if((byte) mode_sixsfred2::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred2::@5 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b5 //SEG815 mode_sixsfred2::@11 //SEG816 [437] (byte) mode_sixsfred2::ay#1 ← ++ (byte) mode_sixsfred2::ay#4 -- vbuz1=_inc_vbuz1 inc ay - //SEG817 [438] if((byte) mode_sixsfred2::ay#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_sixsfred2::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG817 [438] if((byte) mode_sixsfred2::ay#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_sixsfred2::@4 -- vbuz1_neq_vbuc1_then_la1 lda ay cmp #$c8 bne b4 @@ -28604,7 +28604,7 @@ mode_sixsfred2: { //SEG830 [440] phi (byte*) mode_sixsfred2::gfxb#2 = (byte*) mode_sixsfred2::gfxb#1 [phi:mode_sixsfred2::@7->mode_sixsfred2::@7#1] -- register_copy //SEG831 mode_sixsfred2::@7 b7: - //SEG832 [441] *((byte*) mode_sixsfred2::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 27 -- _deref_pbuz1=vbuc1 + //SEG832 [441] *((byte*) mode_sixsfred2::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) $1b -- _deref_pbuz1=vbuc1 lda #$1b ldy #0 sta (gfxb),y @@ -28615,13 +28615,13 @@ mode_sixsfred2: { !: //SEG834 [443] (byte) mode_sixsfred2::bx#1 ← ++ (byte) mode_sixsfred2::bx#2 -- vbuxx=_inc_vbuxx inx - //SEG835 [444] if((byte) mode_sixsfred2::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_sixsfred2::@7 -- vbuxx_neq_vbuc1_then_la1 + //SEG835 [444] if((byte) mode_sixsfred2::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_sixsfred2::@7 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b7 //SEG836 mode_sixsfred2::@13 //SEG837 [445] (byte) mode_sixsfred2::by#1 ← ++ (byte) mode_sixsfred2::by#4 -- vbuz1=_inc_vbuz1 inc by - //SEG838 [446] if((byte) mode_sixsfred2::by#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_sixsfred2::@6 -- vbuz1_neq_vbuc1_then_la1 + //SEG838 [446] if((byte) mode_sixsfred2::by#1!=(byte/word/signed word/dword/signed dword) $c8) goto mode_sixsfred2::@6 -- vbuz1_neq_vbuc1_then_la1 lda by cmp #$c8 bne b6 @@ -28660,15 +28660,15 @@ mode_hicolmcchar: { .label col = 2 .label ch = 5 .label cy = 4 - //SEG847 [450] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolmcchar::CHARSET#0/(dword/signed dword) 65536 -- _deref_pbuc1=vbuc2 + //SEG847 [450] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolmcchar::CHARSET#0/(dword/signed dword) $10000 -- _deref_pbuc1=vbuc2 // DTV Graphics Bank lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG848 [451] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG848 [451] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #COLORS/$400 sta DTV_COLOR_BANK_LO - //SEG849 [452] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG849 [452] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolmcchar::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI //SEG850 [453] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0 -- _deref_pbuc1=vbuc2 @@ -28678,7 +28678,7 @@ mode_hicolmcchar: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG852 [455] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolmcchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG852 [455] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolmcchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^CHARSET/$4000 sta CIA2_PORT_A @@ -28690,7 +28690,7 @@ mode_hicolmcchar: { //SEG854 [457] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0|(const byte) VIC_MCM#0 -- _deref_pbuc1=vbuc2 lda #VIC_CSEL|VIC_MCM sta VIC_CONTROL2 - //SEG855 [458] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolmcchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_hicolmcchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG855 [458] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolmcchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_hicolmcchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // VIC Memory Pointers lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY @@ -28707,7 +28707,7 @@ mode_hicolmcchar: { sta DTV_PALETTE,x //SEG862 [461] (byte) mode_hicolmcchar::i#1 ← ++ (byte) mode_hicolmcchar::i#2 -- vbuxx=_inc_vbuxx inx - //SEG863 [462] if((byte) mode_hicolmcchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_hicolmcchar::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG863 [462] if((byte) mode_hicolmcchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_hicolmcchar::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1 //SEG864 mode_hicolmcchar::@4 @@ -28715,13 +28715,13 @@ mode_hicolmcchar: { // Screen colors lda #0 sta BORDERCOL - //SEG866 [464] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 80 -- _deref_pbuc1=vbuc2 + //SEG866 [464] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) $50 -- _deref_pbuc1=vbuc2 lda #$50 sta BGCOL1 - //SEG867 [465] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 84 -- _deref_pbuc1=vbuc2 + //SEG867 [465] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) $54 -- _deref_pbuc1=vbuc2 lda #$54 sta BGCOL2 - //SEG868 [466] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) 88 -- _deref_pbuc1=vbuc2 + //SEG868 [466] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) $58 -- _deref_pbuc1=vbuc2 lda #$58 sta BGCOL3 //SEG869 [467] phi from mode_hicolmcchar::@4 to mode_hicolmcchar::@2 [phi:mode_hicolmcchar::@4->mode_hicolmcchar::@2] @@ -28755,7 +28755,7 @@ mode_hicolmcchar: { //SEG885 [468] phi (byte) mode_hicolmcchar::cx#2 = (byte) mode_hicolmcchar::cx#1 [phi:mode_hicolmcchar::@3->mode_hicolmcchar::@3#2] -- register_copy //SEG886 mode_hicolmcchar::@3 b3: - //SEG887 [469] (byte~) mode_hicolmcchar::$25 ← (byte) mode_hicolmcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG887 [469] (byte~) mode_hicolmcchar::$25 ← (byte) mode_hicolmcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and cy //SEG888 [470] (byte~) mode_hicolmcchar::$26 ← (byte~) mode_hicolmcchar::$25 << (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuaa_rol_4 @@ -28764,7 +28764,7 @@ mode_hicolmcchar: { asl asl sta _26 - //SEG889 [471] (byte~) mode_hicolmcchar::$27 ← (byte) mode_hicolmcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG889 [471] (byte~) mode_hicolmcchar::$27 ← (byte) mode_hicolmcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG890 [472] (byte) mode_hicolmcchar::v#0 ← (byte~) mode_hicolmcchar::$26 | (byte~) mode_hicolmcchar::$27 -- vbuaa=vbuz1_bor_vbuaa @@ -28787,13 +28787,13 @@ mode_hicolmcchar: { !: //SEG895 [477] (byte) mode_hicolmcchar::cx#1 ← ++ (byte) mode_hicolmcchar::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG896 [478] if((byte) mode_hicolmcchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_hicolmcchar::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG896 [478] if((byte) mode_hicolmcchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_hicolmcchar::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b3 //SEG897 mode_hicolmcchar::@5 //SEG898 [479] (byte) mode_hicolmcchar::cy#1 ← ++ (byte) mode_hicolmcchar::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG899 [480] if((byte) mode_hicolmcchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_hicolmcchar::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG899 [480] if((byte) mode_hicolmcchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_hicolmcchar::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2 @@ -28830,15 +28830,15 @@ mode_hicolecmchar: { .label col = 2 .label ch = 5 .label cy = 4 - //SEG908 [484] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolecmchar::CHARSET#0/(dword/signed dword) 65536 -- _deref_pbuc1=vbuc2 + //SEG908 [484] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolecmchar::CHARSET#0/(dword/signed dword) $10000 -- _deref_pbuc1=vbuc2 // DTV Graphics Bank lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG909 [485] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG909 [485] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #COLORS/$400 sta DTV_COLOR_BANK_LO - //SEG910 [486] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG910 [486] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolecmchar::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI //SEG911 [487] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0 -- _deref_pbuc1=vbuc2 @@ -28848,7 +28848,7 @@ mode_hicolecmchar: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG913 [489] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolecmchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG913 [489] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolecmchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^CHARSET/$4000 sta CIA2_PORT_A @@ -28860,7 +28860,7 @@ mode_hicolecmchar: { //SEG915 [491] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 -- _deref_pbuc1=vbuc2 lda #VIC_CSEL sta VIC_CONTROL2 - //SEG916 [492] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolecmchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_hicolecmchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG916 [492] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolecmchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_hicolecmchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // VIC Memory Pointers lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY @@ -28877,7 +28877,7 @@ mode_hicolecmchar: { sta DTV_PALETTE,x //SEG923 [495] (byte) mode_hicolecmchar::i#1 ← ++ (byte) mode_hicolecmchar::i#2 -- vbuxx=_inc_vbuxx inx - //SEG924 [496] if((byte) mode_hicolecmchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_hicolecmchar::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG924 [496] if((byte) mode_hicolecmchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_hicolecmchar::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1 //SEG925 mode_hicolecmchar::@4 @@ -28885,16 +28885,16 @@ mode_hicolecmchar: { // Screen colors lda #0 sta BORDERCOL - //SEG927 [498] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 80 -- _deref_pbuc1=vbuc2 + //SEG927 [498] *((const byte*) BGCOL1#0) ← (byte/signed byte/word/signed word/dword/signed dword) $50 -- _deref_pbuc1=vbuc2 lda #$50 sta BGCOL1 - //SEG928 [499] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 84 -- _deref_pbuc1=vbuc2 + //SEG928 [499] *((const byte*) BGCOL2#0) ← (byte/signed byte/word/signed word/dword/signed dword) $54 -- _deref_pbuc1=vbuc2 lda #$54 sta BGCOL2 - //SEG929 [500] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) 88 -- _deref_pbuc1=vbuc2 + //SEG929 [500] *((const byte*) BGCOL3#0) ← (byte/signed byte/word/signed word/dword/signed dword) $58 -- _deref_pbuc1=vbuc2 lda #$58 sta BGCOL3 - //SEG930 [501] *((const byte*) BGCOL4#0) ← (byte/signed byte/word/signed word/dword/signed dword) 92 -- _deref_pbuc1=vbuc2 + //SEG930 [501] *((const byte*) BGCOL4#0) ← (byte/signed byte/word/signed word/dword/signed dword) $5c -- _deref_pbuc1=vbuc2 lda #$5c sta BGCOL4 //SEG931 [502] phi from mode_hicolecmchar::@4 to mode_hicolecmchar::@2 [phi:mode_hicolecmchar::@4->mode_hicolecmchar::@2] @@ -28928,7 +28928,7 @@ mode_hicolecmchar: { //SEG947 [503] phi (byte) mode_hicolecmchar::cx#2 = (byte) mode_hicolecmchar::cx#1 [phi:mode_hicolecmchar::@3->mode_hicolecmchar::@3#2] -- register_copy //SEG948 mode_hicolecmchar::@3 b3: - //SEG949 [504] (byte~) mode_hicolecmchar::$25 ← (byte) mode_hicolecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG949 [504] (byte~) mode_hicolecmchar::$25 ← (byte) mode_hicolecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and cy //SEG950 [505] (byte~) mode_hicolecmchar::$26 ← (byte~) mode_hicolecmchar::$25 << (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuaa_rol_4 @@ -28937,7 +28937,7 @@ mode_hicolecmchar: { asl asl sta _26 - //SEG951 [506] (byte~) mode_hicolecmchar::$27 ← (byte) mode_hicolecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG951 [506] (byte~) mode_hicolecmchar::$27 ← (byte) mode_hicolecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG952 [507] (byte) mode_hicolecmchar::v#0 ← (byte~) mode_hicolecmchar::$26 | (byte~) mode_hicolecmchar::$27 -- vbuaa=vbuz1_bor_vbuaa @@ -28960,13 +28960,13 @@ mode_hicolecmchar: { !: //SEG957 [512] (byte) mode_hicolecmchar::cx#1 ← ++ (byte) mode_hicolecmchar::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG958 [513] if((byte) mode_hicolecmchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_hicolecmchar::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG958 [513] if((byte) mode_hicolecmchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_hicolecmchar::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b3 //SEG959 mode_hicolecmchar::@5 //SEG960 [514] (byte) mode_hicolecmchar::cy#1 ← ++ (byte) mode_hicolecmchar::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG961 [515] if((byte) mode_hicolecmchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_hicolecmchar::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG961 [515] if((byte) mode_hicolecmchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_hicolecmchar::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2 @@ -28999,15 +28999,15 @@ mode_hicolstdchar: { .label col = 2 .label ch = 5 .label cy = 4 - //SEG970 [519] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolstdchar::CHARSET#0/(dword/signed dword) 65536 -- _deref_pbuc1=vbuc2 + //SEG970 [519] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_hicolstdchar::CHARSET#0/(dword/signed dword) $10000 -- _deref_pbuc1=vbuc2 // DTV Graphics Bank lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG971 [520] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG971 [520] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #COLORS/$400 sta DTV_COLOR_BANK_LO - //SEG972 [521] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG972 [521] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const byte*) mode_hicolstdchar::COLORS#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI //SEG973 [522] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0 -- _deref_pbuc1=vbuc2 @@ -29017,7 +29017,7 @@ mode_hicolstdchar: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG975 [524] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolstdchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG975 [524] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_hicolstdchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^CHARSET/$4000 sta CIA2_PORT_A @@ -29029,7 +29029,7 @@ mode_hicolstdchar: { //SEG977 [526] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 -- _deref_pbuc1=vbuc2 lda #VIC_CSEL sta VIC_CONTROL2 - //SEG978 [527] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolstdchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_hicolstdchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG978 [527] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_hicolstdchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_hicolstdchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // VIC Memory Pointers lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY @@ -29046,7 +29046,7 @@ mode_hicolstdchar: { sta DTV_PALETTE,x //SEG985 [530] (byte) mode_hicolstdchar::i#1 ← ++ (byte) mode_hicolstdchar::i#2 -- vbuxx=_inc_vbuxx inx - //SEG986 [531] if((byte) mode_hicolstdchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_hicolstdchar::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG986 [531] if((byte) mode_hicolstdchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_hicolstdchar::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1 //SEG987 mode_hicolstdchar::@4 @@ -29087,7 +29087,7 @@ mode_hicolstdchar: { //SEG1006 [535] phi (byte) mode_hicolstdchar::cx#2 = (byte) mode_hicolstdchar::cx#1 [phi:mode_hicolstdchar::@3->mode_hicolstdchar::@3#2] -- register_copy //SEG1007 mode_hicolstdchar::@3 b3: - //SEG1008 [536] (byte~) mode_hicolstdchar::$24 ← (byte) mode_hicolstdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG1008 [536] (byte~) mode_hicolstdchar::$24 ← (byte) mode_hicolstdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and cy //SEG1009 [537] (byte~) mode_hicolstdchar::$25 ← (byte~) mode_hicolstdchar::$24 << (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuaa_rol_4 @@ -29096,7 +29096,7 @@ mode_hicolstdchar: { asl asl sta _25 - //SEG1010 [538] (byte~) mode_hicolstdchar::$26 ← (byte) mode_hicolstdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG1010 [538] (byte~) mode_hicolstdchar::$26 ← (byte) mode_hicolstdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG1011 [539] (byte) mode_hicolstdchar::v#0 ← (byte~) mode_hicolstdchar::$25 | (byte~) mode_hicolstdchar::$26 -- vbuaa=vbuz1_bor_vbuaa @@ -29119,13 +29119,13 @@ mode_hicolstdchar: { !: //SEG1016 [544] (byte) mode_hicolstdchar::cx#1 ← ++ (byte) mode_hicolstdchar::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG1017 [545] if((byte) mode_hicolstdchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_hicolstdchar::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG1017 [545] if((byte) mode_hicolstdchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_hicolstdchar::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b3 //SEG1018 mode_hicolstdchar::@5 //SEG1019 [546] (byte) mode_hicolstdchar::cy#1 ← ++ (byte) mode_hicolstdchar::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1020 [547] if((byte) mode_hicolstdchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_hicolstdchar::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG1020 [547] if((byte) mode_hicolstdchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_hicolstdchar::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2 @@ -29157,7 +29157,7 @@ mode_stdbitmap: { .label ch = 2 .label cy = 4 .label l = 4 - //SEG1029 [551] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdbitmap::BITMAP#0/(dword/signed dword) 65536 -- _deref_pbuc1=vbuc2 + //SEG1029 [551] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdbitmap::BITMAP#0/(dword/signed dword) $10000 -- _deref_pbuc1=vbuc2 // DTV Graphics Bank lda #($ffffffff&BITMAP)/$10000 sta DTV_GRAPHICS_VIC_BANK @@ -29168,7 +29168,7 @@ mode_stdbitmap: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG1032 [554] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdbitmap::BITMAP#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG1032 [554] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdbitmap::BITMAP#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^BITMAP/$4000 sta CIA2_PORT_A @@ -29180,7 +29180,7 @@ mode_stdbitmap: { //SEG1034 [556] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 -- _deref_pbuc1=vbuc2 lda #VIC_CSEL sta VIC_CONTROL2 - //SEG1035 [557] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdbitmap::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_stdbitmap::BITMAP#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1035 [557] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdbitmap::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_stdbitmap::BITMAP#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // VIC Memory Pointers lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400 sta VIC_MEMORY @@ -29192,12 +29192,12 @@ mode_stdbitmap: { //SEG1039 [558] phi (byte) mode_stdbitmap::i#2 = (byte) mode_stdbitmap::i#1 [phi:mode_stdbitmap::@1->mode_stdbitmap::@1#0] -- register_copy //SEG1040 mode_stdbitmap::@1 b1: - //SEG1041 [559] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdbitmap::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdbitmap::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG1041 [559] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdbitmap::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdbitmap::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda DTV_PALETTE_DEFAULT,x sta DTV_PALETTE,x //SEG1042 [560] (byte) mode_stdbitmap::i#1 ← ++ (byte) mode_stdbitmap::i#2 -- vbuxx=_inc_vbuxx inx - //SEG1043 [561] if((byte) mode_stdbitmap::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_stdbitmap::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG1043 [561] if((byte) mode_stdbitmap::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_stdbitmap::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1 //SEG1044 mode_stdbitmap::@5 @@ -29234,10 +29234,10 @@ mode_stdbitmap: { txa clc adc cy - //SEG1062 [567] (byte) mode_stdbitmap::col#0 ← (byte~) mode_stdbitmap::$19 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuyy=vbuaa_band_vbuc1 + //SEG1062 [567] (byte) mode_stdbitmap::col#0 ← (byte~) mode_stdbitmap::$19 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuyy=vbuaa_band_vbuc1 and #$f tay - //SEG1063 [568] (byte) mode_stdbitmap::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) mode_stdbitmap::col#0 -- vbuz1=vbuc1_minus_vbuyy + //SEG1063 [568] (byte) mode_stdbitmap::col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f - (byte) mode_stdbitmap::col#0 -- vbuz1=vbuc1_minus_vbuyy tya eor #$ff clc @@ -29261,13 +29261,13 @@ mode_stdbitmap: { !: //SEG1068 [573] (byte) mode_stdbitmap::cx#1 ← ++ (byte) mode_stdbitmap::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG1069 [574] if((byte) mode_stdbitmap::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_stdbitmap::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG1069 [574] if((byte) mode_stdbitmap::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_stdbitmap::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b3 //SEG1070 mode_stdbitmap::@6 //SEG1071 [575] (byte) mode_stdbitmap::cy#1 ← ++ (byte) mode_stdbitmap::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1072 [576] if((byte) mode_stdbitmap::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_stdbitmap::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG1072 [576] if((byte) mode_stdbitmap::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_stdbitmap::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2 @@ -29624,12 +29624,12 @@ bitmap_plot: { .label _0 = 2 .label plotter_x = 2 .label plotter_y = 5 - //SEG1255 [670] (word) bitmap_plot::plotter_x#0 ← *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx + //SEG1255 [670] (word) bitmap_plot::plotter_x#0 ← *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx lda bitmap_plot_xhi,x sta plotter_x+1 lda bitmap_plot_xlo,x sta plotter_x - //SEG1256 [671] (word) bitmap_plot::plotter_y#0 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) -- vwuz1=pbuc1_derefidx_vbuyy_word_pbuc2_derefidx_vbuyy + //SEG1256 [671] (word) bitmap_plot::plotter_y#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) -- vwuz1=pbuc1_derefidx_vbuyy_word_pbuc2_derefidx_vbuyy lda bitmap_plot_yhi,y sta plotter_y+1 lda bitmap_plot_ylo,y @@ -29642,7 +29642,7 @@ bitmap_plot: { lda _0+1 adc plotter_y+1 sta _0+1 - //SEG1258 [673] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) -- vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx + //SEG1258 [673] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) -- vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx lda bitmap_plot_bit,x ldy #0 ora (_0),y @@ -29845,7 +29845,7 @@ bitmap_clear: { .label bitmap = 2 .label y = 4 .label _3 = 2 - //SEG1347 [721] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_xhi#0) w= *((const byte[256]) bitmap_plot_xlo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 + //SEG1347 [721] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_xhi#0) w= *((const byte[$100]) bitmap_plot_xlo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 lda bitmap_plot_xlo sta _3 lda bitmap_plot_xhi @@ -29881,13 +29881,13 @@ bitmap_clear: { !: //SEG1365 [727] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 -- vbuxx=_inc_vbuxx inx - //SEG1366 [728] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) 200) goto bitmap_clear::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG1366 [728] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) $c8) goto bitmap_clear::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$c8 bne b2 //SEG1367 bitmap_clear::@3 //SEG1368 [729] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 -- vbuz1=_inc_vbuz1 inc y - //SEG1369 [730] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1369 [730] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$28 bne b1 @@ -29901,7 +29901,7 @@ bitmap_init: { .label _6 = 4 .label yoffs = 2 //SEG1373 [733] phi from bitmap_init to bitmap_init::@1 [phi:bitmap_init->bitmap_init::@1] - //SEG1374 [733] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init->bitmap_init::@1#0] -- vbuyy=vbuc1 + //SEG1374 [733] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init->bitmap_init::@1#0] -- vbuyy=vbuc1 ldy #$80 //SEG1375 [733] phi (byte) bitmap_init::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:bitmap_init->bitmap_init::@1#1] -- vbuxx=vbuc1 ldx #0 @@ -29910,15 +29910,15 @@ bitmap_init: { //SEG1378 [733] phi (byte) bitmap_init::x#2 = (byte) bitmap_init::x#1 [phi:bitmap_init::@2->bitmap_init::@1#1] -- register_copy //SEG1379 bitmap_init::@1 b1: - //SEG1380 [734] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) 248 -- vbuaa=vbuxx_band_vbuc1 + //SEG1380 [734] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) $f8 -- vbuaa=vbuxx_band_vbuc1 txa and #$f8 - //SEG1381 [735] *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG1381 [735] *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_xlo,x - //SEG1382 [736] *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) mode_stdbitmap::BITMAP#0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG1382 [736] *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) mode_stdbitmap::BITMAP#0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #>mode_stdbitmap.BITMAP sta bitmap_plot_xhi,x - //SEG1383 [737] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuxx=vbuyy + //SEG1383 [737] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuxx=vbuyy tya sta bitmap_plot_bit,x //SEG1384 [738] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuyy_ror_1 @@ -29929,7 +29929,7 @@ bitmap_init: { cpy #0 bne b2 //SEG1386 [740] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2] - //SEG1387 [740] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuyy=vbuc1 + //SEG1387 [740] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuyy=vbuc1 ldy #$80 //SEG1388 bitmap_init::@2 b2: @@ -29958,11 +29958,11 @@ bitmap_init: { lda yoffs //SEG1400 [746] (byte~) bitmap_init::$8 ← (byte~) bitmap_init::$6 | (byte~) bitmap_init::$7 -- vbuaa=vbuz1_bor_vbuaa ora _6 - //SEG1401 [747] *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG1401 [747] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_ylo,x //SEG1402 [748] (byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2 -- vbuaa=_hi_pbuz1 lda yoffs+1 - //SEG1403 [749] *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG1403 [749] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_yhi,x //SEG1404 [750] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuxx_band_vbuc1 txa @@ -29971,7 +29971,7 @@ bitmap_init: { cmp #7 bne b4 //SEG1406 bitmap_init::@7 - //SEG1407 [752] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 + //SEG1407 [752] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 clc lda yoffs adc #<$28*8 @@ -30018,15 +30018,15 @@ mode_mcchar: { .label col = 2 .label ch = 5 .label cy = 4 - //SEG1420 [758] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_mcchar::CHARSET#0/(dword/signed dword) 65536 -- _deref_pbuc1=vbuc2 + //SEG1420 [758] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_mcchar::CHARSET#0/(dword/signed dword) $10000 -- _deref_pbuc1=vbuc2 // DTV Graphics Bank lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG1421 [759] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1421 [759] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #DTV_COLOR_BANK_DEFAULT/$400 sta DTV_COLOR_BANK_LO - //SEG1422 [760] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1422 [760] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI //SEG1423 [761] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 @@ -30035,7 +30035,7 @@ mode_mcchar: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG1425 [763] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_mcchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG1425 [763] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_mcchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^CHARSET/$4000 sta CIA2_PORT_A @@ -30047,7 +30047,7 @@ mode_mcchar: { //SEG1427 [765] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0|(const byte) VIC_MCM#0 -- _deref_pbuc1=vbuc2 lda #VIC_CSEL|VIC_MCM sta VIC_CONTROL2 - //SEG1428 [766] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_mcchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_mcchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1428 [766] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_mcchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_mcchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // VIC Memory Pointers lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY @@ -30059,12 +30059,12 @@ mode_mcchar: { //SEG1432 [767] phi (byte) mode_mcchar::i#2 = (byte) mode_mcchar::i#1 [phi:mode_mcchar::@1->mode_mcchar::@1#0] -- register_copy //SEG1433 mode_mcchar::@1 b1: - //SEG1434 [768] *((const byte*) DTV_PALETTE#0 + (byte) mode_mcchar::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_mcchar::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG1434 [768] *((const byte*) DTV_PALETTE#0 + (byte) mode_mcchar::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_mcchar::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda DTV_PALETTE_DEFAULT,x sta DTV_PALETTE,x //SEG1435 [769] (byte) mode_mcchar::i#1 ← ++ (byte) mode_mcchar::i#2 -- vbuxx=_inc_vbuxx inx - //SEG1436 [770] if((byte) mode_mcchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_mcchar::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG1436 [770] if((byte) mode_mcchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_mcchar::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1 //SEG1437 mode_mcchar::@4 @@ -30116,7 +30116,7 @@ mode_mcchar: { txa clc adc cy - //SEG1461 [778] (byte~) mode_mcchar::$26 ← (byte~) mode_mcchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuaa_band_vbuc1 + //SEG1461 [778] (byte~) mode_mcchar::$26 ← (byte~) mode_mcchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuaa_band_vbuc1 and #$f //SEG1462 [779] *((byte*) mode_mcchar::col#2) ← (byte~) mode_mcchar::$26 -- _deref_pbuz1=vbuaa ldy #0 @@ -30126,7 +30126,7 @@ mode_mcchar: { bne !+ inc col+1 !: - //SEG1464 [781] (byte~) mode_mcchar::$27 ← (byte) mode_mcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG1464 [781] (byte~) mode_mcchar::$27 ← (byte) mode_mcchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and cy //SEG1465 [782] (byte~) mode_mcchar::$28 ← (byte~) mode_mcchar::$27 << (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuaa_rol_4 @@ -30135,7 +30135,7 @@ mode_mcchar: { asl asl sta _28 - //SEG1466 [783] (byte~) mode_mcchar::$29 ← (byte) mode_mcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG1466 [783] (byte~) mode_mcchar::$29 ← (byte) mode_mcchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG1467 [784] (byte~) mode_mcchar::$30 ← (byte~) mode_mcchar::$28 | (byte~) mode_mcchar::$29 -- vbuaa=vbuz1_bor_vbuaa @@ -30150,13 +30150,13 @@ mode_mcchar: { !: //SEG1470 [787] (byte) mode_mcchar::cx#1 ← ++ (byte) mode_mcchar::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG1471 [788] if((byte) mode_mcchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_mcchar::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG1471 [788] if((byte) mode_mcchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_mcchar::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b3 //SEG1472 mode_mcchar::@5 //SEG1473 [789] (byte) mode_mcchar::cy#1 ← ++ (byte) mode_mcchar::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1474 [790] if((byte) mode_mcchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_mcchar::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG1474 [790] if((byte) mode_mcchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_mcchar::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2 @@ -30193,15 +30193,15 @@ mode_ecmchar: { .label col = 2 .label ch = 5 .label cy = 4 - //SEG1483 [794] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_ecmchar::CHARSET#0/(dword/signed dword) 65536 -- _deref_pbuc1=vbuc2 + //SEG1483 [794] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_ecmchar::CHARSET#0/(dword/signed dword) $10000 -- _deref_pbuc1=vbuc2 // DTV Graphics Bank lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG1484 [795] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1484 [795] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #DTV_COLOR_BANK_DEFAULT/$400 sta DTV_COLOR_BANK_LO - //SEG1485 [796] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1485 [796] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI //SEG1486 [797] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 @@ -30210,7 +30210,7 @@ mode_ecmchar: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG1488 [799] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_ecmchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG1488 [799] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_ecmchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^CHARSET/$4000 sta CIA2_PORT_A @@ -30222,7 +30222,7 @@ mode_ecmchar: { //SEG1490 [801] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 -- _deref_pbuc1=vbuc2 lda #VIC_CSEL sta VIC_CONTROL2 - //SEG1491 [802] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_ecmchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_ecmchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1491 [802] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_ecmchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_ecmchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // VIC Memory Pointers lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY @@ -30234,12 +30234,12 @@ mode_ecmchar: { //SEG1495 [803] phi (byte) mode_ecmchar::i#2 = (byte) mode_ecmchar::i#1 [phi:mode_ecmchar::@1->mode_ecmchar::@1#0] -- register_copy //SEG1496 mode_ecmchar::@1 b1: - //SEG1497 [804] *((const byte*) DTV_PALETTE#0 + (byte) mode_ecmchar::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_ecmchar::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG1497 [804] *((const byte*) DTV_PALETTE#0 + (byte) mode_ecmchar::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_ecmchar::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda DTV_PALETTE_DEFAULT,x sta DTV_PALETTE,x //SEG1498 [805] (byte) mode_ecmchar::i#1 ← ++ (byte) mode_ecmchar::i#2 -- vbuxx=_inc_vbuxx inx - //SEG1499 [806] if((byte) mode_ecmchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_ecmchar::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG1499 [806] if((byte) mode_ecmchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_ecmchar::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1 //SEG1500 mode_ecmchar::@4 @@ -30293,7 +30293,7 @@ mode_ecmchar: { txa clc adc cy - //SEG1525 [815] (byte~) mode_ecmchar::$26 ← (byte~) mode_ecmchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuaa_band_vbuc1 + //SEG1525 [815] (byte~) mode_ecmchar::$26 ← (byte~) mode_ecmchar::$25 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuaa_band_vbuc1 and #$f //SEG1526 [816] *((byte*) mode_ecmchar::col#2) ← (byte~) mode_ecmchar::$26 -- _deref_pbuz1=vbuaa ldy #0 @@ -30303,7 +30303,7 @@ mode_ecmchar: { bne !+ inc col+1 !: - //SEG1528 [818] (byte~) mode_ecmchar::$27 ← (byte) mode_ecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG1528 [818] (byte~) mode_ecmchar::$27 ← (byte) mode_ecmchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and cy //SEG1529 [819] (byte~) mode_ecmchar::$28 ← (byte~) mode_ecmchar::$27 << (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuaa_rol_4 @@ -30312,7 +30312,7 @@ mode_ecmchar: { asl asl sta _28 - //SEG1530 [820] (byte~) mode_ecmchar::$29 ← (byte) mode_ecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG1530 [820] (byte~) mode_ecmchar::$29 ← (byte) mode_ecmchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG1531 [821] (byte~) mode_ecmchar::$30 ← (byte~) mode_ecmchar::$28 | (byte~) mode_ecmchar::$29 -- vbuaa=vbuz1_bor_vbuaa @@ -30327,13 +30327,13 @@ mode_ecmchar: { !: //SEG1534 [824] (byte) mode_ecmchar::cx#1 ← ++ (byte) mode_ecmchar::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG1535 [825] if((byte) mode_ecmchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_ecmchar::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG1535 [825] if((byte) mode_ecmchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_ecmchar::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b3 //SEG1536 mode_ecmchar::@5 //SEG1537 [826] (byte) mode_ecmchar::cy#1 ← ++ (byte) mode_ecmchar::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1538 [827] if((byte) mode_ecmchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_ecmchar::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG1538 [827] if((byte) mode_ecmchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_ecmchar::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2 @@ -30366,15 +30366,15 @@ mode_stdchar: { .label col = 2 .label ch = 5 .label cy = 4 - //SEG1547 [831] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdchar::CHARSET#0/(dword/signed dword) 65536 -- _deref_pbuc1=vbuc2 + //SEG1547 [831] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) mode_stdchar::CHARSET#0/(dword/signed dword) $10000 -- _deref_pbuc1=vbuc2 // DTV Graphics Bank lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG1548 [832] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1548 [832] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // DTV Color Bank lda #DTV_COLOR_BANK_DEFAULT/$400 sta DTV_COLOR_BANK_LO - //SEG1549 [833] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1549 [833] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI //SEG1550 [834] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 @@ -30383,7 +30383,7 @@ mode_stdchar: { // VIC Graphics Bank lda #3 sta CIA2_PORT_A_DDR - //SEG1552 [836] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdchar::CHARSET#0/(word/signed word/dword/signed dword) 16384 -- _deref_pbuc1=vbuc2 + //SEG1552 [836] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) mode_stdchar::CHARSET#0/(word/signed word/dword/signed dword) $4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^CHARSET/$4000 sta CIA2_PORT_A @@ -30395,7 +30395,7 @@ mode_stdchar: { //SEG1554 [838] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 -- _deref_pbuc1=vbuc2 lda #VIC_CSEL sta VIC_CONTROL2 - //SEG1555 [839] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdchar::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) mode_stdchar::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG1555 [839] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) mode_stdchar::SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) mode_stdchar::CHARSET#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 // VIC Memory Pointers lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY @@ -30407,12 +30407,12 @@ mode_stdchar: { //SEG1559 [840] phi (byte) mode_stdchar::i#2 = (byte) mode_stdchar::i#1 [phi:mode_stdchar::@1->mode_stdchar::@1#0] -- register_copy //SEG1560 mode_stdchar::@1 b1: - //SEG1561 [841] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdchar::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdchar::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG1561 [841] *((const byte*) DTV_PALETTE#0 + (byte) mode_stdchar::i#2) ← *((const byte[$10]) DTV_PALETTE_DEFAULT#0 + (byte) mode_stdchar::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda DTV_PALETTE_DEFAULT,x sta DTV_PALETTE,x //SEG1562 [842] (byte) mode_stdchar::i#1 ← ++ (byte) mode_stdchar::i#2 -- vbuxx=_inc_vbuxx inx - //SEG1563 [843] if((byte) mode_stdchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mode_stdchar::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG1563 [843] if((byte) mode_stdchar::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mode_stdchar::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1 //SEG1564 mode_stdchar::@4 @@ -30457,7 +30457,7 @@ mode_stdchar: { txa clc adc cy - //SEG1586 [849] (byte~) mode_stdchar::$25 ← (byte~) mode_stdchar::$24 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuaa_band_vbuc1 + //SEG1586 [849] (byte~) mode_stdchar::$25 ← (byte~) mode_stdchar::$24 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuaa_band_vbuc1 and #$f //SEG1587 [850] *((byte*) mode_stdchar::col#2) ← (byte~) mode_stdchar::$25 -- _deref_pbuz1=vbuaa ldy #0 @@ -30467,7 +30467,7 @@ mode_stdchar: { bne !+ inc col+1 !: - //SEG1589 [852] (byte~) mode_stdchar::$26 ← (byte) mode_stdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG1589 [852] (byte~) mode_stdchar::$26 ← (byte) mode_stdchar::cy#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and cy //SEG1590 [853] (byte~) mode_stdchar::$27 ← (byte~) mode_stdchar::$26 << (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuaa_rol_4 @@ -30476,7 +30476,7 @@ mode_stdchar: { asl asl sta _27 - //SEG1591 [854] (byte~) mode_stdchar::$28 ← (byte) mode_stdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG1591 [854] (byte~) mode_stdchar::$28 ← (byte) mode_stdchar::cx#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG1592 [855] (byte~) mode_stdchar::$29 ← (byte~) mode_stdchar::$27 | (byte~) mode_stdchar::$28 -- vbuaa=vbuz1_bor_vbuaa @@ -30491,13 +30491,13 @@ mode_stdchar: { !: //SEG1595 [858] (byte) mode_stdchar::cx#1 ← ++ (byte) mode_stdchar::cx#2 -- vbuxx=_inc_vbuxx inx - //SEG1596 [859] if((byte) mode_stdchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_stdchar::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG1596 [859] if((byte) mode_stdchar::cx#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto mode_stdchar::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b3 //SEG1597 mode_stdchar::@5 //SEG1598 [860] (byte) mode_stdchar::cy#1 ← ++ (byte) mode_stdchar::cy#4 -- vbuz1=_inc_vbuz1 inc cy - //SEG1599 [861] if((byte) mode_stdchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto mode_stdchar::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG1599 [861] if((byte) mode_stdchar::cy#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto mode_stdchar::@2 -- vbuz1_neq_vbuc1_then_la1 lda cy cmp #$19 bne b2 @@ -30600,7 +30600,7 @@ print_ln: { //SEG1641 [881] phi (byte*) print_line_cursor#18 = (byte*) print_line_cursor#17 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy //SEG1642 print_ln::@1 b1: - //SEG1643 [882] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG1643 [882] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -30644,7 +30644,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG1655 [889] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG1655 [889] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>menu.SCREEN+$3e8 bne b1 diff --git a/src/test/ref/c64dtv-gfxmodes.sym b/src/test/ref/c64dtv-gfxmodes.sym index d1cc1c2bd..3470ea4b2 100644 --- a/src/test/ref/c64dtv-gfxmodes.sym +++ b/src/test/ref/c64dtv-gfxmodes.sym @@ -2,40 +2,40 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL1 -(const byte*) BGCOL1#0 BGCOL1 = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL1#0 BGCOL1 = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL2 -(const byte*) BGCOL2#0 BGCOL2 = ((byte*))(word/dword/signed dword) 53282 +(const byte*) BGCOL2#0 BGCOL2 = ((byte*))(word/dword/signed dword) $d022 (byte*) BGCOL3 -(const byte*) BGCOL3#0 BGCOL3 = ((byte*))(word/dword/signed dword) 53283 +(const byte*) BGCOL3#0 BGCOL3 = ((byte*))(word/dword/signed dword) $d023 (byte*) BGCOL4 -(const byte*) BGCOL4#0 BGCOL4 = ((byte*))(word/dword/signed dword) 53284 +(const byte*) BGCOL4#0 BGCOL4 = ((byte*))(word/dword/signed dword) $d024 (byte) BLACK (const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) BLUE (const byte) BLUE#0 BLUE = (byte/signed byte/word/signed word/dword/signed dword) 6 (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN (byte*) CIA1_INTERRUPT (byte*) CIA1_PORT_A -(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) 56320 +(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) $dc00 (byte*) CIA1_PORT_A_DDR (byte*) CIA1_PORT_B -(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) 56321 +(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) $dc01 (byte*) CIA1_PORT_B_DDR (byte*) CIA2_INTERRUPT (byte*) CIA2_PORT_A -(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) 56576 +(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) $dd00 (byte*) CIA2_PORT_A_DDR -(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56578 +(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) $dd02 (byte*) CIA2_PORT_B (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR (byte*) COLS -(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) 55296 +(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) $d800 (byte) CYAN (byte*) D011 (byte*) D016 @@ -109,25 +109,25 @@ (byte) DTV_BORDER_OFF (const byte) DTV_BORDER_OFF#0 DTV_BORDER_OFF = (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) DTV_CHUNKY -(const byte) DTV_CHUNKY#0 DTV_CHUNKY = (byte/signed byte/word/signed word/dword/signed dword) 64 +(const byte) DTV_CHUNKY#0 DTV_CHUNKY = (byte/signed byte/word/signed word/dword/signed dword) $40 (byte) DTV_COLORRAM_OFF -(const byte) DTV_COLORRAM_OFF#0 DTV_COLORRAM_OFF = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) DTV_COLORRAM_OFF#0 DTV_COLORRAM_OFF = (byte/signed byte/word/signed word/dword/signed dword) $10 (dword) DTV_COLOR_BANK_DEFAULT -(const dword) DTV_COLOR_BANK_DEFAULT#0 DTV_COLOR_BANK_DEFAULT = (dword/signed dword) 120832 +(const dword) DTV_COLOR_BANK_DEFAULT#0 DTV_COLOR_BANK_DEFAULT = (dword/signed dword) $1d800 (byte*) DTV_COLOR_BANK_HI -(const byte*) DTV_COLOR_BANK_HI#0 DTV_COLOR_BANK_HI = ((byte*))(word/dword/signed dword) 53303 +(const byte*) DTV_COLOR_BANK_HI#0 DTV_COLOR_BANK_HI = ((byte*))(word/dword/signed dword) $d037 (byte*) DTV_COLOR_BANK_LO -(const byte*) DTV_COLOR_BANK_LO#0 DTV_COLOR_BANK_LO = ((byte*))(word/dword/signed dword) 53302 +(const byte*) DTV_COLOR_BANK_LO#0 DTV_COLOR_BANK_LO = ((byte*))(word/dword/signed dword) $d036 (byte*) DTV_CONTROL -(const byte*) DTV_CONTROL#0 DTV_CONTROL = ((byte*))(word/dword/signed dword) 53308 +(const byte*) DTV_CONTROL#0 DTV_CONTROL = ((byte*))(word/dword/signed dword) $d03c (byte*) DTV_FEATURE -(const byte*) DTV_FEATURE#0 DTV_FEATURE = ((byte*))(word/dword/signed dword) 53311 +(const byte*) DTV_FEATURE#0 DTV_FEATURE = ((byte*))(word/dword/signed dword) $d03f (byte) DTV_FEATURE_DISABLE_TIL_RESET (byte) DTV_FEATURE_ENABLE (const byte) DTV_FEATURE_ENABLE#0 DTV_FEATURE_ENABLE = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) DTV_GRAPHICS_HICOL_BANK (byte*) DTV_GRAPHICS_VIC_BANK -(const byte*) DTV_GRAPHICS_VIC_BANK#0 DTV_GRAPHICS_VIC_BANK = ((byte*))(word/dword/signed dword) 53309 +(const byte*) DTV_GRAPHICS_VIC_BANK#0 DTV_GRAPHICS_VIC_BANK = ((byte*))(word/dword/signed dword) $d03d (byte) DTV_HIGHCOLOR (const byte) DTV_HIGHCOLOR#0 DTV_HIGHCOLOR = (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DTV_LINEAR @@ -135,33 +135,33 @@ (byte) DTV_OVERSCAN (const byte) DTV_OVERSCAN#0 DTV_OVERSCAN = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte*) DTV_PALETTE -(const byte*) DTV_PALETTE#0 DTV_PALETTE = ((byte*))(word/dword/signed dword) 53760 -(byte[16]) DTV_PALETTE_DEFAULT -(const byte[16]) DTV_PALETTE_DEFAULT#0 DTV_PALETTE_DEFAULT = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 54, (byte/word/signed word/dword/signed dword) 190, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 219, (byte/word/signed word/dword/signed dword) 134, (byte/word/signed word/dword/signed dword) 255, (byte/signed byte/word/signed word/dword/signed dword) 41, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 59, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 154, (byte/signed byte/word/signed word/dword/signed dword) 10 } +(const byte*) DTV_PALETTE#0 DTV_PALETTE = ((byte*))(word/dword/signed dword) $d200 +(byte[$10]) DTV_PALETTE_DEFAULT +(const byte[$10]) DTV_PALETTE_DEFAULT#0 DTV_PALETTE_DEFAULT = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $36, (byte/word/signed word/dword/signed dword) $be, (byte/signed byte/word/signed word/dword/signed dword) $58, (byte/word/signed word/dword/signed dword) $db, (byte/word/signed word/dword/signed dword) $86, (byte/word/signed word/dword/signed dword) $ff, (byte/signed byte/word/signed word/dword/signed dword) $29, (byte/signed byte/word/signed word/dword/signed dword) $26, (byte/signed byte/word/signed word/dword/signed dword) $3b, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $9a, (byte/signed byte/word/signed word/dword/signed dword) $a } (byte*) DTV_PLANEA_MODULO_HI -(const byte*) DTV_PLANEA_MODULO_HI#0 DTV_PLANEA_MODULO_HI = ((byte*))(word/dword/signed dword) 53305 +(const byte*) DTV_PLANEA_MODULO_HI#0 DTV_PLANEA_MODULO_HI = ((byte*))(word/dword/signed dword) $d039 (byte*) DTV_PLANEA_MODULO_LO -(const byte*) DTV_PLANEA_MODULO_LO#0 DTV_PLANEA_MODULO_LO = ((byte*))(word/dword/signed dword) 53304 +(const byte*) DTV_PLANEA_MODULO_LO#0 DTV_PLANEA_MODULO_LO = ((byte*))(word/dword/signed dword) $d038 (byte*) DTV_PLANEA_START_HI -(const byte*) DTV_PLANEA_START_HI#0 DTV_PLANEA_START_HI = ((byte*))(word/dword/signed dword) 53317 +(const byte*) DTV_PLANEA_START_HI#0 DTV_PLANEA_START_HI = ((byte*))(word/dword/signed dword) $d045 (byte*) DTV_PLANEA_START_LO -(const byte*) DTV_PLANEA_START_LO#0 DTV_PLANEA_START_LO = ((byte*))(word/dword/signed dword) 53306 +(const byte*) DTV_PLANEA_START_LO#0 DTV_PLANEA_START_LO = ((byte*))(word/dword/signed dword) $d03a (byte*) DTV_PLANEA_START_MI -(const byte*) DTV_PLANEA_START_MI#0 DTV_PLANEA_START_MI = ((byte*))(word/dword/signed dword) 53307 +(const byte*) DTV_PLANEA_START_MI#0 DTV_PLANEA_START_MI = ((byte*))(word/dword/signed dword) $d03b (byte*) DTV_PLANEA_STEP -(const byte*) DTV_PLANEA_STEP#0 DTV_PLANEA_STEP = ((byte*))(word/dword/signed dword) 53318 +(const byte*) DTV_PLANEA_STEP#0 DTV_PLANEA_STEP = ((byte*))(word/dword/signed dword) $d046 (byte*) DTV_PLANEB_MODULO_HI -(const byte*) DTV_PLANEB_MODULO_HI#0 DTV_PLANEB_MODULO_HI = ((byte*))(word/dword/signed dword) 53320 +(const byte*) DTV_PLANEB_MODULO_HI#0 DTV_PLANEB_MODULO_HI = ((byte*))(word/dword/signed dword) $d048 (byte*) DTV_PLANEB_MODULO_LO -(const byte*) DTV_PLANEB_MODULO_LO#0 DTV_PLANEB_MODULO_LO = ((byte*))(word/dword/signed dword) 53319 +(const byte*) DTV_PLANEB_MODULO_LO#0 DTV_PLANEB_MODULO_LO = ((byte*))(word/dword/signed dword) $d047 (byte*) DTV_PLANEB_START_HI -(const byte*) DTV_PLANEB_START_HI#0 DTV_PLANEB_START_HI = ((byte*))(word/dword/signed dword) 53323 +(const byte*) DTV_PLANEB_START_HI#0 DTV_PLANEB_START_HI = ((byte*))(word/dword/signed dword) $d04b (byte*) DTV_PLANEB_START_LO -(const byte*) DTV_PLANEB_START_LO#0 DTV_PLANEB_START_LO = ((byte*))(word/dword/signed dword) 53321 +(const byte*) DTV_PLANEB_START_LO#0 DTV_PLANEB_START_LO = ((byte*))(word/dword/signed dword) $d049 (byte*) DTV_PLANEB_START_MI -(const byte*) DTV_PLANEB_START_MI#0 DTV_PLANEB_START_MI = ((byte*))(word/dword/signed dword) 53322 +(const byte*) DTV_PLANEB_START_MI#0 DTV_PLANEB_START_MI = ((byte*))(word/dword/signed dword) $d04a (byte*) DTV_PLANEB_STEP -(const byte*) DTV_PLANEB_STEP#0 DTV_PLANEB_STEP = ((byte*))(word/dword/signed dword) 53324 +(const byte*) DTV_PLANEB_STEP#0 DTV_PLANEB_STEP = ((byte*))(word/dword/signed dword) $d04c (byte*) DTV_SPRITE_BANK (byte) GREEN (const byte) GREEN#0 GREEN = (byte/signed byte/word/signed word/dword/signed dword) 5 @@ -175,33 +175,33 @@ (byte*) IRQ_STATUS (void()**) KERNEL_IRQ (byte) KEY_0 -(const byte) KEY_0#0 KEY_0 = (byte/signed byte/word/signed word/dword/signed dword) 35 +(const byte) KEY_0#0 KEY_0 = (byte/signed byte/word/signed word/dword/signed dword) $23 (byte) KEY_1 -(const byte) KEY_1#0 KEY_1 = (byte/signed byte/word/signed word/dword/signed dword) 56 +(const byte) KEY_1#0 KEY_1 = (byte/signed byte/word/signed word/dword/signed dword) $38 (byte) KEY_2 -(const byte) KEY_2#0 KEY_2 = (byte/signed byte/word/signed word/dword/signed dword) 59 +(const byte) KEY_2#0 KEY_2 = (byte/signed byte/word/signed word/dword/signed dword) $3b (byte) KEY_3 (const byte) KEY_3#0 KEY_3 = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) KEY_4 -(const byte) KEY_4#0 KEY_4 = (byte/signed byte/word/signed word/dword/signed dword) 11 +(const byte) KEY_4#0 KEY_4 = (byte/signed byte/word/signed word/dword/signed dword) $b (byte) KEY_5 (byte) KEY_6 -(const byte) KEY_6#0 KEY_6 = (byte/signed byte/word/signed word/dword/signed dword) 19 +(const byte) KEY_6#0 KEY_6 = (byte/signed byte/word/signed word/dword/signed dword) $13 (byte) KEY_7 -(const byte) KEY_7#0 KEY_7 = (byte/signed byte/word/signed word/dword/signed dword) 24 +(const byte) KEY_7#0 KEY_7 = (byte/signed byte/word/signed word/dword/signed dword) $18 (byte) KEY_8 -(const byte) KEY_8#0 KEY_8 = (byte/signed byte/word/signed word/dword/signed dword) 27 +(const byte) KEY_8#0 KEY_8 = (byte/signed byte/word/signed word/dword/signed dword) $1b (byte) KEY_9 (byte) KEY_A -(const byte) KEY_A#0 KEY_A = (byte/signed byte/word/signed word/dword/signed dword) 10 +(const byte) KEY_A#0 KEY_A = (byte/signed byte/word/signed word/dword/signed dword) $a (byte) KEY_ARROW_LEFT (byte) KEY_ARROW_UP (byte) KEY_ASTERISK (byte) KEY_AT (byte) KEY_B -(const byte) KEY_B#0 KEY_B = (byte/signed byte/word/signed word/dword/signed dword) 28 +(const byte) KEY_B#0 KEY_B = (byte/signed byte/word/signed word/dword/signed dword) $1c (byte) KEY_C -(const byte) KEY_C#0 KEY_C = (byte/signed byte/word/signed word/dword/signed dword) 20 +(const byte) KEY_C#0 KEY_C = (byte/signed byte/word/signed word/dword/signed dword) $14 (byte) KEY_COLON (byte) KEY_COMMA (byte) KEY_COMMODORE @@ -209,11 +209,11 @@ (byte) KEY_CRSR_RIGHT (byte) KEY_CTRL (byte) KEY_D -(const byte) KEY_D#0 KEY_D = (byte/signed byte/word/signed word/dword/signed dword) 18 +(const byte) KEY_D#0 KEY_D = (byte/signed byte/word/signed word/dword/signed dword) $12 (byte) KEY_DEL (byte) KEY_DOT (byte) KEY_E -(const byte) KEY_E#0 KEY_E = (byte/signed byte/word/signed word/dword/signed dword) 14 +(const byte) KEY_E#0 KEY_E = (byte/signed byte/word/signed word/dword/signed dword) $e (byte) KEY_EQUALS (byte) KEY_F (byte) KEY_F1 @@ -222,13 +222,13 @@ (byte) KEY_F7 (byte) KEY_G (byte) KEY_H -(const byte) KEY_H#0 KEY_H = (byte/signed byte/word/signed word/dword/signed dword) 29 +(const byte) KEY_H#0 KEY_H = (byte/signed byte/word/signed word/dword/signed dword) $1d (byte) KEY_HOME (byte) KEY_I (byte) KEY_J (byte) KEY_K (byte) KEY_L -(const byte) KEY_L#0 KEY_L = (byte/signed byte/word/signed word/dword/signed dword) 42 +(const byte) KEY_L#0 KEY_L = (byte/signed byte/word/signed word/dword/signed dword) $2a (byte) KEY_LSHIFT (byte) KEY_M (byte) KEY_MINUS @@ -239,7 +239,7 @@ (byte) KEY_MODIFIER_SHIFT (byte) KEY_N (byte) KEY_O -(const byte) KEY_O#0 KEY_O = (byte/signed byte/word/signed word/dword/signed dword) 38 +(const byte) KEY_O#0 KEY_O = (byte/signed byte/word/signed word/dword/signed dword) $26 (byte) KEY_P (byte) KEY_PLUS (byte) KEY_POUND @@ -252,10 +252,10 @@ (byte) KEY_SEMICOLON (byte) KEY_SLASH (byte) KEY_SPACE -(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) 60 +(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) $3c (byte) KEY_T (byte) KEY_U -(const byte) KEY_U#0 KEY_U = (byte/signed byte/word/signed word/dword/signed dword) 30 +(const byte) KEY_U#0 KEY_U = (byte/signed byte/word/signed word/dword/signed dword) $1e (byte) KEY_V (byte) KEY_W (byte) KEY_X @@ -265,7 +265,7 @@ (byte*) LIGHTPEN_Y (byte) LIGHT_BLUE (byte) LIGHT_GREEN -(const byte) LIGHT_GREEN#0 LIGHT_GREEN = (byte/signed byte/word/signed word/dword/signed dword) 13 +(const byte) LIGHT_GREEN#0 LIGHT_GREEN = (byte/signed byte/word/signed word/dword/signed dword) $d (byte) LIGHT_GREY (byte[]) MENU_TEXT (const byte[]) MENU_TEXT#0 MENU_TEXT = (string) "C64DTV Graphics Modes CCLHBME@"+(string) " OHIIMCC@"+(string) " LUNCMMM@"+(string) "----------------------------------------@"+(string) "1. Standard Char (V) 0000000@"+(string) "2. Extended Color Char (V) 0000001@"+(string) "3. Multicolor Char (V) 0000010@"+(string) "4. Standard Bitmap (V) 0000100@"+(string) "5. Multicolor Bitmap (V) 0000110@"+(string) "6. High Color Standard Char (H) 0001000@"+(string) "7. High Extended Color Char (H) 0001001@"+(string) "8. High Multicolor Char (H) 0001010@"+(string) "9. High Multicolor Bitmap (H) 0001110@"+(string) "a. Sixs Fred 2 (D) 0010111@"+(string) "b. Two Plane Bitmap (D) 0011101@"+(string) "c. Sixs Fred (2 Plane MC BM) (D) 0011111@"+(string) "d. 8bpp Pixel Cell (D) 0111011@"+(string) "e. Chunky 8bpp Bitmap (D) 1111011@"+(string) "----------------------------------------@"+(string) " (V) vicII (H) vicII+hicol (D) c64dtv@"+(string) "@" @@ -281,12 +281,12 @@ (byte) PROCPORT_KERNEL_IO (byte) PROCPORT_RAM_ALL (byte) PROCPORT_RAM_CHARROM -(const byte) PROCPORT_RAM_CHARROM#0 PROCPORT_RAM_CHARROM = (byte/signed byte/word/signed word/dword/signed dword) 49 +(const byte) PROCPORT_RAM_CHARROM#0 PROCPORT_RAM_CHARROM = (byte/signed byte/word/signed word/dword/signed dword) $31 (byte) PROCPORT_RAM_IO -(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) 53 +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) $35 (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE @@ -301,21 +301,21 @@ (byte*) SPRITES_YPOS (word) SPRITE_PTRS (byte) VIC_BMM -(const byte) VIC_BMM#0 VIC_BMM = (byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte) VIC_BMM#0 VIC_BMM = (byte/signed byte/word/signed word/dword/signed dword) $20 (byte*) VIC_CONTROL -(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) 53265 +(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) $d011 (byte*) VIC_CONTROL2 -(const byte*) VIC_CONTROL2#0 VIC_CONTROL2 = ((byte*))(word/dword/signed dword) 53270 +(const byte*) VIC_CONTROL2#0 VIC_CONTROL2 = ((byte*))(word/dword/signed dword) $d016 (byte) VIC_CSEL (const byte) VIC_CSEL#0 VIC_CSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) VIC_DEN -(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_ECM -(const byte) VIC_ECM#0 VIC_ECM = (byte/signed byte/word/signed word/dword/signed dword) 64 +(const byte) VIC_ECM#0 VIC_ECM = (byte/signed byte/word/signed word/dword/signed dword) $40 (byte) VIC_MCM -(const byte) VIC_MCM#0 VIC_MCM = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_MCM#0 VIC_MCM = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte*) VIC_MEMORY -(const byte*) VIC_MEMORY#0 VIC_MEMORY = ((byte*))(word/dword/signed dword) 53272 +(const byte*) VIC_MEMORY#0 VIC_MEMORY = ((byte*))(word/dword/signed dword) $d018 (byte) VIC_RSEL (const byte) VIC_RSEL#0 VIC_RSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) VIC_RST8 @@ -572,20 +572,20 @@ (byte) bitmap_plot::y#2 reg byte y 2002.0 (byte) bitmap_plot::y#3 reg byte y 2002.0 (byte) bitmap_plot::y#4 reg byte y 2004.0 -(byte[256]) bitmap_plot_bit -(const byte[256]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( 256, 0) } -(byte[256]) bitmap_plot_xhi -(const byte[256]) bitmap_plot_xhi#0 bitmap_plot_xhi = { fill( 256, 0) } -(byte[256]) bitmap_plot_xlo -(const byte[256]) bitmap_plot_xlo#0 bitmap_plot_xlo = { fill( 256, 0) } -(byte[256]) bitmap_plot_yhi -(const byte[256]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( 256, 0) } -(byte[256]) bitmap_plot_ylo -(const byte[256]) bitmap_plot_ylo#0 bitmap_plot_ylo = { fill( 256, 0) } +(byte[$100]) bitmap_plot_bit +(const byte[$100]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( $100, 0) } +(byte[$100]) bitmap_plot_xhi +(const byte[$100]) bitmap_plot_xhi#0 bitmap_plot_xhi = { fill( $100, 0) } +(byte[$100]) bitmap_plot_xlo +(const byte[$100]) bitmap_plot_xlo#0 bitmap_plot_xlo = { fill( $100, 0) } +(byte[$100]) bitmap_plot_yhi +(const byte[$100]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( $100, 0) } +(byte[$100]) bitmap_plot_ylo +(const byte[$100]) bitmap_plot_ylo#0 bitmap_plot_ylo = { fill( $100, 0) } (void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx) (label) dtvSetCpuBankSegment1::@return (byte*) dtvSetCpuBankSegment1::cpuBank -(const byte*) dtvSetCpuBankSegment1::cpuBank#0 cpuBank = ((byte*))(byte/word/signed word/dword/signed dword) 255 +(const byte*) dtvSetCpuBankSegment1::cpuBank#0 cpuBank = ((byte*))(byte/word/signed word/dword/signed dword) $ff (byte) dtvSetCpuBankSegment1::cpuBankIdx (byte) dtvSetCpuBankSegment1::cpuBankIdx#1 reg byte a 2002.0 (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 reg byte a 1003.0 @@ -629,7 +629,7 @@ (byte) keyboard_key_pressed::rowidx (byte) keyboard_key_pressed::rowidx#0 reg byte a 4.0 (byte[8]) keyboard_matrix_col_bitmask -(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $10, (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/word/signed word/dword/signed dword) $80 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (label) keyboard_matrix_read::@return (byte) keyboard_matrix_read::return @@ -639,7 +639,7 @@ (byte) keyboard_matrix_read::rowid (byte) keyboard_matrix_read::rowid#0 reg byte y 4.0 (byte[8]) keyboard_matrix_row_bitmask -(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } +(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) $fe, (byte/word/signed word/dword/signed dword) $fd, (byte/word/signed word/dword/signed dword) $fb, (byte/word/signed word/dword/signed dword) $f7, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $bf, (byte/signed byte/word/signed word/dword/signed dword) $7f } (byte) keyboard_modifiers (byte[8]) keyboard_scan_values (void()) main() @@ -700,9 +700,9 @@ (label) menu::@9 (label) menu::@return (byte*) menu::CHARSET -(const byte*) menu::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) 38912 +(const byte*) menu::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) $9800 (byte*) menu::SCREEN -(const byte*) menu::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768 +(const byte*) menu::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) $8000 (byte*) menu::c (byte*) menu::c#1 c zp ZP_WORD:2 151.5 (byte*) menu::c#2 c zp ZP_WORD:2 151.5 @@ -723,7 +723,7 @@ (label) mode_8bppchunkybmm::@8 (label) mode_8bppchunkybmm::@return (dword) mode_8bppchunkybmm::PLANEB -(const dword) mode_8bppchunkybmm::PLANEB#0 PLANEB = (dword/signed dword) 131072 +(const dword) mode_8bppchunkybmm::PLANEB#0 PLANEB = (dword/signed dword) $20000 (byte) mode_8bppchunkybmm::c (byte) mode_8bppchunkybmm::c#0 reg byte a 2002.0 (byte*) mode_8bppchunkybmm::gfxb @@ -767,9 +767,9 @@ (label) mode_8bpppixelcell::@return (byte*) mode_8bpppixelcell::CHARGEN (byte*) mode_8bpppixelcell::PLANEA -(const byte*) mode_8bpppixelcell::PLANEA#0 PLANEA = ((byte*))(word/signed word/dword/signed dword) 15360 +(const byte*) mode_8bpppixelcell::PLANEA#0 PLANEA = ((byte*))(word/signed word/dword/signed dword) $3c00 (byte*) mode_8bpppixelcell::PLANEB -(const byte*) mode_8bpppixelcell::PLANEB#0 PLANEB = ((byte*))(word/signed word/dword/signed dword) 16384 +(const byte*) mode_8bpppixelcell::PLANEB#0 PLANEB = ((byte*))(word/signed word/dword/signed dword) $4000 (byte) mode_8bpppixelcell::ax (byte) mode_8bpppixelcell::ax#1 reg byte x 1501.5 (byte) mode_8bpppixelcell::ax#2 reg byte x 429.0 @@ -880,11 +880,11 @@ (label) mode_ecmchar::@6 (label) mode_ecmchar::@return (byte*) mode_ecmchar::CHARSET -(const byte*) mode_ecmchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) 36864 +(const byte*) mode_ecmchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) $9000 (byte*) mode_ecmchar::COLORS -(const byte*) mode_ecmchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 55296 +(const byte*) mode_ecmchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) $d800 (byte*) mode_ecmchar::SCREEN -(const byte*) mode_ecmchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768 +(const byte*) mode_ecmchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) $8000 (byte*) mode_ecmchar::ch (byte*) mode_ecmchar::ch#1 ch zp ZP_WORD:5 420.59999999999997 (byte*) mode_ecmchar::ch#2 ch zp ZP_WORD:5 310.4 @@ -914,11 +914,11 @@ (label) mode_hicolecmchar::@6 (label) mode_hicolecmchar::@return (byte*) mode_hicolecmchar::CHARSET -(const byte*) mode_hicolecmchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) 36864 +(const byte*) mode_hicolecmchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) $9000 (byte*) mode_hicolecmchar::COLORS -(const byte*) mode_hicolecmchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 33792 +(const byte*) mode_hicolecmchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) $8400 (byte*) mode_hicolecmchar::SCREEN -(const byte*) mode_hicolecmchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768 +(const byte*) mode_hicolecmchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) $8000 (byte*) mode_hicolecmchar::ch (byte*) mode_hicolecmchar::ch#1 ch zp ZP_WORD:5 420.59999999999997 (byte*) mode_hicolecmchar::ch#2 ch zp ZP_WORD:5 388.0 @@ -950,11 +950,11 @@ (label) mode_hicolmcchar::@6 (label) mode_hicolmcchar::@return (byte*) mode_hicolmcchar::CHARSET -(const byte*) mode_hicolmcchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) 36864 +(const byte*) mode_hicolmcchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) $9000 (byte*) mode_hicolmcchar::COLORS -(const byte*) mode_hicolmcchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 33792 +(const byte*) mode_hicolmcchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) $8400 (byte*) mode_hicolmcchar::SCREEN -(const byte*) mode_hicolmcchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768 +(const byte*) mode_hicolmcchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) $8000 (byte*) mode_hicolmcchar::ch (byte*) mode_hicolmcchar::ch#1 ch zp ZP_WORD:5 420.59999999999997 (byte*) mode_hicolmcchar::ch#2 ch zp ZP_WORD:5 388.0 @@ -986,11 +986,11 @@ (label) mode_hicolstdchar::@6 (label) mode_hicolstdchar::@return (byte*) mode_hicolstdchar::CHARSET -(const byte*) mode_hicolstdchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) 36864 +(const byte*) mode_hicolstdchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) $9000 (byte*) mode_hicolstdchar::COLORS -(const byte*) mode_hicolstdchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 33792 +(const byte*) mode_hicolstdchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) $8400 (byte*) mode_hicolstdchar::SCREEN -(const byte*) mode_hicolstdchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768 +(const byte*) mode_hicolstdchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) $8000 (byte*) mode_hicolstdchar::ch (byte*) mode_hicolstdchar::ch#1 ch zp ZP_WORD:5 420.59999999999997 (byte*) mode_hicolstdchar::ch#2 ch zp ZP_WORD:5 388.0 @@ -1025,11 +1025,11 @@ (label) mode_mcchar::@6 (label) mode_mcchar::@return (byte*) mode_mcchar::CHARSET -(const byte*) mode_mcchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) 36864 +(const byte*) mode_mcchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) $9000 (byte*) mode_mcchar::COLORS -(const byte*) mode_mcchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 55296 +(const byte*) mode_mcchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) $d800 (byte*) mode_mcchar::SCREEN -(const byte*) mode_mcchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768 +(const byte*) mode_mcchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) $8000 (byte*) mode_mcchar::ch (byte*) mode_mcchar::ch#1 ch zp ZP_WORD:5 420.59999999999997 (byte*) mode_mcchar::ch#2 ch zp ZP_WORD:5 310.4 @@ -1065,11 +1065,11 @@ (label) mode_sixsfred::@9 (label) mode_sixsfred::@return (byte*) mode_sixsfred::COLORS -(const byte*) mode_sixsfred::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 32768 +(const byte*) mode_sixsfred::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) $8000 (byte*) mode_sixsfred::PLANEA -(const byte*) mode_sixsfred::PLANEA#0 PLANEA = ((byte*))(word/signed word/dword/signed dword) 16384 +(const byte*) mode_sixsfred::PLANEA#0 PLANEA = ((byte*))(word/signed word/dword/signed dword) $4000 (byte*) mode_sixsfred::PLANEB -(const byte*) mode_sixsfred::PLANEB#0 PLANEB = ((byte*))(word/signed word/dword/signed dword) 24576 +(const byte*) mode_sixsfred::PLANEB#0 PLANEB = ((byte*))(word/signed word/dword/signed dword) $6000 (byte) mode_sixsfred::ax (byte) mode_sixsfred::ax#1 reg byte x 1501.5 (byte) mode_sixsfred::ax#2 reg byte x 400.4 @@ -1106,7 +1106,7 @@ (byte) mode_sixsfred::row (byte) mode_sixsfred::row#0 reg byte a 2002.0 (byte[]) mode_sixsfred::row_bitmask -(const byte[]) mode_sixsfred::row_bitmask#0 row_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 85, (byte/word/signed word/dword/signed dword) 170, (byte/word/signed word/dword/signed dword) 255 } +(const byte[]) mode_sixsfred::row_bitmask#0 row_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $55, (byte/word/signed word/dword/signed dword) $aa, (byte/word/signed word/dword/signed dword) $ff } (void()) mode_sixsfred2() (byte~) mode_sixsfred2::$14 reg byte a 2002.0 (byte~) mode_sixsfred2::$15 $15 zp ZP_BYTE:7 1001.0 @@ -1127,11 +1127,11 @@ (label) mode_sixsfred2::@9 (label) mode_sixsfred2::@return (byte*) mode_sixsfred2::COLORS -(const byte*) mode_sixsfred2::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 32768 +(const byte*) mode_sixsfred2::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) $8000 (byte*) mode_sixsfred2::PLANEA -(const byte*) mode_sixsfred2::PLANEA#0 PLANEA = ((byte*))(word/signed word/dword/signed dword) 16384 +(const byte*) mode_sixsfred2::PLANEA#0 PLANEA = ((byte*))(word/signed word/dword/signed dword) $4000 (byte*) mode_sixsfred2::PLANEB -(const byte*) mode_sixsfred2::PLANEB#0 PLANEB = ((byte*))(word/signed word/dword/signed dword) 24576 +(const byte*) mode_sixsfred2::PLANEB#0 PLANEB = ((byte*))(word/signed word/dword/signed dword) $6000 (byte) mode_sixsfred2::ax (byte) mode_sixsfred2::ax#1 reg byte x 1501.5 (byte) mode_sixsfred2::ax#2 reg byte x 400.4 @@ -1168,7 +1168,7 @@ (byte) mode_sixsfred2::row (byte) mode_sixsfred2::row#0 reg byte a 2002.0 (byte[]) mode_sixsfred2::row_bitmask -(const byte[]) mode_sixsfred2::row_bitmask#0 row_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 85, (byte/word/signed word/dword/signed dword) 170, (byte/word/signed word/dword/signed dword) 255 } +(const byte[]) mode_sixsfred2::row_bitmask#0 row_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $55, (byte/word/signed word/dword/signed dword) $aa, (byte/word/signed word/dword/signed dword) $ff } (void()) mode_stdbitmap() (byte~) mode_stdbitmap::$19 reg byte a 2002.0 (byte~) mode_stdbitmap::$22 reg byte a 2002.0 @@ -1185,9 +1185,9 @@ (label) mode_stdbitmap::@9 (label) mode_stdbitmap::@return (byte*) mode_stdbitmap::BITMAP -(const byte*) mode_stdbitmap::BITMAP#0 BITMAP = ((byte*))(word/signed word/dword/signed dword) 24576 +(const byte*) mode_stdbitmap::BITMAP#0 BITMAP = ((byte*))(word/signed word/dword/signed dword) $6000 (byte*) mode_stdbitmap::SCREEN -(const byte*) mode_stdbitmap::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 16384 +(const byte*) mode_stdbitmap::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $4000 (byte*) mode_stdbitmap::ch (byte*) mode_stdbitmap::ch#1 ch zp ZP_WORD:2 420.59999999999997 (byte*) mode_stdbitmap::ch#2 ch zp ZP_WORD:2 443.42857142857144 @@ -1211,9 +1211,9 @@ (byte) mode_stdbitmap::lines_cnt (const byte) mode_stdbitmap::lines_cnt#0 lines_cnt = (byte/signed byte/word/signed word/dword/signed dword) 9 (byte[]) mode_stdbitmap::lines_x -(const byte[]) mode_stdbitmap::lines_x#0 lines_x = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 128, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 128, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 128 } +(const byte[]) mode_stdbitmap::lines_x#0 lines_x = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $ff, (byte/word/signed word/dword/signed dword) $ff, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $80, (byte/word/signed word/dword/signed dword) $ff, (byte/word/signed word/dword/signed dword) $80, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $80 } (byte[]) mode_stdbitmap::lines_y -(const byte[]) mode_stdbitmap::lines_y#0 lines_y = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 199, (byte/word/signed word/dword/signed dword) 199, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/word/signed word/dword/signed dword) 199, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/signed byte/word/signed word/dword/signed dword) 0 } +(const byte[]) mode_stdbitmap::lines_y#0 lines_y = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $c7, (byte/word/signed word/dword/signed dword) $c7, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $64, (byte/word/signed word/dword/signed dword) $c7, (byte/signed byte/word/signed word/dword/signed dword) $64, (byte/signed byte/word/signed word/dword/signed dword) 0 } (void()) mode_stdchar() (byte~) mode_stdchar::$24 reg byte a 2002.0 (byte~) mode_stdchar::$25 reg byte a 2002.0 @@ -1229,11 +1229,11 @@ (label) mode_stdchar::@6 (label) mode_stdchar::@return (byte*) mode_stdchar::CHARSET -(const byte*) mode_stdchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) 36864 +(const byte*) mode_stdchar::CHARSET#0 CHARSET = ((byte*))(word/dword/signed dword) $9000 (byte*) mode_stdchar::COLORS -(const byte*) mode_stdchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 55296 +(const byte*) mode_stdchar::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) $d800 (byte*) mode_stdchar::SCREEN -(const byte*) mode_stdchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768 +(const byte*) mode_stdchar::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) $8000 (byte*) mode_stdchar::ch (byte*) mode_stdchar::ch#1 ch zp ZP_WORD:5 420.59999999999997 (byte*) mode_stdchar::ch#2 ch zp ZP_WORD:5 310.4 @@ -1274,11 +1274,11 @@ (label) mode_twoplanebitmap::@9 (label) mode_twoplanebitmap::@return (byte*) mode_twoplanebitmap::COLORS -(const byte*) mode_twoplanebitmap::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 32768 +(const byte*) mode_twoplanebitmap::COLORS#0 COLORS = ((byte*))(word/dword/signed dword) $8000 (byte*) mode_twoplanebitmap::PLANEA -(const byte*) mode_twoplanebitmap::PLANEA#0 PLANEA = ((byte*))(word/signed word/dword/signed dword) 16384 +(const byte*) mode_twoplanebitmap::PLANEA#0 PLANEA = ((byte*))(word/signed word/dword/signed dword) $4000 (byte*) mode_twoplanebitmap::PLANEB -(const byte*) mode_twoplanebitmap::PLANEB#0 PLANEB = ((byte*))(word/signed word/dword/signed dword) 24576 +(const byte*) mode_twoplanebitmap::PLANEB#0 PLANEB = ((byte*))(word/signed word/dword/signed dword) $6000 (byte) mode_twoplanebitmap::ax (byte) mode_twoplanebitmap::ax#1 reg byte x 1501.5 (byte) mode_twoplanebitmap::ax#2 reg byte x 250.25 diff --git a/src/test/ref/callconstparam.cfg b/src/test/ref/callconstparam.cfg index 65e1acd0b..606f64281 100644 --- a/src/test/ref/callconstparam.cfg +++ b/src/test/ref/callconstparam.cfg @@ -20,7 +20,7 @@ main::@return: scope:[main] from main::@1 to:@return line: scope:[line] from main main::@1 [9] (byte) line::x1#3 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 2 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 5 ) - [9] (byte*) screen#14 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@1/(byte*) screen#11 ) + [9] (byte*) screen#14 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@1/(byte*) screen#11 ) [9] (byte) line::x#0 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 1 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 3 ) to:line::@1 line::@1: scope:[line] from line line::@1 diff --git a/src/test/ref/callconstparam.log b/src/test/ref/callconstparam.log index abd9f3784..fc9ce03be 100644 --- a/src/test/ref/callconstparam.log +++ b/src/test/ref/callconstparam.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@2 main: scope:[main] from @2 (byte*) screen#13 ← phi( @2/(byte*) screen#15 ) @@ -117,7 +117,7 @@ Redundant Phi (byte*) screen#12 (byte*) screen#2 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) line::$0 [22] if((byte) line::x#1<(byte) line::x1#3) goto line::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) screen#0 = ((byte*))1024 +Constant (const byte*) screen#0 = ((byte*))$400 Constant (const byte) line::x0#0 = 1 Constant (const byte) line::x1#0 = 2 Constant (const byte) line::x0#1 = 3 @@ -133,7 +133,7 @@ Inlining constant with var siblings (const byte) line::x1#1 Inlining constant with var siblings (const byte*) screen#0 Constant inlined line::x0#0 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined line::x1#1 = (byte/signed byte/word/signed word/dword/signed dword) 5 -Constant inlined screen#0 = ((byte*))(word/signed word/dword/signed dword) 1024 +Constant inlined screen#0 = ((byte*))(word/signed word/dword/signed dword) $400 Constant inlined line::x1#0 = (byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined line::x0#1 = (byte/signed byte/word/signed word/dword/signed dword) 3 Successful SSA optimization Pass2ConstantInlining @@ -183,7 +183,7 @@ main::@return: scope:[main] from main::@1 to:@return line: scope:[line] from main main::@1 [9] (byte) line::x1#3 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 2 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 5 ) - [9] (byte*) screen#14 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@1/(byte*) screen#11 ) + [9] (byte*) screen#14 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@1/(byte*) screen#11 ) [9] (byte) line::x#0 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 1 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 3 ) to:line::@1 line::@1: scope:[line] from line line::@1 @@ -261,7 +261,7 @@ main: { //SEG13 [9] phi (byte) line::x1#3 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:main->line#0] -- vbuz1=vbuc1 lda #2 sta line.x1 - //SEG14 [9] phi (byte*) screen#14 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->line#1] -- pbuz1=pbuc1 + //SEG14 [9] phi (byte*) screen#14 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->line#1] -- pbuz1=pbuc1 lda #<$400 sta screen lda #>$400 @@ -383,7 +383,7 @@ main: { //SEG13 [9] phi (byte) line::x1#3 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:main->line#0] -- vbuz1=vbuc1 lda #2 sta line.x1 - //SEG14 [9] phi (byte*) screen#14 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->line#1] -- pbuz1=pbuc1 + //SEG14 [9] phi (byte*) screen#14 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->line#1] -- pbuz1=pbuc1 lda #<$400 sta screen lda #>$400 @@ -529,7 +529,7 @@ main: { //SEG13 [9] phi (byte) line::x1#3 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:main->line#0] -- vbuz1=vbuc1 lda #2 sta line.x1 - //SEG14 [9] phi (byte*) screen#14 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->line#1] -- pbuz1=pbuc1 + //SEG14 [9] phi (byte*) screen#14 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->line#1] -- pbuz1=pbuc1 lda #<$400 sta screen lda #>$400 diff --git a/src/test/ref/cast-deref.log b/src/test/ref/cast-deref.log index 18e1d5f2f..a41748633 100644 --- a/src/test/ref/cast-deref.log +++ b/src/test/ref/cast-deref.log @@ -8,7 +8,7 @@ main: scope:[main] from @1 (signed byte/signed word/signed dword~) main::$2 ← - (byte/signed byte/word/signed word/dword/signed dword) 3 (signed byte/signed word/signed dword~) main::$3 ← - (byte/signed byte/word/signed word/dword/signed dword) 4 (signed byte[]) main::sbs#0 ← { (signed byte/signed word/signed dword~) main::$0, (signed byte/signed word/signed dword~) main::$1, (signed byte/signed word/signed dword~) main::$2, (signed byte/signed word/signed dword~) main::$3 } - (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main main::@1 @@ -66,7 +66,7 @@ Constant (const signed byte/signed word/signed dword) main::$0 = -1 Constant (const signed byte/signed word/signed dword) main::$1 = -2 Constant (const signed byte/signed word/signed dword) main::$2 = -3 Constant (const signed byte/signed word/signed dword) main::$3 = -4 -Constant (const byte*) main::SCREEN#0 = ((byte*))1024 +Constant (const byte*) main::SCREEN#0 = ((byte*))$400 Constant (const byte) main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Constant (const signed byte[]) main::sbs#0 = { main::$0, main::$1, main::$2, main::$3 } @@ -295,7 +295,7 @@ FINAL SYMBOL TABLE (label) main::@1 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::i (byte) main::i#1 reg byte x 16.5 (byte) main::i#2 reg byte x 16.5 diff --git a/src/test/ref/cast-deref.sym b/src/test/ref/cast-deref.sym index aa4fb4382..400676969 100644 --- a/src/test/ref/cast-deref.sym +++ b/src/test/ref/cast-deref.sym @@ -5,7 +5,7 @@ (label) main::@1 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::i (byte) main::i#1 reg byte x 16.5 (byte) main::i#2 reg byte x 16.5 diff --git a/src/test/ref/cast-precedence-problem.log b/src/test/ref/cast-precedence-problem.log index 92e9e6ba5..c7d9d1a57 100644 --- a/src/test/ref/cast-precedence-problem.log +++ b/src/test/ref/cast-precedence-problem.log @@ -3,9 +3,9 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte) main::min#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) main::max#0 ← (byte/word/signed word/dword/signed dword) 200 + (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte) main::min#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) main::max#0 ← (byte/word/signed word/dword/signed dword) $c8 (byte~) main::$0 ← (byte) main::min#0 + (byte) main::max#0 (word) main::sumw#0 ← ((word)) (byte~) main::$0 (word~) main::$1 ← (word) main::sumw#0 >> (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -19,7 +19,7 @@ main: scope:[main] from @1 (byte/signed word/word/dword/signed dword~) main::$6 ← (byte~) main::$5 + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) main::midb#0 ← (byte/signed word/word/dword/signed dword~) main::$6 *((byte*) main::SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) main::midb#0 - (byte*) main::BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 + (byte*) main::BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 (bool~) main::$7 ← *((byte*) main::SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) == *((byte*) main::SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) if((bool~) main::$7) goto main::@1 to:main::@3 @@ -86,10 +86,10 @@ Alias (byte*) main::BGCOL#0 = (byte*) main::BGCOL#1 (byte*) main::BGCOL#2 Successful SSA optimization Pass2AliasElimination Simple Condition (bool~) main::$7 [18] if(*((byte*) main::SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 0)==*((byte*) main::SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 1)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) main::SCREEN#0 = ((byte*))1024 -Constant (const byte) main::min#0 = 10 -Constant (const byte) main::max#0 = 200 -Constant (const byte*) main::BGCOL#0 = ((byte*))53281 +Constant (const byte*) main::SCREEN#0 = ((byte*))$400 +Constant (const byte) main::min#0 = $a +Constant (const byte) main::max#0 = $c8 +Constant (const byte*) main::BGCOL#0 = ((byte*))$d021 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::$0 = main::min#0+main::max#0 Constant (const byte) main::sumb#0 = main::min#0+main::max#0 @@ -332,17 +332,17 @@ FINAL SYMBOL TABLE (label) main::@3 (label) main::@return (byte*) main::BGCOL -(const byte*) main::BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) main::BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::max -(const byte) main::max#0 max = (byte/word/signed word/dword/signed dword) 200 +(const byte) main::max#0 max = (byte/word/signed word/dword/signed dword) $c8 (byte) main::midb (const byte) main::midb#0 midb = (const byte) main::sumb#0>>(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1 (byte) main::midw (const byte) main::midw#0 midw = ((byte))(const word) main::sumw#0>>(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1 (byte) main::min -(const byte) main::min#0 min = (byte/signed byte/word/signed word/dword/signed dword) 10 +(const byte) main::min#0 min = (byte/signed byte/word/signed word/dword/signed dword) $a (byte) main::sumb (const byte) main::sumb#0 sumb = (const byte) main::min#0+(const byte) main::max#0 (word) main::sumw diff --git a/src/test/ref/cast-precedence-problem.sym b/src/test/ref/cast-precedence-problem.sym index 155c51391..5dc665889 100644 --- a/src/test/ref/cast-precedence-problem.sym +++ b/src/test/ref/cast-precedence-problem.sym @@ -6,17 +6,17 @@ (label) main::@3 (label) main::@return (byte*) main::BGCOL -(const byte*) main::BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) main::BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::max -(const byte) main::max#0 max = (byte/word/signed word/dword/signed dword) 200 +(const byte) main::max#0 max = (byte/word/signed word/dword/signed dword) $c8 (byte) main::midb (const byte) main::midb#0 midb = (const byte) main::sumb#0>>(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1 (byte) main::midw (const byte) main::midw#0 midw = ((byte))(const word) main::sumw#0>>(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1 (byte) main::min -(const byte) main::min#0 min = (byte/signed byte/word/signed word/dword/signed dword) 10 +(const byte) main::min#0 min = (byte/signed byte/word/signed word/dword/signed dword) $a (byte) main::sumb (const byte) main::sumb#0 sumb = (const byte) main::min#0+(const byte) main::max#0 (word) main::sumw diff --git a/src/test/ref/casting.cfg b/src/test/ref/casting.cfg index bfae75bb0..b05792e64 100644 --- a/src/test/ref/casting.cfg +++ b/src/test/ref/casting.cfg @@ -12,12 +12,12 @@ main: scope:[main] from @2 to:main::@1 main::@1: scope:[main] from main main::@1 [5] (byte) main::b#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::b#1 ) - [6] (byte) main::b2#0 ← (byte/word/signed word/dword/signed dword) 200 - (byte) main::b#2 + [6] (byte) main::b2#0 ← (byte/word/signed word/dword/signed dword) $c8 - (byte) main::b#2 [7] *((const byte*) SCREEN#0 + (byte) main::b#2) ← (byte) main::b2#0 [8] (signed byte) main::sb#0 ← - (signed byte)(byte) main::b#2 [9] *((const byte*) SCREEN2#0 + (byte) main::b#2) ← (byte)(signed byte) main::sb#0 [10] (byte) main::b#1 ← ++ (byte) main::b#2 - [11] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 + [11] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 [12] phi() @@ -31,11 +31,11 @@ w: scope:[w] from main::@2 to:w::@1 w::@1: scope:[w] from w w::@1 [16] (byte) w::i#2 ← phi( w/(byte/signed byte/word/signed word/dword/signed dword) 0 w::@1/(byte) w::i#1 ) - [17] (byte) w::b2#0 ← (word/signed word/dword/signed dword) 1400-(word/signed word/dword/signed dword) 1350 + (byte) w::i#2 + [17] (byte) w::b2#0 ← (word/signed word/dword/signed dword) $578-(word/signed word/dword/signed dword) $546 + (byte) w::i#2 [18] *((const byte*) SCREEN3#0 + (byte) w::i#2) ← (const byte) w::b#0 [19] *((const byte*) SCREEN4#0 + (byte) w::i#2) ← (byte) w::b2#0 [20] (byte) w::i#1 ← ++ (byte) w::i#2 - [21] if((byte) w::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto w::@1 + [21] if((byte) w::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto w::@1 to:w::@return w::@return: scope:[w] from w::@1 [22] return diff --git a/src/test/ref/casting.log b/src/test/ref/casting.log index 145e5d581..ea38b0236 100644 --- a/src/test/ref/casting.log +++ b/src/test/ref/casting.log @@ -1,14 +1,14 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte/signed byte/word/signed word/dword/signed dword~) $0 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 3 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte/signed byte/word/signed word/dword/signed dword~) $0 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 3 (byte*~) $1 ← (byte*) SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword~) $0 (byte*) SCREEN2#0 ← (byte*~) $1 - (byte/word/signed word/dword/signed dword~) $2 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 6 + (byte/word/signed word/dword/signed dword~) $2 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 6 (byte*~) $3 ← (byte*) SCREEN#0 + (byte/word/signed word/dword/signed dword~) $2 (byte*) SCREEN3#0 ← (byte*~) $3 - (word/signed word/dword/signed dword~) $4 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 9 + (word/signed word/dword/signed dword~) $4 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 9 (byte*~) $5 ← (byte*) SCREEN#0 + (word/signed word/dword/signed dword~) $4 (byte*) SCREEN4#0 ← (byte*~) $5 to:@2 @@ -25,7 +25,7 @@ main::@1: scope:[main] from main main::@1 (byte*) SCREEN2#1 ← phi( main/(byte*) SCREEN2#2 main::@1/(byte*) SCREEN2#1 ) (byte*) SCREEN#1 ← phi( main/(byte*) SCREEN#2 main::@1/(byte*) SCREEN#1 ) (byte) main::b#2 ← phi( main/(byte) main::b#0 main::@1/(byte) main::b#1 ) - (byte/word/signed word/dword/signed dword~) main::$0 ← (byte/word/signed word/dword/signed dword) 200 - (byte) main::b#2 + (byte/word/signed word/dword/signed dword~) main::$0 ← (byte/word/signed word/dword/signed dword) $c8 - (byte) main::b#2 (byte) main::b2#0 ← (byte/word/signed word/dword/signed dword~) main::$0 *((byte*) SCREEN#1 + (byte) main::b#2) ← (byte) main::b2#0 (signed byte~) main::$1 ← ((signed byte)) (byte) main::b#2 @@ -33,8 +33,8 @@ main::@1: scope:[main] from main main::@1 (signed byte) main::sb#0 ← (signed byte~) main::$2 (byte~) main::$3 ← ((byte)) (signed byte) main::sb#0 *((byte*) SCREEN2#1 + (byte) main::b#2) ← (byte~) main::$3 - (byte) main::b#1 ← (byte) main::b#2 + rangenext(0,100) - (bool~) main::$4 ← (byte) main::b#1 != rangelast(0,100) + (byte) main::b#1 ← (byte) main::b#2 + rangenext(0,$64) + (bool~) main::$4 ← (byte) main::b#1 != rangelast(0,$64) if((bool~) main::$4) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -56,18 +56,18 @@ w::@1: scope:[w] from w w::@1 (byte*) SCREEN4#1 ← phi( w/(byte*) SCREEN4#2 w::@1/(byte*) SCREEN4#1 ) (byte*) SCREEN3#1 ← phi( w/(byte*) SCREEN3#2 w::@1/(byte*) SCREEN3#1 ) (byte) w::i#2 ← phi( w/(byte) w::i#0 w::@1/(byte) w::i#1 ) - (word) w::w1#0 ← (word/signed word/dword/signed dword) 1300 - (word) w::w2#0 ← (word/signed word/dword/signed dword) 1250 + (word) w::w1#0 ← (word/signed word/dword/signed dword) $514 + (word) w::w2#0 ← (word/signed word/dword/signed dword) $4e2 (word~) w::$0 ← (word) w::w1#0 - (word) w::w2#0 (byte~) w::$1 ← ((byte)) (word~) w::$0 (byte) w::b#0 ← (byte~) w::$1 - (byte/signed byte/word/signed word/dword/signed dword~) w::$2 ← (word/signed word/dword/signed dword) 1400 - (word/signed word/dword/signed dword) 1350 + (byte/signed byte/word/signed word/dword/signed dword~) w::$2 ← (word/signed word/dword/signed dword) $578 - (word/signed word/dword/signed dword) $546 (byte/signed word/word/dword/signed dword~) w::$3 ← (byte/signed byte/word/signed word/dword/signed dword~) w::$2 + (byte) w::i#2 (byte) w::b2#0 ← (byte/signed word/word/dword/signed dword~) w::$3 *((byte*) SCREEN3#1 + (byte) w::i#2) ← (byte) w::b#0 *((byte*) SCREEN4#1 + (byte) w::i#2) ← (byte) w::b2#0 - (byte) w::i#1 ← (byte) w::i#2 + rangenext(0,10) - (bool~) w::$4 ← (byte) w::i#1 != rangelast(0,10) + (byte) w::i#1 ← (byte) w::i#2 + rangenext(0,$a) + (bool~) w::$4 ← (byte) w::i#1 != rangelast(0,$a) if((bool~) w::$4) goto w::@1 to:w::@return w::@return: scope:[w] from w::@1 @@ -194,18 +194,18 @@ Redundant Phi (byte*) SCREEN4#2 (byte*) SCREEN4#3 Redundant Phi (byte*) SCREEN3#1 (byte*) SCREEN3#2 Redundant Phi (byte*) SCREEN4#1 (byte*) SCREEN4#2 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$4 [23] if((byte) main::b#1!=rangelast(0,100)) goto main::@1 -Simple Condition (bool~) w::$4 [42] if((byte) w::i#1!=rangelast(0,10)) goto w::@1 +Simple Condition (bool~) main::$4 [23] if((byte) main::b#1!=rangelast(0,$64)) goto main::@1 +Simple Condition (bool~) w::$4 [42] if((byte) w::i#1!=rangelast(0,$a)) goto w::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) SCREEN#0 = ((byte*))1024 -Constant (const byte/signed byte/word/signed word/dword/signed dword) $0 = 40*3 -Constant (const byte/word/signed word/dword/signed dword) $2 = 40*6 -Constant (const word/signed word/dword/signed dword) $4 = 40*9 +Constant (const byte*) SCREEN#0 = ((byte*))$400 +Constant (const byte/signed byte/word/signed word/dword/signed dword) $0 = $28*3 +Constant (const byte/word/signed word/dword/signed dword) $2 = $28*6 +Constant (const word/signed word/dword/signed dword) $4 = $28*9 Constant (const byte) main::b#0 = 0 Constant (const byte) w::i#0 = 0 -Constant (const word) w::w1#0 = 1300 -Constant (const word) w::w2#0 = 1250 -Constant (const byte/signed byte/word/signed word/dword/signed dword) w::$2 = 1400-1350 +Constant (const word) w::w1#0 = $514 +Constant (const word) w::w2#0 = $4e2 +Constant (const byte/signed byte/word/signed word/dword/signed dword) w::$2 = $578-$546 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) SCREEN2#0 = SCREEN#0+$0 Constant (const byte*) SCREEN3#0 = SCREEN#0+$2 @@ -218,18 +218,18 @@ Eliminating Noop Cast (signed byte~) main::$1 ← ((signed byte)) (byte) main::b Eliminating Noop Cast (byte~) main::$3 ← ((byte)) (signed byte) main::sb#0 Successful SSA optimization Pass2NopCastElimination Resolved ranged next value main::b#1 ← ++ main::b#2 to ++ -Resolved ranged comparison value if(main::b#1!=rangelast(0,100)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 101 +Resolved ranged comparison value if(main::b#1!=rangelast(0,$64)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $65 Resolved ranged next value w::i#1 ← ++ w::i#2 to ++ -Resolved ranged comparison value if(w::i#1!=rangelast(0,10)) goto w::@1 to (byte/signed byte/word/signed word/dword/signed dword) 11 +Resolved ranged comparison value if(w::i#1!=rangelast(0,$a)) goto w::@1 to (byte/signed byte/word/signed word/dword/signed dword) $b Inlining constant with var siblings (const byte) main::b#0 Inlining constant with var siblings (const byte) w::i#0 -Constant inlined $4 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 9 +Constant inlined $4 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 9 Constant inlined w::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::b#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined w::$0 = (const word) w::w1#0-(const word) w::w2#0 -Constant inlined $0 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 -Constant inlined w::$2 = (word/signed word/dword/signed dword) 1400-(word/signed word/dword/signed dword) 1350 -Constant inlined $2 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6 +Constant inlined $0 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 +Constant inlined w::$2 = (word/signed word/dword/signed dword) $578-(word/signed word/dword/signed dword) $546 +Constant inlined $2 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 6 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@4(between main::@1 and main::@1) Added new block during phi lifting w::@3(between w::@1 and w::@1) @@ -271,12 +271,12 @@ main: scope:[main] from @2 to:main::@1 main::@1: scope:[main] from main main::@1 [5] (byte) main::b#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::b#1 ) - [6] (byte) main::b2#0 ← (byte/word/signed word/dword/signed dword) 200 - (byte) main::b#2 + [6] (byte) main::b2#0 ← (byte/word/signed word/dword/signed dword) $c8 - (byte) main::b#2 [7] *((const byte*) SCREEN#0 + (byte) main::b#2) ← (byte) main::b2#0 [8] (signed byte) main::sb#0 ← - (signed byte)(byte) main::b#2 [9] *((const byte*) SCREEN2#0 + (byte) main::b#2) ← (byte)(signed byte) main::sb#0 [10] (byte) main::b#1 ← ++ (byte) main::b#2 - [11] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 + [11] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 [12] phi() @@ -290,11 +290,11 @@ w: scope:[w] from main::@2 to:w::@1 w::@1: scope:[w] from w w::@1 [16] (byte) w::i#2 ← phi( w/(byte/signed byte/word/signed word/dword/signed dword) 0 w::@1/(byte) w::i#1 ) - [17] (byte) w::b2#0 ← (word/signed word/dword/signed dword) 1400-(word/signed word/dword/signed dword) 1350 + (byte) w::i#2 + [17] (byte) w::b2#0 ← (word/signed word/dword/signed dword) $578-(word/signed word/dword/signed dword) $546 + (byte) w::i#2 [18] *((const byte*) SCREEN3#0 + (byte) w::i#2) ← (const byte) w::b#0 [19] *((const byte*) SCREEN4#0 + (byte) w::i#2) ← (byte) w::b2#0 [20] (byte) w::i#1 ← ++ (byte) w::i#2 - [21] if((byte) w::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto w::@1 + [21] if((byte) w::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto w::@1 to:w::@return w::@return: scope:[w] from w::@1 [22] return @@ -386,7 +386,7 @@ main: { jmp b1 //SEG15 main::@1 b1: - //SEG16 [6] (byte) main::b2#0 ← (byte/word/signed word/dword/signed dword) 200 - (byte) main::b#2 -- vbuz1=vbuc1_minus_vbuz2 + //SEG16 [6] (byte) main::b2#0 ← (byte/word/signed word/dword/signed dword) $c8 - (byte) main::b#2 -- vbuz1=vbuc1_minus_vbuz2 lda #$c8 sec sbc b @@ -407,7 +407,7 @@ main: { sta SCREEN2,y //SEG20 [10] (byte) main::b#1 ← ++ (byte) main::b#2 -- vbuz1=_inc_vbuz1 inc b - //SEG21 [11] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG21 [11] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda b cmp #$65 bne b1_from_b1 @@ -445,7 +445,7 @@ w: { jmp b1 //SEG33 w::@1 b1: - //SEG34 [17] (byte) w::b2#0 ← (word/signed word/dword/signed dword) 1400-(word/signed word/dword/signed dword) 1350 + (byte) w::i#2 -- vbuz1=vbuc1_plus_vbuz2 + //SEG34 [17] (byte) w::b2#0 ← (word/signed word/dword/signed dword) $578-(word/signed word/dword/signed dword) $546 + (byte) w::i#2 -- vbuz1=vbuc1_plus_vbuz2 lda #$578-$546 clc adc i @@ -460,7 +460,7 @@ w: { sta SCREEN4,y //SEG37 [20] (byte) w::i#1 ← ++ (byte) w::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG38 [21] if((byte) w::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto w::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG38 [21] if((byte) w::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto w::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$b bne b1_from_b1 @@ -472,17 +472,17 @@ w: { } REGISTER UPLIFT POTENTIAL REGISTERS -Statement [6] (byte) main::b2#0 ← (byte/word/signed word/dword/signed dword) 200 - (byte) main::b#2 [ main::b#2 main::b2#0 ] ( main:2 [ main::b#2 main::b2#0 ] ) always clobbers reg byte a +Statement [6] (byte) main::b2#0 ← (byte/word/signed word/dword/signed dword) $c8 - (byte) main::b#2 [ main::b#2 main::b2#0 ] ( main:2 [ main::b#2 main::b2#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::b#2 main::b#1 ] Statement [8] (signed byte) main::sb#0 ← - (signed byte)(byte) main::b#2 [ main::b#2 main::sb#0 ] ( main:2 [ main::b#2 main::sb#0 ] ) always clobbers reg byte a -Statement [17] (byte) w::b2#0 ← (word/signed word/dword/signed dword) 1400-(word/signed word/dword/signed dword) 1350 + (byte) w::i#2 [ w::i#2 w::b2#0 ] ( main:2::w:13 [ w::i#2 w::b2#0 ] ) always clobbers reg byte a +Statement [17] (byte) w::b2#0 ← (word/signed word/dword/signed dword) $578-(word/signed word/dword/signed dword) $546 + (byte) w::i#2 [ w::i#2 w::b2#0 ] ( main:2::w:13 [ w::i#2 w::b2#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ w::i#2 w::i#1 ] Statement [18] *((const byte*) SCREEN3#0 + (byte) w::i#2) ← (const byte) w::b#0 [ w::i#2 w::b2#0 ] ( main:2::w:13 [ w::i#2 w::b2#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:6 [ w::b2#0 ] Statement [19] *((const byte*) SCREEN4#0 + (byte) w::i#2) ← (byte) w::b2#0 [ w::i#2 ] ( main:2::w:13 [ w::i#2 ] ) always clobbers reg byte a -Statement [6] (byte) main::b2#0 ← (byte/word/signed word/dword/signed dword) 200 - (byte) main::b#2 [ main::b#2 main::b2#0 ] ( main:2 [ main::b#2 main::b2#0 ] ) always clobbers reg byte a +Statement [6] (byte) main::b2#0 ← (byte/word/signed word/dword/signed dword) $c8 - (byte) main::b#2 [ main::b#2 main::b2#0 ] ( main:2 [ main::b#2 main::b2#0 ] ) always clobbers reg byte a Statement [8] (signed byte) main::sb#0 ← - (signed byte)(byte) main::b#2 [ main::b#2 main::sb#0 ] ( main:2 [ main::b#2 main::sb#0 ] ) always clobbers reg byte a -Statement [17] (byte) w::b2#0 ← (word/signed word/dword/signed dword) 1400-(word/signed word/dword/signed dword) 1350 + (byte) w::i#2 [ w::i#2 w::b2#0 ] ( main:2::w:13 [ w::i#2 w::b2#0 ] ) always clobbers reg byte a +Statement [17] (byte) w::b2#0 ← (word/signed word/dword/signed dword) $578-(word/signed word/dword/signed dword) $546 + (byte) w::i#2 [ w::i#2 w::b2#0 ] ( main:2::w:13 [ w::i#2 w::b2#0 ] ) always clobbers reg byte a Statement [18] *((const byte*) SCREEN3#0 + (byte) w::i#2) ← (const byte) w::b#0 [ w::i#2 w::b2#0 ] ( main:2::w:13 [ w::i#2 w::b2#0 ] ) always clobbers reg byte a Statement [19] *((const byte*) SCREEN4#0 + (byte) w::i#2) ← (byte) w::b2#0 [ w::i#2 ] ( main:2::w:13 [ w::i#2 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ main::b#2 main::b#1 ] : zp ZP_BYTE:2 , reg byte x , reg byte y , @@ -540,7 +540,7 @@ main: { jmp b1 //SEG15 main::@1 b1: - //SEG16 [6] (byte) main::b2#0 ← (byte/word/signed word/dword/signed dword) 200 - (byte) main::b#2 -- vbuaa=vbuc1_minus_vbuxx + //SEG16 [6] (byte) main::b2#0 ← (byte/word/signed word/dword/signed dword) $c8 - (byte) main::b#2 -- vbuaa=vbuc1_minus_vbuxx txa eor #$ff clc @@ -556,7 +556,7 @@ main: { sta SCREEN2,x //SEG20 [10] (byte) main::b#1 ← ++ (byte) main::b#2 -- vbuxx=_inc_vbuxx inx - //SEG21 [11] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG21 [11] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$65 bne b1_from_b1 //SEG22 [12] phi from main::@1 to main::@2 [phi:main::@1->main::@2] @@ -590,7 +590,7 @@ w: { jmp b1 //SEG33 w::@1 b1: - //SEG34 [17] (byte) w::b2#0 ← (word/signed word/dword/signed dword) 1400-(word/signed word/dword/signed dword) 1350 + (byte) w::i#2 -- vbuxx=vbuc1_plus_vbuyy + //SEG34 [17] (byte) w::b2#0 ← (word/signed word/dword/signed dword) $578-(word/signed word/dword/signed dword) $546 + (byte) w::i#2 -- vbuxx=vbuc1_plus_vbuyy tya clc adc #$578-$546 @@ -603,7 +603,7 @@ w: { sta SCREEN4,y //SEG37 [20] (byte) w::i#1 ← ++ (byte) w::i#2 -- vbuyy=_inc_vbuyy iny - //SEG38 [21] if((byte) w::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto w::@1 -- vbuyy_neq_vbuc1_then_la1 + //SEG38 [21] if((byte) w::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto w::@1 -- vbuyy_neq_vbuc1_then_la1 cpy #$b bne b1_from_b1 jmp breturn @@ -654,13 +654,13 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SCREEN2 -(const byte*) SCREEN2#0 SCREEN2 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 +(const byte*) SCREEN2#0 SCREEN2 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 (byte*) SCREEN3 -(const byte*) SCREEN3#0 SCREEN3 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6 +(const byte*) SCREEN3#0 SCREEN3 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 6 (byte*) SCREEN4 -(const byte*) SCREEN4#0 SCREEN4 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 9 +(const byte*) SCREEN4#0 SCREEN4 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 9 (void()) main() (label) main::@1 (label) main::@2 @@ -683,9 +683,9 @@ FINAL SYMBOL TABLE (byte) w::i#1 reg byte y 16.5 (byte) w::i#2 reg byte y 13.75 (word) w::w1 -(const word) w::w1#0 w1 = (word/signed word/dword/signed dword) 1300 +(const word) w::w1#0 w1 = (word/signed word/dword/signed dword) $514 (word) w::w2 -(const word) w::w2#0 w2 = (word/signed word/dword/signed dword) 1250 +(const word) w::w2#0 w2 = (word/signed word/dword/signed dword) $4e2 reg byte x [ main::b#2 main::b#1 ] reg byte y [ w::i#2 w::i#1 ] @@ -723,7 +723,7 @@ main: { //SEG14 [5] phi (byte) main::b#2 = (byte) main::b#1 [phi:main::@1->main::@1#0] -- register_copy //SEG15 main::@1 b1: - //SEG16 [6] (byte) main::b2#0 ← (byte/word/signed word/dword/signed dword) 200 - (byte) main::b#2 -- vbuaa=vbuc1_minus_vbuxx + //SEG16 [6] (byte) main::b2#0 ← (byte/word/signed word/dword/signed dword) $c8 - (byte) main::b#2 -- vbuaa=vbuc1_minus_vbuxx txa eor #$ff clc @@ -739,7 +739,7 @@ main: { sta SCREEN2,x //SEG20 [10] (byte) main::b#1 ← ++ (byte) main::b#2 -- vbuxx=_inc_vbuxx inx - //SEG21 [11] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG21 [11] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$65 bne b1 //SEG22 [12] phi from main::@1 to main::@2 [phi:main::@1->main::@2] @@ -763,7 +763,7 @@ w: { //SEG32 [16] phi (byte) w::i#2 = (byte) w::i#1 [phi:w::@1->w::@1#0] -- register_copy //SEG33 w::@1 b1: - //SEG34 [17] (byte) w::b2#0 ← (word/signed word/dword/signed dword) 1400-(word/signed word/dword/signed dword) 1350 + (byte) w::i#2 -- vbuxx=vbuc1_plus_vbuyy + //SEG34 [17] (byte) w::b2#0 ← (word/signed word/dword/signed dword) $578-(word/signed word/dword/signed dword) $546 + (byte) w::i#2 -- vbuxx=vbuc1_plus_vbuyy tya clc adc #$578-$546 @@ -776,7 +776,7 @@ w: { sta SCREEN4,y //SEG37 [20] (byte) w::i#1 ← ++ (byte) w::i#2 -- vbuyy=_inc_vbuyy iny - //SEG38 [21] if((byte) w::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto w::@1 -- vbuyy_neq_vbuc1_then_la1 + //SEG38 [21] if((byte) w::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto w::@1 -- vbuyy_neq_vbuc1_then_la1 cpy #$b bne b1 //SEG39 w::@return diff --git a/src/test/ref/casting.sym b/src/test/ref/casting.sym index dd4a025b9..583940321 100644 --- a/src/test/ref/casting.sym +++ b/src/test/ref/casting.sym @@ -2,13 +2,13 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SCREEN2 -(const byte*) SCREEN2#0 SCREEN2 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 +(const byte*) SCREEN2#0 SCREEN2 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 (byte*) SCREEN3 -(const byte*) SCREEN3#0 SCREEN3 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6 +(const byte*) SCREEN3#0 SCREEN3 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 6 (byte*) SCREEN4 -(const byte*) SCREEN4#0 SCREEN4 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 9 +(const byte*) SCREEN4#0 SCREEN4 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 9 (void()) main() (label) main::@1 (label) main::@2 @@ -31,9 +31,9 @@ (byte) w::i#1 reg byte y 16.5 (byte) w::i#2 reg byte y 13.75 (word) w::w1 -(const word) w::w1#0 w1 = (word/signed word/dword/signed dword) 1300 +(const word) w::w1#0 w1 = (word/signed word/dword/signed dword) $514 (word) w::w2 -(const word) w::w2#0 w2 = (word/signed word/dword/signed dword) 1250 +(const word) w::w2#0 w2 = (word/signed word/dword/signed dword) $4e2 reg byte x [ main::b#2 main::b#1 ] reg byte y [ w::i#2 w::i#1 ] diff --git a/src/test/ref/chargen.cfg b/src/test/ref/chargen.cfg index 1163f8166..5b30b7233 100644 --- a/src/test/ref/chargen.cfg +++ b/src/test/ref/chargen.cfg @@ -9,7 +9,7 @@ [3] phi() main: scope:[main] from @1 asm { sei } - [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 + [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 to:main::@1 main::@1: scope:[main] from main main::@5 [6] (byte*) main::sc#7 ← phi( main/(const byte*) SCREEN#0 main::@5/(byte*) main::sc#2 ) @@ -20,7 +20,7 @@ main::@2: scope:[main] from main::@1 main::@3 [8] (byte) main::x#2 ← phi( main::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@3/(byte) main::x#1 ) [8] (byte*) main::sc#3 ← phi( main::@1/(byte*) main::sc#7 main::@3/(byte*) main::sc#1 ) [8] (byte) main::bits#2 ← phi( main::@1/(byte) main::bits#0 main::@3/(byte) main::bits#1 ) - [9] (byte~) main::$1 ← (byte) main::bits#2 & (byte/word/signed word/dword/signed dword) 128 + [9] (byte~) main::$1 ← (byte) main::bits#2 & (byte/word/signed word/dword/signed dword) $80 [10] if((byte~) main::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@3 to:main::@4 main::@4: scope:[main] from main::@2 @@ -35,12 +35,12 @@ main::@3: scope:[main] from main::@2 main::@4 [17] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@2 to:main::@5 main::@5: scope:[main] from main::@3 - [18] (byte*) main::sc#2 ← (byte*) main::sc#1 + (byte/signed byte/word/signed word/dword/signed dword) 32 + [18] (byte*) main::sc#2 ← (byte*) main::sc#1 + (byte/signed byte/word/signed word/dword/signed dword) $20 [19] (byte) main::y#1 ← ++ (byte) main::y#2 [20] if((byte) main::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@1 to:main::@6 main::@6: scope:[main] from main::@5 - [21] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 + [21] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 asm { cli } to:main::@return main::@return: scope:[main] from main::@6 diff --git a/src/test/ref/chargen.log b/src/test/ref/chargen.log index 7b27a14b9..85e49ddf5 100644 --- a/src/test/ref/chargen.log +++ b/src/test/ref/chargen.log @@ -2,8 +2,8 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@1 main: scope:[main] from @1 (byte*) SCREEN#1 ← phi( @1/(byte*) SCREEN#2 ) @@ -12,7 +12,7 @@ main: scope:[main] from @1 asm { sei } (byte*~) main::$0 ← (byte*) CHARGEN#1 + (byte/signed byte/word/signed word/dword/signed dword) 8 (byte*) main::CHAR_A#0 ← (byte*~) main::$0 - *((byte*) PROCPORT#1) ← (byte/signed byte/word/signed word/dword/signed dword) 50 + *((byte*) PROCPORT#1) ← (byte/signed byte/word/signed word/dword/signed dword) $32 (byte*) main::sc#0 ← (byte*) SCREEN#1 (byte) main::y#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 @@ -32,7 +32,7 @@ main::@2: scope:[main] from main::@1 main::@3 (byte*) main::sc#5 ← phi( main::@1/(byte*) main::sc#7 main::@3/(byte*) main::sc#1 ) (byte) main::bits#2 ← phi( main::@1/(byte) main::bits#0 main::@3/(byte) main::bits#1 ) (byte) main::c#0 ← (byte) '.' - (byte~) main::$1 ← (byte) main::bits#2 & (byte/word/signed word/dword/signed dword) 128 + (byte~) main::$1 ← (byte) main::bits#2 & (byte/word/signed word/dword/signed dword) $80 (bool~) main::$2 ← (byte~) main::$1 != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) main::$3 ← ! (bool~) main::$2 if((bool~) main::$3) goto main::@3 @@ -67,7 +67,7 @@ main::@5: scope:[main] from main::@3 (byte*) main::CHAR_A#2 ← phi( main::@3/(byte*) main::CHAR_A#3 ) (byte) main::y#3 ← phi( main::@3/(byte) main::y#4 ) (byte*) main::sc#4 ← phi( main::@3/(byte*) main::sc#1 ) - (byte*~) main::$6 ← (byte*) main::sc#4 + (byte/signed byte/word/signed word/dword/signed dword) 32 + (byte*~) main::$6 ← (byte*) main::sc#4 + (byte/signed byte/word/signed word/dword/signed dword) $20 (byte*) main::sc#2 ← (byte*~) main::$6 (byte) main::y#1 ← (byte) main::y#3 + rangenext(0,7) (bool~) main::$7 ← (byte) main::y#1 != rangelast(0,7) @@ -75,7 +75,7 @@ main::@5: scope:[main] from main::@3 to:main::@6 main::@6: scope:[main] from main::@5 (byte*) PROCPORT#2 ← phi( main::@5/(byte*) PROCPORT#4 ) - *((byte*) PROCPORT#2) ← (byte/signed byte/word/signed word/dword/signed dword) 55 + *((byte*) PROCPORT#2) ← (byte/signed byte/word/signed word/dword/signed dword) $37 asm { cli } to:main::@return main::@return: scope:[main] from main::@6 @@ -215,8 +215,8 @@ Simple Condition (bool~) main::$5 [26] if((byte) main::x#1!=rangelast(0,7)) goto Simple Condition (bool~) main::$7 [34] if((byte) main::y#1!=rangelast(0,7)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Constant (const byte) main::y#0 = 0 Constant (const byte) main::x#0 = 0 Constant (const byte) main::c#0 = '.' @@ -283,7 +283,7 @@ FINAL CONTROL FLOW GRAPH [3] phi() main: scope:[main] from @1 asm { sei } - [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 + [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 to:main::@1 main::@1: scope:[main] from main main::@5 [6] (byte*) main::sc#7 ← phi( main/(const byte*) SCREEN#0 main::@5/(byte*) main::sc#2 ) @@ -294,7 +294,7 @@ main::@2: scope:[main] from main::@1 main::@3 [8] (byte) main::x#2 ← phi( main::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@3/(byte) main::x#1 ) [8] (byte*) main::sc#3 ← phi( main::@1/(byte*) main::sc#7 main::@3/(byte*) main::sc#1 ) [8] (byte) main::bits#2 ← phi( main::@1/(byte) main::bits#0 main::@3/(byte) main::bits#1 ) - [9] (byte~) main::$1 ← (byte) main::bits#2 & (byte/word/signed word/dword/signed dword) 128 + [9] (byte~) main::$1 ← (byte) main::bits#2 & (byte/word/signed word/dword/signed dword) $80 [10] if((byte~) main::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@3 to:main::@4 main::@4: scope:[main] from main::@2 @@ -309,12 +309,12 @@ main::@3: scope:[main] from main::@2 main::@4 [17] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@2 to:main::@5 main::@5: scope:[main] from main::@3 - [18] (byte*) main::sc#2 ← (byte*) main::sc#1 + (byte/signed byte/word/signed word/dword/signed dword) 32 + [18] (byte*) main::sc#2 ← (byte*) main::sc#1 + (byte/signed byte/word/signed word/dword/signed dword) $20 [19] (byte) main::y#1 ← ++ (byte) main::y#2 [20] if((byte) main::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@1 to:main::@6 main::@6: scope:[main] from main::@5 - [21] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 + [21] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 asm { cli } to:main::@return main::@return: scope:[main] from main::@6 @@ -403,7 +403,7 @@ main: { .label c = 7 //SEG10 asm { sei } sei - //SEG11 [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- _deref_pbuc1=vbuc2 + //SEG11 [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 -- _deref_pbuc1=vbuc2 lda #$32 sta PROCPORT //SEG12 [6] phi from main to main::@1 [phi:main->main::@1] @@ -444,7 +444,7 @@ main: { jmp b2 //SEG28 main::@2 b2: - //SEG29 [9] (byte~) main::$1 ← (byte) main::bits#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG29 [9] (byte~) main::$1 ← (byte) main::bits#2 & (byte/word/signed word/dword/signed dword) $80 -- vbuz1=vbuz2_band_vbuc1 lda #$80 and bits sta _1 @@ -491,7 +491,7 @@ main: { jmp b5 //SEG43 main::@5 b5: - //SEG44 [18] (byte*) main::sc#2 ← (byte*) main::sc#1 + (byte/signed byte/word/signed word/dword/signed dword) 32 -- pbuz1=pbuz1_plus_vbuc1 + //SEG44 [18] (byte*) main::sc#2 ← (byte*) main::sc#1 + (byte/signed byte/word/signed word/dword/signed dword) $20 -- pbuz1=pbuz1_plus_vbuc1 lda sc clc adc #$20 @@ -508,7 +508,7 @@ main: { jmp b6 //SEG47 main::@6 b6: - //SEG48 [21] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 -- _deref_pbuc1=vbuc2 + //SEG48 [21] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 -- _deref_pbuc1=vbuc2 lda #$37 sta PROCPORT //SEG49 asm { cli } @@ -521,8 +521,8 @@ main: { } REGISTER UPLIFT POTENTIAL REGISTERS -Statement [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [9] (byte~) main::$1 ← (byte) main::bits#2 & (byte/word/signed word/dword/signed dword) 128 [ main::y#2 main::bits#2 main::sc#3 main::x#2 main::$1 ] ( main:2 [ main::y#2 main::bits#2 main::sc#3 main::x#2 main::$1 ] ) always clobbers reg byte a +Statement [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [9] (byte~) main::$1 ← (byte) main::bits#2 & (byte/word/signed word/dword/signed dword) $80 [ main::y#2 main::bits#2 main::sc#3 main::x#2 main::$1 ] ( main:2 [ main::y#2 main::bits#2 main::sc#3 main::x#2 main::$1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::y#2 main::y#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ main::bits#2 main::bits#0 main::bits#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:6 [ main::x#2 main::x#1 ] @@ -530,14 +530,14 @@ Statement [13] *((byte*) main::sc#3) ← (byte) main::c#2 [ main::y#2 main::bits Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ main::y#2 main::y#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:3 [ main::bits#2 main::bits#0 main::bits#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:6 [ main::x#2 main::x#1 ] -Statement [18] (byte*) main::sc#2 ← (byte*) main::sc#1 + (byte/signed byte/word/signed word/dword/signed dword) 32 [ main::y#2 main::sc#2 ] ( main:2 [ main::y#2 main::sc#2 ] ) always clobbers reg byte a -Statement [21] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [18] (byte*) main::sc#2 ← (byte*) main::sc#1 + (byte/signed byte/word/signed word/dword/signed dword) $20 [ main::y#2 main::sc#2 ] ( main:2 [ main::y#2 main::sc#2 ] ) always clobbers reg byte a +Statement [21] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [7] (byte) main::bits#0 ← *((const byte*) main::CHAR_A#0 + (byte) main::y#2) [ main::y#2 main::sc#7 main::bits#0 ] ( main:2 [ main::y#2 main::sc#7 main::bits#0 ] ) always clobbers reg byte a -Statement [9] (byte~) main::$1 ← (byte) main::bits#2 & (byte/word/signed word/dword/signed dword) 128 [ main::y#2 main::bits#2 main::sc#3 main::x#2 main::$1 ] ( main:2 [ main::y#2 main::bits#2 main::sc#3 main::x#2 main::$1 ] ) always clobbers reg byte a +Statement [9] (byte~) main::$1 ← (byte) main::bits#2 & (byte/word/signed word/dword/signed dword) $80 [ main::y#2 main::bits#2 main::sc#3 main::x#2 main::$1 ] ( main:2 [ main::y#2 main::bits#2 main::sc#3 main::x#2 main::$1 ] ) always clobbers reg byte a Statement [13] *((byte*) main::sc#3) ← (byte) main::c#2 [ main::y#2 main::bits#2 main::sc#3 main::x#2 ] ( main:2 [ main::y#2 main::bits#2 main::sc#3 main::x#2 ] ) always clobbers reg byte y -Statement [18] (byte*) main::sc#2 ← (byte*) main::sc#1 + (byte/signed byte/word/signed word/dword/signed dword) 32 [ main::y#2 main::sc#2 ] ( main:2 [ main::y#2 main::sc#2 ] ) always clobbers reg byte a -Statement [21] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [18] (byte*) main::sc#2 ← (byte*) main::sc#1 + (byte/signed byte/word/signed word/dword/signed dword) $20 [ main::y#2 main::sc#2 ] ( main:2 [ main::y#2 main::sc#2 ] ) always clobbers reg byte a +Statement [21] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 [ ] ( main:2 [ ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ main::y#2 main::y#1 ] : zp ZP_BYTE:2 , reg byte x , Potential registers zp ZP_BYTE:3 [ main::bits#2 main::bits#0 main::bits#1 ] : zp ZP_BYTE:3 , reg byte x , Potential registers zp ZP_WORD:4 [ main::sc#3 main::sc#7 main::sc#2 main::sc#1 ] : zp ZP_WORD:4 , @@ -589,7 +589,7 @@ main: { .label y = 2 //SEG10 asm { sei } sei - //SEG11 [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- _deref_pbuc1=vbuc2 + //SEG11 [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 -- _deref_pbuc1=vbuc2 lda #$32 sta PROCPORT //SEG12 [6] phi from main to main::@1 [phi:main->main::@1] @@ -629,7 +629,7 @@ main: { jmp b2 //SEG28 main::@2 b2: - //SEG29 [9] (byte~) main::$1 ← (byte) main::bits#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG29 [9] (byte~) main::$1 ← (byte) main::bits#2 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuz1_band_vbuc1 lda #$80 and bits //SEG30 [10] if((byte~) main::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@3 -- vbuaa_eq_0_then_la1 @@ -670,7 +670,7 @@ main: { jmp b5 //SEG43 main::@5 b5: - //SEG44 [18] (byte*) main::sc#2 ← (byte*) main::sc#1 + (byte/signed byte/word/signed word/dword/signed dword) 32 -- pbuz1=pbuz1_plus_vbuc1 + //SEG44 [18] (byte*) main::sc#2 ← (byte*) main::sc#1 + (byte/signed byte/word/signed word/dword/signed dword) $20 -- pbuz1=pbuz1_plus_vbuc1 lda sc clc adc #$20 @@ -687,7 +687,7 @@ main: { jmp b6 //SEG47 main::@6 b6: - //SEG48 [21] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 -- _deref_pbuc1=vbuc2 + //SEG48 [21] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 -- _deref_pbuc1=vbuc2 lda #$37 sta PROCPORT //SEG49 asm { cli } @@ -744,11 +744,11 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) CHARGEN -(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word/dword/signed dword) 53248 +(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word/dword/signed dword) $d000 (byte*) PROCPORT (const byte*) PROCPORT#0 PROCPORT = ((byte*))(byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (byte~) main::$1 reg byte a 202.0 (label) main::@1 @@ -812,7 +812,7 @@ main: { .label y = 2 //SEG10 asm { sei } sei - //SEG11 [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- _deref_pbuc1=vbuc2 + //SEG11 [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 -- _deref_pbuc1=vbuc2 lda #$32 sta PROCPORT //SEG12 [6] phi from main to main::@1 [phi:main->main::@1] @@ -844,7 +844,7 @@ main: { //SEG27 [8] phi (byte) main::bits#2 = (byte) main::bits#1 [phi:main::@3->main::@2#2] -- register_copy //SEG28 main::@2 b2: - //SEG29 [9] (byte~) main::$1 ← (byte) main::bits#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG29 [9] (byte~) main::$1 ← (byte) main::bits#2 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuz1_band_vbuc1 lda #$80 and bits //SEG30 [10] if((byte~) main::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@3 -- vbuaa_eq_0_then_la1 @@ -878,7 +878,7 @@ main: { cpx #8 bne b2 //SEG43 main::@5 - //SEG44 [18] (byte*) main::sc#2 ← (byte*) main::sc#1 + (byte/signed byte/word/signed word/dword/signed dword) 32 -- pbuz1=pbuz1_plus_vbuc1 + //SEG44 [18] (byte*) main::sc#2 ← (byte*) main::sc#1 + (byte/signed byte/word/signed word/dword/signed dword) $20 -- pbuz1=pbuz1_plus_vbuc1 lda sc clc adc #$20 @@ -893,7 +893,7 @@ main: { cmp #8 bne b1 //SEG47 main::@6 - //SEG48 [21] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 -- _deref_pbuc1=vbuc2 + //SEG48 [21] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 -- _deref_pbuc1=vbuc2 lda #$37 sta PROCPORT //SEG49 asm { cli } diff --git a/src/test/ref/chargen.sym b/src/test/ref/chargen.sym index e13397852..d929449a1 100644 --- a/src/test/ref/chargen.sym +++ b/src/test/ref/chargen.sym @@ -2,11 +2,11 @@ (label) @begin (label) @end (byte*) CHARGEN -(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word/dword/signed dword) 53248 +(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word/dword/signed dword) $d000 (byte*) PROCPORT (const byte*) PROCPORT#0 PROCPORT = ((byte*))(byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (byte~) main::$1 reg byte a 202.0 (label) main::@1 diff --git a/src/test/ref/chessboard.cfg b/src/test/ref/chessboard.cfg index 2e063ee1d..53a8e2f7b 100644 --- a/src/test/ref/chessboard.cfg +++ b/src/test/ref/chessboard.cfg @@ -12,14 +12,14 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@3 [5] (byte) main::row#4 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@3/(byte) main::row#1 ) - [5] (byte*) main::colors#4 ← phi( main/((byte*))(word/dword/signed dword) 55296 main::@3/(byte*) main::colors#1 ) + [5] (byte*) main::colors#4 ← phi( main/((byte*))(word/dword/signed dword) $d800 main::@3/(byte*) main::colors#1 ) [5] (byte) main::color#5 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 1 main::@3/(byte) main::color#2 ) - [5] (byte*) main::screen#4 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@3/(byte*) main::screen#1 ) + [5] (byte*) main::screen#4 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@3/(byte*) main::screen#1 ) to:main::@2 main::@2: scope:[main] from main::@1 main::@2 [6] (byte) main::color#3 ← phi( main::@1/(byte) main::color#5 main::@2/(byte) main::color#1 ) [6] (byte) main::column#2 ← phi( main::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@2/(byte) main::column#1 ) - [7] *((byte*) main::screen#4 + (byte) main::column#2) ← (byte/word/signed word/dword/signed dword) 160 + [7] *((byte*) main::screen#4 + (byte) main::column#2) ← (byte/word/signed word/dword/signed dword) $a0 [8] *((byte*) main::colors#4 + (byte) main::column#2) ← (byte) main::color#3 [9] (byte) main::color#1 ← (byte) main::color#3 ^ (byte/signed byte/word/signed word/dword/signed dword) 1 [10] (byte) main::column#1 ← ++ (byte) main::column#2 @@ -27,8 +27,8 @@ main::@2: scope:[main] from main::@1 main::@2 to:main::@3 main::@3: scope:[main] from main::@2 [12] (byte) main::color#2 ← (byte) main::color#1 ^ (byte/signed byte/word/signed word/dword/signed dword) 1 - [13] (byte*) main::screen#1 ← (byte*) main::screen#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [14] (byte*) main::colors#1 ← (byte*) main::colors#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [13] (byte*) main::screen#1 ← (byte*) main::screen#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 + [14] (byte*) main::colors#1 ← (byte*) main::colors#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 [15] (byte) main::row#1 ← ++ (byte) main::row#4 [16] if((byte) main::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@1 to:main::@return diff --git a/src/test/ref/chessboard.log b/src/test/ref/chessboard.log index a4d36be23..7a7735c3c 100644 --- a/src/test/ref/chessboard.log +++ b/src/test/ref/chessboard.log @@ -3,8 +3,8 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte*) main::colors#0 ← ((byte*)) (word/dword/signed dword) 55296 + (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte*) main::colors#0 ← ((byte*)) (word/dword/signed dword) $d800 (byte) main::color#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) main::row#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 @@ -21,7 +21,7 @@ main::@2: scope:[main] from main::@1 main::@2 (byte) main::color#3 ← phi( main::@1/(byte) main::color#5 main::@2/(byte) main::color#1 ) (byte) main::column#2 ← phi( main::@1/(byte) main::column#0 main::@2/(byte) main::column#1 ) (byte*) main::screen#2 ← phi( main::@1/(byte*) main::screen#4 main::@2/(byte*) main::screen#2 ) - *((byte*) main::screen#2 + (byte) main::column#2) ← (byte/word/signed word/dword/signed dword) 160 + *((byte*) main::screen#2 + (byte) main::column#2) ← (byte/word/signed word/dword/signed dword) $a0 *((byte*) main::colors#2 + (byte) main::column#2) ← (byte) main::color#3 (byte/word/dword~) main::$0 ← (byte) main::color#3 ^ (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) main::color#1 ← (byte/word/dword~) main::$0 @@ -36,9 +36,9 @@ main::@3: scope:[main] from main::@2 (byte) main::color#4 ← phi( main::@2/(byte) main::color#1 ) (byte/word/dword~) main::$2 ← (byte) main::color#4 ^ (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) main::color#2 ← (byte/word/dword~) main::$2 - (byte*~) main::$3 ← (byte*) main::screen#3 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) main::$3 ← (byte*) main::screen#3 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) main::screen#1 ← (byte*~) main::$3 - (byte*~) main::$4 ← (byte*) main::colors#3 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) main::$4 ← (byte*) main::colors#3 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) main::colors#1 ← (byte*~) main::$4 (byte) main::row#1 ← (byte) main::row#2 + rangenext(0,7) (bool~) main::$5 ← (byte) main::row#1 != rangelast(0,7) @@ -121,8 +121,8 @@ Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) main::$1 [13] if((byte) main::column#1!=rangelast(0,7)) goto main::@2 Simple Condition (bool~) main::$5 [23] if((byte) main::row#1!=rangelast(0,7)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) main::screen#0 = ((byte*))1024 -Constant (const byte*) main::colors#0 = ((byte*))55296 +Constant (const byte*) main::screen#0 = ((byte*))$400 +Constant (const byte*) main::colors#0 = ((byte*))$d800 Constant (const byte) main::color#0 = 1 Constant (const byte) main::row#0 = 0 Constant (const byte) main::column#0 = 0 @@ -136,8 +136,8 @@ Inlining constant with var siblings (const byte*) main::colors#0 Inlining constant with var siblings (const byte) main::color#0 Inlining constant with var siblings (const byte) main::row#0 Inlining constant with var siblings (const byte) main::column#0 -Constant inlined main::screen#0 = ((byte*))(word/signed word/dword/signed dword) 1024 -Constant inlined main::colors#0 = ((byte*))(word/dword/signed dword) 55296 +Constant inlined main::screen#0 = ((byte*))(word/signed word/dword/signed dword) $400 +Constant inlined main::colors#0 = ((byte*))(word/dword/signed dword) $d800 Constant inlined main::color#0 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined main::row#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::column#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -182,14 +182,14 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@3 [5] (byte) main::row#4 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@3/(byte) main::row#1 ) - [5] (byte*) main::colors#4 ← phi( main/((byte*))(word/dword/signed dword) 55296 main::@3/(byte*) main::colors#1 ) + [5] (byte*) main::colors#4 ← phi( main/((byte*))(word/dword/signed dword) $d800 main::@3/(byte*) main::colors#1 ) [5] (byte) main::color#5 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 1 main::@3/(byte) main::color#2 ) - [5] (byte*) main::screen#4 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@3/(byte*) main::screen#1 ) + [5] (byte*) main::screen#4 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@3/(byte*) main::screen#1 ) to:main::@2 main::@2: scope:[main] from main::@1 main::@2 [6] (byte) main::color#3 ← phi( main::@1/(byte) main::color#5 main::@2/(byte) main::color#1 ) [6] (byte) main::column#2 ← phi( main::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@2/(byte) main::column#1 ) - [7] *((byte*) main::screen#4 + (byte) main::column#2) ← (byte/word/signed word/dword/signed dword) 160 + [7] *((byte*) main::screen#4 + (byte) main::column#2) ← (byte/word/signed word/dword/signed dword) $a0 [8] *((byte*) main::colors#4 + (byte) main::column#2) ← (byte) main::color#3 [9] (byte) main::color#1 ← (byte) main::color#3 ^ (byte/signed byte/word/signed word/dword/signed dword) 1 [10] (byte) main::column#1 ← ++ (byte) main::column#2 @@ -197,8 +197,8 @@ main::@2: scope:[main] from main::@1 main::@2 to:main::@3 main::@3: scope:[main] from main::@2 [12] (byte) main::color#2 ← (byte) main::color#1 ^ (byte/signed byte/word/signed word/dword/signed dword) 1 - [13] (byte*) main::screen#1 ← (byte*) main::screen#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [14] (byte*) main::colors#1 ← (byte*) main::colors#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [13] (byte*) main::screen#1 ← (byte*) main::screen#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 + [14] (byte*) main::colors#1 ← (byte*) main::colors#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 [15] (byte) main::row#1 ← ++ (byte) main::row#4 [16] if((byte) main::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@1 to:main::@return @@ -281,7 +281,7 @@ main: { //SEG12 [5] phi (byte) main::row#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 lda #0 sta row - //SEG13 [5] phi (byte*) main::colors#4 = ((byte*))(word/dword/signed dword) 55296 [phi:main->main::@1#1] -- pbuz1=pbuc1 + //SEG13 [5] phi (byte*) main::colors#4 = ((byte*))(word/dword/signed dword) $d800 [phi:main->main::@1#1] -- pbuz1=pbuc1 lda #<$d800 sta colors lda #>$d800 @@ -289,7 +289,7 @@ main: { //SEG14 [5] phi (byte) main::color#5 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:main->main::@1#2] -- vbuz1=vbuc1 lda #1 sta color - //SEG15 [5] phi (byte*) main::screen#4 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#3] -- pbuz1=pbuc1 + //SEG15 [5] phi (byte*) main::screen#4 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#3] -- pbuz1=pbuc1 lda #<$400 sta screen lda #>$400 @@ -318,7 +318,7 @@ main: { jmp b2 //SEG28 main::@2 b2: - //SEG29 [7] *((byte*) main::screen#4 + (byte) main::column#2) ← (byte/word/signed word/dword/signed dword) 160 -- pbuz1_derefidx_vbuz2=vbuc1 + //SEG29 [7] *((byte*) main::screen#4 + (byte) main::column#2) ← (byte/word/signed word/dword/signed dword) $a0 -- pbuz1_derefidx_vbuz2=vbuc1 lda #$a0 ldy column sta (screen),y @@ -343,7 +343,7 @@ main: { lda color eor #1 sta color - //SEG36 [13] (byte*) main::screen#1 ← (byte*) main::screen#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG36 [13] (byte*) main::screen#1 ← (byte*) main::screen#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda screen clc adc #$28 @@ -351,7 +351,7 @@ main: { bcc !+ inc screen+1 !: - //SEG37 [14] (byte*) main::colors#1 ← (byte*) main::colors#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG37 [14] (byte*) main::colors#1 ← (byte*) main::colors#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda colors clc adc #$28 @@ -373,21 +373,21 @@ main: { } REGISTER UPLIFT POTENTIAL REGISTERS -Statement [7] *((byte*) main::screen#4 + (byte) main::column#2) ← (byte/word/signed word/dword/signed dword) 160 [ main::screen#4 main::colors#4 main::row#4 main::column#2 main::color#3 ] ( main:2 [ main::screen#4 main::colors#4 main::row#4 main::column#2 main::color#3 ] ) always clobbers reg byte a +Statement [7] *((byte*) main::screen#4 + (byte) main::column#2) ← (byte/word/signed word/dword/signed dword) $a0 [ main::screen#4 main::colors#4 main::row#4 main::column#2 main::color#3 ] ( main:2 [ main::screen#4 main::colors#4 main::row#4 main::column#2 main::color#3 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:6 [ main::row#4 main::row#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:7 [ main::column#2 main::column#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:8 [ main::color#3 main::color#5 main::color#2 main::color#1 ] Statement [8] *((byte*) main::colors#4 + (byte) main::column#2) ← (byte) main::color#3 [ main::screen#4 main::colors#4 main::row#4 main::column#2 main::color#3 ] ( main:2 [ main::screen#4 main::colors#4 main::row#4 main::column#2 main::color#3 ] ) always clobbers reg byte a Statement [9] (byte) main::color#1 ← (byte) main::color#3 ^ (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::screen#4 main::colors#4 main::row#4 main::column#2 main::color#1 ] ( main:2 [ main::screen#4 main::colors#4 main::row#4 main::column#2 main::color#1 ] ) always clobbers reg byte a Statement [12] (byte) main::color#2 ← (byte) main::color#1 ^ (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::screen#4 main::colors#4 main::row#4 main::color#2 ] ( main:2 [ main::screen#4 main::colors#4 main::row#4 main::color#2 ] ) always clobbers reg byte a -Statement [13] (byte*) main::screen#1 ← (byte*) main::screen#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::colors#4 main::row#4 main::screen#1 main::color#2 ] ( main:2 [ main::colors#4 main::row#4 main::screen#1 main::color#2 ] ) always clobbers reg byte a -Statement [14] (byte*) main::colors#1 ← (byte*) main::colors#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::row#4 main::screen#1 main::color#2 main::colors#1 ] ( main:2 [ main::row#4 main::screen#1 main::color#2 main::colors#1 ] ) always clobbers reg byte a -Statement [7] *((byte*) main::screen#4 + (byte) main::column#2) ← (byte/word/signed word/dword/signed dword) 160 [ main::screen#4 main::colors#4 main::row#4 main::column#2 main::color#3 ] ( main:2 [ main::screen#4 main::colors#4 main::row#4 main::column#2 main::color#3 ] ) always clobbers reg byte a +Statement [13] (byte*) main::screen#1 ← (byte*) main::screen#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ main::colors#4 main::row#4 main::screen#1 main::color#2 ] ( main:2 [ main::colors#4 main::row#4 main::screen#1 main::color#2 ] ) always clobbers reg byte a +Statement [14] (byte*) main::colors#1 ← (byte*) main::colors#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ main::row#4 main::screen#1 main::color#2 main::colors#1 ] ( main:2 [ main::row#4 main::screen#1 main::color#2 main::colors#1 ] ) always clobbers reg byte a +Statement [7] *((byte*) main::screen#4 + (byte) main::column#2) ← (byte/word/signed word/dword/signed dword) $a0 [ main::screen#4 main::colors#4 main::row#4 main::column#2 main::color#3 ] ( main:2 [ main::screen#4 main::colors#4 main::row#4 main::column#2 main::color#3 ] ) always clobbers reg byte a Statement [8] *((byte*) main::colors#4 + (byte) main::column#2) ← (byte) main::color#3 [ main::screen#4 main::colors#4 main::row#4 main::column#2 main::color#3 ] ( main:2 [ main::screen#4 main::colors#4 main::row#4 main::column#2 main::color#3 ] ) always clobbers reg byte a Statement [9] (byte) main::color#1 ← (byte) main::color#3 ^ (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::screen#4 main::colors#4 main::row#4 main::column#2 main::color#1 ] ( main:2 [ main::screen#4 main::colors#4 main::row#4 main::column#2 main::color#1 ] ) always clobbers reg byte a Statement [12] (byte) main::color#2 ← (byte) main::color#1 ^ (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::screen#4 main::colors#4 main::row#4 main::color#2 ] ( main:2 [ main::screen#4 main::colors#4 main::row#4 main::color#2 ] ) always clobbers reg byte a -Statement [13] (byte*) main::screen#1 ← (byte*) main::screen#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::colors#4 main::row#4 main::screen#1 main::color#2 ] ( main:2 [ main::colors#4 main::row#4 main::screen#1 main::color#2 ] ) always clobbers reg byte a -Statement [14] (byte*) main::colors#1 ← (byte*) main::colors#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::row#4 main::screen#1 main::color#2 main::colors#1 ] ( main:2 [ main::row#4 main::screen#1 main::color#2 main::colors#1 ] ) always clobbers reg byte a +Statement [13] (byte*) main::screen#1 ← (byte*) main::screen#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ main::colors#4 main::row#4 main::screen#1 main::color#2 ] ( main:2 [ main::colors#4 main::row#4 main::screen#1 main::color#2 ] ) always clobbers reg byte a +Statement [14] (byte*) main::colors#1 ← (byte*) main::colors#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ main::row#4 main::screen#1 main::color#2 main::colors#1 ] ( main:2 [ main::row#4 main::screen#1 main::color#2 main::colors#1 ] ) always clobbers reg byte a Potential registers zp ZP_WORD:2 [ main::screen#4 main::screen#1 ] : zp ZP_WORD:2 , Potential registers zp ZP_WORD:4 [ main::colors#4 main::colors#1 ] : zp ZP_WORD:4 , Potential registers zp ZP_BYTE:6 [ main::row#4 main::row#1 ] : zp ZP_BYTE:6 , reg byte x , reg byte y , @@ -437,14 +437,14 @@ main: { //SEG12 [5] phi (byte) main::row#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 lda #0 sta row - //SEG13 [5] phi (byte*) main::colors#4 = ((byte*))(word/dword/signed dword) 55296 [phi:main->main::@1#1] -- pbuz1=pbuc1 + //SEG13 [5] phi (byte*) main::colors#4 = ((byte*))(word/dword/signed dword) $d800 [phi:main->main::@1#1] -- pbuz1=pbuc1 lda #<$d800 sta colors lda #>$d800 sta colors+1 //SEG14 [5] phi (byte) main::color#5 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:main->main::@1#2] -- vbuxx=vbuc1 ldx #1 - //SEG15 [5] phi (byte*) main::screen#4 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#3] -- pbuz1=pbuc1 + //SEG15 [5] phi (byte*) main::screen#4 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#3] -- pbuz1=pbuc1 lda #<$400 sta screen lda #>$400 @@ -472,7 +472,7 @@ main: { jmp b2 //SEG28 main::@2 b2: - //SEG29 [7] *((byte*) main::screen#4 + (byte) main::column#2) ← (byte/word/signed word/dword/signed dword) 160 -- pbuz1_derefidx_vbuyy=vbuc1 + //SEG29 [7] *((byte*) main::screen#4 + (byte) main::column#2) ← (byte/word/signed word/dword/signed dword) $a0 -- pbuz1_derefidx_vbuyy=vbuc1 lda #$a0 sta (screen),y //SEG30 [8] *((byte*) main::colors#4 + (byte) main::column#2) ← (byte) main::color#3 -- pbuz1_derefidx_vbuyy=vbuxx @@ -494,7 +494,7 @@ main: { txa eor #1 tax - //SEG36 [13] (byte*) main::screen#1 ← (byte*) main::screen#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG36 [13] (byte*) main::screen#1 ← (byte*) main::screen#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda screen clc adc #$28 @@ -502,7 +502,7 @@ main: { bcc !+ inc screen+1 !: - //SEG37 [14] (byte*) main::colors#1 ← (byte*) main::colors#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG37 [14] (byte*) main::colors#1 ← (byte*) main::colors#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda colors clc adc #$28 @@ -615,14 +615,14 @@ main: { //SEG12 [5] phi (byte) main::row#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 lda #0 sta row - //SEG13 [5] phi (byte*) main::colors#4 = ((byte*))(word/dword/signed dword) 55296 [phi:main->main::@1#1] -- pbuz1=pbuc1 + //SEG13 [5] phi (byte*) main::colors#4 = ((byte*))(word/dword/signed dword) $d800 [phi:main->main::@1#1] -- pbuz1=pbuc1 lda #<$d800 sta colors lda #>$d800 sta colors+1 //SEG14 [5] phi (byte) main::color#5 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:main->main::@1#2] -- vbuxx=vbuc1 ldx #1 - //SEG15 [5] phi (byte*) main::screen#4 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#3] -- pbuz1=pbuc1 + //SEG15 [5] phi (byte*) main::screen#4 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#3] -- pbuz1=pbuc1 lda #<$400 sta screen lda #>$400 @@ -643,7 +643,7 @@ main: { //SEG27 [6] phi (byte) main::column#2 = (byte) main::column#1 [phi:main::@2->main::@2#1] -- register_copy //SEG28 main::@2 b2: - //SEG29 [7] *((byte*) main::screen#4 + (byte) main::column#2) ← (byte/word/signed word/dword/signed dword) 160 -- pbuz1_derefidx_vbuyy=vbuc1 + //SEG29 [7] *((byte*) main::screen#4 + (byte) main::column#2) ← (byte/word/signed word/dword/signed dword) $a0 -- pbuz1_derefidx_vbuyy=vbuc1 lda #$a0 sta (screen),y //SEG30 [8] *((byte*) main::colors#4 + (byte) main::column#2) ← (byte) main::color#3 -- pbuz1_derefidx_vbuyy=vbuxx @@ -663,7 +663,7 @@ main: { txa eor #1 tax - //SEG36 [13] (byte*) main::screen#1 ← (byte*) main::screen#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG36 [13] (byte*) main::screen#1 ← (byte*) main::screen#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda screen clc adc #$28 @@ -671,7 +671,7 @@ main: { bcc !+ inc screen+1 !: - //SEG37 [14] (byte*) main::colors#1 ← (byte*) main::colors#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG37 [14] (byte*) main::colors#1 ← (byte*) main::colors#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda colors clc adc #$28 diff --git a/src/test/ref/clobber-a-problem.cfg b/src/test/ref/clobber-a-problem.cfg index fe5bfd77d..d1daeaa0e 100644 --- a/src/test/ref/clobber-a-problem.cfg +++ b/src/test/ref/clobber-a-problem.cfg @@ -18,7 +18,7 @@ main::@return: scope:[main] from main to:@return irq: scope:[irq] from [7] *((const byte*) BORDERCOL#0) ← (const byte) DARK_GREY#0 - [8] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [8] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [9] (byte) irq::raster_next#0 ← (byte) irq_raster_next#1 [10] (byte~) irq::$0 ← (byte) irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [11] if((byte~) irq::$0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto irq::@1 diff --git a/src/test/ref/clobber-a-problem.log b/src/test/ref/clobber-a-problem.log index d5f58d507..12bc93926 100644 --- a/src/test/ref/clobber-a-problem.log +++ b/src/test/ref/clobber-a-problem.log @@ -2,11 +2,11 @@ Resolved forward reference irq to interrupt(HARDWARE_CLOBBER)(void()) irq() CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 to:@1 main: scope:[main] from @2 (void()*~) main::$0 ← & interrupt(HARDWARE_CLOBBER)(void()) irq() @@ -29,7 +29,7 @@ irq: scope:[irq] from (byte*) BORDERCOL#1 ← phi( @2/(byte*) BORDERCOL#3 ) (byte) DARK_GREY#1 ← phi( @2/(byte) DARK_GREY#2 ) *((byte*) BORDERCOL#1) ← (byte) DARK_GREY#1 - (byte) irq_raster_next#1 ← (byte) irq_raster_next#3 + (byte/signed byte/word/signed word/dword/signed dword) 21 + (byte) irq_raster_next#1 ← (byte) irq_raster_next#3 + (byte/signed byte/word/signed word/dword/signed dword) $15 (byte) irq::raster_next#0 ← (byte) irq_raster_next#1 (byte~) irq::$0 ← (byte) irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 (bool~) irq::$1 ← (byte~) irq::$0 == (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -158,11 +158,11 @@ Redundant Phi (byte) BLACK#1 (byte) BLACK#0 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) irq::$2 [17] if((byte~) irq::$0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto irq::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte) DARK_GREY#0 = 11 +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte) DARK_GREY#0 = $b Constant (const byte) BLACK#0 = 0 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 Constant (const void()*) main::$0 = &irq Successful SSA optimization Pass2ConstantIdentification Constant inlined main::$0 = &interrupt(HARDWARE_CLOBBER)(void()) irq() @@ -204,7 +204,7 @@ main::@return: scope:[main] from main to:@return irq: scope:[irq] from [7] *((const byte*) BORDERCOL#0) ← (const byte) DARK_GREY#0 - [8] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [8] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [9] (byte) irq::raster_next#0 ← (byte) irq_raster_next#1 [10] (byte~) irq::$0 ← (byte) irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [11] if((byte~) irq::$0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto irq::@1 @@ -312,7 +312,7 @@ irq: { //SEG17 [7] *((const byte*) BORDERCOL#0) ← (const byte) DARK_GREY#0 -- _deref_pbuc1=vbuc2 lda #DARK_GREY sta BORDERCOL - //SEG18 [8] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 + //SEG18 [8] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuz2_plus_vbuc1 lda #$15 clc adc irq_raster_next @@ -364,7 +364,7 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [1] (byte) irq_raster_next#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a Statement [5] *((const void()**) KERNEL_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) irq() [ ] ( main:3 [ ] ) always clobbers reg byte a Statement [7] *((const byte*) BORDERCOL#0) ← (const byte) DARK_GREY#0 [ irq_raster_next#0 ] ( [ irq_raster_next#0 ] ) always clobbers reg byte a -Statement [8] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [8] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a Statement [10] (byte~) irq::$0 ← (byte) irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ irq::raster_next#0 irq::$0 ] ( [ irq::raster_next#0 irq::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ irq::raster_next#2 irq::raster_next#0 irq::raster_next#1 ] Statement [15] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( [ ] ) always clobbers reg byte a @@ -372,7 +372,7 @@ Statement [16] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg by Statement [1] (byte) irq_raster_next#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a Statement [5] *((const void()**) KERNEL_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) irq() [ ] ( main:3 [ ] ) always clobbers reg byte a Statement [7] *((const byte*) BORDERCOL#0) ← (const byte) DARK_GREY#0 [ irq_raster_next#0 ] ( [ irq_raster_next#0 ] ) always clobbers reg byte a -Statement [8] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [8] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a Statement [10] (byte~) irq::$0 ← (byte) irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ irq::raster_next#0 irq::$0 ] ( [ irq::raster_next#0 irq::$0 ] ) always clobbers reg byte a Statement [15] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( [ ] ) always clobbers reg byte a Statement [16] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y @@ -454,7 +454,7 @@ irq: { //SEG17 [7] *((const byte*) BORDERCOL#0) ← (const byte) DARK_GREY#0 -- _deref_pbuc1=vbuc2 lda #DARK_GREY sta BORDERCOL - //SEG18 [8] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG18 [8] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_raster_next @@ -528,13 +528,13 @@ FINAL SYMBOL TABLE (byte) BLACK (const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) DARK_GREY -(const byte) DARK_GREY#0 DARK_GREY = (byte/signed byte/word/signed word/dword/signed dword) 11 +(const byte) DARK_GREY#0 DARK_GREY = (byte/signed byte/word/signed word/dword/signed dword) $b (void()**) KERNEL_IRQ -(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) 788 +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) $314 (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 interrupt(HARDWARE_CLOBBER)(void()) irq() (byte~) irq::$0 reg byte a 4.0 (label) irq::@1 @@ -601,7 +601,7 @@ irq: { //SEG17 [7] *((const byte*) BORDERCOL#0) ← (const byte) DARK_GREY#0 -- _deref_pbuc1=vbuc2 lda #DARK_GREY sta BORDERCOL - //SEG18 [8] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG18 [8] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_raster_next diff --git a/src/test/ref/clobber-a-problem.sym b/src/test/ref/clobber-a-problem.sym index bfc7c4ec4..d56ae41d1 100644 --- a/src/test/ref/clobber-a-problem.sym +++ b/src/test/ref/clobber-a-problem.sym @@ -5,13 +5,13 @@ (byte) BLACK (const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) DARK_GREY -(const byte) DARK_GREY#0 DARK_GREY = (byte/signed byte/word/signed word/dword/signed dword) 11 +(const byte) DARK_GREY#0 DARK_GREY = (byte/signed byte/word/signed word/dword/signed dword) $b (void()**) KERNEL_IRQ -(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) 788 +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) $314 (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 interrupt(HARDWARE_CLOBBER)(void()) irq() (byte~) irq::$0 reg byte a 4.0 (label) irq::@1 diff --git a/src/test/ref/complex/tetris/test-sprites.cfg b/src/test/ref/complex/tetris/test-sprites.cfg index c56190321..3c38e8a69 100644 --- a/src/test/ref/complex/tetris/test-sprites.cfg +++ b/src/test/ref/complex/tetris/test-sprites.cfg @@ -21,7 +21,7 @@ to:@5 @5: scope:[] from @4 [3] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 - [4] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 21 + [4] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) $15 to:toSpritePtr1 toSpritePtr1: scope:[] from @5 [5] phi() @@ -65,11 +65,11 @@ main::@4: scope:[main] from main::toD0181 [19] call sprites_init to:main::@6 main::@6: scope:[main] from main::@4 - [20] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 + [20] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff to:main::@1 main::@1: scope:[main] from main::@5 main::@6 - [21] (byte) main::ypos#2 ← phi( main::@5/(byte) main::ypos#1 main::@6/(byte/signed byte/word/signed word/dword/signed dword) 50 ) - [21] (byte) main::xpos#2 ← phi( main::@5/(byte) main::xpos#1 main::@6/(byte/signed byte/word/signed word/dword/signed dword) 24 ) + [21] (byte) main::ypos#2 ← phi( main::@5/(byte) main::ypos#1 main::@6/(byte/signed byte/word/signed word/dword/signed dword) $32 ) + [21] (byte) main::xpos#2 ← phi( main::@5/(byte) main::xpos#1 main::@6/(byte/signed byte/word/signed word/dword/signed dword) $18 ) [21] (byte) main::s#2 ← phi( main::@5/(byte) main::s#1 main::@6/(byte/signed byte/word/signed word/dword/signed dword) 4 ) [22] (byte) main::s2#0 ← (byte) main::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [23] *((const byte*) SPRITES_XPOS#0 + (byte) main::s2#0) ← (byte) main::xpos#2 @@ -82,8 +82,8 @@ main::toSpritePtr2: scope:[main] from main::@1 to:main::@5 main::@5: scope:[main] from main::toSpritePtr2 [28] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0 + (byte) main::s#2) ← (const byte) main::toSpritePtr2_return#0 - [29] (byte) main::xpos#1 ← (byte) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 - [30] (byte) main::ypos#1 ← (byte) main::ypos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 + [29] (byte) main::xpos#1 ← (byte) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 + [30] (byte) main::ypos#1 ← (byte) main::ypos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 [31] (byte) main::s#1 ← ++ (byte) main::s#2 [32] if((byte) main::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@1 to:main::@2 @@ -105,7 +105,7 @@ loop::@1: scope:[loop] from loop loop::@9 [39] (byte) sin_idx#10 ← phi( loop/(byte/signed byte/word/signed word/dword/signed dword) 0 loop::@9/(byte) sin_idx#3 ) to:loop::@4 loop::@4: scope:[loop] from loop::@1 loop::@4 - [40] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto loop::@4 + [40] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto loop::@4 to:loop::@8 loop::@8: scope:[loop] from loop::@4 [41] (byte) loop::idx#0 ← (byte) sin_idx#10 @@ -115,7 +115,7 @@ loop::@5: scope:[loop] from loop::@5 loop::@8 [42] (byte) loop::s#2 ← phi( loop::@5/(byte) loop::s#1 loop::@8/(byte/signed byte/word/signed word/dword/signed dword) 4 ) [43] (byte~) loop::$1 ← (byte) loop::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [44] *((const byte*) SPRITES_YPOS#0 + (byte~) loop::$1) ← *((const byte*) SIN#0 + (byte) loop::idx#2) - [45] (byte) loop::idx#1 ← (byte) loop::idx#2 + (byte/signed byte/word/signed word/dword/signed dword) 10 + [45] (byte) loop::idx#1 ← (byte) loop::idx#2 + (byte/signed byte/word/signed word/dword/signed dword) $a [46] (byte) loop::s#1 ← ++ (byte) loop::s#2 [47] if((byte) loop::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto loop::@5 to:loop::@9 @@ -129,7 +129,7 @@ sprites_irq_init: scope:[sprites_irq_init] from main::@2 [52] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [53] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [54] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [55] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 + [55] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f [56] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [57] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [58] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() @@ -139,18 +139,18 @@ sprites_irq_init::@return: scope:[sprites_irq_init] from sprites_irq_init [60] return to:@return sprites_init: scope:[sprites_init] from main::@4 - [61] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 + [61] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) $f [62] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [63] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [64] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) to:sprites_init::@1 sprites_init::@1: scope:[sprites_init] from sprites_init sprites_init::@1 - [65] (byte) sprites_init::xpos#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 sprites_init::@1/(byte) sprites_init::xpos#1 ) + [65] (byte) sprites_init::xpos#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) $18+(byte/signed byte/word/signed word/dword/signed dword) $f*(byte/signed byte/word/signed word/dword/signed dword) 8 sprites_init::@1/(byte) sprites_init::xpos#1 ) [65] (byte) sprites_init::s#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 0 sprites_init::@1/(byte) sprites_init::s#1 ) [66] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [67] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [68] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 - [69] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 + [69] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 [70] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 [71] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 to:sprites_init::@return @@ -187,11 +187,11 @@ sprites_irq::@3: scope:[sprites_irq] from sprites_irq::@2 sprites_irq::@9 [91] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 to:sprites_irq::@11 sprites_irq::@11: scope:[sprites_irq] from sprites_irq::@3 - [92] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 + [92] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) $a) goto sprites_irq::@5 to:sprites_irq::@12 sprites_irq::@12: scope:[sprites_irq] from sprites_irq::@11 - [93] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 - [94] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [93] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $14 + [94] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [95] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 to:sprites_irq::@7 sprites_irq::@7: scope:[sprites_irq] from sprites_irq::@12 sprites_irq::@15 sprites_irq::@5 @@ -205,11 +205,11 @@ sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@7 sprites_irq::@5: scope:[sprites_irq] from sprites_irq::@11 [100] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [101] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 - [102] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [102] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [103] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 to:sprites_irq::@7 sprites_irq::@4: scope:[sprites_irq] from sprites_irq::@3 - [104] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [104] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [105] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 to:sprites_irq::toSpritePtr2 sprites_irq::toSpritePtr2: scope:[sprites_irq] from sprites_irq::@4 diff --git a/src/test/ref/complex/tetris/test-sprites.log b/src/test/ref/complex/tetris/test-sprites.log index 4ab85c79b..ec6e46b52 100644 --- a/src/test/ref/complex/tetris/test-sprites.log +++ b/src/test/ref/complex/tetris/test-sprites.log @@ -11,66 +11,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -81,33 +81,33 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@4 @4: scope:[] from @begin - (byte*) PLAYFIELD_SCREEN_1#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte*) PLAYFIELD_SCREEN_2#0 ← ((byte*)) (word/signed word/dword/signed dword) 11264 + (byte*) PLAYFIELD_SCREEN_1#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte*) PLAYFIELD_SCREEN_2#0 ← ((byte*)) (word/signed word/dword/signed dword) $2c00 (byte*~) $0 ← (byte*) PLAYFIELD_SCREEN_1#0 + (word) SPRITE_PTRS#0 (byte*) PLAYFIELD_SPRITE_PTRS_1#0 ← (byte*~) $0 (byte*~) $1 ← (byte*) PLAYFIELD_SCREEN_2#0 + (word) SPRITE_PTRS#0 (byte*) PLAYFIELD_SPRITE_PTRS_2#0 ← (byte*~) $1 - (byte*) PLAYFIELD_SCREEN_ORIGINAL#0 ← ((byte*)) (word/signed word/dword/signed dword) 6144 - (byte*) PLAYFIELD_COLORS_ORIGINAL#0 ← ((byte*)) (word/signed word/dword/signed dword) 7168 - (byte*) PLAYFIELD_SPRITES#0 ← ((byte*)) (word/signed word/dword/signed dword) 8192 - (byte*) PLAYFIELD_CHARSET#0 ← ((byte*)) (word/signed word/dword/signed dword) 10240 - (byte) PLAYFIELD_LINES#0 ← (byte/signed byte/word/signed word/dword/signed dword) 22 - (byte) PLAYFIELD_COLS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 + (byte*) PLAYFIELD_SCREEN_ORIGINAL#0 ← ((byte*)) (word/signed word/dword/signed dword) $1800 + (byte*) PLAYFIELD_COLORS_ORIGINAL#0 ← ((byte*)) (word/signed word/dword/signed dword) $1c00 + (byte*) PLAYFIELD_SPRITES#0 ← ((byte*)) (word/signed word/dword/signed dword) $2000 + (byte*) PLAYFIELD_CHARSET#0 ← ((byte*)) (word/signed word/dword/signed dword) $2800 + (byte) PLAYFIELD_LINES#0 ← (byte/signed byte/word/signed word/dword/signed dword) $16 + (byte) PLAYFIELD_COLS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a (byte~) $2 ← (byte) PLAYFIELD_LINES#0 * (byte) PLAYFIELD_COLS#0 (byte[$2]) playfield#0 ← { fill( $2, 0) } (byte*) current_piece_gfx#0 ← (byte*) 0 (byte) current_piece_char#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) current_xpos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) current_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte) render_screen_render#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 + (byte) render_screen_render#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 (byte) render_screen_show#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) render_screen_showing#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (dword) score_bcd#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -132,12 +132,12 @@ CONTROL FLOW GRAPH SSA }} to:@5 sprites_init: scope:[sprites_init] from main::@4 - *((byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 + *((byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) $f *((byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) SPRITES_EXPAND_Y#0) ← *((byte*) SPRITES_MC#0) *((byte*) SPRITES_EXPAND_X#0) ← *((byte*) SPRITES_EXPAND_Y#0) - (byte/signed byte/word/signed word/dword/signed dword~) sprites_init::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 * (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte/signed word/word/dword/signed dword/signed byte~) sprites_init::$1 ← (byte/signed byte/word/signed word/dword/signed dword) 24 + (byte/signed byte/word/signed word/dword/signed dword~) sprites_init::$0 + (byte/signed byte/word/signed word/dword/signed dword~) sprites_init::$0 ← (byte/signed byte/word/signed word/dword/signed dword) $f * (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte/signed word/word/dword/signed dword/signed byte~) sprites_init::$1 ← (byte/signed byte/word/signed word/dword/signed dword) $18 + (byte/signed byte/word/signed word/dword/signed dword~) sprites_init::$0 (byte) sprites_init::xpos#0 ← (byte/signed word/word/dword/signed dword/signed byte~) sprites_init::$1 (byte) sprites_init::s#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:sprites_init::@1 @@ -148,7 +148,7 @@ sprites_init::@1: scope:[sprites_init] from sprites_init sprites_init::@1 (byte) sprites_init::s2#0 ← (byte~) sprites_init::$2 *((byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 *((byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (byte) BLACK#0 - (byte/signed word/word/dword/signed dword~) sprites_init::$3 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 + (byte/signed word/word/dword/signed dword~) sprites_init::$3 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 (byte) sprites_init::xpos#1 ← (byte/signed word/word/dword/signed dword~) sprites_init::$3 (byte) sprites_init::s#1 ← (byte) sprites_init::s#2 + rangenext(0,3) (bool~) sprites_init::$4 ← (byte) sprites_init::s#1 != rangelast(0,3) @@ -159,11 +159,11 @@ sprites_init::@return: scope:[sprites_init] from sprites_init::@1 to:@return @5: scope:[] from @4 (byte) render_screen_showing#9 ← phi( @4/(byte) render_screen_showing#0 ) - (byte) SPRITES_FIRST_YPOS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte/signed word/word/dword/signed dword~) $3 ← (byte) SPRITES_FIRST_YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 19 + (byte) SPRITES_FIRST_YPOS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte/signed word/word/dword/signed dword~) $3 ← (byte) SPRITES_FIRST_YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) $13 (byte) IRQ_RASTER_FIRST#0 ← (byte/signed word/word/dword/signed dword~) $3 (byte) irq_raster_next#0 ← (byte) IRQ_RASTER_FIRST#0 - (byte/signed word/word/dword/signed dword~) $4 ← (byte) SPRITES_FIRST_YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + (byte/signed word/word/dword/signed dword~) $4 ← (byte) SPRITES_FIRST_YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 (byte) irq_sprite_ypos#0 ← (byte/signed word/word/dword/signed dword~) $4 (byte*) toSpritePtr1_sprite#0 ← (byte*) PLAYFIELD_SPRITES#0 to:toSpritePtr1 @@ -201,7 +201,7 @@ sprites_irq_init: scope:[sprites_irq_init] from main::@2 *((byte*) PROCPORT_DDR#0) ← (byte) PROCPORT_DDR_MEMORY_MASK#0 *((byte*) PROCPORT#0) ← (byte) PROCPORT_RAM_IO#0 *((byte*) CIA1_INTERRUPT#0) ← (byte) CIA_INTERRUPT_CLEAR#0 - *((byte*) VIC_CONTROL#0) ← *((byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 + *((byte*) VIC_CONTROL#0) ← *((byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f *((byte*) RASTER#0) ← (byte) IRQ_RASTER_FIRST#0 *((byte*) IRQ_ENABLE#0) ← (byte) IRQ_RASTER#0 (void()*~) sprites_irq_init::$0 ← & interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() @@ -284,7 +284,7 @@ sprites_irq::@3: scope:[sprites_irq] from sprites_irq::@2 sprites_irq::@9 sprites_irq::@4: scope:[sprites_irq] from sprites_irq::@3 (byte) irq_cnt#18 ← phi( sprites_irq::@3/(byte) irq_cnt#1 ) (byte) irq_raster_next#6 ← phi( sprites_irq::@3/(byte) irq_raster_next#11 ) - (byte) irq_raster_next#1 ← (byte) irq_raster_next#6 + (byte/signed byte/word/signed word/dword/signed dword) 21 + (byte) irq_raster_next#1 ← (byte) irq_raster_next#6 + (byte/signed byte/word/signed word/dword/signed dword) $15 (byte) irq_sprite_ypos#1 ← (byte) SPRITES_FIRST_YPOS#0 (byte*) sprites_irq::toSpritePtr2_sprite#0 ← (byte*) PLAYFIELD_SPRITES#0 to:sprites_irq::toSpritePtr2 @@ -318,7 +318,7 @@ sprites_irq::@11: scope:[sprites_irq] from sprites_irq::@3 (byte) irq_sprite_ptr#10 ← phi( sprites_irq::@3/(byte) irq_sprite_ptr#13 ) (byte) irq_sprite_ypos#10 ← phi( sprites_irq::@3/(byte) irq_sprite_ypos#12 ) (byte) irq_cnt#5 ← phi( sprites_irq::@3/(byte) irq_cnt#1 ) - (bool~) sprites_irq::$4 ← (byte) irq_cnt#5 == (byte/signed byte/word/signed word/dword/signed dword) 10 + (bool~) sprites_irq::$4 ← (byte) irq_cnt#5 == (byte/signed byte/word/signed word/dword/signed dword) $a if((bool~) sprites_irq::$4) goto sprites_irq::@5 to:sprites_irq::@12 sprites_irq::@5: scope:[sprites_irq] from sprites_irq::@11 @@ -326,7 +326,7 @@ sprites_irq::@5: scope:[sprites_irq] from sprites_irq::@11 (byte) irq_sprite_ypos#6 ← phi( sprites_irq::@11/(byte) irq_sprite_ypos#10 ) (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) irq_raster_next#2 ← (byte) IRQ_RASTER_FIRST#0 - (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#6 + (byte/signed byte/word/signed word/dword/signed dword) 21 + (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#6 + (byte/signed byte/word/signed word/dword/signed dword) $15 (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#6 + (byte/signed byte/word/signed word/dword/signed dword) 3 to:sprites_irq::@7 sprites_irq::@12: scope:[sprites_irq] from sprites_irq::@11 @@ -334,8 +334,8 @@ sprites_irq::@12: scope:[sprites_irq] from sprites_irq::@11 (byte) irq_sprite_ptr#7 ← phi( sprites_irq::@11/(byte) irq_sprite_ptr#10 ) (byte) irq_sprite_ypos#7 ← phi( sprites_irq::@11/(byte) irq_sprite_ypos#10 ) (byte) irq_raster_next#7 ← phi( sprites_irq::@11/(byte) irq_raster_next#12 ) - (byte) irq_raster_next#3 ← (byte) irq_raster_next#7 + (byte/signed byte/word/signed word/dword/signed dword) 20 - (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#7 + (byte/signed byte/word/signed word/dword/signed dword) 21 + (byte) irq_raster_next#3 ← (byte) irq_raster_next#7 + (byte/signed byte/word/signed word/dword/signed dword) $14 + (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#7 + (byte/signed byte/word/signed word/dword/signed dword) $15 (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#7 + (byte/signed byte/word/signed word/dword/signed dword) 3 to:sprites_irq::@7 sprites_irq::@7: scope:[sprites_irq] from sprites_irq::@12 sprites_irq::@15 sprites_irq::@5 @@ -363,8 +363,8 @@ sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@7 (byte) irq_sprite_ptr#17 ← phi( @10/(byte) irq_sprite_ptr#0 ) (byte) irq_raster_next#17 ← phi( @10/(byte) irq_raster_next#20 ) (byte) irq_sprite_ypos#14 ← phi( @10/(byte) irq_sprite_ypos#18 ) - (byte*) SIN#0 ← ((byte*)) (word/signed word/dword/signed dword) 5120 - (byte*) SIN_SPRITE#0 ← ((byte*)) (word/signed word/dword/signed dword) 10240 + (byte*) SIN#0 ← ((byte*)) (word/signed word/dword/signed dword) $1400 + (byte*) SIN_SPRITE#0 ← ((byte*)) (word/signed word/dword/signed dword) $2800 kickasm(location (byte*) SIN#0) {{ .var AMPL = 200-21 .for(var i=0; i<256; i++) { .byte 51+AMPL/2+sin(toRadians([i*360]/256))*AMPL/2 @@ -428,13 +428,13 @@ main::toD0181: scope:[main] from main::@3 (byte*) main::toD0181_gfx#1 ← phi( main::@3/(byte*) main::toD0181_gfx#0 ) (byte*) main::toD0181_screen#1 ← phi( main::@3/(byte*) main::toD0181_screen#0 ) (word) main::toD0181_$0#0 ← ((word)) (byte*) main::toD0181_screen#1 - (word) main::toD0181_$1#0 ← (word) main::toD0181_$0#0 & (word/signed word/dword/signed dword) 16383 + (word) main::toD0181_$1#0 ← (word) main::toD0181_$0#0 & (word/signed word/dword/signed dword) $3fff (word) main::toD0181_$2#0 ← (word) main::toD0181_$1#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) main::toD0181_$3#0 ← > (word) main::toD0181_$2#0 (word) main::toD0181_$4#0 ← ((word)) (byte*) main::toD0181_gfx#1 (byte) main::toD0181_$5#0 ← > (word) main::toD0181_$4#0 (byte) main::toD0181_$6#0 ← (byte) main::toD0181_$5#0 >> (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte) main::toD0181_$7#0 ← (byte) main::toD0181_$6#0 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) main::toD0181_$7#0 ← (byte) main::toD0181_$6#0 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte) main::toD0181_$8#0 ← (byte) main::toD0181_$3#0 | (byte) main::toD0181_$7#0 (byte) main::toD0181_return#0 ← (byte) main::toD0181_$8#0 to:main::toD0181_@return @@ -458,9 +458,9 @@ main::@6: scope:[main] from main::@4 (byte*) SIN#14 ← phi( main::@4/(byte*) SIN#15 ) (byte) sin_idx#24 ← phi( main::@4/(byte) sin_idx#25 ) (byte*) SIN_SPRITE#3 ← phi( main::@4/(byte*) SIN_SPRITE#4 ) - *((byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 - (byte) main::xpos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 24 - (byte) main::ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 + *((byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff + (byte) main::xpos#0 ← (byte/signed byte/word/signed word/dword/signed dword) $18 + (byte) main::ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) $32 (byte) main::s#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 to:main::@1 main::@1: scope:[main] from main::@5 main::@6 @@ -511,8 +511,8 @@ main::@5: scope:[main] from main::toSpritePtr2_@return (byte) main::toSpritePtr2_return#3 ← phi( main::toSpritePtr2_@return/(byte) main::toSpritePtr2_return#1 ) (byte~) main::$5 ← (byte) main::toSpritePtr2_return#3 *((byte*) PLAYFIELD_SPRITE_PTRS_1#0 + (byte) main::s#3) ← (byte~) main::$5 - (byte) main::xpos#1 ← (byte) main::xpos#3 + (byte/signed byte/word/signed word/dword/signed dword) 24 - (byte) main::ypos#1 ← (byte) main::ypos#3 + (byte/signed byte/word/signed word/dword/signed dword) 24 + (byte) main::xpos#1 ← (byte) main::xpos#3 + (byte/signed byte/word/signed word/dword/signed dword) $18 + (byte) main::ypos#1 ← (byte) main::ypos#3 + (byte/signed byte/word/signed word/dword/signed dword) $18 (byte) main::s#1 ← (byte) main::s#3 + rangenext(4,7) (bool~) main::$6 ← (byte) main::s#1 != rangelast(4,7) if((bool~) main::$6) goto main::@1 @@ -552,7 +552,7 @@ loop::@2: scope:[loop] from loop::@1 loop::@4: scope:[loop] from loop::@2 loop::@4 (byte*) SIN#3 ← phi( loop::@2/(byte*) SIN#4 loop::@4/(byte*) SIN#3 ) (byte) sin_idx#13 ← phi( loop::@2/(byte) sin_idx#19 loop::@4/(byte) sin_idx#13 ) - (bool~) loop::$0 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 255 + (bool~) loop::$0 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) $ff if((bool~) loop::$0) goto loop::@4 to:loop::@8 loop::@8: scope:[loop] from loop::@4 @@ -568,7 +568,7 @@ loop::@5: scope:[loop] from loop::@5 loop::@8 (byte) loop::s#2 ← phi( loop::@5/(byte) loop::s#1 loop::@8/(byte) loop::s#0 ) (byte~) loop::$1 ← (byte) loop::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 *((byte*) SPRITES_YPOS#0 + (byte~) loop::$1) ← *((byte*) SIN#1 + (byte) loop::idx#2) - (byte) loop::idx#1 ← (byte) loop::idx#2 + (byte/signed byte/word/signed word/dword/signed dword) 10 + (byte) loop::idx#1 ← (byte) loop::idx#2 + (byte/signed byte/word/signed word/dword/signed dword) $a (byte) loop::s#1 ← (byte) loop::s#2 + rangenext(4,7) (bool~) loop::$2 ← (byte) loop::s#1 != rangelast(4,7) if((bool~) loop::$2) goto loop::@5 @@ -1349,74 +1349,74 @@ Simple Condition (bool~) sprites_init::$4 [123] if((byte) sprites_init::s#1!=ran Simple Condition (bool~) sprites_irq::$1 [169] if(*((byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 Simple Condition (bool~) sprites_irq::$2 [173] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 Simple Condition (bool~) sprites_irq::$3 [191] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 -Simple Condition (bool~) sprites_irq::$4 [208] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 +Simple Condition (bool~) sprites_irq::$4 [208] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) $a) goto sprites_irq::@5 Simple Condition (bool~) main::$6 [296] if((byte) main::s#1!=rangelast(4,7)) goto main::@1 -Simple Condition (bool~) loop::$0 [312] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto loop::@4 +Simple Condition (bool~) loop::$0 [312] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto loop::@4 Simple Condition (bool~) loop::$2 [322] if((byte) loop::s#1!=rangelast(4,7)) goto loop::@5 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -1427,49 +1427,49 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 -Constant (const byte*) PLAYFIELD_SCREEN_1#0 = ((byte*))1024 -Constant (const byte*) PLAYFIELD_SCREEN_2#0 = ((byte*))11264 -Constant (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0 = ((byte*))6144 -Constant (const byte*) PLAYFIELD_COLORS_ORIGINAL#0 = ((byte*))7168 -Constant (const byte*) PLAYFIELD_SPRITES#0 = ((byte*))8192 -Constant (const byte*) PLAYFIELD_CHARSET#0 = ((byte*))10240 -Constant (const byte) PLAYFIELD_LINES#0 = 22 -Constant (const byte) PLAYFIELD_COLS#0 = 10 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f +Constant (const byte*) PLAYFIELD_SCREEN_1#0 = ((byte*))$400 +Constant (const byte*) PLAYFIELD_SCREEN_2#0 = ((byte*))$2c00 +Constant (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0 = ((byte*))$1800 +Constant (const byte*) PLAYFIELD_COLORS_ORIGINAL#0 = ((byte*))$1c00 +Constant (const byte*) PLAYFIELD_SPRITES#0 = ((byte*))$2000 +Constant (const byte*) PLAYFIELD_CHARSET#0 = ((byte*))$2800 +Constant (const byte) PLAYFIELD_LINES#0 = $16 +Constant (const byte) PLAYFIELD_COLS#0 = $a Constant (const byte*) current_piece_gfx#0 = 0 Constant (const byte) current_piece_char#0 = 0 Constant (const byte) current_xpos#0 = 0 Constant (const byte) current_ypos#0 = 0 -Constant (const byte) render_screen_render#0 = 64 +Constant (const byte) render_screen_render#0 = $40 Constant (const byte) render_screen_show#0 = 0 Constant (const dword) score_bcd#0 = 0 Constant (const word) lines_bcd#0 = 0 Constant (const byte) level_bcd#0 = 0 Constant (const byte) level#0 = 0 Constant (const byte) game_over#0 = 0 -Constant (const byte/signed byte/word/signed word/dword/signed dword) sprites_init::$0 = 15*8 +Constant (const byte/signed byte/word/signed word/dword/signed dword) sprites_init::$0 = $f*8 Constant (const byte) sprites_init::s#0 = 0 -Constant (const byte) SPRITES_FIRST_YPOS#0 = 49 +Constant (const byte) SPRITES_FIRST_YPOS#0 = $31 Constant (const void()*) sprites_irq_init::$0 = &sprites_irq -Constant (const byte*) SIN#0 = ((byte*))5120 -Constant (const byte*) SIN_SPRITE#0 = ((byte*))10240 +Constant (const byte*) SIN#0 = ((byte*))$1400 +Constant (const byte*) SIN_SPRITE#0 = ((byte*))$2800 Constant (const byte) sin_idx#0 = 0 -Constant (const byte) main::xpos#0 = 24 -Constant (const byte) main::ypos#0 = 50 +Constant (const byte) main::xpos#0 = $18 +Constant (const byte) main::ypos#0 = $32 Constant (const byte) main::s#0 = 4 Constant (const byte) loop::s#0 = 4 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) PLAYFIELD_SPRITE_PTRS_1#0 = PLAYFIELD_SCREEN_1#0+SPRITE_PTRS#0 Constant (const byte*) PLAYFIELD_SPRITE_PTRS_2#0 = PLAYFIELD_SCREEN_2#0+SPRITE_PTRS#0 Constant (const byte) $2 = PLAYFIELD_LINES#0*PLAYFIELD_COLS#0 -Constant (const byte) sprites_init::xpos#0 = 24+sprites_init::$0 -Constant (const byte/signed word/word/dword/signed dword) $3 = SPRITES_FIRST_YPOS#0+19 -Constant (const byte/signed word/word/dword/signed dword) $4 = SPRITES_FIRST_YPOS#0+21 +Constant (const byte) sprites_init::xpos#0 = $18+sprites_init::$0 +Constant (const byte/signed word/word/dword/signed dword) $3 = SPRITES_FIRST_YPOS#0+$13 +Constant (const byte/signed word/word/dword/signed dword) $4 = SPRITES_FIRST_YPOS#0+$15 Constant (const word) toSpritePtr1_$0#0 = ((word))PLAYFIELD_SPRITES#0 Constant (const byte*) sprites_irq::toSpritePtr2_sprite#0 = PLAYFIELD_SPRITES#0 Constant (const byte*) main::vicSelectGfxBank1_gfx#0 = PLAYFIELD_SCREEN_1#0 @@ -1489,7 +1489,7 @@ Successful SSA optimization Pass2ConstantIdentification Constant (const byte) toSpritePtr1_return#0 = ((byte))toSpritePtr1_$1#0 Constant (const word) sprites_irq::toSpritePtr2_$1#0 = sprites_irq::toSpritePtr2_$0#0>>6 Constant (const byte) main::vicSelectGfxBank1_toDd001_$1#0 = >main::vicSelectGfxBank1_toDd001_$0#0 -Constant (const word) main::toD0181_$1#0 = main::toD0181_$0#0&16383 +Constant (const word) main::toD0181_$1#0 = main::toD0181_$0#0&$3fff Constant (const byte) main::toD0181_$5#0 = >main::toD0181_$4#0 Constant (const word) main::toSpritePtr2_$1#0 = main::toSpritePtr2_$0#0>>6 Successful SSA optimization Pass2ConstantIdentification @@ -1503,7 +1503,7 @@ Successful SSA optimization Pass2ConstantIdentification Constant (const byte) sprites_irq::toSpritePtr2_return#0 = sprites_irq::toSpritePtr2_$2#0 Constant (const byte) main::vicSelectGfxBank1_toDd001_return#0 = 3^main::vicSelectGfxBank1_toDd001_$2#0 Constant (const byte) main::toD0181_$3#0 = >main::toD0181_$2#0 -Constant (const byte) main::toD0181_$7#0 = main::toD0181_$6#0&15 +Constant (const byte) main::toD0181_$7#0 = main::toD0181_$6#0&$f Successful SSA optimization Pass2ConstantIdentification Constant (const byte) sprites_irq::toSpritePtr2_return#1 = sprites_irq::toSpritePtr2_return#0 Constant (const byte) main::toD0181_return#0 = main::toD0181_$3#0|main::toD0181_$7#0 @@ -1564,36 +1564,36 @@ Constant inlined main::toD0181_gfx#0 = (const byte*) PLAYFIELD_CHARSET#0 Constant inlined main::toSpritePtr2_$1#0 = ((word))(const byte*) SIN_SPRITE#0>>(byte/signed byte/word/signed word/dword/signed dword) 6 Constant inlined sprites_irq::toSpritePtr2_return#1 = (const byte) sprites_irq::toSpritePtr2_return#0 Constant inlined sprites_irq::$5 = (const byte) sprites_irq::toSpritePtr2_return#0 -Constant inlined sprites_init::xpos#0 = (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 +Constant inlined sprites_init::xpos#0 = (byte/signed byte/word/signed word/dword/signed dword) $18+(byte/signed byte/word/signed word/dword/signed dword) $f*(byte/signed byte/word/signed word/dword/signed dword) 8 Constant inlined main::toSpritePtr2_sprite#0 = (const byte*) SIN_SPRITE#0 Constant inlined $2 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0 Constant inlined $3 = (const byte) IRQ_RASTER_FIRST#0 -Constant inlined $4 = (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 21 +Constant inlined $4 = (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) $15 Constant inlined $6 = (const byte) toSpritePtr1_return#0+(byte/signed byte/word/signed word/dword/signed dword) 3 Constant inlined sin_idx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined sprites_init::s#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::vicSelectGfxBank1_toDd001_$2#0 = >((word))(const byte*) PLAYFIELD_SCREEN_1#0>>(byte/signed byte/word/signed word/dword/signed dword) 6 -Constant inlined main::xpos#0 = (byte/signed byte/word/signed word/dword/signed dword) 24 +Constant inlined main::xpos#0 = (byte/signed byte/word/signed word/dword/signed dword) $18 Constant inlined main::s#0 = (byte/signed byte/word/signed word/dword/signed dword) 4 Constant inlined main::vicSelectGfxBank1_toDd001_$1#0 = >((word))(const byte*) PLAYFIELD_SCREEN_1#0 Constant inlined sprites_irq_init::$0 = &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() Constant inlined main::vicSelectGfxBank1_toDd001_$0#0 = ((word))(const byte*) PLAYFIELD_SCREEN_1#0 Constant inlined main::toD0181_$0#0 = ((word))(const byte*) PLAYFIELD_SCREEN_1#0 -Constant inlined main::toD0181_$1#0 = ((word))(const byte*) PLAYFIELD_SCREEN_1#0&(word/signed word/dword/signed dword) 16383 +Constant inlined main::toD0181_$1#0 = ((word))(const byte*) PLAYFIELD_SCREEN_1#0&(word/signed word/dword/signed dword) $3fff Constant inlined sprites_irq::toSpritePtr2_sprite#0 = (const byte*) PLAYFIELD_SPRITES#0 Constant inlined sprites_irq::toSpritePtr2_$1#0 = ((word))(const byte*) PLAYFIELD_SPRITES#0>>(byte/signed byte/word/signed word/dword/signed dword) 6 Constant inlined main::toD0181_$6#0 = >((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined sprites_irq::toSpritePtr2_$2#0 = (const byte) sprites_irq::toSpritePtr2_return#0 -Constant inlined main::toD0181_$7#0 = >((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 +Constant inlined main::toD0181_$7#0 = >((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) $f Constant inlined sprites_irq::toSpritePtr2_$0#0 = ((word))(const byte*) PLAYFIELD_SPRITES#0 -Constant inlined main::toD0181_$2#0 = ((word))(const byte*) PLAYFIELD_SCREEN_1#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined main::toD0181_$3#0 = >((word))(const byte*) PLAYFIELD_SCREEN_1#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined main::toD0181_$2#0 = ((word))(const byte*) PLAYFIELD_SCREEN_1#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined main::toD0181_$3#0 = >((word))(const byte*) PLAYFIELD_SCREEN_1#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined main::toD0181_$4#0 = ((word))(const byte*) PLAYFIELD_CHARSET#0 Constant inlined main::toD0181_$5#0 = >((word))(const byte*) PLAYFIELD_CHARSET#0 Constant inlined toSpritePtr1_$1#0 = ((word))(const byte*) PLAYFIELD_SPRITES#0>>(byte/signed byte/word/signed word/dword/signed dword) 6 Constant inlined main::vicSelectGfxBank1_gfx#0 = (const byte*) PLAYFIELD_SCREEN_1#0 -Constant inlined main::ypos#0 = (byte/signed byte/word/signed word/dword/signed dword) 50 -Constant inlined sprites_init::$0 = (byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 +Constant inlined main::ypos#0 = (byte/signed byte/word/signed word/dword/signed dword) $32 +Constant inlined sprites_init::$0 = (byte/signed byte/word/signed word/dword/signed dword) $f*(byte/signed byte/word/signed word/dword/signed dword) 8 Constant inlined toSpritePtr1_$0#0 = ((word))(const byte*) PLAYFIELD_SPRITES#0 Constant inlined loop::s#0 = (byte/signed byte/word/signed word/dword/signed dword) 4 Successful SSA optimization Pass2ConstantInlining @@ -1673,7 +1673,7 @@ FINAL CONTROL FLOW GRAPH to:@5 @5: scope:[] from @4 [3] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 - [4] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 21 + [4] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) $15 to:toSpritePtr1 toSpritePtr1: scope:[] from @5 [5] phi() @@ -1717,11 +1717,11 @@ main::@4: scope:[main] from main::toD0181 [19] call sprites_init to:main::@6 main::@6: scope:[main] from main::@4 - [20] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 + [20] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff to:main::@1 main::@1: scope:[main] from main::@5 main::@6 - [21] (byte) main::ypos#2 ← phi( main::@5/(byte) main::ypos#1 main::@6/(byte/signed byte/word/signed word/dword/signed dword) 50 ) - [21] (byte) main::xpos#2 ← phi( main::@5/(byte) main::xpos#1 main::@6/(byte/signed byte/word/signed word/dword/signed dword) 24 ) + [21] (byte) main::ypos#2 ← phi( main::@5/(byte) main::ypos#1 main::@6/(byte/signed byte/word/signed word/dword/signed dword) $32 ) + [21] (byte) main::xpos#2 ← phi( main::@5/(byte) main::xpos#1 main::@6/(byte/signed byte/word/signed word/dword/signed dword) $18 ) [21] (byte) main::s#2 ← phi( main::@5/(byte) main::s#1 main::@6/(byte/signed byte/word/signed word/dword/signed dword) 4 ) [22] (byte) main::s2#0 ← (byte) main::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [23] *((const byte*) SPRITES_XPOS#0 + (byte) main::s2#0) ← (byte) main::xpos#2 @@ -1734,8 +1734,8 @@ main::toSpritePtr2: scope:[main] from main::@1 to:main::@5 main::@5: scope:[main] from main::toSpritePtr2 [28] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0 + (byte) main::s#2) ← (const byte) main::toSpritePtr2_return#0 - [29] (byte) main::xpos#1 ← (byte) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 - [30] (byte) main::ypos#1 ← (byte) main::ypos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 + [29] (byte) main::xpos#1 ← (byte) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 + [30] (byte) main::ypos#1 ← (byte) main::ypos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 [31] (byte) main::s#1 ← ++ (byte) main::s#2 [32] if((byte) main::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@1 to:main::@2 @@ -1757,7 +1757,7 @@ loop::@1: scope:[loop] from loop loop::@9 [39] (byte) sin_idx#10 ← phi( loop/(byte/signed byte/word/signed word/dword/signed dword) 0 loop::@9/(byte) sin_idx#3 ) to:loop::@4 loop::@4: scope:[loop] from loop::@1 loop::@4 - [40] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto loop::@4 + [40] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto loop::@4 to:loop::@8 loop::@8: scope:[loop] from loop::@4 [41] (byte) loop::idx#0 ← (byte) sin_idx#10 @@ -1767,7 +1767,7 @@ loop::@5: scope:[loop] from loop::@5 loop::@8 [42] (byte) loop::s#2 ← phi( loop::@5/(byte) loop::s#1 loop::@8/(byte/signed byte/word/signed word/dword/signed dword) 4 ) [43] (byte~) loop::$1 ← (byte) loop::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [44] *((const byte*) SPRITES_YPOS#0 + (byte~) loop::$1) ← *((const byte*) SIN#0 + (byte) loop::idx#2) - [45] (byte) loop::idx#1 ← (byte) loop::idx#2 + (byte/signed byte/word/signed word/dword/signed dword) 10 + [45] (byte) loop::idx#1 ← (byte) loop::idx#2 + (byte/signed byte/word/signed word/dword/signed dword) $a [46] (byte) loop::s#1 ← ++ (byte) loop::s#2 [47] if((byte) loop::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto loop::@5 to:loop::@9 @@ -1781,7 +1781,7 @@ sprites_irq_init: scope:[sprites_irq_init] from main::@2 [52] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [53] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [54] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [55] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 + [55] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f [56] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [57] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [58] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() @@ -1791,18 +1791,18 @@ sprites_irq_init::@return: scope:[sprites_irq_init] from sprites_irq_init [60] return to:@return sprites_init: scope:[sprites_init] from main::@4 - [61] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 + [61] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) $f [62] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [63] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [64] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) to:sprites_init::@1 sprites_init::@1: scope:[sprites_init] from sprites_init sprites_init::@1 - [65] (byte) sprites_init::xpos#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 sprites_init::@1/(byte) sprites_init::xpos#1 ) + [65] (byte) sprites_init::xpos#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) $18+(byte/signed byte/word/signed word/dword/signed dword) $f*(byte/signed byte/word/signed word/dword/signed dword) 8 sprites_init::@1/(byte) sprites_init::xpos#1 ) [65] (byte) sprites_init::s#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 0 sprites_init::@1/(byte) sprites_init::s#1 ) [66] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [67] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [68] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 - [69] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 + [69] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 [70] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 [71] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 to:sprites_init::@return @@ -1839,11 +1839,11 @@ sprites_irq::@3: scope:[sprites_irq] from sprites_irq::@2 sprites_irq::@9 [91] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 to:sprites_irq::@11 sprites_irq::@11: scope:[sprites_irq] from sprites_irq::@3 - [92] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 + [92] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) $a) goto sprites_irq::@5 to:sprites_irq::@12 sprites_irq::@12: scope:[sprites_irq] from sprites_irq::@11 - [93] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 - [94] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [93] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $14 + [94] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [95] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 to:sprites_irq::@7 sprites_irq::@7: scope:[sprites_irq] from sprites_irq::@12 sprites_irq::@15 sprites_irq::@5 @@ -1857,11 +1857,11 @@ sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@7 sprites_irq::@5: scope:[sprites_irq] from sprites_irq::@11 [100] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [101] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 - [102] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [102] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [103] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 to:sprites_irq::@7 sprites_irq::@4: scope:[sprites_irq] from sprites_irq::@3 - [104] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [104] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [105] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 to:sprites_irq::toSpritePtr2 sprites_irq::toSpritePtr2: scope:[sprites_irq] from sprites_irq::@4 @@ -2298,7 +2298,7 @@ b5: // The raster line of the next IRQ lda #IRQ_RASTER_FIRST sta irq_raster_next -//SEG9 [4] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuc1 +//SEG9 [4] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuc1 // Y-pos of the sprites on the next IRQ lda #SPRITES_FIRST_YPOS+$15 sta irq_sprite_ypos @@ -2380,15 +2380,15 @@ main: { jmp b6 //SEG36 main::@6 b6: - //SEG37 [20] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 -- _deref_pbuc1=vbuc2 + //SEG37 [20] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff -- _deref_pbuc1=vbuc2 lda #$ff sta SPRITES_ENABLE //SEG38 [21] phi from main::@6 to main::@1 [phi:main::@6->main::@1] b1_from_b6: - //SEG39 [21] phi (byte) main::ypos#2 = (byte/signed byte/word/signed word/dword/signed dword) 50 [phi:main::@6->main::@1#0] -- vbuz1=vbuc1 + //SEG39 [21] phi (byte) main::ypos#2 = (byte/signed byte/word/signed word/dword/signed dword) $32 [phi:main::@6->main::@1#0] -- vbuz1=vbuc1 lda #$32 sta ypos - //SEG40 [21] phi (byte) main::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) 24 [phi:main::@6->main::@1#1] -- vbuz1=vbuc1 + //SEG40 [21] phi (byte) main::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) $18 [phi:main::@6->main::@1#1] -- vbuz1=vbuc1 lda #$18 sta xpos //SEG41 [21] phi (byte) main::s#2 = (byte/signed byte/word/signed word/dword/signed dword) 4 [phi:main::@6->main::@1#2] -- vbuz1=vbuc1 @@ -2436,12 +2436,12 @@ main: { ldy s lda #toSpritePtr2_return sta PLAYFIELD_SPRITE_PTRS_1,y - //SEG56 [29] (byte) main::xpos#1 ← (byte) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG56 [29] (byte) main::xpos#1 ← (byte) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 -- vbuz1=vbuz1_plus_vbuc1 lda #$18 clc adc xpos sta xpos - //SEG57 [30] (byte) main::ypos#1 ← (byte) main::ypos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG57 [30] (byte) main::ypos#1 ← (byte) main::ypos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 -- vbuz1=vbuz1_plus_vbuc1 lda #$18 clc adc ypos @@ -2490,7 +2490,7 @@ loop: { jmp b4 //SEG73 loop::@4 b4: - //SEG74 [40] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto loop::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG74 [40] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto loop::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -2523,7 +2523,7 @@ loop: { lda SIN,y ldy _1 sta SPRITES_YPOS,y - //SEG86 [45] (byte) loop::idx#1 ← (byte) loop::idx#2 + (byte/signed byte/word/signed word/dword/signed dword) 10 -- vbuz1=vbuz1_plus_vbuc1 + //SEG86 [45] (byte) loop::idx#1 ← (byte) loop::idx#2 + (byte/signed byte/word/signed word/dword/signed dword) $a -- vbuz1=vbuz1_plus_vbuc1 lda #$a clc adc idx @@ -2566,7 +2566,7 @@ sprites_irq_init: { // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG100 [55] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + //SEG100 [55] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set raster line lda VIC_CONTROL and #$7f @@ -2598,7 +2598,7 @@ sprites_init: { .label s2 = $13 .label xpos = 9 .label s = 8 - //SEG108 [61] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 + //SEG108 [61] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) $f -- _deref_pbuc1=vbuc2 lda #$f sta SPRITES_ENABLE //SEG109 [62] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 @@ -2612,7 +2612,7 @@ sprites_init: { sta SPRITES_EXPAND_X //SEG112 [65] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] b1_from_sprites_init: - //SEG113 [65] phi (byte) sprites_init::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 + //SEG113 [65] phi (byte) sprites_init::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) $18+(byte/signed byte/word/signed word/dword/signed dword) $f*(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 lda #$18+$f*8 sta xpos //SEG114 [65] phi (byte) sprites_init::s#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sprites_init->sprites_init::@1#1] -- vbuz1=vbuc1 @@ -2638,7 +2638,7 @@ sprites_init: { ldy s lda #BLACK sta SPRITES_COLS,y - //SEG122 [69] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG122 [69] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 -- vbuz1=vbuz1_plus_vbuc1 lda #$18 clc adc xpos @@ -2755,19 +2755,19 @@ sprites_irq: { jmp b11 //SEG152 sprites_irq::@11 b11: - //SEG153 [92] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 -- vbuz1_eq_vbuc1_then_la1 + //SEG153 [92] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) $a) goto sprites_irq::@5 -- vbuz1_eq_vbuc1_then_la1 lda irq_cnt_1 cmp #$a beq b5 jmp b12 //SEG154 sprites_irq::@12 b12: - //SEG155 [93] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 -- vbuz1=vbuz2_plus_vbuc1 + //SEG155 [93] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $14 -- vbuz1=vbuz2_plus_vbuc1 lda #$14 clc adc irq_raster_next sta irq_raster_next_3 - //SEG156 [94] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 + //SEG156 [94] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuz2_plus_vbuc1 lda #$15 clc adc irq_sprite_ypos @@ -2812,7 +2812,7 @@ sprites_irq: { //SEG167 [101] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next_2 - //SEG168 [102] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 + //SEG168 [102] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuz2_plus_vbuc1 lda #$15 clc adc irq_sprite_ypos @@ -2825,7 +2825,7 @@ sprites_irq: { jmp b7_from_b5 //SEG170 sprites_irq::@4 b4: - //SEG171 [104] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 + //SEG171 [104] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuz2_plus_vbuc1 lda #$15 clc adc irq_raster_next @@ -2898,13 +2898,13 @@ sprites_irq: { REGISTER UPLIFT POTENTIAL REGISTERS Statement [1] (byte) render_screen_showing#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a Statement [3] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( ) always clobbers reg byte a -Statement [4] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 21 [ ] ( ) always clobbers reg byte a +Statement [4] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) $15 [ ] ( ) always clobbers reg byte a Statement [6] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0+(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( ) always clobbers reg byte a Statement [7] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a Statement [14] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:11 [ ] ) always clobbers reg byte a Statement [16] *((const byte*) CIA2_PORT_A#0) ← (const byte) main::vicSelectGfxBank1_toDd001_return#0 [ ] ( main:11 [ ] ) always clobbers reg byte a Statement [18] *((const byte*) D018#0) ← (const byte) main::toD0181_return#0 [ ] ( main:11 [ ] ) always clobbers reg byte a -Statement [20] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:11 [ ] ) always clobbers reg byte a +Statement [20] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff [ ] ( main:11 [ ] ) always clobbers reg byte a Statement [22] (byte) main::s2#0 ← (byte) main::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::s#2 main::xpos#2 main::ypos#2 main::s2#0 ] ( main:11 [ main::s#2 main::xpos#2 main::ypos#2 main::s2#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::s#2 main::s#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ main::xpos#2 main::xpos#1 ] @@ -2914,25 +2914,25 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:16 [ m Statement [24] *((const byte*) SPRITES_YPOS#0 + (byte) main::s2#0) ← (byte) main::ypos#2 [ main::s#2 main::xpos#2 main::ypos#2 ] ( main:11 [ main::s#2 main::xpos#2 main::ypos#2 ] ) always clobbers reg byte a Statement [25] (byte/signed word/word/dword/signed dword~) main::$4 ← (byte) main::s#2 - (byte/signed byte/word/signed word/dword/signed dword) 3 [ main::s#2 main::xpos#2 main::ypos#2 main::$4 ] ( main:11 [ main::s#2 main::xpos#2 main::ypos#2 main::$4 ] ) always clobbers reg byte a Statement [28] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0 + (byte) main::s#2) ← (const byte) main::toSpritePtr2_return#0 [ main::s#2 main::xpos#2 main::ypos#2 ] ( main:11 [ main::s#2 main::xpos#2 main::ypos#2 ] ) always clobbers reg byte a -Statement [29] (byte) main::xpos#1 ← (byte) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ main::s#2 main::ypos#2 main::xpos#1 ] ( main:11 [ main::s#2 main::ypos#2 main::xpos#1 ] ) always clobbers reg byte a -Statement [30] (byte) main::ypos#1 ← (byte) main::ypos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ main::s#2 main::xpos#1 main::ypos#1 ] ( main:11 [ main::s#2 main::xpos#1 main::ypos#1 ] ) always clobbers reg byte a -Statement [40] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto loop::@4 [ sin_idx#10 ] ( main:11::loop:36 [ sin_idx#10 ] ) always clobbers reg byte a +Statement [29] (byte) main::xpos#1 ← (byte) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 [ main::s#2 main::ypos#2 main::xpos#1 ] ( main:11 [ main::s#2 main::ypos#2 main::xpos#1 ] ) always clobbers reg byte a +Statement [30] (byte) main::ypos#1 ← (byte) main::ypos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 [ main::s#2 main::xpos#1 main::ypos#1 ] ( main:11 [ main::s#2 main::xpos#1 main::ypos#1 ] ) always clobbers reg byte a +Statement [40] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto loop::@4 [ sin_idx#10 ] ( main:11::loop:36 [ sin_idx#10 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ sin_idx#10 sin_idx#3 ] Statement [43] (byte~) loop::$1 ← (byte) loop::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ sin_idx#10 loop::s#2 loop::idx#2 loop::$1 ] ( main:11::loop:36 [ sin_idx#10 loop::s#2 loop::idx#2 loop::$1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:6 [ loop::s#2 loop::s#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:7 [ loop::idx#2 loop::idx#1 loop::idx#0 ] Statement [44] *((const byte*) SPRITES_YPOS#0 + (byte~) loop::$1) ← *((const byte*) SIN#0 + (byte) loop::idx#2) [ sin_idx#10 loop::s#2 loop::idx#2 ] ( main:11::loop:36 [ sin_idx#10 loop::s#2 loop::idx#2 ] ) always clobbers reg byte a -Statement [45] (byte) loop::idx#1 ← (byte) loop::idx#2 + (byte/signed byte/word/signed word/dword/signed dword) 10 [ sin_idx#10 loop::s#2 loop::idx#1 ] ( main:11::loop:36 [ sin_idx#10 loop::s#2 loop::idx#1 ] ) always clobbers reg byte a +Statement [45] (byte) loop::idx#1 ← (byte) loop::idx#2 + (byte/signed byte/word/signed word/dword/signed dword) $a [ sin_idx#10 loop::s#2 loop::idx#1 ] ( main:11::loop:36 [ sin_idx#10 loop::s#2 loop::idx#1 ] ) always clobbers reg byte a Statement [50] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:11::sprites_irq_init:34 [ ] ) always clobbers reg byte a Statement asm { ldaCIA1_INTERRUPT } always clobbers reg byte a Statement [52] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:11::sprites_irq_init:34 [ ] ) always clobbers reg byte a Statement [53] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:11::sprites_irq_init:34 [ ] ) always clobbers reg byte a Statement [54] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:11::sprites_irq_init:34 [ ] ) always clobbers reg byte a -Statement [55] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ ] ( main:11::sprites_irq_init:34 [ ] ) always clobbers reg byte a +Statement [55] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f [ ] ( main:11::sprites_irq_init:34 [ ] ) always clobbers reg byte a Statement [56] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:11::sprites_irq_init:34 [ ] ) always clobbers reg byte a Statement [57] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:11::sprites_irq_init:34 [ ] ) always clobbers reg byte a Statement [58] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:11::sprites_irq_init:34 [ ] ) always clobbers reg byte a -Statement [61] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 [ ] ( main:11::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [61] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) $f [ ] ( main:11::sprites_init:19 [ ] ) always clobbers reg byte a Statement [62] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:11::sprites_init:19 [ ] ) always clobbers reg byte a Statement [63] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:11::sprites_init:19 [ ] ) always clobbers reg byte a Statement [64] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:11::sprites_init:19 [ ] ) always clobbers reg byte a @@ -2941,79 +2941,79 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:8 [ sp Removing always clobbered register reg byte a as potential for zp ZP_BYTE:9 [ sprites_init::xpos#2 sprites_init::xpos#1 ] Statement [67] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:11::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a Statement [68] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:11::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a -Statement [69] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ sprites_init::s#2 sprites_init::xpos#1 ] ( main:11::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a +Statement [69] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 [ sprites_init::s#2 sprites_init::xpos#1 ] ( main:11::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a Statement [81] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ( [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ) always clobbers reg byte a Statement [83] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:23 [ sprites_irq::ptr#0 ] Statement [90] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte y Statement [91] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte a -Statement [92] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a -Statement [93] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a -Statement [94] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a +Statement [92] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) $a) goto sprites_irq::@5 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a +Statement [93] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $14 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a +Statement [94] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [ irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a Statement [95] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#3 ] ( [ irq_raster_next#3 ] ) always clobbers reg byte a Statement [97] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 [ ] ( [ ] ) always clobbers reg byte a Statement [98] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a Statement [99] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y Statement [100] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a Statement [101] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a -Statement [102] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a +Statement [102] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [ irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a Statement [103] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#2 ] ( [ irq_raster_next#2 ] ) always clobbers reg byte a -Statement [104] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [104] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a Statement [105] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a Statement [107] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a Statement [1] (byte) render_screen_showing#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a Statement [3] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( ) always clobbers reg byte a -Statement [4] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 21 [ ] ( ) always clobbers reg byte a +Statement [4] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) $15 [ ] ( ) always clobbers reg byte a Statement [6] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0+(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( ) always clobbers reg byte a Statement [7] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a Statement [14] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:11 [ ] ) always clobbers reg byte a Statement [16] *((const byte*) CIA2_PORT_A#0) ← (const byte) main::vicSelectGfxBank1_toDd001_return#0 [ ] ( main:11 [ ] ) always clobbers reg byte a Statement [18] *((const byte*) D018#0) ← (const byte) main::toD0181_return#0 [ ] ( main:11 [ ] ) always clobbers reg byte a -Statement [20] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:11 [ ] ) always clobbers reg byte a +Statement [20] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff [ ] ( main:11 [ ] ) always clobbers reg byte a Statement [22] (byte) main::s2#0 ← (byte) main::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::s#2 main::xpos#2 main::ypos#2 main::s2#0 ] ( main:11 [ main::s#2 main::xpos#2 main::ypos#2 main::s2#0 ] ) always clobbers reg byte a Statement [23] *((const byte*) SPRITES_XPOS#0 + (byte) main::s2#0) ← (byte) main::xpos#2 [ main::s#2 main::xpos#2 main::ypos#2 main::s2#0 ] ( main:11 [ main::s#2 main::xpos#2 main::ypos#2 main::s2#0 ] ) always clobbers reg byte a Statement [24] *((const byte*) SPRITES_YPOS#0 + (byte) main::s2#0) ← (byte) main::ypos#2 [ main::s#2 main::xpos#2 main::ypos#2 ] ( main:11 [ main::s#2 main::xpos#2 main::ypos#2 ] ) always clobbers reg byte a Statement [25] (byte/signed word/word/dword/signed dword~) main::$4 ← (byte) main::s#2 - (byte/signed byte/word/signed word/dword/signed dword) 3 [ main::s#2 main::xpos#2 main::ypos#2 main::$4 ] ( main:11 [ main::s#2 main::xpos#2 main::ypos#2 main::$4 ] ) always clobbers reg byte a Statement [28] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0 + (byte) main::s#2) ← (const byte) main::toSpritePtr2_return#0 [ main::s#2 main::xpos#2 main::ypos#2 ] ( main:11 [ main::s#2 main::xpos#2 main::ypos#2 ] ) always clobbers reg byte a -Statement [29] (byte) main::xpos#1 ← (byte) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ main::s#2 main::ypos#2 main::xpos#1 ] ( main:11 [ main::s#2 main::ypos#2 main::xpos#1 ] ) always clobbers reg byte a -Statement [30] (byte) main::ypos#1 ← (byte) main::ypos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ main::s#2 main::xpos#1 main::ypos#1 ] ( main:11 [ main::s#2 main::xpos#1 main::ypos#1 ] ) always clobbers reg byte a -Statement [40] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto loop::@4 [ sin_idx#10 ] ( main:11::loop:36 [ sin_idx#10 ] ) always clobbers reg byte a +Statement [29] (byte) main::xpos#1 ← (byte) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 [ main::s#2 main::ypos#2 main::xpos#1 ] ( main:11 [ main::s#2 main::ypos#2 main::xpos#1 ] ) always clobbers reg byte a +Statement [30] (byte) main::ypos#1 ← (byte) main::ypos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 [ main::s#2 main::xpos#1 main::ypos#1 ] ( main:11 [ main::s#2 main::xpos#1 main::ypos#1 ] ) always clobbers reg byte a +Statement [40] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto loop::@4 [ sin_idx#10 ] ( main:11::loop:36 [ sin_idx#10 ] ) always clobbers reg byte a Statement [43] (byte~) loop::$1 ← (byte) loop::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ sin_idx#10 loop::s#2 loop::idx#2 loop::$1 ] ( main:11::loop:36 [ sin_idx#10 loop::s#2 loop::idx#2 loop::$1 ] ) always clobbers reg byte a Statement [44] *((const byte*) SPRITES_YPOS#0 + (byte~) loop::$1) ← *((const byte*) SIN#0 + (byte) loop::idx#2) [ sin_idx#10 loop::s#2 loop::idx#2 ] ( main:11::loop:36 [ sin_idx#10 loop::s#2 loop::idx#2 ] ) always clobbers reg byte a -Statement [45] (byte) loop::idx#1 ← (byte) loop::idx#2 + (byte/signed byte/word/signed word/dword/signed dword) 10 [ sin_idx#10 loop::s#2 loop::idx#1 ] ( main:11::loop:36 [ sin_idx#10 loop::s#2 loop::idx#1 ] ) always clobbers reg byte a +Statement [45] (byte) loop::idx#1 ← (byte) loop::idx#2 + (byte/signed byte/word/signed word/dword/signed dword) $a [ sin_idx#10 loop::s#2 loop::idx#1 ] ( main:11::loop:36 [ sin_idx#10 loop::s#2 loop::idx#1 ] ) always clobbers reg byte a Statement [50] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:11::sprites_irq_init:34 [ ] ) always clobbers reg byte a Statement asm { ldaCIA1_INTERRUPT } always clobbers reg byte a Statement [52] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:11::sprites_irq_init:34 [ ] ) always clobbers reg byte a Statement [53] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:11::sprites_irq_init:34 [ ] ) always clobbers reg byte a Statement [54] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:11::sprites_irq_init:34 [ ] ) always clobbers reg byte a -Statement [55] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ ] ( main:11::sprites_irq_init:34 [ ] ) always clobbers reg byte a +Statement [55] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f [ ] ( main:11::sprites_irq_init:34 [ ] ) always clobbers reg byte a Statement [56] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:11::sprites_irq_init:34 [ ] ) always clobbers reg byte a Statement [57] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:11::sprites_irq_init:34 [ ] ) always clobbers reg byte a Statement [58] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:11::sprites_irq_init:34 [ ] ) always clobbers reg byte a -Statement [61] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 [ ] ( main:11::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [61] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) $f [ ] ( main:11::sprites_init:19 [ ] ) always clobbers reg byte a Statement [62] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:11::sprites_init:19 [ ] ) always clobbers reg byte a Statement [63] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:11::sprites_init:19 [ ] ) always clobbers reg byte a Statement [64] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:11::sprites_init:19 [ ] ) always clobbers reg byte a Statement [66] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ( main:11::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ) always clobbers reg byte a Statement [67] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:11::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a Statement [68] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:11::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a -Statement [69] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ sprites_init::s#2 sprites_init::xpos#1 ] ( main:11::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a +Statement [69] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 [ sprites_init::s#2 sprites_init::xpos#1 ] ( main:11::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a Statement [81] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ( [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ) always clobbers reg byte a Statement [83] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ) always clobbers reg byte a Statement [90] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte y Statement [91] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte a -Statement [92] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a -Statement [93] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a -Statement [94] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a +Statement [92] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) $a) goto sprites_irq::@5 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a +Statement [93] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $14 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a +Statement [94] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [ irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a Statement [95] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#3 ] ( [ irq_raster_next#3 ] ) always clobbers reg byte a Statement [97] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 [ ] ( [ ] ) always clobbers reg byte a Statement [98] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a Statement [99] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y Statement [100] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a Statement [101] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a -Statement [102] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a +Statement [102] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [ irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a Statement [103] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#2 ] ( [ irq_raster_next#2 ] ) always clobbers reg byte a -Statement [104] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [104] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a Statement [105] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a Statement [107] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ main::s#2 main::s#1 ] : zp ZP_BYTE:2 , reg byte x , reg byte y , @@ -3231,7 +3231,7 @@ b5: // The raster line of the next IRQ lda #IRQ_RASTER_FIRST sta irq_raster_next -//SEG9 [4] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuc1 +//SEG9 [4] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuc1 // Y-pos of the sprites on the next IRQ lda #SPRITES_FIRST_YPOS+$15 sta irq_sprite_ypos @@ -3310,15 +3310,15 @@ main: { jmp b6 //SEG36 main::@6 b6: - //SEG37 [20] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 -- _deref_pbuc1=vbuc2 + //SEG37 [20] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff -- _deref_pbuc1=vbuc2 lda #$ff sta SPRITES_ENABLE //SEG38 [21] phi from main::@6 to main::@1 [phi:main::@6->main::@1] b1_from_b6: - //SEG39 [21] phi (byte) main::ypos#2 = (byte/signed byte/word/signed word/dword/signed dword) 50 [phi:main::@6->main::@1#0] -- vbuz1=vbuc1 + //SEG39 [21] phi (byte) main::ypos#2 = (byte/signed byte/word/signed word/dword/signed dword) $32 [phi:main::@6->main::@1#0] -- vbuz1=vbuc1 lda #$32 sta ypos - //SEG40 [21] phi (byte) main::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) 24 [phi:main::@6->main::@1#1] -- vbuz1=vbuc1 + //SEG40 [21] phi (byte) main::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) $18 [phi:main::@6->main::@1#1] -- vbuz1=vbuc1 lda #$18 sta xpos //SEG41 [21] phi (byte) main::s#2 = (byte/signed byte/word/signed word/dword/signed dword) 4 [phi:main::@6->main::@1#2] -- vbuyy=vbuc1 @@ -3359,12 +3359,12 @@ main: { //SEG55 [28] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0 + (byte) main::s#2) ← (const byte) main::toSpritePtr2_return#0 -- pbuc1_derefidx_vbuyy=vbuc2 lda #toSpritePtr2_return sta PLAYFIELD_SPRITE_PTRS_1,y - //SEG56 [29] (byte) main::xpos#1 ← (byte) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG56 [29] (byte) main::xpos#1 ← (byte) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 -- vbuz1=vbuz1_plus_vbuc1 lda #$18 clc adc xpos sta xpos - //SEG57 [30] (byte) main::ypos#1 ← (byte) main::ypos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG57 [30] (byte) main::ypos#1 ← (byte) main::ypos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 -- vbuz1=vbuz1_plus_vbuc1 lda #$18 clc adc ypos @@ -3411,7 +3411,7 @@ loop: { jmp b4 //SEG73 loop::@4 b4: - //SEG74 [40] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto loop::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG74 [40] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto loop::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -3443,7 +3443,7 @@ loop: { lda SIN,y ldy _1 sta SPRITES_YPOS,y - //SEG86 [45] (byte) loop::idx#1 ← (byte) loop::idx#2 + (byte/signed byte/word/signed word/dword/signed dword) 10 -- vbuz1=vbuz1_plus_vbuc1 + //SEG86 [45] (byte) loop::idx#1 ← (byte) loop::idx#2 + (byte/signed byte/word/signed word/dword/signed dword) $a -- vbuz1=vbuz1_plus_vbuc1 lda #$a clc adc idx @@ -3485,7 +3485,7 @@ sprites_irq_init: { // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG100 [55] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + //SEG100 [55] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set raster line lda VIC_CONTROL and #$7f @@ -3515,7 +3515,7 @@ sprites_irq_init: { // Setup the sprites sprites_init: { .label xpos = 2 - //SEG108 [61] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 + //SEG108 [61] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) $f -- _deref_pbuc1=vbuc2 lda #$f sta SPRITES_ENABLE //SEG109 [62] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 @@ -3529,7 +3529,7 @@ sprites_init: { sta SPRITES_EXPAND_X //SEG112 [65] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] b1_from_sprites_init: - //SEG113 [65] phi (byte) sprites_init::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 + //SEG113 [65] phi (byte) sprites_init::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) $18+(byte/signed byte/word/signed word/dword/signed dword) $f*(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 lda #$18+$f*8 sta xpos //SEG114 [65] phi (byte) sprites_init::s#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sprites_init->sprites_init::@1#1] -- vbuxx=vbuc1 @@ -3552,7 +3552,7 @@ sprites_init: { //SEG121 [68] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #BLACK sta SPRITES_COLS,x - //SEG122 [69] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG122 [69] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 -- vbuz1=vbuz1_plus_vbuc1 lda #$18 clc adc xpos @@ -3645,19 +3645,19 @@ sprites_irq: { jmp b11 //SEG152 sprites_irq::@11 b11: - //SEG153 [92] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 -- vbuz1_eq_vbuc1_then_la1 + //SEG153 [92] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) $a) goto sprites_irq::@5 -- vbuz1_eq_vbuc1_then_la1 lda irq_cnt cmp #$a beq b5 jmp b12 //SEG154 sprites_irq::@12 b12: - //SEG155 [93] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 -- vbuz1=vbuz1_plus_vbuc1 + //SEG155 [93] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $14 -- vbuz1=vbuz1_plus_vbuc1 lda #$14 clc adc irq_raster_next sta irq_raster_next - //SEG156 [94] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG156 [94] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_sprite_ypos @@ -3700,7 +3700,7 @@ sprites_irq: { //SEG167 [101] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next - //SEG168 [102] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG168 [102] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_sprite_ypos @@ -3713,7 +3713,7 @@ sprites_irq: { jmp b7_from_b5 //SEG170 sprites_irq::@4 b4: - //SEG171 [104] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG171 [104] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_raster_next @@ -3907,42 +3907,42 @@ FINAL SYMBOL TABLE (byte) BROWN (byte*) CHARGEN (byte*) CIA1_INTERRUPT -(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) 56333 +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) $dc0d (byte*) CIA1_PORT_A (byte*) CIA1_PORT_A_DDR (byte*) CIA1_PORT_B (byte*) CIA1_PORT_B_DDR (byte*) CIA2_INTERRUPT (byte*) CIA2_PORT_A -(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) 56576 +(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) $dd00 (byte*) CIA2_PORT_A_DDR -(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56578 +(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) $dd02 (byte*) CIA2_PORT_B (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR -(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) 127 +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) $7f (byte*) COLS (byte) CYAN (byte*) D011 (byte*) D016 (byte*) D018 -(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) 53272 +(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) $d018 (byte) DARK_GREY (byte) GREEN (byte) GREY (void()**) HARDWARE_IRQ -(const void()**) HARDWARE_IRQ#0 HARDWARE_IRQ = ((void()**))(word/dword/signed dword) 65534 +(const void()**) HARDWARE_IRQ#0 HARDWARE_IRQ = ((void()**))(word/dword/signed dword) $fffe (byte) IRQ_COLLISION_BG (byte) IRQ_COLLISION_SPRITE (byte*) IRQ_ENABLE -(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) 53274 +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) $d01a (byte) IRQ_LIGHTPEN (byte) IRQ_RASTER (const byte) IRQ_RASTER#0 IRQ_RASTER = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_RASTER_FIRST -(const byte) IRQ_RASTER_FIRST#0 IRQ_RASTER_FIRST = (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 19 +(const byte) IRQ_RASTER_FIRST#0 IRQ_RASTER_FIRST = (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) $13 (byte*) IRQ_STATUS -(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) 53273 +(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) $d019 (void()**) KERNEL_IRQ (byte*) LIGHTPEN_X (byte*) LIGHTPEN_Y @@ -3952,19 +3952,19 @@ FINAL SYMBOL TABLE (byte) ORANGE (byte) PINK (byte*) PLAYFIELD_CHARSET -(const byte*) PLAYFIELD_CHARSET#0 PLAYFIELD_CHARSET = ((byte*))(word/signed word/dword/signed dword) 10240 +(const byte*) PLAYFIELD_CHARSET#0 PLAYFIELD_CHARSET = ((byte*))(word/signed word/dword/signed dword) $2800 (byte*) PLAYFIELD_COLORS_ORIGINAL (byte) PLAYFIELD_COLS -(const byte) PLAYFIELD_COLS#0 PLAYFIELD_COLS = (byte/signed byte/word/signed word/dword/signed dword) 10 +(const byte) PLAYFIELD_COLS#0 PLAYFIELD_COLS = (byte/signed byte/word/signed word/dword/signed dword) $a (byte) PLAYFIELD_LINES -(const byte) PLAYFIELD_LINES#0 PLAYFIELD_LINES = (byte/signed byte/word/signed word/dword/signed dword) 22 +(const byte) PLAYFIELD_LINES#0 PLAYFIELD_LINES = (byte/signed byte/word/signed word/dword/signed dword) $16 (byte*) PLAYFIELD_SCREEN_1 -(const byte*) PLAYFIELD_SCREEN_1#0 PLAYFIELD_SCREEN_1 = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) PLAYFIELD_SCREEN_1#0 PLAYFIELD_SCREEN_1 = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) PLAYFIELD_SCREEN_2 -(const byte*) PLAYFIELD_SCREEN_2#0 PLAYFIELD_SCREEN_2 = ((byte*))(word/signed word/dword/signed dword) 11264 +(const byte*) PLAYFIELD_SCREEN_2#0 PLAYFIELD_SCREEN_2 = ((byte*))(word/signed word/dword/signed dword) $2c00 (byte*) PLAYFIELD_SCREEN_ORIGINAL (byte*) PLAYFIELD_SPRITES -(const byte*) PLAYFIELD_SPRITES#0 PLAYFIELD_SPRITES = ((byte*))(word/signed word/dword/signed dword) 8192 +(const byte*) PLAYFIELD_SPRITES#0 PLAYFIELD_SPRITES = ((byte*))(word/signed word/dword/signed dword) $2000 (byte*) PLAYFIELD_SPRITE_PTRS_1 (const byte*) PLAYFIELD_SPRITE_PTRS_1#0 PLAYFIELD_SPRITE_PTRS_1 = (const byte*) PLAYFIELD_SCREEN_1#0+(const word) SPRITE_PTRS#0 (byte*) PLAYFIELD_SPRITE_PTRS_2 @@ -3980,40 +3980,40 @@ FINAL SYMBOL TABLE (byte) PROCPORT_RAM_ALL (byte) PROCPORT_RAM_CHARROM (byte) PROCPORT_RAM_IO -(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) 53 +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) $35 (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SIN -(const byte*) SIN#0 SIN = ((byte*))(word/signed word/dword/signed dword) 5120 +(const byte*) SIN#0 SIN = ((byte*))(word/signed word/dword/signed dword) $1400 (byte*) SIN_SPRITE -(const byte*) SIN_SPRITE#0 SIN_SPRITE = ((byte*))(word/signed word/dword/signed dword) 10240 +(const byte*) SIN_SPRITE#0 SIN_SPRITE = ((byte*))(word/signed word/dword/signed dword) $2800 (byte*) SPRITES_COLS -(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) 53287 +(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) $d027 (byte*) SPRITES_ENABLE -(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) 53269 +(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) $d015 (byte*) SPRITES_EXPAND_X -(const byte*) SPRITES_EXPAND_X#0 SPRITES_EXPAND_X = ((byte*))(word/dword/signed dword) 53277 +(const byte*) SPRITES_EXPAND_X#0 SPRITES_EXPAND_X = ((byte*))(word/dword/signed dword) $d01d (byte*) SPRITES_EXPAND_Y -(const byte*) SPRITES_EXPAND_Y#0 SPRITES_EXPAND_Y = ((byte*))(word/dword/signed dword) 53271 +(const byte*) SPRITES_EXPAND_Y#0 SPRITES_EXPAND_Y = ((byte*))(word/dword/signed dword) $d017 (byte) SPRITES_FIRST_YPOS -(const byte) SPRITES_FIRST_YPOS#0 SPRITES_FIRST_YPOS = (byte/signed byte/word/signed word/dword/signed dword) 49 +(const byte) SPRITES_FIRST_YPOS#0 SPRITES_FIRST_YPOS = (byte/signed byte/word/signed word/dword/signed dword) $31 (byte*) SPRITES_MC -(const byte*) SPRITES_MC#0 SPRITES_MC = ((byte*))(word/dword/signed dword) 53276 +(const byte*) SPRITES_MC#0 SPRITES_MC = ((byte*))(word/dword/signed dword) $d01c (byte*) SPRITES_MC1 (byte*) SPRITES_MC2 (byte*) SPRITES_PRIORITY (byte*) SPRITES_XMSB (byte*) SPRITES_XPOS -(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) 53248 +(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) $d000 (byte*) SPRITES_YPOS -(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) 53249 +(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) $d001 (word) SPRITE_PTRS -(const word) SPRITE_PTRS#0 SPRITE_PTRS = (word/signed word/dword/signed dword) 1016 +(const word) SPRITE_PTRS#0 SPRITE_PTRS = (word/signed word/dword/signed dword) $3f8 (byte) VIC_BMM (byte*) VIC_CONTROL -(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) 53265 +(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) $d011 (byte*) VIC_CONTROL2 (byte) VIC_CSEL (byte) VIC_DEN @@ -4092,7 +4092,7 @@ FINAL SYMBOL TABLE (byte~) main::toD0181_$8 (byte*) main::toD0181_gfx (byte) main::toD0181_return -(const byte) main::toD0181_return#0 toD0181_return = >((word))(const byte*) PLAYFIELD_SCREEN_1#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte) main::toD0181_return#0 toD0181_return = >((word))(const byte*) PLAYFIELD_SCREEN_1#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) $f (byte*) main::toD0181_screen (label) main::toSpritePtr2 (word~) main::toSpritePtr2_$0 @@ -4292,7 +4292,7 @@ bbegin: // The raster line of the next IRQ lda #IRQ_RASTER_FIRST sta irq_raster_next -//SEG9 [4] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuc1 +//SEG9 [4] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuc1 // Y-pos of the sprites on the next IRQ lda #SPRITES_FIRST_YPOS+$15 sta irq_sprite_ypos @@ -4343,14 +4343,14 @@ main: { //SEG35 [19] call sprites_init jsr sprites_init //SEG36 main::@6 - //SEG37 [20] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 -- _deref_pbuc1=vbuc2 + //SEG37 [20] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff -- _deref_pbuc1=vbuc2 lda #$ff sta SPRITES_ENABLE //SEG38 [21] phi from main::@6 to main::@1 [phi:main::@6->main::@1] - //SEG39 [21] phi (byte) main::ypos#2 = (byte/signed byte/word/signed word/dword/signed dword) 50 [phi:main::@6->main::@1#0] -- vbuz1=vbuc1 + //SEG39 [21] phi (byte) main::ypos#2 = (byte/signed byte/word/signed word/dword/signed dword) $32 [phi:main::@6->main::@1#0] -- vbuz1=vbuc1 lda #$32 sta ypos - //SEG40 [21] phi (byte) main::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) 24 [phi:main::@6->main::@1#1] -- vbuz1=vbuc1 + //SEG40 [21] phi (byte) main::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) $18 [phi:main::@6->main::@1#1] -- vbuz1=vbuc1 lda #$18 sta xpos //SEG41 [21] phi (byte) main::s#2 = (byte/signed byte/word/signed word/dword/signed dword) 4 [phi:main::@6->main::@1#2] -- vbuyy=vbuc1 @@ -4383,12 +4383,12 @@ main: { //SEG55 [28] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0 + (byte) main::s#2) ← (const byte) main::toSpritePtr2_return#0 -- pbuc1_derefidx_vbuyy=vbuc2 lda #toSpritePtr2_return sta PLAYFIELD_SPRITE_PTRS_1,y - //SEG56 [29] (byte) main::xpos#1 ← (byte) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG56 [29] (byte) main::xpos#1 ← (byte) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 -- vbuz1=vbuz1_plus_vbuc1 lda #$18 clc adc xpos sta xpos - //SEG57 [30] (byte) main::ypos#1 ← (byte) main::ypos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG57 [30] (byte) main::ypos#1 ← (byte) main::ypos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 -- vbuz1=vbuz1_plus_vbuc1 lda #$18 clc adc ypos @@ -4422,7 +4422,7 @@ loop: { //SEG72 loop::@1 //SEG73 loop::@4 b4: - //SEG74 [40] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto loop::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG74 [40] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto loop::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -4448,7 +4448,7 @@ loop: { lda SIN,y ldy _1 sta SPRITES_YPOS,y - //SEG86 [45] (byte) loop::idx#1 ← (byte) loop::idx#2 + (byte/signed byte/word/signed word/dword/signed dword) 10 -- vbuz1=vbuz1_plus_vbuc1 + //SEG86 [45] (byte) loop::idx#1 ← (byte) loop::idx#2 + (byte/signed byte/word/signed word/dword/signed dword) $a -- vbuz1=vbuz1_plus_vbuc1 lda #$a clc adc idx @@ -4487,7 +4487,7 @@ sprites_irq_init: { // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG100 [55] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + //SEG100 [55] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set raster line lda VIC_CONTROL and #$7f @@ -4515,7 +4515,7 @@ sprites_irq_init: { // Setup the sprites sprites_init: { .label xpos = 2 - //SEG108 [61] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 + //SEG108 [61] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) $f -- _deref_pbuc1=vbuc2 lda #$f sta SPRITES_ENABLE //SEG109 [62] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 @@ -4526,7 +4526,7 @@ sprites_init: { //SEG111 [64] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 sta SPRITES_EXPAND_X //SEG112 [65] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] - //SEG113 [65] phi (byte) sprites_init::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 + //SEG113 [65] phi (byte) sprites_init::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) $18+(byte/signed byte/word/signed word/dword/signed dword) $f*(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 lda #$18+$f*8 sta xpos //SEG114 [65] phi (byte) sprites_init::s#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sprites_init->sprites_init::@1#1] -- vbuxx=vbuc1 @@ -4546,7 +4546,7 @@ sprites_init: { //SEG121 [68] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #BLACK sta SPRITES_COLS,x - //SEG122 [69] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG122 [69] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 -- vbuz1=vbuz1_plus_vbuc1 lda #$18 clc adc xpos @@ -4629,16 +4629,16 @@ sprites_irq: { cmp #9 beq b4 //SEG152 sprites_irq::@11 - //SEG153 [92] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 -- vbuz1_eq_vbuc1_then_la1 + //SEG153 [92] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) $a) goto sprites_irq::@5 -- vbuz1_eq_vbuc1_then_la1 cmp #$a beq b5 //SEG154 sprites_irq::@12 - //SEG155 [93] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 -- vbuz1=vbuz1_plus_vbuc1 + //SEG155 [93] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $14 -- vbuz1=vbuz1_plus_vbuc1 lda #$14 clc adc irq_raster_next sta irq_raster_next - //SEG156 [94] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG156 [94] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_sprite_ypos @@ -4675,7 +4675,7 @@ sprites_irq: { //SEG167 [101] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next - //SEG168 [102] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG168 [102] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_sprite_ypos @@ -4688,7 +4688,7 @@ sprites_irq: { jmp b7 //SEG170 sprites_irq::@4 b4: - //SEG171 [104] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG171 [104] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_raster_next diff --git a/src/test/ref/complex/tetris/test-sprites.sym b/src/test/ref/complex/tetris/test-sprites.sym index d6a41b8e3..c4cff1109 100644 --- a/src/test/ref/complex/tetris/test-sprites.sym +++ b/src/test/ref/complex/tetris/test-sprites.sym @@ -17,42 +17,42 @@ (byte) BROWN (byte*) CHARGEN (byte*) CIA1_INTERRUPT -(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) 56333 +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) $dc0d (byte*) CIA1_PORT_A (byte*) CIA1_PORT_A_DDR (byte*) CIA1_PORT_B (byte*) CIA1_PORT_B_DDR (byte*) CIA2_INTERRUPT (byte*) CIA2_PORT_A -(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) 56576 +(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) $dd00 (byte*) CIA2_PORT_A_DDR -(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56578 +(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) $dd02 (byte*) CIA2_PORT_B (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR -(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) 127 +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) $7f (byte*) COLS (byte) CYAN (byte*) D011 (byte*) D016 (byte*) D018 -(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) 53272 +(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) $d018 (byte) DARK_GREY (byte) GREEN (byte) GREY (void()**) HARDWARE_IRQ -(const void()**) HARDWARE_IRQ#0 HARDWARE_IRQ = ((void()**))(word/dword/signed dword) 65534 +(const void()**) HARDWARE_IRQ#0 HARDWARE_IRQ = ((void()**))(word/dword/signed dword) $fffe (byte) IRQ_COLLISION_BG (byte) IRQ_COLLISION_SPRITE (byte*) IRQ_ENABLE -(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) 53274 +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) $d01a (byte) IRQ_LIGHTPEN (byte) IRQ_RASTER (const byte) IRQ_RASTER#0 IRQ_RASTER = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_RASTER_FIRST -(const byte) IRQ_RASTER_FIRST#0 IRQ_RASTER_FIRST = (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 19 +(const byte) IRQ_RASTER_FIRST#0 IRQ_RASTER_FIRST = (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) $13 (byte*) IRQ_STATUS -(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) 53273 +(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) $d019 (void()**) KERNEL_IRQ (byte*) LIGHTPEN_X (byte*) LIGHTPEN_Y @@ -62,19 +62,19 @@ (byte) ORANGE (byte) PINK (byte*) PLAYFIELD_CHARSET -(const byte*) PLAYFIELD_CHARSET#0 PLAYFIELD_CHARSET = ((byte*))(word/signed word/dword/signed dword) 10240 +(const byte*) PLAYFIELD_CHARSET#0 PLAYFIELD_CHARSET = ((byte*))(word/signed word/dword/signed dword) $2800 (byte*) PLAYFIELD_COLORS_ORIGINAL (byte) PLAYFIELD_COLS -(const byte) PLAYFIELD_COLS#0 PLAYFIELD_COLS = (byte/signed byte/word/signed word/dword/signed dword) 10 +(const byte) PLAYFIELD_COLS#0 PLAYFIELD_COLS = (byte/signed byte/word/signed word/dword/signed dword) $a (byte) PLAYFIELD_LINES -(const byte) PLAYFIELD_LINES#0 PLAYFIELD_LINES = (byte/signed byte/word/signed word/dword/signed dword) 22 +(const byte) PLAYFIELD_LINES#0 PLAYFIELD_LINES = (byte/signed byte/word/signed word/dword/signed dword) $16 (byte*) PLAYFIELD_SCREEN_1 -(const byte*) PLAYFIELD_SCREEN_1#0 PLAYFIELD_SCREEN_1 = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) PLAYFIELD_SCREEN_1#0 PLAYFIELD_SCREEN_1 = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) PLAYFIELD_SCREEN_2 -(const byte*) PLAYFIELD_SCREEN_2#0 PLAYFIELD_SCREEN_2 = ((byte*))(word/signed word/dword/signed dword) 11264 +(const byte*) PLAYFIELD_SCREEN_2#0 PLAYFIELD_SCREEN_2 = ((byte*))(word/signed word/dword/signed dword) $2c00 (byte*) PLAYFIELD_SCREEN_ORIGINAL (byte*) PLAYFIELD_SPRITES -(const byte*) PLAYFIELD_SPRITES#0 PLAYFIELD_SPRITES = ((byte*))(word/signed word/dword/signed dword) 8192 +(const byte*) PLAYFIELD_SPRITES#0 PLAYFIELD_SPRITES = ((byte*))(word/signed word/dword/signed dword) $2000 (byte*) PLAYFIELD_SPRITE_PTRS_1 (const byte*) PLAYFIELD_SPRITE_PTRS_1#0 PLAYFIELD_SPRITE_PTRS_1 = (const byte*) PLAYFIELD_SCREEN_1#0+(const word) SPRITE_PTRS#0 (byte*) PLAYFIELD_SPRITE_PTRS_2 @@ -90,40 +90,40 @@ (byte) PROCPORT_RAM_ALL (byte) PROCPORT_RAM_CHARROM (byte) PROCPORT_RAM_IO -(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) 53 +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) $35 (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SIN -(const byte*) SIN#0 SIN = ((byte*))(word/signed word/dword/signed dword) 5120 +(const byte*) SIN#0 SIN = ((byte*))(word/signed word/dword/signed dword) $1400 (byte*) SIN_SPRITE -(const byte*) SIN_SPRITE#0 SIN_SPRITE = ((byte*))(word/signed word/dword/signed dword) 10240 +(const byte*) SIN_SPRITE#0 SIN_SPRITE = ((byte*))(word/signed word/dword/signed dword) $2800 (byte*) SPRITES_COLS -(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) 53287 +(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) $d027 (byte*) SPRITES_ENABLE -(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) 53269 +(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) $d015 (byte*) SPRITES_EXPAND_X -(const byte*) SPRITES_EXPAND_X#0 SPRITES_EXPAND_X = ((byte*))(word/dword/signed dword) 53277 +(const byte*) SPRITES_EXPAND_X#0 SPRITES_EXPAND_X = ((byte*))(word/dword/signed dword) $d01d (byte*) SPRITES_EXPAND_Y -(const byte*) SPRITES_EXPAND_Y#0 SPRITES_EXPAND_Y = ((byte*))(word/dword/signed dword) 53271 +(const byte*) SPRITES_EXPAND_Y#0 SPRITES_EXPAND_Y = ((byte*))(word/dword/signed dword) $d017 (byte) SPRITES_FIRST_YPOS -(const byte) SPRITES_FIRST_YPOS#0 SPRITES_FIRST_YPOS = (byte/signed byte/word/signed word/dword/signed dword) 49 +(const byte) SPRITES_FIRST_YPOS#0 SPRITES_FIRST_YPOS = (byte/signed byte/word/signed word/dword/signed dword) $31 (byte*) SPRITES_MC -(const byte*) SPRITES_MC#0 SPRITES_MC = ((byte*))(word/dword/signed dword) 53276 +(const byte*) SPRITES_MC#0 SPRITES_MC = ((byte*))(word/dword/signed dword) $d01c (byte*) SPRITES_MC1 (byte*) SPRITES_MC2 (byte*) SPRITES_PRIORITY (byte*) SPRITES_XMSB (byte*) SPRITES_XPOS -(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) 53248 +(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) $d000 (byte*) SPRITES_YPOS -(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) 53249 +(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) $d001 (word) SPRITE_PTRS -(const word) SPRITE_PTRS#0 SPRITE_PTRS = (word/signed word/dword/signed dword) 1016 +(const word) SPRITE_PTRS#0 SPRITE_PTRS = (word/signed word/dword/signed dword) $3f8 (byte) VIC_BMM (byte*) VIC_CONTROL -(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) 53265 +(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) $d011 (byte*) VIC_CONTROL2 (byte) VIC_CSEL (byte) VIC_DEN @@ -202,7 +202,7 @@ (byte~) main::toD0181_$8 (byte*) main::toD0181_gfx (byte) main::toD0181_return -(const byte) main::toD0181_return#0 toD0181_return = >((word))(const byte*) PLAYFIELD_SCREEN_1#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte) main::toD0181_return#0 toD0181_return = >((word))(const byte*) PLAYFIELD_SCREEN_1#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) $f (byte*) main::toD0181_screen (label) main::toSpritePtr2 (word~) main::toSpritePtr2_$0 diff --git a/src/test/ref/complex/tetris/tetris.cfg b/src/test/ref/complex/tetris/tetris.cfg index 5bab28362..7f706fe95 100644 --- a/src/test/ref/complex/tetris/tetris.cfg +++ b/src/test/ref/complex/tetris/tetris.cfg @@ -37,7 +37,7 @@ to:@24 @24: scope:[] from @23 [6] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 - [7] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 21 + [7] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) $15 to:toSpritePtr1 toSpritePtr1: scope:[] from @24 [8] phi() @@ -112,11 +112,11 @@ main::@1: scope:[main] from main::@11 main::@33 main::@42 [38] (byte) current_piece_char#10 ← phi( main::@11/(byte) current_piece_char#16 main::@33/(byte) current_piece_char#5 main::@42/(byte) current_piece_char#16 ) [38] (byte*) current_piece#10 ← phi( main::@11/(byte*) current_piece#15 main::@33/(byte*~) current_piece#96 main::@42/(byte*) current_piece#15 ) [38] (byte) current_movedown_slow#14 ← phi( main::@11/(byte) current_movedown_slow#21 main::@33/(byte) current_movedown_slow#1 main::@42/(byte) current_movedown_slow#21 ) - [38] (byte) render_screen_render#18 ← phi( main::@33/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@42/(byte) render_screen_render#11 ) + [38] (byte) render_screen_render#18 ← phi( main::@33/(byte/signed byte/word/signed word/dword/signed dword) $40 main::@42/(byte) render_screen_render#11 ) [38] (byte) render_screen_show#16 ← phi( main::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@42/(byte) render_screen_show#13 ) to:main::@4 main::@4: scope:[main] from main::@1 main::@4 - [39] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 + [39] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 to:main::@6 main::@6: scope:[main] from main::@4 [40] phi() @@ -175,8 +175,8 @@ main::@42: scope:[main] from main::@41 [69] call render_screen_swap to:main::@1 render_screen_swap: scope:[render_screen_swap] from main::@42 - [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 - [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 + [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte/signed byte/word/signed word/dword/signed dword) $40 + [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) $40 to:render_screen_swap::@return render_screen_swap::@return: scope:[render_screen_swap] from render_screen_swap [72] return @@ -237,7 +237,7 @@ render_bcd::@2: scope:[render_bcd] from render_bcd to:render_bcd::@1 render_bcd::@1: scope:[render_bcd] from render_bcd render_bcd::@2 [102] (byte*) render_bcd::screen_pos#3 ← phi( render_bcd/(byte*) render_bcd::screen_pos#0 render_bcd::@2/(byte*) render_bcd::screen_pos#2 ) - [103] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [103] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) $f [104] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 [105] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 [106] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 @@ -247,7 +247,7 @@ render_bcd::@return: scope:[render_bcd] from render_bcd::@1 to:@return render_next: scope:[render_next] from main::@33 main::@40 [108] (byte) next_piece_idx#12 ← phi( main::@33/(byte~) next_piece_idx#84 main::@40/(byte~) next_piece_idx#85 ) - [108] (byte) render_screen_render#15 ← phi( main::@33/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@40/(byte~) render_screen_render#68 ) + [108] (byte) render_screen_render#15 ← phi( main::@33/(byte/signed byte/word/signed word/dword/signed dword) $40 main::@40/(byte~) render_screen_render#68 ) [109] if((byte) render_screen_render#15==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_next::@2 to:render_next::@7 render_next::@7: scope:[render_next] from render_next @@ -281,7 +281,7 @@ render_next::@6: scope:[render_next] from render_next::@5 render_next::@9 [123] if((byte) render_next::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_next::@4 to:render_next::@11 render_next::@11: scope:[render_next] from render_next::@6 - [124] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte/signed byte/word/signed word/dword/signed dword) 36 + [124] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte/signed byte/word/signed word/dword/signed dword) $24 [125] (byte) render_next::l#1 ← ++ (byte) render_next::l#7 [126] if((byte) render_next::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_next::@3 to:render_next::@return @@ -295,7 +295,7 @@ render_moving: scope:[render_moving] from main::@32 main::@39 [129] (byte) current_piece_char#68 ← phi( main::@32/(byte~) current_piece_char#106 main::@39/(byte~) current_piece_char#107 ) [129] (byte*) current_piece_gfx#64 ← phi( main::@32/(byte*~) current_piece_gfx#118 main::@39/(byte*~) current_piece_gfx#119 ) [129] (byte) current_xpos#59 ← phi( main::@32/(byte~) current_xpos#128 main::@39/(byte~) current_xpos#129 ) - [129] (byte) render_screen_render#33 ← phi( main::@32/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@39/(byte~) render_screen_render#69 ) + [129] (byte) render_screen_render#33 ← phi( main::@32/(byte/signed byte/word/signed word/dword/signed dword) $40 main::@39/(byte~) render_screen_render#69 ) [129] (byte) current_ypos#13 ← phi( main::@32/(byte~) current_ypos#104 main::@39/(byte~) current_ypos#105 ) [130] (byte) render_moving::ypos2#0 ← (byte) current_ypos#13 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:render_moving::@1 @@ -339,7 +339,7 @@ render_moving::@5: scope:[render_moving] from render_moving::@4 render_moving:: [149] if((byte) render_moving::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@4 to:render_moving::@3 render_playfield: scope:[render_playfield] from main::@23 main::@31 - [150] (byte) render_screen_render#22 ← phi( main::@23/(byte~) render_screen_render#70 main::@31/(byte/signed byte/word/signed word/dword/signed dword) 64 ) + [150] (byte) render_screen_render#22 ← phi( main::@23/(byte~) render_screen_render#70 main::@31/(byte/signed byte/word/signed word/dword/signed dword) $40 ) to:render_playfield::@1 render_playfield::@1: scope:[render_playfield] from render_playfield render_playfield::@3 [151] (byte) render_playfield::i#3 ← phi( render_playfield/(const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::i#1 ) @@ -411,8 +411,8 @@ play_move_rotate::@return: scope:[play_move_rotate] from play_move_rotate::@11 [185] return to:@return play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@6 - [186] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#20 + (byte/signed byte/word/signed word/dword/signed dword) 16 - [187] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 + [186] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#20 + (byte/signed byte/word/signed word/dword/signed dword) $10 + [187] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) $3f to:play_move_rotate::@4 play_move_rotate::@4: scope:[play_move_rotate] from play_move_rotate::@1 play_move_rotate::@2 [188] (byte) play_move_rotate::orientation#3 ← phi( play_move_rotate::@1/(byte) play_move_rotate::orientation#1 play_move_rotate::@2/(byte) play_move_rotate::orientation#2 ) @@ -432,8 +432,8 @@ play_move_rotate::@11: scope:[play_move_rotate] from play_move_rotate::@14 [198] (byte*) current_piece_gfx#7 ← (byte*) current_piece#15 + (byte) current_orientation#7 to:play_move_rotate::@return play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate - [199] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#20 - (byte/signed byte/word/signed word/dword/signed dword) 16 - [200] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 + [199] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#20 - (byte/signed byte/word/signed word/dword/signed dword) $10 + [200] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) $3f to:play_move_rotate::@4 play_collision: scope:[play_collision] from play_move_down::@12 play_move_leftright::@1 play_move_leftright::@7 play_move_rotate::@4 play_spawn_current [201] (byte) play_collision::xpos#6 ← phi( play_move_down::@12/(byte) play_collision::xpos#0 play_move_leftright::@1/(byte) play_collision::xpos#1 play_move_leftright::@7/(byte) play_collision::xpos#2 play_move_rotate::@4/(byte) play_collision::xpos#3 play_spawn_current/(byte) play_collision::xpos#4 ) @@ -465,7 +465,7 @@ play_collision::@return: scope:[play_collision] from play_collision::@17 play_c [212] return to:@return play_collision::@4: scope:[play_collision] from play_collision::@8 - [213] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 + [213] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) $80 [214] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 to:play_collision::@return play_collision::@5: scope:[play_collision] from play_collision::@4 @@ -683,7 +683,7 @@ play_update_score: scope:[play_update_score] from play_move_down::@20 to:play_update_score::@3 play_update_score::@3: scope:[play_update_score] from play_update_score [312] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 - [313] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 + [313] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) $f0 [314] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 [315] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) asm { sed } @@ -691,7 +691,7 @@ play_update_score::@3: scope:[play_update_score] from play_update_score [318] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 asm { cld } [320] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 - [321] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 + [321] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) $f0 [322] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return to:play_update_score::@4 play_update_score::@4: scope:[play_update_score] from play_update_score::@3 @@ -708,7 +708,7 @@ play_update_score::@return: scope:[play_update_score] from play_update_score pl to:@return play_increase_level: scope:[play_increase_level] from play_update_score::@4 [327] (byte) level#21 ← ++ (byte) level#10 - [328] if((byte) level#21>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 + [328] if((byte) level#21>(byte/signed byte/word/signed word/dword/signed dword) $1d) goto play_increase_level::@2 to:play_increase_level::@5 play_increase_level::@5: scope:[play_increase_level] from play_increase_level [329] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#21) @@ -716,8 +716,8 @@ play_increase_level::@5: scope:[play_increase_level] from play_increase_level play_increase_level::@2: scope:[play_increase_level] from play_increase_level play_increase_level::@5 [330] (byte) current_movedown_slow#69 ← phi( play_increase_level/(byte/signed byte/word/signed word/dword/signed dword) 1 play_increase_level::@5/(byte) current_movedown_slow#10 ) [331] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 - [332] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 - [333] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 + [332] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) $f + [333] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) $a) goto play_increase_level::@3 to:play_increase_level::@7 play_increase_level::@7: scope:[play_increase_level] from play_increase_level::@2 [334] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 @@ -779,7 +779,7 @@ play_remove_lines::@4: scope:[play_remove_lines] from play_remove_lines::@10 pl to:play_remove_lines::@5 play_remove_lines::@5: scope:[play_remove_lines] from play_remove_lines::@4 play_remove_lines::@6 [361] (byte) play_remove_lines::w#6 ← phi( play_remove_lines::@4/(byte) play_remove_lines::w#11 play_remove_lines::@6/(byte) play_remove_lines::w#3 ) - [362] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 + [362] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) $ff) goto play_remove_lines::@6 to:play_remove_lines::@return play_remove_lines::@return: scope:[play_remove_lines] from play_remove_lines::@5 [363] return @@ -849,7 +849,7 @@ keyboard_event_get::@3: scope:[keyboard_event_get] from keyboard_event_get to:keyboard_event_get::@return keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get keyboard_event_get::@3 [393] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) - [393] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get/(byte/word/signed word/dword/signed dword) 255 keyboard_event_get::@3/(byte) keyboard_event_get::return#1 ) + [393] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get/(byte/word/signed word/dword/signed dword) $ff keyboard_event_get::@3/(byte) keyboard_event_get::return#1 ) [394] return to:@return keyboard_event_scan: scope:[keyboard_event_scan] from main::@35 @@ -956,7 +956,7 @@ keyboard_event_scan::@19: scope:[keyboard_event_scan] from keyboard_event_scan: [444] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 to:keyboard_event_scan::@3 keyboard_event_scan::@7: scope:[keyboard_event_scan] from keyboard_event_scan::@16 - [445] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 + [445] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) $40 [446] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 [447] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 to:keyboard_event_scan::@5 @@ -1022,7 +1022,7 @@ sprites_irq_init: scope:[sprites_irq_init] from main::@27 [480] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [481] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [482] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [483] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 + [483] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f [484] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [485] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [486] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() @@ -1032,18 +1032,18 @@ sprites_irq_init::@return: scope:[sprites_irq_init] from sprites_irq_init [488] return to:@return sprites_init: scope:[sprites_init] from main::@26 - [489] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 + [489] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) $f [490] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [491] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [492] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) to:sprites_init::@1 sprites_init::@1: scope:[sprites_init] from sprites_init sprites_init::@1 - [493] (byte) sprites_init::xpos#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 sprites_init::@1/(byte) sprites_init::xpos#1 ) + [493] (byte) sprites_init::xpos#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) $18+(byte/signed byte/word/signed word/dword/signed dword) $f*(byte/signed byte/word/signed word/dword/signed dword) 8 sprites_init::@1/(byte) sprites_init::xpos#1 ) [493] (byte) sprites_init::s#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 0 sprites_init::@1/(byte) sprites_init::s#1 ) [494] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [495] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [496] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 - [497] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 + [497] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 [498] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 [499] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 to:sprites_init::@return @@ -1076,15 +1076,15 @@ render_init::@4: scope:[render_init] from render_init::@3 [513] call render_screen_original to:render_init::@1 render_init::@1: scope:[render_init] from render_init::@1 render_init::@4 - [514] (byte*) render_init::li_2#2 ← phi( render_init::@1/(byte*) render_init::li_2#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 ) - [514] (byte*) render_init::li_1#2 ← phi( render_init::@1/(byte*) render_init::li_1#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 ) + [514] (byte*) render_init::li_2#2 ← phi( render_init::@1/(byte*) render_init::li_2#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $10 ) + [514] (byte*) render_init::li_1#2 ← phi( render_init::@1/(byte*) render_init::li_1#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $10 ) [514] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [515] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [516] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 [517] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [518] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 - [519] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [520] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [519] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 + [520] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 [521] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 [522] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 to:render_init::@return @@ -1096,8 +1096,8 @@ render_screen_original: scope:[render_screen_original] from render_init::@3 ren to:render_screen_original::@1 render_screen_original::@1: scope:[render_screen_original] from render_screen_original render_screen_original::@7 [525] (byte) render_screen_original::y#6 ← phi( render_screen_original/(byte/signed byte/word/signed word/dword/signed dword) 0 render_screen_original::@7/(byte) render_screen_original::y#1 ) - [525] (byte*) render_screen_original::ocols#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::ocols#1 ) - [525] (byte*) render_screen_original::oscr#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::oscr#1 ) + [525] (byte*) render_screen_original::ocols#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) $20*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::ocols#1 ) + [525] (byte*) render_screen_original::oscr#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) $20*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::oscr#1 ) [525] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS#0 render_screen_original::@7/(byte*) render_screen_original::cols#3 ) [525] (byte*) render_screen_original::screen#8 ← phi( render_screen_original/(byte*) render_screen_original::screen#9 render_screen_original::@7/(byte*) render_screen_original::screen#10 ) to:render_screen_original::@2 @@ -1125,7 +1125,7 @@ render_screen_original::@3: scope:[render_screen_original] from render_screen_o [538] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 [539] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 [540] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 - [541] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 + [541] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) $24) goto render_screen_original::@3 to:render_screen_original::@4 render_screen_original::@4: scope:[render_screen_original] from render_screen_original::@3 render_screen_original::@4 [542] (byte) render_screen_original::x#6 ← phi( render_screen_original::@3/(byte) render_screen_original::x#2 render_screen_original::@4/(byte) render_screen_original::x#3 ) @@ -1136,17 +1136,17 @@ render_screen_original::@4: scope:[render_screen_original] from render_screen_o [545] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 [546] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 [547] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 - [548] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 + [548] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render_screen_original::@4 to:render_screen_original::@7 render_screen_original::@7: scope:[render_screen_original] from render_screen_original::@4 [549] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 - [550] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 + [550] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto render_screen_original::@1 to:render_screen_original::@return render_screen_original::@return: scope:[render_screen_original] from render_screen_original::@7 [551] return to:@return sid_rnd_init: scope:[sid_rnd_init] from main - [552] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 + [552] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) $ffff [553] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 to:sid_rnd_init::@return sid_rnd_init::@return: scope:[sid_rnd_init] from sid_rnd_init @@ -1182,11 +1182,11 @@ sprites_irq::@3: scope:[sprites_irq] from sprites_irq::@2 sprites_irq::@9 [573] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 to:sprites_irq::@11 sprites_irq::@11: scope:[sprites_irq] from sprites_irq::@3 - [574] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 + [574] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) $a) goto sprites_irq::@5 to:sprites_irq::@12 sprites_irq::@12: scope:[sprites_irq] from sprites_irq::@11 - [575] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 - [576] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [575] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $14 + [576] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [577] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 to:sprites_irq::@7 sprites_irq::@7: scope:[sprites_irq] from sprites_irq::@12 sprites_irq::@15 sprites_irq::@5 @@ -1200,11 +1200,11 @@ sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@7 sprites_irq::@5: scope:[sprites_irq] from sprites_irq::@11 [582] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [583] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 - [584] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [584] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [585] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 to:sprites_irq::@7 sprites_irq::@4: scope:[sprites_irq] from sprites_irq::@3 - [586] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [586] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [587] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 to:sprites_irq::toSpritePtr2 sprites_irq::toSpritePtr2: scope:[sprites_irq] from sprites_irq::@4 diff --git a/src/test/ref/complex/tetris/tetris.log b/src/test/ref/complex/tetris/tetris.log index 8717281b9..b167f7d2b 100644 --- a/src/test/ref/complex/tetris/tetris.log +++ b/src/test/ref/complex/tetris/tetris.log @@ -19,66 +19,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -89,12 +89,12 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@5 @5: scope:[] from @begin (byte) KEY_DEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -107,63 +107,63 @@ CONTROL FLOW GRAPH SSA (byte) KEY_CRSR_DOWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) KEY_3#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) KEY_W#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) KEY_A#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) KEY_4#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) KEY_Z#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) KEY_S#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) KEY_E#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) KEY_LSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) KEY_5#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte) KEY_R#0 ← (byte/signed byte/word/signed word/dword/signed dword) 17 - (byte) KEY_D#0 ← (byte/signed byte/word/signed word/dword/signed dword) 18 - (byte) KEY_6#0 ← (byte/signed byte/word/signed word/dword/signed dword) 19 - (byte) KEY_C#0 ← (byte/signed byte/word/signed word/dword/signed dword) 20 - (byte) KEY_F#0 ← (byte/signed byte/word/signed word/dword/signed dword) 21 - (byte) KEY_T#0 ← (byte/signed byte/word/signed word/dword/signed dword) 22 - (byte) KEY_X#0 ← (byte/signed byte/word/signed word/dword/signed dword) 23 - (byte) KEY_7#0 ← (byte/signed byte/word/signed word/dword/signed dword) 24 - (byte) KEY_Y#0 ← (byte/signed byte/word/signed word/dword/signed dword) 25 - (byte) KEY_G#0 ← (byte/signed byte/word/signed word/dword/signed dword) 26 - (byte) KEY_8#0 ← (byte/signed byte/word/signed word/dword/signed dword) 27 - (byte) KEY_B#0 ← (byte/signed byte/word/signed word/dword/signed dword) 28 - (byte) KEY_H#0 ← (byte/signed byte/word/signed word/dword/signed dword) 29 - (byte) KEY_U#0 ← (byte/signed byte/word/signed word/dword/signed dword) 30 - (byte) KEY_V#0 ← (byte/signed byte/word/signed word/dword/signed dword) 31 - (byte) KEY_9#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) KEY_I#0 ← (byte/signed byte/word/signed word/dword/signed dword) 33 - (byte) KEY_J#0 ← (byte/signed byte/word/signed word/dword/signed dword) 34 - (byte) KEY_0#0 ← (byte/signed byte/word/signed word/dword/signed dword) 35 - (byte) KEY_M#0 ← (byte/signed byte/word/signed word/dword/signed dword) 36 - (byte) KEY_K#0 ← (byte/signed byte/word/signed word/dword/signed dword) 37 - (byte) KEY_O#0 ← (byte/signed byte/word/signed word/dword/signed dword) 38 - (byte) KEY_N#0 ← (byte/signed byte/word/signed word/dword/signed dword) 39 - (byte) KEY_PLUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte) KEY_P#0 ← (byte/signed byte/word/signed word/dword/signed dword) 41 - (byte) KEY_L#0 ← (byte/signed byte/word/signed word/dword/signed dword) 42 - (byte) KEY_MINUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 43 - (byte) KEY_DOT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 44 - (byte) KEY_COLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) 45 - (byte) KEY_AT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 46 - (byte) KEY_COMMA#0 ← (byte/signed byte/word/signed word/dword/signed dword) 47 - (byte) KEY_POUND#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) KEY_ASTERISK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) KEY_SEMICOLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 - (byte) KEY_HOME#0 ← (byte/signed byte/word/signed word/dword/signed dword) 51 - (byte) KEY_RSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 52 - (byte) KEY_EQUALS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) KEY_ARROW_UP#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) KEY_SLASH#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte) KEY_1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 56 - (byte) KEY_ARROW_LEFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 57 - (byte) KEY_CTRL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 58 - (byte) KEY_2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 59 - (byte) KEY_SPACE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 60 - (byte) KEY_COMMODORE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 61 - (byte) KEY_Q#0 ← (byte/signed byte/word/signed word/dword/signed dword) 62 - (byte) KEY_RUNSTOP#0 ← (byte/signed byte/word/signed word/dword/signed dword) 63 - (byte[]) keyboard_char_keycodes#0 ← { (byte) KEY_AT#0, (byte) KEY_A#0, (byte) KEY_B#0, (byte) KEY_C#0, (byte) KEY_D#0, (byte) KEY_E#0, (byte) KEY_F#0, (byte) KEY_G#0, (byte) KEY_H#0, (byte) KEY_I#0, (byte) KEY_J#0, (byte) KEY_K#0, (byte) KEY_L#0, (byte) KEY_M#0, (byte) KEY_N#0, (byte) KEY_O#0, (byte) KEY_P#0, (byte) KEY_Q#0, (byte) KEY_R#0, (byte) KEY_S#0, (byte) KEY_T#0, (byte) KEY_U#0, (byte) KEY_V#0, (byte) KEY_W#0, (byte) KEY_X#0, (byte) KEY_Y#0, (byte) KEY_Z#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP#0, (byte) KEY_ARROW_LEFT#0, (byte) KEY_SPACE#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK#0, (byte) KEY_PLUS#0, (byte) KEY_COMMA#0, (byte) KEY_MINUS#0, (byte) KEY_DOT#0, (byte) KEY_SLASH#0, (byte) KEY_0#0, (byte) KEY_1#0, (byte) KEY_2#0, (byte) KEY_3#0, (byte) KEY_4#0, (byte) KEY_5#0, (byte) KEY_6#0, (byte) KEY_7#0, (byte) KEY_8#0, (byte) KEY_9#0, (byte) KEY_COLON#0, (byte) KEY_SEMICOLON#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } - (byte[8]) keyboard_matrix_row_bitmask#0 ← { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } - (byte[8]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } + (byte) KEY_A#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) KEY_4#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) KEY_Z#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) KEY_S#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) KEY_E#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) KEY_LSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f + (byte) KEY_5#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte) KEY_R#0 ← (byte/signed byte/word/signed word/dword/signed dword) $11 + (byte) KEY_D#0 ← (byte/signed byte/word/signed word/dword/signed dword) $12 + (byte) KEY_6#0 ← (byte/signed byte/word/signed word/dword/signed dword) $13 + (byte) KEY_C#0 ← (byte/signed byte/word/signed word/dword/signed dword) $14 + (byte) KEY_F#0 ← (byte/signed byte/word/signed word/dword/signed dword) $15 + (byte) KEY_T#0 ← (byte/signed byte/word/signed word/dword/signed dword) $16 + (byte) KEY_X#0 ← (byte/signed byte/word/signed word/dword/signed dword) $17 + (byte) KEY_7#0 ← (byte/signed byte/word/signed word/dword/signed dword) $18 + (byte) KEY_Y#0 ← (byte/signed byte/word/signed word/dword/signed dword) $19 + (byte) KEY_G#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1a + (byte) KEY_8#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1b + (byte) KEY_B#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1c + (byte) KEY_H#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1d + (byte) KEY_U#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1e + (byte) KEY_V#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1f + (byte) KEY_9#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) KEY_I#0 ← (byte/signed byte/word/signed word/dword/signed dword) $21 + (byte) KEY_J#0 ← (byte/signed byte/word/signed word/dword/signed dword) $22 + (byte) KEY_0#0 ← (byte/signed byte/word/signed word/dword/signed dword) $23 + (byte) KEY_M#0 ← (byte/signed byte/word/signed word/dword/signed dword) $24 + (byte) KEY_K#0 ← (byte/signed byte/word/signed word/dword/signed dword) $25 + (byte) KEY_O#0 ← (byte/signed byte/word/signed word/dword/signed dword) $26 + (byte) KEY_N#0 ← (byte/signed byte/word/signed word/dword/signed dword) $27 + (byte) KEY_PLUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) KEY_P#0 ← (byte/signed byte/word/signed word/dword/signed dword) $29 + (byte) KEY_L#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2a + (byte) KEY_MINUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2b + (byte) KEY_DOT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2c + (byte) KEY_COLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2d + (byte) KEY_AT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2e + (byte) KEY_COMMA#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2f + (byte) KEY_POUND#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) KEY_ASTERISK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) KEY_SEMICOLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) $32 + (byte) KEY_HOME#0 ← (byte/signed byte/word/signed word/dword/signed dword) $33 + (byte) KEY_RSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $34 + (byte) KEY_EQUALS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) KEY_ARROW_UP#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) KEY_SLASH#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte) KEY_1#0 ← (byte/signed byte/word/signed word/dword/signed dword) $38 + (byte) KEY_ARROW_LEFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $39 + (byte) KEY_CTRL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3a + (byte) KEY_2#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3b + (byte) KEY_SPACE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3c + (byte) KEY_COMMODORE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3d + (byte) KEY_Q#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3e + (byte) KEY_RUNSTOP#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3f + (byte[]) keyboard_char_keycodes#0 ← { (byte) KEY_AT#0, (byte) KEY_A#0, (byte) KEY_B#0, (byte) KEY_C#0, (byte) KEY_D#0, (byte) KEY_E#0, (byte) KEY_F#0, (byte) KEY_G#0, (byte) KEY_H#0, (byte) KEY_I#0, (byte) KEY_J#0, (byte) KEY_K#0, (byte) KEY_L#0, (byte) KEY_M#0, (byte) KEY_N#0, (byte) KEY_O#0, (byte) KEY_P#0, (byte) KEY_Q#0, (byte) KEY_R#0, (byte) KEY_S#0, (byte) KEY_T#0, (byte) KEY_U#0, (byte) KEY_V#0, (byte) KEY_W#0, (byte) KEY_X#0, (byte) KEY_Y#0, (byte) KEY_Z#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_POUND#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_ARROW_UP#0, (byte) KEY_ARROW_LEFT#0, (byte) KEY_SPACE#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_ASTERISK#0, (byte) KEY_PLUS#0, (byte) KEY_COMMA#0, (byte) KEY_MINUS#0, (byte) KEY_DOT#0, (byte) KEY_SLASH#0, (byte) KEY_0#0, (byte) KEY_1#0, (byte) KEY_2#0, (byte) KEY_3#0, (byte) KEY_4#0, (byte) KEY_5#0, (byte) KEY_6#0, (byte) KEY_7#0, (byte) KEY_8#0, (byte) KEY_9#0, (byte) KEY_COLON#0, (byte) KEY_SEMICOLON#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_EQUALS#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f } + (byte[8]) keyboard_matrix_row_bitmask#0 ← { (byte/word/signed word/dword/signed dword) $fe, (byte/word/signed word/dword/signed dword) $fd, (byte/word/signed word/dword/signed dword) $fb, (byte/word/signed word/dword/signed dword) $f7, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $bf, (byte/signed byte/word/signed word/dword/signed dword) $7f } + (byte[8]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $10, (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/word/signed word/dword/signed dword) $80 } to:@9 keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_event_scan::@1 (byte) keyboard_matrix_read::rowid#1 ← phi( keyboard_event_scan::@1/(byte) keyboard_matrix_read::rowid#0 ) @@ -291,7 +291,7 @@ keyboard_event_scan::@7: scope:[keyboard_event_scan] from keyboard_event_scan:: (byte) keyboard_event_scan::col#7 ← phi( keyboard_event_scan::@16/(byte) keyboard_event_scan::col#4 ) (byte) keyboard_events_size#11 ← phi( keyboard_event_scan::@16/(byte) keyboard_events_size#22 ) (byte) keyboard_event_scan::keycode#5 ← phi( keyboard_event_scan::@16/(byte) keyboard_event_scan::keycode#10 ) - (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#5 | (byte/signed byte/word/signed word/dword/signed dword) 64 + (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#5 | (byte/signed byte/word/signed word/dword/signed dword) $40 *((byte[8]) keyboard_events#0 + (byte) keyboard_events_size#11) ← (byte/word/dword~) keyboard_event_scan::$11 (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#11 to:keyboard_event_scan::@5 @@ -430,7 +430,7 @@ keyboard_event_get: scope:[keyboard_event_get] from main::@36 to:keyboard_event_get::@3 keyboard_event_get::@1: scope:[keyboard_event_get] from keyboard_event_get (byte) keyboard_events_size#25 ← phi( keyboard_event_get/(byte) keyboard_events_size#14 ) - (byte) keyboard_event_get::return#0 ← (byte/word/signed word/dword/signed dword) 255 + (byte) keyboard_event_get::return#0 ← (byte/word/signed word/dword/signed dword) $ff to:keyboard_event_get::@return keyboard_event_get::@3: scope:[keyboard_event_get] from keyboard_event_get (byte) keyboard_events_size#15 ← phi( keyboard_event_get/(byte) keyboard_events_size#14 ) @@ -447,22 +447,22 @@ keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get @12: scope:[] from @9 (byte) keyboard_modifiers#62 ← phi( @9/(byte) keyboard_modifiers#0 ) (byte) keyboard_events_size#81 ← phi( @9/(byte) keyboard_events_size#0 ) - (word*) SID_VOICE3_FREQ#0 ← ((word*)) (word/dword/signed dword) 54286 - (byte*) SID_VOICE3_FREQ_LOW#0 ← ((byte*)) (word/dword/signed dword) 54286 - (byte*) SID_VOICE3_FREQ_HIGH#0 ← ((byte*)) (word/dword/signed dword) 54287 - (byte*) SID_VOICE3_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 54290 - (byte) SID_CONTROL_NOISE#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) SID_CONTROL_PULSE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) SID_CONTROL_SAWTOOTH#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) SID_CONTROL_TRIANGLE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (word*) SID_VOICE3_FREQ#0 ← ((word*)) (word/dword/signed dword) $d40e + (byte*) SID_VOICE3_FREQ_LOW#0 ← ((byte*)) (word/dword/signed dword) $d40e + (byte*) SID_VOICE3_FREQ_HIGH#0 ← ((byte*)) (word/dword/signed dword) $d40f + (byte*) SID_VOICE3_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d412 + (byte) SID_CONTROL_NOISE#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) SID_CONTROL_PULSE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) SID_CONTROL_SAWTOOTH#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) SID_CONTROL_TRIANGLE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) SID_CONTROL_TEST#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) SID_CONTROL_RING#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) SID_CONTROL_SYNC#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) SID_CONTROL_GATE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte*) SID_VOICE3_OSC#0 ← ((byte*)) (word/dword/signed dword) 54299 + (byte*) SID_VOICE3_OSC#0 ← ((byte*)) (word/dword/signed dword) $d41b to:@14 sid_rnd_init: scope:[sid_rnd_init] from main - *((word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 + *((word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) $ffff *((byte*) SID_VOICE3_CONTROL#0) ← (byte) SID_CONTROL_NOISE#0 to:sid_rnd_init::@return sid_rnd_init::@return: scope:[sid_rnd_init] from sid_rnd_init @@ -479,25 +479,25 @@ sid_rnd::@return: scope:[sid_rnd] from sid_rnd @14: scope:[] from @12 (byte) keyboard_modifiers#60 ← phi( @12/(byte) keyboard_modifiers#62 ) (byte) keyboard_events_size#79 ← phi( @12/(byte) keyboard_events_size#81 ) - (byte*) PLAYFIELD_SCREEN_1#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte*) PLAYFIELD_SCREEN_2#0 ← ((byte*)) (word/signed word/dword/signed dword) 11264 + (byte*) PLAYFIELD_SCREEN_1#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte*) PLAYFIELD_SCREEN_2#0 ← ((byte*)) (word/signed word/dword/signed dword) $2c00 (byte*~) $1 ← (byte*) PLAYFIELD_SCREEN_1#0 + (word) SPRITE_PTRS#0 (byte*) PLAYFIELD_SPRITE_PTRS_1#0 ← (byte*~) $1 (byte*~) $2 ← (byte*) PLAYFIELD_SCREEN_2#0 + (word) SPRITE_PTRS#0 (byte*) PLAYFIELD_SPRITE_PTRS_2#0 ← (byte*~) $2 - (byte*) PLAYFIELD_SCREEN_ORIGINAL#0 ← ((byte*)) (word/signed word/dword/signed dword) 6144 - (byte*) PLAYFIELD_COLORS_ORIGINAL#0 ← ((byte*)) (word/signed word/dword/signed dword) 7168 - (byte*) PLAYFIELD_SPRITES#0 ← ((byte*)) (word/signed word/dword/signed dword) 8192 - (byte*) PLAYFIELD_CHARSET#0 ← ((byte*)) (word/signed word/dword/signed dword) 10240 - (byte) PLAYFIELD_LINES#0 ← (byte/signed byte/word/signed word/dword/signed dword) 22 - (byte) PLAYFIELD_COLS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 + (byte*) PLAYFIELD_SCREEN_ORIGINAL#0 ← ((byte*)) (word/signed word/dword/signed dword) $1800 + (byte*) PLAYFIELD_COLORS_ORIGINAL#0 ← ((byte*)) (word/signed word/dword/signed dword) $1c00 + (byte*) PLAYFIELD_SPRITES#0 ← ((byte*)) (word/signed word/dword/signed dword) $2000 + (byte*) PLAYFIELD_CHARSET#0 ← ((byte*)) (word/signed word/dword/signed dword) $2800 + (byte) PLAYFIELD_LINES#0 ← (byte/signed byte/word/signed word/dword/signed dword) $16 + (byte) PLAYFIELD_COLS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a (byte~) $3 ← (byte) PLAYFIELD_LINES#0 * (byte) PLAYFIELD_COLS#0 (byte[$3]) playfield#0 ← { fill( $3, 0) } (byte*) current_piece_gfx#0 ← (byte*) 0 (byte) current_piece_char#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) current_xpos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) current_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte) render_screen_render#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 + (byte) render_screen_render#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 (byte) render_screen_show#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) render_screen_showing#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (dword) score_bcd#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -508,7 +508,7 @@ sid_rnd::@return: scope:[sid_rnd] from sid_rnd kickasm(location (byte*) PLAYFIELD_CHARSET#0) {{ .fill 8,$00 // Place a filled char at the start of the charset .import binary "playfield-screen.imap" }} - (byte) PLAYFIELD_SCREEN_ORIGINAL_WIDTH#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 + (byte) PLAYFIELD_SCREEN_ORIGINAL_WIDTH#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 kickasm(location (byte*) PLAYFIELD_SCREEN_ORIGINAL#0) {{ // Load chars for the screen .var screen = LoadBinary("playfield-screen.iscr") // Load extended colors for the screen @@ -568,13 +568,13 @@ render_init::@4: scope:[render_init] from render_init::@3 call render_screen_original to:render_init::@5 render_init::@5: scope:[render_init] from render_init::@4 - (byte/signed byte/word/signed word/dword/signed dword~) render_init::$6 ← (byte/signed byte/word/signed word/dword/signed dword) 2 * (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte/signed byte/word/signed word/dword/signed dword~) render_init::$6 ← (byte/signed byte/word/signed word/dword/signed dword) 2 * (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*~) render_init::$7 ← (byte*) PLAYFIELD_SCREEN_1#0 + (byte/signed byte/word/signed word/dword/signed dword~) render_init::$6 - (byte*~) render_init::$8 ← (byte*~) render_init::$7 + (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*~) render_init::$8 ← (byte*~) render_init::$7 + (byte/signed byte/word/signed word/dword/signed dword) $10 (byte*) render_init::li_1#0 ← (byte*~) render_init::$8 - (byte/signed byte/word/signed word/dword/signed dword~) render_init::$9 ← (byte/signed byte/word/signed word/dword/signed dword) 2 * (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte/signed byte/word/signed word/dword/signed dword~) render_init::$9 ← (byte/signed byte/word/signed word/dword/signed dword) 2 * (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*~) render_init::$10 ← (byte*) PLAYFIELD_SCREEN_2#0 + (byte/signed byte/word/signed word/dword/signed dword~) render_init::$9 - (byte*~) render_init::$11 ← (byte*~) render_init::$10 + (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*~) render_init::$11 ← (byte*~) render_init::$10 + (byte/signed byte/word/signed word/dword/signed dword) $10 (byte*) render_init::li_2#0 ← (byte*~) render_init::$11 (byte/signed word/word/dword/signed dword~) render_init::$12 ← (byte) PLAYFIELD_LINES#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) render_init::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -587,15 +587,15 @@ render_init::@1: scope:[render_init] from render_init::@1 render_init::@5 *((byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 *((byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 - (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 + (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte) render_init::i#1 ← (byte) render_init::i#2 + rangenext(0,render_init::$12) (bool~) render_init::$15 ← (byte) render_init::i#1 != rangelast(0,render_init::$12) if((bool~) render_init::$15) goto render_init::@1 to:render_init::@2 render_init::@2: scope:[render_init] from render_init::@1 (byte) render_screen_show#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte) render_screen_render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 64 + (byte) render_screen_render#1 ← (byte/signed byte/word/signed word/dword/signed dword) $40 to:render_init::@return render_init::@return: scope:[render_init] from render_init::@2 (byte) render_screen_render#9 ← phi( render_init::@2/(byte) render_screen_render#1 ) @@ -623,13 +623,13 @@ render_show::toD0181: scope:[render_show] from render_show::@1 (byte*) render_show::toD0181_gfx#1 ← phi( render_show::@1/(byte*) render_show::toD0181_gfx#0 ) (byte*) render_show::toD0181_screen#1 ← phi( render_show::@1/(byte*) render_show::toD0181_screen#0 ) (word) render_show::toD0181_$0#0 ← ((word)) (byte*) render_show::toD0181_screen#1 - (word) render_show::toD0181_$1#0 ← (word) render_show::toD0181_$0#0 & (word/signed word/dword/signed dword) 16383 + (word) render_show::toD0181_$1#0 ← (word) render_show::toD0181_$0#0 & (word/signed word/dword/signed dword) $3fff (word) render_show::toD0181_$2#0 ← (word) render_show::toD0181_$1#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) render_show::toD0181_$3#0 ← > (word) render_show::toD0181_$2#0 (word) render_show::toD0181_$4#0 ← ((word)) (byte*) render_show::toD0181_gfx#1 (byte) render_show::toD0181_$5#0 ← > (word) render_show::toD0181_$4#0 (byte) render_show::toD0181_$6#0 ← (byte) render_show::toD0181_$5#0 >> (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte) render_show::toD0181_$7#0 ← (byte) render_show::toD0181_$6#0 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) render_show::toD0181_$7#0 ← (byte) render_show::toD0181_$6#0 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte) render_show::toD0181_$8#0 ← (byte) render_show::toD0181_$3#0 | (byte) render_show::toD0181_$7#0 (byte) render_show::toD0181_return#0 ← (byte) render_show::toD0181_$8#0 to:render_show::toD0181_@return @@ -658,13 +658,13 @@ render_show::toD0182: scope:[render_show] from render_show::@3 (byte*) render_show::toD0182_gfx#1 ← phi( render_show::@3/(byte*) render_show::toD0182_gfx#0 ) (byte*) render_show::toD0182_screen#1 ← phi( render_show::@3/(byte*) render_show::toD0182_screen#0 ) (word) render_show::toD0182_$0#0 ← ((word)) (byte*) render_show::toD0182_screen#1 - (word) render_show::toD0182_$1#0 ← (word) render_show::toD0182_$0#0 & (word/signed word/dword/signed dword) 16383 + (word) render_show::toD0182_$1#0 ← (word) render_show::toD0182_$0#0 & (word/signed word/dword/signed dword) $3fff (word) render_show::toD0182_$2#0 ← (word) render_show::toD0182_$1#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) render_show::toD0182_$3#0 ← > (word) render_show::toD0182_$2#0 (word) render_show::toD0182_$4#0 ← ((word)) (byte*) render_show::toD0182_gfx#1 (byte) render_show::toD0182_$5#0 ← > (word) render_show::toD0182_$4#0 (byte) render_show::toD0182_$6#0 ← (byte) render_show::toD0182_$5#0 >> (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte) render_show::toD0182_$7#0 ← (byte) render_show::toD0182_$6#0 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) render_show::toD0182_$7#0 ← (byte) render_show::toD0182_$6#0 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte) render_show::toD0182_$8#0 ← (byte) render_show::toD0182_$3#0 | (byte) render_show::toD0182_$7#0 (byte) render_show::toD0182_return#0 ← (byte) render_show::toD0182_$8#0 to:render_show::toD0182_@return @@ -698,8 +698,8 @@ render_show::@return: scope:[render_show] from render_show::@2 render_screen_swap: scope:[render_screen_swap] from main::@42 (byte) render_screen_show#12 ← phi( main::@42/(byte) render_screen_show#21 ) (byte) render_screen_render#10 ← phi( main::@42/(byte) render_screen_render#20 ) - (byte) render_screen_render#3 ← (byte) render_screen_render#10 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) render_screen_show#3 ← (byte) render_screen_show#12 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 + (byte) render_screen_render#3 ← (byte) render_screen_render#10 ^ (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) render_screen_show#3 ← (byte) render_screen_show#12 ^ (byte/signed byte/word/signed word/dword/signed dword) $40 to:render_screen_swap::@return render_screen_swap::@return: scope:[render_screen_swap] from render_screen_swap (byte) render_screen_show#13 ← phi( render_screen_swap/(byte) render_screen_show#3 ) @@ -737,8 +737,8 @@ render_score::@2: scope:[render_score] from render_score::@1 render_score::@3 (dword*~) render_score::$1 ← & (dword) score_bcd#10 (byte*~) render_score::$2 ← ((byte*)) (dword*~) render_score::$1 (byte*) render_score::score_bytes#0 ← (byte*~) render_score::$2 - (byte/word/signed word/dword/signed dword~) render_score::$3 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 5 - (byte/signed word/word/dword/signed dword~) render_score::$4 ← (byte/word/signed word/dword/signed dword~) render_score::$3 + (byte/signed byte/word/signed word/dword/signed dword) 28 + (byte/word/signed word/dword/signed dword~) render_score::$3 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 5 + (byte/signed word/word/dword/signed dword~) render_score::$4 ← (byte/word/signed word/dword/signed dword~) render_score::$3 + (byte/signed byte/word/signed word/dword/signed dword) $1c (word) render_score::score_offset#0 ← (byte/signed word/word/dword/signed dword~) render_score::$4 (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#3 (word) render_bcd::offset#0 ← (word) render_score::score_offset#0 @@ -776,8 +776,8 @@ render_score::@7: scope:[render_score] from render_score::@6 (byte) level_bcd#42 ← phi( render_score::@6/(byte) level_bcd#57 ) (byte*) render_score::screen#6 ← phi( render_score::@6/(byte*) render_score::screen#5 ) (word) lines_bcd#10 ← phi( render_score::@6/(word) lines_bcd#21 ) - (byte/signed byte/word/signed word/dword/signed dword~) render_score::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte/signed word/word/dword/signed dword/signed byte~) render_score::$11 ← (byte/signed byte/word/signed word/dword/signed dword~) render_score::$10 + (byte/signed byte/word/signed word/dword/signed dword) 22 + (byte/signed byte/word/signed word/dword/signed dword~) render_score::$10 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte/signed word/word/dword/signed dword/signed byte~) render_score::$11 ← (byte/signed byte/word/signed word/dword/signed dword~) render_score::$10 + (byte/signed byte/word/signed word/dword/signed dword) $16 (word) render_score::lines_offset#0 ← (byte/signed word/word/dword/signed dword/signed byte~) render_score::$11 (byte~) render_score::$12 ← > (word) lines_bcd#10 (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#6 @@ -802,8 +802,8 @@ render_score::@8: scope:[render_score] from render_score::@7 render_score::@9: scope:[render_score] from render_score::@8 (byte) level_bcd#13 ← phi( render_score::@8/(byte) level_bcd#26 ) (byte*) render_score::screen#8 ← phi( render_score::@8/(byte*) render_score::screen#7 ) - (word/signed word/dword/signed dword~) render_score::$17 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 19 - (word/signed dword/dword/signed word~) render_score::$18 ← (word/signed word/dword/signed dword~) render_score::$17 + (byte/signed byte/word/signed word/dword/signed dword) 31 + (word/signed word/dword/signed dword~) render_score::$17 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) $13 + (word/signed dword/dword/signed word~) render_score::$18 ← (word/signed word/dword/signed dword~) render_score::$17 + (byte/signed byte/word/signed word/dword/signed dword) $1f (word) render_score::level_offset#0 ← (word/signed dword/dword/signed word~) render_score::$18 (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#8 (word) render_bcd::offset#5 ← (word) render_score::level_offset#0 @@ -821,7 +821,7 @@ render_bcd: scope:[render_bcd] from render_score::@2 render_score::@5 render_sc (byte) render_bcd::only_low#6 ← phi( render_score::@2/(byte) render_bcd::only_low#0 render_score::@5/(byte) render_bcd::only_low#1 render_score::@6/(byte) render_bcd::only_low#2 render_score::@7/(byte) render_bcd::only_low#3 render_score::@8/(byte) render_bcd::only_low#4 render_score::@9/(byte) render_bcd::only_low#5 ) (word) render_bcd::offset#6 ← phi( render_score::@2/(word) render_bcd::offset#0 render_score::@5/(word) render_bcd::offset#1 render_score::@6/(word) render_bcd::offset#2 render_score::@7/(word) render_bcd::offset#3 render_score::@8/(word) render_bcd::offset#4 render_score::@9/(word) render_bcd::offset#5 ) (byte*) render_bcd::screen#6 ← phi( render_score::@2/(byte*) render_bcd::screen#0 render_score::@5/(byte*) render_bcd::screen#1 render_score::@6/(byte*) render_bcd::screen#2 render_score::@7/(byte*) render_bcd::screen#3 render_score::@8/(byte*) render_bcd::screen#4 render_score::@9/(byte*) render_bcd::screen#5 ) - (byte) render_bcd::ZERO_CHAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 + (byte) render_bcd::ZERO_CHAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 (byte*~) render_bcd::$0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 (byte*) render_bcd::screen_pos#0 ← (byte*~) render_bcd::$0 (bool~) render_bcd::$1 ← (byte) render_bcd::only_low#6 == (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -831,7 +831,7 @@ render_bcd: scope:[render_bcd] from render_score::@2 render_score::@5 render_sc render_bcd::@1: scope:[render_bcd] from render_bcd render_bcd::@2 (byte*) render_bcd::screen_pos#3 ← phi( render_bcd/(byte*) render_bcd::screen_pos#0 render_bcd::@2/(byte*) render_bcd::screen_pos#2 ) (byte) render_bcd::bcd#6 ← phi( render_bcd/(byte) render_bcd::bcd#8 render_bcd::@2/(byte) render_bcd::bcd#7 ) - (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte~) render_bcd::$6 ← (byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 @@ -850,10 +850,10 @@ render_bcd::@return: scope:[render_bcd] from render_bcd::@1 render_screen_original: scope:[render_screen_original] from render_init::@3 render_init::@4 (byte*) render_screen_original::screen#9 ← phi( render_init::@3/(byte*) render_screen_original::screen#0 render_init::@4/(byte*) render_screen_original::screen#1 ) (byte) render_screen_original::SPACE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte/signed byte/word/signed word/dword/signed dword~) render_screen_original::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 * (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte/signed byte/word/signed word/dword/signed dword~) render_screen_original::$0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 * (byte/signed byte/word/signed word/dword/signed dword) 2 (byte*~) render_screen_original::$1 ← (byte*) PLAYFIELD_SCREEN_ORIGINAL#0 + (byte/signed byte/word/signed word/dword/signed dword~) render_screen_original::$0 (byte*) render_screen_original::oscr#0 ← (byte*~) render_screen_original::$1 - (byte/signed byte/word/signed word/dword/signed dword~) render_screen_original::$2 ← (byte/signed byte/word/signed word/dword/signed dword) 32 * (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte/signed byte/word/signed word/dword/signed dword~) render_screen_original::$2 ← (byte/signed byte/word/signed word/dword/signed dword) $20 * (byte/signed byte/word/signed word/dword/signed dword) 2 (byte*~) render_screen_original::$3 ← (byte*) PLAYFIELD_COLORS_ORIGINAL#0 + (byte/signed byte/word/signed word/dword/signed dword~) render_screen_original::$2 (byte*) render_screen_original::ocols#0 ← (byte*~) render_screen_original::$3 (byte*) render_screen_original::cols#0 ← (byte*) COLS#0 @@ -899,7 +899,7 @@ render_screen_original::@3: scope:[render_screen_original] from render_screen_o (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 - (bool~) render_screen_original::$5 ← (byte) render_screen_original::x#2 != (byte/signed byte/word/signed word/dword/signed dword) 36 + (bool~) render_screen_original::$5 ← (byte) render_screen_original::x#2 != (byte/signed byte/word/signed word/dword/signed dword) $24 if((bool~) render_screen_original::$5) goto render_screen_original::@3 to:render_screen_original::@4 render_screen_original::@4: scope:[render_screen_original] from render_screen_original::@3 render_screen_original::@4 @@ -915,7 +915,7 @@ render_screen_original::@4: scope:[render_screen_original] from render_screen_o *((byte*) render_screen_original::cols#6) ← (byte) BLACK#0 (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 - (bool~) render_screen_original::$6 ← (byte) render_screen_original::x#3 != (byte/signed byte/word/signed word/dword/signed dword) 40 + (bool~) render_screen_original::$6 ← (byte) render_screen_original::x#3 != (byte/signed byte/word/signed word/dword/signed dword) $28 if((bool~) render_screen_original::$6) goto render_screen_original::@4 to:render_screen_original::@7 render_screen_original::@7: scope:[render_screen_original] from render_screen_original::@4 @@ -925,8 +925,8 @@ render_screen_original::@7: scope:[render_screen_original] from render_screen_o (byte*) render_screen_original::screen#10 ← phi( render_screen_original::@4/(byte*) render_screen_original::screen#4 ) (byte) render_screen_original::SPACE#5 ← phi( render_screen_original::@4/(byte) render_screen_original::SPACE#2 ) (byte) render_screen_original::y#2 ← phi( render_screen_original::@4/(byte) render_screen_original::y#3 ) - (byte) render_screen_original::y#1 ← (byte) render_screen_original::y#2 + rangenext(0,24) - (bool~) render_screen_original::$7 ← (byte) render_screen_original::y#1 != rangelast(0,24) + (byte) render_screen_original::y#1 ← (byte) render_screen_original::y#2 + rangenext(0,$18) + (bool~) render_screen_original::$7 ← (byte) render_screen_original::y#1 != rangelast(0,$18) if((bool~) render_screen_original::$7) goto render_screen_original::@1 to:render_screen_original::@return render_screen_original::@return: scope:[render_screen_original] from render_screen_original::@7 @@ -1083,8 +1083,8 @@ render_moving::@return: scope:[render_moving] from render_moving::@3 render_next: scope:[render_next] from main::@33 main::@40 (byte) next_piece_idx#36 ← phi( main::@33/(byte) next_piece_idx#47 main::@40/(byte) next_piece_idx#48 ) (byte) render_screen_render#15 ← phi( main::@33/(byte) render_screen_render#25 main::@40/(byte) render_screen_render#26 ) - (word/signed word/dword/signed dword~) render_next::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 12 - (word/signed dword/dword/signed word~) render_next::$1 ← (word/signed word/dword/signed dword~) render_next::$0 + (byte/signed byte/word/signed word/dword/signed dword) 24 + (word/signed word/dword/signed dword~) render_next::$0 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) $c + (word/signed dword/dword/signed word~) render_next::$1 ← (word/signed word/dword/signed dword~) render_next::$0 + (byte/signed byte/word/signed word/dword/signed dword) $18 (word/signed dword/dword/signed word~) render_next::$2 ← (word/signed dword/dword/signed word~) render_next::$1 + (byte/signed byte/word/signed word/dword/signed dword) 4 (word) render_next::next_area_offset#0 ← (word/signed dword/dword/signed word~) render_next::$2 (byte*) render_next::screen_next_area#0 ← (byte*) 0 @@ -1161,7 +1161,7 @@ render_next::@11: scope:[render_next] from render_next::@6 (byte*) render_next::next_piece_gfx#5 ← phi( render_next::@6/(byte*) render_next::next_piece_gfx#4 ) (byte) render_next::l#2 ← phi( render_next::@6/(byte) render_next::l#3 ) (byte*) render_next::screen_next_area#8 ← phi( render_next::@6/(byte*) render_next::screen_next_area#3 ) - (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#8 + (byte/signed byte/word/signed word/dword/signed dword) 36 + (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#8 + (byte/signed byte/word/signed word/dword/signed dword) $24 (byte) render_next::l#1 ← (byte) render_next::l#2 + rangenext(0,3) (bool~) render_next::$9 ← (byte) render_next::l#1 != rangelast(0,3) if((bool~) render_next::$9) goto render_next::@3 @@ -1201,12 +1201,12 @@ render_next::@return: scope:[render_next] from render_next::@11 }} to:@24 sprites_init: scope:[sprites_init] from main::@26 - *((byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 + *((byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) $f *((byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) SPRITES_EXPAND_Y#0) ← *((byte*) SPRITES_MC#0) *((byte*) SPRITES_EXPAND_X#0) ← *((byte*) SPRITES_EXPAND_Y#0) - (byte/signed byte/word/signed word/dword/signed dword~) sprites_init::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 * (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte/signed word/word/dword/signed dword/signed byte~) sprites_init::$1 ← (byte/signed byte/word/signed word/dword/signed dword) 24 + (byte/signed byte/word/signed word/dword/signed dword~) sprites_init::$0 + (byte/signed byte/word/signed word/dword/signed dword~) sprites_init::$0 ← (byte/signed byte/word/signed word/dword/signed dword) $f * (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte/signed word/word/dword/signed dword/signed byte~) sprites_init::$1 ← (byte/signed byte/word/signed word/dword/signed dword) $18 + (byte/signed byte/word/signed word/dword/signed dword~) sprites_init::$0 (byte) sprites_init::xpos#0 ← (byte/signed word/word/dword/signed dword/signed byte~) sprites_init::$1 (byte) sprites_init::s#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:sprites_init::@1 @@ -1217,7 +1217,7 @@ sprites_init::@1: scope:[sprites_init] from sprites_init sprites_init::@1 (byte) sprites_init::s2#0 ← (byte~) sprites_init::$2 *((byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 *((byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (byte) BLACK#0 - (byte/signed word/word/dword/signed dword~) sprites_init::$3 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 + (byte/signed word/word/dword/signed dword~) sprites_init::$3 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 (byte) sprites_init::xpos#1 ← (byte/signed word/word/dword/signed dword~) sprites_init::$3 (byte) sprites_init::s#1 ← (byte) sprites_init::s#2 + rangenext(0,3) (bool~) sprites_init::$4 ← (byte) sprites_init::s#1 != rangelast(0,3) @@ -1241,11 +1241,11 @@ sprites_init::@return: scope:[sprites_init] from sprites_init::@1 (byte) current_piece_char#99 ← phi( @23/(byte) current_piece_char#102 ) (byte) render_screen_render#60 ← phi( @23/(byte) render_screen_render#62 ) (byte) render_screen_show#57 ← phi( @23/(byte) render_screen_show#60 ) - (byte) SPRITES_FIRST_YPOS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte/signed word/word/dword/signed dword~) $4 ← (byte) SPRITES_FIRST_YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 19 + (byte) SPRITES_FIRST_YPOS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte/signed word/word/dword/signed dword~) $4 ← (byte) SPRITES_FIRST_YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) $13 (byte) IRQ_RASTER_FIRST#0 ← (byte/signed word/word/dword/signed dword~) $4 (byte) irq_raster_next#0 ← (byte) IRQ_RASTER_FIRST#0 - (byte/signed word/word/dword/signed dword~) $5 ← (byte) SPRITES_FIRST_YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + (byte/signed word/word/dword/signed dword~) $5 ← (byte) SPRITES_FIRST_YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 (byte) irq_sprite_ypos#0 ← (byte/signed word/word/dword/signed dword~) $5 (byte*) toSpritePtr1_sprite#0 ← (byte*) PLAYFIELD_SPRITES#0 to:toSpritePtr1 @@ -1322,7 +1322,7 @@ sprites_irq_init: scope:[sprites_irq_init] from main::@27 *((byte*) PROCPORT_DDR#0) ← (byte) PROCPORT_DDR_MEMORY_MASK#0 *((byte*) PROCPORT#0) ← (byte) PROCPORT_RAM_IO#0 *((byte*) CIA1_INTERRUPT#0) ← (byte) CIA_INTERRUPT_CLEAR#0 - *((byte*) VIC_CONTROL#0) ← *((byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 + *((byte*) VIC_CONTROL#0) ← *((byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f *((byte*) RASTER#0) ← (byte) IRQ_RASTER_FIRST#0 *((byte*) IRQ_ENABLE#0) ← (byte) IRQ_RASTER#0 (void()*~) sprites_irq_init::$0 ← & interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() @@ -1405,7 +1405,7 @@ sprites_irq::@3: scope:[sprites_irq] from sprites_irq::@2 sprites_irq::@9 sprites_irq::@4: scope:[sprites_irq] from sprites_irq::@3 (byte) irq_cnt#18 ← phi( sprites_irq::@3/(byte) irq_cnt#1 ) (byte) irq_raster_next#6 ← phi( sprites_irq::@3/(byte) irq_raster_next#11 ) - (byte) irq_raster_next#1 ← (byte) irq_raster_next#6 + (byte/signed byte/word/signed word/dword/signed dword) 21 + (byte) irq_raster_next#1 ← (byte) irq_raster_next#6 + (byte/signed byte/word/signed word/dword/signed dword) $15 (byte) irq_sprite_ypos#1 ← (byte) SPRITES_FIRST_YPOS#0 (byte*) sprites_irq::toSpritePtr2_sprite#0 ← (byte*) PLAYFIELD_SPRITES#0 to:sprites_irq::toSpritePtr2 @@ -1439,7 +1439,7 @@ sprites_irq::@11: scope:[sprites_irq] from sprites_irq::@3 (byte) irq_sprite_ptr#10 ← phi( sprites_irq::@3/(byte) irq_sprite_ptr#13 ) (byte) irq_sprite_ypos#10 ← phi( sprites_irq::@3/(byte) irq_sprite_ypos#12 ) (byte) irq_cnt#5 ← phi( sprites_irq::@3/(byte) irq_cnt#1 ) - (bool~) sprites_irq::$4 ← (byte) irq_cnt#5 == (byte/signed byte/word/signed word/dword/signed dword) 10 + (bool~) sprites_irq::$4 ← (byte) irq_cnt#5 == (byte/signed byte/word/signed word/dword/signed dword) $a if((bool~) sprites_irq::$4) goto sprites_irq::@5 to:sprites_irq::@12 sprites_irq::@5: scope:[sprites_irq] from sprites_irq::@11 @@ -1447,7 +1447,7 @@ sprites_irq::@5: scope:[sprites_irq] from sprites_irq::@11 (byte) irq_sprite_ypos#6 ← phi( sprites_irq::@11/(byte) irq_sprite_ypos#10 ) (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) irq_raster_next#2 ← (byte) IRQ_RASTER_FIRST#0 - (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#6 + (byte/signed byte/word/signed word/dword/signed dword) 21 + (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#6 + (byte/signed byte/word/signed word/dword/signed dword) $15 (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#6 + (byte/signed byte/word/signed word/dword/signed dword) 3 to:sprites_irq::@7 sprites_irq::@12: scope:[sprites_irq] from sprites_irq::@11 @@ -1455,8 +1455,8 @@ sprites_irq::@12: scope:[sprites_irq] from sprites_irq::@11 (byte) irq_sprite_ptr#7 ← phi( sprites_irq::@11/(byte) irq_sprite_ptr#10 ) (byte) irq_sprite_ypos#7 ← phi( sprites_irq::@11/(byte) irq_sprite_ypos#10 ) (byte) irq_raster_next#7 ← phi( sprites_irq::@11/(byte) irq_raster_next#12 ) - (byte) irq_raster_next#3 ← (byte) irq_raster_next#7 + (byte/signed byte/word/signed word/dword/signed dword) 20 - (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#7 + (byte/signed byte/word/signed word/dword/signed dword) 21 + (byte) irq_raster_next#3 ← (byte) irq_raster_next#7 + (byte/signed byte/word/signed word/dword/signed dword) $14 + (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#7 + (byte/signed byte/word/signed word/dword/signed dword) $15 (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#7 + (byte/signed byte/word/signed word/dword/signed dword) 3 to:sprites_irq::@7 sprites_irq::@7: scope:[sprites_irq] from sprites_irq::@12 sprites_irq::@15 sprites_irq::@5 @@ -1526,8 +1526,8 @@ sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@7 (word~) $27 ← ((word)) (byte[$21]) PIECE_I#0 (word~) $28 ← ((word)) (byte[$15]) PIECE_L#0 (word[]) PIECES#0 ← { (word~) $22, (word~) $23, (word~) $24, (word~) $25, (word~) $26, (word~) $27, (word~) $28 } - (byte[]) PIECES_CHARS#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 102, (byte/word/signed word/dword/signed dword) 166, (byte/signed byte/word/signed word/dword/signed dword) 102, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/word/signed word/dword/signed dword) 166 } - (byte[]) PIECES_NEXT_CHARS#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 99, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/word/signed word/dword/signed dword) 164, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/signed byte/word/signed word/dword/signed dword) 99, (byte/signed byte/word/signed word/dword/signed dword) 99, (byte/word/signed word/dword/signed dword) 164 } + (byte[]) PIECES_CHARS#0 ← { (byte/signed byte/word/signed word/dword/signed dword) $65, (byte/signed byte/word/signed word/dword/signed dword) $66, (byte/word/signed word/dword/signed dword) $a6, (byte/signed byte/word/signed word/dword/signed dword) $66, (byte/signed byte/word/signed word/dword/signed dword) $65, (byte/signed byte/word/signed word/dword/signed dword) $65, (byte/word/signed word/dword/signed dword) $a6 } + (byte[]) PIECES_NEXT_CHARS#0 ← { (byte/signed byte/word/signed word/dword/signed dword) $63, (byte/signed byte/word/signed word/dword/signed dword) $64, (byte/word/signed word/dword/signed dword) $a4, (byte/signed byte/word/signed word/dword/signed dword) $64, (byte/signed byte/word/signed word/dword/signed dword) $63, (byte/signed byte/word/signed word/dword/signed dword) $63, (byte/word/signed word/dword/signed dword) $a4 } (byte[]) PIECES_START_X#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4 } (byte[]) PIECES_START_Y#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1 } (byte*[PLAYFIELD_LINES#0]) playfield_lines#0 ← { fill( PLAYFIELD_LINES#0, 0) } @@ -1536,11 +1536,11 @@ sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@7 (byte) next_piece_idx#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) current_piece#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) current_orientation#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte[]) MOVEDOWN_SLOW_SPEEDS#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 48, (byte/signed byte/word/signed word/dword/signed dword) 43, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 33, (byte/signed byte/word/signed word/dword/signed dword) 28, (byte/signed byte/word/signed word/dword/signed dword) 23, (byte/signed byte/word/signed word/dword/signed dword) 18, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 1 } - (byte) current_movedown_slow#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) current_movedown_fast#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 + (byte[]) MOVEDOWN_SLOW_SPEEDS#0 ← { (byte/signed byte/word/signed word/dword/signed dword) $30, (byte/signed byte/word/signed word/dword/signed dword) $2b, (byte/signed byte/word/signed word/dword/signed dword) $26, (byte/signed byte/word/signed word/dword/signed dword) $21, (byte/signed byte/word/signed word/dword/signed dword) $1c, (byte/signed byte/word/signed word/dword/signed dword) $17, (byte/signed byte/word/signed word/dword/signed dword) $12, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 1 } + (byte) current_movedown_slow#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) current_movedown_fast#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a (byte) current_movedown_counter#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (dword[]) SCORE_BASE_BCD#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 64, (word/signed word/dword/signed dword) 256, (word/signed word/dword/signed dword) 768, (word/signed word/dword/signed dword) 4608 } + (dword[]) SCORE_BASE_BCD#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $40, (word/signed word/dword/signed dword) $100, (word/signed word/dword/signed dword) $300, (word/signed word/dword/signed dword) $1200 } (dword[5]) score_add_bcd#0 ← { fill( 5, 0) } to:@31 play_init: scope:[play_init] from main::@28 @@ -2276,7 +2276,7 @@ play_move_rotate: scope:[play_move_rotate] from play_movement::@6 (byte) current_xpos#68 ← phi( play_movement::@6/(byte) current_xpos#2 ) (byte) current_orientation#41 ← phi( play_movement::@6/(byte) current_orientation#33 ) (byte) play_move_rotate::key_event#1 ← phi( play_movement::@6/(byte) play_move_rotate::key_event#0 ) - (byte) play_move_rotate::orientation#0 ← (byte/word/signed word/dword/signed dword) 128 + (byte) play_move_rotate::orientation#0 ← (byte/word/signed word/dword/signed dword) $80 (bool~) play_move_rotate::$0 ← (byte) play_move_rotate::key_event#1 == (byte) KEY_Z#0 if((bool~) play_move_rotate::$0) goto play_move_rotate::@1 to:play_move_rotate::@6 @@ -2286,8 +2286,8 @@ play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate (byte) current_ypos#42 ← phi( play_move_rotate/(byte) current_ypos#55 ) (byte) current_xpos#50 ← phi( play_move_rotate/(byte) current_xpos#68 ) (byte) current_orientation#23 ← phi( play_move_rotate/(byte) current_orientation#41 ) - (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#23 - (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte/word/dword~) play_move_rotate::$5 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 + (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#23 - (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte/word/dword~) play_move_rotate::$5 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) $3f (byte) play_move_rotate::orientation#1 ← (byte/word/dword~) play_move_rotate::$5 to:play_move_rotate::@4 play_move_rotate::@6: scope:[play_move_rotate] from play_move_rotate @@ -2306,8 +2306,8 @@ play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@6 (byte) current_ypos#43 ← phi( play_move_rotate::@6/(byte) current_ypos#56 ) (byte) current_xpos#51 ← phi( play_move_rotate::@6/(byte) current_xpos#69 ) (byte) current_orientation#24 ← phi( play_move_rotate::@6/(byte) current_orientation#42 ) - (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#24 + (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte/word/dword~) play_move_rotate::$3 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 + (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#24 + (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte/word/dword~) play_move_rotate::$3 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) $3f (byte) play_move_rotate::orientation#2 ← (byte/word/dword~) play_move_rotate::$3 to:play_move_rotate::@4 play_move_rotate::@7: scope:[play_move_rotate] from play_move_rotate::@6 @@ -2464,7 +2464,7 @@ play_collision::@4: scope:[play_collision] from play_collision::@8 (byte) play_collision::c#7 ← phi( play_collision::@8/(byte) play_collision::c#8 ) (byte*) play_collision::playfield_line#3 ← phi( play_collision::@8/(byte*) play_collision::playfield_line#4 ) (byte) play_collision::col#3 ← phi( play_collision::@8/(byte) play_collision::col#8 ) - (byte~) play_collision::$7 ← (byte) play_collision::col#3 & (byte/word/signed word/dword/signed dword) 128 + (byte~) play_collision::$7 ← (byte) play_collision::col#3 & (byte/word/signed word/dword/signed dword) $80 (bool~) play_collision::$8 ← (byte~) play_collision::$7 != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) play_collision::$9 ← ! (bool~) play_collision::$8 if((bool~) play_collision::$9) goto play_collision::@5 @@ -2818,7 +2818,7 @@ play_remove_lines::@10: scope:[play_remove_lines] from play_remove_lines::@9 play_remove_lines::@5: scope:[play_remove_lines] from play_remove_lines::@4 play_remove_lines::@6 (byte) play_remove_lines::removed#5 ← phi( play_remove_lines::@4/(byte) play_remove_lines::removed#7 play_remove_lines::@6/(byte) play_remove_lines::removed#8 ) (byte) play_remove_lines::w#6 ← phi( play_remove_lines::@4/(byte) play_remove_lines::w#11 play_remove_lines::@6/(byte) play_remove_lines::w#3 ) - (bool~) play_remove_lines::$13 ← (byte) play_remove_lines::w#6 != (byte/word/signed word/dword/signed dword) 255 + (bool~) play_remove_lines::$13 ← (byte) play_remove_lines::w#6 != (byte/word/signed word/dword/signed dword) $ff if((bool~) play_remove_lines::$13) goto play_remove_lines::@6 to:play_remove_lines::@7 play_remove_lines::@6: scope:[play_remove_lines] from play_remove_lines::@5 @@ -2862,7 +2862,7 @@ play_update_score::@3: scope:[play_update_score] from play_update_score (byte) play_update_score::removed#2 ← phi( play_update_score/(byte) play_update_score::removed#1 ) (word) lines_bcd#16 ← phi( play_update_score/(word) lines_bcd#28 ) (byte~) play_update_score::$2 ← < (word) lines_bcd#16 - (byte~) play_update_score::$3 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 + (byte~) play_update_score::$3 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) $f0 (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$3 (byte~) play_update_score::$4 ← (byte) play_update_score::removed#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 (dword) play_update_score::add_bcd#0 ← *((dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) @@ -2871,7 +2871,7 @@ play_update_score::@3: scope:[play_update_score] from play_update_score (dword) score_bcd#5 ← (dword) score_bcd#15 + (dword) play_update_score::add_bcd#0 asm { cld } (byte~) play_update_score::$5 ← < (word) lines_bcd#5 - (byte~) play_update_score::$6 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 + (byte~) play_update_score::$6 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) $f0 (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$6 (bool~) play_update_score::$7 ← (byte) play_update_score::lines_before#0 != (byte) play_update_score::lines_after#0 (bool~) play_update_score::$8 ← ! (bool~) play_update_score::$7 @@ -2919,7 +2919,7 @@ play_increase_level: scope:[play_increase_level] from play_update_score::@4 (byte) level_bcd#50 ← phi( play_update_score::@4/(byte) level_bcd#33 ) (byte) level#20 ← phi( play_update_score::@4/(byte) level#35 ) (byte) level#7 ← ++ (byte) level#20 - (bool~) play_increase_level::$0 ← (byte) level#7 > (byte/signed byte/word/signed word/dword/signed dword) 29 + (bool~) play_increase_level::$0 ← (byte) level#7 > (byte/signed byte/word/signed word/dword/signed dword) $1d if((bool~) play_increase_level::$0) goto play_increase_level::@1 to:play_increase_level::@5 play_increase_level::@1: scope:[play_increase_level] from play_increase_level @@ -2937,8 +2937,8 @@ play_increase_level::@2: scope:[play_increase_level] from play_increase_level:: (byte) level#79 ← phi( play_increase_level::@1/(byte) level#90 play_increase_level::@5/(byte) level#21 ) (byte) level_bcd#20 ← phi( play_increase_level::@1/(byte) level_bcd#36 play_increase_level::@5/(byte) level_bcd#37 ) (byte) level_bcd#7 ← ++ (byte) level_bcd#20 - (byte~) play_increase_level::$1 ← (byte) level_bcd#7 & (byte/signed byte/word/signed word/dword/signed dword) 15 - (bool~) play_increase_level::$2 ← (byte~) play_increase_level::$1 == (byte/signed byte/word/signed word/dword/signed dword) 10 + (byte~) play_increase_level::$1 ← (byte) level_bcd#7 & (byte/signed byte/word/signed word/dword/signed dword) $f + (bool~) play_increase_level::$2 ← (byte~) play_increase_level::$1 == (byte/signed byte/word/signed word/dword/signed dword) $a (bool~) play_increase_level::$3 ← ! (bool~) play_increase_level::$2 if((bool~) play_increase_level::$3) goto play_increase_level::@3 to:play_increase_level::@7 @@ -3306,7 +3306,7 @@ main::@4: scope:[main] from main::@2 main::@5 (byte) keyboard_events_size#42 ← phi( main::@2/(byte) keyboard_events_size#50 main::@5/(byte) keyboard_events_size#51 ) (byte) render_screen_showing#19 ← phi( main::@2/(byte) render_screen_showing#23 main::@5/(byte) render_screen_showing#24 ) (byte) render_screen_show#30 ← phi( main::@2/(byte) render_screen_show#37 main::@5/(byte) render_screen_show#38 ) - (bool~) main::$10 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 255 + (bool~) main::$10 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) $ff if((bool~) main::$10) goto main::@5 to:main::@6 main::@5: scope:[main] from main::@4 @@ -7496,7 +7496,7 @@ Inversing boolean not [1267] (bool~) play_remove_lines::$7 ← (byte) play_remov Inversing boolean not [1279] (bool~) play_remove_lines::$10 ← (byte) play_remove_lines::full#2 != (byte/signed byte/word/signed word/dword/signed dword) 1 from [1278] (bool~) play_remove_lines::$9 ← (byte) play_remove_lines::full#2 == (byte/signed byte/word/signed word/dword/signed dword) 1 Inversing boolean not [1302] (bool~) play_update_score::$1 ← (byte) play_update_score::removed#1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1301] (bool~) play_update_score::$0 ← (byte) play_update_score::removed#1 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not [1319] (bool~) play_update_score::$8 ← (byte) play_update_score::lines_before#0 == (byte) play_update_score::lines_after#0 from [1318] (bool~) play_update_score::$7 ← (byte) play_update_score::lines_before#0 != (byte) play_update_score::lines_after#0 -Inversing boolean not [1347] (bool~) play_increase_level::$3 ← (byte~) play_increase_level::$1 != (byte/signed byte/word/signed word/dword/signed dword) 10 from [1346] (bool~) play_increase_level::$2 ← (byte~) play_increase_level::$1 == (byte/signed byte/word/signed word/dword/signed dword) 10 +Inversing boolean not [1347] (bool~) play_increase_level::$3 ← (byte~) play_increase_level::$1 != (byte/signed byte/word/signed word/dword/signed dword) $a from [1346] (bool~) play_increase_level::$2 ← (byte~) play_increase_level::$1 == (byte/signed byte/word/signed word/dword/signed dword) $a Inversing boolean not [1460] (bool~) main::$17 ← (byte) main::render#2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1459] (bool~) main::$16 ← (byte) main::render#2 != (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2UnaryNotSimplification Alias candidate removed (volatile)(byte) render_screen_showing#1 = (byte) render_screen_show#11 (byte) render_screen_showing#6 (byte) render_screen_showing#2 @@ -8607,9 +8607,9 @@ Simple Condition (bool~) render_show::$0 [403] if((byte) render_screen_show#16== Simple Condition (bool~) render_score::$0 [460] if((byte) render_screen_render#18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_score::@1 Simple Condition (bool~) render_bcd::$2 [525] if((byte) render_bcd::only_low#6!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_bcd::@1 Simple Condition (bool~) render_screen_original::$4 [556] if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2 -Simple Condition (bool~) render_screen_original::$5 [566] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 -Simple Condition (bool~) render_screen_original::$6 [574] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 -Simple Condition (bool~) render_screen_original::$7 [578] if((byte) render_screen_original::y#1!=rangelast(0,24)) goto render_screen_original::@1 +Simple Condition (bool~) render_screen_original::$5 [566] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) $24) goto render_screen_original::@3 +Simple Condition (bool~) render_screen_original::$6 [574] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render_screen_original::@4 +Simple Condition (bool~) render_screen_original::$7 [578] if((byte) render_screen_original::y#1!=rangelast(0,$18)) goto render_screen_original::@1 Simple Condition (bool~) render_playfield::$5 [597] if((byte) render_playfield::c#1!=rangelast(0,render_playfield::$4)) goto render_playfield::@2 Simple Condition (bool~) render_playfield::$6 [601] if((byte) render_playfield::l#1!=rangelast(2,render_playfield::$1)) goto render_playfield::@1 Simple Condition (bool~) render_moving::$1 [610] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@2 @@ -8624,7 +8624,7 @@ Simple Condition (bool~) sprites_init::$4 [697] if((byte) sprites_init::s#1!=ran Simple Condition (bool~) sprites_irq::$1 [743] if(*((byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 Simple Condition (bool~) sprites_irq::$2 [747] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 Simple Condition (bool~) sprites_irq::$3 [765] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 -Simple Condition (bool~) sprites_irq::$4 [782] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 +Simple Condition (bool~) sprites_irq::$4 [782] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) $a) goto sprites_irq::@5 Simple Condition (bool~) play_init::$2 [860] if((byte) play_init::j#1!=rangelast(0,play_init::$0)) goto play_init::@1 Simple Condition (bool~) play_init::$5 [872] if((byte) play_init::b#1!=rangelast(0,4)) goto play_init::@2 Simple Condition (bool~) play_movement::$2 [900] if((byte) game_over#15==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movement::@1 @@ -8657,79 +8657,79 @@ Simple Condition (bool~) play_remove_lines::$7 [1268] if((byte) play_remove_line Simple Condition (bool~) play_remove_lines::$8 [1274] if((byte) play_remove_lines::x#1!=rangelast(0,play_remove_lines::$5)) goto play_remove_lines::@2 Simple Condition (bool~) play_remove_lines::$10 [1280] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 Simple Condition (bool~) play_remove_lines::$12 [1284] if((byte) play_remove_lines::y#1!=rangelast(0,play_remove_lines::$4)) goto play_remove_lines::@1 -Simple Condition (bool~) play_remove_lines::$13 [1291] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 +Simple Condition (bool~) play_remove_lines::$13 [1291] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) $ff) goto play_remove_lines::@6 Simple Condition (bool~) play_update_score::$1 [1303] if((byte) play_update_score::removed#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_update_score::@1 Simple Condition (bool~) play_update_score::$8 [1320] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@2 -Simple Condition (bool~) play_increase_level::$0 [1338] if((byte) level#21>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@1 -Simple Condition (bool~) play_increase_level::$3 [1348] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 +Simple Condition (bool~) play_increase_level::$0 [1338] if((byte) level#21>(byte/signed byte/word/signed word/dword/signed dword) $1d) goto play_increase_level::@1 +Simple Condition (bool~) play_increase_level::$3 [1348] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) $a) goto play_increase_level::@3 Simple Condition (bool~) play_increase_level::$5 [1360] if((byte) play_increase_level::b#1!=rangelast(0,4)) goto play_increase_level::@4 -Simple Condition (bool~) main::$10 [1414] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 +Simple Condition (bool~) main::$10 [1414] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@5 Simple Condition (bool~) main::$14 [1432] if((byte) game_over#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@7 Simple Condition (bool~) main::$17 [1461] if((byte) main::render#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@12 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -8740,12 +8740,12 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f Constant (const byte) KEY_DEL#0 = 0 Constant (const byte) KEY_RETURN#0 = 1 Constant (const byte) KEY_CRSR_RIGHT#0 = 2 @@ -8756,62 +8756,62 @@ Constant (const byte) KEY_F5#0 = 6 Constant (const byte) KEY_CRSR_DOWN#0 = 7 Constant (const byte) KEY_3#0 = 8 Constant (const byte) KEY_W#0 = 9 -Constant (const byte) KEY_A#0 = 10 -Constant (const byte) KEY_4#0 = 11 -Constant (const byte) KEY_Z#0 = 12 -Constant (const byte) KEY_S#0 = 13 -Constant (const byte) KEY_E#0 = 14 -Constant (const byte) KEY_LSHIFT#0 = 15 -Constant (const byte) KEY_5#0 = 16 -Constant (const byte) KEY_R#0 = 17 -Constant (const byte) KEY_D#0 = 18 -Constant (const byte) KEY_6#0 = 19 -Constant (const byte) KEY_C#0 = 20 -Constant (const byte) KEY_F#0 = 21 -Constant (const byte) KEY_T#0 = 22 -Constant (const byte) KEY_X#0 = 23 -Constant (const byte) KEY_7#0 = 24 -Constant (const byte) KEY_Y#0 = 25 -Constant (const byte) KEY_G#0 = 26 -Constant (const byte) KEY_8#0 = 27 -Constant (const byte) KEY_B#0 = 28 -Constant (const byte) KEY_H#0 = 29 -Constant (const byte) KEY_U#0 = 30 -Constant (const byte) KEY_V#0 = 31 -Constant (const byte) KEY_9#0 = 32 -Constant (const byte) KEY_I#0 = 33 -Constant (const byte) KEY_J#0 = 34 -Constant (const byte) KEY_0#0 = 35 -Constant (const byte) KEY_M#0 = 36 -Constant (const byte) KEY_K#0 = 37 -Constant (const byte) KEY_O#0 = 38 -Constant (const byte) KEY_N#0 = 39 -Constant (const byte) KEY_PLUS#0 = 40 -Constant (const byte) KEY_P#0 = 41 -Constant (const byte) KEY_L#0 = 42 -Constant (const byte) KEY_MINUS#0 = 43 -Constant (const byte) KEY_DOT#0 = 44 -Constant (const byte) KEY_COLON#0 = 45 -Constant (const byte) KEY_AT#0 = 46 -Constant (const byte) KEY_COMMA#0 = 47 -Constant (const byte) KEY_POUND#0 = 48 -Constant (const byte) KEY_ASTERISK#0 = 49 -Constant (const byte) KEY_SEMICOLON#0 = 50 -Constant (const byte) KEY_HOME#0 = 51 -Constant (const byte) KEY_RSHIFT#0 = 52 -Constant (const byte) KEY_EQUALS#0 = 53 -Constant (const byte) KEY_ARROW_UP#0 = 54 -Constant (const byte) KEY_SLASH#0 = 55 -Constant (const byte) KEY_1#0 = 56 -Constant (const byte) KEY_ARROW_LEFT#0 = 57 -Constant (const byte) KEY_CTRL#0 = 58 -Constant (const byte) KEY_2#0 = 59 -Constant (const byte) KEY_SPACE#0 = 60 -Constant (const byte) KEY_COMMODORE#0 = 61 -Constant (const byte) KEY_Q#0 = 62 -Constant (const byte) KEY_RUNSTOP#0 = 63 -Constant (const byte[8]) keyboard_matrix_row_bitmask#0 = { 254, 253, 251, 247, 239, 223, 191, 127 } -Constant (const byte[8]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, 16, 32, 64, 128 } +Constant (const byte) KEY_A#0 = $a +Constant (const byte) KEY_4#0 = $b +Constant (const byte) KEY_Z#0 = $c +Constant (const byte) KEY_S#0 = $d +Constant (const byte) KEY_E#0 = $e +Constant (const byte) KEY_LSHIFT#0 = $f +Constant (const byte) KEY_5#0 = $10 +Constant (const byte) KEY_R#0 = $11 +Constant (const byte) KEY_D#0 = $12 +Constant (const byte) KEY_6#0 = $13 +Constant (const byte) KEY_C#0 = $14 +Constant (const byte) KEY_F#0 = $15 +Constant (const byte) KEY_T#0 = $16 +Constant (const byte) KEY_X#0 = $17 +Constant (const byte) KEY_7#0 = $18 +Constant (const byte) KEY_Y#0 = $19 +Constant (const byte) KEY_G#0 = $1a +Constant (const byte) KEY_8#0 = $1b +Constant (const byte) KEY_B#0 = $1c +Constant (const byte) KEY_H#0 = $1d +Constant (const byte) KEY_U#0 = $1e +Constant (const byte) KEY_V#0 = $1f +Constant (const byte) KEY_9#0 = $20 +Constant (const byte) KEY_I#0 = $21 +Constant (const byte) KEY_J#0 = $22 +Constant (const byte) KEY_0#0 = $23 +Constant (const byte) KEY_M#0 = $24 +Constant (const byte) KEY_K#0 = $25 +Constant (const byte) KEY_O#0 = $26 +Constant (const byte) KEY_N#0 = $27 +Constant (const byte) KEY_PLUS#0 = $28 +Constant (const byte) KEY_P#0 = $29 +Constant (const byte) KEY_L#0 = $2a +Constant (const byte) KEY_MINUS#0 = $2b +Constant (const byte) KEY_DOT#0 = $2c +Constant (const byte) KEY_COLON#0 = $2d +Constant (const byte) KEY_AT#0 = $2e +Constant (const byte) KEY_COMMA#0 = $2f +Constant (const byte) KEY_POUND#0 = $30 +Constant (const byte) KEY_ASTERISK#0 = $31 +Constant (const byte) KEY_SEMICOLON#0 = $32 +Constant (const byte) KEY_HOME#0 = $33 +Constant (const byte) KEY_RSHIFT#0 = $34 +Constant (const byte) KEY_EQUALS#0 = $35 +Constant (const byte) KEY_ARROW_UP#0 = $36 +Constant (const byte) KEY_SLASH#0 = $37 +Constant (const byte) KEY_1#0 = $38 +Constant (const byte) KEY_ARROW_LEFT#0 = $39 +Constant (const byte) KEY_CTRL#0 = $3a +Constant (const byte) KEY_2#0 = $3b +Constant (const byte) KEY_SPACE#0 = $3c +Constant (const byte) KEY_COMMODORE#0 = $3d +Constant (const byte) KEY_Q#0 = $3e +Constant (const byte) KEY_RUNSTOP#0 = $3f +Constant (const byte[8]) keyboard_matrix_row_bitmask#0 = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f } +Constant (const byte[8]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, $10, $20, $40, $80 } Constant (const byte[8]) keyboard_events#0 = { fill( 8, 0) } Constant (const byte) keyboard_events_size#0 = 0 Constant (const byte) keyboard_modifiers#0 = 0 @@ -8824,61 +8824,61 @@ Constant (const byte) keyboard_event_scan::keycode#0 = 0 Constant (const byte) keyboard_event_scan::row#0 = 0 Constant (const byte) keyboard_event_scan::col#0 = 0 Constant (const byte) keyboard_modifiers#1 = 0 -Constant (const byte) keyboard_event_get::return#0 = 255 -Constant (const word*) SID_VOICE3_FREQ#0 = ((word*))54286 -Constant (const byte*) SID_VOICE3_FREQ_LOW#0 = ((byte*))54286 -Constant (const byte*) SID_VOICE3_FREQ_HIGH#0 = ((byte*))54287 -Constant (const byte*) SID_VOICE3_CONTROL#0 = ((byte*))54290 -Constant (const byte) SID_CONTROL_NOISE#0 = 128 -Constant (const byte) SID_CONTROL_PULSE#0 = 64 -Constant (const byte) SID_CONTROL_SAWTOOTH#0 = 32 -Constant (const byte) SID_CONTROL_TRIANGLE#0 = 16 +Constant (const byte) keyboard_event_get::return#0 = $ff +Constant (const word*) SID_VOICE3_FREQ#0 = ((word*))$d40e +Constant (const byte*) SID_VOICE3_FREQ_LOW#0 = ((byte*))$d40e +Constant (const byte*) SID_VOICE3_FREQ_HIGH#0 = ((byte*))$d40f +Constant (const byte*) SID_VOICE3_CONTROL#0 = ((byte*))$d412 +Constant (const byte) SID_CONTROL_NOISE#0 = $80 +Constant (const byte) SID_CONTROL_PULSE#0 = $40 +Constant (const byte) SID_CONTROL_SAWTOOTH#0 = $20 +Constant (const byte) SID_CONTROL_TRIANGLE#0 = $10 Constant (const byte) SID_CONTROL_TEST#0 = 8 Constant (const byte) SID_CONTROL_RING#0 = 4 Constant (const byte) SID_CONTROL_SYNC#0 = 2 Constant (const byte) SID_CONTROL_GATE#0 = 1 -Constant (const byte*) SID_VOICE3_OSC#0 = ((byte*))54299 -Constant (const byte*) PLAYFIELD_SCREEN_1#0 = ((byte*))1024 -Constant (const byte*) PLAYFIELD_SCREEN_2#0 = ((byte*))11264 -Constant (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0 = ((byte*))6144 -Constant (const byte*) PLAYFIELD_COLORS_ORIGINAL#0 = ((byte*))7168 -Constant (const byte*) PLAYFIELD_SPRITES#0 = ((byte*))8192 -Constant (const byte*) PLAYFIELD_CHARSET#0 = ((byte*))10240 -Constant (const byte) PLAYFIELD_LINES#0 = 22 -Constant (const byte) PLAYFIELD_COLS#0 = 10 +Constant (const byte*) SID_VOICE3_OSC#0 = ((byte*))$d41b +Constant (const byte*) PLAYFIELD_SCREEN_1#0 = ((byte*))$400 +Constant (const byte*) PLAYFIELD_SCREEN_2#0 = ((byte*))$2c00 +Constant (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0 = ((byte*))$1800 +Constant (const byte*) PLAYFIELD_COLORS_ORIGINAL#0 = ((byte*))$1c00 +Constant (const byte*) PLAYFIELD_SPRITES#0 = ((byte*))$2000 +Constant (const byte*) PLAYFIELD_CHARSET#0 = ((byte*))$2800 +Constant (const byte) PLAYFIELD_LINES#0 = $16 +Constant (const byte) PLAYFIELD_COLS#0 = $a Constant (const byte*) current_piece_gfx#0 = 0 Constant (const byte) current_piece_char#0 = 0 Constant (const byte) current_xpos#0 = 0 Constant (const byte) current_ypos#0 = 0 -Constant (const byte) render_screen_render#0 = 64 +Constant (const byte) render_screen_render#0 = $40 Constant (const byte) render_screen_show#0 = 0 Constant (const dword) score_bcd#0 = 0 Constant (const word) lines_bcd#0 = 0 Constant (const byte) level_bcd#0 = 0 Constant (const byte) level#0 = 0 Constant (const byte) game_over#0 = 0 -Constant (const byte) PLAYFIELD_SCREEN_ORIGINAL_WIDTH#0 = 32 -Constant (const byte/signed byte/word/signed word/dword/signed dword) render_init::$6 = 2*40 -Constant (const byte/signed byte/word/signed word/dword/signed dword) render_init::$9 = 2*40 +Constant (const byte) PLAYFIELD_SCREEN_ORIGINAL_WIDTH#0 = $20 +Constant (const byte/signed byte/word/signed word/dword/signed dword) render_init::$6 = 2*$28 +Constant (const byte/signed byte/word/signed word/dword/signed dword) render_init::$9 = 2*$28 Constant (const byte) render_init::i#0 = 0 Constant (const byte) render_screen_show#1 = 0 -Constant (const byte) render_screen_render#1 = 64 +Constant (const byte) render_screen_render#1 = $40 Constant (const byte) render_show::d018val#0 = 0 Constant (const byte*) render_score::screen#0 = 0 Constant (const dword*) render_score::$1 = &score_bcd#42 -Constant (const byte/word/signed word/dword/signed dword) render_score::$3 = 40*5 +Constant (const byte/word/signed word/dword/signed dword) render_score::$3 = $28*5 Constant (const byte) render_bcd::only_low#0 = 0 Constant (const byte) render_bcd::only_low#1 = 0 Constant (const byte) render_bcd::only_low#2 = 0 -Constant (const byte/signed byte/word/signed word/dword/signed dword) render_score::$10 = 40*1 +Constant (const byte/signed byte/word/signed word/dword/signed dword) render_score::$10 = $28*1 Constant (const byte) render_bcd::only_low#3 = 1 Constant (const byte) render_bcd::only_low#4 = 0 -Constant (const word/signed word/dword/signed dword) render_score::$17 = 40*19 +Constant (const word/signed word/dword/signed dword) render_score::$17 = $28*$13 Constant (const byte) render_bcd::only_low#5 = 0 -Constant (const byte) render_bcd::ZERO_CHAR#0 = 53 +Constant (const byte) render_bcd::ZERO_CHAR#0 = $35 Constant (const byte) render_screen_original::SPACE#0 = 0 -Constant (const byte/signed byte/word/signed word/dword/signed dword) render_screen_original::$0 = 32*2 -Constant (const byte/signed byte/word/signed word/dword/signed dword) render_screen_original::$2 = 32*2 +Constant (const byte/signed byte/word/signed word/dword/signed dword) render_screen_original::$0 = $20*2 +Constant (const byte/signed byte/word/signed word/dword/signed dword) render_screen_original::$2 = $20*2 Constant (const byte) render_screen_original::y#0 = 0 Constant (const byte) render_screen_original::x#0 = 0 Constant (const byte) render_playfield::l#0 = 2 @@ -8886,13 +8886,13 @@ Constant (const byte) render_playfield::c#0 = 0 Constant (const byte) render_moving::i#0 = 0 Constant (const byte) render_moving::l#0 = 0 Constant (const byte) render_moving::c#0 = 0 -Constant (const word/signed word/dword/signed dword) render_next::$0 = 40*12 +Constant (const word/signed word/dword/signed dword) render_next::$0 = $28*$c Constant (const byte*) render_next::screen_next_area#0 = 0 Constant (const byte) render_next::l#0 = 0 Constant (const byte) render_next::c#0 = 0 -Constant (const byte/signed byte/word/signed word/dword/signed dword) sprites_init::$0 = 15*8 +Constant (const byte/signed byte/word/signed word/dword/signed dword) sprites_init::$0 = $f*8 Constant (const byte) sprites_init::s#0 = 0 -Constant (const byte) SPRITES_FIRST_YPOS#0 = 49 +Constant (const byte) SPRITES_FIRST_YPOS#0 = $31 Constant (const void()*) sprites_irq_init::$0 = &sprites_irq Constant (const byte/signed byte/word/signed word/dword/signed dword) $8 = 4*4 Constant (const byte[$9]) PIECE_T#0 = { 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0 } @@ -8908,18 +8908,18 @@ Constant (const byte/signed byte/word/signed word/dword/signed dword) $18 = 4*4 Constant (const byte[$19]) PIECE_O#0 = { 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0 } Constant (const byte/signed byte/word/signed word/dword/signed dword) $20 = 4*4 Constant (const byte[$21]) PIECE_I#0 = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 } -Constant (const byte[]) PIECES_CHARS#0 = { 101, 102, 166, 102, 101, 101, 166 } -Constant (const byte[]) PIECES_NEXT_CHARS#0 = { 99, 100, 164, 100, 99, 99, 164 } +Constant (const byte[]) PIECES_CHARS#0 = { $65, $66, $a6, $66, $65, $65, $a6 } +Constant (const byte[]) PIECES_NEXT_CHARS#0 = { $63, $64, $a4, $64, $63, $63, $a4 } Constant (const byte[]) PIECES_START_X#0 = { 4, 4, 4, 4, 4, 4, 4 } Constant (const byte[]) PIECES_START_Y#0 = { 1, 1, 1, 1, 1, 0, 1 } Constant (const byte) next_piece_idx#0 = 0 Constant (const byte*) current_piece#0 = ((byte*))0 Constant (const byte) current_orientation#0 = 0 -Constant (const byte[]) MOVEDOWN_SLOW_SPEEDS#0 = { 48, 43, 38, 33, 28, 23, 18, 13, 8, 6, 5, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 } -Constant (const byte) current_movedown_slow#0 = 48 -Constant (const byte) current_movedown_fast#0 = 10 +Constant (const byte[]) MOVEDOWN_SLOW_SPEEDS#0 = { $30, $2b, $26, $21, $1c, $17, $12, $d, 8, 6, 5, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 } +Constant (const byte) current_movedown_slow#0 = $30 +Constant (const byte) current_movedown_fast#0 = $a Constant (const byte) current_movedown_counter#0 = 0 -Constant (const dword[]) SCORE_BASE_BCD#0 = { 0, 64, 256, 768, 4608 } +Constant (const dword[]) SCORE_BASE_BCD#0 = { 0, $40, $100, $300, $1200 } Constant (const dword[5]) score_add_bcd#0 = { fill( 5, 0) } Constant (const byte) play_init::idx#0 = 0 Constant (const byte) play_init::j#0 = 0 @@ -8932,7 +8932,7 @@ Constant (const byte) play_move_down::return#2 = 1 Constant (const byte) play_move_leftright::return#1 = 1 Constant (const byte) play_move_leftright::return#3 = 0 Constant (const byte) play_move_leftright::return#4 = 1 -Constant (const byte) play_move_rotate::orientation#0 = 128 +Constant (const byte) play_move_rotate::orientation#0 = $80 Constant (const byte) play_move_rotate::return#1 = 0 Constant (const byte) play_move_rotate::return#3 = 0 Constant (const byte) play_move_rotate::return#4 = 1 @@ -8959,7 +8959,7 @@ Constant (const byte) current_movedown_slow#9 = 1 Constant (const byte) play_increase_level::b#0 = 0 Constant (const byte) main::render#0 = 0 Successful SSA optimization Pass2ConstantIdentification -Constant (const byte[]) keyboard_char_keycodes#0 = { KEY_AT#0, KEY_A#0, KEY_B#0, KEY_C#0, KEY_D#0, KEY_E#0, KEY_F#0, KEY_G#0, KEY_H#0, KEY_I#0, KEY_J#0, KEY_K#0, KEY_L#0, KEY_M#0, KEY_N#0, KEY_O#0, KEY_P#0, KEY_Q#0, KEY_R#0, KEY_S#0, KEY_T#0, KEY_U#0, KEY_V#0, KEY_W#0, KEY_X#0, KEY_Y#0, KEY_Z#0, 63, KEY_POUND#0, 63, KEY_ARROW_UP#0, KEY_ARROW_LEFT#0, KEY_SPACE#0, 63, 63, 63, 63, 63, 63, 63, 63, 63, KEY_ASTERISK#0, KEY_PLUS#0, KEY_COMMA#0, KEY_MINUS#0, KEY_DOT#0, KEY_SLASH#0, KEY_0#0, KEY_1#0, KEY_2#0, KEY_3#0, KEY_4#0, KEY_5#0, KEY_6#0, KEY_7#0, KEY_8#0, KEY_9#0, KEY_COLON#0, KEY_SEMICOLON#0, 63, KEY_EQUALS#0, 63, 63 } +Constant (const byte[]) keyboard_char_keycodes#0 = { KEY_AT#0, KEY_A#0, KEY_B#0, KEY_C#0, KEY_D#0, KEY_E#0, KEY_F#0, KEY_G#0, KEY_H#0, KEY_I#0, KEY_J#0, KEY_K#0, KEY_L#0, KEY_M#0, KEY_N#0, KEY_O#0, KEY_P#0, KEY_Q#0, KEY_R#0, KEY_S#0, KEY_T#0, KEY_U#0, KEY_V#0, KEY_W#0, KEY_X#0, KEY_Y#0, KEY_Z#0, $3f, KEY_POUND#0, $3f, KEY_ARROW_UP#0, KEY_ARROW_LEFT#0, KEY_SPACE#0, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, KEY_ASTERISK#0, KEY_PLUS#0, KEY_COMMA#0, KEY_MINUS#0, KEY_DOT#0, KEY_SLASH#0, KEY_0#0, KEY_1#0, KEY_2#0, KEY_3#0, KEY_4#0, KEY_5#0, KEY_6#0, KEY_7#0, KEY_8#0, KEY_9#0, KEY_COLON#0, KEY_SEMICOLON#0, $3f, KEY_EQUALS#0, $3f, $3f } Constant (const byte) KEY_MODIFIER_SHIFT#0 = KEY_MODIFIER_LSHIFT#0|KEY_MODIFIER_RSHIFT#0 Constant (const byte) keyboard_event_pressed::keycode#0 = KEY_LSHIFT#0 Constant (const byte) keyboard_event_pressed::keycode#1 = KEY_RSHIFT#0 @@ -8987,19 +8987,19 @@ Constant (const byte*) render_show::toD0182_gfx#0 = PLAYFIELD_CHARSET#0 Constant (const byte*) render_score::screen#1 = PLAYFIELD_SCREEN_1#0 Constant (const byte*) render_score::screen#2 = PLAYFIELD_SCREEN_2#0 Constant (const byte*) render_score::score_bytes#0 = ((byte*))render_score::$1 -Constant (const word) render_score::score_offset#0 = render_score::$3+28 -Constant (const word) render_score::lines_offset#0 = render_score::$10+22 -Constant (const word) render_score::level_offset#0 = render_score::$17+31 +Constant (const word) render_score::score_offset#0 = render_score::$3+$1c +Constant (const word) render_score::lines_offset#0 = render_score::$10+$16 +Constant (const word) render_score::level_offset#0 = render_score::$17+$1f Constant (const byte*) render_screen_original::oscr#0 = PLAYFIELD_SCREEN_ORIGINAL#0+render_screen_original::$0 Constant (const byte*) render_screen_original::ocols#0 = PLAYFIELD_COLORS_ORIGINAL#0+render_screen_original::$2 Constant (const byte*) render_screen_original::cols#0 = COLS#0 Constant (const byte) render_playfield::i#0 = PLAYFIELD_COLS#0*2 Constant (const byte/signed word/word/dword/signed dword) render_playfield::$1 = PLAYFIELD_LINES#0-1 Constant (const byte/signed word/word/dword/signed dword) render_playfield::$4 = PLAYFIELD_COLS#0-1 -Constant (const word/signed dword/dword/signed word) render_next::$1 = render_next::$0+24 -Constant (const byte) sprites_init::xpos#0 = 24+sprites_init::$0 -Constant (const byte/signed word/word/dword/signed dword) $4 = SPRITES_FIRST_YPOS#0+19 -Constant (const byte/signed word/word/dword/signed dword) $5 = SPRITES_FIRST_YPOS#0+21 +Constant (const word/signed dword/dword/signed word) render_next::$1 = render_next::$0+$18 +Constant (const byte) sprites_init::xpos#0 = $18+sprites_init::$0 +Constant (const byte/signed word/word/dword/signed dword) $4 = SPRITES_FIRST_YPOS#0+$13 +Constant (const byte/signed word/word/dword/signed dword) $5 = SPRITES_FIRST_YPOS#0+$15 Constant (const word) toSpritePtr1_$0#0 = ((word))PLAYFIELD_SPRITES#0 Constant (const byte*) sprites_irq::toSpritePtr2_sprite#0 = PLAYFIELD_SPRITES#0 Constant (const byte/signed word/word/dword/signed dword/signed byte) $9 = $8*4 @@ -9037,8 +9037,8 @@ Successful SSA optimization Pass2ConstantIdentification Constant (const byte[$3]) playfield#0 = { fill( $3, 0) } Constant (const word) render_init::vicSelectGfxBank1_toDd001_$0#0 = ((word))render_init::vicSelectGfxBank1_gfx#0 Constant (const byte) render_init::$2 = render_init::$1|VIC_RSEL#0 -Constant (const byte*) render_init::li_1#0 = render_init::$7+16 -Constant (const byte*) render_init::li_2#0 = render_init::$10+16 +Constant (const byte*) render_init::li_1#0 = render_init::$7+$10 +Constant (const byte*) render_init::li_2#0 = render_init::$10+$10 Constant (const word) render_show::toD0181_$0#0 = ((word))render_show::toD0181_screen#0 Constant (const word) render_show::toD0181_$4#0 = ((word))render_show::toD0181_gfx#0 Constant (const word) render_show::toD0182_$0#0 = ((word))render_show::toD0182_screen#0 @@ -9060,9 +9060,9 @@ Constant (const byte) play_remove_lines::w#0 = play_remove_lines::$2-1 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) render_init::vicSelectGfxBank1_toDd001_$1#0 = >render_init::vicSelectGfxBank1_toDd001_$0#0 Constant (const byte/word/dword) render_init::$3 = render_init::$2|3 -Constant (const word) render_show::toD0181_$1#0 = render_show::toD0181_$0#0&16383 +Constant (const word) render_show::toD0181_$1#0 = render_show::toD0181_$0#0&$3fff Constant (const byte) render_show::toD0181_$5#0 = >render_show::toD0181_$4#0 -Constant (const word) render_show::toD0182_$1#0 = render_show::toD0182_$0#0&16383 +Constant (const word) render_show::toD0182_$1#0 = render_show::toD0182_$0#0&$3fff Constant (const byte) render_show::toD0182_$5#0 = >render_show::toD0182_$4#0 Constant (const byte*) render_next::screen_next_area#1 = PLAYFIELD_SCREEN_1#0+render_next::next_area_offset#0 Constant (const byte*) render_next::screen_next_area#2 = PLAYFIELD_SCREEN_2#0+render_next::next_area_offset#0 @@ -9080,9 +9080,9 @@ Constant (const byte) sprites_irq::toSpritePtr2_$2#0 = ((byte))sprites_irq::toSp Successful SSA optimization Pass2ConstantIdentification Constant (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 = 3^render_init::vicSelectGfxBank1_toDd001_$2#0 Constant (const byte) render_show::toD0181_$3#0 = >render_show::toD0181_$2#0 -Constant (const byte) render_show::toD0181_$7#0 = render_show::toD0181_$6#0&15 +Constant (const byte) render_show::toD0181_$7#0 = render_show::toD0181_$6#0&$f Constant (const byte) render_show::toD0182_$3#0 = >render_show::toD0182_$2#0 -Constant (const byte) render_show::toD0182_$7#0 = render_show::toD0182_$6#0&15 +Constant (const byte) render_show::toD0182_$7#0 = render_show::toD0182_$6#0&$f Constant (const byte) sprites_irq::toSpritePtr2_return#0 = sprites_irq::toSpritePtr2_$2#0 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) render_show::toD0181_return#0 = render_show::toD0181_$3#0|render_show::toD0181_$7#0 @@ -9143,7 +9143,7 @@ Resolved ranged comparison value if(keyboard_event_scan::col#1!=rangelast(0,7)) Resolved ranged next value render_init::i#1 ← ++ render_init::i#2 to ++ Resolved ranged comparison value if(render_init::i#1!=rangelast(0,render_init::$12)) goto render_init::@1 to (const byte/signed word/word/dword/signed dword) render_init::$12+(byte/signed byte/word/signed word/dword/signed dword) 1 Resolved ranged next value render_screen_original::y#1 ← ++ render_screen_original::y#6 to ++ -Resolved ranged comparison value if(render_screen_original::y#1!=rangelast(0,24)) goto render_screen_original::@1 to (byte/signed byte/word/signed word/dword/signed dword) 25 +Resolved ranged comparison value if(render_screen_original::y#1!=rangelast(0,$18)) goto render_screen_original::@1 to (byte/signed byte/word/signed word/dword/signed dword) $19 Resolved ranged next value render_playfield::c#1 ← ++ render_playfield::c#2 to ++ Resolved ranged comparison value if(render_playfield::c#1!=rangelast(0,render_playfield::$4)) goto render_playfield::@2 to (const byte/signed word/word/dword/signed dword) render_playfield::$4+(byte/signed byte/word/signed word/dword/signed dword) 1 Resolved ranged next value render_playfield::l#1 ← ++ render_playfield::l#2 to ++ @@ -9374,25 +9374,25 @@ Inlining constant with var siblings (const byte) game_over#5 Inlining constant with var siblings (const byte) current_movedown_slow#9 Inlining constant with var siblings (const byte) keyboard_modifiers#2 Constant inlined play_remove_lines::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_show::toD0181_$7#0 = >((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 +Constant inlined render_show::toD0181_$7#0 = >((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) $f Constant inlined play_init::pli#0 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 Constant inlined play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined play_move_rotate::return#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined play_move_rotate::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined current_movedown_counter#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_score::$17 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 19 +Constant inlined render_score::$17 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $13 Constant inlined current_movedown_counter#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_screen_original::screen#1 = (const byte*) PLAYFIELD_SCREEN_2#0 Constant inlined render_screen_original::screen#0 = (const byte*) PLAYFIELD_SCREEN_1#0 Constant inlined render_screen_original::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined current_movedown_slow#9 = (byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined render_show::toD0182_$7#0 = >((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 +Constant inlined render_show::toD0182_$7#0 = >((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) $f Constant inlined render_playfield::i#0 = (const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined play_collision::$4 = (byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0 -Constant inlined render_show::toD0182_$2#0 = ((word))(const byte*) PLAYFIELD_SCREEN_2#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined render_show::toD0182_$2#0 = ((word))(const byte*) PLAYFIELD_SCREEN_2#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined render_init::vicSelectGfxBank1_toDd001_$1#0 = >((word))(const byte*) PLAYFIELD_CHARSET#0 Constant inlined render_init::$12 = (const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined render_init::$10 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined render_init::$10 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined play_remove_lines::$0 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0 Constant inlined play_remove_lines::$2 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0 Constant inlined play_collision::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -9400,7 +9400,7 @@ Constant inlined play_remove_lines::$4 = (const byte) PLAYFIELD_LINES#0-(byte/si Constant inlined render_bcd::offset#0 = (const word) render_score::score_offset#0 Constant inlined current_orientation#69 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_bcd::offset#1 = (const word) render_score::score_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined render_screen_original::$0 = (byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined render_screen_original::$0 = (byte/signed byte/word/signed word/dword/signed dword) $20*(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined sprites_irq::toSpritePtr2_$0#0 = ((word))(const byte*) PLAYFIELD_SPRITES#0 Constant inlined render_bcd::offset#4 = (const word) render_score::lines_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined render_bcd::offset#5 = (const word) render_score::level_offset#0 @@ -9408,17 +9408,17 @@ Constant inlined render_bcd::offset#2 = (const word) render_score::score_offset# Constant inlined render_bcd::offset#3 = (const word) render_score::lines_offset#0 Constant inlined toSpritePtr1_$1#0 = ((word))(const byte*) PLAYFIELD_SPRITES#0>>(byte/signed byte/word/signed word/dword/signed dword) 6 Constant inlined render_show::toD0182_gfx#0 = (const byte*) PLAYFIELD_CHARSET#0 -Constant inlined render_show::toD0181_$3#0 = >((word))(const byte*) PLAYFIELD_SCREEN_1#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined render_screen_original::$2 = (byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined render_init::$9 = (byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined render_show::toD0181_$3#0 = >((word))(const byte*) PLAYFIELD_SCREEN_1#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined render_screen_original::$2 = (byte/signed byte/word/signed word/dword/signed dword) $20*(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined render_init::$9 = (byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined play_lock_current::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined play_remove_lines::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_init::$7 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined render_init::$7 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined render_next::screen_next_area#1 = (const byte*) PLAYFIELD_SCREEN_1#0+(const word) render_next::next_area_offset#0 Constant inlined $10 = (byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4 Constant inlined render_next::screen_next_area#2 = (const byte*) PLAYFIELD_SCREEN_2#0+(const word) render_next::next_area_offset#0 Constant inlined $11 = (byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4 -Constant inlined render_init::$6 = (byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined render_init::$6 = (byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined $12 = (byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4 Constant inlined keyboard_event_scan::col#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined lines_bcd#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -9452,7 +9452,7 @@ Constant inlined render_init::vicSelectGfxBank1_toDd001_$2#0 = >((word))(const b Constant inlined $23 = ((word))(const byte[4*4*4]) PIECE_S#0 Constant inlined render_bcd::only_low#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined $24 = ((word))(const byte[4*4*4]) PIECE_Z#0 -Constant inlined render_show::toD0182_$1#0 = ((word))(const byte*) PLAYFIELD_SCREEN_2#0&(word/signed word/dword/signed dword) 16383 +Constant inlined render_show::toD0182_$1#0 = ((word))(const byte*) PLAYFIELD_SCREEN_2#0&(word/signed word/dword/signed dword) $3fff Constant inlined sprites_irq_init::$0 = &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() Constant inlined $25 = ((word))(const byte[4*4*4]) PIECE_J#0 Constant inlined $26 = ((word))(const byte[4*4*4]) PIECE_O#0 @@ -9487,12 +9487,12 @@ Constant inlined play_remove_lines::r#0 = (const byte) PLAYFIELD_LINES#0*(const Constant inlined keyboard_modifiers#2 = (byte/signed byte/word/signed word/dword/signed dword) 0|(const byte) KEY_MODIFIER_LSHIFT#0 Constant inlined render_show::toD0181_$5#0 = >((word))(const byte*) PLAYFIELD_CHARSET#0 Constant inlined keyboard_modifiers#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_screen_render#1 = (byte/signed byte/word/signed word/dword/signed dword) 64 -Constant inlined sprites_init::xpos#0 = (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 +Constant inlined render_screen_render#1 = (byte/signed byte/word/signed word/dword/signed dword) $40 +Constant inlined sprites_init::xpos#0 = (byte/signed byte/word/signed word/dword/signed dword) $18+(byte/signed byte/word/signed word/dword/signed dword) $f*(byte/signed byte/word/signed word/dword/signed dword) 8 Constant inlined $3 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0 Constant inlined play_lock_current::l#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined $4 = (const byte) IRQ_RASTER_FIRST#0 -Constant inlined $5 = (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 21 +Constant inlined $5 = (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) $15 Constant inlined render_show::toD0181_gfx#0 = (const byte*) PLAYFIELD_CHARSET#0 Constant inlined $7 = (const byte) toSpritePtr1_return#0+(byte/signed byte/word/signed word/dword/signed dword) 3 Constant inlined $8 = (byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4 @@ -9514,14 +9514,14 @@ Constant inlined next_piece_idx#0 = (byte/signed byte/word/signed word/dword/sig Constant inlined keyboard_event_scan::keycode#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined play_collision::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined sprites_irq::toSpritePtr2_$2#0 = (const byte) sprites_irq::toSpritePtr2_return#0 -Constant inlined render_show::toD0181_$1#0 = ((word))(const byte*) PLAYFIELD_SCREEN_1#0&(word/signed word/dword/signed dword) 16383 -Constant inlined sprites_init::$0 = (byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 -Constant inlined render_init::li_2#0 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 +Constant inlined render_show::toD0181_$1#0 = ((word))(const byte*) PLAYFIELD_SCREEN_1#0&(word/signed word/dword/signed dword) $3fff +Constant inlined sprites_init::$0 = (byte/signed byte/word/signed word/dword/signed dword) $f*(byte/signed byte/word/signed word/dword/signed dword) 8 +Constant inlined render_init::li_2#0 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $10 Constant inlined play_move_down::movedown#1 = ++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined play_move_down::movedown#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined play_remove_lines::w#0 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined play_init::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_screen_original::ocols#0 = (const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined render_screen_original::ocols#0 = (const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) $20*(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined render_show::toD0181_$6#0 = >((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined play_lock_current::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined sprites_irq::toSpritePtr2_return#1 = (const byte) sprites_irq::toSpritePtr2_return#0 @@ -9534,25 +9534,25 @@ Constant inlined play_remove_lines::$5 = (const byte) PLAYFIELD_COLS#0-(byte/sig Constant inlined level_bcd#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined level#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined play_init::idx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_next::$1 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 12+(byte/signed byte/word/signed word/dword/signed dword) 24 -Constant inlined render_next::$0 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 12 +Constant inlined render_next::$1 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $c+(byte/signed byte/word/signed word/dword/signed dword) $18 +Constant inlined render_next::$0 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $c Constant inlined play_collision::orientation#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_moving::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_show::toD0182_$3#0 = >((word))(const byte*) PLAYFIELD_SCREEN_2#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined render_show::toD0182_$3#0 = >((word))(const byte*) PLAYFIELD_SCREEN_2#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined render_init::vicSelectGfxBank1_toDd001_$0#0 = ((word))(const byte*) PLAYFIELD_CHARSET#0 Constant inlined render_show::toD0182_screen#0 = (const byte*) PLAYFIELD_SCREEN_2#0 -Constant inlined render_screen_original::oscr#0 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined render_screen_original::oscr#0 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) $20*(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined render_score::screen#1 = (const byte*) PLAYFIELD_SCREEN_1#0 Constant inlined play_increase_level::b#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_screen_show#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_score::screen#2 = (const byte*) PLAYFIELD_SCREEN_2#0 Constant inlined sprites_irq::toSpritePtr2_sprite#0 = (const byte*) PLAYFIELD_SPRITES#0 -Constant inlined render_score::$3 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 -Constant inlined render_score::$10 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined render_score::$3 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 +Constant inlined render_score::$10 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined play_collision::l#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_show::toD0181_$2#0 = ((word))(const byte*) PLAYFIELD_SCREEN_1#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined keyboard_event_get::return#0 = (byte/word/signed word/dword/signed dword) 255 -Constant inlined render_init::li_1#0 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 +Constant inlined render_show::toD0181_$2#0 = ((word))(const byte*) PLAYFIELD_SCREEN_1#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined keyboard_event_get::return#0 = (byte/word/signed word/dword/signed dword) $ff +Constant inlined render_init::li_1#0 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $10 Constant inlined render_score::$1 = &(dword) score_bcd#14 Constant inlined render_screen_original::cols#0 = (const byte*) COLS#0 Successful SSA optimization Pass2ConstantInlining @@ -10111,7 +10111,7 @@ FINAL CONTROL FLOW GRAPH to:@24 @24: scope:[] from @23 [6] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 - [7] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 21 + [7] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) $15 to:toSpritePtr1 toSpritePtr1: scope:[] from @24 [8] phi() @@ -10186,11 +10186,11 @@ main::@1: scope:[main] from main::@11 main::@33 main::@42 [38] (byte) current_piece_char#10 ← phi( main::@11/(byte) current_piece_char#16 main::@33/(byte) current_piece_char#5 main::@42/(byte) current_piece_char#16 ) [38] (byte*) current_piece#10 ← phi( main::@11/(byte*) current_piece#15 main::@33/(byte*~) current_piece#96 main::@42/(byte*) current_piece#15 ) [38] (byte) current_movedown_slow#14 ← phi( main::@11/(byte) current_movedown_slow#21 main::@33/(byte) current_movedown_slow#1 main::@42/(byte) current_movedown_slow#21 ) - [38] (byte) render_screen_render#18 ← phi( main::@33/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@42/(byte) render_screen_render#11 ) + [38] (byte) render_screen_render#18 ← phi( main::@33/(byte/signed byte/word/signed word/dword/signed dword) $40 main::@42/(byte) render_screen_render#11 ) [38] (byte) render_screen_show#16 ← phi( main::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@42/(byte) render_screen_show#13 ) to:main::@4 main::@4: scope:[main] from main::@1 main::@4 - [39] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 + [39] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 to:main::@6 main::@6: scope:[main] from main::@4 [40] phi() @@ -10249,8 +10249,8 @@ main::@42: scope:[main] from main::@41 [69] call render_screen_swap to:main::@1 render_screen_swap: scope:[render_screen_swap] from main::@42 - [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 - [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 + [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte/signed byte/word/signed word/dword/signed dword) $40 + [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) $40 to:render_screen_swap::@return render_screen_swap::@return: scope:[render_screen_swap] from render_screen_swap [72] return @@ -10311,7 +10311,7 @@ render_bcd::@2: scope:[render_bcd] from render_bcd to:render_bcd::@1 render_bcd::@1: scope:[render_bcd] from render_bcd render_bcd::@2 [102] (byte*) render_bcd::screen_pos#3 ← phi( render_bcd/(byte*) render_bcd::screen_pos#0 render_bcd::@2/(byte*) render_bcd::screen_pos#2 ) - [103] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [103] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) $f [104] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 [105] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 [106] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 @@ -10321,7 +10321,7 @@ render_bcd::@return: scope:[render_bcd] from render_bcd::@1 to:@return render_next: scope:[render_next] from main::@33 main::@40 [108] (byte) next_piece_idx#12 ← phi( main::@33/(byte~) next_piece_idx#84 main::@40/(byte~) next_piece_idx#85 ) - [108] (byte) render_screen_render#15 ← phi( main::@33/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@40/(byte~) render_screen_render#68 ) + [108] (byte) render_screen_render#15 ← phi( main::@33/(byte/signed byte/word/signed word/dword/signed dword) $40 main::@40/(byte~) render_screen_render#68 ) [109] if((byte) render_screen_render#15==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_next::@2 to:render_next::@7 render_next::@7: scope:[render_next] from render_next @@ -10355,7 +10355,7 @@ render_next::@6: scope:[render_next] from render_next::@5 render_next::@9 [123] if((byte) render_next::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_next::@4 to:render_next::@11 render_next::@11: scope:[render_next] from render_next::@6 - [124] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte/signed byte/word/signed word/dword/signed dword) 36 + [124] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte/signed byte/word/signed word/dword/signed dword) $24 [125] (byte) render_next::l#1 ← ++ (byte) render_next::l#7 [126] if((byte) render_next::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_next::@3 to:render_next::@return @@ -10369,7 +10369,7 @@ render_moving: scope:[render_moving] from main::@32 main::@39 [129] (byte) current_piece_char#68 ← phi( main::@32/(byte~) current_piece_char#106 main::@39/(byte~) current_piece_char#107 ) [129] (byte*) current_piece_gfx#64 ← phi( main::@32/(byte*~) current_piece_gfx#118 main::@39/(byte*~) current_piece_gfx#119 ) [129] (byte) current_xpos#59 ← phi( main::@32/(byte~) current_xpos#128 main::@39/(byte~) current_xpos#129 ) - [129] (byte) render_screen_render#33 ← phi( main::@32/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@39/(byte~) render_screen_render#69 ) + [129] (byte) render_screen_render#33 ← phi( main::@32/(byte/signed byte/word/signed word/dword/signed dword) $40 main::@39/(byte~) render_screen_render#69 ) [129] (byte) current_ypos#13 ← phi( main::@32/(byte~) current_ypos#104 main::@39/(byte~) current_ypos#105 ) [130] (byte) render_moving::ypos2#0 ← (byte) current_ypos#13 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:render_moving::@1 @@ -10413,7 +10413,7 @@ render_moving::@5: scope:[render_moving] from render_moving::@4 render_moving:: [149] if((byte) render_moving::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@4 to:render_moving::@3 render_playfield: scope:[render_playfield] from main::@23 main::@31 - [150] (byte) render_screen_render#22 ← phi( main::@23/(byte~) render_screen_render#70 main::@31/(byte/signed byte/word/signed word/dword/signed dword) 64 ) + [150] (byte) render_screen_render#22 ← phi( main::@23/(byte~) render_screen_render#70 main::@31/(byte/signed byte/word/signed word/dword/signed dword) $40 ) to:render_playfield::@1 render_playfield::@1: scope:[render_playfield] from render_playfield render_playfield::@3 [151] (byte) render_playfield::i#3 ← phi( render_playfield/(const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::i#1 ) @@ -10485,8 +10485,8 @@ play_move_rotate::@return: scope:[play_move_rotate] from play_move_rotate::@11 [185] return to:@return play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@6 - [186] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#20 + (byte/signed byte/word/signed word/dword/signed dword) 16 - [187] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 + [186] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#20 + (byte/signed byte/word/signed word/dword/signed dword) $10 + [187] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) $3f to:play_move_rotate::@4 play_move_rotate::@4: scope:[play_move_rotate] from play_move_rotate::@1 play_move_rotate::@2 [188] (byte) play_move_rotate::orientation#3 ← phi( play_move_rotate::@1/(byte) play_move_rotate::orientation#1 play_move_rotate::@2/(byte) play_move_rotate::orientation#2 ) @@ -10506,8 +10506,8 @@ play_move_rotate::@11: scope:[play_move_rotate] from play_move_rotate::@14 [198] (byte*) current_piece_gfx#7 ← (byte*) current_piece#15 + (byte) current_orientation#7 to:play_move_rotate::@return play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate - [199] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#20 - (byte/signed byte/word/signed word/dword/signed dword) 16 - [200] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 + [199] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#20 - (byte/signed byte/word/signed word/dword/signed dword) $10 + [200] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) $3f to:play_move_rotate::@4 play_collision: scope:[play_collision] from play_move_down::@12 play_move_leftright::@1 play_move_leftright::@7 play_move_rotate::@4 play_spawn_current [201] (byte) play_collision::xpos#6 ← phi( play_move_down::@12/(byte) play_collision::xpos#0 play_move_leftright::@1/(byte) play_collision::xpos#1 play_move_leftright::@7/(byte) play_collision::xpos#2 play_move_rotate::@4/(byte) play_collision::xpos#3 play_spawn_current/(byte) play_collision::xpos#4 ) @@ -10539,7 +10539,7 @@ play_collision::@return: scope:[play_collision] from play_collision::@17 play_c [212] return to:@return play_collision::@4: scope:[play_collision] from play_collision::@8 - [213] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 + [213] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) $80 [214] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 to:play_collision::@return play_collision::@5: scope:[play_collision] from play_collision::@4 @@ -10757,7 +10757,7 @@ play_update_score: scope:[play_update_score] from play_move_down::@20 to:play_update_score::@3 play_update_score::@3: scope:[play_update_score] from play_update_score [312] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 - [313] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 + [313] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) $f0 [314] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 [315] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) asm { sed } @@ -10765,7 +10765,7 @@ play_update_score::@3: scope:[play_update_score] from play_update_score [318] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 asm { cld } [320] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 - [321] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 + [321] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) $f0 [322] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return to:play_update_score::@4 play_update_score::@4: scope:[play_update_score] from play_update_score::@3 @@ -10782,7 +10782,7 @@ play_update_score::@return: scope:[play_update_score] from play_update_score pl to:@return play_increase_level: scope:[play_increase_level] from play_update_score::@4 [327] (byte) level#21 ← ++ (byte) level#10 - [328] if((byte) level#21>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 + [328] if((byte) level#21>(byte/signed byte/word/signed word/dword/signed dword) $1d) goto play_increase_level::@2 to:play_increase_level::@5 play_increase_level::@5: scope:[play_increase_level] from play_increase_level [329] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#21) @@ -10790,8 +10790,8 @@ play_increase_level::@5: scope:[play_increase_level] from play_increase_level play_increase_level::@2: scope:[play_increase_level] from play_increase_level play_increase_level::@5 [330] (byte) current_movedown_slow#69 ← phi( play_increase_level/(byte/signed byte/word/signed word/dword/signed dword) 1 play_increase_level::@5/(byte) current_movedown_slow#10 ) [331] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 - [332] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 - [333] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 + [332] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) $f + [333] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) $a) goto play_increase_level::@3 to:play_increase_level::@7 play_increase_level::@7: scope:[play_increase_level] from play_increase_level::@2 [334] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 @@ -10853,7 +10853,7 @@ play_remove_lines::@4: scope:[play_remove_lines] from play_remove_lines::@10 pl to:play_remove_lines::@5 play_remove_lines::@5: scope:[play_remove_lines] from play_remove_lines::@4 play_remove_lines::@6 [361] (byte) play_remove_lines::w#6 ← phi( play_remove_lines::@4/(byte) play_remove_lines::w#11 play_remove_lines::@6/(byte) play_remove_lines::w#3 ) - [362] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 + [362] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) $ff) goto play_remove_lines::@6 to:play_remove_lines::@return play_remove_lines::@return: scope:[play_remove_lines] from play_remove_lines::@5 [363] return @@ -10923,7 +10923,7 @@ keyboard_event_get::@3: scope:[keyboard_event_get] from keyboard_event_get to:keyboard_event_get::@return keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get keyboard_event_get::@3 [393] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) - [393] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get/(byte/word/signed word/dword/signed dword) 255 keyboard_event_get::@3/(byte) keyboard_event_get::return#1 ) + [393] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get/(byte/word/signed word/dword/signed dword) $ff keyboard_event_get::@3/(byte) keyboard_event_get::return#1 ) [394] return to:@return keyboard_event_scan: scope:[keyboard_event_scan] from main::@35 @@ -11030,7 +11030,7 @@ keyboard_event_scan::@19: scope:[keyboard_event_scan] from keyboard_event_scan: [444] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 to:keyboard_event_scan::@3 keyboard_event_scan::@7: scope:[keyboard_event_scan] from keyboard_event_scan::@16 - [445] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 + [445] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) $40 [446] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 [447] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 to:keyboard_event_scan::@5 @@ -11096,7 +11096,7 @@ sprites_irq_init: scope:[sprites_irq_init] from main::@27 [480] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [481] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [482] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [483] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 + [483] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f [484] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [485] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [486] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() @@ -11106,18 +11106,18 @@ sprites_irq_init::@return: scope:[sprites_irq_init] from sprites_irq_init [488] return to:@return sprites_init: scope:[sprites_init] from main::@26 - [489] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 + [489] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) $f [490] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [491] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [492] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) to:sprites_init::@1 sprites_init::@1: scope:[sprites_init] from sprites_init sprites_init::@1 - [493] (byte) sprites_init::xpos#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 sprites_init::@1/(byte) sprites_init::xpos#1 ) + [493] (byte) sprites_init::xpos#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) $18+(byte/signed byte/word/signed word/dword/signed dword) $f*(byte/signed byte/word/signed word/dword/signed dword) 8 sprites_init::@1/(byte) sprites_init::xpos#1 ) [493] (byte) sprites_init::s#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 0 sprites_init::@1/(byte) sprites_init::s#1 ) [494] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [495] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [496] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 - [497] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 + [497] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 [498] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 [499] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 to:sprites_init::@return @@ -11150,15 +11150,15 @@ render_init::@4: scope:[render_init] from render_init::@3 [513] call render_screen_original to:render_init::@1 render_init::@1: scope:[render_init] from render_init::@1 render_init::@4 - [514] (byte*) render_init::li_2#2 ← phi( render_init::@1/(byte*) render_init::li_2#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 ) - [514] (byte*) render_init::li_1#2 ← phi( render_init::@1/(byte*) render_init::li_1#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 ) + [514] (byte*) render_init::li_2#2 ← phi( render_init::@1/(byte*) render_init::li_2#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $10 ) + [514] (byte*) render_init::li_1#2 ← phi( render_init::@1/(byte*) render_init::li_1#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $10 ) [514] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [515] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [516] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 [517] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [518] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 - [519] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [520] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [519] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 + [520] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 [521] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 [522] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 to:render_init::@return @@ -11170,8 +11170,8 @@ render_screen_original: scope:[render_screen_original] from render_init::@3 ren to:render_screen_original::@1 render_screen_original::@1: scope:[render_screen_original] from render_screen_original render_screen_original::@7 [525] (byte) render_screen_original::y#6 ← phi( render_screen_original/(byte/signed byte/word/signed word/dword/signed dword) 0 render_screen_original::@7/(byte) render_screen_original::y#1 ) - [525] (byte*) render_screen_original::ocols#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::ocols#1 ) - [525] (byte*) render_screen_original::oscr#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::oscr#1 ) + [525] (byte*) render_screen_original::ocols#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) $20*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::ocols#1 ) + [525] (byte*) render_screen_original::oscr#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) $20*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::oscr#1 ) [525] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS#0 render_screen_original::@7/(byte*) render_screen_original::cols#3 ) [525] (byte*) render_screen_original::screen#8 ← phi( render_screen_original/(byte*) render_screen_original::screen#9 render_screen_original::@7/(byte*) render_screen_original::screen#10 ) to:render_screen_original::@2 @@ -11199,7 +11199,7 @@ render_screen_original::@3: scope:[render_screen_original] from render_screen_o [538] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 [539] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 [540] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 - [541] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 + [541] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) $24) goto render_screen_original::@3 to:render_screen_original::@4 render_screen_original::@4: scope:[render_screen_original] from render_screen_original::@3 render_screen_original::@4 [542] (byte) render_screen_original::x#6 ← phi( render_screen_original::@3/(byte) render_screen_original::x#2 render_screen_original::@4/(byte) render_screen_original::x#3 ) @@ -11210,17 +11210,17 @@ render_screen_original::@4: scope:[render_screen_original] from render_screen_o [545] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 [546] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 [547] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 - [548] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 + [548] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render_screen_original::@4 to:render_screen_original::@7 render_screen_original::@7: scope:[render_screen_original] from render_screen_original::@4 [549] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 - [550] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 + [550] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto render_screen_original::@1 to:render_screen_original::@return render_screen_original::@return: scope:[render_screen_original] from render_screen_original::@7 [551] return to:@return sid_rnd_init: scope:[sid_rnd_init] from main - [552] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 + [552] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) $ffff [553] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 to:sid_rnd_init::@return sid_rnd_init::@return: scope:[sid_rnd_init] from sid_rnd_init @@ -11256,11 +11256,11 @@ sprites_irq::@3: scope:[sprites_irq] from sprites_irq::@2 sprites_irq::@9 [573] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 to:sprites_irq::@11 sprites_irq::@11: scope:[sprites_irq] from sprites_irq::@3 - [574] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 + [574] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) $a) goto sprites_irq::@5 to:sprites_irq::@12 sprites_irq::@12: scope:[sprites_irq] from sprites_irq::@11 - [575] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 - [576] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [575] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $14 + [576] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [577] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 to:sprites_irq::@7 sprites_irq::@7: scope:[sprites_irq] from sprites_irq::@12 sprites_irq::@15 sprites_irq::@5 @@ -11274,11 +11274,11 @@ sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@7 sprites_irq::@5: scope:[sprites_irq] from sprites_irq::@11 [582] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [583] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 - [584] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [584] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [585] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 to:sprites_irq::@7 sprites_irq::@4: scope:[sprites_irq] from sprites_irq::@3 - [586] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [586] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [587] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 to:sprites_irq::toSpritePtr2 sprites_irq::toSpritePtr2: scope:[sprites_irq] from sprites_irq::@4 @@ -12998,7 +12998,7 @@ b24: // The raster line of the next IRQ lda #IRQ_RASTER_FIRST sta irq_raster_next -//SEG13 [7] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuc1 +//SEG13 [7] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuc1 // Y-pos of the sprites on the next IRQ lda #SPRITES_FIRST_YPOS+$15 sta irq_sprite_ypos @@ -13104,7 +13104,7 @@ main: { //SEG55 [29] call render_playfield //SEG56 [150] phi from main::@31 to render_playfield [phi:main::@31->render_playfield] render_playfield_from_b31: - //SEG57 [150] phi (byte) render_screen_render#22 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@31->render_playfield#0] -- vbuz1=vbuc1 + //SEG57 [150] phi (byte) render_screen_render#22 = (byte/signed byte/word/signed word/dword/signed dword) $40 [phi:main::@31->render_playfield#0] -- vbuz1=vbuc1 lda #$40 sta render_screen_render_22 jsr render_playfield @@ -13131,7 +13131,7 @@ main: { //SEG65 [129] phi (byte) current_piece_char#68 = (byte~) current_piece_char#106 [phi:main::@32->render_moving#0] -- register_copy //SEG66 [129] phi (byte*) current_piece_gfx#64 = (byte*~) current_piece_gfx#118 [phi:main::@32->render_moving#1] -- register_copy //SEG67 [129] phi (byte) current_xpos#59 = (byte~) current_xpos#128 [phi:main::@32->render_moving#2] -- register_copy - //SEG68 [129] phi (byte) render_screen_render#33 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@32->render_moving#3] -- vbuz1=vbuc1 + //SEG68 [129] phi (byte) render_screen_render#33 = (byte/signed byte/word/signed word/dword/signed dword) $40 [phi:main::@32->render_moving#3] -- vbuz1=vbuc1 lda #$40 sta render_screen_render_33 //SEG69 [129] phi (byte) current_ypos#13 = (byte~) current_ypos#104 [phi:main::@32->render_moving#4] -- register_copy @@ -13146,7 +13146,7 @@ main: { //SEG73 [108] phi from main::@33 to render_next [phi:main::@33->render_next] render_next_from_b33: //SEG74 [108] phi (byte) next_piece_idx#12 = (byte~) next_piece_idx#84 [phi:main::@33->render_next#0] -- register_copy - //SEG75 [108] phi (byte) render_screen_render#15 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@33->render_next#1] -- vbuz1=vbuc1 + //SEG75 [108] phi (byte) render_screen_render#15 = (byte/signed byte/word/signed word/dword/signed dword) $40 [phi:main::@33->render_next#1] -- vbuz1=vbuc1 lda #$40 sta render_screen_render_15 jsr render_next @@ -13193,7 +13193,7 @@ main: { //SEG90 [38] phi (byte) current_piece_char#10 = (byte) current_piece_char#5 [phi:main::@33->main::@1#12] -- register_copy //SEG91 [38] phi (byte*) current_piece#10 = (byte*~) current_piece#96 [phi:main::@33->main::@1#13] -- register_copy //SEG92 [38] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#1 [phi:main::@33->main::@1#14] -- register_copy - //SEG93 [38] phi (byte) render_screen_render#18 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@33->main::@1#15] -- vbuz1=vbuc1 + //SEG93 [38] phi (byte) render_screen_render#18 = (byte/signed byte/word/signed word/dword/signed dword) $40 [phi:main::@33->main::@1#15] -- vbuz1=vbuc1 lda #$40 sta render_screen_render //SEG94 [38] phi (byte) render_screen_show#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@33->main::@1#16] -- vbuz1=vbuc1 @@ -13224,7 +13224,7 @@ main: { // Wait for a frame to pass //SEG112 main::@4 b4: - //SEG113 [39] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG113 [39] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -13386,11 +13386,11 @@ main: { //SEG187 render_screen_swap // Swap rendering to the other screen (used for double buffering) render_screen_swap: { - //SEG188 [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 + //SEG188 [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte/signed byte/word/signed word/dword/signed dword) $40 -- vbuz1=vbuz1_bxor_vbuc1 lda render_screen_render eor #$40 sta render_screen_render - //SEG189 [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 + //SEG189 [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) $40 -- vbuz1=vbuz1_bxor_vbuc1 lda render_screen_show eor #$40 sta render_screen_show @@ -13650,7 +13650,7 @@ render_bcd: { jmp b1 //SEG266 render_bcd::@1 b1: - //SEG267 [103] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG267 [103] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and bcd sta _5 @@ -13798,7 +13798,7 @@ render_next: { jmp b11 //SEG312 render_next::@11 b11: - //SEG313 [124] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte/signed byte/word/signed word/dword/signed dword) 36 -- pbuz1=pbuz1_plus_vbuc1 + //SEG313 [124] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte/signed byte/word/signed word/dword/signed dword) $24 -- pbuz1=pbuz1_plus_vbuc1 lda screen_next_area clc adc #$24 @@ -14176,12 +14176,12 @@ play_move_rotate: { rts //SEG432 play_move_rotate::@2 b2: - //SEG433 [186] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#20 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_plus_vbuc1 + //SEG433 [186] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#20 + (byte/signed byte/word/signed word/dword/signed dword) $10 -- vbuz1=vbuz2_plus_vbuc1 lda #$10 clc adc current_orientation sta _2 - //SEG434 [187] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuz2_band_vbuc1 + //SEG434 [187] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) $3f -- vbuz1=vbuz2_band_vbuc1 lda #$3f and _2 sta orientation @@ -14251,12 +14251,12 @@ play_move_rotate: { jmp breturn //SEG459 play_move_rotate::@1 b1: - //SEG460 [199] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#20 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_minus_vbuc1 + //SEG460 [199] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#20 - (byte/signed byte/word/signed word/dword/signed dword) $10 -- vbuz1=vbuz2_minus_vbuc1 lda current_orientation sec sbc #$10 sta _4 - //SEG461 [200] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuz2_band_vbuc1 + //SEG461 [200] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) $3f -- vbuz1=vbuz2_band_vbuc1 lda #$3f and _4 sta orientation @@ -14359,7 +14359,7 @@ play_collision: { rts //SEG485 play_collision::@4 b4: - //SEG486 [213] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG486 [213] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) $80 -- vbuz1=vbuz2_band_vbuc1 lda #$80 and col sta _7 @@ -15018,7 +15018,7 @@ play_update_score: { //SEG745 [312] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 -- vbuz1=_lo_vwuz2 lda lines_bcd sta _2 - //SEG746 [313] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 -- vbuz1=vbuz2_band_vbuc1 + //SEG746 [313] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) $f0 -- vbuz1=vbuz2_band_vbuc1 lda #$f0 and _2 sta lines_before @@ -15066,7 +15066,7 @@ play_update_score: { //SEG753 [320] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 -- vbuz1=_lo_vwuz2 lda lines_bcd sta _5 - //SEG754 [321] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 -- vbuz1=vbuz2_band_vbuc1 + //SEG754 [321] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) $f0 -- vbuz1=vbuz2_band_vbuc1 lda #$f0 and _5 sta lines_after @@ -15104,7 +15104,7 @@ play_increase_level: { .label b = $4c //SEG768 [327] (byte) level#21 ← ++ (byte) level#10 -- vbuz1=_inc_vbuz1 inc level - //SEG769 [328] if((byte) level#21>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 -- vbuz1_gt_vbuc1_then_la1 + //SEG769 [328] if((byte) level#21>(byte/signed byte/word/signed word/dword/signed dword) $1d) goto play_increase_level::@2 -- vbuz1_gt_vbuc1_then_la1 // Update speed of moving tetrominos down lda level cmp #$1d @@ -15132,11 +15132,11 @@ play_increase_level: { b2: //SEG777 [331] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 -- vbuz1=_inc_vbuz1 inc level_bcd - //SEG778 [332] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG778 [332] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and level_bcd sta _1 - //SEG779 [333] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG779 [333] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) $a) goto play_increase_level::@3 -- vbuz1_neq_vbuc1_then_la1 lda _1 cmp #$a bne b3_from_b2 @@ -15336,7 +15336,7 @@ play_remove_lines: { // Write zeros in the rest of the lines //SEG845 play_remove_lines::@5 b5: - //SEG846 [362] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 -- vbuz1_neq_vbuc1_then_la1 + //SEG846 [362] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) $ff) goto play_remove_lines::@6 -- vbuz1_neq_vbuc1_then_la1 lda w cmp #$ff bne b6 @@ -15549,7 +15549,7 @@ keyboard_event_get: { //SEG911 [393] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] breturn_from_keyboard_event_get: //SEG912 [393] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG913 [393] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuz1=vbuc1 + //SEG913 [393] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) $ff [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuz1=vbuc1 lda #$ff sta return jmp breturn @@ -15867,7 +15867,7 @@ keyboard_event_scan: { jmp b3_from_b19 //SEG1019 keyboard_event_scan::@7 b7: - //SEG1020 [445] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz2_bor_vbuc1 + //SEG1020 [445] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) $40 -- vbuz1=vbuz2_bor_vbuc1 lda #$40 ora keycode sta _11 @@ -16095,7 +16095,7 @@ sprites_irq_init: { // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG1083 [483] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + //SEG1083 [483] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set raster line lda VIC_CONTROL and #$7f @@ -16127,7 +16127,7 @@ sprites_init: { .label s2 = $dd .label xpos = $66 .label s = $65 - //SEG1091 [489] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 + //SEG1091 [489] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) $f -- _deref_pbuc1=vbuc2 lda #$f sta SPRITES_ENABLE //SEG1092 [490] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 @@ -16141,7 +16141,7 @@ sprites_init: { sta SPRITES_EXPAND_X //SEG1095 [493] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] b1_from_sprites_init: - //SEG1096 [493] phi (byte) sprites_init::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 + //SEG1096 [493] phi (byte) sprites_init::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) $18+(byte/signed byte/word/signed word/dword/signed dword) $f*(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 lda #$18+$f*8 sta xpos //SEG1097 [493] phi (byte) sprites_init::s#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sprites_init->sprites_init::@1#1] -- vbuz1=vbuc1 @@ -16167,7 +16167,7 @@ sprites_init: { ldy s lda #BLACK sta SPRITES_COLS,y - //SEG1105 [497] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1105 [497] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 -- vbuz1=vbuz1_plus_vbuc1 lda #$18 clc adc xpos @@ -16257,12 +16257,12 @@ render_init: { jsr render_screen_original //SEG1132 [514] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] b1_from_b4: - //SEG1133 [514] phi (byte*) render_init::li_2#2 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#0] -- pbuz1=pbuc1 + //SEG1133 [514] phi (byte*) render_init::li_2#2 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $10 [phi:render_init::@4->render_init::@1#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2+2*$28+$10 sta li_2+1 - //SEG1134 [514] phi (byte*) render_init::li_1#2 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#1] -- pbuz1=pbuc1 + //SEG1134 [514] phi (byte*) render_init::li_1#2 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $10 [phi:render_init::@4->render_init::@1#1] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1+2*$28+$10 @@ -16299,7 +16299,7 @@ render_init: { sta screen_lines_2,y lda li_2+1 sta screen_lines_2+1,y - //SEG1145 [519] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG1145 [519] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda li_1 clc adc #$28 @@ -16307,7 +16307,7 @@ render_init: { bcc !+ inc li_1+1 !: - //SEG1146 [520] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG1146 [520] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda li_2 clc adc #$28 @@ -16344,12 +16344,12 @@ render_screen_original: { //SEG1153 [525] phi (byte) render_screen_original::y#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_screen_original->render_screen_original::@1#0] -- vbuz1=vbuc1 lda #0 sta y - //SEG1154 [525] phi (byte*) render_screen_original::ocols#4 = (const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#1] -- pbuz1=pbuc1 + //SEG1154 [525] phi (byte*) render_screen_original::ocols#4 = (const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) $20*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#1] -- pbuz1=pbuc1 lda #PLAYFIELD_COLORS_ORIGINAL+$20*2 sta ocols+1 - //SEG1155 [525] phi (byte*) render_screen_original::oscr#4 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 + //SEG1155 [525] phi (byte*) render_screen_original::oscr#4 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) $20*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_ORIGINAL+$20*2 @@ -16454,7 +16454,7 @@ render_screen_original: { !: //SEG1193 [540] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuz1=_inc_vbuz1 inc x - //SEG1194 [541] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG1194 [541] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) $24) goto render_screen_original::@3 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #$24 bne b3_from_b3 @@ -16487,7 +16487,7 @@ render_screen_original: { !: //SEG1204 [547] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuz1=_inc_vbuz1 inc x - //SEG1205 [548] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG1205 [548] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render_screen_original::@4 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #$28 bne b4_from_b4 @@ -16496,7 +16496,7 @@ render_screen_original: { b7: //SEG1207 [549] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG1208 [550] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1208 [550] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto render_screen_original::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$19 bne b1_from_b7 @@ -16509,7 +16509,7 @@ render_screen_original: { //SEG1211 sid_rnd_init // Initialize SID voice 3 for random number generation sid_rnd_init: { - //SEG1212 [552] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 + //SEG1212 [552] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) $ffff -- _deref_pwuc1=vwuc2 lda #<$ffff sta SID_VOICE3_FREQ lda #>$ffff @@ -16623,19 +16623,19 @@ sprites_irq: { jmp b11 //SEG1241 sprites_irq::@11 b11: - //SEG1242 [574] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 -- vbuz1_eq_vbuc1_then_la1 + //SEG1242 [574] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) $a) goto sprites_irq::@5 -- vbuz1_eq_vbuc1_then_la1 lda irq_cnt_1 cmp #$a beq b5 jmp b12 //SEG1243 sprites_irq::@12 b12: - //SEG1244 [575] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 -- vbuz1=vbuz2_plus_vbuc1 + //SEG1244 [575] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $14 -- vbuz1=vbuz2_plus_vbuc1 lda #$14 clc adc irq_raster_next sta irq_raster_next_3 - //SEG1245 [576] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 + //SEG1245 [576] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuz2_plus_vbuc1 lda #$15 clc adc irq_sprite_ypos @@ -16680,7 +16680,7 @@ sprites_irq: { //SEG1256 [583] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next_2 - //SEG1257 [584] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 + //SEG1257 [584] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuz2_plus_vbuc1 lda #$15 clc adc irq_sprite_ypos @@ -16693,7 +16693,7 @@ sprites_irq: { jmp b7_from_b5 //SEG1259 sprites_irq::@4 b4: - //SEG1260 [586] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 + //SEG1260 [586] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuz2_plus_vbuc1 lda #$15 clc adc irq_raster_next @@ -16838,7 +16838,7 @@ sprites_irq: { REGISTER UPLIFT POTENTIAL REGISTERS Statement [1] (byte) render_screen_showing#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a Statement [6] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( ) always clobbers reg byte a -Statement [7] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 21 [ ] ( ) always clobbers reg byte a +Statement [7] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) $15 [ ] ( ) always clobbers reg byte a Statement [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0+(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( ) always clobbers reg byte a Statement [10] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a Statement [32] (byte*~) current_piece_gfx#118 ← (byte*) current_piece_gfx#74 [ current_ypos#104 current_ypos#6 current_xpos#128 current_xpos#103 current_piece_gfx#118 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 ] ( main:12 [ current_ypos#104 current_ypos#6 current_xpos#128 current_xpos#103 current_piece_gfx#118 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a @@ -16852,7 +16852,7 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:176 [ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:64 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:75 [ game_over#65 game_over#28 game_over#10 game_over#15 game_over#52 ] Statement [37] (byte*~) current_piece#96 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#96 current_movedown_slow#1 game_over#52 ] ( main:12 [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#96 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a -Statement [39] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ( main:12 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ) always clobbers reg byte a +Statement [39] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ( main:12 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ render_screen_render#18 render_screen_render#11 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:69 [ current_orientation#38 current_orientation#13 current_orientation#17 current_orientation#20 current_orientation#25 current_orientation#7 ] @@ -16862,8 +16862,8 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:63 [ l Removing always clobbered register reg byte a as potential for zp ZP_BYTE:65 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] Statement [60] (byte*~) current_piece_gfx#119 ← (byte*) current_piece_gfx#18 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 current_ypos#105 render_screen_render#69 current_xpos#129 current_piece_gfx#119 ] ( main:12 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 current_ypos#105 render_screen_render#69 current_xpos#129 current_piece_gfx#119 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:24 [ render_screen_render#33 render_screen_render#69 ] -Statement [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 [ render_screen_show#16 render_screen_render#11 ] ( main:12::render_screen_swap:69 [ current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_screen_show#16 render_screen_render#11 ] ) always clobbers reg byte a -Statement [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 [ render_screen_show#13 render_screen_render#11 ] ( main:12::render_screen_swap:69 [ current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a +Statement [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte/signed byte/word/signed word/dword/signed dword) $40 [ render_screen_show#16 render_screen_render#11 ] ( main:12::render_screen_swap:69 [ current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_screen_show#16 render_screen_render#11 ] ) always clobbers reg byte a +Statement [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) $40 [ render_screen_show#13 render_screen_render#11 ] ( main:12::render_screen_swap:69 [ current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a Statement [76] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#0 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#0 ] ) always clobbers reg byte a Statement [79] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#1 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#1 ] ) always clobbers reg byte a Statement [82] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#2 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#2 ] ) always clobbers reg byte a @@ -16892,7 +16892,7 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:63 [ l Removing always clobbered register reg byte y as potential for zp ZP_BYTE:3 [ render_screen_render#18 render_screen_render#11 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:65 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:12 [ render_bcd::bcd#6 render_bcd::bcd#0 render_bcd::bcd#1 render_bcd::bcd#2 render_bcd::bcd#3 render_bcd::bcd#4 render_bcd::bcd#5 ] -Statement [103] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ render_bcd::screen_pos#3 render_bcd::$5 ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 render_bcd::$5 ] ) always clobbers reg byte a +Statement [103] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) $f [ render_bcd::screen_pos#3 render_bcd::$5 ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 render_bcd::$5 ] ) always clobbers reg byte a Statement [104] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 [ render_bcd::screen_pos#3 render_bcd::$6 ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 render_bcd::$6 ] ) always clobbers reg byte a Statement [105] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 [ render_bcd::screen_pos#3 ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 ] ) always clobbers reg byte y Statement [106] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 [ ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 ] ) always clobbers reg byte a @@ -16908,7 +16908,7 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:17 [ r Removing always clobbered register reg byte a as potential for zp ZP_BYTE:22 [ render_next::c#2 render_next::c#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:22 [ render_next::c#2 render_next::c#1 ] Statement [120] *((byte*) render_next::screen_next_area#5) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ( main:12::render_next:36 [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ) always clobbers reg byte a reg byte y -Statement [124] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte/signed byte/word/signed word/dword/signed dword) 36 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] ( main:12::render_next:36 [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] ) always clobbers reg byte a +Statement [124] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte/signed byte/word/signed word/dword/signed dword) $24 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] ( main:12::render_next:36 [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] ) always clobbers reg byte a Statement [128] *((byte*) render_next::screen_next_area#5) ← (byte) render_next::next_piece_char#0 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ( main:12::render_next:36 [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ) always clobbers reg byte a reg byte y Statement [130] (byte) render_moving::ypos2#0 ← (byte) current_ypos#13 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos2#0 ] ( main:12::render_moving:34 [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos2#0 ] main:12::render_moving:62 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos2#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:28 [ current_piece_char#68 current_piece_char#106 current_piece_char#107 ] @@ -16938,17 +16938,17 @@ Statement [168] (byte) play_movement::render#1 ← (byte/signed byte/word/signed Removing always clobbered register reg byte a as potential for zp ZP_BYTE:126 [ play_movement::key_event#0 ] Statement [176] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 [ current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_movement::render#2 ] ( main:12::play_movement:51 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_movement::render#2 ] ) always clobbers reg byte a Statement [181] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 [ current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::return#0 current_orientation#25 current_piece_gfx#21 current_xpos#26 ] ( main:12::play_movement:51 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::return#0 current_orientation#25 current_piece_gfx#21 current_xpos#26 ] ) always clobbers reg byte a -Statement [186] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#20 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$2 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$2 ] ) always clobbers reg byte a +Statement [186] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#20 + (byte/signed byte/word/signed word/dword/signed dword) $10 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$2 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:150 [ play_movement::render#2 ] -Statement [187] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#2 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#2 ] ) always clobbers reg byte a +Statement [187] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) $3f [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#2 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#2 ] ) always clobbers reg byte a Statement [192] (byte*~) current_piece#101 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#101 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#101 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:42 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:47 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:46 [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:45 [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] Statement [198] (byte*) current_piece_gfx#7 ← (byte*) current_piece#15 + (byte) current_orientation#7 [ current_piece#15 current_ypos#19 current_xpos#26 current_orientation#7 current_piece_gfx#7 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_xpos#26 current_orientation#7 current_piece_gfx#7 ] ) always clobbers reg byte a -Statement [199] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#20 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$4 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$4 ] ) always clobbers reg byte a -Statement [200] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#1 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#1 ] ) always clobbers reg byte a +Statement [199] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#20 - (byte/signed byte/word/signed word/dword/signed dword) $10 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$4 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$4 ] ) always clobbers reg byte a +Statement [200] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) $3f [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#1 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#1 ] ) always clobbers reg byte a Statement [202] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 [ play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:40 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] Statement [203] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a @@ -16960,7 +16960,7 @@ Statement [209] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision Removing always clobbered register reg byte a as potential for zp ZP_BYTE:51 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:52 [ play_collision::c#2 play_collision::c#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:162 [ play_collision::i#1 ] -Statement [213] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ) always clobbers reg byte a +Statement [213] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) $80 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ) always clobbers reg byte a Statement [216] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a Statement [230] (byte*~) current_piece#100 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#100 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ( main:12::play_movement:51::play_move_leftright:173 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#100 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ) always clobbers reg byte a Statement [241] (byte*~) current_piece#99 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#99 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ( main:12::play_movement:51::play_move_leftright:173 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#99 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ) always clobbers reg byte a @@ -16976,17 +16976,17 @@ Statement [294] (byte*~) current_piece#102 ← (byte*)*((const word[]) PIECES#0 Statement [307] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$6 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#52 play_spawn_current::piece_idx#1 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#52 play_spawn_current::piece_idx#1 ] main:12::play_spawn_current:27 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#52 play_spawn_current::piece_idx#1 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#52 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a Statement [312] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:174 [ play_update_score::removed#0 ] -Statement [313] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ) always clobbers reg byte a +Statement [313] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) $f0 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ) always clobbers reg byte a Statement [314] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:183 [ play_update_score::lines_before#0 ] Statement [315] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ) always clobbers reg byte a Statement [317] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 [ current_movedown_slow#14 score_bcd#18 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#30 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 score_bcd#18 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#30 ] ) always clobbers reg byte a Statement [318] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 ] ) always clobbers reg byte a Statement [320] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::$5 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::$5 ] ) always clobbers reg byte a -Statement [321] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ) always clobbers reg byte a -Statement [328] if((byte) level#21>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 [ level_bcd#11 level#21 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level_bcd#11 level#21 ] ) always clobbers reg byte a +Statement [321] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) $f0 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ) always clobbers reg byte a +Statement [328] if((byte) level#21>(byte/signed byte/word/signed word/dword/signed dword) $1d) goto play_increase_level::@2 [ level_bcd#11 level#21 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level_bcd#11 level#21 ] ) always clobbers reg byte a Statement [329] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#21) [ level_bcd#11 level#21 current_movedown_slow#10 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level_bcd#11 level#21 current_movedown_slow#10 ] ) always clobbers reg byte a -Statement [332] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ level#21 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level#21 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ) always clobbers reg byte a +Statement [332] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) $f [ level#21 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level#21 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ) always clobbers reg byte a Statement [334] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 [ level#21 current_movedown_slow#69 level_bcd#8 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level#21 current_movedown_slow#69 level_bcd#8 ] ) always clobbers reg byte a Statement [338] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ level#21 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 play_increase_level::b4#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level#21 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 play_increase_level::b4#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:76 [ play_increase_level::b#2 play_increase_level::b#1 ] @@ -17027,7 +17027,7 @@ Statement [433] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan: Statement [436] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ( main:12::keyboard_event_scan:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a Statement [438] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ( main:12::keyboard_event_scan:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a Statement [444] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ( main:12::keyboard_event_scan:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a -Statement [445] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ( main:12::keyboard_event_scan:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a +Statement [445] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) $40 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ( main:12::keyboard_event_scan:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a Statement [448] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:12::keyboard_event_scan:43::keyboard_matrix_read:398 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a Statement [449] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:12::keyboard_event_scan:43::keyboard_matrix_read:398 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a Statement [455] *((const byte*) BGCOL2#0) ← *((const byte[]) PIECES_COLORS_1#0 + (byte) level#10) [ render_screen_show#16 level#10 ] ( main:12::render_show:41 [ render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level_bcd#11 render_screen_show#16 level#10 ] ) always clobbers reg byte a @@ -17048,11 +17048,11 @@ Statement asm { ldaCIA1_INTERRUPT } always clobbers reg byte a Statement [480] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a Statement [481] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a Statement [482] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [483] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [483] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a Statement [484] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a Statement [485] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a Statement [486] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [489] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [489] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) $f [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a Statement [490] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a Statement [491] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a Statement [492] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a @@ -17061,7 +17061,7 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:101 [ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:102 [ sprites_init::xpos#2 sprites_init::xpos#1 ] Statement [495] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a Statement [496] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a -Statement [497] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ sprites_init::s#2 sprites_init::xpos#1 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a +Statement [497] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 [ sprites_init::s#2 sprites_init::xpos#1 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a Statement [502] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a Statement [504] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a Statement [505] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a @@ -17075,8 +17075,8 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:103 [ Statement [516] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a Statement [517] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$14 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$14 ] ) always clobbers reg byte a Statement [518] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a -Statement [519] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ) always clobbers reg byte a -Statement [520] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ) always clobbers reg byte a +Statement [519] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ) always clobbers reg byte a +Statement [520] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ) always clobbers reg byte a Statement [527] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ( main:12::render_init:17::render_screen_original:511 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] main:12::render_init:17::render_screen_original:513 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp ZP_BYTE:108 [ render_screen_original::y#6 render_screen_original::y#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:108 [ render_screen_original::y#6 render_screen_original::y#1 ] @@ -17087,38 +17087,38 @@ Statement [534] *((byte*) render_screen_original::screen#6) ← *((byte*) render Statement [537] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ( main:12::render_init:17::render_screen_original:511 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] main:12::render_init:17::render_screen_original:513 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ) always clobbers reg byte a reg byte y Statement [543] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:12::render_init:17::render_screen_original:511 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] main:12::render_init:17::render_screen_original:513 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y Statement [545] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:12::render_init:17::render_screen_original:511 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] main:12::render_init:17::render_screen_original:513 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y -Statement [552] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a +Statement [552] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) $ffff [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a Statement [553] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a Statement [563] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ( [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ) always clobbers reg byte a Statement [565] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:227 [ sprites_irq::ptr#0 ] Statement [572] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte y Statement [573] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte a -Statement [574] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a -Statement [575] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a -Statement [576] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a +Statement [574] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) $a) goto sprites_irq::@5 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a +Statement [575] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $14 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a +Statement [576] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [ irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a Statement [577] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#3 ] ( [ irq_raster_next#3 ] ) always clobbers reg byte a Statement [579] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 [ ] ( [ ] ) always clobbers reg byte a Statement [580] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a Statement [581] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y Statement [582] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a Statement [583] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a -Statement [584] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a +Statement [584] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [ irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a Statement [585] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#2 ] ( [ irq_raster_next#2 ] ) always clobbers reg byte a -Statement [586] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [586] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a Statement [587] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a Statement [589] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a Statement [1] (byte) render_screen_showing#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a Statement [6] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( ) always clobbers reg byte a -Statement [7] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 21 [ ] ( ) always clobbers reg byte a +Statement [7] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) $15 [ ] ( ) always clobbers reg byte a Statement [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0+(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( ) always clobbers reg byte a Statement [10] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a Statement [32] (byte*~) current_piece_gfx#118 ← (byte*) current_piece_gfx#74 [ current_ypos#104 current_ypos#6 current_xpos#128 current_xpos#103 current_piece_gfx#118 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 ] ( main:12 [ current_ypos#104 current_ypos#6 current_xpos#128 current_xpos#103 current_piece_gfx#118 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a Statement [37] (byte*~) current_piece#96 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#96 current_movedown_slow#1 game_over#52 ] ( main:12 [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#96 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a -Statement [39] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ( main:12 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ) always clobbers reg byte a +Statement [39] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ( main:12 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ) always clobbers reg byte a Statement [60] (byte*~) current_piece_gfx#119 ← (byte*) current_piece_gfx#18 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 current_ypos#105 render_screen_render#69 current_xpos#129 current_piece_gfx#119 ] ( main:12 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 current_ypos#105 render_screen_render#69 current_xpos#129 current_piece_gfx#119 ] ) always clobbers reg byte a -Statement [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 [ render_screen_show#16 render_screen_render#11 ] ( main:12::render_screen_swap:69 [ current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_screen_show#16 render_screen_render#11 ] ) always clobbers reg byte a -Statement [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 [ render_screen_show#13 render_screen_render#11 ] ( main:12::render_screen_swap:69 [ current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a +Statement [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte/signed byte/word/signed word/dword/signed dword) $40 [ render_screen_show#16 render_screen_render#11 ] ( main:12::render_screen_swap:69 [ current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_screen_show#16 render_screen_render#11 ] ) always clobbers reg byte a +Statement [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) $40 [ render_screen_show#13 render_screen_render#11 ] ( main:12::render_screen_swap:69 [ current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a Statement [76] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#0 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#0 ] ) always clobbers reg byte a Statement [79] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#1 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#1 ] ) always clobbers reg byte a Statement [82] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#2 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#2 ] ) always clobbers reg byte a @@ -17131,7 +17131,7 @@ Statement [96] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 Statement [98] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] ) always clobbers reg byte a Statement [99] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$3 [ render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] ) always clobbers reg byte a Statement [100] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 [ render_bcd::bcd#6 render_bcd::screen_pos#0 ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte y -Statement [103] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ render_bcd::screen_pos#3 render_bcd::$5 ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 render_bcd::$5 ] ) always clobbers reg byte a +Statement [103] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) $f [ render_bcd::screen_pos#3 render_bcd::$5 ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 render_bcd::$5 ] ) always clobbers reg byte a Statement [104] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 [ render_bcd::screen_pos#3 render_bcd::$6 ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 render_bcd::$6 ] ) always clobbers reg byte a Statement [105] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 [ render_bcd::screen_pos#3 ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 ] ) always clobbers reg byte y Statement [106] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 [ ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 ] ) always clobbers reg byte a @@ -17141,7 +17141,7 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:135 [ Statement [114] (byte*~) render_next::next_piece_gfx#9 ← (byte*)*((const word[]) PIECES#0 + (byte~) render_next::$6) [ render_next::screen_next_area#11 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] ( main:12::render_next:36 [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::screen_next_area#11 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_next::screen_next_area#11 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] ) always clobbers reg byte a Statement [117] (byte) render_next::cell#0 ← *((byte*) render_next::next_piece_gfx#2) [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#5 render_next::c#2 render_next::cell#0 ] ( main:12::render_next:36 [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#5 render_next::c#2 render_next::cell#0 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#5 render_next::c#2 render_next::cell#0 ] ) always clobbers reg byte a reg byte y Statement [120] *((byte*) render_next::screen_next_area#5) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ( main:12::render_next:36 [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ) always clobbers reg byte a reg byte y -Statement [124] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte/signed byte/word/signed word/dword/signed dword) 36 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] ( main:12::render_next:36 [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] ) always clobbers reg byte a +Statement [124] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte/signed byte/word/signed word/dword/signed dword) $24 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] ( main:12::render_next:36 [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] ) always clobbers reg byte a Statement [128] *((byte*) render_next::screen_next_area#5) ← (byte) render_next::next_piece_char#0 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ( main:12::render_next:36 [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ) always clobbers reg byte a reg byte y Statement [130] (byte) render_moving::ypos2#0 ← (byte) current_ypos#13 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos2#0 ] ( main:12::render_moving:34 [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos2#0 ] main:12::render_moving:62 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos2#0 ] ) always clobbers reg byte a Statement [132] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@2 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 ] ( main:12::render_moving:34 [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 ] main:12::render_moving:62 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 ] ) always clobbers reg byte a @@ -17157,17 +17157,17 @@ Statement [156] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLA Statement [168] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 [ current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#20 current_piece_gfx#20 current_xpos#22 ] ( main:12::play_movement:51 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#20 current_piece_gfx#20 current_xpos#22 ] ) always clobbers reg byte a Statement [176] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 [ current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_movement::render#2 ] ( main:12::play_movement:51 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_movement::render#2 ] ) always clobbers reg byte a Statement [181] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 [ current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::return#0 current_orientation#25 current_piece_gfx#21 current_xpos#26 ] ( main:12::play_movement:51 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::return#0 current_orientation#25 current_piece_gfx#21 current_xpos#26 ] ) always clobbers reg byte a -Statement [186] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#20 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$2 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$2 ] ) always clobbers reg byte a -Statement [187] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#2 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#2 ] ) always clobbers reg byte a +Statement [186] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#20 + (byte/signed byte/word/signed word/dword/signed dword) $10 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$2 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$2 ] ) always clobbers reg byte a +Statement [187] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) $3f [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#2 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#2 ] ) always clobbers reg byte a Statement [192] (byte*~) current_piece#101 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#101 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#101 ] ) always clobbers reg byte a Statement [198] (byte*) current_piece_gfx#7 ← (byte*) current_piece#15 + (byte) current_orientation#7 [ current_piece#15 current_ypos#19 current_xpos#26 current_orientation#7 current_piece_gfx#7 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_xpos#26 current_orientation#7 current_piece_gfx#7 ] ) always clobbers reg byte a -Statement [199] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#20 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$4 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$4 ] ) always clobbers reg byte a -Statement [200] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#1 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#1 ] ) always clobbers reg byte a +Statement [199] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#20 - (byte/signed byte/word/signed word/dword/signed dword) $10 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$4 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$4 ] ) always clobbers reg byte a +Statement [200] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) $3f [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#1 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#1 ] ) always clobbers reg byte a Statement [202] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 [ play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] ) always clobbers reg byte a Statement [203] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a Statement [205] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a Statement [209] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a -Statement [213] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ) always clobbers reg byte a +Statement [213] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) $80 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ) always clobbers reg byte a Statement [216] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a Statement [230] (byte*~) current_piece#100 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#100 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ( main:12::play_movement:51::play_move_leftright:173 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#100 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ) always clobbers reg byte a Statement [241] (byte*~) current_piece#99 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#99 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ( main:12::play_movement:51::play_move_leftright:173 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#99 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ) always clobbers reg byte a @@ -17181,16 +17181,16 @@ Statement [291] (byte) current_ypos#6 ← *((const byte[]) PIECES_START_Y#0 + (b Statement [294] (byte*~) current_piece#102 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 current_piece#102 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 current_piece#102 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] main:12::play_spawn_current:27 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 current_piece#102 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 current_piece#102 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] ) always clobbers reg byte a Statement [307] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$6 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#52 play_spawn_current::piece_idx#1 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#52 play_spawn_current::piece_idx#1 ] main:12::play_spawn_current:27 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#52 play_spawn_current::piece_idx#1 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#52 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a Statement [312] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ) always clobbers reg byte a -Statement [313] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ) always clobbers reg byte a +Statement [313] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) $f0 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ) always clobbers reg byte a Statement [314] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ) always clobbers reg byte a Statement [315] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ) always clobbers reg byte a Statement [317] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 [ current_movedown_slow#14 score_bcd#18 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#30 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 score_bcd#18 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#30 ] ) always clobbers reg byte a Statement [318] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 ] ) always clobbers reg byte a Statement [320] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::$5 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::$5 ] ) always clobbers reg byte a -Statement [321] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ) always clobbers reg byte a -Statement [328] if((byte) level#21>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 [ level_bcd#11 level#21 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level_bcd#11 level#21 ] ) always clobbers reg byte a +Statement [321] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) $f0 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ) always clobbers reg byte a +Statement [328] if((byte) level#21>(byte/signed byte/word/signed word/dword/signed dword) $1d) goto play_increase_level::@2 [ level_bcd#11 level#21 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level_bcd#11 level#21 ] ) always clobbers reg byte a Statement [329] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#21) [ level_bcd#11 level#21 current_movedown_slow#10 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level_bcd#11 level#21 current_movedown_slow#10 ] ) always clobbers reg byte a -Statement [332] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ level#21 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level#21 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ) always clobbers reg byte a +Statement [332] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) $f [ level#21 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level#21 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ) always clobbers reg byte a Statement [334] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 [ level#21 current_movedown_slow#69 level_bcd#8 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level#21 current_movedown_slow#69 level_bcd#8 ] ) always clobbers reg byte a Statement [338] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ level#21 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 play_increase_level::b4#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level#21 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 play_increase_level::b4#0 ] ) always clobbers reg byte a Statement [339] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) [ level#21 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level#21 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 ] ) always clobbers reg byte a @@ -17213,7 +17213,7 @@ Statement [433] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan: Statement [436] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ( main:12::keyboard_event_scan:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a Statement [438] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ( main:12::keyboard_event_scan:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a Statement [444] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ( main:12::keyboard_event_scan:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a -Statement [445] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ( main:12::keyboard_event_scan:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a +Statement [445] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) $40 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ( main:12::keyboard_event_scan:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a Statement [448] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:12::keyboard_event_scan:43::keyboard_matrix_read:398 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a Statement [449] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:12::keyboard_event_scan:43::keyboard_matrix_read:398 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a Statement [455] *((const byte*) BGCOL2#0) ← *((const byte[]) PIECES_COLORS_1#0 + (byte) level#10) [ render_screen_show#16 level#10 ] ( main:12::render_show:41 [ render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level_bcd#11 render_screen_show#16 level#10 ] ) always clobbers reg byte a @@ -17231,18 +17231,18 @@ Statement asm { ldaCIA1_INTERRUPT } always clobbers reg byte a Statement [480] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a Statement [481] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a Statement [482] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [483] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [483] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a Statement [484] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a Statement [485] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a Statement [486] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [489] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [489] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) $f [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a Statement [490] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a Statement [491] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a Statement [492] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a Statement [494] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ) always clobbers reg byte a Statement [495] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a Statement [496] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a -Statement [497] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ sprites_init::s#2 sprites_init::xpos#1 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a +Statement [497] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 [ sprites_init::s#2 sprites_init::xpos#1 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a Statement [502] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a Statement [504] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a Statement [505] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a @@ -17255,45 +17255,45 @@ Statement [515] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/si Statement [516] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a Statement [517] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$14 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$14 ] ) always clobbers reg byte a Statement [518] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a -Statement [519] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ) always clobbers reg byte a -Statement [520] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ) always clobbers reg byte a +Statement [519] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ) always clobbers reg byte a +Statement [520] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ) always clobbers reg byte a Statement [527] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ( main:12::render_init:17::render_screen_original:511 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] main:12::render_init:17::render_screen_original:513 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ) always clobbers reg byte a reg byte y Statement [529] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ( main:12::render_init:17::render_screen_original:511 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] main:12::render_init:17::render_screen_original:513 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ) always clobbers reg byte a reg byte y Statement [534] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ( main:12::render_init:17::render_screen_original:511 [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] main:12::render_init:17::render_screen_original:513 [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ) always clobbers reg byte a reg byte y Statement [537] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ( main:12::render_init:17::render_screen_original:511 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] main:12::render_init:17::render_screen_original:513 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ) always clobbers reg byte a reg byte y Statement [543] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:12::render_init:17::render_screen_original:511 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] main:12::render_init:17::render_screen_original:513 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y Statement [545] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:12::render_init:17::render_screen_original:511 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] main:12::render_init:17::render_screen_original:513 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y -Statement [552] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a +Statement [552] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) $ffff [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a Statement [553] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a Statement [563] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ( [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ) always clobbers reg byte a Statement [565] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ) always clobbers reg byte a Statement [572] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte y Statement [573] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte a -Statement [574] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a -Statement [575] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a -Statement [576] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a +Statement [574] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) $a) goto sprites_irq::@5 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a +Statement [575] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $14 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a +Statement [576] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [ irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a Statement [577] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#3 ] ( [ irq_raster_next#3 ] ) always clobbers reg byte a Statement [579] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 [ ] ( [ ] ) always clobbers reg byte a Statement [580] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a Statement [581] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y Statement [582] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a Statement [583] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a -Statement [584] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a +Statement [584] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [ irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a Statement [585] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#2 ] ( [ irq_raster_next#2 ] ) always clobbers reg byte a -Statement [586] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [586] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a Statement [587] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a Statement [589] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a Statement [1] (byte) render_screen_showing#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a Statement [6] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( ) always clobbers reg byte a -Statement [7] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 21 [ ] ( ) always clobbers reg byte a +Statement [7] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) $15 [ ] ( ) always clobbers reg byte a Statement [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0+(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( ) always clobbers reg byte a Statement [10] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a Statement [32] (byte*~) current_piece_gfx#118 ← (byte*) current_piece_gfx#74 [ current_ypos#104 current_ypos#6 current_xpos#128 current_xpos#103 current_piece_gfx#118 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 ] ( main:12 [ current_ypos#104 current_ypos#6 current_xpos#128 current_xpos#103 current_piece_gfx#118 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a Statement [37] (byte*~) current_piece#96 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#96 current_movedown_slow#1 game_over#52 ] ( main:12 [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#96 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a -Statement [39] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ( main:12 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ) always clobbers reg byte a +Statement [39] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ( main:12 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ) always clobbers reg byte a Statement [60] (byte*~) current_piece_gfx#119 ← (byte*) current_piece_gfx#18 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 current_ypos#105 render_screen_render#69 current_xpos#129 current_piece_gfx#119 ] ( main:12 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 current_ypos#105 render_screen_render#69 current_xpos#129 current_piece_gfx#119 ] ) always clobbers reg byte a -Statement [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 [ render_screen_show#16 render_screen_render#11 ] ( main:12::render_screen_swap:69 [ current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_screen_show#16 render_screen_render#11 ] ) always clobbers reg byte a -Statement [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 [ render_screen_show#13 render_screen_render#11 ] ( main:12::render_screen_swap:69 [ current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a +Statement [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte/signed byte/word/signed word/dword/signed dword) $40 [ render_screen_show#16 render_screen_render#11 ] ( main:12::render_screen_swap:69 [ current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_screen_show#16 render_screen_render#11 ] ) always clobbers reg byte a +Statement [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) $40 [ render_screen_show#13 render_screen_render#11 ] ( main:12::render_screen_swap:69 [ current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a Statement [76] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#0 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#0 ] ) always clobbers reg byte a Statement [79] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#1 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#1 ] ) always clobbers reg byte a Statement [82] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#2 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#2 ] ) always clobbers reg byte a @@ -17306,7 +17306,7 @@ Statement [96] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 Statement [98] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] ) always clobbers reg byte a Statement [99] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$3 [ render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] ) always clobbers reg byte a Statement [100] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 [ render_bcd::bcd#6 render_bcd::screen_pos#0 ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte y -Statement [103] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ render_bcd::screen_pos#3 render_bcd::$5 ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 render_bcd::$5 ] ) always clobbers reg byte a +Statement [103] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) $f [ render_bcd::screen_pos#3 render_bcd::$5 ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 render_bcd::$5 ] ) always clobbers reg byte a Statement [104] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 [ render_bcd::screen_pos#3 render_bcd::$6 ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 render_bcd::$6 ] ) always clobbers reg byte a Statement [105] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 [ render_bcd::screen_pos#3 ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 ] ) always clobbers reg byte y Statement [106] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 [ ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 ] ) always clobbers reg byte a @@ -17315,7 +17315,7 @@ Statement [113] (byte) render_next::next_piece_char#0 ← *((const byte[]) PIECE Statement [114] (byte*~) render_next::next_piece_gfx#9 ← (byte*)*((const word[]) PIECES#0 + (byte~) render_next::$6) [ render_next::screen_next_area#11 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] ( main:12::render_next:36 [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::screen_next_area#11 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_next::screen_next_area#11 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] ) always clobbers reg byte a Statement [117] (byte) render_next::cell#0 ← *((byte*) render_next::next_piece_gfx#2) [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#5 render_next::c#2 render_next::cell#0 ] ( main:12::render_next:36 [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#5 render_next::c#2 render_next::cell#0 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#5 render_next::c#2 render_next::cell#0 ] ) always clobbers reg byte a reg byte y Statement [120] *((byte*) render_next::screen_next_area#5) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ( main:12::render_next:36 [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ) always clobbers reg byte a reg byte y -Statement [124] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte/signed byte/word/signed word/dword/signed dword) 36 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] ( main:12::render_next:36 [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] ) always clobbers reg byte a +Statement [124] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte/signed byte/word/signed word/dword/signed dword) $24 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] ( main:12::render_next:36 [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] ) always clobbers reg byte a Statement [128] *((byte*) render_next::screen_next_area#5) ← (byte) render_next::next_piece_char#0 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ( main:12::render_next:36 [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ) always clobbers reg byte a reg byte y Statement [130] (byte) render_moving::ypos2#0 ← (byte) current_ypos#13 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos2#0 ] ( main:12::render_moving:34 [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos2#0 ] main:12::render_moving:62 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos2#0 ] ) always clobbers reg byte a Statement [132] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@2 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 ] ( main:12::render_moving:34 [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 ] main:12::render_moving:62 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 ] ) always clobbers reg byte a @@ -17331,17 +17331,17 @@ Statement [156] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLA Statement [168] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 [ current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#20 current_piece_gfx#20 current_xpos#22 ] ( main:12::play_movement:51 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#20 current_piece_gfx#20 current_xpos#22 ] ) always clobbers reg byte a Statement [176] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 [ current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_movement::render#2 ] ( main:12::play_movement:51 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_movement::render#2 ] ) always clobbers reg byte a Statement [181] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 [ current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::return#0 current_orientation#25 current_piece_gfx#21 current_xpos#26 ] ( main:12::play_movement:51 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::return#0 current_orientation#25 current_piece_gfx#21 current_xpos#26 ] ) always clobbers reg byte a -Statement [186] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#20 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$2 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$2 ] ) always clobbers reg byte a -Statement [187] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#2 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#2 ] ) always clobbers reg byte a +Statement [186] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#20 + (byte/signed byte/word/signed word/dword/signed dword) $10 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$2 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$2 ] ) always clobbers reg byte a +Statement [187] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) $3f [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#2 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#2 ] ) always clobbers reg byte a Statement [192] (byte*~) current_piece#101 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#101 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#101 ] ) always clobbers reg byte a Statement [198] (byte*) current_piece_gfx#7 ← (byte*) current_piece#15 + (byte) current_orientation#7 [ current_piece#15 current_ypos#19 current_xpos#26 current_orientation#7 current_piece_gfx#7 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_xpos#26 current_orientation#7 current_piece_gfx#7 ] ) always clobbers reg byte a -Statement [199] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#20 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$4 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$4 ] ) always clobbers reg byte a -Statement [200] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#1 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#1 ] ) always clobbers reg byte a +Statement [199] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#20 - (byte/signed byte/word/signed word/dword/signed dword) $10 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$4 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$4 ] ) always clobbers reg byte a +Statement [200] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) $3f [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#1 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#1 ] ) always clobbers reg byte a Statement [202] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 [ play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] ) always clobbers reg byte a Statement [203] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a Statement [205] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a Statement [209] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a -Statement [213] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ) always clobbers reg byte a +Statement [213] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) $80 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ) always clobbers reg byte a Statement [216] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a Statement [230] (byte*~) current_piece#100 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#100 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ( main:12::play_movement:51::play_move_leftright:173 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#100 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ) always clobbers reg byte a Statement [241] (byte*~) current_piece#99 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#99 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ( main:12::play_movement:51::play_move_leftright:173 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#99 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ) always clobbers reg byte a @@ -17355,16 +17355,16 @@ Statement [291] (byte) current_ypos#6 ← *((const byte[]) PIECES_START_Y#0 + (b Statement [294] (byte*~) current_piece#102 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 current_piece#102 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 current_piece#102 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] main:12::play_spawn_current:27 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 current_piece#102 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 current_piece#102 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] ) always clobbers reg byte a Statement [307] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$6 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#52 play_spawn_current::piece_idx#1 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#52 play_spawn_current::piece_idx#1 ] main:12::play_spawn_current:27 [ current_movedown_slow#1 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#52 play_spawn_current::piece_idx#1 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#103 current_piece_gfx#74 current_piece_char#5 play_spawn_current::$0 game_over#52 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a Statement [312] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ) always clobbers reg byte a -Statement [313] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ) always clobbers reg byte a +Statement [313] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) $f0 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ) always clobbers reg byte a Statement [314] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ) always clobbers reg byte a Statement [315] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ) always clobbers reg byte a Statement [317] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 [ current_movedown_slow#14 score_bcd#18 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#30 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 score_bcd#18 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#30 ] ) always clobbers reg byte a Statement [318] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 ] ) always clobbers reg byte a Statement [320] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::$5 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::$5 ] ) always clobbers reg byte a -Statement [321] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ) always clobbers reg byte a -Statement [328] if((byte) level#21>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 [ level_bcd#11 level#21 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level_bcd#11 level#21 ] ) always clobbers reg byte a +Statement [321] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) $f0 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ) always clobbers reg byte a +Statement [328] if((byte) level#21>(byte/signed byte/word/signed word/dword/signed dword) $1d) goto play_increase_level::@2 [ level_bcd#11 level#21 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level_bcd#11 level#21 ] ) always clobbers reg byte a Statement [329] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#21) [ level_bcd#11 level#21 current_movedown_slow#10 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level_bcd#11 level#21 current_movedown_slow#10 ] ) always clobbers reg byte a -Statement [332] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ level#21 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level#21 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ) always clobbers reg byte a +Statement [332] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) $f [ level#21 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level#21 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ) always clobbers reg byte a Statement [334] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 [ level#21 current_movedown_slow#69 level_bcd#8 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level#21 current_movedown_slow#69 level_bcd#8 ] ) always clobbers reg byte a Statement [338] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ level#21 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 play_increase_level::b4#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level#21 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 play_increase_level::b4#0 ] ) always clobbers reg byte a Statement [339] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) [ level#21 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level#21 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 ] ) always clobbers reg byte a @@ -17387,7 +17387,7 @@ Statement [433] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan: Statement [436] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ( main:12::keyboard_event_scan:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a Statement [438] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ( main:12::keyboard_event_scan:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a Statement [444] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ( main:12::keyboard_event_scan:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a -Statement [445] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ( main:12::keyboard_event_scan:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a +Statement [445] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) $40 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ( main:12::keyboard_event_scan:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a Statement [448] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:12::keyboard_event_scan:43::keyboard_matrix_read:398 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a Statement [449] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:12::keyboard_event_scan:43::keyboard_matrix_read:398 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a Statement [455] *((const byte*) BGCOL2#0) ← *((const byte[]) PIECES_COLORS_1#0 + (byte) level#10) [ render_screen_show#16 level#10 ] ( main:12::render_show:41 [ render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#112 current_xpos#122 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level_bcd#11 render_screen_show#16 level#10 ] ) always clobbers reg byte a @@ -17405,18 +17405,18 @@ Statement asm { ldaCIA1_INTERRUPT } always clobbers reg byte a Statement [480] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a Statement [481] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a Statement [482] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [483] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [483] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a Statement [484] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a Statement [485] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a Statement [486] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [489] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [489] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) $f [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a Statement [490] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a Statement [491] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a Statement [492] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a Statement [494] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ) always clobbers reg byte a Statement [495] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a Statement [496] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a -Statement [497] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ sprites_init::s#2 sprites_init::xpos#1 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a +Statement [497] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 [ sprites_init::s#2 sprites_init::xpos#1 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a Statement [502] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a Statement [504] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a Statement [505] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a @@ -17429,32 +17429,32 @@ Statement [515] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/si Statement [516] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a Statement [517] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$14 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$14 ] ) always clobbers reg byte a Statement [518] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a -Statement [519] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ) always clobbers reg byte a -Statement [520] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ) always clobbers reg byte a +Statement [519] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ) always clobbers reg byte a +Statement [520] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ) always clobbers reg byte a Statement [527] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ( main:12::render_init:17::render_screen_original:511 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] main:12::render_init:17::render_screen_original:513 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ) always clobbers reg byte a reg byte y Statement [529] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ( main:12::render_init:17::render_screen_original:511 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] main:12::render_init:17::render_screen_original:513 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ) always clobbers reg byte a reg byte y Statement [534] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ( main:12::render_init:17::render_screen_original:511 [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] main:12::render_init:17::render_screen_original:513 [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ) always clobbers reg byte a reg byte y Statement [537] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ( main:12::render_init:17::render_screen_original:511 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] main:12::render_init:17::render_screen_original:513 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ) always clobbers reg byte a reg byte y Statement [543] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:12::render_init:17::render_screen_original:511 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] main:12::render_init:17::render_screen_original:513 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y Statement [545] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:12::render_init:17::render_screen_original:511 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] main:12::render_init:17::render_screen_original:513 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y -Statement [552] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a +Statement [552] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) $ffff [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a Statement [553] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a Statement [563] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ( [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ) always clobbers reg byte a Statement [565] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ) always clobbers reg byte a Statement [572] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte y Statement [573] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte a -Statement [574] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a -Statement [575] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a -Statement [576] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a +Statement [574] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) $a) goto sprites_irq::@5 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a +Statement [575] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $14 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a +Statement [576] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [ irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a Statement [577] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#3 ] ( [ irq_raster_next#3 ] ) always clobbers reg byte a Statement [579] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 [ ] ( [ ] ) always clobbers reg byte a Statement [580] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a Statement [581] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y Statement [582] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a Statement [583] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a -Statement [584] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a +Statement [584] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [ irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a Statement [585] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#2 ] ( [ irq_raster_next#2 ] ) always clobbers reg byte a -Statement [586] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [586] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a Statement [587] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a Statement [589] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] : zp ZP_BYTE:2 , reg byte x , @@ -18257,7 +18257,7 @@ b24: // The raster line of the next IRQ lda #IRQ_RASTER_FIRST sta irq_raster_next -//SEG13 [7] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuc1 +//SEG13 [7] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuc1 // Y-pos of the sprites on the next IRQ lda #SPRITES_FIRST_YPOS+$15 sta irq_sprite_ypos @@ -18361,7 +18361,7 @@ main: { //SEG55 [29] call render_playfield //SEG56 [150] phi from main::@31 to render_playfield [phi:main::@31->render_playfield] render_playfield_from_b31: - //SEG57 [150] phi (byte) render_screen_render#22 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@31->render_playfield#0] -- vbuxx=vbuc1 + //SEG57 [150] phi (byte) render_screen_render#22 = (byte/signed byte/word/signed word/dword/signed dword) $40 [phi:main::@31->render_playfield#0] -- vbuxx=vbuc1 ldx #$40 jsr render_playfield jmp b32 @@ -18385,7 +18385,7 @@ main: { //SEG65 [129] phi (byte) current_piece_char#68 = (byte~) current_piece_char#106 [phi:main::@32->render_moving#0] -- register_copy //SEG66 [129] phi (byte*) current_piece_gfx#64 = (byte*~) current_piece_gfx#118 [phi:main::@32->render_moving#1] -- register_copy //SEG67 [129] phi (byte) current_xpos#59 = (byte~) current_xpos#128 [phi:main::@32->render_moving#2] -- register_copy - //SEG68 [129] phi (byte) render_screen_render#33 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@32->render_moving#3] -- vbuz1=vbuc1 + //SEG68 [129] phi (byte) render_screen_render#33 = (byte/signed byte/word/signed word/dword/signed dword) $40 [phi:main::@32->render_moving#3] -- vbuz1=vbuc1 lda #$40 sta render_screen_render_33 //SEG69 [129] phi (byte) current_ypos#13 = (byte~) current_ypos#104 [phi:main::@32->render_moving#4] -- register_copy @@ -18399,7 +18399,7 @@ main: { //SEG73 [108] phi from main::@33 to render_next [phi:main::@33->render_next] render_next_from_b33: //SEG74 [108] phi (byte) next_piece_idx#12 = (byte~) next_piece_idx#84 [phi:main::@33->render_next#0] -- register_copy - //SEG75 [108] phi (byte) render_screen_render#15 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@33->render_next#1] -- vbuaa=vbuc1 + //SEG75 [108] phi (byte) render_screen_render#15 = (byte/signed byte/word/signed word/dword/signed dword) $40 [phi:main::@33->render_next#1] -- vbuaa=vbuc1 lda #$40 jsr render_next //SEG76 [37] (byte*~) current_piece#96 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) -- pbuz1=pptc1_derefidx_vbuz2 @@ -18445,7 +18445,7 @@ main: { //SEG90 [38] phi (byte) current_piece_char#10 = (byte) current_piece_char#5 [phi:main::@33->main::@1#12] -- register_copy //SEG91 [38] phi (byte*) current_piece#10 = (byte*~) current_piece#96 [phi:main::@33->main::@1#13] -- register_copy //SEG92 [38] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#1 [phi:main::@33->main::@1#14] -- register_copy - //SEG93 [38] phi (byte) render_screen_render#18 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@33->main::@1#15] -- vbuz1=vbuc1 + //SEG93 [38] phi (byte) render_screen_render#18 = (byte/signed byte/word/signed word/dword/signed dword) $40 [phi:main::@33->main::@1#15] -- vbuz1=vbuc1 lda #$40 sta render_screen_render //SEG94 [38] phi (byte) render_screen_show#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@33->main::@1#16] -- vbuz1=vbuc1 @@ -18476,7 +18476,7 @@ main: { // Wait for a frame to pass //SEG112 main::@4 b4: - //SEG113 [39] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG113 [39] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -18624,11 +18624,11 @@ main: { //SEG187 render_screen_swap // Swap rendering to the other screen (used for double buffering) render_screen_swap: { - //SEG188 [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 + //SEG188 [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte/signed byte/word/signed word/dword/signed dword) $40 -- vbuz1=vbuz1_bxor_vbuc1 lda render_screen_render eor #$40 sta render_screen_render - //SEG189 [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 + //SEG189 [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) $40 -- vbuz1=vbuz1_bxor_vbuc1 lda render_screen_show eor #$40 sta render_screen_show @@ -18842,7 +18842,7 @@ render_bcd: { jmp b1 //SEG266 render_bcd::@1 b1: - //SEG267 [103] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG267 [103] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG268 [104] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 -- vbuaa=vbuc1_plus_vbuaa @@ -18973,7 +18973,7 @@ render_next: { jmp b11 //SEG312 render_next::@11 b11: - //SEG313 [124] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte/signed byte/word/signed word/dword/signed dword) 36 -- pbuz1=pbuz1_plus_vbuc1 + //SEG313 [124] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte/signed byte/word/signed word/dword/signed dword) $24 -- pbuz1=pbuz1_plus_vbuc1 lda screen_next_area clc adc #$24 @@ -19311,11 +19311,11 @@ play_move_rotate: { rts //SEG432 play_move_rotate::@2 b2: - //SEG433 [186] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#20 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 + //SEG433 [186] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#20 + (byte/signed byte/word/signed word/dword/signed dword) $10 -- vbuaa=vbuz1_plus_vbuc1 lda #$10 clc adc current_orientation - //SEG434 [187] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 + //SEG434 [187] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) $3f -- vbuz1=vbuaa_band_vbuc1 and #$3f sta orientation //SEG435 [188] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@4 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4] @@ -19377,11 +19377,11 @@ play_move_rotate: { jmp breturn //SEG459 play_move_rotate::@1 b1: - //SEG460 [199] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#20 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 + //SEG460 [199] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#20 - (byte/signed byte/word/signed word/dword/signed dword) $10 -- vbuaa=vbuz1_minus_vbuc1 lda current_orientation sec sbc #$10 - //SEG461 [200] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 + //SEG461 [200] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) $3f -- vbuz1=vbuaa_band_vbuc1 and #$3f sta orientation jmp b4_from_b1 @@ -19470,7 +19470,7 @@ play_collision: { rts //SEG485 play_collision::@4 b4: - //SEG486 [213] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG486 [213] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuz1_band_vbuc1 lda #$80 and col //SEG487 [214] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -- vbuaa_eq_0_then_la1 @@ -20045,7 +20045,7 @@ play_update_score: { b3: //SEG745 [312] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 -- vbuaa=_lo_vwuz1 lda lines_bcd - //SEG746 [313] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 -- vbuz1=vbuaa_band_vbuc1 + //SEG746 [313] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) $f0 -- vbuz1=vbuaa_band_vbuc1 and #$f0 sta lines_before //SEG747 [314] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 @@ -20090,7 +20090,7 @@ play_update_score: { cld //SEG753 [320] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 -- vbuaa=_lo_vwuz1 lda lines_bcd - //SEG754 [321] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 -- vbuaa=vbuaa_band_vbuc1 + //SEG754 [321] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) $f0 -- vbuaa=vbuaa_band_vbuc1 and #$f0 //SEG755 [322] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return -- vbuz1_eq_vbuaa_then_la1 cmp lines_before @@ -20122,7 +20122,7 @@ play_update_score: { play_increase_level: { //SEG768 [327] (byte) level#21 ← ++ (byte) level#10 -- vbuz1=_inc_vbuz1 inc level - //SEG769 [328] if((byte) level#21>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 -- vbuz1_gt_vbuc1_then_la1 + //SEG769 [328] if((byte) level#21>(byte/signed byte/word/signed word/dword/signed dword) $1d) goto play_increase_level::@2 -- vbuz1_gt_vbuc1_then_la1 // Update speed of moving tetrominos down lda level cmp #$1d @@ -20150,10 +20150,10 @@ play_increase_level: { b2: //SEG777 [331] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 -- vbuz1=_inc_vbuz1 inc level_bcd - //SEG778 [332] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG778 [332] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and level_bcd - //SEG779 [333] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 -- vbuaa_neq_vbuc1_then_la1 + //SEG779 [333] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) $a) goto play_increase_level::@3 -- vbuaa_neq_vbuc1_then_la1 cmp #$a bne b3_from_b2 jmp b7 @@ -20342,7 +20342,7 @@ play_remove_lines: { // Write zeros in the rest of the lines //SEG845 play_remove_lines::@5 b5: - //SEG846 [362] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 -- vbuxx_neq_vbuc1_then_la1 + //SEG846 [362] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) $ff) goto play_remove_lines::@6 -- vbuxx_neq_vbuc1_then_la1 cpx #$ff bne b6 jmp breturn @@ -20535,7 +20535,7 @@ keyboard_event_get: { //SEG911 [393] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] breturn_from_keyboard_event_get: //SEG912 [393] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG913 [393] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuxx=vbuc1 + //SEG913 [393] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) $ff [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuxx=vbuc1 ldx #$ff jmp breturn //SEG914 keyboard_event_get::@return @@ -20806,7 +20806,7 @@ keyboard_event_scan: { jmp b3_from_b19 //SEG1019 keyboard_event_scan::@7 b7: - //SEG1020 [445] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuaa=vbuz1_bor_vbuc1 + //SEG1020 [445] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) $40 -- vbuaa=vbuz1_bor_vbuc1 lda #$40 ora keycode //SEG1021 [446] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa @@ -21012,7 +21012,7 @@ sprites_irq_init: { // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG1083 [483] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + //SEG1083 [483] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set raster line lda VIC_CONTROL and #$7f @@ -21042,7 +21042,7 @@ sprites_irq_init: { // Setup the sprites sprites_init: { .label xpos = 2 - //SEG1091 [489] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 + //SEG1091 [489] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) $f -- _deref_pbuc1=vbuc2 lda #$f sta SPRITES_ENABLE //SEG1092 [490] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 @@ -21056,7 +21056,7 @@ sprites_init: { sta SPRITES_EXPAND_X //SEG1095 [493] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] b1_from_sprites_init: - //SEG1096 [493] phi (byte) sprites_init::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 + //SEG1096 [493] phi (byte) sprites_init::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) $18+(byte/signed byte/word/signed word/dword/signed dword) $f*(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 lda #$18+$f*8 sta xpos //SEG1097 [493] phi (byte) sprites_init::s#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sprites_init->sprites_init::@1#1] -- vbuxx=vbuc1 @@ -21079,7 +21079,7 @@ sprites_init: { //SEG1104 [496] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #BLACK sta SPRITES_COLS,x - //SEG1105 [497] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1105 [497] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 -- vbuz1=vbuz1_plus_vbuc1 lda #$18 clc adc xpos @@ -21165,12 +21165,12 @@ render_init: { jsr render_screen_original //SEG1132 [514] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] b1_from_b4: - //SEG1133 [514] phi (byte*) render_init::li_2#2 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#0] -- pbuz1=pbuc1 + //SEG1133 [514] phi (byte*) render_init::li_2#2 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $10 [phi:render_init::@4->render_init::@1#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2+2*$28+$10 sta li_2+1 - //SEG1134 [514] phi (byte*) render_init::li_1#2 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#1] -- pbuz1=pbuc1 + //SEG1134 [514] phi (byte*) render_init::li_1#2 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $10 [phi:render_init::@4->render_init::@1#1] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1+2*$28+$10 @@ -21204,7 +21204,7 @@ render_init: { sta screen_lines_2,y lda li_2+1 sta screen_lines_2+1,y - //SEG1145 [519] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG1145 [519] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda li_1 clc adc #$28 @@ -21212,7 +21212,7 @@ render_init: { bcc !+ inc li_1+1 !: - //SEG1146 [520] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG1146 [520] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda li_2 clc adc #$28 @@ -21247,12 +21247,12 @@ render_screen_original: { //SEG1153 [525] phi (byte) render_screen_original::y#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_screen_original->render_screen_original::@1#0] -- vbuz1=vbuc1 lda #0 sta y - //SEG1154 [525] phi (byte*) render_screen_original::ocols#4 = (const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#1] -- pbuz1=pbuc1 + //SEG1154 [525] phi (byte*) render_screen_original::ocols#4 = (const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) $20*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#1] -- pbuz1=pbuc1 lda #PLAYFIELD_COLORS_ORIGINAL+$20*2 sta ocols+1 - //SEG1155 [525] phi (byte*) render_screen_original::oscr#4 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 + //SEG1155 [525] phi (byte*) render_screen_original::oscr#4 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) $20*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_ORIGINAL+$20*2 @@ -21355,7 +21355,7 @@ render_screen_original: { !: //SEG1193 [540] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx inx - //SEG1194 [541] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG1194 [541] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) $24) goto render_screen_original::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$24 bne b3_from_b3 //SEG1195 [542] phi from render_screen_original::@3 render_screen_original::@4 to render_screen_original::@4 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4] @@ -21387,7 +21387,7 @@ render_screen_original: { !: //SEG1204 [547] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx inx - //SEG1205 [548] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 -- vbuxx_neq_vbuc1_then_la1 + //SEG1205 [548] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render_screen_original::@4 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b4_from_b4 jmp b7 @@ -21395,7 +21395,7 @@ render_screen_original: { b7: //SEG1207 [549] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG1208 [550] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1208 [550] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto render_screen_original::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$19 bne b1_from_b7 @@ -21408,7 +21408,7 @@ render_screen_original: { //SEG1211 sid_rnd_init // Initialize SID voice 3 for random number generation sid_rnd_init: { - //SEG1212 [552] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 + //SEG1212 [552] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) $ffff -- _deref_pwuc1=vwuc2 lda #<$ffff sta SID_VOICE3_FREQ lda #>$ffff @@ -21499,19 +21499,19 @@ sprites_irq: { jmp b11 //SEG1241 sprites_irq::@11 b11: - //SEG1242 [574] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 -- vbuz1_eq_vbuc1_then_la1 + //SEG1242 [574] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) $a) goto sprites_irq::@5 -- vbuz1_eq_vbuc1_then_la1 lda irq_cnt cmp #$a beq b5 jmp b12 //SEG1243 sprites_irq::@12 b12: - //SEG1244 [575] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1244 [575] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $14 -- vbuz1=vbuz1_plus_vbuc1 lda #$14 clc adc irq_raster_next sta irq_raster_next - //SEG1245 [576] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1245 [576] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_sprite_ypos @@ -21554,7 +21554,7 @@ sprites_irq: { //SEG1256 [583] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next - //SEG1257 [584] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1257 [584] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_sprite_ypos @@ -21567,7 +21567,7 @@ sprites_irq: { jmp b7_from_b5 //SEG1259 sprites_irq::@4 b4: - //SEG1260 [586] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1260 [586] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_raster_next @@ -22328,38 +22328,38 @@ FINAL SYMBOL TABLE (label) @end (byte*) BGCOL (byte*) BGCOL1 -(const byte*) BGCOL1#0 BGCOL1 = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL1#0 BGCOL1 = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL2 -(const byte*) BGCOL2#0 BGCOL2 = ((byte*))(word/dword/signed dword) 53282 +(const byte*) BGCOL2#0 BGCOL2 = ((byte*))(word/dword/signed dword) $d022 (byte*) BGCOL3 -(const byte*) BGCOL3#0 BGCOL3 = ((byte*))(word/dword/signed dword) 53283 +(const byte*) BGCOL3#0 BGCOL3 = ((byte*))(word/dword/signed dword) $d023 (byte*) BGCOL4 -(const byte*) BGCOL4#0 BGCOL4 = ((byte*))(word/dword/signed dword) 53284 +(const byte*) BGCOL4#0 BGCOL4 = ((byte*))(word/dword/signed dword) $d024 (byte) BLACK (const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) BLUE (const byte) BLUE#0 BLUE = (byte/signed byte/word/signed word/dword/signed dword) 6 (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN (byte*) CIA1_INTERRUPT -(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) 56333 +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) $dc0d (byte*) CIA1_PORT_A -(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) 56320 +(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) $dc00 (byte*) CIA1_PORT_A_DDR (byte*) CIA1_PORT_B -(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) 56321 +(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) $dc01 (byte*) CIA1_PORT_B_DDR (byte*) CIA2_INTERRUPT (byte*) CIA2_PORT_A -(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) 56576 +(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) $dd00 (byte*) CIA2_PORT_A_DDR -(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56578 +(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) $dd02 (byte*) CIA2_PORT_B (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR -(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) 127 +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) $7f (byte) COLLISION_BOTTOM (const byte) COLLISION_BOTTOM#0 COLLISION_BOTTOM = (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) COLLISION_LEFT @@ -22371,33 +22371,33 @@ FINAL SYMBOL TABLE (byte) COLLISION_RIGHT (const byte) COLLISION_RIGHT#0 COLLISION_RIGHT = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte*) COLS -(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) 55296 +(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) $d800 (byte) CYAN (const byte) CYAN#0 CYAN = (byte/signed byte/word/signed word/dword/signed dword) 3 (byte*) D011 -(const byte*) D011#0 D011 = ((byte*))(word/dword/signed dword) 53265 +(const byte*) D011#0 D011 = ((byte*))(word/dword/signed dword) $d011 (byte*) D016 (byte*) D018 -(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) 53272 +(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) $d018 (byte) DARK_GREY -(const byte) DARK_GREY#0 DARK_GREY = (byte/signed byte/word/signed word/dword/signed dword) 11 +(const byte) DARK_GREY#0 DARK_GREY = (byte/signed byte/word/signed word/dword/signed dword) $b (byte) GREEN (const byte) GREEN#0 GREEN = (byte/signed byte/word/signed word/dword/signed dword) 5 (byte) GREY -(const byte) GREY#0 GREY = (byte/signed byte/word/signed word/dword/signed dword) 12 +(const byte) GREY#0 GREY = (byte/signed byte/word/signed word/dword/signed dword) $c (void()**) HARDWARE_IRQ -(const void()**) HARDWARE_IRQ#0 HARDWARE_IRQ = ((void()**))(word/dword/signed dword) 65534 +(const void()**) HARDWARE_IRQ#0 HARDWARE_IRQ = ((void()**))(word/dword/signed dword) $fffe (byte) IRQ_COLLISION_BG (byte) IRQ_COLLISION_SPRITE (byte*) IRQ_ENABLE -(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) 53274 +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) $d01a (byte) IRQ_LIGHTPEN (byte) IRQ_RASTER (const byte) IRQ_RASTER#0 IRQ_RASTER = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_RASTER_FIRST -(const byte) IRQ_RASTER_FIRST#0 IRQ_RASTER_FIRST = (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 19 +(const byte) IRQ_RASTER_FIRST#0 IRQ_RASTER_FIRST = (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) $13 (byte*) IRQ_STATUS -(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) 53273 +(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) $d019 (void()**) KERNEL_IRQ (byte) KEY_0 (byte) KEY_1 @@ -22418,17 +22418,17 @@ FINAL SYMBOL TABLE (byte) KEY_C (byte) KEY_COLON (byte) KEY_COMMA -(const byte) KEY_COMMA#0 KEY_COMMA = (byte/signed byte/word/signed word/dword/signed dword) 47 +(const byte) KEY_COMMA#0 KEY_COMMA = (byte/signed byte/word/signed word/dword/signed dword) $2f (byte) KEY_COMMODORE -(const byte) KEY_COMMODORE#0 KEY_COMMODORE = (byte/signed byte/word/signed word/dword/signed dword) 61 +(const byte) KEY_COMMODORE#0 KEY_COMMODORE = (byte/signed byte/word/signed word/dword/signed dword) $3d (byte) KEY_CRSR_DOWN (byte) KEY_CRSR_RIGHT (byte) KEY_CTRL -(const byte) KEY_CTRL#0 KEY_CTRL = (byte/signed byte/word/signed word/dword/signed dword) 58 +(const byte) KEY_CTRL#0 KEY_CTRL = (byte/signed byte/word/signed word/dword/signed dword) $3a (byte) KEY_D (byte) KEY_DEL (byte) KEY_DOT -(const byte) KEY_DOT#0 KEY_DOT = (byte/signed byte/word/signed word/dword/signed dword) 44 +(const byte) KEY_DOT#0 KEY_DOT = (byte/signed byte/word/signed word/dword/signed dword) $2c (byte) KEY_E (byte) KEY_EQUALS (byte) KEY_F @@ -22444,7 +22444,7 @@ FINAL SYMBOL TABLE (byte) KEY_K (byte) KEY_L (byte) KEY_LSHIFT -(const byte) KEY_LSHIFT#0 KEY_LSHIFT = (byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte) KEY_LSHIFT#0 KEY_LSHIFT = (byte/signed byte/word/signed word/dword/signed dword) $f (byte) KEY_M (byte) KEY_MINUS (byte) KEY_MODIFIER_COMMODORE @@ -22465,43 +22465,43 @@ FINAL SYMBOL TABLE (byte) KEY_R (byte) KEY_RETURN (byte) KEY_RSHIFT -(const byte) KEY_RSHIFT#0 KEY_RSHIFT = (byte/signed byte/word/signed word/dword/signed dword) 52 +(const byte) KEY_RSHIFT#0 KEY_RSHIFT = (byte/signed byte/word/signed word/dword/signed dword) $34 (byte) KEY_RUNSTOP (byte) KEY_S (byte) KEY_SEMICOLON (byte) KEY_SLASH (byte) KEY_SPACE -(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) 60 +(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) $3c (byte) KEY_T (byte) KEY_U (byte) KEY_V (byte) KEY_W (byte) KEY_X -(const byte) KEY_X#0 KEY_X = (byte/signed byte/word/signed word/dword/signed dword) 23 +(const byte) KEY_X#0 KEY_X = (byte/signed byte/word/signed word/dword/signed dword) $17 (byte) KEY_Y (byte) KEY_Z -(const byte) KEY_Z#0 KEY_Z = (byte/signed byte/word/signed word/dword/signed dword) 12 +(const byte) KEY_Z#0 KEY_Z = (byte/signed byte/word/signed word/dword/signed dword) $c (byte*) LIGHTPEN_X (byte*) LIGHTPEN_Y (byte) LIGHT_BLUE -(const byte) LIGHT_BLUE#0 LIGHT_BLUE = (byte/signed byte/word/signed word/dword/signed dword) 14 +(const byte) LIGHT_BLUE#0 LIGHT_BLUE = (byte/signed byte/word/signed word/dword/signed dword) $e (byte) LIGHT_GREEN -(const byte) LIGHT_GREEN#0 LIGHT_GREEN = (byte/signed byte/word/signed word/dword/signed dword) 13 +(const byte) LIGHT_GREEN#0 LIGHT_GREEN = (byte/signed byte/word/signed word/dword/signed dword) $d (byte) LIGHT_GREY (byte[]) MOVEDOWN_SLOW_SPEEDS -(const byte[]) MOVEDOWN_SLOW_SPEEDS#0 MOVEDOWN_SLOW_SPEEDS = { (byte/signed byte/word/signed word/dword/signed dword) 48, (byte/signed byte/word/signed word/dword/signed dword) 43, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 33, (byte/signed byte/word/signed word/dword/signed dword) 28, (byte/signed byte/word/signed word/dword/signed dword) 23, (byte/signed byte/word/signed word/dword/signed dword) 18, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 1 } +(const byte[]) MOVEDOWN_SLOW_SPEEDS#0 MOVEDOWN_SLOW_SPEEDS = { (byte/signed byte/word/signed word/dword/signed dword) $30, (byte/signed byte/word/signed word/dword/signed dword) $2b, (byte/signed byte/word/signed word/dword/signed dword) $26, (byte/signed byte/word/signed word/dword/signed dword) $21, (byte/signed byte/word/signed word/dword/signed dword) $1c, (byte/signed byte/word/signed word/dword/signed dword) $17, (byte/signed byte/word/signed word/dword/signed dword) $12, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 1 } (byte) ORANGE (const byte) ORANGE#0 ORANGE = (byte/signed byte/word/signed word/dword/signed dword) 8 (word[]) PIECES (const word[]) PIECES#0 PIECES = { ((word))(const byte[4*4*4]) PIECE_T#0, ((word))(const byte[4*4*4]) PIECE_S#0, ((word))(const byte[4*4*4]) PIECE_Z#0, ((word))(const byte[4*4*4]) PIECE_J#0, ((word))(const byte[4*4*4]) PIECE_O#0, ((word))(const byte[4*4*4]) PIECE_I#0, ((word))(const byte[4*4*4]) PIECE_L#0 } (byte[]) PIECES_CHARS -(const byte[]) PIECES_CHARS#0 PIECES_CHARS = { (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 102, (byte/word/signed word/dword/signed dword) 166, (byte/signed byte/word/signed word/dword/signed dword) 102, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/word/signed word/dword/signed dword) 166 } +(const byte[]) PIECES_CHARS#0 PIECES_CHARS = { (byte/signed byte/word/signed word/dword/signed dword) $65, (byte/signed byte/word/signed word/dword/signed dword) $66, (byte/word/signed word/dword/signed dword) $a6, (byte/signed byte/word/signed word/dword/signed dword) $66, (byte/signed byte/word/signed word/dword/signed dword) $65, (byte/signed byte/word/signed word/dword/signed dword) $65, (byte/word/signed word/dword/signed dword) $a6 } (byte[]) PIECES_COLORS_1 (const byte[]) PIECES_COLORS_1#0 PIECES_COLORS_1 = { (const byte) BLUE#0, (const byte) GREEN#0, (const byte) PURPLE#0, (const byte) BLUE#0, (const byte) RED#0, (const byte) LIGHT_GREEN#0, (const byte) RED#0, (const byte) BLUE#0, (const byte) LIGHT_BLUE#0, (const byte) RED#0, (const byte) BLUE#0, (const byte) GREEN#0, (const byte) PURPLE#0, (const byte) BLUE#0, (const byte) RED#0, (const byte) LIGHT_GREEN#0, (const byte) RED#0, (const byte) BLUE#0, (const byte) LIGHT_BLUE#0, (const byte) RED#0, (const byte) BLUE#0, (const byte) GREEN#0, (const byte) PURPLE#0, (const byte) BLUE#0, (const byte) RED#0, (const byte) LIGHT_GREEN#0, (const byte) RED#0, (const byte) BLUE#0, (const byte) LIGHT_BLUE#0, (const byte) RED#0 } (byte[]) PIECES_COLORS_2 (const byte[]) PIECES_COLORS_2#0 PIECES_COLORS_2 = { (const byte) CYAN#0, (const byte) LIGHT_GREEN#0, (const byte) PINK#0, (const byte) LIGHT_GREEN#0, (const byte) LIGHT_GREEN#0, (const byte) LIGHT_BLUE#0, (const byte) DARK_GREY#0, (const byte) PURPLE#0, (const byte) RED#0, (const byte) ORANGE#0, (const byte) CYAN#0, (const byte) LIGHT_GREEN#0, (const byte) PINK#0, (const byte) LIGHT_GREEN#0, (const byte) LIGHT_GREEN#0, (const byte) LIGHT_BLUE#0, (const byte) DARK_GREY#0, (const byte) PURPLE#0, (const byte) RED#0, (const byte) ORANGE#0, (const byte) CYAN#0, (const byte) LIGHT_GREEN#0, (const byte) PINK#0, (const byte) LIGHT_GREEN#0, (const byte) LIGHT_GREEN#0, (const byte) LIGHT_BLUE#0, (const byte) DARK_GREY#0, (const byte) PURPLE#0, (const byte) RED#0, (const byte) ORANGE#0 } (byte[]) PIECES_NEXT_CHARS -(const byte[]) PIECES_NEXT_CHARS#0 PIECES_NEXT_CHARS = { (byte/signed byte/word/signed word/dword/signed dword) 99, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/word/signed word/dword/signed dword) 164, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/signed byte/word/signed word/dword/signed dword) 99, (byte/signed byte/word/signed word/dword/signed dword) 99, (byte/word/signed word/dword/signed dword) 164 } +(const byte[]) PIECES_NEXT_CHARS#0 PIECES_NEXT_CHARS = { (byte/signed byte/word/signed word/dword/signed dword) $63, (byte/signed byte/word/signed word/dword/signed dword) $64, (byte/word/signed word/dword/signed dword) $a4, (byte/signed byte/word/signed word/dword/signed dword) $64, (byte/signed byte/word/signed word/dword/signed dword) $63, (byte/signed byte/word/signed word/dword/signed dword) $63, (byte/word/signed word/dword/signed dword) $a4 } (byte[]) PIECES_START_X (const byte[]) PIECES_START_X#0 PIECES_START_X = { (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4 } (byte[]) PIECES_START_Y @@ -22521,24 +22521,24 @@ FINAL SYMBOL TABLE (byte[4*4*4]) PIECE_Z (const byte[4*4*4]) PIECE_Z#0 PIECE_Z = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte) PINK -(const byte) PINK#0 PINK = (byte/signed byte/word/signed word/dword/signed dword) 10 +(const byte) PINK#0 PINK = (byte/signed byte/word/signed word/dword/signed dword) $a (byte*) PLAYFIELD_CHARSET -(const byte*) PLAYFIELD_CHARSET#0 PLAYFIELD_CHARSET = ((byte*))(word/signed word/dword/signed dword) 10240 +(const byte*) PLAYFIELD_CHARSET#0 PLAYFIELD_CHARSET = ((byte*))(word/signed word/dword/signed dword) $2800 (byte*) PLAYFIELD_COLORS_ORIGINAL -(const byte*) PLAYFIELD_COLORS_ORIGINAL#0 PLAYFIELD_COLORS_ORIGINAL = ((byte*))(word/signed word/dword/signed dword) 7168 +(const byte*) PLAYFIELD_COLORS_ORIGINAL#0 PLAYFIELD_COLORS_ORIGINAL = ((byte*))(word/signed word/dword/signed dword) $1c00 (byte) PLAYFIELD_COLS -(const byte) PLAYFIELD_COLS#0 PLAYFIELD_COLS = (byte/signed byte/word/signed word/dword/signed dword) 10 +(const byte) PLAYFIELD_COLS#0 PLAYFIELD_COLS = (byte/signed byte/word/signed word/dword/signed dword) $a (byte) PLAYFIELD_LINES -(const byte) PLAYFIELD_LINES#0 PLAYFIELD_LINES = (byte/signed byte/word/signed word/dword/signed dword) 22 +(const byte) PLAYFIELD_LINES#0 PLAYFIELD_LINES = (byte/signed byte/word/signed word/dword/signed dword) $16 (byte*) PLAYFIELD_SCREEN_1 -(const byte*) PLAYFIELD_SCREEN_1#0 PLAYFIELD_SCREEN_1 = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) PLAYFIELD_SCREEN_1#0 PLAYFIELD_SCREEN_1 = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) PLAYFIELD_SCREEN_2 -(const byte*) PLAYFIELD_SCREEN_2#0 PLAYFIELD_SCREEN_2 = ((byte*))(word/signed word/dword/signed dword) 11264 +(const byte*) PLAYFIELD_SCREEN_2#0 PLAYFIELD_SCREEN_2 = ((byte*))(word/signed word/dword/signed dword) $2c00 (byte*) PLAYFIELD_SCREEN_ORIGINAL -(const byte*) PLAYFIELD_SCREEN_ORIGINAL#0 PLAYFIELD_SCREEN_ORIGINAL = ((byte*))(word/signed word/dword/signed dword) 6144 +(const byte*) PLAYFIELD_SCREEN_ORIGINAL#0 PLAYFIELD_SCREEN_ORIGINAL = ((byte*))(word/signed word/dword/signed dword) $1800 (byte) PLAYFIELD_SCREEN_ORIGINAL_WIDTH (byte*) PLAYFIELD_SPRITES -(const byte*) PLAYFIELD_SPRITES#0 PLAYFIELD_SPRITES = ((byte*))(word/signed word/dword/signed dword) 8192 +(const byte*) PLAYFIELD_SPRITES#0 PLAYFIELD_SPRITES = ((byte*))(word/signed word/dword/signed dword) $2000 (byte*) PLAYFIELD_SPRITE_PTRS_1 (const byte*) PLAYFIELD_SPRITE_PTRS_1#0 PLAYFIELD_SPRITE_PTRS_1 = (const byte*) PLAYFIELD_SCREEN_1#0+(const word) SPRITE_PTRS#0 (byte*) PLAYFIELD_SPRITE_PTRS_2 @@ -22554,18 +22554,18 @@ FINAL SYMBOL TABLE (byte) PROCPORT_RAM_ALL (byte) PROCPORT_RAM_CHARROM (byte) PROCPORT_RAM_IO -(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) 53 +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) $35 (byte) PURPLE (const byte) PURPLE#0 PURPLE = (byte/signed byte/word/signed word/dword/signed dword) 4 (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (const byte) RED#0 RED = (byte/signed byte/word/signed word/dword/signed dword) 2 (dword[]) SCORE_BASE_BCD -(const dword[]) SCORE_BASE_BCD#0 SCORE_BASE_BCD = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 64, (word/signed word/dword/signed dword) 256, (word/signed word/dword/signed dword) 768, (word/signed word/dword/signed dword) 4608 } +(const dword[]) SCORE_BASE_BCD#0 SCORE_BASE_BCD = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $40, (word/signed word/dword/signed dword) $100, (word/signed word/dword/signed dword) $300, (word/signed word/dword/signed dword) $1200 } (byte) SID_CONTROL_GATE (byte) SID_CONTROL_NOISE -(const byte) SID_CONTROL_NOISE#0 SID_CONTROL_NOISE = (byte/word/signed word/dword/signed dword) 128 +(const byte) SID_CONTROL_NOISE#0 SID_CONTROL_NOISE = (byte/word/signed word/dword/signed dword) $80 (byte) SID_CONTROL_PULSE (byte) SID_CONTROL_RING (byte) SID_CONTROL_SAWTOOTH @@ -22573,44 +22573,44 @@ FINAL SYMBOL TABLE (byte) SID_CONTROL_TEST (byte) SID_CONTROL_TRIANGLE (byte*) SID_VOICE3_CONTROL -(const byte*) SID_VOICE3_CONTROL#0 SID_VOICE3_CONTROL = ((byte*))(word/dword/signed dword) 54290 +(const byte*) SID_VOICE3_CONTROL#0 SID_VOICE3_CONTROL = ((byte*))(word/dword/signed dword) $d412 (word*) SID_VOICE3_FREQ -(const word*) SID_VOICE3_FREQ#0 SID_VOICE3_FREQ = ((word*))(word/dword/signed dword) 54286 +(const word*) SID_VOICE3_FREQ#0 SID_VOICE3_FREQ = ((word*))(word/dword/signed dword) $d40e (byte*) SID_VOICE3_FREQ_HIGH (byte*) SID_VOICE3_FREQ_LOW (byte*) SID_VOICE3_OSC -(const byte*) SID_VOICE3_OSC#0 SID_VOICE3_OSC = ((byte*))(word/dword/signed dword) 54299 +(const byte*) SID_VOICE3_OSC#0 SID_VOICE3_OSC = ((byte*))(word/dword/signed dword) $d41b (byte*) SPRITES_COLS -(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) 53287 +(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) $d027 (byte*) SPRITES_ENABLE -(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) 53269 +(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) $d015 (byte*) SPRITES_EXPAND_X -(const byte*) SPRITES_EXPAND_X#0 SPRITES_EXPAND_X = ((byte*))(word/dword/signed dword) 53277 +(const byte*) SPRITES_EXPAND_X#0 SPRITES_EXPAND_X = ((byte*))(word/dword/signed dword) $d01d (byte*) SPRITES_EXPAND_Y -(const byte*) SPRITES_EXPAND_Y#0 SPRITES_EXPAND_Y = ((byte*))(word/dword/signed dword) 53271 +(const byte*) SPRITES_EXPAND_Y#0 SPRITES_EXPAND_Y = ((byte*))(word/dword/signed dword) $d017 (byte) SPRITES_FIRST_YPOS -(const byte) SPRITES_FIRST_YPOS#0 SPRITES_FIRST_YPOS = (byte/signed byte/word/signed word/dword/signed dword) 49 +(const byte) SPRITES_FIRST_YPOS#0 SPRITES_FIRST_YPOS = (byte/signed byte/word/signed word/dword/signed dword) $31 (byte*) SPRITES_MC -(const byte*) SPRITES_MC#0 SPRITES_MC = ((byte*))(word/dword/signed dword) 53276 +(const byte*) SPRITES_MC#0 SPRITES_MC = ((byte*))(word/dword/signed dword) $d01c (byte*) SPRITES_MC1 (byte*) SPRITES_MC2 (byte*) SPRITES_PRIORITY (byte*) SPRITES_XMSB (byte*) SPRITES_XPOS -(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) 53248 +(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) $d000 (byte*) SPRITES_YPOS -(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) 53249 +(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) $d001 (word) SPRITE_PTRS -(const word) SPRITE_PTRS#0 SPRITE_PTRS = (word/signed word/dword/signed dword) 1016 +(const word) SPRITE_PTRS#0 SPRITE_PTRS = (word/signed word/dword/signed dword) $3f8 (byte) VIC_BMM (byte*) VIC_CONTROL -(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) 53265 +(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) $d011 (byte*) VIC_CONTROL2 (byte) VIC_CSEL (byte) VIC_DEN -(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_ECM -(const byte) VIC_ECM#0 VIC_ECM = (byte/signed byte/word/signed word/dword/signed dword) 64 +(const byte) VIC_ECM#0 VIC_ECM = (byte/signed byte/word/signed word/dword/signed dword) $40 (byte) VIC_MCM (byte*) VIC_MEMORY (byte) VIC_RSEL @@ -22623,7 +22623,7 @@ FINAL SYMBOL TABLE (byte) current_movedown_counter#14 current_movedown_counter zp ZP_BYTE:4 3.0000000000000004 (byte) current_movedown_counter#16 current_movedown_counter zp ZP_BYTE:4 8.769230769230768 (byte) current_movedown_fast -(const byte) current_movedown_fast#0 current_movedown_fast = (byte/signed byte/word/signed word/dword/signed dword) 10 +(const byte) current_movedown_fast#0 current_movedown_fast = (byte/signed byte/word/signed word/dword/signed dword) $a (byte) current_movedown_slow (byte) current_movedown_slow#1 current_movedown_slow zp ZP_BYTE:24 0.18181818181818182 (byte) current_movedown_slow#10 current_movedown_slow zp ZP_BYTE:24 4.0 @@ -22801,7 +22801,7 @@ FINAL SYMBOL TABLE (byte) keyboard_events_size#30 keyboard_events_size zp ZP_BYTE:35 10201.2 (byte) keyboard_events_size#4 keyboard_events_size zp ZP_BYTE:35 3.0 (byte[8]) keyboard_matrix_col_bitmask -(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $10, (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/word/signed word/dword/signed dword) $80 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (label) keyboard_matrix_read::@return (byte) keyboard_matrix_read::return @@ -22811,7 +22811,7 @@ FINAL SYMBOL TABLE (byte) keyboard_matrix_read::rowid (byte) keyboard_matrix_read::rowid#0 reg byte x 1003.0 (byte[8]) keyboard_matrix_row_bitmask -(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } +(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) $fe, (byte/word/signed word/dword/signed dword) $fd, (byte/word/signed word/dword/signed dword) $fb, (byte/word/signed word/dword/signed dword) $f7, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $bf, (byte/signed byte/word/signed word/dword/signed dword) $7f } (byte) keyboard_modifiers (byte) keyboard_modifiers#11 reg byte x 0.8 (byte) keyboard_modifiers#12 reg byte x 1.6 @@ -23180,7 +23180,7 @@ FINAL SYMBOL TABLE (label) render_bcd::@2 (label) render_bcd::@return (byte) render_bcd::ZERO_CHAR -(const byte) render_bcd::ZERO_CHAR#0 ZERO_CHAR = (byte/signed byte/word/signed word/dword/signed dword) 53 +(const byte) render_bcd::ZERO_CHAR#0 ZERO_CHAR = (byte/signed byte/word/signed word/dword/signed dword) $35 (byte) render_bcd::bcd (byte) render_bcd::bcd#0 reg byte x 4.0 (byte) render_bcd::bcd#1 reg byte x 4.0 @@ -23288,7 +23288,7 @@ FINAL SYMBOL TABLE (byte) render_next::l#1 l zp ZP_BYTE:9 151.5 (byte) render_next::l#7 l zp ZP_BYTE:9 18.363636363636363 (word) render_next::next_area_offset -(const word) render_next::next_area_offset#0 next_area_offset = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 12+(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 4 +(const word) render_next::next_area_offset#0 next_area_offset = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $c+(byte/signed byte/word/signed word/dword/signed dword) $18+(byte/signed byte/word/signed word/dword/signed dword) 4 (byte) render_next::next_piece_char (byte) render_next::next_piece_char#0 next_piece_char zp ZP_BYTE:10 66.86666666666667 (byte*) render_next::next_piece_gfx @@ -23333,13 +23333,13 @@ FINAL SYMBOL TABLE (label) render_score::@9 (label) render_score::@return (word) render_score::level_offset -(const word) render_score::level_offset#0 level_offset = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 19+(byte/signed byte/word/signed word/dword/signed dword) 31 +(const word) render_score::level_offset#0 level_offset = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $13+(byte/signed byte/word/signed word/dword/signed dword) $1f (word) render_score::lines_offset -(const word) render_score::lines_offset#0 lines_offset = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 22 +(const word) render_score::lines_offset#0 lines_offset = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) $16 (byte*) render_score::score_bytes (const byte*) render_score::score_bytes#0 score_bytes = ((byte*))&(dword) score_bcd#14 (word) render_score::score_offset -(const word) render_score::score_offset#0 score_offset = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5+(byte/signed byte/word/signed word/dword/signed dword) 28 +(const word) render_score::score_offset#0 score_offset = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5+(byte/signed byte/word/signed word/dword/signed dword) $1c (byte*) render_score::screen (byte*) render_score::screen#3 screen zp ZP_WORD:5 0.75 (void()) render_screen_original((byte*) render_screen_original::screen) @@ -23420,7 +23420,7 @@ FINAL SYMBOL TABLE (byte~) render_show::toD0181_$8 (byte*) render_show::toD0181_gfx (byte) render_show::toD0181_return -(const byte) render_show::toD0181_return#0 toD0181_return = >((word))(const byte*) PLAYFIELD_SCREEN_1#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte) render_show::toD0181_return#0 toD0181_return = >((word))(const byte*) PLAYFIELD_SCREEN_1#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) $f (byte*) render_show::toD0181_screen (label) render_show::toD0182 (word~) render_show::toD0182_$0 @@ -23434,7 +23434,7 @@ FINAL SYMBOL TABLE (byte~) render_show::toD0182_$8 (byte*) render_show::toD0182_gfx (byte) render_show::toD0182_return -(const byte) render_show::toD0182_return#0 toD0182_return = >((word))(const byte*) PLAYFIELD_SCREEN_2#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte) render_show::toD0182_return#0 toD0182_return = >((word))(const byte*) PLAYFIELD_SCREEN_2#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) $f (byte*) render_show::toD0182_screen (dword[5]) score_add_bcd (const dword[5]) score_add_bcd#0 score_add_bcd = { fill( 5, 0) } @@ -23842,7 +23842,7 @@ bbegin: // The raster line of the next IRQ lda #IRQ_RASTER_FIRST sta irq_raster_next -//SEG13 [7] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuc1 +//SEG13 [7] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuc1 // Y-pos of the sprites on the next IRQ lda #SPRITES_FIRST_YPOS+$15 sta irq_sprite_ypos @@ -23908,7 +23908,7 @@ main: { //SEG54 main::@31 //SEG55 [29] call render_playfield //SEG56 [150] phi from main::@31 to render_playfield [phi:main::@31->render_playfield] - //SEG57 [150] phi (byte) render_screen_render#22 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@31->render_playfield#0] -- vbuxx=vbuc1 + //SEG57 [150] phi (byte) render_screen_render#22 = (byte/signed byte/word/signed word/dword/signed dword) $40 [phi:main::@31->render_playfield#0] -- vbuxx=vbuc1 ldx #$40 jsr render_playfield //SEG58 main::@32 @@ -23929,7 +23929,7 @@ main: { //SEG65 [129] phi (byte) current_piece_char#68 = (byte~) current_piece_char#106 [phi:main::@32->render_moving#0] -- register_copy //SEG66 [129] phi (byte*) current_piece_gfx#64 = (byte*~) current_piece_gfx#118 [phi:main::@32->render_moving#1] -- register_copy //SEG67 [129] phi (byte) current_xpos#59 = (byte~) current_xpos#128 [phi:main::@32->render_moving#2] -- register_copy - //SEG68 [129] phi (byte) render_screen_render#33 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@32->render_moving#3] -- vbuz1=vbuc1 + //SEG68 [129] phi (byte) render_screen_render#33 = (byte/signed byte/word/signed word/dword/signed dword) $40 [phi:main::@32->render_moving#3] -- vbuz1=vbuc1 lda #$40 sta render_screen_render_33 //SEG69 [129] phi (byte) current_ypos#13 = (byte~) current_ypos#104 [phi:main::@32->render_moving#4] -- register_copy @@ -23940,7 +23940,7 @@ main: { //SEG72 [36] call render_next //SEG73 [108] phi from main::@33 to render_next [phi:main::@33->render_next] //SEG74 [108] phi (byte) next_piece_idx#12 = (byte~) next_piece_idx#84 [phi:main::@33->render_next#0] -- register_copy - //SEG75 [108] phi (byte) render_screen_render#15 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@33->render_next#1] -- vbuaa=vbuc1 + //SEG75 [108] phi (byte) render_screen_render#15 = (byte/signed byte/word/signed word/dword/signed dword) $40 [phi:main::@33->render_next#1] -- vbuaa=vbuc1 lda #$40 jsr render_next //SEG76 [37] (byte*~) current_piece#96 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) -- pbuz1=pptc1_derefidx_vbuz2 @@ -23977,7 +23977,7 @@ main: { //SEG90 [38] phi (byte) current_piece_char#10 = (byte) current_piece_char#5 [phi:main::@33->main::@1#12] -- register_copy //SEG91 [38] phi (byte*) current_piece#10 = (byte*~) current_piece#96 [phi:main::@33->main::@1#13] -- register_copy //SEG92 [38] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#1 [phi:main::@33->main::@1#14] -- register_copy - //SEG93 [38] phi (byte) render_screen_render#18 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@33->main::@1#15] -- vbuz1=vbuc1 + //SEG93 [38] phi (byte) render_screen_render#18 = (byte/signed byte/word/signed word/dword/signed dword) $40 [phi:main::@33->main::@1#15] -- vbuz1=vbuc1 lda #$40 sta render_screen_render //SEG94 [38] phi (byte) render_screen_show#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@33->main::@1#16] -- vbuz1=vbuc1 @@ -24004,7 +24004,7 @@ main: { // Wait for a frame to pass //SEG112 main::@4 b4: - //SEG113 [39] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG113 [39] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -24119,11 +24119,11 @@ main: { //SEG187 render_screen_swap // Swap rendering to the other screen (used for double buffering) render_screen_swap: { - //SEG188 [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 + //SEG188 [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte/signed byte/word/signed word/dword/signed dword) $40 -- vbuz1=vbuz1_bxor_vbuc1 lda render_screen_render eor #$40 sta render_screen_render - //SEG189 [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 + //SEG189 [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) $40 -- vbuz1=vbuz1_bxor_vbuc1 lda render_screen_show eor #$40 sta render_screen_show @@ -24307,7 +24307,7 @@ render_bcd: { //SEG265 [102] phi (byte*) render_bcd::screen_pos#3 = (byte*) render_bcd::screen_pos#0 [phi:render_bcd/render_bcd::@2->render_bcd::@1#0] -- register_copy //SEG266 render_bcd::@1 b1: - //SEG267 [103] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG267 [103] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG268 [104] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 -- vbuaa=vbuc1_plus_vbuaa @@ -24418,7 +24418,7 @@ render_next: { cpx #4 bne b4 //SEG312 render_next::@11 - //SEG313 [124] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte/signed byte/word/signed word/dword/signed dword) 36 -- pbuz1=pbuz1_plus_vbuc1 + //SEG313 [124] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte/signed byte/word/signed word/dword/signed dword) $24 -- pbuz1=pbuz1_plus_vbuc1 lda screen_next_area clc adc #$24 @@ -24710,11 +24710,11 @@ play_move_rotate: { rts //SEG432 play_move_rotate::@2 b2: - //SEG433 [186] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#20 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 + //SEG433 [186] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#20 + (byte/signed byte/word/signed word/dword/signed dword) $10 -- vbuaa=vbuz1_plus_vbuc1 lda #$10 clc adc current_orientation - //SEG434 [187] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 + //SEG434 [187] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) $3f -- vbuz1=vbuaa_band_vbuc1 and #$3f sta orientation //SEG435 [188] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@4 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4] @@ -24766,11 +24766,11 @@ play_move_rotate: { jmp breturn //SEG459 play_move_rotate::@1 b1: - //SEG460 [199] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#20 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 + //SEG460 [199] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#20 - (byte/signed byte/word/signed word/dword/signed dword) $10 -- vbuaa=vbuz1_minus_vbuc1 lda current_orientation sec sbc #$10 - //SEG461 [200] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 + //SEG461 [200] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) $3f -- vbuz1=vbuaa_band_vbuc1 and #$3f sta orientation jmp b4 @@ -24850,7 +24850,7 @@ play_collision: { rts //SEG485 play_collision::@4 b4: - //SEG486 [213] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG486 [213] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuz1_band_vbuc1 lda #$80 and col //SEG487 [214] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -- vbuaa_eq_0_then_la1 @@ -25331,7 +25331,7 @@ play_update_score: { //SEG744 play_update_score::@3 //SEG745 [312] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 -- vbuaa=_lo_vwuz1 lda lines_bcd - //SEG746 [313] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 -- vbuz1=vbuaa_band_vbuc1 + //SEG746 [313] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) $f0 -- vbuz1=vbuaa_band_vbuc1 and #$f0 sta lines_before //SEG747 [314] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 @@ -25376,7 +25376,7 @@ play_update_score: { cld //SEG753 [320] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 -- vbuaa=_lo_vwuz1 lda lines_bcd - //SEG754 [321] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 -- vbuaa=vbuaa_band_vbuc1 + //SEG754 [321] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) $f0 -- vbuaa=vbuaa_band_vbuc1 and #$f0 //SEG755 [322] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return -- vbuz1_eq_vbuaa_then_la1 cmp lines_before @@ -25401,7 +25401,7 @@ play_update_score: { play_increase_level: { //SEG768 [327] (byte) level#21 ← ++ (byte) level#10 -- vbuz1=_inc_vbuz1 inc level - //SEG769 [328] if((byte) level#21>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 -- vbuz1_gt_vbuc1_then_la1 + //SEG769 [328] if((byte) level#21>(byte/signed byte/word/signed word/dword/signed dword) $1d) goto play_increase_level::@2 -- vbuz1_gt_vbuc1_then_la1 // Update speed of moving tetrominos down lda level cmp #$1d @@ -25425,10 +25425,10 @@ play_increase_level: { b2: //SEG777 [331] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 -- vbuz1=_inc_vbuz1 inc level_bcd - //SEG778 [332] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG778 [332] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and level_bcd - //SEG779 [333] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 -- vbuaa_neq_vbuc1_then_la1 + //SEG779 [333] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) $a) goto play_increase_level::@3 -- vbuaa_neq_vbuc1_then_la1 cmp #$a bne b3 //SEG780 play_increase_level::@7 @@ -25582,7 +25582,7 @@ play_remove_lines: { //SEG844 [361] phi (byte) play_remove_lines::w#6 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@4/play_remove_lines::@6->play_remove_lines::@5#0] -- register_copy // Write zeros in the rest of the lines //SEG845 play_remove_lines::@5 - //SEG846 [362] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 -- vbuxx_neq_vbuc1_then_la1 + //SEG846 [362] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) $ff) goto play_remove_lines::@6 -- vbuxx_neq_vbuc1_then_la1 cpx #$ff bne b6 //SEG847 play_remove_lines::@return @@ -25749,7 +25749,7 @@ keyboard_event_get: { //SEG911 [393] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] b1: //SEG912 [393] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG913 [393] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuxx=vbuc1 + //SEG913 [393] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) $ff [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuxx=vbuc1 ldx #$ff //SEG914 keyboard_event_get::@return breturn: @@ -25957,7 +25957,7 @@ keyboard_event_scan: { jmp b3 //SEG1019 keyboard_event_scan::@7 b7: - //SEG1020 [445] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuaa=vbuz1_bor_vbuc1 + //SEG1020 [445] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) $40 -- vbuaa=vbuz1_bor_vbuc1 lda #$40 ora keycode //SEG1021 [446] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa @@ -26138,7 +26138,7 @@ sprites_irq_init: { // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG1083 [483] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + //SEG1083 [483] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set raster line lda VIC_CONTROL and #$7f @@ -26166,7 +26166,7 @@ sprites_irq_init: { // Setup the sprites sprites_init: { .label xpos = 2 - //SEG1091 [489] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 + //SEG1091 [489] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) $f -- _deref_pbuc1=vbuc2 lda #$f sta SPRITES_ENABLE //SEG1092 [490] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 @@ -26177,7 +26177,7 @@ sprites_init: { //SEG1094 [492] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 sta SPRITES_EXPAND_X //SEG1095 [493] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] - //SEG1096 [493] phi (byte) sprites_init::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 + //SEG1096 [493] phi (byte) sprites_init::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) $18+(byte/signed byte/word/signed word/dword/signed dword) $f*(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 lda #$18+$f*8 sta xpos //SEG1097 [493] phi (byte) sprites_init::s#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sprites_init->sprites_init::@1#1] -- vbuxx=vbuc1 @@ -26197,7 +26197,7 @@ sprites_init: { //SEG1104 [496] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #BLACK sta SPRITES_COLS,x - //SEG1105 [497] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1105 [497] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $18 -- vbuz1=vbuz1_plus_vbuc1 lda #$18 clc adc xpos @@ -26265,12 +26265,12 @@ render_init: { sta render_screen_original.screen+1 jsr render_screen_original //SEG1132 [514] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] - //SEG1133 [514] phi (byte*) render_init::li_2#2 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#0] -- pbuz1=pbuc1 + //SEG1133 [514] phi (byte*) render_init::li_2#2 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $10 [phi:render_init::@4->render_init::@1#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2+2*$28+$10 sta li_2+1 - //SEG1134 [514] phi (byte*) render_init::li_1#2 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#1] -- pbuz1=pbuc1 + //SEG1134 [514] phi (byte*) render_init::li_1#2 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $10 [phi:render_init::@4->render_init::@1#1] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1+2*$28+$10 @@ -26301,7 +26301,7 @@ render_init: { sta screen_lines_2,y lda li_2+1 sta screen_lines_2+1,y - //SEG1145 [519] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG1145 [519] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda li_1 clc adc #$28 @@ -26309,7 +26309,7 @@ render_init: { bcc !+ inc li_1+1 !: - //SEG1146 [520] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG1146 [520] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda li_2 clc adc #$28 @@ -26341,12 +26341,12 @@ render_screen_original: { //SEG1153 [525] phi (byte) render_screen_original::y#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_screen_original->render_screen_original::@1#0] -- vbuz1=vbuc1 lda #0 sta y - //SEG1154 [525] phi (byte*) render_screen_original::ocols#4 = (const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#1] -- pbuz1=pbuc1 + //SEG1154 [525] phi (byte*) render_screen_original::ocols#4 = (const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) $20*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#1] -- pbuz1=pbuc1 lda #PLAYFIELD_COLORS_ORIGINAL+$20*2 sta ocols+1 - //SEG1155 [525] phi (byte*) render_screen_original::oscr#4 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 + //SEG1155 [525] phi (byte*) render_screen_original::oscr#4 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) $20*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_ORIGINAL+$20*2 @@ -26437,7 +26437,7 @@ render_screen_original: { !: //SEG1193 [540] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx inx - //SEG1194 [541] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG1194 [541] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) $24) goto render_screen_original::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$24 bne b3 //SEG1195 [542] phi from render_screen_original::@3 render_screen_original::@4 to render_screen_original::@4 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4] @@ -26466,13 +26466,13 @@ render_screen_original: { !: //SEG1204 [547] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx inx - //SEG1205 [548] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 -- vbuxx_neq_vbuc1_then_la1 + //SEG1205 [548] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render_screen_original::@4 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b4 //SEG1206 render_screen_original::@7 //SEG1207 [549] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG1208 [550] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1208 [550] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto render_screen_original::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$19 bne b1 @@ -26483,7 +26483,7 @@ render_screen_original: { //SEG1211 sid_rnd_init // Initialize SID voice 3 for random number generation sid_rnd_init: { - //SEG1212 [552] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 + //SEG1212 [552] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) $ffff -- _deref_pwuc1=vwuc2 lda #<$ffff sta SID_VOICE3_FREQ lda #>$ffff @@ -26564,16 +26564,16 @@ sprites_irq: { cmp #9 beq b4 //SEG1241 sprites_irq::@11 - //SEG1242 [574] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 -- vbuz1_eq_vbuc1_then_la1 + //SEG1242 [574] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) $a) goto sprites_irq::@5 -- vbuz1_eq_vbuc1_then_la1 cmp #$a beq b5 //SEG1243 sprites_irq::@12 - //SEG1244 [575] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1244 [575] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $14 -- vbuz1=vbuz1_plus_vbuc1 lda #$14 clc adc irq_raster_next sta irq_raster_next - //SEG1245 [576] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1245 [576] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_sprite_ypos @@ -26610,7 +26610,7 @@ sprites_irq: { //SEG1256 [583] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next - //SEG1257 [584] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1257 [584] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_sprite_ypos @@ -26623,7 +26623,7 @@ sprites_irq: { jmp b7 //SEG1259 sprites_irq::@4 b4: - //SEG1260 [586] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1260 [586] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_raster_next diff --git a/src/test/ref/complex/tetris/tetris.sym b/src/test/ref/complex/tetris/tetris.sym index 8fa02e860..f1b7e6c8d 100644 --- a/src/test/ref/complex/tetris/tetris.sym +++ b/src/test/ref/complex/tetris/tetris.sym @@ -7,38 +7,38 @@ (label) @end (byte*) BGCOL (byte*) BGCOL1 -(const byte*) BGCOL1#0 BGCOL1 = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL1#0 BGCOL1 = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL2 -(const byte*) BGCOL2#0 BGCOL2 = ((byte*))(word/dword/signed dword) 53282 +(const byte*) BGCOL2#0 BGCOL2 = ((byte*))(word/dword/signed dword) $d022 (byte*) BGCOL3 -(const byte*) BGCOL3#0 BGCOL3 = ((byte*))(word/dword/signed dword) 53283 +(const byte*) BGCOL3#0 BGCOL3 = ((byte*))(word/dword/signed dword) $d023 (byte*) BGCOL4 -(const byte*) BGCOL4#0 BGCOL4 = ((byte*))(word/dword/signed dword) 53284 +(const byte*) BGCOL4#0 BGCOL4 = ((byte*))(word/dword/signed dword) $d024 (byte) BLACK (const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) BLUE (const byte) BLUE#0 BLUE = (byte/signed byte/word/signed word/dword/signed dword) 6 (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN (byte*) CIA1_INTERRUPT -(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) 56333 +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) $dc0d (byte*) CIA1_PORT_A -(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) 56320 +(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) $dc00 (byte*) CIA1_PORT_A_DDR (byte*) CIA1_PORT_B -(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) 56321 +(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) $dc01 (byte*) CIA1_PORT_B_DDR (byte*) CIA2_INTERRUPT (byte*) CIA2_PORT_A -(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) 56576 +(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) $dd00 (byte*) CIA2_PORT_A_DDR -(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56578 +(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) $dd02 (byte*) CIA2_PORT_B (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR -(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) 127 +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) $7f (byte) COLLISION_BOTTOM (const byte) COLLISION_BOTTOM#0 COLLISION_BOTTOM = (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) COLLISION_LEFT @@ -50,33 +50,33 @@ (byte) COLLISION_RIGHT (const byte) COLLISION_RIGHT#0 COLLISION_RIGHT = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte*) COLS -(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) 55296 +(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) $d800 (byte) CYAN (const byte) CYAN#0 CYAN = (byte/signed byte/word/signed word/dword/signed dword) 3 (byte*) D011 -(const byte*) D011#0 D011 = ((byte*))(word/dword/signed dword) 53265 +(const byte*) D011#0 D011 = ((byte*))(word/dword/signed dword) $d011 (byte*) D016 (byte*) D018 -(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) 53272 +(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) $d018 (byte) DARK_GREY -(const byte) DARK_GREY#0 DARK_GREY = (byte/signed byte/word/signed word/dword/signed dword) 11 +(const byte) DARK_GREY#0 DARK_GREY = (byte/signed byte/word/signed word/dword/signed dword) $b (byte) GREEN (const byte) GREEN#0 GREEN = (byte/signed byte/word/signed word/dword/signed dword) 5 (byte) GREY -(const byte) GREY#0 GREY = (byte/signed byte/word/signed word/dword/signed dword) 12 +(const byte) GREY#0 GREY = (byte/signed byte/word/signed word/dword/signed dword) $c (void()**) HARDWARE_IRQ -(const void()**) HARDWARE_IRQ#0 HARDWARE_IRQ = ((void()**))(word/dword/signed dword) 65534 +(const void()**) HARDWARE_IRQ#0 HARDWARE_IRQ = ((void()**))(word/dword/signed dword) $fffe (byte) IRQ_COLLISION_BG (byte) IRQ_COLLISION_SPRITE (byte*) IRQ_ENABLE -(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) 53274 +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) $d01a (byte) IRQ_LIGHTPEN (byte) IRQ_RASTER (const byte) IRQ_RASTER#0 IRQ_RASTER = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_RASTER_FIRST -(const byte) IRQ_RASTER_FIRST#0 IRQ_RASTER_FIRST = (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 19 +(const byte) IRQ_RASTER_FIRST#0 IRQ_RASTER_FIRST = (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) $13 (byte*) IRQ_STATUS -(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) 53273 +(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) $d019 (void()**) KERNEL_IRQ (byte) KEY_0 (byte) KEY_1 @@ -97,17 +97,17 @@ (byte) KEY_C (byte) KEY_COLON (byte) KEY_COMMA -(const byte) KEY_COMMA#0 KEY_COMMA = (byte/signed byte/word/signed word/dword/signed dword) 47 +(const byte) KEY_COMMA#0 KEY_COMMA = (byte/signed byte/word/signed word/dword/signed dword) $2f (byte) KEY_COMMODORE -(const byte) KEY_COMMODORE#0 KEY_COMMODORE = (byte/signed byte/word/signed word/dword/signed dword) 61 +(const byte) KEY_COMMODORE#0 KEY_COMMODORE = (byte/signed byte/word/signed word/dword/signed dword) $3d (byte) KEY_CRSR_DOWN (byte) KEY_CRSR_RIGHT (byte) KEY_CTRL -(const byte) KEY_CTRL#0 KEY_CTRL = (byte/signed byte/word/signed word/dword/signed dword) 58 +(const byte) KEY_CTRL#0 KEY_CTRL = (byte/signed byte/word/signed word/dword/signed dword) $3a (byte) KEY_D (byte) KEY_DEL (byte) KEY_DOT -(const byte) KEY_DOT#0 KEY_DOT = (byte/signed byte/word/signed word/dword/signed dword) 44 +(const byte) KEY_DOT#0 KEY_DOT = (byte/signed byte/word/signed word/dword/signed dword) $2c (byte) KEY_E (byte) KEY_EQUALS (byte) KEY_F @@ -123,7 +123,7 @@ (byte) KEY_K (byte) KEY_L (byte) KEY_LSHIFT -(const byte) KEY_LSHIFT#0 KEY_LSHIFT = (byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte) KEY_LSHIFT#0 KEY_LSHIFT = (byte/signed byte/word/signed word/dword/signed dword) $f (byte) KEY_M (byte) KEY_MINUS (byte) KEY_MODIFIER_COMMODORE @@ -144,43 +144,43 @@ (byte) KEY_R (byte) KEY_RETURN (byte) KEY_RSHIFT -(const byte) KEY_RSHIFT#0 KEY_RSHIFT = (byte/signed byte/word/signed word/dword/signed dword) 52 +(const byte) KEY_RSHIFT#0 KEY_RSHIFT = (byte/signed byte/word/signed word/dword/signed dword) $34 (byte) KEY_RUNSTOP (byte) KEY_S (byte) KEY_SEMICOLON (byte) KEY_SLASH (byte) KEY_SPACE -(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) 60 +(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) $3c (byte) KEY_T (byte) KEY_U (byte) KEY_V (byte) KEY_W (byte) KEY_X -(const byte) KEY_X#0 KEY_X = (byte/signed byte/word/signed word/dword/signed dword) 23 +(const byte) KEY_X#0 KEY_X = (byte/signed byte/word/signed word/dword/signed dword) $17 (byte) KEY_Y (byte) KEY_Z -(const byte) KEY_Z#0 KEY_Z = (byte/signed byte/word/signed word/dword/signed dword) 12 +(const byte) KEY_Z#0 KEY_Z = (byte/signed byte/word/signed word/dword/signed dword) $c (byte*) LIGHTPEN_X (byte*) LIGHTPEN_Y (byte) LIGHT_BLUE -(const byte) LIGHT_BLUE#0 LIGHT_BLUE = (byte/signed byte/word/signed word/dword/signed dword) 14 +(const byte) LIGHT_BLUE#0 LIGHT_BLUE = (byte/signed byte/word/signed word/dword/signed dword) $e (byte) LIGHT_GREEN -(const byte) LIGHT_GREEN#0 LIGHT_GREEN = (byte/signed byte/word/signed word/dword/signed dword) 13 +(const byte) LIGHT_GREEN#0 LIGHT_GREEN = (byte/signed byte/word/signed word/dword/signed dword) $d (byte) LIGHT_GREY (byte[]) MOVEDOWN_SLOW_SPEEDS -(const byte[]) MOVEDOWN_SLOW_SPEEDS#0 MOVEDOWN_SLOW_SPEEDS = { (byte/signed byte/word/signed word/dword/signed dword) 48, (byte/signed byte/word/signed word/dword/signed dword) 43, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 33, (byte/signed byte/word/signed word/dword/signed dword) 28, (byte/signed byte/word/signed word/dword/signed dword) 23, (byte/signed byte/word/signed word/dword/signed dword) 18, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 1 } +(const byte[]) MOVEDOWN_SLOW_SPEEDS#0 MOVEDOWN_SLOW_SPEEDS = { (byte/signed byte/word/signed word/dword/signed dword) $30, (byte/signed byte/word/signed word/dword/signed dword) $2b, (byte/signed byte/word/signed word/dword/signed dword) $26, (byte/signed byte/word/signed word/dword/signed dword) $21, (byte/signed byte/word/signed word/dword/signed dword) $1c, (byte/signed byte/word/signed word/dword/signed dword) $17, (byte/signed byte/word/signed word/dword/signed dword) $12, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 1 } (byte) ORANGE (const byte) ORANGE#0 ORANGE = (byte/signed byte/word/signed word/dword/signed dword) 8 (word[]) PIECES (const word[]) PIECES#0 PIECES = { ((word))(const byte[4*4*4]) PIECE_T#0, ((word))(const byte[4*4*4]) PIECE_S#0, ((word))(const byte[4*4*4]) PIECE_Z#0, ((word))(const byte[4*4*4]) PIECE_J#0, ((word))(const byte[4*4*4]) PIECE_O#0, ((word))(const byte[4*4*4]) PIECE_I#0, ((word))(const byte[4*4*4]) PIECE_L#0 } (byte[]) PIECES_CHARS -(const byte[]) PIECES_CHARS#0 PIECES_CHARS = { (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 102, (byte/word/signed word/dword/signed dword) 166, (byte/signed byte/word/signed word/dword/signed dword) 102, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/word/signed word/dword/signed dword) 166 } +(const byte[]) PIECES_CHARS#0 PIECES_CHARS = { (byte/signed byte/word/signed word/dword/signed dword) $65, (byte/signed byte/word/signed word/dword/signed dword) $66, (byte/word/signed word/dword/signed dword) $a6, (byte/signed byte/word/signed word/dword/signed dword) $66, (byte/signed byte/word/signed word/dword/signed dword) $65, (byte/signed byte/word/signed word/dword/signed dword) $65, (byte/word/signed word/dword/signed dword) $a6 } (byte[]) PIECES_COLORS_1 (const byte[]) PIECES_COLORS_1#0 PIECES_COLORS_1 = { (const byte) BLUE#0, (const byte) GREEN#0, (const byte) PURPLE#0, (const byte) BLUE#0, (const byte) RED#0, (const byte) LIGHT_GREEN#0, (const byte) RED#0, (const byte) BLUE#0, (const byte) LIGHT_BLUE#0, (const byte) RED#0, (const byte) BLUE#0, (const byte) GREEN#0, (const byte) PURPLE#0, (const byte) BLUE#0, (const byte) RED#0, (const byte) LIGHT_GREEN#0, (const byte) RED#0, (const byte) BLUE#0, (const byte) LIGHT_BLUE#0, (const byte) RED#0, (const byte) BLUE#0, (const byte) GREEN#0, (const byte) PURPLE#0, (const byte) BLUE#0, (const byte) RED#0, (const byte) LIGHT_GREEN#0, (const byte) RED#0, (const byte) BLUE#0, (const byte) LIGHT_BLUE#0, (const byte) RED#0 } (byte[]) PIECES_COLORS_2 (const byte[]) PIECES_COLORS_2#0 PIECES_COLORS_2 = { (const byte) CYAN#0, (const byte) LIGHT_GREEN#0, (const byte) PINK#0, (const byte) LIGHT_GREEN#0, (const byte) LIGHT_GREEN#0, (const byte) LIGHT_BLUE#0, (const byte) DARK_GREY#0, (const byte) PURPLE#0, (const byte) RED#0, (const byte) ORANGE#0, (const byte) CYAN#0, (const byte) LIGHT_GREEN#0, (const byte) PINK#0, (const byte) LIGHT_GREEN#0, (const byte) LIGHT_GREEN#0, (const byte) LIGHT_BLUE#0, (const byte) DARK_GREY#0, (const byte) PURPLE#0, (const byte) RED#0, (const byte) ORANGE#0, (const byte) CYAN#0, (const byte) LIGHT_GREEN#0, (const byte) PINK#0, (const byte) LIGHT_GREEN#0, (const byte) LIGHT_GREEN#0, (const byte) LIGHT_BLUE#0, (const byte) DARK_GREY#0, (const byte) PURPLE#0, (const byte) RED#0, (const byte) ORANGE#0 } (byte[]) PIECES_NEXT_CHARS -(const byte[]) PIECES_NEXT_CHARS#0 PIECES_NEXT_CHARS = { (byte/signed byte/word/signed word/dword/signed dword) 99, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/word/signed word/dword/signed dword) 164, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/signed byte/word/signed word/dword/signed dword) 99, (byte/signed byte/word/signed word/dword/signed dword) 99, (byte/word/signed word/dword/signed dword) 164 } +(const byte[]) PIECES_NEXT_CHARS#0 PIECES_NEXT_CHARS = { (byte/signed byte/word/signed word/dword/signed dword) $63, (byte/signed byte/word/signed word/dword/signed dword) $64, (byte/word/signed word/dword/signed dword) $a4, (byte/signed byte/word/signed word/dword/signed dword) $64, (byte/signed byte/word/signed word/dword/signed dword) $63, (byte/signed byte/word/signed word/dword/signed dword) $63, (byte/word/signed word/dword/signed dword) $a4 } (byte[]) PIECES_START_X (const byte[]) PIECES_START_X#0 PIECES_START_X = { (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4 } (byte[]) PIECES_START_Y @@ -200,24 +200,24 @@ (byte[4*4*4]) PIECE_Z (const byte[4*4*4]) PIECE_Z#0 PIECE_Z = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte) PINK -(const byte) PINK#0 PINK = (byte/signed byte/word/signed word/dword/signed dword) 10 +(const byte) PINK#0 PINK = (byte/signed byte/word/signed word/dword/signed dword) $a (byte*) PLAYFIELD_CHARSET -(const byte*) PLAYFIELD_CHARSET#0 PLAYFIELD_CHARSET = ((byte*))(word/signed word/dword/signed dword) 10240 +(const byte*) PLAYFIELD_CHARSET#0 PLAYFIELD_CHARSET = ((byte*))(word/signed word/dword/signed dword) $2800 (byte*) PLAYFIELD_COLORS_ORIGINAL -(const byte*) PLAYFIELD_COLORS_ORIGINAL#0 PLAYFIELD_COLORS_ORIGINAL = ((byte*))(word/signed word/dword/signed dword) 7168 +(const byte*) PLAYFIELD_COLORS_ORIGINAL#0 PLAYFIELD_COLORS_ORIGINAL = ((byte*))(word/signed word/dword/signed dword) $1c00 (byte) PLAYFIELD_COLS -(const byte) PLAYFIELD_COLS#0 PLAYFIELD_COLS = (byte/signed byte/word/signed word/dword/signed dword) 10 +(const byte) PLAYFIELD_COLS#0 PLAYFIELD_COLS = (byte/signed byte/word/signed word/dword/signed dword) $a (byte) PLAYFIELD_LINES -(const byte) PLAYFIELD_LINES#0 PLAYFIELD_LINES = (byte/signed byte/word/signed word/dword/signed dword) 22 +(const byte) PLAYFIELD_LINES#0 PLAYFIELD_LINES = (byte/signed byte/word/signed word/dword/signed dword) $16 (byte*) PLAYFIELD_SCREEN_1 -(const byte*) PLAYFIELD_SCREEN_1#0 PLAYFIELD_SCREEN_1 = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) PLAYFIELD_SCREEN_1#0 PLAYFIELD_SCREEN_1 = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) PLAYFIELD_SCREEN_2 -(const byte*) PLAYFIELD_SCREEN_2#0 PLAYFIELD_SCREEN_2 = ((byte*))(word/signed word/dword/signed dword) 11264 +(const byte*) PLAYFIELD_SCREEN_2#0 PLAYFIELD_SCREEN_2 = ((byte*))(word/signed word/dword/signed dword) $2c00 (byte*) PLAYFIELD_SCREEN_ORIGINAL -(const byte*) PLAYFIELD_SCREEN_ORIGINAL#0 PLAYFIELD_SCREEN_ORIGINAL = ((byte*))(word/signed word/dword/signed dword) 6144 +(const byte*) PLAYFIELD_SCREEN_ORIGINAL#0 PLAYFIELD_SCREEN_ORIGINAL = ((byte*))(word/signed word/dword/signed dword) $1800 (byte) PLAYFIELD_SCREEN_ORIGINAL_WIDTH (byte*) PLAYFIELD_SPRITES -(const byte*) PLAYFIELD_SPRITES#0 PLAYFIELD_SPRITES = ((byte*))(word/signed word/dword/signed dword) 8192 +(const byte*) PLAYFIELD_SPRITES#0 PLAYFIELD_SPRITES = ((byte*))(word/signed word/dword/signed dword) $2000 (byte*) PLAYFIELD_SPRITE_PTRS_1 (const byte*) PLAYFIELD_SPRITE_PTRS_1#0 PLAYFIELD_SPRITE_PTRS_1 = (const byte*) PLAYFIELD_SCREEN_1#0+(const word) SPRITE_PTRS#0 (byte*) PLAYFIELD_SPRITE_PTRS_2 @@ -233,18 +233,18 @@ (byte) PROCPORT_RAM_ALL (byte) PROCPORT_RAM_CHARROM (byte) PROCPORT_RAM_IO -(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) 53 +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) $35 (byte) PURPLE (const byte) PURPLE#0 PURPLE = (byte/signed byte/word/signed word/dword/signed dword) 4 (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (const byte) RED#0 RED = (byte/signed byte/word/signed word/dword/signed dword) 2 (dword[]) SCORE_BASE_BCD -(const dword[]) SCORE_BASE_BCD#0 SCORE_BASE_BCD = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 64, (word/signed word/dword/signed dword) 256, (word/signed word/dword/signed dword) 768, (word/signed word/dword/signed dword) 4608 } +(const dword[]) SCORE_BASE_BCD#0 SCORE_BASE_BCD = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $40, (word/signed word/dword/signed dword) $100, (word/signed word/dword/signed dword) $300, (word/signed word/dword/signed dword) $1200 } (byte) SID_CONTROL_GATE (byte) SID_CONTROL_NOISE -(const byte) SID_CONTROL_NOISE#0 SID_CONTROL_NOISE = (byte/word/signed word/dword/signed dword) 128 +(const byte) SID_CONTROL_NOISE#0 SID_CONTROL_NOISE = (byte/word/signed word/dword/signed dword) $80 (byte) SID_CONTROL_PULSE (byte) SID_CONTROL_RING (byte) SID_CONTROL_SAWTOOTH @@ -252,44 +252,44 @@ (byte) SID_CONTROL_TEST (byte) SID_CONTROL_TRIANGLE (byte*) SID_VOICE3_CONTROL -(const byte*) SID_VOICE3_CONTROL#0 SID_VOICE3_CONTROL = ((byte*))(word/dword/signed dword) 54290 +(const byte*) SID_VOICE3_CONTROL#0 SID_VOICE3_CONTROL = ((byte*))(word/dword/signed dword) $d412 (word*) SID_VOICE3_FREQ -(const word*) SID_VOICE3_FREQ#0 SID_VOICE3_FREQ = ((word*))(word/dword/signed dword) 54286 +(const word*) SID_VOICE3_FREQ#0 SID_VOICE3_FREQ = ((word*))(word/dword/signed dword) $d40e (byte*) SID_VOICE3_FREQ_HIGH (byte*) SID_VOICE3_FREQ_LOW (byte*) SID_VOICE3_OSC -(const byte*) SID_VOICE3_OSC#0 SID_VOICE3_OSC = ((byte*))(word/dword/signed dword) 54299 +(const byte*) SID_VOICE3_OSC#0 SID_VOICE3_OSC = ((byte*))(word/dword/signed dword) $d41b (byte*) SPRITES_COLS -(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) 53287 +(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) $d027 (byte*) SPRITES_ENABLE -(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) 53269 +(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) $d015 (byte*) SPRITES_EXPAND_X -(const byte*) SPRITES_EXPAND_X#0 SPRITES_EXPAND_X = ((byte*))(word/dword/signed dword) 53277 +(const byte*) SPRITES_EXPAND_X#0 SPRITES_EXPAND_X = ((byte*))(word/dword/signed dword) $d01d (byte*) SPRITES_EXPAND_Y -(const byte*) SPRITES_EXPAND_Y#0 SPRITES_EXPAND_Y = ((byte*))(word/dword/signed dword) 53271 +(const byte*) SPRITES_EXPAND_Y#0 SPRITES_EXPAND_Y = ((byte*))(word/dword/signed dword) $d017 (byte) SPRITES_FIRST_YPOS -(const byte) SPRITES_FIRST_YPOS#0 SPRITES_FIRST_YPOS = (byte/signed byte/word/signed word/dword/signed dword) 49 +(const byte) SPRITES_FIRST_YPOS#0 SPRITES_FIRST_YPOS = (byte/signed byte/word/signed word/dword/signed dword) $31 (byte*) SPRITES_MC -(const byte*) SPRITES_MC#0 SPRITES_MC = ((byte*))(word/dword/signed dword) 53276 +(const byte*) SPRITES_MC#0 SPRITES_MC = ((byte*))(word/dword/signed dword) $d01c (byte*) SPRITES_MC1 (byte*) SPRITES_MC2 (byte*) SPRITES_PRIORITY (byte*) SPRITES_XMSB (byte*) SPRITES_XPOS -(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) 53248 +(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) $d000 (byte*) SPRITES_YPOS -(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) 53249 +(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) $d001 (word) SPRITE_PTRS -(const word) SPRITE_PTRS#0 SPRITE_PTRS = (word/signed word/dword/signed dword) 1016 +(const word) SPRITE_PTRS#0 SPRITE_PTRS = (word/signed word/dword/signed dword) $3f8 (byte) VIC_BMM (byte*) VIC_CONTROL -(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) 53265 +(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) $d011 (byte*) VIC_CONTROL2 (byte) VIC_CSEL (byte) VIC_DEN -(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_ECM -(const byte) VIC_ECM#0 VIC_ECM = (byte/signed byte/word/signed word/dword/signed dword) 64 +(const byte) VIC_ECM#0 VIC_ECM = (byte/signed byte/word/signed word/dword/signed dword) $40 (byte) VIC_MCM (byte*) VIC_MEMORY (byte) VIC_RSEL @@ -302,7 +302,7 @@ (byte) current_movedown_counter#14 current_movedown_counter zp ZP_BYTE:4 3.0000000000000004 (byte) current_movedown_counter#16 current_movedown_counter zp ZP_BYTE:4 8.769230769230768 (byte) current_movedown_fast -(const byte) current_movedown_fast#0 current_movedown_fast = (byte/signed byte/word/signed word/dword/signed dword) 10 +(const byte) current_movedown_fast#0 current_movedown_fast = (byte/signed byte/word/signed word/dword/signed dword) $a (byte) current_movedown_slow (byte) current_movedown_slow#1 current_movedown_slow zp ZP_BYTE:24 0.18181818181818182 (byte) current_movedown_slow#10 current_movedown_slow zp ZP_BYTE:24 4.0 @@ -480,7 +480,7 @@ (byte) keyboard_events_size#30 keyboard_events_size zp ZP_BYTE:35 10201.2 (byte) keyboard_events_size#4 keyboard_events_size zp ZP_BYTE:35 3.0 (byte[8]) keyboard_matrix_col_bitmask -(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $10, (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/word/signed word/dword/signed dword) $80 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (label) keyboard_matrix_read::@return (byte) keyboard_matrix_read::return @@ -490,7 +490,7 @@ (byte) keyboard_matrix_read::rowid (byte) keyboard_matrix_read::rowid#0 reg byte x 1003.0 (byte[8]) keyboard_matrix_row_bitmask -(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } +(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) $fe, (byte/word/signed word/dword/signed dword) $fd, (byte/word/signed word/dword/signed dword) $fb, (byte/word/signed word/dword/signed dword) $f7, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $bf, (byte/signed byte/word/signed word/dword/signed dword) $7f } (byte) keyboard_modifiers (byte) keyboard_modifiers#11 reg byte x 0.8 (byte) keyboard_modifiers#12 reg byte x 1.6 @@ -859,7 +859,7 @@ (label) render_bcd::@2 (label) render_bcd::@return (byte) render_bcd::ZERO_CHAR -(const byte) render_bcd::ZERO_CHAR#0 ZERO_CHAR = (byte/signed byte/word/signed word/dword/signed dword) 53 +(const byte) render_bcd::ZERO_CHAR#0 ZERO_CHAR = (byte/signed byte/word/signed word/dword/signed dword) $35 (byte) render_bcd::bcd (byte) render_bcd::bcd#0 reg byte x 4.0 (byte) render_bcd::bcd#1 reg byte x 4.0 @@ -967,7 +967,7 @@ (byte) render_next::l#1 l zp ZP_BYTE:9 151.5 (byte) render_next::l#7 l zp ZP_BYTE:9 18.363636363636363 (word) render_next::next_area_offset -(const word) render_next::next_area_offset#0 next_area_offset = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 12+(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 4 +(const word) render_next::next_area_offset#0 next_area_offset = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $c+(byte/signed byte/word/signed word/dword/signed dword) $18+(byte/signed byte/word/signed word/dword/signed dword) 4 (byte) render_next::next_piece_char (byte) render_next::next_piece_char#0 next_piece_char zp ZP_BYTE:10 66.86666666666667 (byte*) render_next::next_piece_gfx @@ -1012,13 +1012,13 @@ (label) render_score::@9 (label) render_score::@return (word) render_score::level_offset -(const word) render_score::level_offset#0 level_offset = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 19+(byte/signed byte/word/signed word/dword/signed dword) 31 +(const word) render_score::level_offset#0 level_offset = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $13+(byte/signed byte/word/signed word/dword/signed dword) $1f (word) render_score::lines_offset -(const word) render_score::lines_offset#0 lines_offset = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 22 +(const word) render_score::lines_offset#0 lines_offset = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) $16 (byte*) render_score::score_bytes (const byte*) render_score::score_bytes#0 score_bytes = ((byte*))&(dword) score_bcd#14 (word) render_score::score_offset -(const word) render_score::score_offset#0 score_offset = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5+(byte/signed byte/word/signed word/dword/signed dword) 28 +(const word) render_score::score_offset#0 score_offset = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5+(byte/signed byte/word/signed word/dword/signed dword) $1c (byte*) render_score::screen (byte*) render_score::screen#3 screen zp ZP_WORD:5 0.75 (void()) render_screen_original((byte*) render_screen_original::screen) @@ -1099,7 +1099,7 @@ (byte~) render_show::toD0181_$8 (byte*) render_show::toD0181_gfx (byte) render_show::toD0181_return -(const byte) render_show::toD0181_return#0 toD0181_return = >((word))(const byte*) PLAYFIELD_SCREEN_1#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte) render_show::toD0181_return#0 toD0181_return = >((word))(const byte*) PLAYFIELD_SCREEN_1#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) $f (byte*) render_show::toD0181_screen (label) render_show::toD0182 (word~) render_show::toD0182_$0 @@ -1113,7 +1113,7 @@ (byte~) render_show::toD0182_$8 (byte*) render_show::toD0182_gfx (byte) render_show::toD0182_return -(const byte) render_show::toD0182_return#0 toD0182_return = >((word))(const byte*) PLAYFIELD_SCREEN_2#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte) render_show::toD0182_return#0 toD0182_return = >((word))(const byte*) PLAYFIELD_SCREEN_2#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) $f (byte*) render_show::toD0182_screen (dword[5]) score_add_bcd (const dword[5]) score_add_bcd#0 score_add_bcd = { fill( 5, 0) } diff --git a/src/test/ref/concat-char.log b/src/test/ref/concat-char.log index 55c8c7c16..db7206646 100644 --- a/src/test/ref/concat-char.log +++ b/src/test/ref/concat-char.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) main::l#0 ← (byte) 'l' (string~) main::$0 ← (const string) main::$2 + (byte) main::l#0 (byte[]) main::msg#0 ← (string~) main::$0 @@ -60,7 +60,7 @@ Redundant Phi (byte*) main::screen#1 (byte*) main::screen#0 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) main::$1 [9] if((byte) main::i#1!=rangelast(0,2)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) main::screen#0 = ((byte*))1024 +Constant (const byte*) main::screen#0 = ((byte*))$400 Constant (const byte) main::l#0 = 'l' Constant (const byte) main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification @@ -292,7 +292,7 @@ FINAL SYMBOL TABLE (byte[]) main::msg (const byte[]) main::msg#0 msg = (string) "cm"+(byte) 'l' (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/concat-char.sym b/src/test/ref/concat-char.sym index 86dd5583d..118c86105 100644 --- a/src/test/ref/concat-char.sym +++ b/src/test/ref/concat-char.sym @@ -11,6 +11,6 @@ (byte[]) main::msg (const byte[]) main::msg#0 msg = (string) "cm"+(byte) 'l' (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/consolidate-array-index-problem.cfg b/src/test/ref/consolidate-array-index-problem.cfg index a525bacf0..3ac3e1d72 100644 --- a/src/test/ref/consolidate-array-index-problem.cfg +++ b/src/test/ref/consolidate-array-index-problem.cfg @@ -12,11 +12,11 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@1 [5] (byte) main::x#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::x#1 ) - [6] (byte) main::y#0 ← (byte) main::x#2 + (byte/signed byte/word/signed word/dword/signed dword) 12 + [6] (byte) main::y#0 ← (byte) main::x#2 + (byte/signed byte/word/signed word/dword/signed dword) $c [7] *((const byte*) main::screen#0 + (byte) main::y#0) ← (byte) 'a' [8] *((const byte*) main::cols#0 + (byte) main::y#0) ← (const byte) main::BLACK#0 [9] (byte) main::x#1 ← ++ (byte) main::x#2 - [10] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 + [10] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [11] return diff --git a/src/test/ref/consolidate-array-index-problem.log b/src/test/ref/consolidate-array-index-problem.log index 39998bef6..45d400b44 100644 --- a/src/test/ref/consolidate-array-index-problem.log +++ b/src/test/ref/consolidate-array-index-problem.log @@ -4,8 +4,8 @@ CONTROL FLOW GRAPH SSA to:@1 main: scope:[main] from @1 (byte) main::BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte*) main::cols#0 ← ((byte*)) (word/dword/signed dword) 55296 + (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte*) main::cols#0 ← ((byte*)) (word/dword/signed dword) $d800 (byte) main::x#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main main::@1 @@ -13,12 +13,12 @@ main::@1: scope:[main] from main main::@1 (byte) main::BLACK#1 ← phi( main/(byte) main::BLACK#0 main::@1/(byte) main::BLACK#1 ) (byte*) main::screen#1 ← phi( main/(byte*) main::screen#0 main::@1/(byte*) main::screen#1 ) (byte) main::x#2 ← phi( main/(byte) main::x#0 main::@1/(byte) main::x#1 ) - (byte/signed word/word/dword/signed dword~) main::$0 ← (byte) main::x#2 + (byte/signed byte/word/signed word/dword/signed dword) 12 + (byte/signed word/word/dword/signed dword~) main::$0 ← (byte) main::x#2 + (byte/signed byte/word/signed word/dword/signed dword) $c (byte) main::y#0 ← (byte/signed word/word/dword/signed dword~) main::$0 *((byte*) main::screen#1 + (byte) main::y#0) ← (byte) 'a' *((byte*) main::cols#1 + (byte) main::y#0) ← (byte) main::BLACK#1 - (byte) main::x#1 ← (byte) main::x#2 + rangenext(0,10) - (bool~) main::$1 ← (byte) main::x#1 != rangelast(0,10) + (byte) main::x#1 ← (byte) main::x#2 + rangenext(0,$a) + (bool~) main::$1 ← (byte) main::x#1 != rangelast(0,$a) if((bool~) main::$1) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 @@ -69,15 +69,15 @@ Redundant Phi (byte*) main::screen#1 (byte*) main::screen#0 Redundant Phi (byte) main::BLACK#1 (byte) main::BLACK#0 Redundant Phi (byte*) main::cols#1 (byte*) main::cols#0 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$1 [11] if((byte) main::x#1!=rangelast(0,10)) goto main::@1 +Simple Condition (bool~) main::$1 [11] if((byte) main::x#1!=rangelast(0,$a)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte) main::BLACK#0 = 0 -Constant (const byte*) main::screen#0 = ((byte*))1024 -Constant (const byte*) main::cols#0 = ((byte*))55296 +Constant (const byte*) main::screen#0 = ((byte*))$400 +Constant (const byte*) main::cols#0 = ((byte*))$d800 Constant (const byte) main::x#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::x#1 ← ++ main::x#2 to ++ -Resolved ranged comparison value if(main::x#1!=rangelast(0,10)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 11 +Resolved ranged comparison value if(main::x#1!=rangelast(0,$a)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $b Inlining constant with var siblings (const byte) main::x#0 Constant inlined main::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining @@ -113,11 +113,11 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@1 [5] (byte) main::x#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::x#1 ) - [6] (byte) main::y#0 ← (byte) main::x#2 + (byte/signed byte/word/signed word/dword/signed dword) 12 + [6] (byte) main::y#0 ← (byte) main::x#2 + (byte/signed byte/word/signed word/dword/signed dword) $c [7] *((const byte*) main::screen#0 + (byte) main::y#0) ← (byte) 'a' [8] *((const byte*) main::cols#0 + (byte) main::y#0) ← (const byte) main::BLACK#0 [9] (byte) main::x#1 ← ++ (byte) main::x#2 - [10] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 + [10] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [11] return @@ -186,7 +186,7 @@ main: { jmp b1 //SEG15 main::@1 b1: - //SEG16 [6] (byte) main::y#0 ← (byte) main::x#2 + (byte/signed byte/word/signed word/dword/signed dword) 12 -- vbuz1=vbuz2_plus_vbuc1 + //SEG16 [6] (byte) main::y#0 ← (byte) main::x#2 + (byte/signed byte/word/signed word/dword/signed dword) $c -- vbuz1=vbuz2_plus_vbuc1 lda #$c clc adc x @@ -201,7 +201,7 @@ main: { sta cols,y //SEG19 [9] (byte) main::x#1 ← ++ (byte) main::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG20 [10] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG20 [10] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #$b bne b1_from_b1 @@ -213,12 +213,12 @@ main: { } REGISTER UPLIFT POTENTIAL REGISTERS -Statement [6] (byte) main::y#0 ← (byte) main::x#2 + (byte/signed byte/word/signed word/dword/signed dword) 12 [ main::x#2 main::y#0 ] ( main:2 [ main::x#2 main::y#0 ] ) always clobbers reg byte a +Statement [6] (byte) main::y#0 ← (byte) main::x#2 + (byte/signed byte/word/signed word/dword/signed dword) $c [ main::x#2 main::y#0 ] ( main:2 [ main::x#2 main::y#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::x#2 main::x#1 ] Statement [7] *((const byte*) main::screen#0 + (byte) main::y#0) ← (byte) 'a' [ main::x#2 main::y#0 ] ( main:2 [ main::x#2 main::y#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ main::y#0 ] Statement [8] *((const byte*) main::cols#0 + (byte) main::y#0) ← (const byte) main::BLACK#0 [ main::x#2 ] ( main:2 [ main::x#2 ] ) always clobbers reg byte a -Statement [6] (byte) main::y#0 ← (byte) main::x#2 + (byte/signed byte/word/signed word/dword/signed dword) 12 [ main::x#2 main::y#0 ] ( main:2 [ main::x#2 main::y#0 ] ) always clobbers reg byte a +Statement [6] (byte) main::y#0 ← (byte) main::x#2 + (byte/signed byte/word/signed word/dword/signed dword) $c [ main::x#2 main::y#0 ] ( main:2 [ main::x#2 main::y#0 ] ) always clobbers reg byte a Statement [7] *((const byte*) main::screen#0 + (byte) main::y#0) ← (byte) 'a' [ main::x#2 main::y#0 ] ( main:2 [ main::x#2 main::y#0 ] ) always clobbers reg byte a Statement [8] *((const byte*) main::cols#0 + (byte) main::y#0) ← (const byte) main::BLACK#0 [ main::x#2 ] ( main:2 [ main::x#2 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ main::x#2 main::x#1 ] : zp ZP_BYTE:2 , reg byte x , reg byte y , @@ -270,7 +270,7 @@ main: { jmp b1 //SEG15 main::@1 b1: - //SEG16 [6] (byte) main::y#0 ← (byte) main::x#2 + (byte/signed byte/word/signed word/dword/signed dword) 12 -- vbuxx=vbuyy_plus_vbuc1 + //SEG16 [6] (byte) main::y#0 ← (byte) main::x#2 + (byte/signed byte/word/signed word/dword/signed dword) $c -- vbuxx=vbuyy_plus_vbuc1 tya clc adc #$c @@ -283,7 +283,7 @@ main: { sta cols,x //SEG19 [9] (byte) main::x#1 ← ++ (byte) main::x#2 -- vbuyy=_inc_vbuyy iny - //SEG20 [10] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuyy_neq_vbuc1_then_la1 + //SEG20 [10] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuyy_neq_vbuc1_then_la1 cpy #$b bne b1_from_b1 jmp breturn @@ -328,9 +328,9 @@ FINAL SYMBOL TABLE (byte) main::BLACK (const byte) main::BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) main::cols -(const byte*) main::cols#0 cols = ((byte*))(word/dword/signed dword) 55296 +(const byte*) main::cols#0 cols = ((byte*))(word/dword/signed dword) $d800 (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::x (byte) main::x#1 reg byte y 16.5 (byte) main::x#2 reg byte y 8.25 @@ -369,7 +369,7 @@ main: { //SEG14 [5] phi (byte) main::x#2 = (byte) main::x#1 [phi:main::@1->main::@1#0] -- register_copy //SEG15 main::@1 b1: - //SEG16 [6] (byte) main::y#0 ← (byte) main::x#2 + (byte/signed byte/word/signed word/dword/signed dword) 12 -- vbuxx=vbuyy_plus_vbuc1 + //SEG16 [6] (byte) main::y#0 ← (byte) main::x#2 + (byte/signed byte/word/signed word/dword/signed dword) $c -- vbuxx=vbuyy_plus_vbuc1 tya clc adc #$c @@ -382,7 +382,7 @@ main: { sta cols,x //SEG19 [9] (byte) main::x#1 ← ++ (byte) main::x#2 -- vbuyy=_inc_vbuyy iny - //SEG20 [10] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuyy_neq_vbuc1_then_la1 + //SEG20 [10] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuyy_neq_vbuc1_then_la1 cpy #$b bne b1 //SEG21 main::@return diff --git a/src/test/ref/consolidate-array-index-problem.sym b/src/test/ref/consolidate-array-index-problem.sym index 987eedf7c..8efa16205 100644 --- a/src/test/ref/consolidate-array-index-problem.sym +++ b/src/test/ref/consolidate-array-index-problem.sym @@ -7,9 +7,9 @@ (byte) main::BLACK (const byte) main::BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) main::cols -(const byte*) main::cols#0 cols = ((byte*))(word/dword/signed dword) 55296 +(const byte*) main::cols#0 cols = ((byte*))(word/dword/signed dword) $d800 (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::x (byte) main::x#1 reg byte y 16.5 (byte) main::x#2 reg byte y 8.25 diff --git a/src/test/ref/consolidate-constant-problem.cfg b/src/test/ref/consolidate-constant-problem.cfg index a377f2fbf..ccd505c0c 100644 --- a/src/test/ref/consolidate-constant-problem.cfg +++ b/src/test/ref/consolidate-constant-problem.cfg @@ -11,12 +11,12 @@ main: scope:[main] from @1 [4] phi() to:main::@1 main::@1: scope:[main] from main - [5] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 39) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [6] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 38) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [5] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $27) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [6] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $26) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1_1 main::@1_1: scope:[main] from main::@1 - [7] *((byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1+(const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 39) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [8] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 38+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [7] *((byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1+(const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $27) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [8] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $26+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@return main::@return: scope:[main] from main::@1_1 [9] return diff --git a/src/test/ref/consolidate-constant-problem.log b/src/test/ref/consolidate-constant-problem.log index 0dc3b804e..6685c360a 100644 --- a/src/test/ref/consolidate-constant-problem.log +++ b/src/test/ref/consolidate-constant-problem.log @@ -1,19 +1,19 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@1 main: scope:[main] from @1 (byte) main::j#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main main::@1 (byte) main::j#2 ← phi( main/(byte) main::j#0 main::@1/(byte) main::j#1 ) - (byte/signed word/word/dword/signed dword~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte) main::j#2 + (byte/signed word/word/dword/signed dword~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte) main::j#2 (byte*~) main::$1 ← (byte*) screen#0 + (byte/signed word/word/dword/signed dword~) main::$0 - (byte*~) main::$2 ← (byte*~) main::$1 + (byte/signed byte/word/signed word/dword/signed dword) 39 + (byte*~) main::$2 ← (byte*~) main::$1 + (byte/signed byte/word/signed word/dword/signed dword) $27 *((byte*~) main::$2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte/signed word/word/dword/signed dword~) main::$3 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte) main::j#2 - (byte/signed word/word/dword/signed dword~) main::$4 ← (byte/signed word/word/dword/signed dword~) main::$3 + (byte/signed byte/word/signed word/dword/signed dword) 38 + (byte/signed word/word/dword/signed dword~) main::$3 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte) main::j#2 + (byte/signed word/word/dword/signed dword~) main::$4 ← (byte/signed word/word/dword/signed dword~) main::$3 + (byte/signed byte/word/signed word/dword/signed dword) $26 *((byte*) screen#0 + (byte/signed word/word/dword/signed dword~) main::$4) ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) main::j#1 ← (byte) main::j#2 + rangenext(0,1) (bool~) main::$5 ← (byte) main::j#1 != rangelast(0,1) @@ -54,11 +54,11 @@ Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Simple Condition (bool~) main::$5 [12] unroll if((byte) main::j#1!=rangelast(0,1)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) screen#0 = ((byte*))1024 +Constant (const byte*) screen#0 = ((byte*))$400 Constant (const byte) main::j#0 = 0 Successful SSA optimization Pass2ConstantIdentification Consolidated constant in assignment main::$2 -Consolidated array index constant in assignment *(screen#0+38 + main::$4) +Consolidated array index constant in assignment *(screen#0+$26 + main::$4) Successful SSA optimization Pass2ConstantAdditionElimination Inferred type updated to byte/signed word/word/dword/signed dword in [2] (byte*~) main::$1 ← (byte/signed word/word/dword/signed dword~) main::$0 Resolved ranged next value main::j#1 ← ++ main::j#2 to ++ @@ -70,13 +70,13 @@ Unrolling loop Loop head: main::@1 tails: main::@1 blocks: main::@1 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::j#2 (const byte) main::j#0 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) main::$1 = 40*main::j#0 -Constant (const byte/signed word/word/dword/signed dword) main::$4 = 40*main::j#0 +Constant (const byte/signed word/word/dword/signed dword) main::$1 = $28*main::j#0 +Constant (const byte/signed word/word/dword/signed dword) main::$4 = $28*main::j#0 Constant (const byte) main::j#1 = ++main::j#0 Successful SSA optimization Pass2ConstantIdentification -Constant (const byte*) main::$2 = main::$1+screen#0+39 +Constant (const byte*) main::$2 = main::$1+screen#0+$27 Successful SSA optimization Pass2ConstantIdentification -Consolidated array index constant in *(screen#0+38+main::$4) +Consolidated array index constant in *(screen#0+$26+main::$4) Successful SSA optimization Pass2ConstantAdditionElimination if() condition always true - replacing block destination [2] if((const byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1_1 Successful SSA optimization Pass2ConstantIfs @@ -84,13 +84,13 @@ Unrolling loop Loop head: main::@1_1 tails: main::@1_1 blocks: main::@1_1 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::j#3 (const byte) main::j#1 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) main::$6 = 40*main::j#1 -Constant (const byte/signed word/word/dword/signed dword) main::$8 = 40*main::j#1 +Constant (const byte/signed word/word/dword/signed dword) main::$6 = $28*main::j#1 +Constant (const byte/signed word/word/dword/signed dword) main::$8 = $28*main::j#1 Constant (const byte) main::j#4 = ++main::j#1 Successful SSA optimization Pass2ConstantIdentification -Constant (const byte*) main::$7 = main::$6+screen#0+39 +Constant (const byte*) main::$7 = main::$6+screen#0+$27 Successful SSA optimization Pass2ConstantIdentification -Consolidated array index constant in *(screen#0+38+main::$8) +Consolidated array index constant in *(screen#0+$26+main::$8) Successful SSA optimization Pass2ConstantAdditionElimination Removing PHI-reference to removed block (main::@1_1) in block main::@1_2 if() condition always false - eliminating [5] if((const byte) main::j#4!=(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1_2 @@ -105,22 +105,22 @@ Removing unused block main::@1_2 Successful SSA optimization Pass2EliminateUnusedBlocks Inlining constant with different constant siblings (const byte) main::j#0 Inlining constant with different constant siblings (const byte) main::j#1 -Constant inlined main::$1 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$2 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 0+(const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 39 -Constant inlined main::$6 = (byte/signed byte/word/signed word/dword/signed dword) 40*++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined main::$1 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined main::$2 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 0+(const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $27 +Constant inlined main::$6 = (byte/signed byte/word/signed word/dword/signed dword) $28*++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::j#1 = ++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$4 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined main::$4 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$7 = (byte/signed byte/word/signed word/dword/signed dword) 40*++(byte/signed byte/word/signed word/dword/signed dword) 0+(const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 39 -Constant inlined main::$8 = (byte/signed byte/word/signed word/dword/signed dword) 40*++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined main::$7 = (byte/signed byte/word/signed word/dword/signed dword) $28*++(byte/signed byte/word/signed word/dword/signed dword) 0+(const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $27 +Constant inlined main::$8 = (byte/signed byte/word/signed word/dword/signed dword) $28*++(byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining -Simplifying constant multiply by zero 40*0 -Simplifying constant multiply by zero 40*0 +Simplifying constant multiply by zero $28*0 +Simplifying constant multiply by zero $28*0 Simplifying constant integer increment ++0 Simplifying constant integer increment ++0 Successful SSA optimization Pass2ConstantSimplification -Simplifying constant plus zero 0+screen#0+39 -Simplifying constant plus zero screen#0+38+0 +Simplifying constant plus zero 0+screen#0+$27 +Simplifying constant plus zero screen#0+$26+0 Adding NOP phi() at start of @begin Adding NOP phi() at start of @1 Adding NOP phi() at start of @end @@ -149,12 +149,12 @@ main: scope:[main] from @1 [4] phi() to:main::@1 main::@1: scope:[main] from main - [5] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 39) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [6] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 38) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [5] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $27) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [6] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $26) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1_1 main::@1_1: scope:[main] from main::@1 - [7] *((byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1+(const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 39) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [8] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 38+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [7] *((byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1+(const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $27) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [8] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $26+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@return main::@return: scope:[main] from main::@1_1 [9] return @@ -198,19 +198,19 @@ main: { jmp b1 //SEG11 main::@1 b1: - //SEG12 [5] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 39) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG12 [5] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $27) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta screen+$27 - //SEG13 [6] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 38) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG13 [6] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $26) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta screen+$26 jmp b1_1 //SEG14 main::@1_1 b1_1: - //SEG15 [7] *((byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1+(const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 39) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG15 [7] *((byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1+(const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $27) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta $28*1+screen+$27 - //SEG16 [8] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 38+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG16 [8] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $26+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta screen+$26+$28*1 jmp breturn @@ -221,10 +221,10 @@ main: { } REGISTER UPLIFT POTENTIAL REGISTERS -Statement [5] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 39) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [6] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 38) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [7] *((byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1+(const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 39) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [8] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 38+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [5] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $27) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [6] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $26) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [7] *((byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1+(const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $27) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [8] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $26+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [main] @@ -262,19 +262,19 @@ main: { jmp b1 //SEG11 main::@1 b1: - //SEG12 [5] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 39) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG12 [5] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $27) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta screen+$27 - //SEG13 [6] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 38) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG13 [6] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $26) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta screen+$26 jmp b1_1 //SEG14 main::@1_1 b1_1: - //SEG15 [7] *((byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1+(const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 39) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG15 [7] *((byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1+(const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $27) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta $28*1+screen+$27 - //SEG16 [8] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 38+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG16 [8] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $26+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta screen+$26+$28*1 jmp breturn @@ -322,7 +322,7 @@ FINAL SYMBOL TABLE (label) main::@return (byte) main::j (byte*) screen -(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 @@ -346,15 +346,15 @@ Score: 24 //SEG10 main main: { //SEG11 main::@1 - //SEG12 [5] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 39) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG12 [5] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $27) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta screen+$27 - //SEG13 [6] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 38) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG13 [6] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $26) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 sta screen+$26 //SEG14 main::@1_1 - //SEG15 [7] *((byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1+(const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 39) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG15 [7] *((byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1+(const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $27) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 sta $28*1+screen+$27 - //SEG16 [8] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 38+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG16 [8] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $26+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 sta screen+$26+$28*1 //SEG17 main::@return //SEG18 [9] return diff --git a/src/test/ref/consolidate-constant-problem.sym b/src/test/ref/consolidate-constant-problem.sym index 0e109074e..dbd94ad36 100644 --- a/src/test/ref/consolidate-constant-problem.sym +++ b/src/test/ref/consolidate-constant-problem.sym @@ -7,5 +7,5 @@ (label) main::@return (byte) main::j (byte*) screen -(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/const-condition.log b/src/test/ref/const-condition.log index d40075727..ab28abead 100644 --- a/src/test/ref/const-condition.log +++ b/src/test/ref/const-condition.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (bool~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 < (byte/signed byte/word/signed word/dword/signed dword) 4 if((bool~) main::$0) goto main::@1 to:main::@3 @@ -40,7 +40,7 @@ Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Simple Condition (bool~) main::$0 [2] if((byte/signed byte/word/signed word/dword/signed dword) 7<(byte/signed byte/word/signed word/dword/signed dword) 4) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) main::SCREEN#0 = ((byte*))1024 +Constant (const byte*) main::SCREEN#0 = ((byte*))$400 Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(main::SCREEN#0+0) Consolidated array index constant in *(main::SCREEN#0+0) @@ -211,7 +211,7 @@ FINAL SYMBOL TABLE (label) main::@3 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/const-condition.sym b/src/test/ref/const-condition.sym index a73e4f40e..c514bc5c7 100644 --- a/src/test/ref/const-condition.sym +++ b/src/test/ref/const-condition.sym @@ -5,5 +5,5 @@ (label) main::@3 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/const-identification.cfg b/src/test/ref/const-identification.cfg index 2b592759a..196de89f5 100644 --- a/src/test/ref/const-identification.cfg +++ b/src/test/ref/const-identification.cfg @@ -15,7 +15,7 @@ main::@1: scope:[main] from main main::@1 [6] *((const byte*) plots#0 + (byte) main::i#2) ← (byte) main::i#2 [7] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [8] (byte) main::i#1 ← ++ (byte) main::i#2 - [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 + [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 [10] phi() diff --git a/src/test/ref/const-identification.log b/src/test/ref/const-identification.log index 66377c030..d546c4df1 100644 --- a/src/test/ref/const-identification.log +++ b/src/test/ref/const-identification.log @@ -1,8 +1,8 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) plots#0 ← ((byte*)) (word/signed word/dword/signed dword) 4096 - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) plots#0 ← ((byte*)) (word/signed word/dword/signed dword) $1000 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@3 main: scope:[main] from @3 (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -11,13 +11,13 @@ main::@1: scope:[main] from main main::@1 (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) *((byte*) plots#0 + (byte) main::i#2) ← (byte) main::i#2 *((byte*) SCREEN#0 + (byte) main::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte) main::i#1 ← (byte) main::i#2 + rangenext(0,39) - (bool~) main::$0 ← (byte) main::i#1 != rangelast(0,39) + (byte) main::i#1 ← (byte) main::i#2 + rangenext(0,$27) + (bool~) main::$0 ← (byte) main::i#1 != rangelast(0,$27) if((bool~) main::$0) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@5 (byte) line::x0#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte) line::x1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 + (byte) line::x1#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a call line to:main::@5 main::@5: scope:[main] from main::@2 @@ -144,15 +144,15 @@ Redundant Phi (byte) line::x0#1 (byte) line::x0#0 Redundant Phi (byte) line::x1#1 (byte) line::x1#0 Redundant Phi (byte) line::x1#2 (byte) line::x1#1 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$0 [8] if((byte) main::i#1!=rangelast(0,39)) goto main::@1 +Simple Condition (bool~) main::$0 [8] if((byte) main::i#1!=rangelast(0,$27)) goto main::@1 Simple Condition (bool~) line::$0 [16] if((byte) line::x0#0<(byte) line::x1#0) goto line::@1 Simple Condition (bool~) line::$3 [28] if((byte) line::x#1<=(byte) line::x1#0) goto line::@3 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) plots#0 = ((byte*))4096 -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) plots#0 = ((byte*))$1000 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Constant (const byte) main::i#0 = 0 Constant (const byte) line::x0#0 = 0 -Constant (const byte) line::x1#0 = 10 +Constant (const byte) line::x1#0 = $a Successful SSA optimization Pass2ConstantIdentification Constant (const byte) plot::x#0 = line::x0#0 Successful SSA optimization Pass2ConstantIdentification @@ -164,7 +164,7 @@ Removing PHI-reference to removed block (line::@4) in block plot Removing unused block line::@4 Successful SSA optimization Pass2EliminateUnusedBlocks Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ -Resolved ranged comparison value if(main::i#1!=rangelast(0,39)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(main::i#1!=rangelast(0,$27)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $28 Culled Empty Block (label) main::@5 Culled Empty Block (label) line::@1 Successful SSA optimization Pass2CullEmptyBlocks @@ -218,7 +218,7 @@ main::@1: scope:[main] from main main::@1 [6] *((const byte*) plots#0 + (byte) main::i#2) ← (byte) main::i#2 [7] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [8] (byte) main::i#1 ← ++ (byte) main::i#2 - [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 + [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 [10] phi() @@ -337,7 +337,7 @@ main: { sta SCREEN,y //SEG18 [8] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG19 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG19 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$28 bne b1_from_b1 @@ -489,7 +489,7 @@ main: { sta SCREEN,x //SEG18 [8] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG19 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG19 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b1_from_b1 //SEG20 [10] phi from main::@1 main::@2 to main::@2 [phi:main::@1/main::@2->main::@2] @@ -600,7 +600,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) line((byte) line::x0 , (byte) line::x1) (label) line::@3 (label) line::@8 @@ -611,7 +611,7 @@ FINAL SYMBOL TABLE (byte) line::x0 (const byte) line::x0#0 x0 = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) line::x1 -(const byte) line::x1#0 x1 = (byte/signed byte/word/signed word/dword/signed dword) 10 +(const byte) line::x1#0 x1 = (byte/signed byte/word/signed word/dword/signed dword) $a (void()) main() (label) main::@1 (label) main::@2 @@ -626,7 +626,7 @@ FINAL SYMBOL TABLE (byte) plot::x (byte) plot::x#1 reg byte x 103.0 (byte*) plots -(const byte*) plots#0 plots = ((byte*))(word/signed word/dword/signed dword) 4096 +(const byte*) plots#0 plots = ((byte*))(word/signed word/dword/signed dword) $1000 reg byte x [ main::i#2 main::i#1 ] reg byte x [ line::x#2 line::x#1 ] @@ -670,7 +670,7 @@ main: { sta SCREEN,x //SEG18 [8] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG19 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG19 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b1 //SEG20 [10] phi from main::@1 main::@2 to main::@2 [phi:main::@1/main::@2->main::@2] diff --git a/src/test/ref/const-identification.sym b/src/test/ref/const-identification.sym index a525df64c..8bd9c7fb3 100644 --- a/src/test/ref/const-identification.sym +++ b/src/test/ref/const-identification.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) line((byte) line::x0 , (byte) line::x1) (label) line::@3 (label) line::@8 @@ -13,7 +13,7 @@ (byte) line::x0 (const byte) line::x0#0 x0 = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) line::x1 -(const byte) line::x1#0 x1 = (byte/signed byte/word/signed word/dword/signed dword) 10 +(const byte) line::x1#0 x1 = (byte/signed byte/word/signed word/dword/signed dword) $a (void()) main() (label) main::@1 (label) main::@2 @@ -28,7 +28,7 @@ (byte) plot::x (byte) plot::x#1 reg byte x 103.0 (byte*) plots -(const byte*) plots#0 plots = ((byte*))(word/signed word/dword/signed dword) 4096 +(const byte*) plots#0 plots = ((byte*))(word/signed word/dword/signed dword) $1000 reg byte x [ main::i#2 main::i#1 ] reg byte x [ line::x#2 line::x#1 ] diff --git a/src/test/ref/const-mult-div.log b/src/test/ref/const-mult-div.log index 2732fe835..fb9bd9957 100644 --- a/src/test/ref/const-mult-div.log +++ b/src/test/ref/const-mult-div.log @@ -3,12 +3,12 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 / (byte/signed byte/word/signed word/dword/signed dword) 3 + (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) $e / (byte/signed byte/word/signed word/dword/signed dword) 3 (byte/signed word/word/dword/signed dword/signed byte~) main::$1 ← (byte/signed byte/word/signed word/dword/signed dword) 6 * (byte/signed byte/word/signed word/dword/signed dword~) main::$0 - (byte/signed byte/word/signed word/dword/signed dword~) main::$2 ← (byte/signed byte/word/signed word/dword/signed dword) 22 % (byte/signed byte/word/signed word/dword/signed dword) 3 + (byte/signed byte/word/signed word/dword/signed dword~) main::$2 ← (byte/signed byte/word/signed word/dword/signed dword) $16 % (byte/signed byte/word/signed word/dword/signed dword) 3 (byte/signed word/word/dword/signed dword/signed byte~) main::$3 ← (byte/signed word/word/dword/signed dword/signed byte~) main::$1 + (byte/signed byte/word/signed word/dword/signed dword~) main::$2 (byte) main::b#0 ← (byte/signed word/word/dword/signed dword/signed byte~) main::$3 - (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 *((byte*) main::screen#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) main::b#0 to:main::@return main::@return: scope:[main] from main @@ -41,9 +41,9 @@ Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) main::b#0 = (byte/signed word/word/dword/signed dword/signed byte~) main::$3 Successful SSA optimization Pass2AliasElimination -Constant (const byte/signed byte/word/signed word/dword/signed dword) main::$0 = 14/3 -Constant (const byte/signed byte/word/signed word/dword/signed dword) main::$2 = 22%3 -Constant (const byte*) main::screen#0 = ((byte*))1024 +Constant (const byte/signed byte/word/signed word/dword/signed dword) main::$0 = $e/3 +Constant (const byte/signed byte/word/signed word/dword/signed dword) main::$2 = $16%3 +Constant (const byte*) main::screen#0 = ((byte*))$400 Successful SSA optimization Pass2ConstantIdentification Constant (const byte/signed word/word/dword/signed dword/signed byte) main::$1 = 6*main::$0 Successful SSA optimization Pass2ConstantIdentification @@ -51,9 +51,9 @@ Constant (const byte) main::b#0 = main::$1+main::$2 Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(main::screen#0+0) Successful SSA optimization Pass2ConstantAdditionElimination -Constant inlined main::$1 = (byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 14/(byte/signed byte/word/signed word/dword/signed dword) 3 -Constant inlined main::$2 = (byte/signed byte/word/signed word/dword/signed dword) 22%(byte/signed byte/word/signed word/dword/signed dword) 3 -Constant inlined main::$0 = (byte/signed byte/word/signed word/dword/signed dword) 14/(byte/signed byte/word/signed word/dword/signed dword) 3 +Constant inlined main::$1 = (byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $e/(byte/signed byte/word/signed word/dword/signed dword) 3 +Constant inlined main::$2 = (byte/signed byte/word/signed word/dword/signed dword) $16%(byte/signed byte/word/signed word/dword/signed dword) 3 +Constant inlined main::$0 = (byte/signed byte/word/signed word/dword/signed dword) $e/(byte/signed byte/word/signed word/dword/signed dword) 3 Successful SSA optimization Pass2ConstantInlining Simplifying constant plus zero main::screen#0+0 Adding NOP phi() at start of @begin @@ -201,9 +201,9 @@ FINAL SYMBOL TABLE (void()) main() (label) main::@return (byte) main::b -(const byte) main::b#0 b = (byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 14/(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 22%(byte/signed byte/word/signed word/dword/signed dword) 3 +(const byte) main::b#0 b = (byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $e/(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) $16%(byte/signed byte/word/signed word/dword/signed dword) 3 (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/const-mult-div.sym b/src/test/ref/const-mult-div.sym index edcb76933..3b9a3a3bd 100644 --- a/src/test/ref/const-mult-div.sym +++ b/src/test/ref/const-mult-div.sym @@ -4,7 +4,7 @@ (void()) main() (label) main::@return (byte) main::b -(const byte) main::b#0 b = (byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 14/(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 22%(byte/signed byte/word/signed word/dword/signed dword) 3 +(const byte) main::b#0 b = (byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $e/(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) $16%(byte/signed byte/word/signed word/dword/signed dword) 3 (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/const-param.log b/src/test/ref/const-param.log index c0445ff2f..a16d0d1f9 100644 --- a/src/test/ref/const-param.log +++ b/src/test/ref/const-param.log @@ -3,8 +3,8 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@2 main: scope:[main] from @2 - (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte) main::reverse#0 ← (byte/word/signed word/dword/signed dword) 128 + (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte) main::reverse#0 ← (byte/word/signed word/dword/signed dword) $80 (byte) sum::a#0 ← (byte) main::reverse#0 (byte) sum::b#0 ← (byte) 'c' call sum @@ -109,8 +109,8 @@ Alias (byte) sum::return#1 = (byte) sum::return#6 Alias (byte) sum::return#2 = (byte) sum::return#7 Alias (byte) sum::return#3 = (byte~) sum::$0 (byte) sum::return#8 (byte) sum::return#4 Successful SSA optimization Pass2AliasElimination -Constant (const byte*) main::screen#0 = ((byte*))1024 -Constant (const byte) main::reverse#0 = 128 +Constant (const byte*) main::screen#0 = ((byte*))$400 +Constant (const byte) main::reverse#0 = $80 Constant (const byte) sum::b#0 = 'c' Constant (const byte) sum::b#1 = 'm' Constant (const byte) sum::b#2 = 'l' @@ -507,9 +507,9 @@ FINAL SYMBOL TABLE (label) main::@3 (label) main::@return (byte) main::reverse -(const byte) main::reverse#0 reverse = (byte/word/signed word/dword/signed dword) 128 +(const byte) main::reverse#0 reverse = (byte/word/signed word/dword/signed dword) $80 (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 (byte()) sum((byte) sum::a , (byte) sum::b) (label) sum::@return (byte) sum::a diff --git a/src/test/ref/const-param.sym b/src/test/ref/const-param.sym index 84667a07f..a4472bf35 100644 --- a/src/test/ref/const-param.sym +++ b/src/test/ref/const-param.sym @@ -10,9 +10,9 @@ (label) main::@3 (label) main::@return (byte) main::reverse -(const byte) main::reverse#0 reverse = (byte/word/signed word/dword/signed dword) 128 +(const byte) main::reverse#0 reverse = (byte/word/signed word/dword/signed dword) $80 (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 (byte()) sum((byte) sum::a , (byte) sum::b) (label) sum::@return (byte) sum::a diff --git a/src/test/ref/const-pointer.log b/src/test/ref/const-pointer.log index 9b89411fb..e525dc26a 100644 --- a/src/test/ref/const-pointer.log +++ b/src/test/ref/const-pointer.log @@ -3,9 +3,9 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*) main::NULL#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte*) main::rem#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) 255 + (byte*) main::rem#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) $ff (bool~) main::$0 ← (byte*) main::rem#0 != (byte*) main::NULL#0 if((bool~) main::$0) goto main::@1 to:main::@3 @@ -52,9 +52,9 @@ Alias (byte*) main::screen#0 = (byte*) main::screen#1 (byte*) main::screen#2 Successful SSA optimization Pass2AliasElimination Simple Condition (bool~) main::$0 [4] if((byte*) main::rem#0!=(byte*) main::NULL#0) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) main::screen#0 = ((byte*))1024 +Constant (const byte*) main::screen#0 = ((byte*))$400 Constant (const byte*) main::NULL#0 = ((byte*))0 -Constant (const byte*) main::rem#0 = ((byte*))255 +Constant (const byte*) main::rem#0 = ((byte*))$ff Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(main::screen#0+0) Consolidated array index constant in *(main::screen#0+0) @@ -230,7 +230,7 @@ FINAL SYMBOL TABLE (byte*) main::NULL (byte*) main::rem (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/const-pointer.sym b/src/test/ref/const-pointer.sym index 2a79604cd..dd24c2bb2 100644 --- a/src/test/ref/const-pointer.sym +++ b/src/test/ref/const-pointer.sym @@ -7,5 +7,5 @@ (byte*) main::NULL (byte*) main::rem (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/const-word-pointer.cfg b/src/test/ref/const-word-pointer.cfg index 0fe1fcf83..4924eb598 100644 --- a/src/test/ref/const-word-pointer.cfg +++ b/src/test/ref/const-word-pointer.cfg @@ -8,12 +8,12 @@ @end: scope:[] from @1 [3] phi() main: scope:[main] from @1 - [4] (word) main::w#0 ← (word/signed word/dword/signed dword) 3331 + [4] (word) main::w#0 ← (word/signed word/dword/signed dword) $d03 [5] (byte~) main::$1 ← < *((const word*) main::wp#0) [6] *((const byte*) main::screen#0) ← (byte~) main::$1 [7] (byte~) main::$2 ← > *((const word*) main::wp#0) [8] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte~) main::$2 - [9] *((const word*) main::wp#0) ← (word/signed word/dword/signed dword) 8460 + [9] *((const word*) main::wp#0) ← (word/signed word/dword/signed dword) $210c [10] (byte~) main::$3 ← < *((const word*) main::wp#0) [11] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte~) main::$3 [12] (byte~) main::$4 ← > *((const word*) main::wp#0) diff --git a/src/test/ref/const-word-pointer.log b/src/test/ref/const-word-pointer.log index d7c06b535..df27992a6 100644 --- a/src/test/ref/const-word-pointer.log +++ b/src/test/ref/const-word-pointer.log @@ -3,15 +3,15 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (word) main::w#0 ← (word/signed word/dword/signed dword) 3331 + (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (word) main::w#0 ← (word/signed word/dword/signed dword) $d03 (word*~) main::$0 ← & (word) main::w#0 (word*) main::wp#0 ← (word*~) main::$0 (byte~) main::$1 ← < *((word*) main::wp#0) *((byte*) main::screen#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte~) main::$1 (byte~) main::$2 ← > *((word*) main::wp#0) *((byte*) main::screen#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte~) main::$2 - *((word*) main::wp#0) ← (word/signed word/dword/signed dword) 8460 + *((word*) main::wp#0) ← (word/signed word/dword/signed dword) $210c (byte~) main::$3 ← < *((word*) main::wp#0) *((byte*) main::screen#0 + (byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte~) main::$3 (byte~) main::$4 ← > *((word*) main::wp#0) @@ -50,7 +50,7 @@ Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (word*) main::wp#0 = (word*~) main::$0 Successful SSA optimization Pass2AliasElimination -Constant (const byte*) main::screen#0 = ((byte*))1024 +Constant (const byte*) main::screen#0 = ((byte*))$400 Constant (const word*) main::wp#0 = &main::w#0 Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(main::screen#0+0) @@ -82,12 +82,12 @@ FINAL CONTROL FLOW GRAPH @end: scope:[] from @1 [3] phi() main: scope:[main] from @1 - [4] (word) main::w#0 ← (word/signed word/dword/signed dword) 3331 + [4] (word) main::w#0 ← (word/signed word/dword/signed dword) $d03 [5] (byte~) main::$1 ← < *((const word*) main::wp#0) [6] *((const byte*) main::screen#0) ← (byte~) main::$1 [7] (byte~) main::$2 ← > *((const word*) main::wp#0) [8] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte~) main::$2 - [9] *((const word*) main::wp#0) ← (word/signed word/dword/signed dword) 8460 + [9] *((const word*) main::wp#0) ← (word/signed word/dword/signed dword) $210c [10] (byte~) main::$3 ← < *((const word*) main::wp#0) [11] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte~) main::$3 [12] (byte~) main::$4 ← > *((const word*) main::wp#0) @@ -159,7 +159,7 @@ main: { .label _3 = 6 .label _4 = 7 .label w = 2 - //SEG10 [4] (word) main::w#0 ← (word/signed word/dword/signed dword) 3331 -- vwuz1=vwuc1 + //SEG10 [4] (word) main::w#0 ← (word/signed word/dword/signed dword) $d03 -- vwuz1=vwuc1 lda #<$d03 sta w lda #>$d03 @@ -176,7 +176,7 @@ main: { //SEG14 [8] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte~) main::$2 -- _deref_pbuc1=vbuz1 lda _2 sta screen+1 - //SEG15 [9] *((const word*) main::wp#0) ← (word/signed word/dword/signed dword) 8460 -- _deref_pwuc1=vwuc2 + //SEG15 [9] *((const word*) main::wp#0) ← (word/signed word/dword/signed dword) $210c -- _deref_pwuc1=vwuc2 lda #<$210c sta wp lda #>$210c @@ -201,8 +201,8 @@ main: { } REGISTER UPLIFT POTENTIAL REGISTERS -Statement [4] (word) main::w#0 ← (word/signed word/dword/signed dword) 3331 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [9] *((const word*) main::wp#0) ← (word/signed word/dword/signed dword) 8460 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [4] (word) main::w#0 ← (word/signed word/dword/signed dword) $d03 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [9] *((const word*) main::wp#0) ← (word/signed word/dword/signed dword) $210c [ ] ( main:2 [ ] ) always clobbers reg byte a Potential registers zp ZP_WORD:2 [ main::w#0 ] : zp ZP_WORD:2 , Potential registers zp ZP_BYTE:4 [ main::$1 ] : zp ZP_BYTE:4 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:5 [ main::$2 ] : zp ZP_BYTE:5 , reg byte a , reg byte x , reg byte y , @@ -245,7 +245,7 @@ main: { .label screen = $400 .label wp = w .label w = 2 - //SEG10 [4] (word) main::w#0 ← (word/signed word/dword/signed dword) 3331 -- vwuz1=vwuc1 + //SEG10 [4] (word) main::w#0 ← (word/signed word/dword/signed dword) $d03 -- vwuz1=vwuc1 lda #<$d03 sta w lda #>$d03 @@ -258,7 +258,7 @@ main: { lda wp+1 //SEG14 [8] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte~) main::$2 -- _deref_pbuc1=vbuaa sta screen+1 - //SEG15 [9] *((const word*) main::wp#0) ← (word/signed word/dword/signed dword) 8460 -- _deref_pwuc1=vwuc2 + //SEG15 [9] *((const word*) main::wp#0) ← (word/signed word/dword/signed dword) $210c -- _deref_pwuc1=vwuc2 lda #<$210c sta wp lda #>$210c @@ -307,7 +307,7 @@ FINAL SYMBOL TABLE (byte~) main::$4 reg byte a 4.0 (label) main::@return (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 (word) main::w (word) main::w#0 w zp ZP_WORD:2 20.0 (word*) main::wp @@ -342,7 +342,7 @@ main: { .label screen = $400 .label wp = w .label w = 2 - //SEG10 [4] (word) main::w#0 ← (word/signed word/dword/signed dword) 3331 -- vwuz1=vwuc1 + //SEG10 [4] (word) main::w#0 ← (word/signed word/dword/signed dword) $d03 -- vwuz1=vwuc1 lda #<$d03 sta w lda #>$d03 @@ -355,7 +355,7 @@ main: { lda wp+1 //SEG14 [8] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte~) main::$2 -- _deref_pbuc1=vbuaa sta screen+1 - //SEG15 [9] *((const word*) main::wp#0) ← (word/signed word/dword/signed dword) 8460 -- _deref_pwuc1=vwuc2 + //SEG15 [9] *((const word*) main::wp#0) ← (word/signed word/dword/signed dword) $210c -- _deref_pwuc1=vwuc2 lda #<$210c sta wp lda #>$210c diff --git a/src/test/ref/const-word-pointer.sym b/src/test/ref/const-word-pointer.sym index f4d503383..f8d3ebdde 100644 --- a/src/test/ref/const-word-pointer.sym +++ b/src/test/ref/const-word-pointer.sym @@ -8,7 +8,7 @@ (byte~) main::$4 reg byte a 4.0 (label) main::@return (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 (word) main::w (word) main::w#0 w zp ZP_WORD:2 20.0 (word*) main::wp diff --git a/src/test/ref/constabsmin.log b/src/test/ref/constabsmin.log index 3a1e646c0..9029480a8 100644 --- a/src/test/ref/constabsmin.log +++ b/src/test/ref/constabsmin.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@1 main: scope:[main] from @1 *((byte*) SCREEN#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -28,7 +28,7 @@ SYMBOL TABLE SSA Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Successful SSA optimization Pass2ConstantIdentification Adding NOP phi() at start of @begin Adding NOP phi() at start of @1 @@ -168,7 +168,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@return diff --git a/src/test/ref/constabsmin.sym b/src/test/ref/constabsmin.sym index a5a6b884e..bae27d9bf 100644 --- a/src/test/ref/constabsmin.sym +++ b/src/test/ref/constabsmin.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@return diff --git a/src/test/ref/constant-string-concat.log b/src/test/ref/constant-string-concat.log index 908d6bab4..c6a382b3d 100644 --- a/src/test/ref/constant-string-concat.log +++ b/src/test/ref/constant-string-concat.log @@ -15,7 +15,7 @@ main: scope:[main] from @1 (byte[]) main::s4#0 ← (string~) main::$4 (byte[]~) main::$5 ← (byte[]) main::s3#0 + (byte[]) main::s4#0 (byte[]) main::s5#0 ← (byte[]~) main::$5 - (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main main::@1 @@ -92,7 +92,7 @@ Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte[]) main::s#0 = "e"+"l" Constant (const byte) main::e#0 = '!' Constant (const string) main::$3 = ""+'t' -Constant (const byte*) main::SCREEN#0 = ((byte*))1024 +Constant (const byte*) main::SCREEN#0 = ((byte*))$400 Constant (const byte) main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Constant (const byte[]) main::s2#0 = main::s#0+'o' @@ -332,7 +332,7 @@ FINAL SYMBOL TABLE (label) main::@1 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::e (byte) main::i (byte) main::i#1 reg byte x 16.5 diff --git a/src/test/ref/constant-string-concat.sym b/src/test/ref/constant-string-concat.sym index 7088f96c4..aa699a5b6 100644 --- a/src/test/ref/constant-string-concat.sym +++ b/src/test/ref/constant-string-concat.sym @@ -5,7 +5,7 @@ (label) main::@1 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::e (byte) main::i (byte) main::i#1 reg byte x 16.5 diff --git a/src/test/ref/constantmin.cfg b/src/test/ref/constantmin.cfg index 671290c4d..c8dbc142d 100644 --- a/src/test/ref/constantmin.cfg +++ b/src/test/ref/constantmin.cfg @@ -12,10 +12,10 @@ main: scope:[main] from @1 [5] *((const byte*) BGCOL#0) ← (const byte) RED#0 to:main::@1 main::@1: scope:[main] from main main::@1 - [6] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 40 main::@1/(byte) main::i#1 ) + [6] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) $28 main::@1/(byte) main::i#1 ) [7] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (const byte) STAR#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [8] (byte) main::i#1 ← ++ (byte) main::i#2 - [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 80) goto main::@1 + [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $50) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [10] return diff --git a/src/test/ref/constantmin.log b/src/test/ref/constantmin.log index f3fba5bf9..8cf73dd5c 100644 --- a/src/test/ref/constantmin.log +++ b/src/test/ref/constantmin.log @@ -1,10 +1,10 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte) STAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 81 - (byte*) VIC#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte/signed byte/word/signed word/dword/signed dword~) $0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 * (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte) STAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $51 + (byte*) VIC#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte/signed byte/word/signed word/dword/signed dword~) $0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 * (byte/signed byte/word/signed word/dword/signed dword) 2 (byte*~) $1 ← (byte*) VIC#0 + (byte/signed byte/word/signed word/dword/signed dword~) $0 (byte*~) $2 ← (byte*~) $1 + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) BGCOL#0 ← (byte*~) $2 @@ -15,14 +15,14 @@ main: scope:[main] from @1 (byte) RED#1 ← phi( @1/(byte) RED#2 ) *((byte*) SCREEN#0) ← (byte) STAR#0 *((byte*) BGCOL#1) ← (byte) RED#1 - (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) $28 to:main::@1 main::@1: scope:[main] from main main::@1 (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) (byte/signed word/word/dword/signed dword~) main::$0 ← (byte) STAR#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 *((byte*) SCREEN#0 + (byte) main::i#2) ← (byte/signed word/word/dword/signed dword~) main::$0 - (byte) main::i#1 ← (byte) main::i#2 + rangenext(40,79) - (bool~) main::$1 ← (byte) main::i#1 != rangelast(40,79) + (byte) main::i#1 ← (byte) main::i#2 + rangenext($28,$4f) + (bool~) main::$1 ← (byte) main::i#1 != rangelast($28,$4f) if((bool~) main::$1) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 @@ -77,14 +77,14 @@ Successful SSA optimization Pass2AliasElimination Redundant Phi (byte) RED#1 (byte) RED#0 Redundant Phi (byte*) BGCOL#1 (byte*) BGCOL#0 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$1 [17] if((byte) main::i#1!=rangelast(40,79)) goto main::@1 +Simple Condition (bool~) main::$1 [17] if((byte) main::i#1!=rangelast($28,$4f)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) SCREEN#0 = ((byte*))1024 -Constant (const byte) STAR#0 = 81 -Constant (const byte*) VIC#0 = ((byte*))53248 -Constant (const byte/signed byte/word/signed word/dword/signed dword) $0 = 16*2 +Constant (const byte*) SCREEN#0 = ((byte*))$400 +Constant (const byte) STAR#0 = $51 +Constant (const byte*) VIC#0 = ((byte*))$d000 +Constant (const byte/signed byte/word/signed word/dword/signed dword) $0 = $10*2 Constant (const byte) RED#0 = 2 -Constant (const byte) main::i#0 = 40 +Constant (const byte) main::i#0 = $28 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) $1 = VIC#0+$0 Constant (const byte/signed word/word/dword/signed dword) main::$0 = STAR#0+1 @@ -92,11 +92,11 @@ Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) BGCOL#0 = $1+1 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ -Resolved ranged comparison value if(main::i#1!=rangelast(40,79)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 80 +Resolved ranged comparison value if(main::i#1!=rangelast($28,$4f)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $50 Inlining constant with var siblings (const byte) main::i#0 -Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined $0 = (byte/signed byte/word/signed word/dword/signed dword) 16*(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined $1 = (const byte*) VIC#0+(byte/signed byte/word/signed word/dword/signed dword) 16*(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined $0 = (byte/signed byte/word/signed word/dword/signed dword) $10*(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined $1 = (const byte*) VIC#0+(byte/signed byte/word/signed word/dword/signed dword) $10*(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined main::$0 = (const byte) STAR#0+(byte/signed byte/word/signed word/dword/signed dword) 1 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@3(between main::@1 and main::@1) @@ -129,10 +129,10 @@ main: scope:[main] from @1 [5] *((const byte*) BGCOL#0) ← (const byte) RED#0 to:main::@1 main::@1: scope:[main] from main main::@1 - [6] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 40 main::@1/(byte) main::i#1 ) + [6] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) $28 main::@1/(byte) main::i#1 ) [7] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (const byte) STAR#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [8] (byte) main::i#1 ← ++ (byte) main::i#2 - [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 80) goto main::@1 + [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $50) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [10] return @@ -193,7 +193,7 @@ main: { sta BGCOL //SEG12 [6] phi from main to main::@1 [phi:main->main::@1] b1_from_main: - //SEG13 [6] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 40 [phi:main->main::@1#0] -- vbuz1=vbuc1 + //SEG13 [6] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) $28 [phi:main->main::@1#0] -- vbuz1=vbuc1 lda #$28 sta i jmp b1 @@ -209,7 +209,7 @@ main: { sta SCREEN,y //SEG18 [8] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG19 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 80) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG19 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $50) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$50 bne b1_from_b1 @@ -273,7 +273,7 @@ main: { sta BGCOL //SEG12 [6] phi from main to main::@1 [phi:main->main::@1] b1_from_main: - //SEG13 [6] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 40 [phi:main->main::@1#0] -- vbuxx=vbuc1 + //SEG13 [6] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) $28 [phi:main->main::@1#0] -- vbuxx=vbuc1 ldx #$28 jmp b1 //SEG14 [6] phi from main::@1 to main::@1 [phi:main::@1->main::@1] @@ -287,7 +287,7 @@ main: { sta SCREEN,x //SEG18 [8] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG19 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 80) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG19 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $50) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$50 bne b1_from_b1 jmp breturn @@ -326,15 +326,15 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = (const byte*) VIC#0+(byte/signed byte/word/signed word/dword/signed dword) 16*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1 +(const byte*) BGCOL#0 BGCOL = (const byte*) VIC#0+(byte/signed byte/word/signed word/dword/signed dword) $10*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED (const byte) RED#0 RED = (byte/signed byte/word/signed word/dword/signed dword) 2 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) STAR -(const byte) STAR#0 STAR = (byte/signed byte/word/signed word/dword/signed dword) 81 +(const byte) STAR#0 STAR = (byte/signed byte/word/signed word/dword/signed dword) $51 (byte*) VIC -(const byte*) VIC#0 VIC = ((byte*))(word/dword/signed dword) 53248 +(const byte*) VIC#0 VIC = ((byte*))(word/dword/signed dword) $d000 (void()) main() (label) main::@1 (label) main::@return @@ -374,7 +374,7 @@ main: { lda #RED sta BGCOL //SEG12 [6] phi from main to main::@1 [phi:main->main::@1] - //SEG13 [6] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 40 [phi:main->main::@1#0] -- vbuxx=vbuc1 + //SEG13 [6] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) $28 [phi:main->main::@1#0] -- vbuxx=vbuc1 ldx #$28 //SEG14 [6] phi from main::@1 to main::@1 [phi:main::@1->main::@1] //SEG15 [6] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@1->main::@1#0] -- register_copy @@ -385,7 +385,7 @@ main: { sta SCREEN,x //SEG18 [8] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG19 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 80) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG19 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $50) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$50 bne b1 //SEG20 main::@return diff --git a/src/test/ref/constantmin.sym b/src/test/ref/constantmin.sym index 9b8200975..408ee182e 100644 --- a/src/test/ref/constantmin.sym +++ b/src/test/ref/constantmin.sym @@ -2,15 +2,15 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = (const byte*) VIC#0+(byte/signed byte/word/signed word/dword/signed dword) 16*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1 +(const byte*) BGCOL#0 BGCOL = (const byte*) VIC#0+(byte/signed byte/word/signed word/dword/signed dword) $10*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED (const byte) RED#0 RED = (byte/signed byte/word/signed word/dword/signed dword) 2 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) STAR -(const byte) STAR#0 STAR = (byte/signed byte/word/signed word/dword/signed dword) 81 +(const byte) STAR#0 STAR = (byte/signed byte/word/signed word/dword/signed dword) $51 (byte*) VIC -(const byte*) VIC#0 VIC = ((byte*))(word/dword/signed dword) 53248 +(const byte*) VIC#0 VIC = ((byte*))(word/dword/signed dword) $d000 (void()) main() (label) main::@1 (label) main::@return diff --git a/src/test/ref/constants.cfg b/src/test/ref/constants.cfg index f9f39988d..102765784 100644 --- a/src/test/ref/constants.cfg +++ b/src/test/ref/constants.cfg @@ -97,7 +97,7 @@ print_ln: scope:[print_ln] from assert_byte::@2 assert_sbyte::@2 to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [44] (byte*) print_line_cursor#24 ← phi( print_ln/(byte*) print_line_cursor#47 print_ln::@1/(byte*) print_line_cursor#1 ) - [45] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#24 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [45] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#24 + (byte/signed byte/word/signed word/dword/signed dword) $28 [46] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 @@ -119,10 +119,10 @@ test_bytes::@return: scope:[test_bytes] from test_bytes::@2 [54] return to:@return assert_byte: scope:[assert_byte] from test_bytes test_bytes::@1 test_bytes::@2 - [55] (byte*) print_line_cursor#50 ← phi( test_bytes/((byte*))(word/signed word/dword/signed dword) 1024 test_bytes::@1/(byte*) print_line_cursor#1 test_bytes::@2/(byte*) print_line_cursor#1 ) - [55] (byte) assert_byte::c#3 ← phi( test_bytes/(byte/signed byte/word/signed word/dword/signed dword) 0 test_bytes::@1/(byte/signed byte/word/signed word/dword/signed dword) 2 test_bytes::@2/(byte/word/signed word/dword/signed dword) 254 ) + [55] (byte*) print_line_cursor#50 ← phi( test_bytes/((byte*))(word/signed word/dword/signed dword) $400 test_bytes::@1/(byte*) print_line_cursor#1 test_bytes::@2/(byte*) print_line_cursor#1 ) + [55] (byte) assert_byte::c#3 ← phi( test_bytes/(byte/signed byte/word/signed word/dword/signed dword) 0 test_bytes::@1/(byte/signed byte/word/signed word/dword/signed dword) 2 test_bytes::@2/(byte/word/signed word/dword/signed dword) $fe ) [55] (byte) assert_byte::b#3 ← phi( test_bytes/(const byte) test_bytes::bb#0 test_bytes::@1/(const byte) test_bytes::bc#0 test_bytes::@2/(const byte) test_bytes::bd#0 ) - [55] (byte*) print_char_cursor#70 ← phi( test_bytes/((byte*))(word/signed word/dword/signed dword) 1024 test_bytes::@1/(byte*~) print_char_cursor#93 test_bytes::@2/(byte*~) print_char_cursor#94 ) + [55] (byte*) print_char_cursor#70 ← phi( test_bytes/((byte*))(word/signed word/dword/signed dword) $400 test_bytes::@1/(byte*~) print_char_cursor#93 test_bytes::@2/(byte*~) print_char_cursor#94 ) [55] (byte*) assert_byte::msg#3 ← phi( test_bytes/(const string) msg test_bytes::@1/(const string) msg1 test_bytes::@2/(const string) test_bytes::msg2 ) [56] (byte*) print_str::str#1 ← (byte*) assert_byte::msg#3 [57] call print_str @@ -153,10 +153,10 @@ print_cls: scope:[print_cls] from main [68] phi() to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 - [69] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) 1024 print_cls::@1/(byte*) print_cls::sc#1 ) + [69] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) $400 print_cls::@1/(byte*) print_cls::sc#1 ) [70] *((byte*) print_cls::sc#2) ← (byte) ' ' [71] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [72] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [72] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [73] return diff --git a/src/test/ref/constants.log b/src/test/ref/constants.log index 83e0d6de9..2e1ab56cc 100644 --- a/src/test/ref/constants.log +++ b/src/test/ref/constants.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 to:@12 @@ -34,7 +34,7 @@ print_ln: scope:[print_ln] from assert_byte::@2 assert_sbyte::@2 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 (byte*) print_char_cursor#36 ← phi( print_ln/(byte*) print_char_cursor#67 print_ln::@1/(byte*) print_char_cursor#36 ) (byte*) print_line_cursor#24 ← phi( print_ln/(byte*) print_line_cursor#47 print_ln::@1/(byte*) print_line_cursor#1 ) - (byte*~) print_ln::$0 ← (byte*) print_line_cursor#24 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) print_ln::$0 ← (byte*) print_line_cursor#24 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) print_line_cursor#1 ← (byte*~) print_ln::$0 (bool~) print_ln::$1 ← (byte*) print_line_cursor#1 < (byte*) print_char_cursor#36 if((bool~) print_ln::$1) goto print_ln::@1 @@ -65,7 +65,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 (byte*) print_cls::sc#2 ← phi( print_cls/(byte*) print_cls::sc#0 print_cls::@1/(byte*) print_cls::sc#1 ) *((byte*) print_cls::sc#2) ← (byte) ' ' (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) 1000 + (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) $3e8 (bool~) print_cls::$1 ← (byte*) print_cls::sc#1 != (byte*~) print_cls::$0 if((bool~) print_cls::$1) goto print_cls::@1 to:print_cls::@2 @@ -85,7 +85,7 @@ print_cls::@return: scope:[print_cls] from print_cls::@2 (byte*) print_screen#6 ← phi( @12/(byte*) print_screen#7 ) (byte*) print_char_cursor#81 ← phi( @12/(byte*) print_char_cursor#82 ) (byte*) print_line_cursor#58 ← phi( @12/(byte*) print_line_cursor#59 ) - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 (byte) GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 5 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:@24 @@ -157,7 +157,7 @@ test_bytes::@2: scope:[test_bytes] from test_bytes::@1 (byte) test_bytes::bd#0 ← (byte~) test_bytes::$5 (byte*) assert_byte::msg#2 ← (const string) test_bytes::msg2 (byte) assert_byte::b#2 ← (byte) test_bytes::bd#0 - (byte) assert_byte::c#2 ← (byte/word/signed word/dword/signed dword) 254 + (byte) assert_byte::c#2 ← (byte/word/signed word/dword/signed dword) $fe call assert_byte to:test_bytes::@3 test_bytes::@3: scope:[test_bytes] from test_bytes::@2 @@ -295,8 +295,8 @@ test_sbytes::@4: scope:[test_sbytes] from test_sbytes::@3 (byte*) print_char_cursor#56 ← phi( test_sbytes::@3/(byte*) print_char_cursor#32 ) (byte*) print_char_cursor#24 ← (byte*) print_char_cursor#56 (byte*) print_line_cursor#18 ← (byte*) print_line_cursor#41 - (signed byte/signed word/signed dword~) test_sbytes::$8 ← - (byte/signed byte/word/signed word/dword/signed dword) 127 - (signed word/signed byte/signed dword~) test_sbytes::$9 ← (signed byte/signed word/signed dword~) test_sbytes::$8 - (byte/signed byte/word/signed word/dword/signed dword) 127 + (signed byte/signed word/signed dword~) test_sbytes::$8 ← - (byte/signed byte/word/signed word/dword/signed dword) $7f + (signed word/signed byte/signed dword~) test_sbytes::$9 ← (signed byte/signed word/signed dword~) test_sbytes::$8 - (byte/signed byte/word/signed word/dword/signed dword) $7f (signed byte~) test_sbytes::$10 ← ((signed byte)) (signed word/signed byte/signed dword~) test_sbytes::$9 (signed byte) test_sbytes::bf#0 ← (signed byte~) test_sbytes::$10 (byte*) assert_sbyte::msg#4 ← (const string) test_sbytes::msg4 @@ -866,9 +866,9 @@ Simple Condition (bool~) print_cls::$1 [35] if((byte*) print_cls::sc#1!=(byte*~) Simple Condition (bool~) assert_byte::$2 [108] if((byte) assert_byte::b#3!=(byte) assert_byte::c#3) goto assert_byte::@1 Simple Condition (bool~) assert_sbyte::$2 [191] if((signed byte) assert_sbyte::b#5!=(signed byte) assert_sbyte::c#5) goto assert_sbyte::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) print_line_cursor#0 = ((byte*))1024 +Constant (const byte*) print_line_cursor#0 = ((byte*))$400 Constant (const byte[]) print_hextab#0 = $0 -Constant (const byte*) BGCOL#0 = ((byte*))53281 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 Constant (const byte) GREEN#0 = 5 Constant (const byte) RED#0 = 2 Constant (const byte) test_bytes::bb#0 = 0 @@ -877,7 +877,7 @@ Constant (const byte) assert_byte::c#0 = 0 Constant (const byte*) assert_byte::msg#1 = test_bytes::msg1 Constant (const byte) assert_byte::c#1 = 2 Constant (const byte*) assert_byte::msg#2 = test_bytes::msg2 -Constant (const byte) assert_byte::c#2 = 254 +Constant (const byte) assert_byte::c#2 = $fe Constant (const byte*) print_str::str#2 = assert_byte::str Constant (const byte*) print_str::str#3 = assert_byte::str1 Constant (const byte*) print_str::str#4 = assert_byte::str2 @@ -890,7 +890,7 @@ Constant (const signed byte) assert_sbyte::c#2 = -2 Constant (const byte*) assert_sbyte::msg#2 = test_sbytes::msg2 Constant (const byte*) assert_sbyte::msg#3 = test_sbytes::msg3 Constant (const signed byte) assert_sbyte::c#3 = 2 -Constant (const signed byte/signed word/signed dword) test_sbytes::$8 = -127 +Constant (const signed byte/signed word/signed dword) test_sbytes::$8 = -$7f Constant (const byte*) assert_sbyte::msg#4 = test_sbytes::msg4 Constant (const signed byte) assert_sbyte::c#4 = 2 Constant (const byte*) print_str::str#6 = assert_sbyte::str @@ -898,12 +898,12 @@ Constant (const byte*) print_str::str#7 = assert_sbyte::str1 Constant (const byte*) print_str::str#8 = assert_sbyte::str2 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) print_cls::sc#0 = print_line_cursor#0 -Constant (const byte*) print_cls::$0 = print_line_cursor#0+1000 +Constant (const byte*) print_cls::$0 = print_line_cursor#0+$3e8 Constant (const byte) assert_byte::b#0 = test_bytes::bb#0 Constant (const byte) test_bytes::bc#0 = test_bytes::bb#0+2 Constant (const signed byte) assert_sbyte::b#0 = test_sbytes::bb#0 Constant (const signed byte) test_sbytes::bc#0 = test_sbytes::bb#0+2 -Constant (const signed word/signed dword) test_sbytes::$9 = test_sbytes::$8-127 +Constant (const signed word/signed dword) test_sbytes::$9 = test_sbytes::$8-$7f Successful SSA optimization Pass2ConstantIdentification Constant (const byte) assert_byte::b#1 = test_bytes::bc#0 Constant (const signed byte) test_bytes::$3 = ((signed byte))test_bytes::bc#0 @@ -971,7 +971,7 @@ Inlining constant with var siblings (const signed byte) assert_sbyte::b#2 Inlining constant with var siblings (const signed byte) assert_sbyte::b#4 Inlining constant with var siblings (const signed byte) assert_sbyte::b#3 Inlining constant with var siblings (const byte*) print_line_cursor#0 -Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000 +Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8 Constant inlined test_bytes::msg = (const string) msg Constant inlined test_sbytes::msg = (const string) msg Constant inlined assert_sbyte::b#2 = (const signed byte) test_sbytes::bd#0 @@ -987,15 +987,15 @@ Constant inlined assert_byte::c#0 = (byte/signed byte/word/signed word/dword/sig Constant inlined assert_byte::b#2 = (const byte) test_bytes::bd#0 Constant inlined assert_byte::c#1 = (byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined test_bytes::$3 = ((signed byte))(const byte) test_bytes::bc#0 -Constant inlined assert_byte::c#2 = (byte/word/signed word/dword/signed dword) 254 +Constant inlined assert_byte::c#2 = (byte/word/signed word/dword/signed dword) $fe Constant inlined assert_sbyte::c#4 = (byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined test_bytes::$4 = ((signed byte))(const byte) test_bytes::bc#0-(byte/signed byte/word/signed word/dword/signed dword) 4 Constant inlined assert_sbyte::b#4 = (const signed byte) test_sbytes::bf#0 Constant inlined assert_sbyte::c#3 = (byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined assert_sbyte::b#3 = (const signed byte) test_sbytes::be#0 Constant inlined assert_sbyte::c#2 = -(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined test_sbytes::$8 = -(byte/signed byte/word/signed word/dword/signed dword) 127 -Constant inlined test_sbytes::$9 = -(byte/signed byte/word/signed word/dword/signed dword) 127-(byte/signed byte/word/signed word/dword/signed dword) 127 +Constant inlined test_sbytes::$8 = -(byte/signed byte/word/signed word/dword/signed dword) $7f +Constant inlined test_sbytes::$9 = -(byte/signed byte/word/signed word/dword/signed dword) $7f-(byte/signed byte/word/signed word/dword/signed dword) $7f Constant inlined assert_byte::str2 = (const string) str2 Constant inlined assert_byte::msg#0 = (const string) msg Constant inlined test_sbytes::msg1 = (const string) msg1 @@ -1005,9 +1005,9 @@ Constant inlined assert_byte::msg#2 = (const string) test_bytes::msg2 Constant inlined assert_sbyte::msg#0 = (const string) msg Constant inlined assert_sbyte::msg#1 = (const string) msg1 Constant inlined assert_sbyte::msg#2 = (const string) test_sbytes::msg2 -Constant inlined print_line_cursor#0 = ((byte*))(word/signed word/dword/signed dword) 1024 +Constant inlined print_line_cursor#0 = ((byte*))(word/signed word/dword/signed dword) $400 Constant inlined assert_sbyte::msg#3 = (const string) test_sbytes::msg3 -Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword) 1024 +Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword) $400 Constant inlined assert_sbyte::str = (const string) str Constant inlined assert_byte::str = (const string) str Constant inlined test_bytes::msg1 = (const string) msg1 @@ -1187,7 +1187,7 @@ print_ln: scope:[print_ln] from assert_byte::@2 assert_sbyte::@2 to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [44] (byte*) print_line_cursor#24 ← phi( print_ln/(byte*) print_line_cursor#47 print_ln::@1/(byte*) print_line_cursor#1 ) - [45] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#24 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [45] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#24 + (byte/signed byte/word/signed word/dword/signed dword) $28 [46] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 @@ -1209,10 +1209,10 @@ test_bytes::@return: scope:[test_bytes] from test_bytes::@2 [54] return to:@return assert_byte: scope:[assert_byte] from test_bytes test_bytes::@1 test_bytes::@2 - [55] (byte*) print_line_cursor#50 ← phi( test_bytes/((byte*))(word/signed word/dword/signed dword) 1024 test_bytes::@1/(byte*) print_line_cursor#1 test_bytes::@2/(byte*) print_line_cursor#1 ) - [55] (byte) assert_byte::c#3 ← phi( test_bytes/(byte/signed byte/word/signed word/dword/signed dword) 0 test_bytes::@1/(byte/signed byte/word/signed word/dword/signed dword) 2 test_bytes::@2/(byte/word/signed word/dword/signed dword) 254 ) + [55] (byte*) print_line_cursor#50 ← phi( test_bytes/((byte*))(word/signed word/dword/signed dword) $400 test_bytes::@1/(byte*) print_line_cursor#1 test_bytes::@2/(byte*) print_line_cursor#1 ) + [55] (byte) assert_byte::c#3 ← phi( test_bytes/(byte/signed byte/word/signed word/dword/signed dword) 0 test_bytes::@1/(byte/signed byte/word/signed word/dword/signed dword) 2 test_bytes::@2/(byte/word/signed word/dword/signed dword) $fe ) [55] (byte) assert_byte::b#3 ← phi( test_bytes/(const byte) test_bytes::bb#0 test_bytes::@1/(const byte) test_bytes::bc#0 test_bytes::@2/(const byte) test_bytes::bd#0 ) - [55] (byte*) print_char_cursor#70 ← phi( test_bytes/((byte*))(word/signed word/dword/signed dword) 1024 test_bytes::@1/(byte*~) print_char_cursor#93 test_bytes::@2/(byte*~) print_char_cursor#94 ) + [55] (byte*) print_char_cursor#70 ← phi( test_bytes/((byte*))(word/signed word/dword/signed dword) $400 test_bytes::@1/(byte*~) print_char_cursor#93 test_bytes::@2/(byte*~) print_char_cursor#94 ) [55] (byte*) assert_byte::msg#3 ← phi( test_bytes/(const string) msg test_bytes::@1/(const string) msg1 test_bytes::@2/(const string) test_bytes::msg2 ) [56] (byte*) print_str::str#1 ← (byte*) assert_byte::msg#3 [57] call print_str @@ -1243,10 +1243,10 @@ print_cls: scope:[print_cls] from main [68] phi() to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 - [69] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) 1024 print_cls::@1/(byte*) print_cls::sc#1 ) + [69] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) $400 print_cls::@1/(byte*) print_cls::sc#1 ) [70] *((byte*) print_cls::sc#2) ← (byte) ' ' [71] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [72] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [72] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [73] return @@ -1658,7 +1658,7 @@ print_ln: { jmp b1 //SEG108 print_ln::@1 b1: - //SEG109 [45] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#24 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG109 [45] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#24 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -1690,7 +1690,7 @@ test_bytes: { //SEG114 [49] call assert_byte //SEG115 [55] phi from test_bytes to assert_byte [phi:test_bytes->assert_byte] assert_byte_from_test_bytes: - //SEG116 [55] phi (byte*) print_line_cursor#50 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:test_bytes->assert_byte#0] -- pbuz1=pbuc1 + //SEG116 [55] phi (byte*) print_line_cursor#50 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:test_bytes->assert_byte#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -1701,7 +1701,7 @@ test_bytes: { //SEG118 [55] phi (byte) assert_byte::b#3 = (const byte) test_bytes::bb#0 [phi:test_bytes->assert_byte#2] -- vbuz1=vbuc1 lda #bb sta assert_byte.b - //SEG119 [55] phi (byte*) print_char_cursor#70 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:test_bytes->assert_byte#3] -- pbuz1=pbuc1 + //SEG119 [55] phi (byte*) print_char_cursor#70 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:test_bytes->assert_byte#3] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -1749,7 +1749,7 @@ test_bytes: { //SEG133 [55] phi from test_bytes::@2 to assert_byte [phi:test_bytes::@2->assert_byte] assert_byte_from_b2: //SEG134 [55] phi (byte*) print_line_cursor#50 = (byte*) print_line_cursor#1 [phi:test_bytes::@2->assert_byte#0] -- register_copy - //SEG135 [55] phi (byte) assert_byte::c#3 = (byte/word/signed word/dword/signed dword) 254 [phi:test_bytes::@2->assert_byte#1] -- vbuz1=vbuc1 + //SEG135 [55] phi (byte) assert_byte::c#3 = (byte/word/signed word/dword/signed dword) $fe [phi:test_bytes::@2->assert_byte#1] -- vbuz1=vbuc1 lda #$fe sta assert_byte.c //SEG136 [55] phi (byte) assert_byte::b#3 = (const byte) test_bytes::bd#0 [phi:test_bytes::@2->assert_byte#2] -- vbuz1=vbuc1 @@ -1862,7 +1862,7 @@ print_cls: { .label sc = $10 //SEG175 [69] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] b1_from_print_cls: - //SEG176 [69] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG176 [69] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -1883,7 +1883,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG182 [72] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG182 [72] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1_from_b1 @@ -1917,28 +1917,28 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:14 [ a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:15 [ assert_byte::c#3 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:15 [ assert_byte::c#3 ] Statement [40] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#10) [ print_char_cursor#2 print_str::str#10 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y -Statement [45] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#24 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a +Statement [45] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#24 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a Statement [46] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a Statement [50] (byte*~) print_char_cursor#93 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#93 ] ( main:2::test_bytes:7 [ print_line_cursor#1 print_char_cursor#93 ] ) always clobbers reg byte a Statement [52] (byte*~) print_char_cursor#94 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#94 ] ( main:2::test_bytes:7 [ print_line_cursor#1 print_char_cursor#94 ] ) always clobbers reg byte a Statement [56] (byte*) print_str::str#1 ← (byte*) assert_byte::msg#3 [ print_str::str#1 print_char_cursor#70 print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ print_str::str#1 print_char_cursor#70 print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ print_str::str#1 print_char_cursor#70 print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ print_str::str#1 print_char_cursor#70 print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 ] ) always clobbers reg byte a Statement [66] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] ) always clobbers reg byte a Statement [70] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [72] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [72] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a Statement [6] *((const byte*) BGCOL#0) ← (const byte) GREEN#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [23] (byte*) print_str::str#5 ← (byte*) assert_sbyte::msg#5 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_line_cursor#1 ] ) always clobbers reg byte a Statement [24] (byte*~) print_char_cursor#87 ← (byte*) print_line_cursor#1 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#87 print_line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#87 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#87 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#87 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#87 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#87 print_line_cursor#1 ] ) always clobbers reg byte a Statement [34] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a Statement [38] if(*((byte*) print_str::str#10)!=(byte) '@') goto print_str::@2 [ print_char_cursor#2 print_str::str#10 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y Statement [40] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#10) [ print_char_cursor#2 print_str::str#10 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y -Statement [45] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#24 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a +Statement [45] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#24 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a Statement [46] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a Statement [50] (byte*~) print_char_cursor#93 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#93 ] ( main:2::test_bytes:7 [ print_line_cursor#1 print_char_cursor#93 ] ) always clobbers reg byte a Statement [52] (byte*~) print_char_cursor#94 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#94 ] ( main:2::test_bytes:7 [ print_line_cursor#1 print_char_cursor#94 ] ) always clobbers reg byte a Statement [56] (byte*) print_str::str#1 ← (byte*) assert_byte::msg#3 [ print_str::str#1 print_char_cursor#70 print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ print_str::str#1 print_char_cursor#70 print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ print_str::str#1 print_char_cursor#70 print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ print_str::str#1 print_char_cursor#70 print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 ] ) always clobbers reg byte a Statement [66] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] ) always clobbers reg byte a Statement [70] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [72] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [72] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a Potential registers zp ZP_WORD:2 [ assert_sbyte::msg#5 ] : zp ZP_WORD:2 , Potential registers zp ZP_BYTE:4 [ assert_sbyte::b#5 ] : zp ZP_BYTE:4 , reg byte x , Potential registers zp ZP_BYTE:5 [ assert_sbyte::c#5 ] : zp ZP_BYTE:5 , reg byte x , @@ -2286,7 +2286,7 @@ print_ln: { jmp b1 //SEG108 print_ln::@1 b1: - //SEG109 [45] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#24 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG109 [45] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#24 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -2318,7 +2318,7 @@ test_bytes: { //SEG114 [49] call assert_byte //SEG115 [55] phi from test_bytes to assert_byte [phi:test_bytes->assert_byte] assert_byte_from_test_bytes: - //SEG116 [55] phi (byte*) print_line_cursor#50 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:test_bytes->assert_byte#0] -- pbuz1=pbuc1 + //SEG116 [55] phi (byte*) print_line_cursor#50 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:test_bytes->assert_byte#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -2328,7 +2328,7 @@ test_bytes: { sta assert_byte.c //SEG118 [55] phi (byte) assert_byte::b#3 = (const byte) test_bytes::bb#0 [phi:test_bytes->assert_byte#2] -- vbuxx=vbuc1 ldx #bb - //SEG119 [55] phi (byte*) print_char_cursor#70 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:test_bytes->assert_byte#3] -- pbuz1=pbuc1 + //SEG119 [55] phi (byte*) print_char_cursor#70 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:test_bytes->assert_byte#3] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -2375,7 +2375,7 @@ test_bytes: { //SEG133 [55] phi from test_bytes::@2 to assert_byte [phi:test_bytes::@2->assert_byte] assert_byte_from_b2: //SEG134 [55] phi (byte*) print_line_cursor#50 = (byte*) print_line_cursor#1 [phi:test_bytes::@2->assert_byte#0] -- register_copy - //SEG135 [55] phi (byte) assert_byte::c#3 = (byte/word/signed word/dword/signed dword) 254 [phi:test_bytes::@2->assert_byte#1] -- vbuz1=vbuc1 + //SEG135 [55] phi (byte) assert_byte::c#3 = (byte/word/signed word/dword/signed dword) $fe [phi:test_bytes::@2->assert_byte#1] -- vbuz1=vbuc1 lda #$fe sta assert_byte.c //SEG136 [55] phi (byte) assert_byte::b#3 = (const byte) test_bytes::bd#0 [phi:test_bytes::@2->assert_byte#2] -- vbuxx=vbuc1 @@ -2481,7 +2481,7 @@ print_cls: { .label sc = 2 //SEG175 [69] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] b1_from_print_cls: - //SEG176 [69] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG176 [69] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -2502,7 +2502,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG182 [72] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG182 [72] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1_from_b1 @@ -2643,7 +2643,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte) GREEN (const byte) GREEN#0 GREEN = (byte/signed byte/word/signed word/dword/signed dword) 5 (byte) RED @@ -2743,7 +2743,7 @@ FINAL SYMBOL TABLE (signed byte) test_sbytes::be (const signed byte) test_sbytes::be#0 be = -(const signed byte) test_sbytes::bd#0 (signed byte) test_sbytes::bf -(const signed byte) test_sbytes::bf#0 bf = ((signed byte))-(byte/signed byte/word/signed word/dword/signed dword) 127-(byte/signed byte/word/signed word/dword/signed dword) 127 +(const signed byte) test_sbytes::bf#0 bf = ((signed byte))-(byte/signed byte/word/signed word/dword/signed dword) $7f-(byte/signed byte/word/signed word/dword/signed dword) $7f (const string) test_sbytes::msg2 msg2 = (string) "0+2-4=-2@" (const string) test_sbytes::msg3 msg3 = (string) "-(0+2-4)=2@" (const string) test_sbytes::msg4 msg4 = (string) "-127-127=2@" @@ -2997,7 +2997,7 @@ print_ln: { //SEG107 [44] phi (byte*) print_line_cursor#24 = (byte*) print_line_cursor#47 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy //SEG108 print_ln::@1 b1: - //SEG109 [45] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#24 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG109 [45] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#24 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -3026,7 +3026,7 @@ test_bytes: { .const bd = bc-4 //SEG114 [49] call assert_byte //SEG115 [55] phi from test_bytes to assert_byte [phi:test_bytes->assert_byte] - //SEG116 [55] phi (byte*) print_line_cursor#50 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:test_bytes->assert_byte#0] -- pbuz1=pbuc1 + //SEG116 [55] phi (byte*) print_line_cursor#50 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:test_bytes->assert_byte#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -3036,7 +3036,7 @@ test_bytes: { sta assert_byte.c //SEG118 [55] phi (byte) assert_byte::b#3 = (const byte) test_bytes::bb#0 [phi:test_bytes->assert_byte#2] -- vbuxx=vbuc1 ldx #bb - //SEG119 [55] phi (byte*) print_char_cursor#70 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:test_bytes->assert_byte#3] -- pbuz1=pbuc1 + //SEG119 [55] phi (byte*) print_char_cursor#70 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:test_bytes->assert_byte#3] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -3077,7 +3077,7 @@ test_bytes: { //SEG132 [53] call assert_byte //SEG133 [55] phi from test_bytes::@2 to assert_byte [phi:test_bytes::@2->assert_byte] //SEG134 [55] phi (byte*) print_line_cursor#50 = (byte*) print_line_cursor#1 [phi:test_bytes::@2->assert_byte#0] -- register_copy - //SEG135 [55] phi (byte) assert_byte::c#3 = (byte/word/signed word/dword/signed dword) 254 [phi:test_bytes::@2->assert_byte#1] -- vbuz1=vbuc1 + //SEG135 [55] phi (byte) assert_byte::c#3 = (byte/word/signed word/dword/signed dword) $fe [phi:test_bytes::@2->assert_byte#1] -- vbuz1=vbuc1 lda #$fe sta assert_byte.c //SEG136 [55] phi (byte) assert_byte::b#3 = (const byte) test_bytes::bd#0 [phi:test_bytes::@2->assert_byte#2] -- vbuxx=vbuc1 @@ -3162,7 +3162,7 @@ assert_byte: { print_cls: { .label sc = 2 //SEG175 [69] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] - //SEG176 [69] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG176 [69] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -3180,7 +3180,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG182 [72] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG182 [72] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1 diff --git a/src/test/ref/constants.sym b/src/test/ref/constants.sym index 94d830f38..ad1014e17 100644 --- a/src/test/ref/constants.sym +++ b/src/test/ref/constants.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte) GREEN (const byte) GREEN#0 GREEN = (byte/signed byte/word/signed word/dword/signed dword) 5 (byte) RED @@ -102,7 +102,7 @@ (signed byte) test_sbytes::be (const signed byte) test_sbytes::be#0 be = -(const signed byte) test_sbytes::bd#0 (signed byte) test_sbytes::bf -(const signed byte) test_sbytes::bf#0 bf = ((signed byte))-(byte/signed byte/word/signed word/dword/signed dword) 127-(byte/signed byte/word/signed word/dword/signed dword) 127 +(const signed byte) test_sbytes::bf#0 bf = ((signed byte))-(byte/signed byte/word/signed word/dword/signed dword) $7f-(byte/signed byte/word/signed word/dword/signed dword) $7f (const string) test_sbytes::msg2 msg2 = (string) "0+2-4=-2@" (const string) test_sbytes::msg3 msg3 = (string) "-(0+2-4)=2@" (const string) test_sbytes::msg4 msg4 = (string) "-127-127=2@" diff --git a/src/test/ref/double-assignment.log b/src/test/ref/double-assignment.log index cc42dbe04..b6118d439 100644 --- a/src/test/ref/double-assignment.log +++ b/src/test/ref/double-assignment.log @@ -5,8 +5,8 @@ CONTROL FLOW GRAPH SSA main: scope:[main] from @1 (byte) main::a#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) main::b#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte) main::b#1 ← (byte/signed byte/word/signed word/dword/signed dword) 12 + (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte) main::b#1 ← (byte/signed byte/word/signed word/dword/signed dword) $c (byte) main::a#1 ← (byte) main::b#1 *((byte*) main::screen#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) main::a#1 *((byte*) main::screen#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) main::b#1 @@ -43,8 +43,8 @@ Alias (byte) main::a#1 = (byte) main::b#1 Successful SSA optimization Pass2AliasElimination Constant (const byte) main::a#0 = 0 Constant (const byte) main::b#0 = 0 -Constant (const byte*) main::screen#0 = ((byte*))1024 -Constant (const byte) main::a#1 = 12 +Constant (const byte*) main::screen#0 = ((byte*))$400 +Constant (const byte) main::a#1 = $c Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(main::screen#0+0) Consolidated array index constant in *(main::screen#0+1) @@ -207,10 +207,10 @@ FINAL SYMBOL TABLE (void()) main() (label) main::@return (byte) main::a -(const byte) main::a#1 a = (byte/signed byte/word/signed word/dword/signed dword) 12 +(const byte) main::a#1 a = (byte/signed byte/word/signed word/dword/signed dword) $c (byte) main::b (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/double-assignment.sym b/src/test/ref/double-assignment.sym index 02e0692d2..117e29ef0 100644 --- a/src/test/ref/double-assignment.sym +++ b/src/test/ref/double-assignment.sym @@ -4,8 +4,8 @@ (void()) main() (label) main::@return (byte) main::a -(const byte) main::a#1 a = (byte/signed byte/word/signed word/dword/signed dword) 12 +(const byte) main::a#1 a = (byte/signed byte/word/signed word/dword/signed dword) $c (byte) main::b (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/double-import.log b/src/test/ref/double-import.log index e8e32b2aa..952de69a0 100644 --- a/src/test/ref/double-import.log +++ b/src/test/ref/double-import.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:@1 main: scope:[main] from @1 @@ -31,7 +31,7 @@ SYMBOL TABLE SSA Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks -Constant (const byte*) BGCOL#0 = ((byte*))53281 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 Constant (const byte) RED#0 = 2 Successful SSA optimization Pass2ConstantIdentification Adding NOP phi() at start of @begin @@ -175,7 +175,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte) RED (const byte) RED#0 RED = (byte/signed byte/word/signed word/dword/signed dword) 2 (void()) main() diff --git a/src/test/ref/double-import.sym b/src/test/ref/double-import.sym index 777b5b5f0..dec922b60 100644 --- a/src/test/ref/double-import.sym +++ b/src/test/ref/double-import.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte) RED (const byte) RED#0 RED = (byte/signed byte/word/signed word/dword/signed dword) 2 (void()) main() diff --git a/src/test/ref/dword.cfg b/src/test/ref/dword.cfg index 6638f2196..54ae6a0ad 100644 --- a/src/test/ref/dword.cfg +++ b/src/test/ref/dword.cfg @@ -16,7 +16,7 @@ main::@1: scope:[main] from main main::@1 [7] (byte) main::c#0 ← ((byte)) (dword) main::b#0 [8] *((const byte*) main::SCREEN#0 + (byte) main::i#2) ← (byte) main::c#0 [9] (byte) main::i#1 ← ++ (byte) main::i#2 - [10] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 + [10] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [11] return diff --git a/src/test/ref/dword.log b/src/test/ref/dword.log index 50f073041..49f32bdfe 100644 --- a/src/test/ref/dword.log +++ b/src/test/ref/dword.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (dword) main::a#0 ← (dword) 4000000000 + (dword) main::a#0 ← (dword) $ee6b2800 (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main main::@1 @@ -13,10 +13,10 @@ main::@1: scope:[main] from main main::@1 (dword) main::b#0 ← (dword~) main::$0 (byte~) main::$1 ← ((byte)) (dword) main::b#0 (byte) main::c#0 ← (byte~) main::$1 - (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 *((byte*) main::SCREEN#0 + (byte) main::i#2) ← (byte) main::c#0 - (byte) main::i#1 ← (byte) main::i#2 + rangenext(0,100) - (bool~) main::$2 ← (byte) main::i#1 != rangelast(0,100) + (byte) main::i#1 ← (byte) main::i#2 + rangenext(0,$64) + (bool~) main::$2 ← (byte) main::i#1 != rangelast(0,$64) if((bool~) main::$2) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 @@ -63,14 +63,14 @@ Self Phi Eliminated (dword) main::a#1 Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (dword) main::a#1 (dword) main::a#0 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$2 [11] if((byte) main::i#1!=rangelast(0,100)) goto main::@1 +Simple Condition (bool~) main::$2 [11] if((byte) main::i#1!=rangelast(0,$64)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const dword) main::a#0 = 4000000000 +Constant (const dword) main::a#0 = $ee6b2800 Constant (const byte) main::i#0 = 0 -Constant (const byte*) main::SCREEN#0 = ((byte*))1024 +Constant (const byte*) main::SCREEN#0 = ((byte*))$400 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ -Resolved ranged comparison value if(main::i#1!=rangelast(0,100)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 101 +Resolved ranged comparison value if(main::i#1!=rangelast(0,$64)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $65 Inlining constant with var siblings (const byte) main::i#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining @@ -110,7 +110,7 @@ main::@1: scope:[main] from main main::@1 [7] (byte) main::c#0 ← ((byte)) (dword) main::b#0 [8] *((const byte*) main::SCREEN#0 + (byte) main::i#2) ← (byte) main::c#0 [9] (byte) main::i#1 ← ++ (byte) main::i#2 - [10] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 + [10] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [11] return @@ -206,7 +206,7 @@ main: { sta SCREEN,y //SEG19 [9] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG20 [10] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG20 [10] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$65 bne b1_from_b1 @@ -294,7 +294,7 @@ main: { sta SCREEN,x //SEG19 [9] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG20 [10] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG20 [10] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$65 bne b1_from_b1 jmp breturn @@ -337,9 +337,9 @@ FINAL SYMBOL TABLE (label) main::@1 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (dword) main::a -(const dword) main::a#0 a = (dword) 4000000000 +(const dword) main::a#0 a = (dword) $ee6b2800 (dword) main::b (dword) main::b#0 b zp ZP_DWORD:2 22.0 (byte) main::c @@ -401,7 +401,7 @@ main: { sta SCREEN,x //SEG19 [9] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG20 [10] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG20 [10] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$65 bne b1 //SEG21 main::@return diff --git a/src/test/ref/dword.sym b/src/test/ref/dword.sym index f85f7319c..aa9692f16 100644 --- a/src/test/ref/dword.sym +++ b/src/test/ref/dword.sym @@ -5,9 +5,9 @@ (label) main::@1 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (dword) main::a -(const dword) main::a#0 a = (dword) 4000000000 +(const dword) main::a#0 a = (dword) $ee6b2800 (dword) main::b (dword) main::b#0 b zp ZP_DWORD:2 22.0 (byte) main::c diff --git a/src/test/ref/emptyblock-error.log b/src/test/ref/emptyblock-error.log index 08f12ce0a..1881b0fd0 100644 --- a/src/test/ref/emptyblock-error.log +++ b/src/test/ref/emptyblock-error.log @@ -51,7 +51,7 @@ menu::@return: scope:[menu] from menu::@1 menu::@8 to:@return @2: scope:[] from @begin (byte) a#4 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte*) B#0 ← ((byte*)) (word/signed word/dword/signed dword) 4096 + (byte*) B#0 ← ((byte*)) (word/signed word/dword/signed dword) $1000 to:@3 mode: scope:[mode] from menu::@2 (byte) a#22 ← phi( menu::@2/(byte) a#16 ) @@ -194,7 +194,7 @@ Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) mode::$1 [28] if(*((byte*) B#0)!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode::@4 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte) a#19 = 0 -Constant (const byte*) B#0 = ((byte*))4096 +Constant (const byte*) B#0 = ((byte*))$1000 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [1] if(true) goto main::@2 Removing PHI-reference to removed block (menu::@1) in block menu::@return @@ -559,7 +559,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) B -(const byte*) B#0 B = ((byte*))(word/signed word/dword/signed dword) 4096 +(const byte*) B#0 B = ((byte*))(word/signed word/dword/signed dword) $1000 (byte) a (byte) a#1 reg byte a 2.6 (byte) a#12 reg byte a 38.0 diff --git a/src/test/ref/emptyblock-error.sym b/src/test/ref/emptyblock-error.sym index 49a7d62c4..33b3443f7 100644 --- a/src/test/ref/emptyblock-error.sym +++ b/src/test/ref/emptyblock-error.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) B -(const byte*) B#0 B = ((byte*))(word/signed word/dword/signed dword) 4096 +(const byte*) B#0 B = ((byte*))(word/signed word/dword/signed dword) $1000 (byte) a (byte) a#1 reg byte a 2.6 (byte) a#12 reg byte a 38.0 diff --git a/src/test/ref/examples/3d/3d.cfg b/src/test/ref/examples/3d/3d.cfg index 58a73fc23..a80efdc57 100644 --- a/src/test/ref/examples/3d/3d.cfg +++ b/src/test/ref/examples/3d/3d.cfg @@ -120,13 +120,13 @@ anim::@1: scope:[anim] from anim anim::@30 [22] (signed byte) sx#10 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@30/(signed byte) sx#3 ) to:anim::@4 anim::@4: scope:[anim] from anim::@1 anim::@4 - [23] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 + [23] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto anim::@4 to:anim::@7 anim::@7: scope:[anim] from anim::@4 anim::@7 - [24] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto anim::@7 + [24] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fe) goto anim::@7 to:anim::@10 anim::@10: scope:[anim] from anim::@10 anim::@7 - [25] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 253) goto anim::@10 + [25] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fd) goto anim::@10 to:anim::@12 anim::@12: scope:[anim] from anim::@10 [26] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) @@ -154,9 +154,9 @@ anim::@29: scope:[anim] from anim::@13 [42] *((const signed byte[8]) xps#0 + (byte) anim::i#2) ← *((const signed byte*) xp#0) [43] *((const signed byte[8]) yps#0 + (byte) anim::i#2) ← *((const signed byte*) yp#0) [44] (byte) anim::i2#0 ← (byte) anim::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [45] (byte/word/signed word/dword/signed dword~) anim::$8 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) xp#0) + [45] (byte/word/signed word/dword/signed dword~) anim::$8 ← (byte/word/signed word/dword/signed dword) $80 + (byte)*((const signed byte*) xp#0) [46] *((const byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$8 - [47] (byte/word/signed word/dword/signed dword~) anim::$10 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) yp#0) + [47] (byte/word/signed word/dword/signed dword~) anim::$10 ← (byte/word/signed word/dword/signed dword) $80 + (byte)*((const signed byte*) yp#0) [48] *((const byte*) SPRITES_YPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$10 [49] (byte) anim::i#1 ← ++ (byte) anim::i#2 [50] if((byte) anim::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto anim::@13 @@ -259,27 +259,27 @@ debug_print::@1: scope:[debug_print] from debug_print::@32 debug_print::print_s [94] call print_sbyte_at to:debug_print::@27 debug_print::@27: scope:[debug_print] from debug_print::@1 - [95] (byte*) print_sbyte_at::at#16 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print::c#2 + [95] (byte*) print_sbyte_at::at#16 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print::c#2 [96] (signed byte) print_sbyte_at::b#17 ← *((const signed byte[8]) yrs#0 + (byte) debug_print::i#2) [97] call print_sbyte_at to:debug_print::@28 debug_print::@28: scope:[debug_print] from debug_print::@27 - [98] (byte*) print_sbyte_at::at#17 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print::c#2 + [98] (byte*) print_sbyte_at::at#17 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print::c#2 [99] (signed byte) print_sbyte_at::b#18 ← *((const signed byte[8]) zrs#0 + (byte) debug_print::i#2) [100] call print_sbyte_at to:debug_print::@29 debug_print::@29: scope:[debug_print] from debug_print::@28 - [101] (byte*) print_sbyte_at::at#18 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) debug_print::c#2 + [101] (byte*) print_sbyte_at::at#18 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) debug_print::c#2 [102] (signed byte) print_sbyte_at::b#19 ← *((const signed byte[8]) pps#0 + (byte) debug_print::i#2) [103] call print_sbyte_at to:debug_print::@30 debug_print::@30: scope:[debug_print] from debug_print::@29 - [104] (byte*) print_sbyte_at::at#19 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) debug_print::c#2 + [104] (byte*) print_sbyte_at::at#19 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) debug_print::c#2 [105] (signed byte) print_sbyte_at::b#20 ← *((const signed byte[8]) xps#0 + (byte) debug_print::i#2) [106] call print_sbyte_at to:debug_print::@31 debug_print::@31: scope:[debug_print] from debug_print::@30 - [107] (byte*) print_sbyte_at::at#20 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) debug_print::c#2 + [107] (byte*) print_sbyte_at::at#20 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) debug_print::c#2 [108] (signed byte) print_sbyte_at::b#21 ← *((const signed byte[8]) yps#0 + (byte) debug_print::i#2) [109] call print_sbyte_at to:debug_print::@32 @@ -292,7 +292,7 @@ debug_print::@return: scope:[debug_print] from debug_print::@32 [113] return to:@return print_sbyte_at: scope:[print_sbyte_at] from debug_print::@1 debug_print::@27 debug_print::@28 debug_print::@29 debug_print::@30 debug_print::@31 debug_print::print_sbyte_pos1 debug_print::print_sbyte_pos10 debug_print::print_sbyte_pos11 debug_print::print_sbyte_pos12 debug_print::print_sbyte_pos2 debug_print::print_sbyte_pos3 debug_print::print_sbyte_pos4 debug_print::print_sbyte_pos5 debug_print::print_sbyte_pos6 debug_print::print_sbyte_pos7 debug_print::print_sbyte_pos8 debug_print::print_sbyte_pos9 debug_print_init::@1 debug_print_init::@18 debug_print_init::@19 - [114] (byte*) print_sbyte_at::at#21 ← phi( debug_print::@1/(byte*) print_sbyte_at::at#15 debug_print::@27/(byte*) print_sbyte_at::at#16 debug_print::@28/(byte*) print_sbyte_at::at#17 debug_print::@29/(byte*) print_sbyte_at::at#18 debug_print::@30/(byte*) print_sbyte_at::at#19 debug_print::@31/(byte*) print_sbyte_at::at#20 debug_print::print_sbyte_pos1/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos1_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos1_col#0 debug_print::print_sbyte_pos10/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos10_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos10_col#0 debug_print::print_sbyte_pos11/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos11_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos11_col#0 debug_print::print_sbyte_pos12/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos12_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos12_col#0 debug_print::print_sbyte_pos2/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos2_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos2_col#0 debug_print::print_sbyte_pos3/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos3_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos3_col#0 debug_print::print_sbyte_pos4/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos4_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos4_col#0 debug_print::print_sbyte_pos5/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos5_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos5_col#0 debug_print::print_sbyte_pos6/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos6_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos6_col#0 debug_print::print_sbyte_pos7/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos7_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos7_col#0 debug_print::print_sbyte_pos8/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos8_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos8_col#0 debug_print::print_sbyte_pos9/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos9_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos9_col#0 debug_print_init::@1/(byte*) print_sbyte_at::at#0 debug_print_init::@18/(byte*) print_sbyte_at::at#1 debug_print_init::@19/(byte*) print_sbyte_at::at#2 ) + [114] (byte*) print_sbyte_at::at#21 ← phi( debug_print::@1/(byte*) print_sbyte_at::at#15 debug_print::@27/(byte*) print_sbyte_at::at#16 debug_print::@28/(byte*) print_sbyte_at::at#17 debug_print::@29/(byte*) print_sbyte_at::at#18 debug_print::@30/(byte*) print_sbyte_at::at#19 debug_print::@31/(byte*) print_sbyte_at::at#20 debug_print::print_sbyte_pos1/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos1_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos1_col#0 debug_print::print_sbyte_pos10/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos10_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos10_col#0 debug_print::print_sbyte_pos11/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos11_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos11_col#0 debug_print::print_sbyte_pos12/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos12_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos12_col#0 debug_print::print_sbyte_pos2/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos2_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos2_col#0 debug_print::print_sbyte_pos3/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos3_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos3_col#0 debug_print::print_sbyte_pos4/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos4_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos4_col#0 debug_print::print_sbyte_pos5/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos5_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos5_col#0 debug_print::print_sbyte_pos6/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos6_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos6_col#0 debug_print::print_sbyte_pos7/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos7_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos7_col#0 debug_print::print_sbyte_pos8/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos8_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos8_col#0 debug_print::print_sbyte_pos9/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos9_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos9_col#0 debug_print_init::@1/(byte*) print_sbyte_at::at#0 debug_print_init::@18/(byte*) print_sbyte_at::at#1 debug_print_init::@19/(byte*) print_sbyte_at::at#2 ) [114] (signed byte) print_sbyte_at::b#22 ← phi( debug_print::@1/(signed byte) print_sbyte_at::b#16 debug_print::@27/(signed byte) print_sbyte_at::b#17 debug_print::@28/(signed byte) print_sbyte_at::b#18 debug_print::@29/(signed byte) print_sbyte_at::b#19 debug_print::@30/(signed byte) print_sbyte_at::b#20 debug_print::@31/(signed byte) print_sbyte_at::b#21 debug_print::print_sbyte_pos1/(signed byte) print_sbyte_at::b#4 debug_print::print_sbyte_pos10/(signed byte) print_sbyte_at::b#13 debug_print::print_sbyte_pos11/(signed byte) print_sbyte_at::b#14 debug_print::print_sbyte_pos12/(signed byte) print_sbyte_at::b#15 debug_print::print_sbyte_pos2/(signed byte) print_sbyte_at::b#5 debug_print::print_sbyte_pos3/(const signed byte) sz#0 debug_print::print_sbyte_pos4/(signed byte) print_sbyte_at::b#7 debug_print::print_sbyte_pos5/(signed byte) print_sbyte_at::b#8 debug_print::print_sbyte_pos6/(signed byte) print_sbyte_at::b#9 debug_print::print_sbyte_pos7/(signed byte) print_sbyte_at::b#10 debug_print::print_sbyte_pos8/(signed byte) print_sbyte_at::b#11 debug_print::print_sbyte_pos9/(signed byte) print_sbyte_at::b#12 debug_print_init::@1/(signed byte) print_sbyte_at::b#1 debug_print_init::@18/(signed byte) print_sbyte_at::b#2 debug_print_init::@19/(signed byte) print_sbyte_at::b#3 ) [115] if((signed byte) print_sbyte_at::b#22<(byte/signed byte/word/signed word/dword/signed dword) 0) goto print_sbyte_at::@1 to:print_sbyte_at::@3 @@ -330,7 +330,7 @@ print_byte_at: scope:[print_byte_at] from print_sbyte_at::@2 [131] call print_char_at to:print_byte_at::@1 print_byte_at::@1: scope:[print_byte_at] from print_byte_at - [132] (byte~) print_byte_at::$2 ← (byte)(signed byte) print_sbyte_at::b#24 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [132] (byte~) print_byte_at::$2 ← (byte)(signed byte) print_sbyte_at::b#24 & (byte/signed byte/word/signed word/dword/signed dword) $f [133] (byte*) print_char_at::at#3 ← (byte*) print_byte_at::at#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 [134] (byte) print_char_at::ch#3 ← *((const byte[]) print_hextab#0 + (byte~) print_byte_at::$2) [135] call print_char_at @@ -462,12 +462,12 @@ debug_print_init::@1: scope:[debug_print_init] from debug_print_init::@16 debug [218] call print_sbyte_at to:debug_print_init::@18 debug_print_init::@18: scope:[debug_print_init] from debug_print_init::@1 - [219] (byte*) print_sbyte_at::at#1 ← (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print_init::c#2 + [219] (byte*) print_sbyte_at::at#1 ← (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print_init::c#2 [220] (signed byte) print_sbyte_at::b#2 ← *((const signed byte[8]) ys#0 + (byte) debug_print_init::i#2) [221] call print_sbyte_at to:debug_print_init::@19 debug_print_init::@19: scope:[debug_print_init] from debug_print_init::@18 - [222] (byte*) print_sbyte_at::at#2 ← (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print_init::c#2 + [222] (byte*) print_sbyte_at::at#2 ← (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print_init::c#2 [223] (signed byte) print_sbyte_at::b#3 ← *((const signed byte[8]) zs#0 + (byte) debug_print_init::i#2) [224] call print_sbyte_at to:debug_print_init::@2 @@ -477,28 +477,28 @@ debug_print_init::@2: scope:[debug_print_init] from debug_print_init::@19 debug [227] (byte*~) debug_print_init::$59 ← (const byte*) debug_print_init::at_cols#0 + (byte) debug_print_init::c#2 [228] (byte*~) debug_print_init::$60 ← (byte*~) debug_print_init::$59 + (byte) debug_print_init::j#2 [229] *((byte*~) debug_print_init::$60) ← (byte) debug_print_init::col#0 - [230] (byte*~) debug_print_init::$63 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print_init::c#2 + [230] (byte*~) debug_print_init::$63 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print_init::c#2 [231] (byte*~) debug_print_init::$64 ← (byte*~) debug_print_init::$63 + (byte) debug_print_init::j#2 [232] *((byte*~) debug_print_init::$64) ← (byte) debug_print_init::col#0 - [233] (byte*~) debug_print_init::$67 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print_init::c#2 + [233] (byte*~) debug_print_init::$67 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print_init::c#2 [234] (byte*~) debug_print_init::$68 ← (byte*~) debug_print_init::$67 + (byte) debug_print_init::j#2 [235] *((byte*~) debug_print_init::$68) ← (byte) debug_print_init::col#0 - [236] (byte*~) debug_print_init::$71 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) debug_print_init::c#2 + [236] (byte*~) debug_print_init::$71 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) debug_print_init::c#2 [237] (byte*~) debug_print_init::$72 ← (byte*~) debug_print_init::$71 + (byte) debug_print_init::j#2 [238] *((byte*~) debug_print_init::$72) ← (byte) debug_print_init::col#0 - [239] (byte*~) debug_print_init::$75 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) debug_print_init::c#2 + [239] (byte*~) debug_print_init::$75 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) debug_print_init::c#2 [240] (byte*~) debug_print_init::$76 ← (byte*~) debug_print_init::$75 + (byte) debug_print_init::j#2 [241] *((byte*~) debug_print_init::$76) ← (byte) debug_print_init::col#0 - [242] (byte*~) debug_print_init::$79 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) debug_print_init::c#2 + [242] (byte*~) debug_print_init::$79 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) debug_print_init::c#2 [243] (byte*~) debug_print_init::$80 ← (byte*~) debug_print_init::$79 + (byte) debug_print_init::j#2 [244] *((byte*~) debug_print_init::$80) ← (byte) debug_print_init::col#0 - [245] (byte*~) debug_print_init::$83 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6 + (byte) debug_print_init::c#2 + [245] (byte*~) debug_print_init::$83 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 6 + (byte) debug_print_init::c#2 [246] (byte*~) debug_print_init::$84 ← (byte*~) debug_print_init::$83 + (byte) debug_print_init::j#2 [247] *((byte*~) debug_print_init::$84) ← (byte) debug_print_init::col#0 - [248] (byte*~) debug_print_init::$87 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) debug_print_init::c#2 + [248] (byte*~) debug_print_init::$87 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) debug_print_init::c#2 [249] (byte*~) debug_print_init::$88 ← (byte*~) debug_print_init::$87 + (byte) debug_print_init::j#2 [250] *((byte*~) debug_print_init::$88) ← (byte) debug_print_init::col#0 - [251] (byte*~) debug_print_init::$91 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) debug_print_init::c#2 + [251] (byte*~) debug_print_init::$91 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) debug_print_init::c#2 [252] (byte*~) debug_print_init::$92 ← (byte*~) debug_print_init::$91 + (byte) debug_print_init::j#2 [253] *((byte*~) debug_print_init::$92) ← (byte) debug_print_init::col#0 [254] (byte) debug_print_init::j#1 ← ++ (byte) debug_print_init::j#2 @@ -513,7 +513,7 @@ debug_print_init::@return: scope:[debug_print_init] from debug_print_init::@3 [259] return to:@return print_str_at: scope:[print_str_at] from debug_print_init::@10 debug_print_init::@11 debug_print_init::@12 debug_print_init::@13 debug_print_init::@14 debug_print_init::@15 debug_print_init::@16 debug_print_init::@5 debug_print_init::@6 debug_print_init::@7 debug_print_init::@8 debug_print_init::@9 - [260] (byte*) print_str_at::at#15 ← phi( debug_print_init::@10/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 18 debug_print_init::@11/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 19 debug_print_init::@12/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 20 debug_print_init::@13/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 21 debug_print_init::@14/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 22 debug_print_init::@15/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 23 debug_print_init::@16/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24 debug_print_init::@5/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 34 debug_print_init::@6/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 34 debug_print_init::@7/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 34 debug_print_init::@8/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 16 debug_print_init::@9/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 17 ) + [260] (byte*) print_str_at::at#15 ← phi( debug_print_init::@10/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $12 debug_print_init::@11/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $13 debug_print_init::@12/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $14 debug_print_init::@13/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $15 debug_print_init::@14/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $16 debug_print_init::@15/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $17 debug_print_init::@16/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18 debug_print_init::@5/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $22 debug_print_init::@6/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) $22 debug_print_init::@7/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) $22 debug_print_init::@8/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $10 debug_print_init::@9/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $11 ) [260] (byte*) print_str_at::str#15 ← phi( debug_print_init::@10/(const string) debug_print_init::str5 debug_print_init::@11/(const string) debug_print_init::str6 debug_print_init::@12/(const string) debug_print_init::str7 debug_print_init::@13/(const string) debug_print_init::str8 debug_print_init::@14/(const string) debug_print_init::str9 debug_print_init::@15/(const string) debug_print_init::str10 debug_print_init::@16/(const string) debug_print_init::str11 debug_print_init::@5/(const string) debug_print_init::str debug_print_init::@6/(const string) debug_print_init::str1 debug_print_init::@7/(const string) debug_print_init::str2 debug_print_init::@8/(const string) debug_print_init::str3 debug_print_init::@9/(const string) debug_print_init::str4 ) to:print_str_at::@1 print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2 @@ -536,17 +536,17 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 [268] (byte*) print_cls::sc#2 ← phi( print_cls/(const byte*) print_line_cursor#0 print_cls::@1/(byte*) print_cls::sc#1 ) [269] *((byte*) print_cls::sc#2) ← (byte) ' ' [270] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [271] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [271] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [272] return to:@return sprites_init: scope:[sprites_init] from main - [273] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 + [273] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff to:sprites_init::@1 sprites_init::@1: scope:[sprites_init] from sprites_init sprites_init::@1 [274] (byte) sprites_init::i#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 0 sprites_init::@1/(byte) sprites_init::i#1 ) - [275] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 + [275] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 [276] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0 [277] (byte) sprites_init::i#1 ← ++ (byte) sprites_init::i#2 [278] if((byte) sprites_init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto sprites_init::@1 diff --git a/src/test/ref/examples/3d/3d.log b/src/test/ref/examples/3d/3d.log index 89618daf2..d63ab8888 100644 --- a/src/test/ref/examples/3d/3d.log +++ b/src/test/ref/examples/3d/3d.log @@ -87,84 +87,84 @@ Resolved forward reference COSH_LO to (byte*) COSH_LO Resolved forward reference COSH_HI to (byte*) COSH_HI Resolved forward reference COSH_LO to (byte*) COSH_LO Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx -Inlined call call print_sbyte_pos (signed byte) sx (byte/signed byte/word/signed word/dword/signed dword) 0 (byte/signed byte/word/signed word/dword/signed dword) 37 -Inlined call call print_sbyte_pos (signed byte) sy (byte/signed byte/word/signed word/dword/signed dword) 1 (byte/signed byte/word/signed word/dword/signed dword) 37 -Inlined call call print_sbyte_pos (signed byte) sz (byte/signed byte/word/signed word/dword/signed dword) 2 (byte/signed byte/word/signed word/dword/signed dword) 37 -Inlined call call print_sbyte_pos *((signed byte[9]) rotation_matrix + (byte/signed byte/word/signed word/dword/signed dword) 0) (byte/signed byte/word/signed word/dword/signed dword) 4 (byte/signed byte/word/signed word/dword/signed dword) 29 -Inlined call call print_sbyte_pos *((signed byte[9]) rotation_matrix + (byte/signed byte/word/signed word/dword/signed dword) 1) (byte/signed byte/word/signed word/dword/signed dword) 4 (byte/signed byte/word/signed word/dword/signed dword) 33 -Inlined call call print_sbyte_pos *((signed byte[9]) rotation_matrix + (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) 37 -Inlined call call print_sbyte_pos *((signed byte[9]) rotation_matrix + (byte/signed byte/word/signed word/dword/signed dword) 3) (byte/signed byte/word/signed word/dword/signed dword) 5 (byte/signed byte/word/signed word/dword/signed dword) 29 -Inlined call call print_sbyte_pos *((signed byte[9]) rotation_matrix + (byte/signed byte/word/signed word/dword/signed dword) 4) (byte/signed byte/word/signed word/dword/signed dword) 5 (byte/signed byte/word/signed word/dword/signed dword) 33 -Inlined call call print_sbyte_pos *((signed byte[9]) rotation_matrix + (byte/signed byte/word/signed word/dword/signed dword) 5) (byte/signed byte/word/signed word/dword/signed dword) 5 (byte/signed byte/word/signed word/dword/signed dword) 37 -Inlined call call print_sbyte_pos *((signed byte[9]) rotation_matrix + (byte/signed byte/word/signed word/dword/signed dword) 6) (byte/signed byte/word/signed word/dword/signed dword) 6 (byte/signed byte/word/signed word/dword/signed dword) 29 -Inlined call call print_sbyte_pos *((signed byte[9]) rotation_matrix + (byte/signed byte/word/signed word/dword/signed dword) 7) (byte/signed byte/word/signed word/dword/signed dword) 6 (byte/signed byte/word/signed word/dword/signed dword) 33 -Inlined call call print_sbyte_pos *((signed byte[9]) rotation_matrix + (byte/signed byte/word/signed word/dword/signed dword) 8) (byte/signed byte/word/signed word/dword/signed dword) 6 (byte/signed byte/word/signed word/dword/signed dword) 37 +Inlined call call print_sbyte_pos (signed byte) sx (byte/signed byte/word/signed word/dword/signed dword) 0 (byte/signed byte/word/signed word/dword/signed dword) $25 +Inlined call call print_sbyte_pos (signed byte) sy (byte/signed byte/word/signed word/dword/signed dword) 1 (byte/signed byte/word/signed word/dword/signed dword) $25 +Inlined call call print_sbyte_pos (signed byte) sz (byte/signed byte/word/signed word/dword/signed dword) 2 (byte/signed byte/word/signed word/dword/signed dword) $25 +Inlined call call print_sbyte_pos *((signed byte[9]) rotation_matrix + (byte/signed byte/word/signed word/dword/signed dword) 0) (byte/signed byte/word/signed word/dword/signed dword) 4 (byte/signed byte/word/signed word/dword/signed dword) $1d +Inlined call call print_sbyte_pos *((signed byte[9]) rotation_matrix + (byte/signed byte/word/signed word/dword/signed dword) 1) (byte/signed byte/word/signed word/dword/signed dword) 4 (byte/signed byte/word/signed word/dword/signed dword) $21 +Inlined call call print_sbyte_pos *((signed byte[9]) rotation_matrix + (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) $25 +Inlined call call print_sbyte_pos *((signed byte[9]) rotation_matrix + (byte/signed byte/word/signed word/dword/signed dword) 3) (byte/signed byte/word/signed word/dword/signed dword) 5 (byte/signed byte/word/signed word/dword/signed dword) $1d +Inlined call call print_sbyte_pos *((signed byte[9]) rotation_matrix + (byte/signed byte/word/signed word/dword/signed dword) 4) (byte/signed byte/word/signed word/dword/signed dword) 5 (byte/signed byte/word/signed word/dword/signed dword) $21 +Inlined call call print_sbyte_pos *((signed byte[9]) rotation_matrix + (byte/signed byte/word/signed word/dword/signed dword) 5) (byte/signed byte/word/signed word/dword/signed dword) 5 (byte/signed byte/word/signed word/dword/signed dword) $25 +Inlined call call print_sbyte_pos *((signed byte[9]) rotation_matrix + (byte/signed byte/word/signed word/dword/signed dword) 6) (byte/signed byte/word/signed word/dword/signed dword) 6 (byte/signed byte/word/signed word/dword/signed dword) $1d +Inlined call call print_sbyte_pos *((signed byte[9]) rotation_matrix + (byte/signed byte/word/signed word/dword/signed dword) 7) (byte/signed byte/word/signed word/dword/signed dword) 6 (byte/signed byte/word/signed word/dword/signed dword) $21 +Inlined call call print_sbyte_pos *((signed byte[9]) rotation_matrix + (byte/signed byte/word/signed word/dword/signed dword) 8) (byte/signed byte/word/signed word/dword/signed dword) 6 (byte/signed byte/word/signed word/dword/signed dword) $25 CONTROL FLOW GRAPH SSA @begin: scope:[] from (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -175,15 +175,15 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@4 @4: scope:[] from @begin - (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 to:@16 @@ -268,7 +268,7 @@ print_byte_at: scope:[print_byte_at] from print_sbyte_at::@2 print_byte_at::@1: scope:[print_byte_at] from print_byte_at (byte*) print_byte_at::at#2 ← phi( print_byte_at/(byte*) print_byte_at::at#1 ) (byte) print_byte_at::b#2 ← phi( print_byte_at/(byte) print_byte_at::b#1 ) - (byte~) print_byte_at::$2 ← (byte) print_byte_at::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) print_byte_at::$2 ← (byte) print_byte_at::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte*~) print_byte_at::$3 ← (byte*) print_byte_at::at#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) print_char_at::ch#3 ← *((byte[]) print_hextab#0 + (byte~) print_byte_at::$2) (byte*) print_char_at::at#3 ← (byte*~) print_byte_at::$3 @@ -296,7 +296,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 (byte*) print_cls::sc#2 ← phi( print_cls/(byte*) print_cls::sc#0 print_cls::@1/(byte*) print_cls::sc#1 ) *((byte*) print_cls::sc#2) ← (byte) ' ' (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) 1000 + (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) $3e8 (bool~) print_cls::$1 ← (byte*) print_cls::sc#1 != (byte*~) print_cls::$0 if((bool~) print_cls::$1) goto print_cls::@1 to:print_cls::@2 @@ -316,15 +316,15 @@ print_cls::@return: scope:[print_cls] from print_cls::@2 (byte*) print_screen#50 ← phi( @16/(byte*) print_screen#52 ) (byte*) print_char_cursor#24 ← phi( @16/(byte*) print_char_cursor#26 ) (byte*) print_line_cursor#24 ← phi( @16/(byte*) print_line_cursor#26 ) - (signed byte*) xr#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 240 - (signed byte*) yr#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 241 - (signed byte*) zr#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 242 - (signed byte*) pp#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 243 - (signed byte*) xp#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 244 - (signed byte*) yp#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 245 - (word*) psp1#0 ← ((word*)) (byte/word/signed word/dword/signed dword) 246 - (word*) psp2#0 ← ((word*)) (byte/word/signed word/dword/signed dword) 248 - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (signed byte*) xr#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) $f0 + (signed byte*) yr#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) $f1 + (signed byte*) zr#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) $f2 + (signed byte*) pp#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) $f3 + (signed byte*) xp#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) $f4 + (signed byte*) yp#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) $f5 + (word*) psp1#0 ← ((word*)) (byte/word/signed word/dword/signed dword) $f6 + (word*) psp2#0 ← ((word*)) (byte/word/signed word/dword/signed dword) $f8 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@24 main: scope:[main] from @33 (signed byte*) yp#19 ← phi( @33/(signed byte*) yp#20 ) @@ -434,15 +434,15 @@ main::@return: scope:[main] from main::@3 (word*) psp1#5 ← phi( @23/(word*) psp1#0 ) (byte*) print_char_cursor#23 ← phi( @23/(byte*) print_char_cursor#24 ) (byte*) print_line_cursor#23 ← phi( @23/(byte*) print_line_cursor#24 ) - (signed byte/signed word/signed dword~) $0 ← - (byte/signed byte/word/signed word/dword/signed dword) 52 - (signed byte/signed word/signed dword~) $1 ← - (byte/signed byte/word/signed word/dword/signed dword) 52 - (signed byte/signed word/signed dword~) $2 ← - (byte/signed byte/word/signed word/dword/signed dword) 52 - (signed byte[8]) xs#0 ← { (signed byte/signed word/signed dword~) $0, (signed byte/signed word/signed dword~) $1, (signed byte/signed word/signed dword~) $2, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52 } - (signed byte/signed word/signed dword~) $3 ← - (byte/signed byte/word/signed word/dword/signed dword) 52 - (signed byte/signed word/signed dword~) $4 ← - (byte/signed byte/word/signed word/dword/signed dword) 52 - (signed byte/signed word/signed dword~) $5 ← - (byte/signed byte/word/signed word/dword/signed dword) 52 - (signed byte[8]) ys#0 ← { (signed byte/signed word/signed dword~) $3, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 52, (signed byte/signed word/signed dword~) $4, (byte/signed byte/word/signed word/dword/signed dword) 52, (signed byte/signed word/signed dword~) $5, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 52 } - (signed byte[8]) zs#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52 } + (signed byte/signed word/signed dword~) $0 ← - (byte/signed byte/word/signed word/dword/signed dword) $34 + (signed byte/signed word/signed dword~) $1 ← - (byte/signed byte/word/signed word/dword/signed dword) $34 + (signed byte/signed word/signed dword~) $2 ← - (byte/signed byte/word/signed word/dword/signed dword) $34 + (signed byte[8]) xs#0 ← { (signed byte/signed word/signed dword~) $0, (signed byte/signed word/signed dword~) $1, (signed byte/signed word/signed dword~) $2, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34 } + (signed byte/signed word/signed dword~) $3 ← - (byte/signed byte/word/signed word/dword/signed dword) $34 + (signed byte/signed word/signed dword~) $4 ← - (byte/signed byte/word/signed word/dword/signed dword) $34 + (signed byte/signed word/signed dword~) $5 ← - (byte/signed byte/word/signed word/dword/signed dword) $34 + (signed byte[8]) ys#0 ← { (signed byte/signed word/signed dword~) $3, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $34, (signed byte/signed word/signed dword~) $4, (byte/signed byte/word/signed word/dword/signed dword) $34, (signed byte/signed word/signed dword~) $5, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $34 } + (signed byte[8]) zs#0 ← { (byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34 } (signed byte[8]) xrs#0 ← { fill( 8, 0) } (signed byte[8]) yrs#0 ← { fill( 8, 0) } (signed byte[8]) zrs#0 ← { fill( 8, 0) } @@ -521,7 +521,7 @@ anim::@4: scope:[anim] from anim::@2 anim::@5 (signed byte) sz#8 ← phi( anim::@2/(signed byte) sz#11 anim::@5/(signed byte) sz#12 ) (signed byte) sy#27 ← phi( anim::@2/(signed byte) sy#31 anim::@5/(signed byte) sy#32 ) (signed byte) sx#25 ← phi( anim::@2/(signed byte) sx#28 anim::@5/(signed byte) sx#29 ) - (bool~) anim::$0 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 255 + (bool~) anim::$0 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) $ff if((bool~) anim::$0) goto anim::@5 to:anim::@7 anim::@5: scope:[anim] from anim::@4 @@ -557,7 +557,7 @@ anim::@7: scope:[anim] from anim::@4 anim::@8 (signed byte) sz#6 ← phi( anim::@4/(signed byte) sz#8 anim::@8/(signed byte) sz#9 ) (signed byte) sy#22 ← phi( anim::@4/(signed byte) sy#27 anim::@8/(signed byte) sy#28 ) (signed byte) sx#21 ← phi( anim::@4/(signed byte) sx#25 anim::@8/(signed byte) sx#26 ) - (bool~) anim::$1 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 254 + (bool~) anim::$1 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) $fe if((bool~) anim::$1) goto anim::@8 to:anim::@10 anim::@8: scope:[anim] from anim::@7 @@ -593,7 +593,7 @@ anim::@10: scope:[anim] from anim::@11 anim::@7 (signed byte) sz#3 ← phi( anim::@11/(signed byte) sz#5 anim::@7/(signed byte) sz#6 ) (signed byte) sy#14 ← phi( anim::@11/(signed byte) sy#21 anim::@7/(signed byte) sy#22 ) (signed byte) sx#14 ← phi( anim::@11/(signed byte) sx#20 anim::@7/(signed byte) sx#21 ) - (bool~) anim::$2 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 253 + (bool~) anim::$2 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) $fd if((bool~) anim::$2) goto anim::@11 to:anim::@12 anim::@11: scope:[anim] from anim::@10 @@ -720,10 +720,10 @@ anim::@29: scope:[anim] from anim::@13 (byte~) anim::$6 ← (byte) anim::i#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) anim::i2#0 ← (byte~) anim::$6 (byte~) anim::$7 ← ((byte)) *((signed byte*) xp#1) - (byte/word/signed word/dword/signed dword~) anim::$8 ← (byte/word/signed word/dword/signed dword) 128 + (byte~) anim::$7 + (byte/word/signed word/dword/signed dword~) anim::$8 ← (byte/word/signed word/dword/signed dword) $80 + (byte~) anim::$7 *((byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$8 (byte~) anim::$9 ← ((byte)) *((signed byte*) yp#1) - (byte/word/signed word/dword/signed dword~) anim::$10 ← (byte/word/signed word/dword/signed dword) 128 + (byte~) anim::$9 + (byte/word/signed word/dword/signed dword~) anim::$10 ← (byte/word/signed word/dword/signed dword) $80 + (byte~) anim::$9 *((byte*) SPRITES_YPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$10 (byte) anim::i#1 ← (byte) anim::i#3 + rangenext(0,7) (bool~) anim::$11 ← (byte) anim::i#1 != rangelast(0,7) @@ -788,9 +788,9 @@ debug_print_init::@5: scope:[debug_print_init] from debug_print_init (byte*) print_line_cursor#11 ← phi( debug_print_init/(byte*) print_line_cursor#2 ) (byte*) print_line_cursor#5 ← (byte*) print_line_cursor#11 (byte*) print_char_cursor#5 ← (byte*) print_char_cursor#11 - (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$1 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$1 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*~) debug_print_init::$2 ← (byte*) SCREEN#1 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$1 - (byte*~) debug_print_init::$3 ← (byte*~) debug_print_init::$2 + (byte/signed byte/word/signed word/dword/signed dword) 34 + (byte*~) debug_print_init::$3 ← (byte*~) debug_print_init::$2 + (byte/signed byte/word/signed word/dword/signed dword) $22 (byte*) print_str_at::str#1 ← (const string) debug_print_init::str (byte*) print_str_at::at#1 ← (byte*~) debug_print_init::$3 call print_str_at @@ -799,9 +799,9 @@ debug_print_init::@6: scope:[debug_print_init] from debug_print_init::@5 (byte*) print_char_cursor#40 ← phi( debug_print_init::@5/(byte*) print_char_cursor#5 ) (byte*) print_line_cursor#40 ← phi( debug_print_init::@5/(byte*) print_line_cursor#5 ) (byte*) SCREEN#2 ← phi( debug_print_init::@5/(byte*) SCREEN#1 ) - (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$5 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$5 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*~) debug_print_init::$6 ← (byte*) SCREEN#2 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$5 - (byte*~) debug_print_init::$7 ← (byte*~) debug_print_init::$6 + (byte/signed byte/word/signed word/dword/signed dword) 34 + (byte*~) debug_print_init::$7 ← (byte*~) debug_print_init::$6 + (byte/signed byte/word/signed word/dword/signed dword) $22 (byte*) print_str_at::str#2 ← (const string) debug_print_init::str1 (byte*) print_str_at::at#2 ← (byte*~) debug_print_init::$7 call print_str_at @@ -810,9 +810,9 @@ debug_print_init::@7: scope:[debug_print_init] from debug_print_init::@6 (byte*) print_char_cursor#39 ← phi( debug_print_init::@6/(byte*) print_char_cursor#40 ) (byte*) print_line_cursor#39 ← phi( debug_print_init::@6/(byte*) print_line_cursor#40 ) (byte*) SCREEN#3 ← phi( debug_print_init::@6/(byte*) SCREEN#2 ) - (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$9 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$9 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 2 (byte*~) debug_print_init::$10 ← (byte*) SCREEN#3 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$9 - (byte*~) debug_print_init::$11 ← (byte*~) debug_print_init::$10 + (byte/signed byte/word/signed word/dword/signed dword) 34 + (byte*~) debug_print_init::$11 ← (byte*~) debug_print_init::$10 + (byte/signed byte/word/signed word/dword/signed dword) $22 (byte*) print_str_at::str#3 ← (const string) debug_print_init::str2 (byte*) print_str_at::at#3 ← (byte*~) debug_print_init::$11 call print_str_at @@ -821,7 +821,7 @@ debug_print_init::@8: scope:[debug_print_init] from debug_print_init::@7 (byte*) print_char_cursor#38 ← phi( debug_print_init::@7/(byte*) print_char_cursor#39 ) (byte*) print_line_cursor#38 ← phi( debug_print_init::@7/(byte*) print_line_cursor#39 ) (byte*) SCREEN#4 ← phi( debug_print_init::@7/(byte*) SCREEN#3 ) - (word/signed word/dword/signed dword~) debug_print_init::$13 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 16 + (word/signed word/dword/signed dword~) debug_print_init::$13 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) $10 (byte*~) debug_print_init::$14 ← (byte*) SCREEN#4 + (word/signed word/dword/signed dword~) debug_print_init::$13 (byte*) print_str_at::str#4 ← (const string) debug_print_init::str3 (byte*) print_str_at::at#4 ← (byte*~) debug_print_init::$14 @@ -831,7 +831,7 @@ debug_print_init::@9: scope:[debug_print_init] from debug_print_init::@8 (byte*) print_char_cursor#37 ← phi( debug_print_init::@8/(byte*) print_char_cursor#38 ) (byte*) print_line_cursor#37 ← phi( debug_print_init::@8/(byte*) print_line_cursor#38 ) (byte*) SCREEN#5 ← phi( debug_print_init::@8/(byte*) SCREEN#4 ) - (word/signed word/dword/signed dword~) debug_print_init::$16 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 17 + (word/signed word/dword/signed dword~) debug_print_init::$16 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) $11 (byte*~) debug_print_init::$17 ← (byte*) SCREEN#5 + (word/signed word/dword/signed dword~) debug_print_init::$16 (byte*) print_str_at::str#5 ← (const string) debug_print_init::str4 (byte*) print_str_at::at#5 ← (byte*~) debug_print_init::$17 @@ -841,7 +841,7 @@ debug_print_init::@10: scope:[debug_print_init] from debug_print_init::@9 (byte*) print_char_cursor#36 ← phi( debug_print_init::@9/(byte*) print_char_cursor#37 ) (byte*) print_line_cursor#36 ← phi( debug_print_init::@9/(byte*) print_line_cursor#37 ) (byte*) SCREEN#6 ← phi( debug_print_init::@9/(byte*) SCREEN#5 ) - (word/signed word/dword/signed dword~) debug_print_init::$19 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 18 + (word/signed word/dword/signed dword~) debug_print_init::$19 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) $12 (byte*~) debug_print_init::$20 ← (byte*) SCREEN#6 + (word/signed word/dword/signed dword~) debug_print_init::$19 (byte*) print_str_at::str#6 ← (const string) debug_print_init::str5 (byte*) print_str_at::at#6 ← (byte*~) debug_print_init::$20 @@ -851,7 +851,7 @@ debug_print_init::@11: scope:[debug_print_init] from debug_print_init::@10 (byte*) print_char_cursor#35 ← phi( debug_print_init::@10/(byte*) print_char_cursor#36 ) (byte*) print_line_cursor#35 ← phi( debug_print_init::@10/(byte*) print_line_cursor#36 ) (byte*) SCREEN#7 ← phi( debug_print_init::@10/(byte*) SCREEN#6 ) - (word/signed word/dword/signed dword~) debug_print_init::$22 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 19 + (word/signed word/dword/signed dword~) debug_print_init::$22 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) $13 (byte*~) debug_print_init::$23 ← (byte*) SCREEN#7 + (word/signed word/dword/signed dword~) debug_print_init::$22 (byte*) print_str_at::str#7 ← (const string) debug_print_init::str6 (byte*) print_str_at::at#7 ← (byte*~) debug_print_init::$23 @@ -861,7 +861,7 @@ debug_print_init::@12: scope:[debug_print_init] from debug_print_init::@11 (byte*) print_char_cursor#34 ← phi( debug_print_init::@11/(byte*) print_char_cursor#35 ) (byte*) print_line_cursor#34 ← phi( debug_print_init::@11/(byte*) print_line_cursor#35 ) (byte*) SCREEN#8 ← phi( debug_print_init::@11/(byte*) SCREEN#7 ) - (word/signed word/dword/signed dword~) debug_print_init::$25 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 20 + (word/signed word/dword/signed dword~) debug_print_init::$25 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) $14 (byte*~) debug_print_init::$26 ← (byte*) SCREEN#8 + (word/signed word/dword/signed dword~) debug_print_init::$25 (byte*) print_str_at::str#8 ← (const string) debug_print_init::str7 (byte*) print_str_at::at#8 ← (byte*~) debug_print_init::$26 @@ -871,7 +871,7 @@ debug_print_init::@13: scope:[debug_print_init] from debug_print_init::@12 (byte*) print_char_cursor#33 ← phi( debug_print_init::@12/(byte*) print_char_cursor#34 ) (byte*) print_line_cursor#33 ← phi( debug_print_init::@12/(byte*) print_line_cursor#34 ) (byte*) SCREEN#9 ← phi( debug_print_init::@12/(byte*) SCREEN#8 ) - (word/signed word/dword/signed dword~) debug_print_init::$28 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 21 + (word/signed word/dword/signed dword~) debug_print_init::$28 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) $15 (byte*~) debug_print_init::$29 ← (byte*) SCREEN#9 + (word/signed word/dword/signed dword~) debug_print_init::$28 (byte*) print_str_at::str#9 ← (const string) debug_print_init::str8 (byte*) print_str_at::at#9 ← (byte*~) debug_print_init::$29 @@ -881,7 +881,7 @@ debug_print_init::@14: scope:[debug_print_init] from debug_print_init::@13 (byte*) print_char_cursor#32 ← phi( debug_print_init::@13/(byte*) print_char_cursor#33 ) (byte*) print_line_cursor#32 ← phi( debug_print_init::@13/(byte*) print_line_cursor#33 ) (byte*) SCREEN#10 ← phi( debug_print_init::@13/(byte*) SCREEN#9 ) - (word/signed word/dword/signed dword~) debug_print_init::$31 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 22 + (word/signed word/dword/signed dword~) debug_print_init::$31 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) $16 (byte*~) debug_print_init::$32 ← (byte*) SCREEN#10 + (word/signed word/dword/signed dword~) debug_print_init::$31 (byte*) print_str_at::str#10 ← (const string) debug_print_init::str9 (byte*) print_str_at::at#10 ← (byte*~) debug_print_init::$32 @@ -891,7 +891,7 @@ debug_print_init::@15: scope:[debug_print_init] from debug_print_init::@14 (byte*) print_char_cursor#31 ← phi( debug_print_init::@14/(byte*) print_char_cursor#32 ) (byte*) print_line_cursor#31 ← phi( debug_print_init::@14/(byte*) print_line_cursor#32 ) (byte*) SCREEN#11 ← phi( debug_print_init::@14/(byte*) SCREEN#10 ) - (word/signed word/dword/signed dword~) debug_print_init::$34 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 23 + (word/signed word/dword/signed dword~) debug_print_init::$34 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) $17 (byte*~) debug_print_init::$35 ← (byte*) SCREEN#11 + (word/signed word/dword/signed dword~) debug_print_init::$34 (byte*) print_str_at::str#11 ← (const string) debug_print_init::str10 (byte*) print_str_at::at#11 ← (byte*~) debug_print_init::$35 @@ -901,7 +901,7 @@ debug_print_init::@16: scope:[debug_print_init] from debug_print_init::@15 (byte*) print_char_cursor#30 ← phi( debug_print_init::@15/(byte*) print_char_cursor#31 ) (byte*) print_line_cursor#30 ← phi( debug_print_init::@15/(byte*) print_line_cursor#31 ) (byte*) SCREEN#12 ← phi( debug_print_init::@15/(byte*) SCREEN#11 ) - (word/signed word/dword/signed dword~) debug_print_init::$37 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 24 + (word/signed word/dword/signed dword~) debug_print_init::$37 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) $18 (byte*~) debug_print_init::$38 ← (byte*) SCREEN#12 + (word/signed word/dword/signed dword~) debug_print_init::$37 (byte*) print_str_at::str#12 ← (const string) debug_print_init::str11 (byte*) print_str_at::at#12 ← (byte*~) debug_print_init::$38 @@ -911,12 +911,12 @@ debug_print_init::@17: scope:[debug_print_init] from debug_print_init::@16 (byte*) print_char_cursor#29 ← phi( debug_print_init::@16/(byte*) print_char_cursor#30 ) (byte*) print_line_cursor#29 ← phi( debug_print_init::@16/(byte*) print_line_cursor#30 ) (byte*) SCREEN#13 ← phi( debug_print_init::@16/(byte*) SCREEN#12 ) - (word/signed word/dword/signed dword~) debug_print_init::$40 ← (byte/signed byte/word/signed word/dword/signed dword) 16 * (byte/signed byte/word/signed word/dword/signed dword) 40 + (word/signed word/dword/signed dword~) debug_print_init::$40 ← (byte/signed byte/word/signed word/dword/signed dword) $10 * (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*~) debug_print_init::$41 ← (byte*) SCREEN#13 + (word/signed word/dword/signed dword~) debug_print_init::$40 (byte*) debug_print_init::at_line#0 ← (byte*~) debug_print_init::$41 (byte) debug_print_init::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte*) debug_print_init::COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (word/signed word/dword/signed dword~) debug_print_init::$42 ← (byte/signed byte/word/signed word/dword/signed dword) 16 * (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*) debug_print_init::COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (word/signed word/dword/signed dword~) debug_print_init::$42 ← (byte/signed byte/word/signed word/dword/signed dword) $10 * (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*~) debug_print_init::$43 ← (byte*) debug_print_init::COLS#0 + (word/signed word/dword/signed dword~) debug_print_init::$42 (byte*) debug_print_init::at_cols#0 ← (byte*~) debug_print_init::$43 (byte) debug_print_init::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -928,7 +928,7 @@ debug_print_init::@1: scope:[debug_print_init] from debug_print_init::@17 debug (byte) debug_print_init::i#2 ← phi( debug_print_init::@17/(byte) debug_print_init::i#0 debug_print_init::@3/(byte) debug_print_init::i#1 ) (byte) debug_print_init::c#2 ← phi( debug_print_init::@17/(byte) debug_print_init::c#0 debug_print_init::@3/(byte) debug_print_init::c#1 ) (byte*) debug_print_init::at_line#1 ← phi( debug_print_init::@17/(byte*) debug_print_init::at_line#0 debug_print_init::@3/(byte*) debug_print_init::at_line#4 ) - (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$44 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$44 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*~) debug_print_init::$45 ← (byte*) debug_print_init::at_line#1 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$44 (byte*~) debug_print_init::$46 ← (byte*~) debug_print_init::$45 + (byte) debug_print_init::c#2 (signed byte) print_sbyte_at::b#1 ← *((signed byte[8]) xs#0 + (byte) debug_print_init::i#2) @@ -942,7 +942,7 @@ debug_print_init::@18: scope:[debug_print_init] from debug_print_init::@1 (byte) debug_print_init::i#3 ← phi( debug_print_init::@1/(byte) debug_print_init::i#2 ) (byte) debug_print_init::c#3 ← phi( debug_print_init::@1/(byte) debug_print_init::c#2 ) (byte*) debug_print_init::at_line#2 ← phi( debug_print_init::@1/(byte*) debug_print_init::at_line#1 ) - (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$48 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$48 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*~) debug_print_init::$49 ← (byte*) debug_print_init::at_line#2 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$48 (byte*~) debug_print_init::$50 ← (byte*~) debug_print_init::$49 + (byte) debug_print_init::c#3 (signed byte) print_sbyte_at::b#2 ← *((signed byte[8]) ys#0 + (byte) debug_print_init::i#3) @@ -956,7 +956,7 @@ debug_print_init::@19: scope:[debug_print_init] from debug_print_init::@18 (byte) debug_print_init::i#4 ← phi( debug_print_init::@18/(byte) debug_print_init::i#3 ) (byte) debug_print_init::c#4 ← phi( debug_print_init::@18/(byte) debug_print_init::c#3 ) (byte*) debug_print_init::at_line#3 ← phi( debug_print_init::@18/(byte*) debug_print_init::at_line#2 ) - (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$52 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$52 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 2 (byte*~) debug_print_init::$53 ← (byte*) debug_print_init::at_line#3 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$52 (byte*~) debug_print_init::$54 ← (byte*~) debug_print_init::$53 + (byte) debug_print_init::c#4 (signed byte) print_sbyte_at::b#3 ← *((signed byte[8]) zs#0 + (byte) debug_print_init::i#4) @@ -982,47 +982,47 @@ debug_print_init::@2: scope:[debug_print_init] from debug_print_init::@2 debug_ (byte) debug_print_init::i#5 ← phi( debug_print_init::@2/(byte) debug_print_init::i#5 debug_print_init::@20/(byte) debug_print_init::i#7 ) (byte/signed word/word/dword/signed dword~) debug_print_init::$56 ← (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) debug_print_init::i#5 (byte) debug_print_init::col#0 ← (byte/signed word/word/dword/signed dword~) debug_print_init::$56 - (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$57 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$57 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*~) debug_print_init::$58 ← (byte*) debug_print_init::at_cols#1 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$57 (byte*~) debug_print_init::$59 ← (byte*~) debug_print_init::$58 + (byte) debug_print_init::c#5 (byte*~) debug_print_init::$60 ← (byte*~) debug_print_init::$59 + (byte) debug_print_init::j#2 *((byte*~) debug_print_init::$60) ← (byte) debug_print_init::col#0 - (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$61 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$61 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*~) debug_print_init::$62 ← (byte*) debug_print_init::at_cols#1 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$61 (byte*~) debug_print_init::$63 ← (byte*~) debug_print_init::$62 + (byte) debug_print_init::c#5 (byte*~) debug_print_init::$64 ← (byte*~) debug_print_init::$63 + (byte) debug_print_init::j#2 *((byte*~) debug_print_init::$64) ← (byte) debug_print_init::col#0 - (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$65 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$65 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 2 (byte*~) debug_print_init::$66 ← (byte*) debug_print_init::at_cols#1 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$65 (byte*~) debug_print_init::$67 ← (byte*~) debug_print_init::$66 + (byte) debug_print_init::c#5 (byte*~) debug_print_init::$68 ← (byte*~) debug_print_init::$67 + (byte) debug_print_init::j#2 *((byte*~) debug_print_init::$68) ← (byte) debug_print_init::col#0 - (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$69 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 3 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$69 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 3 (byte*~) debug_print_init::$70 ← (byte*) debug_print_init::at_cols#1 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print_init::$69 (byte*~) debug_print_init::$71 ← (byte*~) debug_print_init::$70 + (byte) debug_print_init::c#5 (byte*~) debug_print_init::$72 ← (byte*~) debug_print_init::$71 + (byte) debug_print_init::j#2 *((byte*~) debug_print_init::$72) ← (byte) debug_print_init::col#0 - (byte/word/signed word/dword/signed dword~) debug_print_init::$73 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte/word/signed word/dword/signed dword~) debug_print_init::$73 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 4 (byte*~) debug_print_init::$74 ← (byte*) debug_print_init::at_cols#1 + (byte/word/signed word/dword/signed dword~) debug_print_init::$73 (byte*~) debug_print_init::$75 ← (byte*~) debug_print_init::$74 + (byte) debug_print_init::c#5 (byte*~) debug_print_init::$76 ← (byte*~) debug_print_init::$75 + (byte) debug_print_init::j#2 *((byte*~) debug_print_init::$76) ← (byte) debug_print_init::col#0 - (byte/word/signed word/dword/signed dword~) debug_print_init::$77 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 5 + (byte/word/signed word/dword/signed dword~) debug_print_init::$77 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 5 (byte*~) debug_print_init::$78 ← (byte*) debug_print_init::at_cols#1 + (byte/word/signed word/dword/signed dword~) debug_print_init::$77 (byte*~) debug_print_init::$79 ← (byte*~) debug_print_init::$78 + (byte) debug_print_init::c#5 (byte*~) debug_print_init::$80 ← (byte*~) debug_print_init::$79 + (byte) debug_print_init::j#2 *((byte*~) debug_print_init::$80) ← (byte) debug_print_init::col#0 - (byte/word/signed word/dword/signed dword~) debug_print_init::$81 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 6 + (byte/word/signed word/dword/signed dword~) debug_print_init::$81 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 6 (byte*~) debug_print_init::$82 ← (byte*) debug_print_init::at_cols#1 + (byte/word/signed word/dword/signed dword~) debug_print_init::$81 (byte*~) debug_print_init::$83 ← (byte*~) debug_print_init::$82 + (byte) debug_print_init::c#5 (byte*~) debug_print_init::$84 ← (byte*~) debug_print_init::$83 + (byte) debug_print_init::j#2 *((byte*~) debug_print_init::$84) ← (byte) debug_print_init::col#0 - (word/signed word/dword/signed dword~) debug_print_init::$85 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 7 + (word/signed word/dword/signed dword~) debug_print_init::$85 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*~) debug_print_init::$86 ← (byte*) debug_print_init::at_cols#1 + (word/signed word/dword/signed dword~) debug_print_init::$85 (byte*~) debug_print_init::$87 ← (byte*~) debug_print_init::$86 + (byte) debug_print_init::c#5 (byte*~) debug_print_init::$88 ← (byte*~) debug_print_init::$87 + (byte) debug_print_init::j#2 *((byte*~) debug_print_init::$88) ← (byte) debug_print_init::col#0 - (word/signed word/dword/signed dword~) debug_print_init::$89 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 8 + (word/signed word/dword/signed dword~) debug_print_init::$89 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 8 (byte*~) debug_print_init::$90 ← (byte*) debug_print_init::at_cols#1 + (word/signed word/dword/signed dword~) debug_print_init::$89 (byte*~) debug_print_init::$91 ← (byte*~) debug_print_init::$90 + (byte) debug_print_init::c#5 (byte*~) debug_print_init::$92 ← (byte*~) debug_print_init::$91 + (byte) debug_print_init::j#2 @@ -1058,7 +1058,7 @@ debug_print: scope:[debug_print] from anim::@25 (signed byte) sx#11 ← phi( anim::@25/(signed byte) sx#15 ) (signed byte) debug_print::print_sbyte_pos1_sb#0 ← (signed byte) sx#11 (byte) debug_print::print_sbyte_pos1_row#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte) debug_print::print_sbyte_pos1_col#0 ← (byte/signed byte/word/signed word/dword/signed dword) 37 + (byte) debug_print::print_sbyte_pos1_col#0 ← (byte/signed byte/word/signed word/dword/signed dword) $25 to:debug_print::print_sbyte_pos1 debug_print::print_sbyte_pos1: scope:[debug_print] from debug_print (byte*) SCREEN#55 ← phi( debug_print/(byte*) SCREEN#56 ) @@ -1068,7 +1068,7 @@ debug_print::print_sbyte_pos1: scope:[debug_print] from debug_print (byte) debug_print::print_sbyte_pos1_col#1 ← phi( debug_print/(byte) debug_print::print_sbyte_pos1_col#0 ) (byte*) print_screen#4 ← phi( debug_print/(byte*) print_screen#17 ) (byte) debug_print::print_sbyte_pos1_row#1 ← phi( debug_print/(byte) debug_print::print_sbyte_pos1_row#0 ) - (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos1_$0#0 ← (byte) debug_print::print_sbyte_pos1_row#1 * (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos1_$0#0 ← (byte) debug_print::print_sbyte_pos1_row#1 * (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) debug_print::print_sbyte_pos1_$1#0 ← (byte*) print_screen#4 + (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos1_$0#0 (byte*) debug_print::print_sbyte_pos1_$2#0 ← (byte*) debug_print::print_sbyte_pos1_$1#0 + (byte) debug_print::print_sbyte_pos1_col#1 (signed byte) print_sbyte_at::b#4 ← (signed byte) debug_print::print_sbyte_pos1_sb#1 @@ -1088,7 +1088,7 @@ debug_print::@3: scope:[debug_print] from debug_print::@15 (signed byte) sy#11 ← phi( debug_print::@15/(signed byte) sy#17 ) (signed byte) debug_print::print_sbyte_pos2_sb#0 ← (signed byte) sy#11 (byte) debug_print::print_sbyte_pos2_row#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) debug_print::print_sbyte_pos2_col#0 ← (byte/signed byte/word/signed word/dword/signed dword) 37 + (byte) debug_print::print_sbyte_pos2_col#0 ← (byte/signed byte/word/signed word/dword/signed dword) $25 to:debug_print::print_sbyte_pos2 debug_print::print_sbyte_pos2: scope:[debug_print] from debug_print::@3 (byte*) SCREEN#52 ← phi( debug_print::@3/(byte*) SCREEN#53 ) @@ -1097,7 +1097,7 @@ debug_print::print_sbyte_pos2: scope:[debug_print] from debug_print::@3 (byte) debug_print::print_sbyte_pos2_col#1 ← phi( debug_print::@3/(byte) debug_print::print_sbyte_pos2_col#0 ) (byte*) print_screen#5 ← phi( debug_print::@3/(byte*) print_screen#18 ) (byte) debug_print::print_sbyte_pos2_row#1 ← phi( debug_print::@3/(byte) debug_print::print_sbyte_pos2_row#0 ) - (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos2_$0#0 ← (byte) debug_print::print_sbyte_pos2_row#1 * (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos2_$0#0 ← (byte) debug_print::print_sbyte_pos2_row#1 * (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) debug_print::print_sbyte_pos2_$1#0 ← (byte*) print_screen#5 + (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos2_$0#0 (byte*) debug_print::print_sbyte_pos2_$2#0 ← (byte*) debug_print::print_sbyte_pos2_$1#0 + (byte) debug_print::print_sbyte_pos2_col#1 (signed byte) print_sbyte_at::b#5 ← (signed byte) debug_print::print_sbyte_pos2_sb#1 @@ -1115,7 +1115,7 @@ debug_print::@4: scope:[debug_print] from debug_print::@16 (signed byte) sz#2 ← phi( debug_print::@16/(signed byte) sz#4 ) (signed byte) debug_print::print_sbyte_pos3_sb#0 ← (signed byte) sz#2 (byte) debug_print::print_sbyte_pos3_row#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte) debug_print::print_sbyte_pos3_col#0 ← (byte/signed byte/word/signed word/dword/signed dword) 37 + (byte) debug_print::print_sbyte_pos3_col#0 ← (byte/signed byte/word/signed word/dword/signed dword) $25 to:debug_print::print_sbyte_pos3 debug_print::print_sbyte_pos3: scope:[debug_print] from debug_print::@4 (byte*) SCREEN#49 ← phi( debug_print::@4/(byte*) SCREEN#50 ) @@ -1123,7 +1123,7 @@ debug_print::print_sbyte_pos3: scope:[debug_print] from debug_print::@4 (byte) debug_print::print_sbyte_pos3_col#1 ← phi( debug_print::@4/(byte) debug_print::print_sbyte_pos3_col#0 ) (byte*) print_screen#6 ← phi( debug_print::@4/(byte*) print_screen#19 ) (byte) debug_print::print_sbyte_pos3_row#1 ← phi( debug_print::@4/(byte) debug_print::print_sbyte_pos3_row#0 ) - (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos3_$0#0 ← (byte) debug_print::print_sbyte_pos3_row#1 * (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos3_$0#0 ← (byte) debug_print::print_sbyte_pos3_row#1 * (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) debug_print::print_sbyte_pos3_$1#0 ← (byte*) print_screen#6 + (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos3_$0#0 (byte*) debug_print::print_sbyte_pos3_$2#0 ← (byte*) debug_print::print_sbyte_pos3_$1#0 + (byte) debug_print::print_sbyte_pos3_col#1 (signed byte) print_sbyte_at::b#6 ← (signed byte) debug_print::print_sbyte_pos3_sb#1 @@ -1139,7 +1139,7 @@ debug_print::@5: scope:[debug_print] from debug_print::@17 (byte*) print_screen#20 ← phi( debug_print::@17/(byte*) print_screen#33 ) (signed byte) debug_print::print_sbyte_pos4_sb#0 ← *((signed byte[9]) rotation_matrix#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) (byte) debug_print::print_sbyte_pos4_row#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte) debug_print::print_sbyte_pos4_col#0 ← (byte/signed byte/word/signed word/dword/signed dword) 29 + (byte) debug_print::print_sbyte_pos4_col#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1d to:debug_print::print_sbyte_pos4 debug_print::print_sbyte_pos4: scope:[debug_print] from debug_print::@5 (byte*) SCREEN#46 ← phi( debug_print::@5/(byte*) SCREEN#47 ) @@ -1147,7 +1147,7 @@ debug_print::print_sbyte_pos4: scope:[debug_print] from debug_print::@5 (byte) debug_print::print_sbyte_pos4_col#1 ← phi( debug_print::@5/(byte) debug_print::print_sbyte_pos4_col#0 ) (byte*) print_screen#7 ← phi( debug_print::@5/(byte*) print_screen#20 ) (byte) debug_print::print_sbyte_pos4_row#1 ← phi( debug_print::@5/(byte) debug_print::print_sbyte_pos4_row#0 ) - (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos4_$0#0 ← (byte) debug_print::print_sbyte_pos4_row#1 * (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos4_$0#0 ← (byte) debug_print::print_sbyte_pos4_row#1 * (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) debug_print::print_sbyte_pos4_$1#0 ← (byte*) print_screen#7 + (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos4_$0#0 (byte*) debug_print::print_sbyte_pos4_$2#0 ← (byte*) debug_print::print_sbyte_pos4_$1#0 + (byte) debug_print::print_sbyte_pos4_col#1 (signed byte) print_sbyte_at::b#7 ← (signed byte) debug_print::print_sbyte_pos4_sb#1 @@ -1163,7 +1163,7 @@ debug_print::@6: scope:[debug_print] from debug_print::@18 (byte*) print_screen#21 ← phi( debug_print::@18/(byte*) print_screen#34 ) (signed byte) debug_print::print_sbyte_pos5_sb#0 ← *((signed byte[9]) rotation_matrix#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) (byte) debug_print::print_sbyte_pos5_row#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte) debug_print::print_sbyte_pos5_col#0 ← (byte/signed byte/word/signed word/dword/signed dword) 33 + (byte) debug_print::print_sbyte_pos5_col#0 ← (byte/signed byte/word/signed word/dword/signed dword) $21 to:debug_print::print_sbyte_pos5 debug_print::print_sbyte_pos5: scope:[debug_print] from debug_print::@6 (byte*) SCREEN#43 ← phi( debug_print::@6/(byte*) SCREEN#44 ) @@ -1171,7 +1171,7 @@ debug_print::print_sbyte_pos5: scope:[debug_print] from debug_print::@6 (byte) debug_print::print_sbyte_pos5_col#1 ← phi( debug_print::@6/(byte) debug_print::print_sbyte_pos5_col#0 ) (byte*) print_screen#8 ← phi( debug_print::@6/(byte*) print_screen#21 ) (byte) debug_print::print_sbyte_pos5_row#1 ← phi( debug_print::@6/(byte) debug_print::print_sbyte_pos5_row#0 ) - (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos5_$0#0 ← (byte) debug_print::print_sbyte_pos5_row#1 * (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos5_$0#0 ← (byte) debug_print::print_sbyte_pos5_row#1 * (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) debug_print::print_sbyte_pos5_$1#0 ← (byte*) print_screen#8 + (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos5_$0#0 (byte*) debug_print::print_sbyte_pos5_$2#0 ← (byte*) debug_print::print_sbyte_pos5_$1#0 + (byte) debug_print::print_sbyte_pos5_col#1 (signed byte) print_sbyte_at::b#8 ← (signed byte) debug_print::print_sbyte_pos5_sb#1 @@ -1187,7 +1187,7 @@ debug_print::@7: scope:[debug_print] from debug_print::@19 (byte*) print_screen#22 ← phi( debug_print::@19/(byte*) print_screen#35 ) (signed byte) debug_print::print_sbyte_pos6_sb#0 ← *((signed byte[9]) rotation_matrix#0 + (byte/signed byte/word/signed word/dword/signed dword) 2) (byte) debug_print::print_sbyte_pos6_row#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte) debug_print::print_sbyte_pos6_col#0 ← (byte/signed byte/word/signed word/dword/signed dword) 37 + (byte) debug_print::print_sbyte_pos6_col#0 ← (byte/signed byte/word/signed word/dword/signed dword) $25 to:debug_print::print_sbyte_pos6 debug_print::print_sbyte_pos6: scope:[debug_print] from debug_print::@7 (byte*) SCREEN#40 ← phi( debug_print::@7/(byte*) SCREEN#41 ) @@ -1195,7 +1195,7 @@ debug_print::print_sbyte_pos6: scope:[debug_print] from debug_print::@7 (byte) debug_print::print_sbyte_pos6_col#1 ← phi( debug_print::@7/(byte) debug_print::print_sbyte_pos6_col#0 ) (byte*) print_screen#9 ← phi( debug_print::@7/(byte*) print_screen#22 ) (byte) debug_print::print_sbyte_pos6_row#1 ← phi( debug_print::@7/(byte) debug_print::print_sbyte_pos6_row#0 ) - (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos6_$0#0 ← (byte) debug_print::print_sbyte_pos6_row#1 * (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos6_$0#0 ← (byte) debug_print::print_sbyte_pos6_row#1 * (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) debug_print::print_sbyte_pos6_$1#0 ← (byte*) print_screen#9 + (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos6_$0#0 (byte*) debug_print::print_sbyte_pos6_$2#0 ← (byte*) debug_print::print_sbyte_pos6_$1#0 + (byte) debug_print::print_sbyte_pos6_col#1 (signed byte) print_sbyte_at::b#9 ← (signed byte) debug_print::print_sbyte_pos6_sb#1 @@ -1211,7 +1211,7 @@ debug_print::@8: scope:[debug_print] from debug_print::@20 (byte*) print_screen#23 ← phi( debug_print::@20/(byte*) print_screen#36 ) (signed byte) debug_print::print_sbyte_pos7_sb#0 ← *((signed byte[9]) rotation_matrix#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) (byte) debug_print::print_sbyte_pos7_row#0 ← (byte/signed byte/word/signed word/dword/signed dword) 5 - (byte) debug_print::print_sbyte_pos7_col#0 ← (byte/signed byte/word/signed word/dword/signed dword) 29 + (byte) debug_print::print_sbyte_pos7_col#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1d to:debug_print::print_sbyte_pos7 debug_print::print_sbyte_pos7: scope:[debug_print] from debug_print::@8 (byte*) SCREEN#37 ← phi( debug_print::@8/(byte*) SCREEN#38 ) @@ -1219,7 +1219,7 @@ debug_print::print_sbyte_pos7: scope:[debug_print] from debug_print::@8 (byte) debug_print::print_sbyte_pos7_col#1 ← phi( debug_print::@8/(byte) debug_print::print_sbyte_pos7_col#0 ) (byte*) print_screen#10 ← phi( debug_print::@8/(byte*) print_screen#23 ) (byte) debug_print::print_sbyte_pos7_row#1 ← phi( debug_print::@8/(byte) debug_print::print_sbyte_pos7_row#0 ) - (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos7_$0#0 ← (byte) debug_print::print_sbyte_pos7_row#1 * (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos7_$0#0 ← (byte) debug_print::print_sbyte_pos7_row#1 * (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) debug_print::print_sbyte_pos7_$1#0 ← (byte*) print_screen#10 + (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos7_$0#0 (byte*) debug_print::print_sbyte_pos7_$2#0 ← (byte*) debug_print::print_sbyte_pos7_$1#0 + (byte) debug_print::print_sbyte_pos7_col#1 (signed byte) print_sbyte_at::b#10 ← (signed byte) debug_print::print_sbyte_pos7_sb#1 @@ -1235,7 +1235,7 @@ debug_print::@9: scope:[debug_print] from debug_print::@21 (byte*) print_screen#24 ← phi( debug_print::@21/(byte*) print_screen#37 ) (signed byte) debug_print::print_sbyte_pos8_sb#0 ← *((signed byte[9]) rotation_matrix#0 + (byte/signed byte/word/signed word/dword/signed dword) 4) (byte) debug_print::print_sbyte_pos8_row#0 ← (byte/signed byte/word/signed word/dword/signed dword) 5 - (byte) debug_print::print_sbyte_pos8_col#0 ← (byte/signed byte/word/signed word/dword/signed dword) 33 + (byte) debug_print::print_sbyte_pos8_col#0 ← (byte/signed byte/word/signed word/dword/signed dword) $21 to:debug_print::print_sbyte_pos8 debug_print::print_sbyte_pos8: scope:[debug_print] from debug_print::@9 (byte*) SCREEN#34 ← phi( debug_print::@9/(byte*) SCREEN#35 ) @@ -1243,7 +1243,7 @@ debug_print::print_sbyte_pos8: scope:[debug_print] from debug_print::@9 (byte) debug_print::print_sbyte_pos8_col#1 ← phi( debug_print::@9/(byte) debug_print::print_sbyte_pos8_col#0 ) (byte*) print_screen#11 ← phi( debug_print::@9/(byte*) print_screen#24 ) (byte) debug_print::print_sbyte_pos8_row#1 ← phi( debug_print::@9/(byte) debug_print::print_sbyte_pos8_row#0 ) - (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos8_$0#0 ← (byte) debug_print::print_sbyte_pos8_row#1 * (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos8_$0#0 ← (byte) debug_print::print_sbyte_pos8_row#1 * (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) debug_print::print_sbyte_pos8_$1#0 ← (byte*) print_screen#11 + (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos8_$0#0 (byte*) debug_print::print_sbyte_pos8_$2#0 ← (byte*) debug_print::print_sbyte_pos8_$1#0 + (byte) debug_print::print_sbyte_pos8_col#1 (signed byte) print_sbyte_at::b#11 ← (signed byte) debug_print::print_sbyte_pos8_sb#1 @@ -1259,7 +1259,7 @@ debug_print::@10: scope:[debug_print] from debug_print::@22 (byte*) print_screen#25 ← phi( debug_print::@22/(byte*) print_screen#38 ) (signed byte) debug_print::print_sbyte_pos9_sb#0 ← *((signed byte[9]) rotation_matrix#0 + (byte/signed byte/word/signed word/dword/signed dword) 5) (byte) debug_print::print_sbyte_pos9_row#0 ← (byte/signed byte/word/signed word/dword/signed dword) 5 - (byte) debug_print::print_sbyte_pos9_col#0 ← (byte/signed byte/word/signed word/dword/signed dword) 37 + (byte) debug_print::print_sbyte_pos9_col#0 ← (byte/signed byte/word/signed word/dword/signed dword) $25 to:debug_print::print_sbyte_pos9 debug_print::print_sbyte_pos9: scope:[debug_print] from debug_print::@10 (byte*) SCREEN#31 ← phi( debug_print::@10/(byte*) SCREEN#32 ) @@ -1267,7 +1267,7 @@ debug_print::print_sbyte_pos9: scope:[debug_print] from debug_print::@10 (byte) debug_print::print_sbyte_pos9_col#1 ← phi( debug_print::@10/(byte) debug_print::print_sbyte_pos9_col#0 ) (byte*) print_screen#12 ← phi( debug_print::@10/(byte*) print_screen#25 ) (byte) debug_print::print_sbyte_pos9_row#1 ← phi( debug_print::@10/(byte) debug_print::print_sbyte_pos9_row#0 ) - (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos9_$0#0 ← (byte) debug_print::print_sbyte_pos9_row#1 * (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos9_$0#0 ← (byte) debug_print::print_sbyte_pos9_row#1 * (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) debug_print::print_sbyte_pos9_$1#0 ← (byte*) print_screen#12 + (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos9_$0#0 (byte*) debug_print::print_sbyte_pos9_$2#0 ← (byte*) debug_print::print_sbyte_pos9_$1#0 + (byte) debug_print::print_sbyte_pos9_col#1 (signed byte) print_sbyte_at::b#12 ← (signed byte) debug_print::print_sbyte_pos9_sb#1 @@ -1283,7 +1283,7 @@ debug_print::@11: scope:[debug_print] from debug_print::@23 (byte*) print_screen#26 ← phi( debug_print::@23/(byte*) print_screen#39 ) (signed byte) debug_print::print_sbyte_pos10_sb#0 ← *((signed byte[9]) rotation_matrix#0 + (byte/signed byte/word/signed word/dword/signed dword) 6) (byte) debug_print::print_sbyte_pos10_row#0 ← (byte/signed byte/word/signed word/dword/signed dword) 6 - (byte) debug_print::print_sbyte_pos10_col#0 ← (byte/signed byte/word/signed word/dword/signed dword) 29 + (byte) debug_print::print_sbyte_pos10_col#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1d to:debug_print::print_sbyte_pos10 debug_print::print_sbyte_pos10: scope:[debug_print] from debug_print::@11 (byte*) SCREEN#28 ← phi( debug_print::@11/(byte*) SCREEN#29 ) @@ -1291,7 +1291,7 @@ debug_print::print_sbyte_pos10: scope:[debug_print] from debug_print::@11 (byte) debug_print::print_sbyte_pos10_col#1 ← phi( debug_print::@11/(byte) debug_print::print_sbyte_pos10_col#0 ) (byte*) print_screen#13 ← phi( debug_print::@11/(byte*) print_screen#26 ) (byte) debug_print::print_sbyte_pos10_row#1 ← phi( debug_print::@11/(byte) debug_print::print_sbyte_pos10_row#0 ) - (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos10_$0#0 ← (byte) debug_print::print_sbyte_pos10_row#1 * (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos10_$0#0 ← (byte) debug_print::print_sbyte_pos10_row#1 * (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) debug_print::print_sbyte_pos10_$1#0 ← (byte*) print_screen#13 + (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos10_$0#0 (byte*) debug_print::print_sbyte_pos10_$2#0 ← (byte*) debug_print::print_sbyte_pos10_$1#0 + (byte) debug_print::print_sbyte_pos10_col#1 (signed byte) print_sbyte_at::b#13 ← (signed byte) debug_print::print_sbyte_pos10_sb#1 @@ -1307,7 +1307,7 @@ debug_print::@12: scope:[debug_print] from debug_print::@24 (byte*) print_screen#27 ← phi( debug_print::@24/(byte*) print_screen#40 ) (signed byte) debug_print::print_sbyte_pos11_sb#0 ← *((signed byte[9]) rotation_matrix#0 + (byte/signed byte/word/signed word/dword/signed dword) 7) (byte) debug_print::print_sbyte_pos11_row#0 ← (byte/signed byte/word/signed word/dword/signed dword) 6 - (byte) debug_print::print_sbyte_pos11_col#0 ← (byte/signed byte/word/signed word/dword/signed dword) 33 + (byte) debug_print::print_sbyte_pos11_col#0 ← (byte/signed byte/word/signed word/dword/signed dword) $21 to:debug_print::print_sbyte_pos11 debug_print::print_sbyte_pos11: scope:[debug_print] from debug_print::@12 (byte*) SCREEN#23 ← phi( debug_print::@12/(byte*) SCREEN#25 ) @@ -1315,7 +1315,7 @@ debug_print::print_sbyte_pos11: scope:[debug_print] from debug_print::@12 (byte) debug_print::print_sbyte_pos11_col#1 ← phi( debug_print::@12/(byte) debug_print::print_sbyte_pos11_col#0 ) (byte*) print_screen#14 ← phi( debug_print::@12/(byte*) print_screen#27 ) (byte) debug_print::print_sbyte_pos11_row#1 ← phi( debug_print::@12/(byte) debug_print::print_sbyte_pos11_row#0 ) - (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos11_$0#0 ← (byte) debug_print::print_sbyte_pos11_row#1 * (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos11_$0#0 ← (byte) debug_print::print_sbyte_pos11_row#1 * (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) debug_print::print_sbyte_pos11_$1#0 ← (byte*) print_screen#14 + (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos11_$0#0 (byte*) debug_print::print_sbyte_pos11_$2#0 ← (byte*) debug_print::print_sbyte_pos11_$1#0 + (byte) debug_print::print_sbyte_pos11_col#1 (signed byte) print_sbyte_at::b#14 ← (signed byte) debug_print::print_sbyte_pos11_sb#1 @@ -1331,7 +1331,7 @@ debug_print::@13: scope:[debug_print] from debug_print::@25 (byte*) print_screen#28 ← phi( debug_print::@25/(byte*) print_screen#41 ) (signed byte) debug_print::print_sbyte_pos12_sb#0 ← *((signed byte[9]) rotation_matrix#0 + (byte/signed byte/word/signed word/dword/signed dword) 8) (byte) debug_print::print_sbyte_pos12_row#0 ← (byte/signed byte/word/signed word/dword/signed dword) 6 - (byte) debug_print::print_sbyte_pos12_col#0 ← (byte/signed byte/word/signed word/dword/signed dword) 37 + (byte) debug_print::print_sbyte_pos12_col#0 ← (byte/signed byte/word/signed word/dword/signed dword) $25 to:debug_print::print_sbyte_pos12 debug_print::print_sbyte_pos12: scope:[debug_print] from debug_print::@13 (byte*) SCREEN#18 ← phi( debug_print::@13/(byte*) SCREEN#20 ) @@ -1339,7 +1339,7 @@ debug_print::print_sbyte_pos12: scope:[debug_print] from debug_print::@13 (byte) debug_print::print_sbyte_pos12_col#1 ← phi( debug_print::@13/(byte) debug_print::print_sbyte_pos12_col#0 ) (byte*) print_screen#15 ← phi( debug_print::@13/(byte*) print_screen#28 ) (byte) debug_print::print_sbyte_pos12_row#1 ← phi( debug_print::@13/(byte) debug_print::print_sbyte_pos12_row#0 ) - (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos12_$0#0 ← (byte) debug_print::print_sbyte_pos12_row#1 * (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos12_$0#0 ← (byte) debug_print::print_sbyte_pos12_row#1 * (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) debug_print::print_sbyte_pos12_$1#0 ← (byte*) print_screen#15 + (byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos12_$0#0 (byte*) debug_print::print_sbyte_pos12_$2#0 ← (byte*) debug_print::print_sbyte_pos12_$1#0 + (byte) debug_print::print_sbyte_pos12_col#1 (signed byte) print_sbyte_at::b#15 ← (signed byte) debug_print::print_sbyte_pos12_sb#1 @@ -1351,7 +1351,7 @@ debug_print::@26: scope:[debug_print] from debug_print::print_sbyte_pos12 to:debug_print::@14 debug_print::@14: scope:[debug_print] from debug_print::@26 (byte*) SCREEN#14 ← phi( debug_print::@26/(byte*) SCREEN#16 ) - (word/signed word/dword/signed dword~) debug_print::$12 ← (byte/signed byte/word/signed word/dword/signed dword) 19 * (byte/signed byte/word/signed word/dword/signed dword) 40 + (word/signed word/dword/signed dword~) debug_print::$12 ← (byte/signed byte/word/signed word/dword/signed dword) $13 * (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*~) debug_print::$13 ← (byte*) SCREEN#14 + (word/signed word/dword/signed dword~) debug_print::$12 (byte*) debug_print::at_line#0 ← (byte*~) debug_print::$13 (byte) debug_print::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 @@ -1361,7 +1361,7 @@ debug_print::@1: scope:[debug_print] from debug_print::@14 debug_print::@32 (byte) debug_print::i#2 ← phi( debug_print::@14/(byte) debug_print::i#0 debug_print::@32/(byte) debug_print::i#1 ) (byte) debug_print::c#2 ← phi( debug_print::@14/(byte) debug_print::c#0 debug_print::@32/(byte) debug_print::c#1 ) (byte*) debug_print::at_line#1 ← phi( debug_print::@14/(byte*) debug_print::at_line#0 debug_print::@32/(byte*) debug_print::at_line#7 ) - (byte/signed byte/word/signed word/dword/signed dword~) debug_print::$14 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print::$14 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*~) debug_print::$15 ← (byte*) debug_print::at_line#1 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print::$14 (byte*~) debug_print::$16 ← (byte*~) debug_print::$15 + (byte) debug_print::c#2 (signed byte) print_sbyte_at::b#16 ← *((signed byte[8]) xrs#0 + (byte) debug_print::i#2) @@ -1372,7 +1372,7 @@ debug_print::@27: scope:[debug_print] from debug_print::@1 (byte) debug_print::i#3 ← phi( debug_print::@1/(byte) debug_print::i#2 ) (byte) debug_print::c#3 ← phi( debug_print::@1/(byte) debug_print::c#2 ) (byte*) debug_print::at_line#2 ← phi( debug_print::@1/(byte*) debug_print::at_line#1 ) - (byte/signed byte/word/signed word/dword/signed dword~) debug_print::$18 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print::$18 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*~) debug_print::$19 ← (byte*) debug_print::at_line#2 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print::$18 (byte*~) debug_print::$20 ← (byte*~) debug_print::$19 + (byte) debug_print::c#3 (signed byte) print_sbyte_at::b#17 ← *((signed byte[8]) yrs#0 + (byte) debug_print::i#3) @@ -1383,7 +1383,7 @@ debug_print::@28: scope:[debug_print] from debug_print::@27 (byte) debug_print::i#4 ← phi( debug_print::@27/(byte) debug_print::i#3 ) (byte) debug_print::c#4 ← phi( debug_print::@27/(byte) debug_print::c#3 ) (byte*) debug_print::at_line#3 ← phi( debug_print::@27/(byte*) debug_print::at_line#2 ) - (byte/signed byte/word/signed word/dword/signed dword~) debug_print::$22 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print::$22 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 2 (byte*~) debug_print::$23 ← (byte*) debug_print::at_line#3 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print::$22 (byte*~) debug_print::$24 ← (byte*~) debug_print::$23 + (byte) debug_print::c#4 (signed byte) print_sbyte_at::b#18 ← *((signed byte[8]) zrs#0 + (byte) debug_print::i#4) @@ -1394,7 +1394,7 @@ debug_print::@29: scope:[debug_print] from debug_print::@28 (byte) debug_print::i#5 ← phi( debug_print::@28/(byte) debug_print::i#4 ) (byte) debug_print::c#5 ← phi( debug_print::@28/(byte) debug_print::c#4 ) (byte*) debug_print::at_line#4 ← phi( debug_print::@28/(byte*) debug_print::at_line#3 ) - (byte/signed byte/word/signed word/dword/signed dword~) debug_print::$26 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 3 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print::$26 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 3 (byte*~) debug_print::$27 ← (byte*) debug_print::at_line#4 + (byte/signed byte/word/signed word/dword/signed dword~) debug_print::$26 (byte*~) debug_print::$28 ← (byte*~) debug_print::$27 + (byte) debug_print::c#5 (signed byte) print_sbyte_at::b#19 ← *((signed byte[8]) pps#0 + (byte) debug_print::i#5) @@ -1405,7 +1405,7 @@ debug_print::@30: scope:[debug_print] from debug_print::@29 (byte) debug_print::i#6 ← phi( debug_print::@29/(byte) debug_print::i#5 ) (byte) debug_print::c#6 ← phi( debug_print::@29/(byte) debug_print::c#5 ) (byte*) debug_print::at_line#5 ← phi( debug_print::@29/(byte*) debug_print::at_line#4 ) - (byte/word/signed word/dword/signed dword~) debug_print::$30 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte/word/signed word/dword/signed dword~) debug_print::$30 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 4 (byte*~) debug_print::$31 ← (byte*) debug_print::at_line#5 + (byte/word/signed word/dword/signed dword~) debug_print::$30 (byte*~) debug_print::$32 ← (byte*~) debug_print::$31 + (byte) debug_print::c#6 (signed byte) print_sbyte_at::b#20 ← *((signed byte[8]) xps#0 + (byte) debug_print::i#6) @@ -1416,7 +1416,7 @@ debug_print::@31: scope:[debug_print] from debug_print::@30 (byte) debug_print::i#7 ← phi( debug_print::@30/(byte) debug_print::i#6 ) (byte) debug_print::c#7 ← phi( debug_print::@30/(byte) debug_print::c#6 ) (byte*) debug_print::at_line#6 ← phi( debug_print::@30/(byte*) debug_print::at_line#5 ) - (byte/word/signed word/dword/signed dword~) debug_print::$34 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 5 + (byte/word/signed word/dword/signed dword~) debug_print::$34 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 5 (byte*~) debug_print::$35 ← (byte*) debug_print::at_line#6 + (byte/word/signed word/dword/signed dword~) debug_print::$34 (byte*~) debug_print::$36 ← (byte*~) debug_print::$35 + (byte) debug_print::c#7 (signed byte) print_sbyte_at::b#21 ← *((signed byte[8]) yps#0 + (byte) debug_print::i#7) @@ -1437,9 +1437,9 @@ debug_print::@return: scope:[debug_print] from debug_print::@32 to:@return sprites_init: scope:[sprites_init] from main (byte*) SPRITE#2 ← phi( main/(byte*) SPRITE#3 ) - (byte*) sprites_init::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - *((byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 - (byte*~) sprites_init::$0 ← (byte*) sprites_init::SCREEN#0 + (word/signed word/dword/signed dword) 1016 + (byte*) sprites_init::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + *((byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff + (byte*~) sprites_init::$0 ← (byte*) sprites_init::SCREEN#0 + (word/signed word/dword/signed dword) $3f8 (byte*) sprites_init::sprites_ptr#0 ← (byte*~) sprites_init::$0 (byte) sprites_init::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:sprites_init::@1 @@ -1447,7 +1447,7 @@ sprites_init::@1: scope:[sprites_init] from sprites_init sprites_init::@1 (byte) sprites_init::i#2 ← phi( sprites_init/(byte) sprites_init::i#0 sprites_init::@1/(byte) sprites_init::i#1 ) (byte*) sprites_init::sprites_ptr#1 ← phi( sprites_init/(byte*) sprites_init::sprites_ptr#0 sprites_init::@1/(byte*) sprites_init::sprites_ptr#1 ) (byte*) SPRITE#1 ← phi( sprites_init/(byte*) SPRITE#2 sprites_init::@1/(byte*) SPRITE#1 ) - (byte*~) sprites_init::$1 ← (byte*) SPRITE#1 / (byte/signed byte/word/signed word/dword/signed dword) 64 + (byte*~) sprites_init::$1 ← (byte*) SPRITE#1 / (byte/signed byte/word/signed word/dword/signed dword) $40 (byte~) sprites_init::$2 ← ((byte)) (byte*~) sprites_init::$1 *((byte*) sprites_init::sprites_ptr#1 + (byte) sprites_init::i#2) ← (byte~) sprites_init::$2 *((byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (byte) GREEN#0 @@ -1579,8 +1579,8 @@ rotate_matrix::@return: scope:[rotate_matrix] from rotate_matrix (signed byte) sx#17 ← phi( @28/(signed byte) sx#23 ) (byte*) print_char_cursor#18 ← phi( @28/(byte*) print_char_cursor#21 ) (byte*) print_line_cursor#18 ← phi( @28/(byte*) print_line_cursor#21 ) - (byte*) mulf_sqr1#0 ← ((byte*)) (word/signed word/dword/signed dword) 9216 - (byte*) mulf_sqr2#0 ← ((byte*)) (word/signed word/dword/signed dword) 9728 + (byte*) mulf_sqr1#0 ← ((byte*)) (word/signed word/dword/signed dword) $2400 + (byte*) mulf_sqr2#0 ← ((byte*)) (word/signed word/dword/signed dword) $2600 kickasm(location (byte*) mulf_sqr1#0) {{ .for(var i=0;i<$200;i++) { .if(i<=159) { .byte round((i*i)/256) } .if(i>159 && i<=351 ) { .byte round(((i-256)*(i-256))/256) } @@ -1593,13 +1593,13 @@ rotate_matrix::@return: scope:[rotate_matrix] from rotate_matrix .if(i>351) { .byte round(((i-511)*(i-511))/256) } } }} - (byte*) SPRITE#0 ← ((byte*)) (word/signed word/dword/signed dword) 12288 + (byte*) SPRITE#0 ← ((byte*)) (word/signed word/dword/signed dword) $3000 kickasm(location (byte*) SPRITE#0) {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) .for (var x=0;x<3; x++) .byte pic.getSinglecolorByte(x,y) }} - (signed byte*) PERSP_Z#0 ← ((signed byte*)) (word/signed word/dword/signed dword) 10240 + (signed byte*) PERSP_Z#0 ← ((signed byte*)) (word/signed word/dword/signed dword) $2800 kickasm(location (signed byte*) PERSP_Z#0) {{ { .var d = 256.0 .var z0 = 6.0 @@ -1613,11 +1613,11 @@ rotate_matrix::@return: scope:[rotate_matrix] from rotate_matrix } } }} - (signed byte*) SINH#0 ← ((signed byte*)) (word/signed word/dword/signed dword) 8192 - (signed byte*~) $6 ← (signed byte*) SINH#0 + (byte/signed byte/word/signed word/dword/signed dword) 64 + (signed byte*) SINH#0 ← ((signed byte*)) (word/signed word/dword/signed dword) $2000 + (signed byte*~) $6 ← (signed byte*) SINH#0 + (byte/signed byte/word/signed word/dword/signed dword) $40 (signed byte*) COSH#0 ← (signed byte*~) $6 - (signed byte*) SINQ#0 ← ((signed byte*)) (word/signed word/dword/signed dword) 8704 - (signed byte*~) $7 ← (signed byte*) SINQ#0 + (byte/signed byte/word/signed word/dword/signed dword) 64 + (signed byte*) SINQ#0 ← ((signed byte*)) (word/signed word/dword/signed dword) $2200 + (signed byte*~) $7 ← (signed byte*) SINQ#0 + (byte/signed byte/word/signed word/dword/signed dword) $40 (signed byte*) COSQ#0 ← (signed byte*~) $7 kickasm(location (signed byte*) SINH#0) {{ { .var min = -$2000 @@ -1639,17 +1639,17 @@ rotate_matrix::@return: scope:[rotate_matrix] from rotate_matrix } } }} - (byte*) SINH_LO#0 ← ((byte*)) (word/signed word/dword/signed dword) 16384 - (byte*~) $8 ← (byte*) SINH_LO#0 + (byte/signed byte/word/signed word/dword/signed dword) 64 + (byte*) SINH_LO#0 ← ((byte*)) (word/signed word/dword/signed dword) $4000 + (byte*~) $8 ← (byte*) SINH_LO#0 + (byte/signed byte/word/signed word/dword/signed dword) $40 (byte*) COSH_LO#0 ← (byte*~) $8 - (byte*) SINH_HI#0 ← ((byte*)) (word/signed word/dword/signed dword) 16896 - (byte*~) $9 ← (byte*) SINH_HI#0 + (byte/signed byte/word/signed word/dword/signed dword) 64 + (byte*) SINH_HI#0 ← ((byte*)) (word/signed word/dword/signed dword) $4200 + (byte*~) $9 ← (byte*) SINH_HI#0 + (byte/signed byte/word/signed word/dword/signed dword) $40 (byte*) COSH_HI#0 ← (byte*~) $9 - (byte*) SINQ_LO#0 ← ((byte*)) (word/signed word/dword/signed dword) 17408 - (byte*~) $10 ← (byte*) SINQ_LO#0 + (byte/signed byte/word/signed word/dword/signed dword) 64 + (byte*) SINQ_LO#0 ← ((byte*)) (word/signed word/dword/signed dword) $4400 + (byte*~) $10 ← (byte*) SINQ_LO#0 + (byte/signed byte/word/signed word/dword/signed dword) $40 (byte*) COSQ_LO#0 ← (byte*~) $10 - (byte*) SINQ_HI#0 ← ((byte*)) (word/signed word/dword/signed dword) 17920 - (byte*~) $11 ← (byte*) SINQ_HI#0 + (byte/signed byte/word/signed word/dword/signed dword) 64 + (byte*) SINQ_HI#0 ← ((byte*)) (word/signed word/dword/signed dword) $4600 + (byte*~) $11 ← (byte*) SINQ_HI#0 + (byte/signed byte/word/signed word/dword/signed dword) $40 (byte*) COSQ_HI#0 ← (byte*~) $11 kickasm(location (byte*) SINH_LO#0) {{ { .var min = -$2000 @@ -3689,9 +3689,9 @@ Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) print_str_at::$0 [85] if(*((byte*) print_str_at::str#13)!=(byte) '@') goto print_str_at::@2 Simple Condition (bool~) print_sbyte_at::$0 [93] if((signed byte) print_sbyte_at::b#22<(byte/signed byte/word/signed word/dword/signed dword) 0) goto print_sbyte_at::@1 Simple Condition (bool~) print_cls::$1 [137] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 -Simple Condition (bool~) anim::$0 [202] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@5 -Simple Condition (bool~) anim::$1 [206] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto anim::@8 -Simple Condition (bool~) anim::$2 [210] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 253) goto anim::@11 +Simple Condition (bool~) anim::$0 [202] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto anim::@5 +Simple Condition (bool~) anim::$1 [206] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fe) goto anim::@8 +Simple Condition (bool~) anim::$2 [210] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fd) goto anim::@11 Simple Condition (bool~) anim::$11 [245] if((byte) anim::i#1!=rangelast(0,7)) goto anim::@13 Simple Condition (bool~) debug_print_init::$93 [419] if((byte) debug_print_init::j#1!=rangelast(0,3)) goto debug_print_init::@2 Simple Condition (bool~) debug_print_init::$94 [424] if((byte) debug_print_init::i#1!=rangelast(0,7)) goto debug_print_init::@1 @@ -3701,66 +3701,66 @@ Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -3771,32 +3771,32 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 -Constant (const byte*) print_line_cursor#0 = ((byte*))1024 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f +Constant (const byte*) print_line_cursor#0 = ((byte*))$400 Constant (const byte) print_char_at::ch#0 = '-' Constant (const byte) print_char_at::ch#1 = ' ' Constant (const byte[]) print_hextab#0 = $12 -Constant (const signed byte*) xr#0 = ((signed byte*))240 -Constant (const signed byte*) yr#0 = ((signed byte*))241 -Constant (const signed byte*) zr#0 = ((signed byte*))242 -Constant (const signed byte*) pp#0 = ((signed byte*))243 -Constant (const signed byte*) xp#0 = ((signed byte*))244 -Constant (const signed byte*) yp#0 = ((signed byte*))245 -Constant (const word*) psp1#0 = ((word*))246 -Constant (const word*) psp2#0 = ((word*))248 -Constant (const byte*) SCREEN#0 = ((byte*))1024 -Constant (const signed byte/signed word/signed dword) $0 = -52 -Constant (const signed byte/signed word/signed dword) $1 = -52 -Constant (const signed byte/signed word/signed dword) $2 = -52 -Constant (const signed byte/signed word/signed dword) $3 = -52 -Constant (const signed byte/signed word/signed dword) $4 = -52 -Constant (const signed byte/signed word/signed dword) $5 = -52 -Constant (const signed byte[8]) zs#0 = { 52, 52, 52, 52, 52, 52, 52, 52 } +Constant (const signed byte*) xr#0 = ((signed byte*))$f0 +Constant (const signed byte*) yr#0 = ((signed byte*))$f1 +Constant (const signed byte*) zr#0 = ((signed byte*))$f2 +Constant (const signed byte*) pp#0 = ((signed byte*))$f3 +Constant (const signed byte*) xp#0 = ((signed byte*))$f4 +Constant (const signed byte*) yp#0 = ((signed byte*))$f5 +Constant (const word*) psp1#0 = ((word*))$f6 +Constant (const word*) psp2#0 = ((word*))$f8 +Constant (const byte*) SCREEN#0 = ((byte*))$400 +Constant (const signed byte/signed word/signed dword) $0 = -$34 +Constant (const signed byte/signed word/signed dword) $1 = -$34 +Constant (const signed byte/signed word/signed dword) $2 = -$34 +Constant (const signed byte/signed word/signed dword) $3 = -$34 +Constant (const signed byte/signed word/signed dword) $4 = -$34 +Constant (const signed byte/signed word/signed dword) $5 = -$34 +Constant (const signed byte[8]) zs#0 = { $34, $34, $34, $34, $34, $34, $34, $34 } Constant (const signed byte[8]) xrs#0 = { fill( 8, 0) } Constant (const signed byte[8]) yrs#0 = { fill( 8, 0) } Constant (const signed byte[8]) zrs#0 = { fill( 8, 0) } @@ -3807,101 +3807,101 @@ Constant (const signed byte) sx#17 = 0 Constant (const signed byte) sy#18 = 0 Constant (const signed byte) sz#0 = 0 Constant (const byte) anim::i#0 = 0 -Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print_init::$1 = 40*0 +Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print_init::$1 = $28*0 Constant (const byte*) print_str_at::str#1 = debug_print_init::str -Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print_init::$5 = 40*1 +Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print_init::$5 = $28*1 Constant (const byte*) print_str_at::str#2 = debug_print_init::str1 -Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print_init::$9 = 40*2 +Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print_init::$9 = $28*2 Constant (const byte*) print_str_at::str#3 = debug_print_init::str2 -Constant (const word/signed word/dword/signed dword) debug_print_init::$13 = 40*16 +Constant (const word/signed word/dword/signed dword) debug_print_init::$13 = $28*$10 Constant (const byte*) print_str_at::str#4 = debug_print_init::str3 -Constant (const word/signed word/dword/signed dword) debug_print_init::$16 = 40*17 +Constant (const word/signed word/dword/signed dword) debug_print_init::$16 = $28*$11 Constant (const byte*) print_str_at::str#5 = debug_print_init::str4 -Constant (const word/signed word/dword/signed dword) debug_print_init::$19 = 40*18 +Constant (const word/signed word/dword/signed dword) debug_print_init::$19 = $28*$12 Constant (const byte*) print_str_at::str#6 = debug_print_init::str5 -Constant (const word/signed word/dword/signed dword) debug_print_init::$22 = 40*19 +Constant (const word/signed word/dword/signed dword) debug_print_init::$22 = $28*$13 Constant (const byte*) print_str_at::str#7 = debug_print_init::str6 -Constant (const word/signed word/dword/signed dword) debug_print_init::$25 = 40*20 +Constant (const word/signed word/dword/signed dword) debug_print_init::$25 = $28*$14 Constant (const byte*) print_str_at::str#8 = debug_print_init::str7 -Constant (const word/signed word/dword/signed dword) debug_print_init::$28 = 40*21 +Constant (const word/signed word/dword/signed dword) debug_print_init::$28 = $28*$15 Constant (const byte*) print_str_at::str#9 = debug_print_init::str8 -Constant (const word/signed word/dword/signed dword) debug_print_init::$31 = 40*22 +Constant (const word/signed word/dword/signed dword) debug_print_init::$31 = $28*$16 Constant (const byte*) print_str_at::str#10 = debug_print_init::str9 -Constant (const word/signed word/dword/signed dword) debug_print_init::$34 = 40*23 +Constant (const word/signed word/dword/signed dword) debug_print_init::$34 = $28*$17 Constant (const byte*) print_str_at::str#11 = debug_print_init::str10 -Constant (const word/signed word/dword/signed dword) debug_print_init::$37 = 40*24 +Constant (const word/signed word/dword/signed dword) debug_print_init::$37 = $28*$18 Constant (const byte*) print_str_at::str#12 = debug_print_init::str11 -Constant (const word/signed word/dword/signed dword) debug_print_init::$40 = 16*40 +Constant (const word/signed word/dword/signed dword) debug_print_init::$40 = $10*$28 Constant (const byte) debug_print_init::c#0 = 4 -Constant (const byte*) debug_print_init::COLS#0 = ((byte*))55296 -Constant (const word/signed word/dword/signed dword) debug_print_init::$42 = 16*40 +Constant (const byte*) debug_print_init::COLS#0 = ((byte*))$d800 +Constant (const word/signed word/dword/signed dword) debug_print_init::$42 = $10*$28 Constant (const byte) debug_print_init::i#0 = 0 -Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print_init::$44 = 40*0 -Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print_init::$48 = 40*1 -Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print_init::$52 = 40*2 +Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print_init::$44 = $28*0 +Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print_init::$48 = $28*1 +Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print_init::$52 = $28*2 Constant (const byte) debug_print_init::j#0 = 0 -Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print_init::$57 = 40*0 -Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print_init::$61 = 40*1 -Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print_init::$65 = 40*2 -Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print_init::$69 = 40*3 -Constant (const byte/word/signed word/dword/signed dword) debug_print_init::$73 = 40*4 -Constant (const byte/word/signed word/dword/signed dword) debug_print_init::$77 = 40*5 -Constant (const byte/word/signed word/dword/signed dword) debug_print_init::$81 = 40*6 -Constant (const word/signed word/dword/signed dword) debug_print_init::$85 = 40*7 -Constant (const word/signed word/dword/signed dword) debug_print_init::$89 = 40*8 +Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print_init::$57 = $28*0 +Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print_init::$61 = $28*1 +Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print_init::$65 = $28*2 +Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print_init::$69 = $28*3 +Constant (const byte/word/signed word/dword/signed dword) debug_print_init::$73 = $28*4 +Constant (const byte/word/signed word/dword/signed dword) debug_print_init::$77 = $28*5 +Constant (const byte/word/signed word/dword/signed dword) debug_print_init::$81 = $28*6 +Constant (const word/signed word/dword/signed dword) debug_print_init::$85 = $28*7 +Constant (const word/signed word/dword/signed dword) debug_print_init::$89 = $28*8 Constant (const byte) debug_print::print_sbyte_pos1_row#0 = 0 -Constant (const byte) debug_print::print_sbyte_pos1_col#0 = 37 +Constant (const byte) debug_print::print_sbyte_pos1_col#0 = $25 Constant (const byte) debug_print::print_sbyte_pos2_row#0 = 1 -Constant (const byte) debug_print::print_sbyte_pos2_col#0 = 37 +Constant (const byte) debug_print::print_sbyte_pos2_col#0 = $25 Constant (const byte) debug_print::print_sbyte_pos3_row#0 = 2 -Constant (const byte) debug_print::print_sbyte_pos3_col#0 = 37 +Constant (const byte) debug_print::print_sbyte_pos3_col#0 = $25 Constant (const byte) debug_print::print_sbyte_pos4_row#0 = 4 -Constant (const byte) debug_print::print_sbyte_pos4_col#0 = 29 +Constant (const byte) debug_print::print_sbyte_pos4_col#0 = $1d Constant (const byte) debug_print::print_sbyte_pos5_row#0 = 4 -Constant (const byte) debug_print::print_sbyte_pos5_col#0 = 33 +Constant (const byte) debug_print::print_sbyte_pos5_col#0 = $21 Constant (const byte) debug_print::print_sbyte_pos6_row#0 = 4 -Constant (const byte) debug_print::print_sbyte_pos6_col#0 = 37 +Constant (const byte) debug_print::print_sbyte_pos6_col#0 = $25 Constant (const byte) debug_print::print_sbyte_pos7_row#0 = 5 -Constant (const byte) debug_print::print_sbyte_pos7_col#0 = 29 +Constant (const byte) debug_print::print_sbyte_pos7_col#0 = $1d Constant (const byte) debug_print::print_sbyte_pos8_row#0 = 5 -Constant (const byte) debug_print::print_sbyte_pos8_col#0 = 33 +Constant (const byte) debug_print::print_sbyte_pos8_col#0 = $21 Constant (const byte) debug_print::print_sbyte_pos9_row#0 = 5 -Constant (const byte) debug_print::print_sbyte_pos9_col#0 = 37 +Constant (const byte) debug_print::print_sbyte_pos9_col#0 = $25 Constant (const byte) debug_print::print_sbyte_pos10_row#0 = 6 -Constant (const byte) debug_print::print_sbyte_pos10_col#0 = 29 +Constant (const byte) debug_print::print_sbyte_pos10_col#0 = $1d Constant (const byte) debug_print::print_sbyte_pos11_row#0 = 6 -Constant (const byte) debug_print::print_sbyte_pos11_col#0 = 33 +Constant (const byte) debug_print::print_sbyte_pos11_col#0 = $21 Constant (const byte) debug_print::print_sbyte_pos12_row#0 = 6 -Constant (const byte) debug_print::print_sbyte_pos12_col#0 = 37 -Constant (const word/signed word/dword/signed dword) debug_print::$12 = 19*40 +Constant (const byte) debug_print::print_sbyte_pos12_col#0 = $25 +Constant (const word/signed word/dword/signed dword) debug_print::$12 = $13*$28 Constant (const byte) debug_print::c#0 = 4 Constant (const byte) debug_print::i#0 = 0 -Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print::$14 = 40*0 -Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print::$18 = 40*1 -Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print::$22 = 40*2 -Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print::$26 = 40*3 -Constant (const byte/word/signed word/dword/signed dword) debug_print::$30 = 40*4 -Constant (const byte/word/signed word/dword/signed dword) debug_print::$34 = 40*5 -Constant (const byte*) sprites_init::SCREEN#0 = ((byte*))1024 +Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print::$14 = $28*0 +Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print::$18 = $28*1 +Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print::$22 = $28*2 +Constant (const byte/signed byte/word/signed word/dword/signed dword) debug_print::$26 = $28*3 +Constant (const byte/word/signed word/dword/signed dword) debug_print::$30 = $28*4 +Constant (const byte/word/signed word/dword/signed dword) debug_print::$34 = $28*5 +Constant (const byte*) sprites_init::SCREEN#0 = ((byte*))$400 Constant (const byte) sprites_init::i#0 = 0 Constant (const signed byte[9]) rotation_matrix#0 = { fill( 9, 0) } -Constant (const byte*) mulf_sqr1#0 = ((byte*))9216 -Constant (const byte*) mulf_sqr2#0 = ((byte*))9728 -Constant (const byte*) SPRITE#0 = ((byte*))12288 -Constant (const signed byte*) PERSP_Z#0 = ((signed byte*))10240 -Constant (const signed byte*) SINH#0 = ((signed byte*))8192 -Constant (const signed byte*) SINQ#0 = ((signed byte*))8704 -Constant (const byte*) SINH_LO#0 = ((byte*))16384 -Constant (const byte*) SINH_HI#0 = ((byte*))16896 -Constant (const byte*) SINQ_LO#0 = ((byte*))17408 -Constant (const byte*) SINQ_HI#0 = ((byte*))17920 +Constant (const byte*) mulf_sqr1#0 = ((byte*))$2400 +Constant (const byte*) mulf_sqr2#0 = ((byte*))$2600 +Constant (const byte*) SPRITE#0 = ((byte*))$3000 +Constant (const signed byte*) PERSP_Z#0 = ((signed byte*))$2800 +Constant (const signed byte*) SINH#0 = ((signed byte*))$2000 +Constant (const signed byte*) SINQ#0 = ((signed byte*))$2200 +Constant (const byte*) SINH_LO#0 = ((byte*))$4000 +Constant (const byte*) SINH_HI#0 = ((byte*))$4200 +Constant (const byte*) SINQ_LO#0 = ((byte*))$4400 +Constant (const byte*) SINQ_HI#0 = ((byte*))$4600 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) print_cls::sc#0 = print_line_cursor#0 -Constant (const byte*) print_cls::$0 = print_line_cursor#0+1000 +Constant (const byte*) print_cls::$0 = print_line_cursor#0+$3e8 Constant (const word) main::$1 = ((word))mulf_sqr1#0 Constant (const word) main::$2 = ((word))mulf_sqr2#0 -Constant (const signed byte[8]) xs#0 = { $0, $1, $2, 0, 0, 52, 52, 52 } -Constant (const signed byte[8]) ys#0 = { $3, 0, 52, $4, 52, $5, 0, 52 } +Constant (const signed byte[8]) xs#0 = { $0, $1, $2, 0, 0, $34, $34, $34 } +Constant (const signed byte[8]) ys#0 = { $3, 0, $34, $4, $34, $5, 0, $34 } Constant (const byte*) debug_print_init::$2 = SCREEN#0+debug_print_init::$1 Constant (const byte*) debug_print_init::$6 = SCREEN#0+debug_print_init::$5 Constant (const byte*) debug_print_init::$10 = SCREEN#0+debug_print_init::$9 @@ -3916,30 +3916,30 @@ Constant (const byte*) print_str_at::at#11 = SCREEN#0+debug_print_init::$34 Constant (const byte*) print_str_at::at#12 = SCREEN#0+debug_print_init::$37 Constant (const byte*) debug_print_init::at_line#0 = SCREEN#0+debug_print_init::$40 Constant (const byte*) debug_print_init::at_cols#0 = debug_print_init::COLS#0+debug_print_init::$42 -Constant (const byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos1_$0#0 = debug_print::print_sbyte_pos1_row#0*40 -Constant (const byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos2_$0#0 = debug_print::print_sbyte_pos2_row#0*40 -Constant (const byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos3_$0#0 = debug_print::print_sbyte_pos3_row#0*40 -Constant (const byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos4_$0#0 = debug_print::print_sbyte_pos4_row#0*40 -Constant (const byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos5_$0#0 = debug_print::print_sbyte_pos5_row#0*40 -Constant (const byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos6_$0#0 = debug_print::print_sbyte_pos6_row#0*40 -Constant (const byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos7_$0#0 = debug_print::print_sbyte_pos7_row#0*40 -Constant (const byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos8_$0#0 = debug_print::print_sbyte_pos8_row#0*40 -Constant (const byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos9_$0#0 = debug_print::print_sbyte_pos9_row#0*40 -Constant (const byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos10_$0#0 = debug_print::print_sbyte_pos10_row#0*40 -Constant (const byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos11_$0#0 = debug_print::print_sbyte_pos11_row#0*40 -Constant (const byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos12_$0#0 = debug_print::print_sbyte_pos12_row#0*40 -Constant (const byte*) sprites_init::sprites_ptr#0 = sprites_init::SCREEN#0+1016 -Constant (const byte*) sprites_init::$1 = SPRITE#0/64 -Constant (const signed byte*) COSH#0 = SINH#0+64 -Constant (const signed byte*) COSQ#0 = SINQ#0+64 -Constant (const byte*) COSH_LO#0 = SINH_LO#0+64 -Constant (const byte*) COSH_HI#0 = SINH_HI#0+64 -Constant (const byte*) COSQ_LO#0 = SINQ_LO#0+64 -Constant (const byte*) COSQ_HI#0 = SINQ_HI#0+64 +Constant (const byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos1_$0#0 = debug_print::print_sbyte_pos1_row#0*$28 +Constant (const byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos2_$0#0 = debug_print::print_sbyte_pos2_row#0*$28 +Constant (const byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos3_$0#0 = debug_print::print_sbyte_pos3_row#0*$28 +Constant (const byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos4_$0#0 = debug_print::print_sbyte_pos4_row#0*$28 +Constant (const byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos5_$0#0 = debug_print::print_sbyte_pos5_row#0*$28 +Constant (const byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos6_$0#0 = debug_print::print_sbyte_pos6_row#0*$28 +Constant (const byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos7_$0#0 = debug_print::print_sbyte_pos7_row#0*$28 +Constant (const byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos8_$0#0 = debug_print::print_sbyte_pos8_row#0*$28 +Constant (const byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos9_$0#0 = debug_print::print_sbyte_pos9_row#0*$28 +Constant (const byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos10_$0#0 = debug_print::print_sbyte_pos10_row#0*$28 +Constant (const byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos11_$0#0 = debug_print::print_sbyte_pos11_row#0*$28 +Constant (const byte/signed word/word/dword/signed dword) debug_print::print_sbyte_pos12_$0#0 = debug_print::print_sbyte_pos12_row#0*$28 +Constant (const byte*) sprites_init::sprites_ptr#0 = sprites_init::SCREEN#0+$3f8 +Constant (const byte*) sprites_init::$1 = SPRITE#0/$40 +Constant (const signed byte*) COSH#0 = SINH#0+$40 +Constant (const signed byte*) COSQ#0 = SINQ#0+$40 +Constant (const byte*) COSH_LO#0 = SINH_LO#0+$40 +Constant (const byte*) COSH_HI#0 = SINH_HI#0+$40 +Constant (const byte*) COSQ_LO#0 = SINQ_LO#0+$40 +Constant (const byte*) COSQ_HI#0 = SINQ_HI#0+$40 Successful SSA optimization Pass2ConstantIdentification -Constant (const byte*) print_str_at::at#1 = debug_print_init::$2+34 -Constant (const byte*) print_str_at::at#2 = debug_print_init::$6+34 -Constant (const byte*) print_str_at::at#3 = debug_print_init::$10+34 +Constant (const byte*) print_str_at::at#1 = debug_print_init::$2+$22 +Constant (const byte*) print_str_at::at#2 = debug_print_init::$6+$22 +Constant (const byte*) print_str_at::at#3 = debug_print_init::$10+$22 Constant (const byte) sprites_init::$2 = ((byte))sprites_init::$1 Successful SSA optimization Pass2ConstantIdentification Consolidated constant in assignment print_sbyte_at::at#3 @@ -4153,27 +4153,27 @@ Inlining constant with var siblings (const byte) debug_print::i#0 Inlining constant with var siblings (const byte) sprites_init::i#0 Inlining constant with var siblings (const signed byte) sx#17 Inlining constant with var siblings (const signed byte) sy#18 -Constant inlined debug_print::print_sbyte_pos7_$0#0 = (const byte) debug_print::print_sbyte_pos7_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined debug_print::print_sbyte_pos7_$0#0 = (const byte) debug_print::print_sbyte_pos7_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined debug_print::print_sbyte_pos11_$1#0 = (const byte*) print_line_cursor#0 Constant inlined print_str_at::str#12 = (const string) debug_print_init::str11 Constant inlined debug_print::print_sbyte_pos5_$1#0 = (const byte*) print_line_cursor#0 Constant inlined print_str_at::str#11 = (const string) debug_print_init::str10 Constant inlined print_str_at::str#10 = (const string) debug_print_init::str9 -Constant inlined debug_print_init::$37 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24 -Constant inlined debug_print::print_sbyte_pos6_$0#0 = (const byte) debug_print::print_sbyte_pos6_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined debug_print_init::$34 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 23 -Constant inlined debug_print_init::$31 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 22 -Constant inlined debug_print::$18 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined debug_print::$19 = (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined debug_print::$14 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined debug_print_init::$37 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18 +Constant inlined debug_print::print_sbyte_pos6_$0#0 = (const byte) debug_print::print_sbyte_pos6_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined debug_print_init::$34 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $17 +Constant inlined debug_print_init::$31 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $16 +Constant inlined debug_print::$18 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined debug_print::$19 = (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined debug_print::$14 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined debug_print::print_sbyte_pos6_$1#0 = (const byte*) print_line_cursor#0 Constant inlined debug_print::print_sbyte_pos3_$1#0 = (const byte*) print_line_cursor#0 -Constant inlined debug_print::$15 = (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined debug_print::$12 = (byte/signed byte/word/signed word/dword/signed dword) 19*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined debug_print::$15 = (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined debug_print::$12 = (byte/signed byte/word/signed word/dword/signed dword) $13*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined sprites_init::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined debug_print_init::$28 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 21 -Constant inlined debug_print_init::$25 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 20 -Constant inlined debug_print_init::$22 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 19 +Constant inlined debug_print_init::$28 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $15 +Constant inlined debug_print_init::$25 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $14 +Constant inlined debug_print_init::$22 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $13 Constant inlined debug_print::print_sbyte_pos12_$1#0 = (const byte*) print_line_cursor#0 Constant inlined debug_print_init::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined calculate_matrix::sz#0 = (const signed byte) sz#0 @@ -4182,124 +4182,124 @@ Constant inlined print_str_at::str#2 = (const string) debug_print_init::str1 Constant inlined debug_print::print_sbyte_pos7_$1#0 = (const byte*) print_line_cursor#0 Constant inlined print_str_at::str#3 = (const string) debug_print_init::str2 Constant inlined print_str_at::str#4 = (const string) debug_print_init::str3 -Constant inlined print_cls::$0 = (const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000 +Constant inlined print_cls::$0 = (const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8 Constant inlined debug_print::print_sbyte_pos1_$1#0 = (const byte*) print_line_cursor#0 Constant inlined $12 = (const byte[]) print_hextab#0 Constant inlined debug_print::print_sbyte_pos3_sb#0 = (const signed byte) sz#0 -Constant inlined print_str_at::at#11 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 23 -Constant inlined print_str_at::at#10 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 22 -Constant inlined print_str_at::at#12 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24 -Constant inlined debug_print_init::$58 = (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined debug_print::print_sbyte_pos11_$0#0 = (const byte) debug_print::print_sbyte_pos11_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined print_str_at::at#11 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $17 +Constant inlined print_str_at::at#10 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $16 +Constant inlined print_str_at::at#12 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18 +Constant inlined debug_print_init::$58 = (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined debug_print::print_sbyte_pos11_$0#0 = (const byte) debug_print::print_sbyte_pos11_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined print_char_at::ch#0 = (byte) '-' -Constant inlined debug_print_init::$57 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined debug_print_init::$57 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined print_char_at::ch#1 = (byte) ' ' Constant inlined print_str_at::str#9 = (const string) debug_print_init::str8 -Constant inlined debug_print_init::$53 = (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined debug_print::print_sbyte_pos9_$0#0 = (const byte) debug_print::print_sbyte_pos9_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined debug_print_init::$52 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined debug_print_init::$53 = (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined debug_print::print_sbyte_pos9_$0#0 = (const byte) debug_print::print_sbyte_pos9_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined debug_print_init::$52 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined print_str_at::str#5 = (const string) debug_print_init::str4 Constant inlined print_str_at::str#6 = (const string) debug_print_init::str5 Constant inlined print_str_at::str#7 = (const string) debug_print_init::str6 Constant inlined print_str_at::str#8 = (const string) debug_print_init::str7 Constant inlined debug_print::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 4 -Constant inlined print_sbyte_at::at#13 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos11_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos11_col#0 -Constant inlined print_sbyte_at::at#12 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos10_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos10_col#0 -Constant inlined print_sbyte_at::at#14 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos12_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos12_col#0 -Constant inlined debug_print::print_sbyte_pos3_$0#0 = (const byte) debug_print::print_sbyte_pos3_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined print_sbyte_at::at#11 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos9_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos9_col#0 -Constant inlined print_sbyte_at::at#10 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos8_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos8_col#0 +Constant inlined print_sbyte_at::at#13 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos11_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos11_col#0 +Constant inlined print_sbyte_at::at#12 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos10_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos10_col#0 +Constant inlined print_sbyte_at::at#14 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos12_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos12_col#0 +Constant inlined debug_print::print_sbyte_pos3_$0#0 = (const byte) debug_print::print_sbyte_pos3_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined print_sbyte_at::at#11 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos9_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos9_col#0 +Constant inlined print_sbyte_at::at#10 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos8_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos8_col#0 Constant inlined print_cls::sc#0 = (const byte*) print_line_cursor#0 -Constant inlined print_sbyte_at::at#6 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos4_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos4_col#0 -Constant inlined print_sbyte_at::at#5 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos3_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos3_col#0 -Constant inlined print_sbyte_at::at#4 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos2_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos2_col#0 -Constant inlined print_sbyte_at::at#3 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos1_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos1_col#0 -Constant inlined print_sbyte_at::at#9 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos7_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos7_col#0 -Constant inlined print_sbyte_at::at#8 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos6_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos6_col#0 -Constant inlined print_sbyte_at::at#7 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos5_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos5_col#0 +Constant inlined print_sbyte_at::at#6 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos4_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos4_col#0 +Constant inlined print_sbyte_at::at#5 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos3_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos3_col#0 +Constant inlined print_sbyte_at::at#4 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos2_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos2_col#0 +Constant inlined print_sbyte_at::at#3 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos1_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos1_col#0 +Constant inlined print_sbyte_at::at#9 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos7_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos7_col#0 +Constant inlined print_sbyte_at::at#8 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos6_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos6_col#0 +Constant inlined print_sbyte_at::at#7 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos5_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos5_col#0 Constant inlined main::$1 = ((word))(const byte*) mulf_sqr1#0 -Constant inlined debug_print_init::$49 = (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined debug_print_init::$49 = (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined main::$2 = ((word))(const byte*) mulf_sqr2#0 -Constant inlined debug_print_init::$48 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined debug_print_init::$45 = (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined debug_print_init::$48 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined debug_print_init::$45 = (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined debug_print_init::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined debug_print_init::$44 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined debug_print_init::$42 = (byte/signed byte/word/signed word/dword/signed dword) 16*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined debug_print_init::$40 = (byte/signed byte/word/signed word/dword/signed dword) 16*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined debug_print_init::$44 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined debug_print_init::$42 = (byte/signed byte/word/signed word/dword/signed dword) $10*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined debug_print_init::$40 = (byte/signed byte/word/signed word/dword/signed dword) $10*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined debug_print::print_sbyte_pos4_$1#0 = (const byte*) print_line_cursor#0 -Constant inlined debug_print_init::$70 = (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 -Constant inlined print_str_at::at#4 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 16 -Constant inlined print_str_at::at#3 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 34 -Constant inlined print_str_at::at#2 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 34 -Constant inlined print_str_at::at#1 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 0+(byte/signed byte/word/signed word/dword/signed dword) 34 -Constant inlined debug_print::print_sbyte_pos1_$0#0 = (const byte) debug_print::print_sbyte_pos1_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined debug_print_init::$9 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined debug_print_init::$6 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined print_str_at::at#9 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 21 -Constant inlined $0 = -(byte/signed byte/word/signed word/dword/signed dword) 52 -Constant inlined print_str_at::at#8 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 20 -Constant inlined $1 = -(byte/signed byte/word/signed word/dword/signed dword) 52 -Constant inlined print_str_at::at#7 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 19 -Constant inlined $2 = -(byte/signed byte/word/signed word/dword/signed dword) 52 -Constant inlined print_str_at::at#6 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 18 +Constant inlined debug_print_init::$70 = (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 +Constant inlined print_str_at::at#4 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $10 +Constant inlined print_str_at::at#3 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) $22 +Constant inlined print_str_at::at#2 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) $22 +Constant inlined print_str_at::at#1 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 0+(byte/signed byte/word/signed word/dword/signed dword) $22 +Constant inlined debug_print::print_sbyte_pos1_$0#0 = (const byte) debug_print::print_sbyte_pos1_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined debug_print_init::$9 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined debug_print_init::$6 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined print_str_at::at#9 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $15 +Constant inlined $0 = -(byte/signed byte/word/signed word/dword/signed dword) $34 +Constant inlined print_str_at::at#8 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $14 +Constant inlined $1 = -(byte/signed byte/word/signed word/dword/signed dword) $34 +Constant inlined print_str_at::at#7 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $13 +Constant inlined $2 = -(byte/signed byte/word/signed word/dword/signed dword) $34 +Constant inlined print_str_at::at#6 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $12 Constant inlined anim::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined $3 = -(byte/signed byte/word/signed word/dword/signed dword) 52 -Constant inlined print_str_at::at#5 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 17 +Constant inlined $3 = -(byte/signed byte/word/signed word/dword/signed dword) $34 +Constant inlined print_str_at::at#5 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $11 Constant inlined sx#17 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined $4 = -(byte/signed byte/word/signed word/dword/signed dword) 52 -Constant inlined $5 = -(byte/signed byte/word/signed word/dword/signed dword) 52 -Constant inlined debug_print::print_sbyte_pos2_$0#0 = (const byte) debug_print::print_sbyte_pos2_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined debug_print_init::$78 = (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 -Constant inlined debug_print_init::$77 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 +Constant inlined $4 = -(byte/signed byte/word/signed word/dword/signed dword) $34 +Constant inlined $5 = -(byte/signed byte/word/signed word/dword/signed dword) $34 +Constant inlined debug_print::print_sbyte_pos2_$0#0 = (const byte) debug_print::print_sbyte_pos2_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined debug_print_init::$78 = (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 +Constant inlined debug_print_init::$77 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 Constant inlined debug_print::print_sbyte_pos9_$1#0 = (const byte*) print_line_cursor#0 -Constant inlined debug_print_init::$74 = (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 -Constant inlined debug_print_init::$73 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 -Constant inlined debug_print::print_sbyte_pos10_$0#0 = (const byte) debug_print::print_sbyte_pos10_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined debug_print_init::$74 = (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 +Constant inlined debug_print_init::$73 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 +Constant inlined debug_print::print_sbyte_pos10_$0#0 = (const byte) debug_print::print_sbyte_pos10_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined debug_print::print_sbyte_pos8_$1#0 = (const byte*) print_line_cursor#0 Constant inlined print_sbyte_at::b#6 = (const signed byte) sz#0 -Constant inlined debug_print_init::$1 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined debug_print_init::$5 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined debug_print_init::$69 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 -Constant inlined debug_print_init::$2 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined sprites_init::$1 = (const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 -Constant inlined debug_print_init::$66 = (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined sprites_init::$2 = ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 -Constant inlined debug_print_init::$65 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined debug_print_init::$62 = (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined debug_print_init::$61 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined debug_print::print_sbyte_pos4_$0#0 = (const byte) debug_print::print_sbyte_pos4_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined debug_print_init::$90 = (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 -Constant inlined debug_print::$27 = (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 -Constant inlined debug_print::$26 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 -Constant inlined debug_print::$23 = (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined debug_print::$22 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined debug_print_init::$19 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 18 +Constant inlined debug_print_init::$1 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined debug_print_init::$5 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined debug_print_init::$69 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 +Constant inlined debug_print_init::$2 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined sprites_init::$1 = (const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 +Constant inlined debug_print_init::$66 = (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined sprites_init::$2 = ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 +Constant inlined debug_print_init::$65 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined debug_print_init::$62 = (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined debug_print_init::$61 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined debug_print::print_sbyte_pos4_$0#0 = (const byte) debug_print::print_sbyte_pos4_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined debug_print_init::$90 = (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 +Constant inlined debug_print::$27 = (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 +Constant inlined debug_print::$26 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 +Constant inlined debug_print::$23 = (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined debug_print::$22 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined debug_print_init::$19 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $12 Constant inlined debug_print::print_sbyte_pos2_$1#0 = (const byte*) print_line_cursor#0 -Constant inlined debug_print::print_sbyte_pos5_$0#0 = (const byte) debug_print::print_sbyte_pos5_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined debug_print_init::$16 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 17 -Constant inlined debug_print_init::$13 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 16 -Constant inlined debug_print_init::$10 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined debug_print_init::$81 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6 +Constant inlined debug_print::print_sbyte_pos5_$0#0 = (const byte) debug_print::print_sbyte_pos5_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined debug_print_init::$16 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $11 +Constant inlined debug_print_init::$13 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $10 +Constant inlined debug_print_init::$10 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined debug_print_init::$81 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 6 Constant inlined debug_print::print_sbyte_pos10_$1#0 = (const byte*) print_line_cursor#0 Constant inlined sy#18 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined debug_print::$34 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 -Constant inlined debug_print::$35 = (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 -Constant inlined debug_print::$30 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 -Constant inlined debug_print::print_sbyte_pos8_$0#0 = (const byte) debug_print::print_sbyte_pos8_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined debug_print::$31 = (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 +Constant inlined debug_print::$34 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 +Constant inlined debug_print::$35 = (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 +Constant inlined debug_print::$30 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 +Constant inlined debug_print::print_sbyte_pos8_$0#0 = (const byte) debug_print::print_sbyte_pos8_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined debug_print::$31 = (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 Constant inlined debug_print_init::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 4 -Constant inlined debug_print_init::$89 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 -Constant inlined debug_print::print_sbyte_pos12_$0#0 = (const byte) debug_print::print_sbyte_pos12_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined debug_print_init::$89 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 +Constant inlined debug_print::print_sbyte_pos12_$0#0 = (const byte) debug_print::print_sbyte_pos12_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined debug_print::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined debug_print_init::$86 = (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 7 -Constant inlined debug_print_init::$85 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 7 -Constant inlined debug_print_init::$82 = (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6 +Constant inlined debug_print_init::$86 = (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 7 +Constant inlined debug_print_init::$85 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 7 +Constant inlined debug_print_init::$82 = (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 6 Successful SSA optimization Pass2ConstantInlining -Simplifying constant multiply by zero 40*0 -Simplifying constant multiply by zero 40*0 -Simplifying constant multiply by zero 40*0 +Simplifying constant multiply by zero $28*0 +Simplifying constant multiply by zero $28*0 +Simplifying constant multiply by zero $28*0 Simplifying constant plus zero rotation_matrix#0+0 -Simplifying constant multiply by zero 40*0 +Simplifying constant multiply by zero $28*0 Simplifying constant plus zero rotation_matrix#0+0 Simplifying constant plus zero SCREEN#0+0 Simplifying constant plus zero debug_print_init::at_line#0+0 @@ -4543,13 +4543,13 @@ anim::@1: scope:[anim] from anim anim::@30 [22] (signed byte) sx#10 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@30/(signed byte) sx#3 ) to:anim::@4 anim::@4: scope:[anim] from anim::@1 anim::@4 - [23] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 + [23] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto anim::@4 to:anim::@7 anim::@7: scope:[anim] from anim::@4 anim::@7 - [24] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto anim::@7 + [24] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fe) goto anim::@7 to:anim::@10 anim::@10: scope:[anim] from anim::@10 anim::@7 - [25] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 253) goto anim::@10 + [25] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fd) goto anim::@10 to:anim::@12 anim::@12: scope:[anim] from anim::@10 [26] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) @@ -4577,9 +4577,9 @@ anim::@29: scope:[anim] from anim::@13 [42] *((const signed byte[8]) xps#0 + (byte) anim::i#2) ← *((const signed byte*) xp#0) [43] *((const signed byte[8]) yps#0 + (byte) anim::i#2) ← *((const signed byte*) yp#0) [44] (byte) anim::i2#0 ← (byte) anim::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [45] (byte/word/signed word/dword/signed dword~) anim::$8 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) xp#0) + [45] (byte/word/signed word/dword/signed dword~) anim::$8 ← (byte/word/signed word/dword/signed dword) $80 + (byte)*((const signed byte*) xp#0) [46] *((const byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$8 - [47] (byte/word/signed word/dword/signed dword~) anim::$10 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) yp#0) + [47] (byte/word/signed word/dword/signed dword~) anim::$10 ← (byte/word/signed word/dword/signed dword) $80 + (byte)*((const signed byte*) yp#0) [48] *((const byte*) SPRITES_YPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$10 [49] (byte) anim::i#1 ← ++ (byte) anim::i#2 [50] if((byte) anim::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto anim::@13 @@ -4682,27 +4682,27 @@ debug_print::@1: scope:[debug_print] from debug_print::@32 debug_print::print_s [94] call print_sbyte_at to:debug_print::@27 debug_print::@27: scope:[debug_print] from debug_print::@1 - [95] (byte*) print_sbyte_at::at#16 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print::c#2 + [95] (byte*) print_sbyte_at::at#16 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print::c#2 [96] (signed byte) print_sbyte_at::b#17 ← *((const signed byte[8]) yrs#0 + (byte) debug_print::i#2) [97] call print_sbyte_at to:debug_print::@28 debug_print::@28: scope:[debug_print] from debug_print::@27 - [98] (byte*) print_sbyte_at::at#17 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print::c#2 + [98] (byte*) print_sbyte_at::at#17 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print::c#2 [99] (signed byte) print_sbyte_at::b#18 ← *((const signed byte[8]) zrs#0 + (byte) debug_print::i#2) [100] call print_sbyte_at to:debug_print::@29 debug_print::@29: scope:[debug_print] from debug_print::@28 - [101] (byte*) print_sbyte_at::at#18 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) debug_print::c#2 + [101] (byte*) print_sbyte_at::at#18 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) debug_print::c#2 [102] (signed byte) print_sbyte_at::b#19 ← *((const signed byte[8]) pps#0 + (byte) debug_print::i#2) [103] call print_sbyte_at to:debug_print::@30 debug_print::@30: scope:[debug_print] from debug_print::@29 - [104] (byte*) print_sbyte_at::at#19 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) debug_print::c#2 + [104] (byte*) print_sbyte_at::at#19 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) debug_print::c#2 [105] (signed byte) print_sbyte_at::b#20 ← *((const signed byte[8]) xps#0 + (byte) debug_print::i#2) [106] call print_sbyte_at to:debug_print::@31 debug_print::@31: scope:[debug_print] from debug_print::@30 - [107] (byte*) print_sbyte_at::at#20 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) debug_print::c#2 + [107] (byte*) print_sbyte_at::at#20 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) debug_print::c#2 [108] (signed byte) print_sbyte_at::b#21 ← *((const signed byte[8]) yps#0 + (byte) debug_print::i#2) [109] call print_sbyte_at to:debug_print::@32 @@ -4715,7 +4715,7 @@ debug_print::@return: scope:[debug_print] from debug_print::@32 [113] return to:@return print_sbyte_at: scope:[print_sbyte_at] from debug_print::@1 debug_print::@27 debug_print::@28 debug_print::@29 debug_print::@30 debug_print::@31 debug_print::print_sbyte_pos1 debug_print::print_sbyte_pos10 debug_print::print_sbyte_pos11 debug_print::print_sbyte_pos12 debug_print::print_sbyte_pos2 debug_print::print_sbyte_pos3 debug_print::print_sbyte_pos4 debug_print::print_sbyte_pos5 debug_print::print_sbyte_pos6 debug_print::print_sbyte_pos7 debug_print::print_sbyte_pos8 debug_print::print_sbyte_pos9 debug_print_init::@1 debug_print_init::@18 debug_print_init::@19 - [114] (byte*) print_sbyte_at::at#21 ← phi( debug_print::@1/(byte*) print_sbyte_at::at#15 debug_print::@27/(byte*) print_sbyte_at::at#16 debug_print::@28/(byte*) print_sbyte_at::at#17 debug_print::@29/(byte*) print_sbyte_at::at#18 debug_print::@30/(byte*) print_sbyte_at::at#19 debug_print::@31/(byte*) print_sbyte_at::at#20 debug_print::print_sbyte_pos1/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos1_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos1_col#0 debug_print::print_sbyte_pos10/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos10_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos10_col#0 debug_print::print_sbyte_pos11/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos11_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos11_col#0 debug_print::print_sbyte_pos12/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos12_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos12_col#0 debug_print::print_sbyte_pos2/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos2_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos2_col#0 debug_print::print_sbyte_pos3/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos3_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos3_col#0 debug_print::print_sbyte_pos4/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos4_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos4_col#0 debug_print::print_sbyte_pos5/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos5_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos5_col#0 debug_print::print_sbyte_pos6/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos6_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos6_col#0 debug_print::print_sbyte_pos7/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos7_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos7_col#0 debug_print::print_sbyte_pos8/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos8_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos8_col#0 debug_print::print_sbyte_pos9/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos9_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos9_col#0 debug_print_init::@1/(byte*) print_sbyte_at::at#0 debug_print_init::@18/(byte*) print_sbyte_at::at#1 debug_print_init::@19/(byte*) print_sbyte_at::at#2 ) + [114] (byte*) print_sbyte_at::at#21 ← phi( debug_print::@1/(byte*) print_sbyte_at::at#15 debug_print::@27/(byte*) print_sbyte_at::at#16 debug_print::@28/(byte*) print_sbyte_at::at#17 debug_print::@29/(byte*) print_sbyte_at::at#18 debug_print::@30/(byte*) print_sbyte_at::at#19 debug_print::@31/(byte*) print_sbyte_at::at#20 debug_print::print_sbyte_pos1/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos1_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos1_col#0 debug_print::print_sbyte_pos10/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos10_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos10_col#0 debug_print::print_sbyte_pos11/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos11_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos11_col#0 debug_print::print_sbyte_pos12/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos12_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos12_col#0 debug_print::print_sbyte_pos2/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos2_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos2_col#0 debug_print::print_sbyte_pos3/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos3_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos3_col#0 debug_print::print_sbyte_pos4/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos4_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos4_col#0 debug_print::print_sbyte_pos5/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos5_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos5_col#0 debug_print::print_sbyte_pos6/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos6_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos6_col#0 debug_print::print_sbyte_pos7/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos7_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos7_col#0 debug_print::print_sbyte_pos8/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos8_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos8_col#0 debug_print::print_sbyte_pos9/(const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos9_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos9_col#0 debug_print_init::@1/(byte*) print_sbyte_at::at#0 debug_print_init::@18/(byte*) print_sbyte_at::at#1 debug_print_init::@19/(byte*) print_sbyte_at::at#2 ) [114] (signed byte) print_sbyte_at::b#22 ← phi( debug_print::@1/(signed byte) print_sbyte_at::b#16 debug_print::@27/(signed byte) print_sbyte_at::b#17 debug_print::@28/(signed byte) print_sbyte_at::b#18 debug_print::@29/(signed byte) print_sbyte_at::b#19 debug_print::@30/(signed byte) print_sbyte_at::b#20 debug_print::@31/(signed byte) print_sbyte_at::b#21 debug_print::print_sbyte_pos1/(signed byte) print_sbyte_at::b#4 debug_print::print_sbyte_pos10/(signed byte) print_sbyte_at::b#13 debug_print::print_sbyte_pos11/(signed byte) print_sbyte_at::b#14 debug_print::print_sbyte_pos12/(signed byte) print_sbyte_at::b#15 debug_print::print_sbyte_pos2/(signed byte) print_sbyte_at::b#5 debug_print::print_sbyte_pos3/(const signed byte) sz#0 debug_print::print_sbyte_pos4/(signed byte) print_sbyte_at::b#7 debug_print::print_sbyte_pos5/(signed byte) print_sbyte_at::b#8 debug_print::print_sbyte_pos6/(signed byte) print_sbyte_at::b#9 debug_print::print_sbyte_pos7/(signed byte) print_sbyte_at::b#10 debug_print::print_sbyte_pos8/(signed byte) print_sbyte_at::b#11 debug_print::print_sbyte_pos9/(signed byte) print_sbyte_at::b#12 debug_print_init::@1/(signed byte) print_sbyte_at::b#1 debug_print_init::@18/(signed byte) print_sbyte_at::b#2 debug_print_init::@19/(signed byte) print_sbyte_at::b#3 ) [115] if((signed byte) print_sbyte_at::b#22<(byte/signed byte/word/signed word/dword/signed dword) 0) goto print_sbyte_at::@1 to:print_sbyte_at::@3 @@ -4753,7 +4753,7 @@ print_byte_at: scope:[print_byte_at] from print_sbyte_at::@2 [131] call print_char_at to:print_byte_at::@1 print_byte_at::@1: scope:[print_byte_at] from print_byte_at - [132] (byte~) print_byte_at::$2 ← (byte)(signed byte) print_sbyte_at::b#24 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [132] (byte~) print_byte_at::$2 ← (byte)(signed byte) print_sbyte_at::b#24 & (byte/signed byte/word/signed word/dword/signed dword) $f [133] (byte*) print_char_at::at#3 ← (byte*) print_byte_at::at#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 [134] (byte) print_char_at::ch#3 ← *((const byte[]) print_hextab#0 + (byte~) print_byte_at::$2) [135] call print_char_at @@ -4885,12 +4885,12 @@ debug_print_init::@1: scope:[debug_print_init] from debug_print_init::@16 debug [218] call print_sbyte_at to:debug_print_init::@18 debug_print_init::@18: scope:[debug_print_init] from debug_print_init::@1 - [219] (byte*) print_sbyte_at::at#1 ← (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print_init::c#2 + [219] (byte*) print_sbyte_at::at#1 ← (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print_init::c#2 [220] (signed byte) print_sbyte_at::b#2 ← *((const signed byte[8]) ys#0 + (byte) debug_print_init::i#2) [221] call print_sbyte_at to:debug_print_init::@19 debug_print_init::@19: scope:[debug_print_init] from debug_print_init::@18 - [222] (byte*) print_sbyte_at::at#2 ← (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print_init::c#2 + [222] (byte*) print_sbyte_at::at#2 ← (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print_init::c#2 [223] (signed byte) print_sbyte_at::b#3 ← *((const signed byte[8]) zs#0 + (byte) debug_print_init::i#2) [224] call print_sbyte_at to:debug_print_init::@2 @@ -4900,28 +4900,28 @@ debug_print_init::@2: scope:[debug_print_init] from debug_print_init::@19 debug [227] (byte*~) debug_print_init::$59 ← (const byte*) debug_print_init::at_cols#0 + (byte) debug_print_init::c#2 [228] (byte*~) debug_print_init::$60 ← (byte*~) debug_print_init::$59 + (byte) debug_print_init::j#2 [229] *((byte*~) debug_print_init::$60) ← (byte) debug_print_init::col#0 - [230] (byte*~) debug_print_init::$63 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print_init::c#2 + [230] (byte*~) debug_print_init::$63 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print_init::c#2 [231] (byte*~) debug_print_init::$64 ← (byte*~) debug_print_init::$63 + (byte) debug_print_init::j#2 [232] *((byte*~) debug_print_init::$64) ← (byte) debug_print_init::col#0 - [233] (byte*~) debug_print_init::$67 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print_init::c#2 + [233] (byte*~) debug_print_init::$67 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print_init::c#2 [234] (byte*~) debug_print_init::$68 ← (byte*~) debug_print_init::$67 + (byte) debug_print_init::j#2 [235] *((byte*~) debug_print_init::$68) ← (byte) debug_print_init::col#0 - [236] (byte*~) debug_print_init::$71 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) debug_print_init::c#2 + [236] (byte*~) debug_print_init::$71 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) debug_print_init::c#2 [237] (byte*~) debug_print_init::$72 ← (byte*~) debug_print_init::$71 + (byte) debug_print_init::j#2 [238] *((byte*~) debug_print_init::$72) ← (byte) debug_print_init::col#0 - [239] (byte*~) debug_print_init::$75 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) debug_print_init::c#2 + [239] (byte*~) debug_print_init::$75 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) debug_print_init::c#2 [240] (byte*~) debug_print_init::$76 ← (byte*~) debug_print_init::$75 + (byte) debug_print_init::j#2 [241] *((byte*~) debug_print_init::$76) ← (byte) debug_print_init::col#0 - [242] (byte*~) debug_print_init::$79 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) debug_print_init::c#2 + [242] (byte*~) debug_print_init::$79 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) debug_print_init::c#2 [243] (byte*~) debug_print_init::$80 ← (byte*~) debug_print_init::$79 + (byte) debug_print_init::j#2 [244] *((byte*~) debug_print_init::$80) ← (byte) debug_print_init::col#0 - [245] (byte*~) debug_print_init::$83 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6 + (byte) debug_print_init::c#2 + [245] (byte*~) debug_print_init::$83 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 6 + (byte) debug_print_init::c#2 [246] (byte*~) debug_print_init::$84 ← (byte*~) debug_print_init::$83 + (byte) debug_print_init::j#2 [247] *((byte*~) debug_print_init::$84) ← (byte) debug_print_init::col#0 - [248] (byte*~) debug_print_init::$87 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) debug_print_init::c#2 + [248] (byte*~) debug_print_init::$87 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) debug_print_init::c#2 [249] (byte*~) debug_print_init::$88 ← (byte*~) debug_print_init::$87 + (byte) debug_print_init::j#2 [250] *((byte*~) debug_print_init::$88) ← (byte) debug_print_init::col#0 - [251] (byte*~) debug_print_init::$91 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) debug_print_init::c#2 + [251] (byte*~) debug_print_init::$91 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) debug_print_init::c#2 [252] (byte*~) debug_print_init::$92 ← (byte*~) debug_print_init::$91 + (byte) debug_print_init::j#2 [253] *((byte*~) debug_print_init::$92) ← (byte) debug_print_init::col#0 [254] (byte) debug_print_init::j#1 ← ++ (byte) debug_print_init::j#2 @@ -4936,7 +4936,7 @@ debug_print_init::@return: scope:[debug_print_init] from debug_print_init::@3 [259] return to:@return print_str_at: scope:[print_str_at] from debug_print_init::@10 debug_print_init::@11 debug_print_init::@12 debug_print_init::@13 debug_print_init::@14 debug_print_init::@15 debug_print_init::@16 debug_print_init::@5 debug_print_init::@6 debug_print_init::@7 debug_print_init::@8 debug_print_init::@9 - [260] (byte*) print_str_at::at#15 ← phi( debug_print_init::@10/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 18 debug_print_init::@11/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 19 debug_print_init::@12/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 20 debug_print_init::@13/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 21 debug_print_init::@14/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 22 debug_print_init::@15/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 23 debug_print_init::@16/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24 debug_print_init::@5/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 34 debug_print_init::@6/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 34 debug_print_init::@7/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 34 debug_print_init::@8/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 16 debug_print_init::@9/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 17 ) + [260] (byte*) print_str_at::at#15 ← phi( debug_print_init::@10/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $12 debug_print_init::@11/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $13 debug_print_init::@12/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $14 debug_print_init::@13/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $15 debug_print_init::@14/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $16 debug_print_init::@15/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $17 debug_print_init::@16/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18 debug_print_init::@5/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $22 debug_print_init::@6/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) $22 debug_print_init::@7/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) $22 debug_print_init::@8/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $10 debug_print_init::@9/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $11 ) [260] (byte*) print_str_at::str#15 ← phi( debug_print_init::@10/(const string) debug_print_init::str5 debug_print_init::@11/(const string) debug_print_init::str6 debug_print_init::@12/(const string) debug_print_init::str7 debug_print_init::@13/(const string) debug_print_init::str8 debug_print_init::@14/(const string) debug_print_init::str9 debug_print_init::@15/(const string) debug_print_init::str10 debug_print_init::@16/(const string) debug_print_init::str11 debug_print_init::@5/(const string) debug_print_init::str debug_print_init::@6/(const string) debug_print_init::str1 debug_print_init::@7/(const string) debug_print_init::str2 debug_print_init::@8/(const string) debug_print_init::str3 debug_print_init::@9/(const string) debug_print_init::str4 ) to:print_str_at::@1 print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2 @@ -4959,17 +4959,17 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 [268] (byte*) print_cls::sc#2 ← phi( print_cls/(const byte*) print_line_cursor#0 print_cls::@1/(byte*) print_cls::sc#1 ) [269] *((byte*) print_cls::sc#2) ← (byte) ' ' [270] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [271] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [271] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [272] return to:@return sprites_init: scope:[sprites_init] from main - [273] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 + [273] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff to:sprites_init::@1 sprites_init::@1: scope:[sprites_init] from sprites_init sprites_init::@1 [274] (byte) sprites_init::i#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 0 sprites_init::@1/(byte) sprites_init::i#1 ) - [275] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 + [275] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 [276] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0 [277] (byte) sprites_init::i#1 ← ++ (byte) sprites_init::i#2 [278] if((byte) sprites_init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto sprites_init::@1 @@ -5805,21 +5805,21 @@ anim: { jmp b4 //SEG37 anim::@4 b4: - //SEG38 [23] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG38 [23] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto anim::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 jmp b7 //SEG39 anim::@7 b7: - //SEG40 [24] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto anim::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG40 [24] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fe) goto anim::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$fe bne b7 jmp b10 //SEG41 anim::@10 b10: - //SEG42 [25] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 253) goto anim::@10 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG42 [25] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fd) goto anim::@10 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$fd bne b10 @@ -5904,7 +5904,7 @@ anim: { lda i asl sta i2 - //SEG69 [45] (byte/word/signed word/dword/signed dword~) anim::$8 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) xp#0) -- vbuz1=vbuc1_plus__deref_pbuc2 + //SEG69 [45] (byte/word/signed word/dword/signed dword~) anim::$8 ← (byte/word/signed word/dword/signed dword) $80 + (byte)*((const signed byte*) xp#0) -- vbuz1=vbuc1_plus__deref_pbuc2 lda #$80 clc adc xp @@ -5913,7 +5913,7 @@ anim: { lda _8 ldy i2 sta SPRITES_XPOS,y - //SEG71 [47] (byte/word/signed word/dword/signed dword~) anim::$10 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) yp#0) -- vbuz1=vbuc1_plus__deref_pbuc2 + //SEG71 [47] (byte/word/signed word/dword/signed dword~) anim::$10 ← (byte/word/signed word/dword/signed dword) $80 + (byte)*((const signed byte*) yp#0) -- vbuz1=vbuc1_plus__deref_pbuc2 lda #$80 clc adc yp @@ -6009,7 +6009,7 @@ debug_print: { //SEG89 [58] call print_sbyte_at //SEG90 [114] phi from debug_print::print_sbyte_pos1 to print_sbyte_at [phi:debug_print::print_sbyte_pos1->print_sbyte_at] print_sbyte_at_from_print_sbyte_pos1: - //SEG91 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos1_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos1_col#0 [phi:debug_print::print_sbyte_pos1->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG91 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos1_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos1_col#0 [phi:debug_print::print_sbyte_pos1->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos1_row*$28+print_sbyte_pos1_col @@ -6031,7 +6031,7 @@ debug_print: { //SEG97 [61] call print_sbyte_at //SEG98 [114] phi from debug_print::print_sbyte_pos2 to print_sbyte_at [phi:debug_print::print_sbyte_pos2->print_sbyte_at] print_sbyte_at_from_print_sbyte_pos2: - //SEG99 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos2_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos2_col#0 [phi:debug_print::print_sbyte_pos2->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG99 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos2_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos2_col#0 [phi:debug_print::print_sbyte_pos2->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos2_row*$28+print_sbyte_pos2_col @@ -6046,7 +6046,7 @@ debug_print: { //SEG103 [63] call print_sbyte_at //SEG104 [114] phi from debug_print::print_sbyte_pos3 to print_sbyte_at [phi:debug_print::print_sbyte_pos3->print_sbyte_at] print_sbyte_at_from_print_sbyte_pos3: - //SEG105 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos3_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos3_col#0 [phi:debug_print::print_sbyte_pos3->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG105 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos3_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos3_col#0 [phi:debug_print::print_sbyte_pos3->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos3_row*$28+print_sbyte_pos3_col @@ -6070,7 +6070,7 @@ debug_print: { //SEG111 [66] call print_sbyte_at //SEG112 [114] phi from debug_print::print_sbyte_pos4 to print_sbyte_at [phi:debug_print::print_sbyte_pos4->print_sbyte_at] print_sbyte_at_from_print_sbyte_pos4: - //SEG113 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos4_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos4_col#0 [phi:debug_print::print_sbyte_pos4->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG113 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos4_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos4_col#0 [phi:debug_print::print_sbyte_pos4->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos4_row*$28+print_sbyte_pos4_col @@ -6092,7 +6092,7 @@ debug_print: { //SEG119 [69] call print_sbyte_at //SEG120 [114] phi from debug_print::print_sbyte_pos5 to print_sbyte_at [phi:debug_print::print_sbyte_pos5->print_sbyte_at] print_sbyte_at_from_print_sbyte_pos5: - //SEG121 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos5_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos5_col#0 [phi:debug_print::print_sbyte_pos5->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG121 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos5_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos5_col#0 [phi:debug_print::print_sbyte_pos5->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos5_row*$28+print_sbyte_pos5_col @@ -6114,7 +6114,7 @@ debug_print: { //SEG127 [72] call print_sbyte_at //SEG128 [114] phi from debug_print::print_sbyte_pos6 to print_sbyte_at [phi:debug_print::print_sbyte_pos6->print_sbyte_at] print_sbyte_at_from_print_sbyte_pos6: - //SEG129 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos6_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos6_col#0 [phi:debug_print::print_sbyte_pos6->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG129 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos6_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos6_col#0 [phi:debug_print::print_sbyte_pos6->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos6_row*$28+print_sbyte_pos6_col @@ -6136,7 +6136,7 @@ debug_print: { //SEG135 [75] call print_sbyte_at //SEG136 [114] phi from debug_print::print_sbyte_pos7 to print_sbyte_at [phi:debug_print::print_sbyte_pos7->print_sbyte_at] print_sbyte_at_from_print_sbyte_pos7: - //SEG137 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos7_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos7_col#0 [phi:debug_print::print_sbyte_pos7->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG137 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos7_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos7_col#0 [phi:debug_print::print_sbyte_pos7->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos7_row*$28+print_sbyte_pos7_col @@ -6158,7 +6158,7 @@ debug_print: { //SEG143 [78] call print_sbyte_at //SEG144 [114] phi from debug_print::print_sbyte_pos8 to print_sbyte_at [phi:debug_print::print_sbyte_pos8->print_sbyte_at] print_sbyte_at_from_print_sbyte_pos8: - //SEG145 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos8_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos8_col#0 [phi:debug_print::print_sbyte_pos8->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG145 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos8_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos8_col#0 [phi:debug_print::print_sbyte_pos8->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos8_row*$28+print_sbyte_pos8_col @@ -6180,7 +6180,7 @@ debug_print: { //SEG151 [81] call print_sbyte_at //SEG152 [114] phi from debug_print::print_sbyte_pos9 to print_sbyte_at [phi:debug_print::print_sbyte_pos9->print_sbyte_at] print_sbyte_at_from_print_sbyte_pos9: - //SEG153 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos9_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos9_col#0 [phi:debug_print::print_sbyte_pos9->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG153 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos9_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos9_col#0 [phi:debug_print::print_sbyte_pos9->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos9_row*$28+print_sbyte_pos9_col @@ -6202,7 +6202,7 @@ debug_print: { //SEG159 [84] call print_sbyte_at //SEG160 [114] phi from debug_print::print_sbyte_pos10 to print_sbyte_at [phi:debug_print::print_sbyte_pos10->print_sbyte_at] print_sbyte_at_from_print_sbyte_pos10: - //SEG161 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos10_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos10_col#0 [phi:debug_print::print_sbyte_pos10->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG161 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos10_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos10_col#0 [phi:debug_print::print_sbyte_pos10->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos10_row*$28+print_sbyte_pos10_col @@ -6224,7 +6224,7 @@ debug_print: { //SEG167 [87] call print_sbyte_at //SEG168 [114] phi from debug_print::print_sbyte_pos11 to print_sbyte_at [phi:debug_print::print_sbyte_pos11->print_sbyte_at] print_sbyte_at_from_print_sbyte_pos11: - //SEG169 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos11_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos11_col#0 [phi:debug_print::print_sbyte_pos11->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG169 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos11_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos11_col#0 [phi:debug_print::print_sbyte_pos11->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos11_row*$28+print_sbyte_pos11_col @@ -6246,7 +6246,7 @@ debug_print: { //SEG175 [90] call print_sbyte_at //SEG176 [114] phi from debug_print::print_sbyte_pos12 to print_sbyte_at [phi:debug_print::print_sbyte_pos12->print_sbyte_at] print_sbyte_at_from_print_sbyte_pos12: - //SEG177 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos12_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos12_col#0 [phi:debug_print::print_sbyte_pos12->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG177 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos12_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos12_col#0 [phi:debug_print::print_sbyte_pos12->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos12_row*$28+print_sbyte_pos12_col @@ -6290,7 +6290,7 @@ debug_print: { jmp b27 //SEG192 debug_print::@27 b27: - //SEG193 [95] (byte*) print_sbyte_at::at#16 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print::c#2 -- pbuz1=pbuc1_plus_vbuz2 + //SEG193 [95] (byte*) print_sbyte_at::at#16 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print::c#2 -- pbuz1=pbuc1_plus_vbuz2 lda c clc adc #print_str_at] print_str_at_from_b5: - //SEG343 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 34 [phi:debug_print_init::@5->print_str_at#0] -- pbuz1=pbuc1 + //SEG343 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $22 [phi:debug_print_init::@5->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$22 @@ -7063,7 +7063,7 @@ debug_print_init: { //SEG347 [194] call print_str_at //SEG348 [260] phi from debug_print_init::@6 to print_str_at [phi:debug_print_init::@6->print_str_at] print_str_at_from_b6: - //SEG349 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 34 [phi:debug_print_init::@6->print_str_at#0] -- pbuz1=pbuc1 + //SEG349 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) $22 [phi:debug_print_init::@6->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*1+$22 @@ -7082,7 +7082,7 @@ debug_print_init: { //SEG353 [196] call print_str_at //SEG354 [260] phi from debug_print_init::@7 to print_str_at [phi:debug_print_init::@7->print_str_at] print_str_at_from_b7: - //SEG355 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 34 [phi:debug_print_init::@7->print_str_at#0] -- pbuz1=pbuc1 + //SEG355 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) $22 [phi:debug_print_init::@7->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*2+$22 @@ -7101,7 +7101,7 @@ debug_print_init: { //SEG359 [198] call print_str_at //SEG360 [260] phi from debug_print_init::@8 to print_str_at [phi:debug_print_init::@8->print_str_at] print_str_at_from_b8: - //SEG361 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:debug_print_init::@8->print_str_at#0] -- pbuz1=pbuc1 + //SEG361 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $10 [phi:debug_print_init::@8->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$10 @@ -7120,7 +7120,7 @@ debug_print_init: { //SEG365 [200] call print_str_at //SEG366 [260] phi from debug_print_init::@9 to print_str_at [phi:debug_print_init::@9->print_str_at] print_str_at_from_b9: - //SEG367 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 17 [phi:debug_print_init::@9->print_str_at#0] -- pbuz1=pbuc1 + //SEG367 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $11 [phi:debug_print_init::@9->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$11 @@ -7139,7 +7139,7 @@ debug_print_init: { //SEG371 [202] call print_str_at //SEG372 [260] phi from debug_print_init::@10 to print_str_at [phi:debug_print_init::@10->print_str_at] print_str_at_from_b10: - //SEG373 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 18 [phi:debug_print_init::@10->print_str_at#0] -- pbuz1=pbuc1 + //SEG373 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $12 [phi:debug_print_init::@10->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$12 @@ -7158,7 +7158,7 @@ debug_print_init: { //SEG377 [204] call print_str_at //SEG378 [260] phi from debug_print_init::@11 to print_str_at [phi:debug_print_init::@11->print_str_at] print_str_at_from_b11: - //SEG379 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 19 [phi:debug_print_init::@11->print_str_at#0] -- pbuz1=pbuc1 + //SEG379 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $13 [phi:debug_print_init::@11->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$13 @@ -7177,7 +7177,7 @@ debug_print_init: { //SEG383 [206] call print_str_at //SEG384 [260] phi from debug_print_init::@12 to print_str_at [phi:debug_print_init::@12->print_str_at] print_str_at_from_b12: - //SEG385 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 20 [phi:debug_print_init::@12->print_str_at#0] -- pbuz1=pbuc1 + //SEG385 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $14 [phi:debug_print_init::@12->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$14 @@ -7196,7 +7196,7 @@ debug_print_init: { //SEG389 [208] call print_str_at //SEG390 [260] phi from debug_print_init::@13 to print_str_at [phi:debug_print_init::@13->print_str_at] print_str_at_from_b13: - //SEG391 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 21 [phi:debug_print_init::@13->print_str_at#0] -- pbuz1=pbuc1 + //SEG391 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $15 [phi:debug_print_init::@13->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$15 @@ -7215,7 +7215,7 @@ debug_print_init: { //SEG395 [210] call print_str_at //SEG396 [260] phi from debug_print_init::@14 to print_str_at [phi:debug_print_init::@14->print_str_at] print_str_at_from_b14: - //SEG397 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 22 [phi:debug_print_init::@14->print_str_at#0] -- pbuz1=pbuc1 + //SEG397 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $16 [phi:debug_print_init::@14->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$16 @@ -7234,7 +7234,7 @@ debug_print_init: { //SEG401 [212] call print_str_at //SEG402 [260] phi from debug_print_init::@15 to print_str_at [phi:debug_print_init::@15->print_str_at] print_str_at_from_b15: - //SEG403 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 23 [phi:debug_print_init::@15->print_str_at#0] -- pbuz1=pbuc1 + //SEG403 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $17 [phi:debug_print_init::@15->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$17 @@ -7253,7 +7253,7 @@ debug_print_init: { //SEG407 [214] call print_str_at //SEG408 [260] phi from debug_print_init::@16 to print_str_at [phi:debug_print_init::@16->print_str_at] print_str_at_from_b16: - //SEG409 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24 [phi:debug_print_init::@16->print_str_at#0] -- pbuz1=pbuc1 + //SEG409 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18 [phi:debug_print_init::@16->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$18 @@ -7301,7 +7301,7 @@ debug_print_init: { jmp b18 //SEG424 debug_print_init::@18 b18: - //SEG425 [219] (byte*) print_sbyte_at::at#1 ← (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print_init::c#2 -- pbuz1=pbuc1_plus_vbuz2 + //SEG425 [219] (byte*) print_sbyte_at::at#1 ← (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print_init::c#2 -- pbuz1=pbuc1_plus_vbuz2 lda c clc adc #print_line_cursor+$3e8 bne b1_from_b1 @@ -7664,7 +7664,7 @@ sprites_init: { .label SCREEN = $400 .label sprites_ptr = SCREEN+$3f8 .label i = $16 - //SEG503 [273] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 -- _deref_pbuc1=vbuc2 + //SEG503 [273] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff -- _deref_pbuc1=vbuc2 lda #$ff sta SPRITES_ENABLE //SEG504 [274] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] @@ -7679,7 +7679,7 @@ sprites_init: { jmp b1 //SEG508 sprites_init::@1 b1: - //SEG509 [275] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG509 [275] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 -- pbuc1_derefidx_vbuz1=vbuc2 ldy i lda #$ff&SPRITE/$40 sta sprites_ptr,y @@ -7819,11 +7819,11 @@ sprites_init: { REGISTER UPLIFT POTENTIAL REGISTERS Statement [15] *((const word*) psp1#0) ← ((word))(const byte*) mulf_sqr1#0 [ ] ( main:11 [ ] ) always clobbers reg byte a Statement [16] *((const word*) psp2#0) ← ((word))(const byte*) mulf_sqr2#0 [ ] ( main:11 [ ] ) always clobbers reg byte a -Statement [23] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ sx#10 sy#10 ] ( main:11::anim:19 [ sx#10 sy#10 ] ) always clobbers reg byte a +Statement [23] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto anim::@4 [ sx#10 sy#10 ] ( main:11::anim:19 [ sx#10 sy#10 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ sx#10 sx#3 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ sy#10 sy#3 ] -Statement [24] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto anim::@7 [ sx#10 sy#10 ] ( main:11::anim:19 [ sx#10 sy#10 ] ) always clobbers reg byte a -Statement [25] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 253) goto anim::@10 [ sx#10 sy#10 ] ( main:11::anim:19 [ sx#10 sy#10 ] ) always clobbers reg byte a +Statement [24] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fe) goto anim::@7 [ sx#10 sy#10 ] ( main:11::anim:19 [ sx#10 sy#10 ] ) always clobbers reg byte a +Statement [25] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fd) goto anim::@10 [ sx#10 sy#10 ] ( main:11::anim:19 [ sx#10 sy#10 ] ) always clobbers reg byte a Statement [38] *((const signed byte[8]) xrs#0 + (byte) anim::i#2) ← *((const signed byte*) xr#0) [ sx#10 sy#10 anim::i#2 ] ( main:11::anim:19 [ sx#10 sy#10 anim::i#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ anim::i#2 anim::i#1 ] Statement [39] *((const signed byte[8]) yrs#0 + (byte) anim::i#2) ← *((const signed byte*) yr#0) [ sx#10 sy#10 anim::i#2 ] ( main:11::anim:19 [ sx#10 sy#10 anim::i#2 ] ) always clobbers reg byte a @@ -7832,9 +7832,9 @@ Statement [41] *((const signed byte[8]) pps#0 + (byte) anim::i#2) ← *((const s Statement [42] *((const signed byte[8]) xps#0 + (byte) anim::i#2) ← *((const signed byte*) xp#0) [ sx#10 sy#10 anim::i#2 ] ( main:11::anim:19 [ sx#10 sy#10 anim::i#2 ] ) always clobbers reg byte a Statement [43] *((const signed byte[8]) yps#0 + (byte) anim::i#2) ← *((const signed byte*) yp#0) [ sx#10 sy#10 anim::i#2 ] ( main:11::anim:19 [ sx#10 sy#10 anim::i#2 ] ) always clobbers reg byte a Statement [44] (byte) anim::i2#0 ← (byte) anim::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ sx#10 sy#10 anim::i#2 anim::i2#0 ] ( main:11::anim:19 [ sx#10 sy#10 anim::i#2 anim::i2#0 ] ) always clobbers reg byte a -Statement [45] (byte/word/signed word/dword/signed dword~) anim::$8 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) xp#0) [ sx#10 sy#10 anim::i#2 anim::i2#0 anim::$8 ] ( main:11::anim:19 [ sx#10 sy#10 anim::i#2 anim::i2#0 anim::$8 ] ) always clobbers reg byte a +Statement [45] (byte/word/signed word/dword/signed dword~) anim::$8 ← (byte/word/signed word/dword/signed dword) $80 + (byte)*((const signed byte*) xp#0) [ sx#10 sy#10 anim::i#2 anim::i2#0 anim::$8 ] ( main:11::anim:19 [ sx#10 sy#10 anim::i#2 anim::i2#0 anim::$8 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:28 [ anim::i2#0 ] -Statement [47] (byte/word/signed word/dword/signed dword~) anim::$10 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) yp#0) [ sx#10 sy#10 anim::i#2 anim::i2#0 anim::$10 ] ( main:11::anim:19 [ sx#10 sy#10 anim::i#2 anim::i2#0 anim::$10 ] ) always clobbers reg byte a +Statement [47] (byte/word/signed word/dword/signed dword~) anim::$10 ← (byte/word/signed word/dword/signed dword) $80 + (byte)*((const signed byte*) yp#0) [ sx#10 sy#10 anim::i#2 anim::i2#0 anim::$10 ] ( main:11::anim:19 [ sx#10 sy#10 anim::i#2 anim::i2#0 anim::$10 ] ) always clobbers reg byte a Statement [51] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_GREY#0 [ sx#10 sy#10 ] ( main:11::anim:19 [ sx#10 sy#10 ] ) always clobbers reg byte a Statement [53] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ sx#10 sy#10 ] ( main:11::anim:19 [ sx#10 sy#10 ] ) always clobbers reg byte a Potential register analysis [55] sy#3 ← sy#10 - 3 missing fragment vbsxx=vbsxx_minus_vbuc1 allocation: reg byte x [ sy#10 sy#3 ] @@ -7846,11 +7846,11 @@ Statement [55] (signed byte) sy#3 ← (signed byte) sy#10 - (byte/signed byte/wo Statement [92] (byte*) print_sbyte_at::at#15 ← (const byte*) debug_print::at_line#0 + (byte) debug_print::c#2 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#15 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#15 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ debug_print::c#2 debug_print::c#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:6 [ debug_print::i#2 debug_print::i#1 ] -Statement [95] (byte*) print_sbyte_at::at#16 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print::c#2 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#16 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#16 ] ) always clobbers reg byte a -Statement [98] (byte*) print_sbyte_at::at#17 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print::c#2 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#17 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#17 ] ) always clobbers reg byte a -Statement [101] (byte*) print_sbyte_at::at#18 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) debug_print::c#2 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#18 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#18 ] ) always clobbers reg byte a -Statement [104] (byte*) print_sbyte_at::at#19 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) debug_print::c#2 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#19 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#19 ] ) always clobbers reg byte a -Statement [107] (byte*) print_sbyte_at::at#20 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) debug_print::c#2 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#20 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#20 ] ) always clobbers reg byte a +Statement [95] (byte*) print_sbyte_at::at#16 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print::c#2 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#16 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#16 ] ) always clobbers reg byte a +Statement [98] (byte*) print_sbyte_at::at#17 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print::c#2 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#17 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#17 ] ) always clobbers reg byte a +Statement [101] (byte*) print_sbyte_at::at#18 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) debug_print::c#2 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#18 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#18 ] ) always clobbers reg byte a +Statement [104] (byte*) print_sbyte_at::at#19 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) debug_print::c#2 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#19 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#19 ] ) always clobbers reg byte a +Statement [107] (byte*) print_sbyte_at::at#20 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) debug_print::c#2 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#20 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#20 ] ) always clobbers reg byte a Statement [110] (byte) debug_print::c#1 ← (byte) debug_print::c#2 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ sx#10 sy#10 debug_print::i#2 debug_print::c#1 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::i#2 debug_print::c#1 ] ) always clobbers reg byte a Statement [116] (byte*) print_char_at::at#1 ← (byte*) print_sbyte_at::at#21 [ print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] ( main:11::anim:19::debug_print:52::print_sbyte_at:58 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:61 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:63 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:66 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:69 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:72 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:75 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:78 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:81 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:84 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:87 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:90 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:94 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:97 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:100 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:103 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:106 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:109 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::debug_print_init:17::print_sbyte_at:218 [ debug_print_init::c#2 debug_print_init::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::debug_print_init:17::print_sbyte_at:221 [ debug_print_init::c#2 debug_print_init::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::debug_print_init:17::print_sbyte_at:224 [ debug_print_init::c#2 debug_print_init::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:9 [ print_sbyte_at::b#24 print_sbyte_at::b#0 print_sbyte_at::b#22 print_sbyte_at::b#16 print_sbyte_at::b#17 print_sbyte_at::b#18 print_sbyte_at::b#19 print_sbyte_at::b#20 print_sbyte_at::b#21 print_sbyte_at::b#4 print_sbyte_at::b#13 print_sbyte_at::b#14 print_sbyte_at::b#15 print_sbyte_at::b#5 print_sbyte_at::b#7 print_sbyte_at::b#8 print_sbyte_at::b#9 print_sbyte_at::b#10 print_sbyte_at::b#11 print_sbyte_at::b#12 print_sbyte_at::b#1 print_sbyte_at::b#2 print_sbyte_at::b#3 ] @@ -7870,7 +7870,7 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:14 [ d Statement [128] (byte~) print_byte_at::$0 ← (byte)(signed byte) print_sbyte_at::b#24 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] ( main:11::anim:19::debug_print:52::print_sbyte_at:58::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:61::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:63::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:66::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:69::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:72::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:75::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:78::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:81::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:84::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:87::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:90::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:94::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:97::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:100::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:103::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:106::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:109::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::debug_print_init:17::print_sbyte_at:218::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::debug_print_init:17::print_sbyte_at:221::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::debug_print_init:17::print_sbyte_at:224::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] ) always clobbers reg byte a Statement [130] (byte*) print_char_at::at#2 ← (byte*) print_byte_at::at#0 [ print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] ( main:11::anim:19::debug_print:52::print_sbyte_at:58::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:61::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:63::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:66::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:69::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:72::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:75::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:78::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:81::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:84::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:87::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:90::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:94::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:97::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:100::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:103::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:106::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:109::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::debug_print_init:17::print_sbyte_at:218::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::debug_print_init:17::print_sbyte_at:221::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::debug_print_init:17::print_sbyte_at:224::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:10 [ print_char_at::ch#4 print_char_at::ch#2 print_char_at::ch#3 ] -Statement [132] (byte~) print_byte_at::$2 ← (byte)(signed byte) print_sbyte_at::b#24 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_byte_at::at#0 print_byte_at::$2 ] ( main:11::anim:19::debug_print:52::print_sbyte_at:58::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:61::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:63::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:66::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:69::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:72::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:75::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:78::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:81::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:84::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:87::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:90::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:94::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:97::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:100::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:103::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:106::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:109::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::debug_print_init:17::print_sbyte_at:218::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::debug_print_init:17::print_sbyte_at:221::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::debug_print_init:17::print_sbyte_at:224::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_byte_at::at#0 print_byte_at::$2 ] ) always clobbers reg byte a +Statement [132] (byte~) print_byte_at::$2 ← (byte)(signed byte) print_sbyte_at::b#24 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_byte_at::at#0 print_byte_at::$2 ] ( main:11::anim:19::debug_print:52::print_sbyte_at:58::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:61::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:63::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:66::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:69::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:72::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:75::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:78::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:81::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:84::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:87::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:90::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:94::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:97::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:100::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:103::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:106::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:109::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::debug_print_init:17::print_sbyte_at:218::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::debug_print_init:17::print_sbyte_at:221::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::debug_print_init:17::print_sbyte_at:224::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_byte_at::at#0 print_byte_at::$2 ] ) always clobbers reg byte a Statement [133] (byte*) print_char_at::at#3 ← (byte*) print_byte_at::at#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 [ print_char_at::at#3 print_byte_at::$2 ] ( main:11::anim:19::debug_print:52::print_sbyte_at:58::print_byte_at:120 [ sx#10 sy#10 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:61::print_byte_at:120 [ sx#10 sy#10 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:63::print_byte_at:120 [ sx#10 sy#10 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:66::print_byte_at:120 [ sx#10 sy#10 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:69::print_byte_at:120 [ sx#10 sy#10 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:72::print_byte_at:120 [ sx#10 sy#10 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:75::print_byte_at:120 [ sx#10 sy#10 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:78::print_byte_at:120 [ sx#10 sy#10 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:81::print_byte_at:120 [ sx#10 sy#10 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:84::print_byte_at:120 [ sx#10 sy#10 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:87::print_byte_at:120 [ sx#10 sy#10 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:90::print_byte_at:120 [ sx#10 sy#10 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:94::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:97::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:100::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:103::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:106::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:109::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_char_at::at#3 print_byte_at::$2 ] main:11::debug_print_init:17::print_sbyte_at:218::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_char_at::at#3 print_byte_at::$2 ] main:11::debug_print_init:17::print_sbyte_at:221::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_char_at::at#3 print_byte_at::$2 ] main:11::debug_print_init:17::print_sbyte_at:224::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_char_at::at#3 print_byte_at::$2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:45 [ print_byte_at::$2 ] Statement asm { ldxzr C1: ldamulf_sqr1,x sec C2: sbcmulf_sqr2,x staC3+1 F1: ldamulf_sqr1,x sec F2: sbcmulf_sqr2,x staF3+1 I1: ldamulf_sqr1,x sec I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr I3: lda#0 clc G1: adcmulf_sqr1,x sec G2: sbcmulf_sqr2,x clc H1: adcmulf_sqr1,y sec H2: sbcmulf_sqr2,y stazr staPP+1 PP: ldaPERSP_Z stapp stapsp1 eor#$ff stapsp2 C3: lda#0 clc A1: adcmulf_sqr1,x sec A2: sbcmulf_sqr2,x clc B1: adcmulf_sqr1,y sec B2: sbcmulf_sqr2,y staxr staXX+1 clc F3: lda#0 clc D1: adcmulf_sqr1,x sec D2: sbcmulf_sqr2,x clc E1: adcmulf_sqr1,y sec E2: sbcmulf_sqr2,y stayr tay lda(psp1),y sec sbc(psp2),y stayp XX: ldy#0 lda(psp1),y sec sbc(psp2),y staxp } always clobbers reg byte a reg byte x reg byte y @@ -7978,9 +7978,9 @@ Statement [184] (signed byte~) calculate_matrix::$33 ← (signed byte~) calculat Statement [186] (signed byte~) calculate_matrix::$34 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t9#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::$34 ] ( main:11::anim:19::calculate_matrix:29 [ sx#10 sy#10 calculate_matrix::$34 ] ) always clobbers reg byte a Statement [216] (byte*) print_sbyte_at::at#0 ← (const byte*) debug_print_init::at_line#0 + (byte) debug_print_init::c#2 [ print_sbyte_at::at#0 debug_print_init::c#2 debug_print_init::i#2 ] ( main:11::debug_print_init:17 [ print_sbyte_at::at#0 debug_print_init::c#2 debug_print_init::i#2 ] ) always clobbers reg byte a Statement [217] (signed byte) print_sbyte_at::b#1 ← *((const signed byte[8]) xs#0 + (byte) debug_print_init::i#2) [ print_sbyte_at::b#1 print_sbyte_at::at#0 debug_print_init::c#2 debug_print_init::i#2 ] ( main:11::debug_print_init:17 [ print_sbyte_at::b#1 print_sbyte_at::at#0 debug_print_init::c#2 debug_print_init::i#2 ] ) always clobbers reg byte a -Statement [219] (byte*) print_sbyte_at::at#1 ← (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print_init::c#2 [ print_sbyte_at::at#1 debug_print_init::c#2 debug_print_init::i#2 ] ( main:11::debug_print_init:17 [ print_sbyte_at::at#1 debug_print_init::c#2 debug_print_init::i#2 ] ) always clobbers reg byte a +Statement [219] (byte*) print_sbyte_at::at#1 ← (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print_init::c#2 [ print_sbyte_at::at#1 debug_print_init::c#2 debug_print_init::i#2 ] ( main:11::debug_print_init:17 [ print_sbyte_at::at#1 debug_print_init::c#2 debug_print_init::i#2 ] ) always clobbers reg byte a Statement [220] (signed byte) print_sbyte_at::b#2 ← *((const signed byte[8]) ys#0 + (byte) debug_print_init::i#2) [ print_sbyte_at::b#2 print_sbyte_at::at#1 debug_print_init::c#2 debug_print_init::i#2 ] ( main:11::debug_print_init:17 [ print_sbyte_at::b#2 print_sbyte_at::at#1 debug_print_init::c#2 debug_print_init::i#2 ] ) always clobbers reg byte a -Statement [222] (byte*) print_sbyte_at::at#2 ← (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print_init::c#2 [ print_sbyte_at::at#2 debug_print_init::c#2 debug_print_init::i#2 ] ( main:11::debug_print_init:17 [ print_sbyte_at::at#2 debug_print_init::c#2 debug_print_init::i#2 ] ) always clobbers reg byte a +Statement [222] (byte*) print_sbyte_at::at#2 ← (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print_init::c#2 [ print_sbyte_at::at#2 debug_print_init::c#2 debug_print_init::i#2 ] ( main:11::debug_print_init:17 [ print_sbyte_at::at#2 debug_print_init::c#2 debug_print_init::i#2 ] ) always clobbers reg byte a Statement [223] (signed byte) print_sbyte_at::b#3 ← *((const signed byte[8]) zs#0 + (byte) debug_print_init::i#2) [ print_sbyte_at::b#3 print_sbyte_at::at#2 debug_print_init::c#2 debug_print_init::i#2 ] ( main:11::debug_print_init:17 [ print_sbyte_at::b#3 print_sbyte_at::at#2 debug_print_init::c#2 debug_print_init::i#2 ] ) always clobbers reg byte a Statement [226] (byte) debug_print_init::col#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) debug_print_init::i#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:15 [ debug_print_init::j#2 debug_print_init::j#1 ] @@ -7990,44 +7990,44 @@ Statement [228] (byte*~) debug_print_init::$60 ← (byte*~) debug_print_init::$5 Statement [229] *((byte*~) debug_print_init::$60) ← (byte) debug_print_init::col#0 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:15 [ debug_print_init::j#2 debug_print_init::j#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:81 [ debug_print_init::col#0 ] -Statement [230] (byte*~) debug_print_init::$63 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$63 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$63 ] ) always clobbers reg byte a +Statement [230] (byte*~) debug_print_init::$63 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$63 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$63 ] ) always clobbers reg byte a Statement [231] (byte*~) debug_print_init::$64 ← (byte*~) debug_print_init::$63 + (byte) debug_print_init::j#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$64 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$64 ] ) always clobbers reg byte a Statement [232] *((byte*~) debug_print_init::$64) ← (byte) debug_print_init::col#0 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ) always clobbers reg byte a reg byte y -Statement [233] (byte*~) debug_print_init::$67 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$67 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$67 ] ) always clobbers reg byte a +Statement [233] (byte*~) debug_print_init::$67 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$67 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$67 ] ) always clobbers reg byte a Statement [234] (byte*~) debug_print_init::$68 ← (byte*~) debug_print_init::$67 + (byte) debug_print_init::j#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$68 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$68 ] ) always clobbers reg byte a Statement [235] *((byte*~) debug_print_init::$68) ← (byte) debug_print_init::col#0 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ) always clobbers reg byte a reg byte y -Statement [236] (byte*~) debug_print_init::$71 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$71 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$71 ] ) always clobbers reg byte a +Statement [236] (byte*~) debug_print_init::$71 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$71 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$71 ] ) always clobbers reg byte a Statement [237] (byte*~) debug_print_init::$72 ← (byte*~) debug_print_init::$71 + (byte) debug_print_init::j#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$72 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$72 ] ) always clobbers reg byte a Statement [238] *((byte*~) debug_print_init::$72) ← (byte) debug_print_init::col#0 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ) always clobbers reg byte a reg byte y -Statement [239] (byte*~) debug_print_init::$75 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$75 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$75 ] ) always clobbers reg byte a +Statement [239] (byte*~) debug_print_init::$75 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$75 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$75 ] ) always clobbers reg byte a Statement [240] (byte*~) debug_print_init::$76 ← (byte*~) debug_print_init::$75 + (byte) debug_print_init::j#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$76 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$76 ] ) always clobbers reg byte a Statement [241] *((byte*~) debug_print_init::$76) ← (byte) debug_print_init::col#0 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ) always clobbers reg byte a reg byte y -Statement [242] (byte*~) debug_print_init::$79 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$79 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$79 ] ) always clobbers reg byte a +Statement [242] (byte*~) debug_print_init::$79 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$79 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$79 ] ) always clobbers reg byte a Statement [243] (byte*~) debug_print_init::$80 ← (byte*~) debug_print_init::$79 + (byte) debug_print_init::j#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$80 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$80 ] ) always clobbers reg byte a Statement [244] *((byte*~) debug_print_init::$80) ← (byte) debug_print_init::col#0 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ) always clobbers reg byte a reg byte y -Statement [245] (byte*~) debug_print_init::$83 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$83 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$83 ] ) always clobbers reg byte a +Statement [245] (byte*~) debug_print_init::$83 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 6 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$83 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$83 ] ) always clobbers reg byte a Statement [246] (byte*~) debug_print_init::$84 ← (byte*~) debug_print_init::$83 + (byte) debug_print_init::j#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$84 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$84 ] ) always clobbers reg byte a Statement [247] *((byte*~) debug_print_init::$84) ← (byte) debug_print_init::col#0 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ) always clobbers reg byte a reg byte y -Statement [248] (byte*~) debug_print_init::$87 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$87 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$87 ] ) always clobbers reg byte a +Statement [248] (byte*~) debug_print_init::$87 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$87 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$87 ] ) always clobbers reg byte a Statement [249] (byte*~) debug_print_init::$88 ← (byte*~) debug_print_init::$87 + (byte) debug_print_init::j#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$88 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$88 ] ) always clobbers reg byte a Statement [250] *((byte*~) debug_print_init::$88) ← (byte) debug_print_init::col#0 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ) always clobbers reg byte a reg byte y -Statement [251] (byte*~) debug_print_init::$91 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$91 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$91 ] ) always clobbers reg byte a +Statement [251] (byte*~) debug_print_init::$91 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$91 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$91 ] ) always clobbers reg byte a Statement [252] (byte*~) debug_print_init::$92 ← (byte*~) debug_print_init::$91 + (byte) debug_print_init::j#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$92 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$92 ] ) always clobbers reg byte a Statement [253] *((byte*~) debug_print_init::$92) ← (byte) debug_print_init::col#0 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 ] ) always clobbers reg byte a reg byte y Statement [256] (byte) debug_print_init::c#1 ← (byte) debug_print_init::c#2 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ debug_print_init::i#2 debug_print_init::c#1 ] ( main:11::debug_print_init:17 [ debug_print_init::i#2 debug_print_init::c#1 ] ) always clobbers reg byte a Statement [262] if(*((byte*) print_str_at::str#13)!=(byte) '@') goto print_str_at::@2 [ print_str_at::str#13 print_str_at::at#13 ] ( main:11::debug_print_init:17::print_str_at:192 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:194 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:196 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:198 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:200 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:202 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:204 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:206 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:208 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:210 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:212 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:214 [ print_str_at::str#13 print_str_at::at#13 ] ) always clobbers reg byte a reg byte y Statement [264] *((byte*) print_str_at::at#13) ← *((byte*) print_str_at::str#13) [ print_str_at::str#13 print_str_at::at#13 ] ( main:11::debug_print_init:17::print_str_at:192 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:194 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:196 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:198 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:200 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:202 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:204 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:206 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:208 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:210 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:212 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:214 [ print_str_at::str#13 print_str_at::at#13 ] ) always clobbers reg byte a reg byte y Statement [269] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:11::debug_print_init:17::print_cls:190 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [271] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:11::debug_print_init:17::print_cls:190 [ print_cls::sc#1 ] ) always clobbers reg byte a -Statement [273] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:11::sprites_init:14 [ ] ) always clobbers reg byte a -Statement [275] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ sprites_init::i#2 ] ( main:11::sprites_init:14 [ sprites_init::i#2 ] ) always clobbers reg byte a +Statement [271] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:11::debug_print_init:17::print_cls:190 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [273] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff [ ] ( main:11::sprites_init:14 [ ] ) always clobbers reg byte a +Statement [275] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 [ sprites_init::i#2 ] ( main:11::sprites_init:14 [ sprites_init::i#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:22 [ sprites_init::i#2 sprites_init::i#1 ] Statement [276] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0 [ sprites_init::i#2 ] ( main:11::sprites_init:14 [ sprites_init::i#2 ] ) always clobbers reg byte a Statement [15] *((const word*) psp1#0) ← ((word))(const byte*) mulf_sqr1#0 [ ] ( main:11 [ ] ) always clobbers reg byte a Statement [16] *((const word*) psp2#0) ← ((word))(const byte*) mulf_sqr2#0 [ ] ( main:11 [ ] ) always clobbers reg byte a -Statement [23] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ sx#10 sy#10 ] ( main:11::anim:19 [ sx#10 sy#10 ] ) always clobbers reg byte a -Statement [24] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto anim::@7 [ sx#10 sy#10 ] ( main:11::anim:19 [ sx#10 sy#10 ] ) always clobbers reg byte a -Statement [25] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 253) goto anim::@10 [ sx#10 sy#10 ] ( main:11::anim:19 [ sx#10 sy#10 ] ) always clobbers reg byte a +Statement [23] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto anim::@4 [ sx#10 sy#10 ] ( main:11::anim:19 [ sx#10 sy#10 ] ) always clobbers reg byte a +Statement [24] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fe) goto anim::@7 [ sx#10 sy#10 ] ( main:11::anim:19 [ sx#10 sy#10 ] ) always clobbers reg byte a +Statement [25] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fd) goto anim::@10 [ sx#10 sy#10 ] ( main:11::anim:19 [ sx#10 sy#10 ] ) always clobbers reg byte a Statement [38] *((const signed byte[8]) xrs#0 + (byte) anim::i#2) ← *((const signed byte*) xr#0) [ sx#10 sy#10 anim::i#2 ] ( main:11::anim:19 [ sx#10 sy#10 anim::i#2 ] ) always clobbers reg byte a reg byte y Statement [39] *((const signed byte[8]) yrs#0 + (byte) anim::i#2) ← *((const signed byte*) yr#0) [ sx#10 sy#10 anim::i#2 ] ( main:11::anim:19 [ sx#10 sy#10 anim::i#2 ] ) always clobbers reg byte a reg byte y Statement [40] *((const signed byte[8]) zrs#0 + (byte) anim::i#2) ← *((const signed byte*) zr#0) [ sx#10 sy#10 anim::i#2 ] ( main:11::anim:19 [ sx#10 sy#10 anim::i#2 ] ) always clobbers reg byte a reg byte y @@ -8035,23 +8035,23 @@ Statement [41] *((const signed byte[8]) pps#0 + (byte) anim::i#2) ← *((const s Statement [42] *((const signed byte[8]) xps#0 + (byte) anim::i#2) ← *((const signed byte*) xp#0) [ sx#10 sy#10 anim::i#2 ] ( main:11::anim:19 [ sx#10 sy#10 anim::i#2 ] ) always clobbers reg byte a reg byte y Statement [43] *((const signed byte[8]) yps#0 + (byte) anim::i#2) ← *((const signed byte*) yp#0) [ sx#10 sy#10 anim::i#2 ] ( main:11::anim:19 [ sx#10 sy#10 anim::i#2 ] ) always clobbers reg byte a reg byte y Statement [44] (byte) anim::i2#0 ← (byte) anim::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ sx#10 sy#10 anim::i#2 anim::i2#0 ] ( main:11::anim:19 [ sx#10 sy#10 anim::i#2 anim::i2#0 ] ) always clobbers reg byte a -Statement [45] (byte/word/signed word/dword/signed dword~) anim::$8 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) xp#0) [ sx#10 sy#10 anim::i#2 anim::i2#0 anim::$8 ] ( main:11::anim:19 [ sx#10 sy#10 anim::i#2 anim::i2#0 anim::$8 ] ) always clobbers reg byte a -Statement [47] (byte/word/signed word/dword/signed dword~) anim::$10 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) yp#0) [ sx#10 sy#10 anim::i#2 anim::i2#0 anim::$10 ] ( main:11::anim:19 [ sx#10 sy#10 anim::i#2 anim::i2#0 anim::$10 ] ) always clobbers reg byte a +Statement [45] (byte/word/signed word/dword/signed dword~) anim::$8 ← (byte/word/signed word/dword/signed dword) $80 + (byte)*((const signed byte*) xp#0) [ sx#10 sy#10 anim::i#2 anim::i2#0 anim::$8 ] ( main:11::anim:19 [ sx#10 sy#10 anim::i#2 anim::i2#0 anim::$8 ] ) always clobbers reg byte a +Statement [47] (byte/word/signed word/dword/signed dword~) anim::$10 ← (byte/word/signed word/dword/signed dword) $80 + (byte)*((const signed byte*) yp#0) [ sx#10 sy#10 anim::i#2 anim::i2#0 anim::$10 ] ( main:11::anim:19 [ sx#10 sy#10 anim::i#2 anim::i2#0 anim::$10 ] ) always clobbers reg byte a Statement [50] if((byte) anim::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto anim::@13 [ sx#10 sy#10 anim::i#1 ] ( main:11::anim:19 [ sx#10 sy#10 anim::i#1 ] ) always clobbers reg byte a Statement [51] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_GREY#0 [ sx#10 sy#10 ] ( main:11::anim:19 [ sx#10 sy#10 ] ) always clobbers reg byte a Statement [53] *((const byte*) BORDERCOL#0) ← (const byte) LIGHT_BLUE#0 [ sx#10 sy#10 ] ( main:11::anim:19 [ sx#10 sy#10 ] ) always clobbers reg byte a Statement [55] (signed byte) sy#3 ← (signed byte) sy#10 - (byte/signed byte/word/signed word/dword/signed dword) 3 [ sx#3 sy#3 ] ( main:11::anim:19 [ sx#3 sy#3 ] ) always clobbers reg byte a Statement [92] (byte*) print_sbyte_at::at#15 ← (const byte*) debug_print::at_line#0 + (byte) debug_print::c#2 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#15 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#15 ] ) always clobbers reg byte a Statement [93] (signed byte) print_sbyte_at::b#16 ← *((const signed byte[8]) xrs#0 + (byte) debug_print::i#2) [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#15 print_sbyte_at::b#16 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#15 print_sbyte_at::b#16 ] ) always clobbers reg byte a -Statement [95] (byte*) print_sbyte_at::at#16 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print::c#2 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#16 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#16 ] ) always clobbers reg byte a +Statement [95] (byte*) print_sbyte_at::at#16 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print::c#2 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#16 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#16 ] ) always clobbers reg byte a Statement [96] (signed byte) print_sbyte_at::b#17 ← *((const signed byte[8]) yrs#0 + (byte) debug_print::i#2) [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#16 print_sbyte_at::b#17 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#16 print_sbyte_at::b#17 ] ) always clobbers reg byte a -Statement [98] (byte*) print_sbyte_at::at#17 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print::c#2 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#17 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#17 ] ) always clobbers reg byte a +Statement [98] (byte*) print_sbyte_at::at#17 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print::c#2 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#17 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#17 ] ) always clobbers reg byte a Statement [99] (signed byte) print_sbyte_at::b#18 ← *((const signed byte[8]) zrs#0 + (byte) debug_print::i#2) [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#17 print_sbyte_at::b#18 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#17 print_sbyte_at::b#18 ] ) always clobbers reg byte a -Statement [101] (byte*) print_sbyte_at::at#18 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) debug_print::c#2 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#18 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#18 ] ) always clobbers reg byte a +Statement [101] (byte*) print_sbyte_at::at#18 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) debug_print::c#2 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#18 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#18 ] ) always clobbers reg byte a Statement [102] (signed byte) print_sbyte_at::b#19 ← *((const signed byte[8]) pps#0 + (byte) debug_print::i#2) [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#18 print_sbyte_at::b#19 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#18 print_sbyte_at::b#19 ] ) always clobbers reg byte a -Statement [104] (byte*) print_sbyte_at::at#19 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) debug_print::c#2 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#19 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#19 ] ) always clobbers reg byte a +Statement [104] (byte*) print_sbyte_at::at#19 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) debug_print::c#2 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#19 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#19 ] ) always clobbers reg byte a Statement [105] (signed byte) print_sbyte_at::b#20 ← *((const signed byte[8]) xps#0 + (byte) debug_print::i#2) [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#19 print_sbyte_at::b#20 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#19 print_sbyte_at::b#20 ] ) always clobbers reg byte a -Statement [107] (byte*) print_sbyte_at::at#20 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) debug_print::c#2 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#20 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#20 ] ) always clobbers reg byte a +Statement [107] (byte*) print_sbyte_at::at#20 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) debug_print::c#2 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#20 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#20 ] ) always clobbers reg byte a Statement [108] (signed byte) print_sbyte_at::b#21 ← *((const signed byte[8]) yps#0 + (byte) debug_print::i#2) [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#20 print_sbyte_at::b#21 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::at#20 print_sbyte_at::b#21 ] ) always clobbers reg byte a Statement [110] (byte) debug_print::c#1 ← (byte) debug_print::c#2 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ sx#10 sy#10 debug_print::i#2 debug_print::c#1 ] ( main:11::anim:19::debug_print:52 [ sx#10 sy#10 debug_print::i#2 debug_print::c#1 ] ) always clobbers reg byte a Statement [116] (byte*) print_char_at::at#1 ← (byte*) print_sbyte_at::at#21 [ print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] ( main:11::anim:19::debug_print:52::print_sbyte_at:58 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:61 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:63 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:66 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:69 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:72 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:75 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:78 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:81 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:84 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:87 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:90 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:94 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:97 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:100 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:103 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:106 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::anim:19::debug_print:52::print_sbyte_at:109 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::debug_print_init:17::print_sbyte_at:218 [ debug_print_init::c#2 debug_print_init::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::debug_print_init:17::print_sbyte_at:221 [ debug_print_init::c#2 debug_print_init::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] main:11::debug_print_init:17::print_sbyte_at:224 [ debug_print_init::c#2 debug_print_init::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 print_char_at::at#1 ] ) always clobbers reg byte a @@ -8061,7 +8061,7 @@ Statement [124] (signed byte) print_sbyte_at::b#0 ← - (signed byte) print_sbyt Statement [126] *((byte*) print_char_at::at#4) ← (byte) print_char_at::ch#4 [ ] ( main:11::anim:19::debug_print:52::print_sbyte_at:58::print_char_at:117 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:61::print_char_at:117 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:63::print_char_at:117 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:66::print_char_at:117 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:69::print_char_at:117 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:72::print_char_at:117 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:75::print_char_at:117 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:78::print_char_at:117 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:81::print_char_at:117 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:84::print_char_at:117 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:87::print_char_at:117 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:90::print_char_at:117 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:94::print_char_at:117 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:97::print_char_at:117 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:100::print_char_at:117 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:103::print_char_at:117 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:106::print_char_at:117 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:109::print_char_at:117 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::debug_print_init:17::print_sbyte_at:218::print_char_at:117 [ debug_print_init::c#2 debug_print_init::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::debug_print_init:17::print_sbyte_at:221::print_char_at:117 [ debug_print_init::c#2 debug_print_init::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::debug_print_init:17::print_sbyte_at:224::print_char_at:117 [ debug_print_init::c#2 debug_print_init::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:58::print_char_at:123 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:61::print_char_at:123 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:63::print_char_at:123 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:66::print_char_at:123 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:69::print_char_at:123 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:72::print_char_at:123 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:75::print_char_at:123 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:78::print_char_at:123 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:81::print_char_at:123 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:84::print_char_at:123 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:87::print_char_at:123 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:90::print_char_at:123 [ sx#10 sy#10 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:94::print_char_at:123 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:97::print_char_at:123 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:100::print_char_at:123 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:103::print_char_at:123 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:106::print_char_at:123 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:109::print_char_at:123 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::debug_print_init:17::print_sbyte_at:218::print_char_at:123 [ debug_print_init::c#2 debug_print_init::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::debug_print_init:17::print_sbyte_at:221::print_char_at:123 [ debug_print_init::c#2 debug_print_init::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::debug_print_init:17::print_sbyte_at:224::print_char_at:123 [ debug_print_init::c#2 debug_print_init::i#2 print_sbyte_at::b#22 print_sbyte_at::at#21 ] main:11::anim:19::debug_print:52::print_sbyte_at:58::print_byte_at:120::print_char_at:131 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 ] main:11::anim:19::debug_print:52::print_sbyte_at:61::print_byte_at:120::print_char_at:131 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 ] main:11::anim:19::debug_print:52::print_sbyte_at:63::print_byte_at:120::print_char_at:131 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 ] main:11::anim:19::debug_print:52::print_sbyte_at:66::print_byte_at:120::print_char_at:131 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 ] main:11::anim:19::debug_print:52::print_sbyte_at:69::print_byte_at:120::print_char_at:131 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 ] main:11::anim:19::debug_print:52::print_sbyte_at:72::print_byte_at:120::print_char_at:131 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 ] main:11::anim:19::debug_print:52::print_sbyte_at:75::print_byte_at:120::print_char_at:131 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 ] main:11::anim:19::debug_print:52::print_sbyte_at:78::print_byte_at:120::print_char_at:131 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 ] main:11::anim:19::debug_print:52::print_sbyte_at:81::print_byte_at:120::print_char_at:131 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 ] main:11::anim:19::debug_print:52::print_sbyte_at:84::print_byte_at:120::print_char_at:131 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 ] main:11::anim:19::debug_print:52::print_sbyte_at:87::print_byte_at:120::print_char_at:131 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 ] main:11::anim:19::debug_print:52::print_sbyte_at:90::print_byte_at:120::print_char_at:131 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 ] main:11::anim:19::debug_print:52::print_sbyte_at:94::print_byte_at:120::print_char_at:131 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 ] main:11::anim:19::debug_print:52::print_sbyte_at:97::print_byte_at:120::print_char_at:131 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 ] main:11::anim:19::debug_print:52::print_sbyte_at:100::print_byte_at:120::print_char_at:131 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 ] main:11::anim:19::debug_print:52::print_sbyte_at:103::print_byte_at:120::print_char_at:131 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 ] main:11::anim:19::debug_print:52::print_sbyte_at:106::print_byte_at:120::print_char_at:131 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 ] main:11::anim:19::debug_print:52::print_sbyte_at:109::print_byte_at:120::print_char_at:131 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 ] main:11::debug_print_init:17::print_sbyte_at:218::print_byte_at:120::print_char_at:131 [ debug_print_init::c#2 debug_print_init::i#2 print_sbyte_at::b#24 print_byte_at::at#0 ] main:11::debug_print_init:17::print_sbyte_at:221::print_byte_at:120::print_char_at:131 [ debug_print_init::c#2 debug_print_init::i#2 print_sbyte_at::b#24 print_byte_at::at#0 ] main:11::debug_print_init:17::print_sbyte_at:224::print_byte_at:120::print_char_at:131 [ debug_print_init::c#2 debug_print_init::i#2 print_sbyte_at::b#24 print_byte_at::at#0 ] main:11::anim:19::debug_print:52::print_sbyte_at:58::print_byte_at:120::print_char_at:135 [ sx#10 sy#10 ] main:11::anim:19::debug_print:52::print_sbyte_at:61::print_byte_at:120::print_char_at:135 [ sx#10 sy#10 ] main:11::anim:19::debug_print:52::print_sbyte_at:63::print_byte_at:120::print_char_at:135 [ sx#10 sy#10 ] main:11::anim:19::debug_print:52::print_sbyte_at:66::print_byte_at:120::print_char_at:135 [ sx#10 sy#10 ] main:11::anim:19::debug_print:52::print_sbyte_at:69::print_byte_at:120::print_char_at:135 [ sx#10 sy#10 ] main:11::anim:19::debug_print:52::print_sbyte_at:72::print_byte_at:120::print_char_at:135 [ sx#10 sy#10 ] main:11::anim:19::debug_print:52::print_sbyte_at:75::print_byte_at:120::print_char_at:135 [ sx#10 sy#10 ] main:11::anim:19::debug_print:52::print_sbyte_at:78::print_byte_at:120::print_char_at:135 [ sx#10 sy#10 ] main:11::anim:19::debug_print:52::print_sbyte_at:81::print_byte_at:120::print_char_at:135 [ sx#10 sy#10 ] main:11::anim:19::debug_print:52::print_sbyte_at:84::print_byte_at:120::print_char_at:135 [ sx#10 sy#10 ] main:11::anim:19::debug_print:52::print_sbyte_at:87::print_byte_at:120::print_char_at:135 [ sx#10 sy#10 ] main:11::anim:19::debug_print:52::print_sbyte_at:90::print_byte_at:120::print_char_at:135 [ sx#10 sy#10 ] main:11::anim:19::debug_print:52::print_sbyte_at:94::print_byte_at:120::print_char_at:135 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:97::print_byte_at:120::print_char_at:135 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:100::print_byte_at:120::print_char_at:135 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:103::print_byte_at:120::print_char_at:135 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:106::print_byte_at:120::print_char_at:135 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:109::print_byte_at:120::print_char_at:135 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 ] main:11::debug_print_init:17::print_sbyte_at:218::print_byte_at:120::print_char_at:135 [ debug_print_init::c#2 debug_print_init::i#2 ] main:11::debug_print_init:17::print_sbyte_at:221::print_byte_at:120::print_char_at:135 [ debug_print_init::c#2 debug_print_init::i#2 ] main:11::debug_print_init:17::print_sbyte_at:224::print_byte_at:120::print_char_at:135 [ debug_print_init::c#2 debug_print_init::i#2 ] ) always clobbers reg byte a reg byte y Statement [128] (byte~) print_byte_at::$0 ← (byte)(signed byte) print_sbyte_at::b#24 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] ( main:11::anim:19::debug_print:52::print_sbyte_at:58::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:61::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:63::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:66::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:69::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:72::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:75::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:78::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:81::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:84::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:87::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:90::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:94::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:97::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:100::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:103::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:106::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::anim:19::debug_print:52::print_sbyte_at:109::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::debug_print_init:17::print_sbyte_at:218::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::debug_print_init:17::print_sbyte_at:221::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] main:11::debug_print_init:17::print_sbyte_at:224::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_byte_at::$0 ] ) always clobbers reg byte a Statement [130] (byte*) print_char_at::at#2 ← (byte*) print_byte_at::at#0 [ print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] ( main:11::anim:19::debug_print:52::print_sbyte_at:58::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:61::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:63::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:66::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:69::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:72::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:75::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:78::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:81::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:84::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:87::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:90::print_byte_at:120 [ sx#10 sy#10 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:94::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:97::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:100::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:103::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:106::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::anim:19::debug_print:52::print_sbyte_at:109::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::debug_print_init:17::print_sbyte_at:218::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::debug_print_init:17::print_sbyte_at:221::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:11::debug_print_init:17::print_sbyte_at:224::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_sbyte_at::b#24 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] ) always clobbers reg byte a -Statement [132] (byte~) print_byte_at::$2 ← (byte)(signed byte) print_sbyte_at::b#24 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_byte_at::at#0 print_byte_at::$2 ] ( main:11::anim:19::debug_print:52::print_sbyte_at:58::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:61::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:63::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:66::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:69::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:72::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:75::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:78::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:81::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:84::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:87::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:90::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:94::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:97::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:100::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:103::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:106::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:109::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::debug_print_init:17::print_sbyte_at:218::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::debug_print_init:17::print_sbyte_at:221::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::debug_print_init:17::print_sbyte_at:224::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_byte_at::at#0 print_byte_at::$2 ] ) always clobbers reg byte a +Statement [132] (byte~) print_byte_at::$2 ← (byte)(signed byte) print_sbyte_at::b#24 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_byte_at::at#0 print_byte_at::$2 ] ( main:11::anim:19::debug_print:52::print_sbyte_at:58::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:61::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:63::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:66::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:69::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:72::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:75::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:78::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:81::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:84::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:87::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:90::print_byte_at:120 [ sx#10 sy#10 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:94::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:97::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:100::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:103::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:106::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:109::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::debug_print_init:17::print_sbyte_at:218::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::debug_print_init:17::print_sbyte_at:221::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_byte_at::at#0 print_byte_at::$2 ] main:11::debug_print_init:17::print_sbyte_at:224::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_byte_at::at#0 print_byte_at::$2 ] ) always clobbers reg byte a Statement [133] (byte*) print_char_at::at#3 ← (byte*) print_byte_at::at#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 [ print_char_at::at#3 print_byte_at::$2 ] ( main:11::anim:19::debug_print:52::print_sbyte_at:58::print_byte_at:120 [ sx#10 sy#10 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:61::print_byte_at:120 [ sx#10 sy#10 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:63::print_byte_at:120 [ sx#10 sy#10 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:66::print_byte_at:120 [ sx#10 sy#10 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:69::print_byte_at:120 [ sx#10 sy#10 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:72::print_byte_at:120 [ sx#10 sy#10 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:75::print_byte_at:120 [ sx#10 sy#10 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:78::print_byte_at:120 [ sx#10 sy#10 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:81::print_byte_at:120 [ sx#10 sy#10 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:84::print_byte_at:120 [ sx#10 sy#10 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:87::print_byte_at:120 [ sx#10 sy#10 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:90::print_byte_at:120 [ sx#10 sy#10 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:94::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:97::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:100::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:103::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:106::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_char_at::at#3 print_byte_at::$2 ] main:11::anim:19::debug_print:52::print_sbyte_at:109::print_byte_at:120 [ sx#10 sy#10 debug_print::c#2 debug_print::i#2 print_char_at::at#3 print_byte_at::$2 ] main:11::debug_print_init:17::print_sbyte_at:218::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_char_at::at#3 print_byte_at::$2 ] main:11::debug_print_init:17::print_sbyte_at:221::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_char_at::at#3 print_byte_at::$2 ] main:11::debug_print_init:17::print_sbyte_at:224::print_byte_at:120 [ debug_print_init::c#2 debug_print_init::i#2 print_char_at::at#3 print_byte_at::$2 ] ) always clobbers reg byte a Statement asm { ldxzr C1: ldamulf_sqr1,x sec C2: sbcmulf_sqr2,x staC3+1 F1: ldamulf_sqr1,x sec F2: sbcmulf_sqr2,x staF3+1 I1: ldamulf_sqr1,x sec I2: sbcmulf_sqr2,x staI3+1 ldxxr ldyyr I3: lda#0 clc G1: adcmulf_sqr1,x sec G2: sbcmulf_sqr2,x clc H1: adcmulf_sqr1,y sec H2: sbcmulf_sqr2,y stazr staPP+1 PP: ldaPERSP_Z stapp stapsp1 eor#$ff stapsp2 C3: lda#0 clc A1: adcmulf_sqr1,x sec A2: sbcmulf_sqr2,x clc B1: adcmulf_sqr1,y sec B2: sbcmulf_sqr2,y staxr staXX+1 clc F3: lda#0 clc D1: adcmulf_sqr1,x sec D2: sbcmulf_sqr2,x clc E1: adcmulf_sqr1,y sec E2: sbcmulf_sqr2,y stayr tay lda(psp1),y sec sbc(psp2),y stayp XX: ldy#0 lda(psp1),y sec sbc(psp2),y staxp } always clobbers reg byte a reg byte x reg byte y Statement asm { ldarotation_matrix+0 starotate_matrix.A1+1 eor#$ff starotate_matrix.A2+1 ldarotation_matrix+1 starotate_matrix.B1+1 eor#$ff starotate_matrix.B2+1 ldarotation_matrix+2 starotate_matrix.C1+1 eor#$ff starotate_matrix.C2+1 ldarotation_matrix+3 starotate_matrix.D1+1 eor#$ff starotate_matrix.D2+1 ldarotation_matrix+4 starotate_matrix.E1+1 eor#$ff starotate_matrix.E2+1 ldarotation_matrix+5 starotate_matrix.F1+1 eor#$ff starotate_matrix.F2+1 ldarotation_matrix+6 starotate_matrix.G1+1 eor#$ff starotate_matrix.G2+1 ldarotation_matrix+7 starotate_matrix.H1+1 eor#$ff starotate_matrix.H2+1 ldarotation_matrix+8 starotate_matrix.I1+1 eor#$ff starotate_matrix.I2+1 } always clobbers reg byte a @@ -8152,45 +8152,45 @@ Statement [184] (signed byte~) calculate_matrix::$33 ← (signed byte~) calculat Statement [186] (signed byte~) calculate_matrix::$34 ← *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t9#0) + *((const signed byte*) COSH#0 + (signed byte) calculate_matrix::t10#0) [ calculate_matrix::$34 ] ( main:11::anim:19::calculate_matrix:29 [ sx#10 sy#10 calculate_matrix::$34 ] ) always clobbers reg byte a Statement [216] (byte*) print_sbyte_at::at#0 ← (const byte*) debug_print_init::at_line#0 + (byte) debug_print_init::c#2 [ print_sbyte_at::at#0 debug_print_init::c#2 debug_print_init::i#2 ] ( main:11::debug_print_init:17 [ print_sbyte_at::at#0 debug_print_init::c#2 debug_print_init::i#2 ] ) always clobbers reg byte a Statement [217] (signed byte) print_sbyte_at::b#1 ← *((const signed byte[8]) xs#0 + (byte) debug_print_init::i#2) [ print_sbyte_at::b#1 print_sbyte_at::at#0 debug_print_init::c#2 debug_print_init::i#2 ] ( main:11::debug_print_init:17 [ print_sbyte_at::b#1 print_sbyte_at::at#0 debug_print_init::c#2 debug_print_init::i#2 ] ) always clobbers reg byte a -Statement [219] (byte*) print_sbyte_at::at#1 ← (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print_init::c#2 [ print_sbyte_at::at#1 debug_print_init::c#2 debug_print_init::i#2 ] ( main:11::debug_print_init:17 [ print_sbyte_at::at#1 debug_print_init::c#2 debug_print_init::i#2 ] ) always clobbers reg byte a +Statement [219] (byte*) print_sbyte_at::at#1 ← (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print_init::c#2 [ print_sbyte_at::at#1 debug_print_init::c#2 debug_print_init::i#2 ] ( main:11::debug_print_init:17 [ print_sbyte_at::at#1 debug_print_init::c#2 debug_print_init::i#2 ] ) always clobbers reg byte a Statement [220] (signed byte) print_sbyte_at::b#2 ← *((const signed byte[8]) ys#0 + (byte) debug_print_init::i#2) [ print_sbyte_at::b#2 print_sbyte_at::at#1 debug_print_init::c#2 debug_print_init::i#2 ] ( main:11::debug_print_init:17 [ print_sbyte_at::b#2 print_sbyte_at::at#1 debug_print_init::c#2 debug_print_init::i#2 ] ) always clobbers reg byte a -Statement [222] (byte*) print_sbyte_at::at#2 ← (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print_init::c#2 [ print_sbyte_at::at#2 debug_print_init::c#2 debug_print_init::i#2 ] ( main:11::debug_print_init:17 [ print_sbyte_at::at#2 debug_print_init::c#2 debug_print_init::i#2 ] ) always clobbers reg byte a +Statement [222] (byte*) print_sbyte_at::at#2 ← (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print_init::c#2 [ print_sbyte_at::at#2 debug_print_init::c#2 debug_print_init::i#2 ] ( main:11::debug_print_init:17 [ print_sbyte_at::at#2 debug_print_init::c#2 debug_print_init::i#2 ] ) always clobbers reg byte a Statement [223] (signed byte) print_sbyte_at::b#3 ← *((const signed byte[8]) zs#0 + (byte) debug_print_init::i#2) [ print_sbyte_at::b#3 print_sbyte_at::at#2 debug_print_init::c#2 debug_print_init::i#2 ] ( main:11::debug_print_init:17 [ print_sbyte_at::b#3 print_sbyte_at::at#2 debug_print_init::c#2 debug_print_init::i#2 ] ) always clobbers reg byte a Statement [226] (byte) debug_print_init::col#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) debug_print_init::i#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ) always clobbers reg byte a Statement [227] (byte*~) debug_print_init::$59 ← (const byte*) debug_print_init::at_cols#0 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$59 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$59 ] ) always clobbers reg byte a Statement [228] (byte*~) debug_print_init::$60 ← (byte*~) debug_print_init::$59 + (byte) debug_print_init::j#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$60 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$60 ] ) always clobbers reg byte a Statement [229] *((byte*~) debug_print_init::$60) ← (byte) debug_print_init::col#0 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ) always clobbers reg byte a reg byte y -Statement [230] (byte*~) debug_print_init::$63 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$63 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$63 ] ) always clobbers reg byte a +Statement [230] (byte*~) debug_print_init::$63 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$63 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$63 ] ) always clobbers reg byte a Statement [231] (byte*~) debug_print_init::$64 ← (byte*~) debug_print_init::$63 + (byte) debug_print_init::j#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$64 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$64 ] ) always clobbers reg byte a Statement [232] *((byte*~) debug_print_init::$64) ← (byte) debug_print_init::col#0 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ) always clobbers reg byte a reg byte y -Statement [233] (byte*~) debug_print_init::$67 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$67 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$67 ] ) always clobbers reg byte a +Statement [233] (byte*~) debug_print_init::$67 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$67 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$67 ] ) always clobbers reg byte a Statement [234] (byte*~) debug_print_init::$68 ← (byte*~) debug_print_init::$67 + (byte) debug_print_init::j#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$68 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$68 ] ) always clobbers reg byte a Statement [235] *((byte*~) debug_print_init::$68) ← (byte) debug_print_init::col#0 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ) always clobbers reg byte a reg byte y -Statement [236] (byte*~) debug_print_init::$71 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$71 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$71 ] ) always clobbers reg byte a +Statement [236] (byte*~) debug_print_init::$71 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$71 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$71 ] ) always clobbers reg byte a Statement [237] (byte*~) debug_print_init::$72 ← (byte*~) debug_print_init::$71 + (byte) debug_print_init::j#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$72 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$72 ] ) always clobbers reg byte a Statement [238] *((byte*~) debug_print_init::$72) ← (byte) debug_print_init::col#0 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ) always clobbers reg byte a reg byte y -Statement [239] (byte*~) debug_print_init::$75 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$75 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$75 ] ) always clobbers reg byte a +Statement [239] (byte*~) debug_print_init::$75 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$75 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$75 ] ) always clobbers reg byte a Statement [240] (byte*~) debug_print_init::$76 ← (byte*~) debug_print_init::$75 + (byte) debug_print_init::j#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$76 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$76 ] ) always clobbers reg byte a Statement [241] *((byte*~) debug_print_init::$76) ← (byte) debug_print_init::col#0 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ) always clobbers reg byte a reg byte y -Statement [242] (byte*~) debug_print_init::$79 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$79 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$79 ] ) always clobbers reg byte a +Statement [242] (byte*~) debug_print_init::$79 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$79 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$79 ] ) always clobbers reg byte a Statement [243] (byte*~) debug_print_init::$80 ← (byte*~) debug_print_init::$79 + (byte) debug_print_init::j#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$80 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$80 ] ) always clobbers reg byte a Statement [244] *((byte*~) debug_print_init::$80) ← (byte) debug_print_init::col#0 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ) always clobbers reg byte a reg byte y -Statement [245] (byte*~) debug_print_init::$83 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$83 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$83 ] ) always clobbers reg byte a +Statement [245] (byte*~) debug_print_init::$83 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 6 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$83 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$83 ] ) always clobbers reg byte a Statement [246] (byte*~) debug_print_init::$84 ← (byte*~) debug_print_init::$83 + (byte) debug_print_init::j#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$84 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$84 ] ) always clobbers reg byte a Statement [247] *((byte*~) debug_print_init::$84) ← (byte) debug_print_init::col#0 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ) always clobbers reg byte a reg byte y -Statement [248] (byte*~) debug_print_init::$87 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$87 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$87 ] ) always clobbers reg byte a +Statement [248] (byte*~) debug_print_init::$87 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$87 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$87 ] ) always clobbers reg byte a Statement [249] (byte*~) debug_print_init::$88 ← (byte*~) debug_print_init::$87 + (byte) debug_print_init::j#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$88 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$88 ] ) always clobbers reg byte a Statement [250] *((byte*~) debug_print_init::$88) ← (byte) debug_print_init::col#0 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 ] ) always clobbers reg byte a reg byte y -Statement [251] (byte*~) debug_print_init::$91 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$91 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$91 ] ) always clobbers reg byte a +Statement [251] (byte*~) debug_print_init::$91 ← (const byte*) debug_print_init::at_cols#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 + (byte) debug_print_init::c#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$91 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$91 ] ) always clobbers reg byte a Statement [252] (byte*~) debug_print_init::$92 ← (byte*~) debug_print_init::$91 + (byte) debug_print_init::j#2 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$92 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 debug_print_init::col#0 debug_print_init::$92 ] ) always clobbers reg byte a Statement [253] *((byte*~) debug_print_init::$92) ← (byte) debug_print_init::col#0 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 ] ( main:11::debug_print_init:17 [ debug_print_init::c#2 debug_print_init::i#2 debug_print_init::j#2 ] ) always clobbers reg byte a reg byte y Statement [256] (byte) debug_print_init::c#1 ← (byte) debug_print_init::c#2 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ debug_print_init::i#2 debug_print_init::c#1 ] ( main:11::debug_print_init:17 [ debug_print_init::i#2 debug_print_init::c#1 ] ) always clobbers reg byte a Statement [262] if(*((byte*) print_str_at::str#13)!=(byte) '@') goto print_str_at::@2 [ print_str_at::str#13 print_str_at::at#13 ] ( main:11::debug_print_init:17::print_str_at:192 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:194 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:196 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:198 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:200 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:202 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:204 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:206 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:208 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:210 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:212 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:214 [ print_str_at::str#13 print_str_at::at#13 ] ) always clobbers reg byte a reg byte y Statement [264] *((byte*) print_str_at::at#13) ← *((byte*) print_str_at::str#13) [ print_str_at::str#13 print_str_at::at#13 ] ( main:11::debug_print_init:17::print_str_at:192 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:194 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:196 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:198 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:200 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:202 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:204 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:206 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:208 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:210 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:212 [ print_str_at::str#13 print_str_at::at#13 ] main:11::debug_print_init:17::print_str_at:214 [ print_str_at::str#13 print_str_at::at#13 ] ) always clobbers reg byte a reg byte y Statement [269] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:11::debug_print_init:17::print_cls:190 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [271] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:11::debug_print_init:17::print_cls:190 [ print_cls::sc#1 ] ) always clobbers reg byte a -Statement [273] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:11::sprites_init:14 [ ] ) always clobbers reg byte a -Statement [275] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ sprites_init::i#2 ] ( main:11::sprites_init:14 [ sprites_init::i#2 ] ) always clobbers reg byte a +Statement [271] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:11::debug_print_init:17::print_cls:190 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [273] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff [ ] ( main:11::sprites_init:14 [ ] ) always clobbers reg byte a +Statement [275] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 [ sprites_init::i#2 ] ( main:11::sprites_init:14 [ sprites_init::i#2 ] ) always clobbers reg byte a Statement [276] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0 [ sprites_init::i#2 ] ( main:11::sprites_init:14 [ sprites_init::i#2 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ sx#10 sx#3 ] : zp ZP_BYTE:2 , Potential registers zp ZP_BYTE:3 [ sy#10 sy#3 ] : zp ZP_BYTE:3 , @@ -8614,21 +8614,21 @@ anim: { jmp b4 //SEG37 anim::@4 b4: - //SEG38 [23] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG38 [23] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto anim::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 jmp b7 //SEG39 anim::@7 b7: - //SEG40 [24] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto anim::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG40 [24] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fe) goto anim::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$fe bne b7 jmp b10 //SEG41 anim::@10 b10: - //SEG42 [25] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 253) goto anim::@10 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG42 [25] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fd) goto anim::@10 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$fd bne b10 @@ -8709,13 +8709,13 @@ anim: { lda i asl tax - //SEG69 [45] (byte/word/signed word/dword/signed dword~) anim::$8 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) xp#0) -- vbuaa=vbuc1_plus__deref_pbuc2 + //SEG69 [45] (byte/word/signed word/dword/signed dword~) anim::$8 ← (byte/word/signed word/dword/signed dword) $80 + (byte)*((const signed byte*) xp#0) -- vbuaa=vbuc1_plus__deref_pbuc2 lda #$80 clc adc xp //SEG70 [46] *((const byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$8 -- pbuc1_derefidx_vbuxx=vbuaa sta SPRITES_XPOS,x - //SEG71 [47] (byte/word/signed word/dword/signed dword~) anim::$10 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) yp#0) -- vbuaa=vbuc1_plus__deref_pbuc2 + //SEG71 [47] (byte/word/signed word/dword/signed dword~) anim::$10 ← (byte/word/signed word/dword/signed dword) $80 + (byte)*((const signed byte*) yp#0) -- vbuaa=vbuc1_plus__deref_pbuc2 lda #$80 clc adc yp @@ -8794,7 +8794,7 @@ debug_print: { //SEG89 [58] call print_sbyte_at //SEG90 [114] phi from debug_print::print_sbyte_pos1 to print_sbyte_at [phi:debug_print::print_sbyte_pos1->print_sbyte_at] print_sbyte_at_from_print_sbyte_pos1: - //SEG91 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos1_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos1_col#0 [phi:debug_print::print_sbyte_pos1->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG91 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos1_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos1_col#0 [phi:debug_print::print_sbyte_pos1->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos1_row*$28+print_sbyte_pos1_col @@ -8814,7 +8814,7 @@ debug_print: { //SEG97 [61] call print_sbyte_at //SEG98 [114] phi from debug_print::print_sbyte_pos2 to print_sbyte_at [phi:debug_print::print_sbyte_pos2->print_sbyte_at] print_sbyte_at_from_print_sbyte_pos2: - //SEG99 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos2_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos2_col#0 [phi:debug_print::print_sbyte_pos2->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG99 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos2_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos2_col#0 [phi:debug_print::print_sbyte_pos2->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos2_row*$28+print_sbyte_pos2_col @@ -8829,7 +8829,7 @@ debug_print: { //SEG103 [63] call print_sbyte_at //SEG104 [114] phi from debug_print::print_sbyte_pos3 to print_sbyte_at [phi:debug_print::print_sbyte_pos3->print_sbyte_at] print_sbyte_at_from_print_sbyte_pos3: - //SEG105 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos3_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos3_col#0 [phi:debug_print::print_sbyte_pos3->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG105 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos3_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos3_col#0 [phi:debug_print::print_sbyte_pos3->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos3_row*$28+print_sbyte_pos3_col @@ -8850,7 +8850,7 @@ debug_print: { //SEG111 [66] call print_sbyte_at //SEG112 [114] phi from debug_print::print_sbyte_pos4 to print_sbyte_at [phi:debug_print::print_sbyte_pos4->print_sbyte_at] print_sbyte_at_from_print_sbyte_pos4: - //SEG113 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos4_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos4_col#0 [phi:debug_print::print_sbyte_pos4->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG113 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos4_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos4_col#0 [phi:debug_print::print_sbyte_pos4->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos4_row*$28+print_sbyte_pos4_col @@ -8869,7 +8869,7 @@ debug_print: { //SEG119 [69] call print_sbyte_at //SEG120 [114] phi from debug_print::print_sbyte_pos5 to print_sbyte_at [phi:debug_print::print_sbyte_pos5->print_sbyte_at] print_sbyte_at_from_print_sbyte_pos5: - //SEG121 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos5_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos5_col#0 [phi:debug_print::print_sbyte_pos5->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG121 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos5_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos5_col#0 [phi:debug_print::print_sbyte_pos5->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos5_row*$28+print_sbyte_pos5_col @@ -8888,7 +8888,7 @@ debug_print: { //SEG127 [72] call print_sbyte_at //SEG128 [114] phi from debug_print::print_sbyte_pos6 to print_sbyte_at [phi:debug_print::print_sbyte_pos6->print_sbyte_at] print_sbyte_at_from_print_sbyte_pos6: - //SEG129 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos6_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos6_col#0 [phi:debug_print::print_sbyte_pos6->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG129 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos6_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos6_col#0 [phi:debug_print::print_sbyte_pos6->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos6_row*$28+print_sbyte_pos6_col @@ -8907,7 +8907,7 @@ debug_print: { //SEG135 [75] call print_sbyte_at //SEG136 [114] phi from debug_print::print_sbyte_pos7 to print_sbyte_at [phi:debug_print::print_sbyte_pos7->print_sbyte_at] print_sbyte_at_from_print_sbyte_pos7: - //SEG137 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos7_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos7_col#0 [phi:debug_print::print_sbyte_pos7->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG137 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos7_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos7_col#0 [phi:debug_print::print_sbyte_pos7->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos7_row*$28+print_sbyte_pos7_col @@ -8926,7 +8926,7 @@ debug_print: { //SEG143 [78] call print_sbyte_at //SEG144 [114] phi from debug_print::print_sbyte_pos8 to print_sbyte_at [phi:debug_print::print_sbyte_pos8->print_sbyte_at] print_sbyte_at_from_print_sbyte_pos8: - //SEG145 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos8_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos8_col#0 [phi:debug_print::print_sbyte_pos8->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG145 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos8_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos8_col#0 [phi:debug_print::print_sbyte_pos8->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos8_row*$28+print_sbyte_pos8_col @@ -8945,7 +8945,7 @@ debug_print: { //SEG151 [81] call print_sbyte_at //SEG152 [114] phi from debug_print::print_sbyte_pos9 to print_sbyte_at [phi:debug_print::print_sbyte_pos9->print_sbyte_at] print_sbyte_at_from_print_sbyte_pos9: - //SEG153 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos9_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos9_col#0 [phi:debug_print::print_sbyte_pos9->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG153 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos9_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos9_col#0 [phi:debug_print::print_sbyte_pos9->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos9_row*$28+print_sbyte_pos9_col @@ -8964,7 +8964,7 @@ debug_print: { //SEG159 [84] call print_sbyte_at //SEG160 [114] phi from debug_print::print_sbyte_pos10 to print_sbyte_at [phi:debug_print::print_sbyte_pos10->print_sbyte_at] print_sbyte_at_from_print_sbyte_pos10: - //SEG161 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos10_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos10_col#0 [phi:debug_print::print_sbyte_pos10->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG161 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos10_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos10_col#0 [phi:debug_print::print_sbyte_pos10->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos10_row*$28+print_sbyte_pos10_col @@ -8983,7 +8983,7 @@ debug_print: { //SEG167 [87] call print_sbyte_at //SEG168 [114] phi from debug_print::print_sbyte_pos11 to print_sbyte_at [phi:debug_print::print_sbyte_pos11->print_sbyte_at] print_sbyte_at_from_print_sbyte_pos11: - //SEG169 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos11_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos11_col#0 [phi:debug_print::print_sbyte_pos11->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG169 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos11_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos11_col#0 [phi:debug_print::print_sbyte_pos11->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos11_row*$28+print_sbyte_pos11_col @@ -9002,7 +9002,7 @@ debug_print: { //SEG175 [90] call print_sbyte_at //SEG176 [114] phi from debug_print::print_sbyte_pos12 to print_sbyte_at [phi:debug_print::print_sbyte_pos12->print_sbyte_at] print_sbyte_at_from_print_sbyte_pos12: - //SEG177 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos12_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos12_col#0 [phi:debug_print::print_sbyte_pos12->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG177 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos12_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos12_col#0 [phi:debug_print::print_sbyte_pos12->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos12_row*$28+print_sbyte_pos12_col @@ -9046,7 +9046,7 @@ debug_print: { jmp b27 //SEG192 debug_print::@27 b27: - //SEG193 [95] (byte*) print_sbyte_at::at#16 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print::c#2 -- pbuz1=pbuc1_plus_vbuz2 + //SEG193 [95] (byte*) print_sbyte_at::at#16 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print::c#2 -- pbuz1=pbuc1_plus_vbuz2 lda c clc adc #print_str_at] print_str_at_from_b5: - //SEG343 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 34 [phi:debug_print_init::@5->print_str_at#0] -- pbuz1=pbuc1 + //SEG343 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $22 [phi:debug_print_init::@5->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$22 @@ -9717,7 +9717,7 @@ debug_print_init: { //SEG347 [194] call print_str_at //SEG348 [260] phi from debug_print_init::@6 to print_str_at [phi:debug_print_init::@6->print_str_at] print_str_at_from_b6: - //SEG349 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 34 [phi:debug_print_init::@6->print_str_at#0] -- pbuz1=pbuc1 + //SEG349 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) $22 [phi:debug_print_init::@6->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*1+$22 @@ -9736,7 +9736,7 @@ debug_print_init: { //SEG353 [196] call print_str_at //SEG354 [260] phi from debug_print_init::@7 to print_str_at [phi:debug_print_init::@7->print_str_at] print_str_at_from_b7: - //SEG355 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 34 [phi:debug_print_init::@7->print_str_at#0] -- pbuz1=pbuc1 + //SEG355 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) $22 [phi:debug_print_init::@7->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*2+$22 @@ -9755,7 +9755,7 @@ debug_print_init: { //SEG359 [198] call print_str_at //SEG360 [260] phi from debug_print_init::@8 to print_str_at [phi:debug_print_init::@8->print_str_at] print_str_at_from_b8: - //SEG361 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:debug_print_init::@8->print_str_at#0] -- pbuz1=pbuc1 + //SEG361 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $10 [phi:debug_print_init::@8->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$10 @@ -9774,7 +9774,7 @@ debug_print_init: { //SEG365 [200] call print_str_at //SEG366 [260] phi from debug_print_init::@9 to print_str_at [phi:debug_print_init::@9->print_str_at] print_str_at_from_b9: - //SEG367 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 17 [phi:debug_print_init::@9->print_str_at#0] -- pbuz1=pbuc1 + //SEG367 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $11 [phi:debug_print_init::@9->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$11 @@ -9793,7 +9793,7 @@ debug_print_init: { //SEG371 [202] call print_str_at //SEG372 [260] phi from debug_print_init::@10 to print_str_at [phi:debug_print_init::@10->print_str_at] print_str_at_from_b10: - //SEG373 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 18 [phi:debug_print_init::@10->print_str_at#0] -- pbuz1=pbuc1 + //SEG373 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $12 [phi:debug_print_init::@10->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$12 @@ -9812,7 +9812,7 @@ debug_print_init: { //SEG377 [204] call print_str_at //SEG378 [260] phi from debug_print_init::@11 to print_str_at [phi:debug_print_init::@11->print_str_at] print_str_at_from_b11: - //SEG379 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 19 [phi:debug_print_init::@11->print_str_at#0] -- pbuz1=pbuc1 + //SEG379 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $13 [phi:debug_print_init::@11->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$13 @@ -9831,7 +9831,7 @@ debug_print_init: { //SEG383 [206] call print_str_at //SEG384 [260] phi from debug_print_init::@12 to print_str_at [phi:debug_print_init::@12->print_str_at] print_str_at_from_b12: - //SEG385 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 20 [phi:debug_print_init::@12->print_str_at#0] -- pbuz1=pbuc1 + //SEG385 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $14 [phi:debug_print_init::@12->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$14 @@ -9850,7 +9850,7 @@ debug_print_init: { //SEG389 [208] call print_str_at //SEG390 [260] phi from debug_print_init::@13 to print_str_at [phi:debug_print_init::@13->print_str_at] print_str_at_from_b13: - //SEG391 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 21 [phi:debug_print_init::@13->print_str_at#0] -- pbuz1=pbuc1 + //SEG391 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $15 [phi:debug_print_init::@13->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$15 @@ -9869,7 +9869,7 @@ debug_print_init: { //SEG395 [210] call print_str_at //SEG396 [260] phi from debug_print_init::@14 to print_str_at [phi:debug_print_init::@14->print_str_at] print_str_at_from_b14: - //SEG397 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 22 [phi:debug_print_init::@14->print_str_at#0] -- pbuz1=pbuc1 + //SEG397 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $16 [phi:debug_print_init::@14->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$16 @@ -9888,7 +9888,7 @@ debug_print_init: { //SEG401 [212] call print_str_at //SEG402 [260] phi from debug_print_init::@15 to print_str_at [phi:debug_print_init::@15->print_str_at] print_str_at_from_b15: - //SEG403 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 23 [phi:debug_print_init::@15->print_str_at#0] -- pbuz1=pbuc1 + //SEG403 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $17 [phi:debug_print_init::@15->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$17 @@ -9907,7 +9907,7 @@ debug_print_init: { //SEG407 [214] call print_str_at //SEG408 [260] phi from debug_print_init::@16 to print_str_at [phi:debug_print_init::@16->print_str_at] print_str_at_from_b16: - //SEG409 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24 [phi:debug_print_init::@16->print_str_at#0] -- pbuz1=pbuc1 + //SEG409 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18 [phi:debug_print_init::@16->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$18 @@ -9955,7 +9955,7 @@ debug_print_init: { jmp b18 //SEG424 debug_print_init::@18 b18: - //SEG425 [219] (byte*) print_sbyte_at::at#1 ← (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print_init::c#2 -- pbuz1=pbuc1_plus_vbuz2 + //SEG425 [219] (byte*) print_sbyte_at::at#1 ← (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print_init::c#2 -- pbuz1=pbuc1_plus_vbuz2 lda c clc adc #print_line_cursor+$3e8 bne b1_from_b1 @@ -10315,7 +10315,7 @@ print_cls: { sprites_init: { .label SCREEN = $400 .label sprites_ptr = SCREEN+$3f8 - //SEG503 [273] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 -- _deref_pbuc1=vbuc2 + //SEG503 [273] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff -- _deref_pbuc1=vbuc2 lda #$ff sta SPRITES_ENABLE //SEG504 [274] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] @@ -10329,7 +10329,7 @@ sprites_init: { jmp b1 //SEG508 sprites_init::@1 b1: - //SEG509 [275] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG509 [275] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 -- pbuc1_derefidx_vbuxx=vbuc2 lda #$ff&SPRITE/$40 sta sprites_ptr,x //SEG510 [276] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0 -- pbuc1_derefidx_vbuxx=vbuc2 @@ -10755,7 +10755,7 @@ FINAL SYMBOL TABLE (byte) BLACK (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN (byte*) CIA1_INTERRUPT @@ -10771,11 +10771,11 @@ FINAL SYMBOL TABLE (byte) CIA_INTERRUPT_CLEAR (byte*) COLS (signed byte*) COSH -(const signed byte*) COSH#0 COSH = (const signed byte*) SINH#0+(byte/signed byte/word/signed word/dword/signed dword) 64 +(const signed byte*) COSH#0 COSH = (const signed byte*) SINH#0+(byte/signed byte/word/signed word/dword/signed dword) $40 (byte*) COSH_HI (byte*) COSH_LO (signed byte*) COSQ -(const signed byte*) COSQ#0 COSQ = (const signed byte*) SINQ#0+(byte/signed byte/word/signed word/dword/signed dword) 64 +(const signed byte*) COSQ#0 COSQ = (const signed byte*) SINQ#0+(byte/signed byte/word/signed word/dword/signed dword) $40 (byte*) COSQ_HI (byte*) COSQ_LO (byte) CYAN @@ -10797,13 +10797,13 @@ FINAL SYMBOL TABLE (byte*) LIGHTPEN_X (byte*) LIGHTPEN_Y (byte) LIGHT_BLUE -(const byte) LIGHT_BLUE#0 LIGHT_BLUE = (byte/signed byte/word/signed word/dword/signed dword) 14 +(const byte) LIGHT_BLUE#0 LIGHT_BLUE = (byte/signed byte/word/signed word/dword/signed dword) $e (byte) LIGHT_GREEN (byte) LIGHT_GREY -(const byte) LIGHT_GREY#0 LIGHT_GREY = (byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte) LIGHT_GREY#0 LIGHT_GREY = (byte/signed byte/word/signed word/dword/signed dword) $f (byte) ORANGE (signed byte*) PERSP_Z -(const signed byte*) PERSP_Z#0 PERSP_Z = ((signed byte*))(word/signed word/dword/signed dword) 10240 +(const signed byte*) PERSP_Z#0 PERSP_Z = ((signed byte*))(word/signed word/dword/signed dword) $2800 (byte) PINK (byte*) PROCPORT (byte) PROCPORT_BASIC_KERNEL_IO @@ -10815,28 +10815,28 @@ FINAL SYMBOL TABLE (byte) PROCPORT_RAM_IO (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (signed byte*) SINH -(const signed byte*) SINH#0 SINH = ((signed byte*))(word/signed word/dword/signed dword) 8192 +(const signed byte*) SINH#0 SINH = ((signed byte*))(word/signed word/dword/signed dword) $2000 (byte*) SINH_HI -(const byte*) SINH_HI#0 SINH_HI = ((byte*))(word/signed word/dword/signed dword) 16896 +(const byte*) SINH_HI#0 SINH_HI = ((byte*))(word/signed word/dword/signed dword) $4200 (byte*) SINH_LO -(const byte*) SINH_LO#0 SINH_LO = ((byte*))(word/signed word/dword/signed dword) 16384 +(const byte*) SINH_LO#0 SINH_LO = ((byte*))(word/signed word/dword/signed dword) $4000 (signed byte*) SINQ -(const signed byte*) SINQ#0 SINQ = ((signed byte*))(word/signed word/dword/signed dword) 8704 +(const signed byte*) SINQ#0 SINQ = ((signed byte*))(word/signed word/dword/signed dword) $2200 (byte*) SINQ_HI -(const byte*) SINQ_HI#0 SINQ_HI = ((byte*))(word/signed word/dword/signed dword) 17920 +(const byte*) SINQ_HI#0 SINQ_HI = ((byte*))(word/signed word/dword/signed dword) $4600 (byte*) SINQ_LO -(const byte*) SINQ_LO#0 SINQ_LO = ((byte*))(word/signed word/dword/signed dword) 17408 +(const byte*) SINQ_LO#0 SINQ_LO = ((byte*))(word/signed word/dword/signed dword) $4400 (byte*) SPRITE -(const byte*) SPRITE#0 SPRITE = ((byte*))(word/signed word/dword/signed dword) 12288 +(const byte*) SPRITE#0 SPRITE = ((byte*))(word/signed word/dword/signed dword) $3000 (byte*) SPRITES_COLS -(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) 53287 +(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) $d027 (byte*) SPRITES_ENABLE -(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) 53269 +(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) $d015 (byte*) SPRITES_EXPAND_X (byte*) SPRITES_EXPAND_Y (byte*) SPRITES_MC @@ -10845,9 +10845,9 @@ FINAL SYMBOL TABLE (byte*) SPRITES_PRIORITY (byte*) SPRITES_XMSB (byte*) SPRITES_XPOS -(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) 53248 +(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) $d000 (byte*) SPRITES_YPOS -(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) 53249 +(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) $d001 (word) SPRITE_PTRS (byte) VIC_BMM (byte*) VIC_CONTROL @@ -10951,7 +10951,7 @@ FINAL SYMBOL TABLE (label) debug_print::@9 (label) debug_print::@return (byte*) debug_print::at_line -(const byte*) debug_print::at_line#0 at_line = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 19*(byte/signed byte/word/signed word/dword/signed dword) 40 +(const byte*) debug_print::at_line#0 at_line = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $13*(byte/signed byte/word/signed word/dword/signed dword) $28 (byte) debug_print::c (byte) debug_print::c#1 c zp ZP_BYTE:4 67.33333333333333 (byte) debug_print::c#2 c zp ZP_BYTE:4 42.52631578947369 @@ -10964,7 +10964,7 @@ FINAL SYMBOL TABLE (byte*~) debug_print::print_sbyte_pos10_$1 (byte*~) debug_print::print_sbyte_pos10_$2 (byte) debug_print::print_sbyte_pos10_col -(const byte) debug_print::print_sbyte_pos10_col#0 print_sbyte_pos10_col = (byte/signed byte/word/signed word/dword/signed dword) 29 +(const byte) debug_print::print_sbyte_pos10_col#0 print_sbyte_pos10_col = (byte/signed byte/word/signed word/dword/signed dword) $1d (byte) debug_print::print_sbyte_pos10_row (const byte) debug_print::print_sbyte_pos10_row#0 print_sbyte_pos10_row = (byte/signed byte/word/signed word/dword/signed dword) 6 (signed byte) debug_print::print_sbyte_pos10_sb @@ -10974,7 +10974,7 @@ FINAL SYMBOL TABLE (byte*~) debug_print::print_sbyte_pos11_$1 (byte*~) debug_print::print_sbyte_pos11_$2 (byte) debug_print::print_sbyte_pos11_col -(const byte) debug_print::print_sbyte_pos11_col#0 print_sbyte_pos11_col = (byte/signed byte/word/signed word/dword/signed dword) 33 +(const byte) debug_print::print_sbyte_pos11_col#0 print_sbyte_pos11_col = (byte/signed byte/word/signed word/dword/signed dword) $21 (byte) debug_print::print_sbyte_pos11_row (const byte) debug_print::print_sbyte_pos11_row#0 print_sbyte_pos11_row = (byte/signed byte/word/signed word/dword/signed dword) 6 (signed byte) debug_print::print_sbyte_pos11_sb @@ -10984,7 +10984,7 @@ FINAL SYMBOL TABLE (byte*~) debug_print::print_sbyte_pos12_$1 (byte*~) debug_print::print_sbyte_pos12_$2 (byte) debug_print::print_sbyte_pos12_col -(const byte) debug_print::print_sbyte_pos12_col#0 print_sbyte_pos12_col = (byte/signed byte/word/signed word/dword/signed dword) 37 +(const byte) debug_print::print_sbyte_pos12_col#0 print_sbyte_pos12_col = (byte/signed byte/word/signed word/dword/signed dword) $25 (byte) debug_print::print_sbyte_pos12_row (const byte) debug_print::print_sbyte_pos12_row#0 print_sbyte_pos12_row = (byte/signed byte/word/signed word/dword/signed dword) 6 (signed byte) debug_print::print_sbyte_pos12_sb @@ -10993,7 +10993,7 @@ FINAL SYMBOL TABLE (byte*~) debug_print::print_sbyte_pos1_$1 (byte*~) debug_print::print_sbyte_pos1_$2 (byte) debug_print::print_sbyte_pos1_col -(const byte) debug_print::print_sbyte_pos1_col#0 print_sbyte_pos1_col = (byte/signed byte/word/signed word/dword/signed dword) 37 +(const byte) debug_print::print_sbyte_pos1_col#0 print_sbyte_pos1_col = (byte/signed byte/word/signed word/dword/signed dword) $25 (byte) debug_print::print_sbyte_pos1_row (const byte) debug_print::print_sbyte_pos1_row#0 print_sbyte_pos1_row = (byte/signed byte/word/signed word/dword/signed dword) 0 (signed byte) debug_print::print_sbyte_pos1_sb @@ -11003,7 +11003,7 @@ FINAL SYMBOL TABLE (byte*~) debug_print::print_sbyte_pos2_$1 (byte*~) debug_print::print_sbyte_pos2_$2 (byte) debug_print::print_sbyte_pos2_col -(const byte) debug_print::print_sbyte_pos2_col#0 print_sbyte_pos2_col = (byte/signed byte/word/signed word/dword/signed dword) 37 +(const byte) debug_print::print_sbyte_pos2_col#0 print_sbyte_pos2_col = (byte/signed byte/word/signed word/dword/signed dword) $25 (byte) debug_print::print_sbyte_pos2_row (const byte) debug_print::print_sbyte_pos2_row#0 print_sbyte_pos2_row = (byte/signed byte/word/signed word/dword/signed dword) 1 (signed byte) debug_print::print_sbyte_pos2_sb @@ -11013,7 +11013,7 @@ FINAL SYMBOL TABLE (byte*~) debug_print::print_sbyte_pos3_$1 (byte*~) debug_print::print_sbyte_pos3_$2 (byte) debug_print::print_sbyte_pos3_col -(const byte) debug_print::print_sbyte_pos3_col#0 print_sbyte_pos3_col = (byte/signed byte/word/signed word/dword/signed dword) 37 +(const byte) debug_print::print_sbyte_pos3_col#0 print_sbyte_pos3_col = (byte/signed byte/word/signed word/dword/signed dword) $25 (byte) debug_print::print_sbyte_pos3_row (const byte) debug_print::print_sbyte_pos3_row#0 print_sbyte_pos3_row = (byte/signed byte/word/signed word/dword/signed dword) 2 (signed byte) debug_print::print_sbyte_pos3_sb @@ -11022,7 +11022,7 @@ FINAL SYMBOL TABLE (byte*~) debug_print::print_sbyte_pos4_$1 (byte*~) debug_print::print_sbyte_pos4_$2 (byte) debug_print::print_sbyte_pos4_col -(const byte) debug_print::print_sbyte_pos4_col#0 print_sbyte_pos4_col = (byte/signed byte/word/signed word/dword/signed dword) 29 +(const byte) debug_print::print_sbyte_pos4_col#0 print_sbyte_pos4_col = (byte/signed byte/word/signed word/dword/signed dword) $1d (byte) debug_print::print_sbyte_pos4_row (const byte) debug_print::print_sbyte_pos4_row#0 print_sbyte_pos4_row = (byte/signed byte/word/signed word/dword/signed dword) 4 (signed byte) debug_print::print_sbyte_pos4_sb @@ -11032,7 +11032,7 @@ FINAL SYMBOL TABLE (byte*~) debug_print::print_sbyte_pos5_$1 (byte*~) debug_print::print_sbyte_pos5_$2 (byte) debug_print::print_sbyte_pos5_col -(const byte) debug_print::print_sbyte_pos5_col#0 print_sbyte_pos5_col = (byte/signed byte/word/signed word/dword/signed dword) 33 +(const byte) debug_print::print_sbyte_pos5_col#0 print_sbyte_pos5_col = (byte/signed byte/word/signed word/dword/signed dword) $21 (byte) debug_print::print_sbyte_pos5_row (const byte) debug_print::print_sbyte_pos5_row#0 print_sbyte_pos5_row = (byte/signed byte/word/signed word/dword/signed dword) 4 (signed byte) debug_print::print_sbyte_pos5_sb @@ -11042,7 +11042,7 @@ FINAL SYMBOL TABLE (byte*~) debug_print::print_sbyte_pos6_$1 (byte*~) debug_print::print_sbyte_pos6_$2 (byte) debug_print::print_sbyte_pos6_col -(const byte) debug_print::print_sbyte_pos6_col#0 print_sbyte_pos6_col = (byte/signed byte/word/signed word/dword/signed dword) 37 +(const byte) debug_print::print_sbyte_pos6_col#0 print_sbyte_pos6_col = (byte/signed byte/word/signed word/dword/signed dword) $25 (byte) debug_print::print_sbyte_pos6_row (const byte) debug_print::print_sbyte_pos6_row#0 print_sbyte_pos6_row = (byte/signed byte/word/signed word/dword/signed dword) 4 (signed byte) debug_print::print_sbyte_pos6_sb @@ -11052,7 +11052,7 @@ FINAL SYMBOL TABLE (byte*~) debug_print::print_sbyte_pos7_$1 (byte*~) debug_print::print_sbyte_pos7_$2 (byte) debug_print::print_sbyte_pos7_col -(const byte) debug_print::print_sbyte_pos7_col#0 print_sbyte_pos7_col = (byte/signed byte/word/signed word/dword/signed dword) 29 +(const byte) debug_print::print_sbyte_pos7_col#0 print_sbyte_pos7_col = (byte/signed byte/word/signed word/dword/signed dword) $1d (byte) debug_print::print_sbyte_pos7_row (const byte) debug_print::print_sbyte_pos7_row#0 print_sbyte_pos7_row = (byte/signed byte/word/signed word/dword/signed dword) 5 (signed byte) debug_print::print_sbyte_pos7_sb @@ -11062,7 +11062,7 @@ FINAL SYMBOL TABLE (byte*~) debug_print::print_sbyte_pos8_$1 (byte*~) debug_print::print_sbyte_pos8_$2 (byte) debug_print::print_sbyte_pos8_col -(const byte) debug_print::print_sbyte_pos8_col#0 print_sbyte_pos8_col = (byte/signed byte/word/signed word/dword/signed dword) 33 +(const byte) debug_print::print_sbyte_pos8_col#0 print_sbyte_pos8_col = (byte/signed byte/word/signed word/dword/signed dword) $21 (byte) debug_print::print_sbyte_pos8_row (const byte) debug_print::print_sbyte_pos8_row#0 print_sbyte_pos8_row = (byte/signed byte/word/signed word/dword/signed dword) 5 (signed byte) debug_print::print_sbyte_pos8_sb @@ -11072,7 +11072,7 @@ FINAL SYMBOL TABLE (byte*~) debug_print::print_sbyte_pos9_$1 (byte*~) debug_print::print_sbyte_pos9_$2 (byte) debug_print::print_sbyte_pos9_col -(const byte) debug_print::print_sbyte_pos9_col#0 print_sbyte_pos9_col = (byte/signed byte/word/signed word/dword/signed dword) 37 +(const byte) debug_print::print_sbyte_pos9_col#0 print_sbyte_pos9_col = (byte/signed byte/word/signed word/dword/signed dword) $25 (byte) debug_print::print_sbyte_pos9_row (const byte) debug_print::print_sbyte_pos9_row#0 print_sbyte_pos9_row = (byte/signed byte/word/signed word/dword/signed dword) 5 (signed byte) debug_print::print_sbyte_pos9_sb @@ -11115,11 +11115,11 @@ FINAL SYMBOL TABLE (label) debug_print_init::@9 (label) debug_print_init::@return (byte*) debug_print_init::COLS -(const byte*) debug_print_init::COLS#0 COLS = ((byte*))(word/dword/signed dword) 55296 +(const byte*) debug_print_init::COLS#0 COLS = ((byte*))(word/dword/signed dword) $d800 (byte*) debug_print_init::at_cols -(const byte*) debug_print_init::at_cols#0 at_cols = (const byte*) debug_print_init::COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 16*(byte/signed byte/word/signed word/dword/signed dword) 40 +(const byte*) debug_print_init::at_cols#0 at_cols = (const byte*) debug_print_init::COLS#0+(byte/signed byte/word/signed word/dword/signed dword) $10*(byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) debug_print_init::at_line -(const byte*) debug_print_init::at_line#0 at_line = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 16*(byte/signed byte/word/signed word/dword/signed dword) 40 +(const byte*) debug_print_init::at_line#0 at_line = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $10*(byte/signed byte/word/signed word/dword/signed dword) $28 (byte) debug_print_init::c (byte) debug_print_init::c#1 c zp ZP_BYTE:2 7.333333333333333 (byte) debug_print_init::c#2 c zp ZP_BYTE:2 23.512195121951223 @@ -11148,11 +11148,11 @@ FINAL SYMBOL TABLE (label) main::@2 (label) main::@return (byte*) mulf_sqr1 -(const byte*) mulf_sqr1#0 mulf_sqr1 = ((byte*))(word/signed word/dword/signed dword) 9216 +(const byte*) mulf_sqr1#0 mulf_sqr1 = ((byte*))(word/signed word/dword/signed dword) $2400 (byte*) mulf_sqr2 -(const byte*) mulf_sqr2#0 mulf_sqr2 = ((byte*))(word/signed word/dword/signed dword) 9728 +(const byte*) mulf_sqr2#0 mulf_sqr2 = ((byte*))(word/signed word/dword/signed dword) $2600 (signed byte*) pp -(const signed byte*) pp#0 pp = ((signed byte*))(byte/word/signed word/dword/signed dword) 243 +(const signed byte*) pp#0 pp = ((signed byte*))(byte/word/signed word/dword/signed dword) $f3 (signed byte[8]) pps (const signed byte[8]) pps#0 pps = { fill( 8, 0) } (void()) print_byte_at((byte) print_byte_at::b , (byte*) print_byte_at::at) @@ -11185,7 +11185,7 @@ FINAL SYMBOL TABLE (byte[]) print_hextab (const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor -(const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) $400 (void()) print_sbyte_at((signed byte) print_sbyte_at::b , (byte*) print_sbyte_at::at) (label) print_sbyte_at::@1 (label) print_sbyte_at::@2 @@ -11241,9 +11241,9 @@ FINAL SYMBOL TABLE (byte*) print_str_at::str#13 str zp ZP_WORD:6 11.5 (byte*) print_str_at::str#15 str zp ZP_WORD:6 2.0 (word*) psp1 -(const word*) psp1#0 psp1 = ((word*))(byte/word/signed word/dword/signed dword) 246 +(const word*) psp1#0 psp1 = ((word*))(byte/word/signed word/dword/signed dword) $f6 (word*) psp2 -(const word*) psp2#0 psp2 = ((word*))(byte/word/signed word/dword/signed dword) 248 +(const word*) psp2#0 psp2 = ((word*))(byte/word/signed word/dword/signed dword) $f8 (void()) rotate_matrix((signed byte) rotate_matrix::x , (signed byte) rotate_matrix::y , (signed byte) rotate_matrix::z) (label) rotate_matrix::@return (signed byte) rotate_matrix::x @@ -11258,12 +11258,12 @@ FINAL SYMBOL TABLE (label) sprites_init::@1 (label) sprites_init::@return (byte*) sprites_init::SCREEN -(const byte*) sprites_init::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) sprites_init::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) sprites_init::i (byte) sprites_init::i#1 reg byte x 16.5 (byte) sprites_init::i#2 reg byte x 14.666666666666666 (byte*) sprites_init::sprites_ptr -(const byte*) sprites_init::sprites_ptr#0 sprites_ptr = (const byte*) sprites_init::SCREEN#0+(word/signed word/dword/signed dword) 1016 +(const byte*) sprites_init::sprites_ptr#0 sprites_ptr = (const byte*) sprites_init::SCREEN#0+(word/signed word/dword/signed dword) $3f8 (void()) store_matrix() (label) store_matrix::@return (signed byte) sx @@ -11275,31 +11275,31 @@ FINAL SYMBOL TABLE (signed byte) sz (const signed byte) sz#0 sz = (byte/signed byte/word/signed word/dword/signed dword) 0 (signed byte*) xp -(const signed byte*) xp#0 xp = ((signed byte*))(byte/word/signed word/dword/signed dword) 244 +(const signed byte*) xp#0 xp = ((signed byte*))(byte/word/signed word/dword/signed dword) $f4 (signed byte[8]) xps (const signed byte[8]) xps#0 xps = { fill( 8, 0) } (signed byte*) xr -(const signed byte*) xr#0 xr = ((signed byte*))(byte/word/signed word/dword/signed dword) 240 +(const signed byte*) xr#0 xr = ((signed byte*))(byte/word/signed word/dword/signed dword) $f0 (signed byte[8]) xrs (const signed byte[8]) xrs#0 xrs = { fill( 8, 0) } (signed byte[8]) xs -(const signed byte[8]) xs#0 xs = { -(byte/signed byte/word/signed word/dword/signed dword) 52, -(byte/signed byte/word/signed word/dword/signed dword) 52, -(byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52 } +(const signed byte[8]) xs#0 xs = { -(byte/signed byte/word/signed word/dword/signed dword) $34, -(byte/signed byte/word/signed word/dword/signed dword) $34, -(byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34 } (signed byte*) yp -(const signed byte*) yp#0 yp = ((signed byte*))(byte/word/signed word/dword/signed dword) 245 +(const signed byte*) yp#0 yp = ((signed byte*))(byte/word/signed word/dword/signed dword) $f5 (signed byte[8]) yps (const signed byte[8]) yps#0 yps = { fill( 8, 0) } (signed byte*) yr -(const signed byte*) yr#0 yr = ((signed byte*))(byte/word/signed word/dword/signed dword) 241 +(const signed byte*) yr#0 yr = ((signed byte*))(byte/word/signed word/dword/signed dword) $f1 (signed byte[8]) yrs (const signed byte[8]) yrs#0 yrs = { fill( 8, 0) } (signed byte[8]) ys -(const signed byte[8]) ys#0 ys = { -(byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 52, -(byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52, -(byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 52 } +(const signed byte[8]) ys#0 ys = { -(byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $34, -(byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34, -(byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $34 } (signed byte*) zr -(const signed byte*) zr#0 zr = ((signed byte*))(byte/word/signed word/dword/signed dword) 242 +(const signed byte*) zr#0 zr = ((signed byte*))(byte/word/signed word/dword/signed dword) $f2 (signed byte[8]) zrs (const signed byte[8]) zrs#0 zrs = { fill( 8, 0) } (signed byte[8]) zs -(const signed byte[8]) zs#0 zs = { (byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52 } +(const signed byte[8]) zs#0 zs = { (byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34 } zp ZP_BYTE:2 [ sx#10 sx#3 debug_print_init::c#2 debug_print_init::c#1 ] zp ZP_BYTE:3 [ sy#10 sy#3 calculate_matrix::sy#0 debug_print_init::i#2 debug_print_init::i#1 ] @@ -11492,19 +11492,19 @@ anim: { //SEG36 anim::@1 //SEG37 anim::@4 b4: - //SEG38 [23] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG38 [23] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto anim::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 //SEG39 anim::@7 b7: - //SEG40 [24] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto anim::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG40 [24] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fe) goto anim::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$fe bne b7 //SEG41 anim::@10 b10: - //SEG42 [25] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 253) goto anim::@10 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG42 [25] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fd) goto anim::@10 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$fd bne b10 @@ -11568,13 +11568,13 @@ anim: { tya asl tax - //SEG69 [45] (byte/word/signed word/dword/signed dword~) anim::$8 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) xp#0) -- vbuaa=vbuc1_plus__deref_pbuc2 + //SEG69 [45] (byte/word/signed word/dword/signed dword~) anim::$8 ← (byte/word/signed word/dword/signed dword) $80 + (byte)*((const signed byte*) xp#0) -- vbuaa=vbuc1_plus__deref_pbuc2 lda #$80 clc adc xp //SEG70 [46] *((const byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte/word/signed word/dword/signed dword~) anim::$8 -- pbuc1_derefidx_vbuxx=vbuaa sta SPRITES_XPOS,x - //SEG71 [47] (byte/word/signed word/dword/signed dword~) anim::$10 ← (byte/word/signed word/dword/signed dword) 128 + (byte)*((const signed byte*) yp#0) -- vbuaa=vbuc1_plus__deref_pbuc2 + //SEG71 [47] (byte/word/signed word/dword/signed dword~) anim::$10 ← (byte/word/signed word/dword/signed dword) $80 + (byte)*((const signed byte*) yp#0) -- vbuaa=vbuc1_plus__deref_pbuc2 lda #$80 clc adc yp @@ -11645,7 +11645,7 @@ debug_print: { //SEG88 [57] (signed byte) print_sbyte_at::b#4 ← (signed byte) debug_print::print_sbyte_pos1_sb#0 //SEG89 [58] call print_sbyte_at //SEG90 [114] phi from debug_print::print_sbyte_pos1 to print_sbyte_at [phi:debug_print::print_sbyte_pos1->print_sbyte_at] - //SEG91 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos1_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos1_col#0 [phi:debug_print::print_sbyte_pos1->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG91 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos1_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos1_col#0 [phi:debug_print::print_sbyte_pos1->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos1_row*$28+print_sbyte_pos1_col @@ -11660,7 +11660,7 @@ debug_print: { tax //SEG97 [61] call print_sbyte_at //SEG98 [114] phi from debug_print::print_sbyte_pos2 to print_sbyte_at [phi:debug_print::print_sbyte_pos2->print_sbyte_at] - //SEG99 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos2_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos2_col#0 [phi:debug_print::print_sbyte_pos2->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG99 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos2_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos2_col#0 [phi:debug_print::print_sbyte_pos2->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos2_row*$28+print_sbyte_pos2_col @@ -11671,7 +11671,7 @@ debug_print: { //SEG102 debug_print::print_sbyte_pos3 //SEG103 [63] call print_sbyte_at //SEG104 [114] phi from debug_print::print_sbyte_pos3 to print_sbyte_at [phi:debug_print::print_sbyte_pos3->print_sbyte_at] - //SEG105 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos3_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos3_col#0 [phi:debug_print::print_sbyte_pos3->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG105 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos3_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos3_col#0 [phi:debug_print::print_sbyte_pos3->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos3_row*$28+print_sbyte_pos3_col @@ -11687,7 +11687,7 @@ debug_print: { tax //SEG111 [66] call print_sbyte_at //SEG112 [114] phi from debug_print::print_sbyte_pos4 to print_sbyte_at [phi:debug_print::print_sbyte_pos4->print_sbyte_at] - //SEG113 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos4_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos4_col#0 [phi:debug_print::print_sbyte_pos4->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG113 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos4_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos4_col#0 [phi:debug_print::print_sbyte_pos4->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos4_row*$28+print_sbyte_pos4_col @@ -11701,7 +11701,7 @@ debug_print: { //SEG118 [68] (signed byte) print_sbyte_at::b#8 ← (signed byte) debug_print::print_sbyte_pos5_sb#0 //SEG119 [69] call print_sbyte_at //SEG120 [114] phi from debug_print::print_sbyte_pos5 to print_sbyte_at [phi:debug_print::print_sbyte_pos5->print_sbyte_at] - //SEG121 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos5_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos5_col#0 [phi:debug_print::print_sbyte_pos5->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG121 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos5_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos5_col#0 [phi:debug_print::print_sbyte_pos5->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos5_row*$28+print_sbyte_pos5_col @@ -11715,7 +11715,7 @@ debug_print: { //SEG126 [71] (signed byte) print_sbyte_at::b#9 ← (signed byte) debug_print::print_sbyte_pos6_sb#0 //SEG127 [72] call print_sbyte_at //SEG128 [114] phi from debug_print::print_sbyte_pos6 to print_sbyte_at [phi:debug_print::print_sbyte_pos6->print_sbyte_at] - //SEG129 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos6_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos6_col#0 [phi:debug_print::print_sbyte_pos6->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG129 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos6_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos6_col#0 [phi:debug_print::print_sbyte_pos6->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos6_row*$28+print_sbyte_pos6_col @@ -11729,7 +11729,7 @@ debug_print: { //SEG134 [74] (signed byte) print_sbyte_at::b#10 ← (signed byte) debug_print::print_sbyte_pos7_sb#0 //SEG135 [75] call print_sbyte_at //SEG136 [114] phi from debug_print::print_sbyte_pos7 to print_sbyte_at [phi:debug_print::print_sbyte_pos7->print_sbyte_at] - //SEG137 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos7_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos7_col#0 [phi:debug_print::print_sbyte_pos7->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG137 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos7_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos7_col#0 [phi:debug_print::print_sbyte_pos7->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos7_row*$28+print_sbyte_pos7_col @@ -11743,7 +11743,7 @@ debug_print: { //SEG142 [77] (signed byte) print_sbyte_at::b#11 ← (signed byte) debug_print::print_sbyte_pos8_sb#0 //SEG143 [78] call print_sbyte_at //SEG144 [114] phi from debug_print::print_sbyte_pos8 to print_sbyte_at [phi:debug_print::print_sbyte_pos8->print_sbyte_at] - //SEG145 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos8_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos8_col#0 [phi:debug_print::print_sbyte_pos8->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG145 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos8_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos8_col#0 [phi:debug_print::print_sbyte_pos8->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos8_row*$28+print_sbyte_pos8_col @@ -11757,7 +11757,7 @@ debug_print: { //SEG150 [80] (signed byte) print_sbyte_at::b#12 ← (signed byte) debug_print::print_sbyte_pos9_sb#0 //SEG151 [81] call print_sbyte_at //SEG152 [114] phi from debug_print::print_sbyte_pos9 to print_sbyte_at [phi:debug_print::print_sbyte_pos9->print_sbyte_at] - //SEG153 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos9_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos9_col#0 [phi:debug_print::print_sbyte_pos9->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG153 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos9_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos9_col#0 [phi:debug_print::print_sbyte_pos9->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos9_row*$28+print_sbyte_pos9_col @@ -11771,7 +11771,7 @@ debug_print: { //SEG158 [83] (signed byte) print_sbyte_at::b#13 ← (signed byte) debug_print::print_sbyte_pos10_sb#0 //SEG159 [84] call print_sbyte_at //SEG160 [114] phi from debug_print::print_sbyte_pos10 to print_sbyte_at [phi:debug_print::print_sbyte_pos10->print_sbyte_at] - //SEG161 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos10_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos10_col#0 [phi:debug_print::print_sbyte_pos10->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG161 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos10_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos10_col#0 [phi:debug_print::print_sbyte_pos10->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos10_row*$28+print_sbyte_pos10_col @@ -11785,7 +11785,7 @@ debug_print: { //SEG166 [86] (signed byte) print_sbyte_at::b#14 ← (signed byte) debug_print::print_sbyte_pos11_sb#0 //SEG167 [87] call print_sbyte_at //SEG168 [114] phi from debug_print::print_sbyte_pos11 to print_sbyte_at [phi:debug_print::print_sbyte_pos11->print_sbyte_at] - //SEG169 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos11_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos11_col#0 [phi:debug_print::print_sbyte_pos11->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG169 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos11_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos11_col#0 [phi:debug_print::print_sbyte_pos11->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos11_row*$28+print_sbyte_pos11_col @@ -11799,7 +11799,7 @@ debug_print: { //SEG174 [89] (signed byte) print_sbyte_at::b#15 ← (signed byte) debug_print::print_sbyte_pos12_sb#0 //SEG175 [90] call print_sbyte_at //SEG176 [114] phi from debug_print::print_sbyte_pos12 to print_sbyte_at [phi:debug_print::print_sbyte_pos12->print_sbyte_at] - //SEG177 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos12_row#0*(byte/signed byte/word/signed word/dword/signed dword) 40+(const byte) debug_print::print_sbyte_pos12_col#0 [phi:debug_print::print_sbyte_pos12->print_sbyte_at#0] -- pbuz1=pbuc1 + //SEG177 [114] phi (byte*) print_sbyte_at::at#21 = (const byte*) print_line_cursor#0+(const byte) debug_print::print_sbyte_pos12_row#0*(byte/signed byte/word/signed word/dword/signed dword) $28+(const byte) debug_print::print_sbyte_pos12_col#0 [phi:debug_print::print_sbyte_pos12->print_sbyte_at#0] -- pbuz1=pbuc1 lda #print_line_cursor+print_sbyte_pos12_row*$28+print_sbyte_pos12_col @@ -11836,7 +11836,7 @@ debug_print: { //SEG191 [114] phi (signed byte) print_sbyte_at::b#22 = (signed byte) print_sbyte_at::b#16 [phi:debug_print::@1->print_sbyte_at#1] -- register_copy jsr print_sbyte_at //SEG192 debug_print::@27 - //SEG193 [95] (byte*) print_sbyte_at::at#16 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print::c#2 -- pbuz1=pbuc1_plus_vbuz2 + //SEG193 [95] (byte*) print_sbyte_at::at#16 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print::c#2 -- pbuz1=pbuc1_plus_vbuz2 lda c clc adc #print_sbyte_at#1] -- register_copy jsr print_sbyte_at //SEG199 debug_print::@28 - //SEG200 [98] (byte*) print_sbyte_at::at#17 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print::c#2 -- pbuz1=pbuc1_plus_vbuz2 + //SEG200 [98] (byte*) print_sbyte_at::at#17 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print::c#2 -- pbuz1=pbuc1_plus_vbuz2 lda c clc adc #print_sbyte_at#1] -- register_copy jsr print_sbyte_at //SEG206 debug_print::@29 - //SEG207 [101] (byte*) print_sbyte_at::at#18 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) debug_print::c#2 -- pbuz1=pbuc1_plus_vbuz2 + //SEG207 [101] (byte*) print_sbyte_at::at#18 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) debug_print::c#2 -- pbuz1=pbuc1_plus_vbuz2 lda c clc adc #print_sbyte_at#1] -- register_copy jsr print_sbyte_at //SEG213 debug_print::@30 - //SEG214 [104] (byte*) print_sbyte_at::at#19 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) debug_print::c#2 -- pbuz1=pbuc1_plus_vbuz2 + //SEG214 [104] (byte*) print_sbyte_at::at#19 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) debug_print::c#2 -- pbuz1=pbuc1_plus_vbuz2 lda c clc adc #print_sbyte_at#1] -- register_copy jsr print_sbyte_at //SEG220 debug_print::@31 - //SEG221 [107] (byte*) print_sbyte_at::at#20 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) debug_print::c#2 -- pbuz1=pbuc1_plus_vbuz2 + //SEG221 [107] (byte*) print_sbyte_at::at#20 ← (const byte*) debug_print::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) debug_print::c#2 -- pbuz1=pbuc1_plus_vbuz2 lda c clc adc #print_char_at#1] -- register_copy jsr print_char_at //SEG268 print_byte_at::@1 - //SEG269 [132] (byte~) print_byte_at::$2 ← (byte)(signed byte) print_sbyte_at::b#24 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuxx=vbuxx_band_vbuc1 + //SEG269 [132] (byte~) print_byte_at::$2 ← (byte)(signed byte) print_sbyte_at::b#24 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuxx=vbuxx_band_vbuc1 txa and #$f tax @@ -12441,7 +12441,7 @@ debug_print_init: { //SEG340 debug_print_init::@5 //SEG341 [192] call print_str_at //SEG342 [260] phi from debug_print_init::@5 to print_str_at [phi:debug_print_init::@5->print_str_at] - //SEG343 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 34 [phi:debug_print_init::@5->print_str_at#0] -- pbuz1=pbuc1 + //SEG343 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $22 [phi:debug_print_init::@5->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$22 @@ -12456,7 +12456,7 @@ debug_print_init: { //SEG346 debug_print_init::@6 //SEG347 [194] call print_str_at //SEG348 [260] phi from debug_print_init::@6 to print_str_at [phi:debug_print_init::@6->print_str_at] - //SEG349 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 34 [phi:debug_print_init::@6->print_str_at#0] -- pbuz1=pbuc1 + //SEG349 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) $22 [phi:debug_print_init::@6->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*1+$22 @@ -12471,7 +12471,7 @@ debug_print_init: { //SEG352 debug_print_init::@7 //SEG353 [196] call print_str_at //SEG354 [260] phi from debug_print_init::@7 to print_str_at [phi:debug_print_init::@7->print_str_at] - //SEG355 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 34 [phi:debug_print_init::@7->print_str_at#0] -- pbuz1=pbuc1 + //SEG355 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) $22 [phi:debug_print_init::@7->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*2+$22 @@ -12486,7 +12486,7 @@ debug_print_init: { //SEG358 debug_print_init::@8 //SEG359 [198] call print_str_at //SEG360 [260] phi from debug_print_init::@8 to print_str_at [phi:debug_print_init::@8->print_str_at] - //SEG361 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:debug_print_init::@8->print_str_at#0] -- pbuz1=pbuc1 + //SEG361 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $10 [phi:debug_print_init::@8->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$10 @@ -12501,7 +12501,7 @@ debug_print_init: { //SEG364 debug_print_init::@9 //SEG365 [200] call print_str_at //SEG366 [260] phi from debug_print_init::@9 to print_str_at [phi:debug_print_init::@9->print_str_at] - //SEG367 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 17 [phi:debug_print_init::@9->print_str_at#0] -- pbuz1=pbuc1 + //SEG367 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $11 [phi:debug_print_init::@9->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$11 @@ -12516,7 +12516,7 @@ debug_print_init: { //SEG370 debug_print_init::@10 //SEG371 [202] call print_str_at //SEG372 [260] phi from debug_print_init::@10 to print_str_at [phi:debug_print_init::@10->print_str_at] - //SEG373 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 18 [phi:debug_print_init::@10->print_str_at#0] -- pbuz1=pbuc1 + //SEG373 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $12 [phi:debug_print_init::@10->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$12 @@ -12531,7 +12531,7 @@ debug_print_init: { //SEG376 debug_print_init::@11 //SEG377 [204] call print_str_at //SEG378 [260] phi from debug_print_init::@11 to print_str_at [phi:debug_print_init::@11->print_str_at] - //SEG379 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 19 [phi:debug_print_init::@11->print_str_at#0] -- pbuz1=pbuc1 + //SEG379 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $13 [phi:debug_print_init::@11->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$13 @@ -12546,7 +12546,7 @@ debug_print_init: { //SEG382 debug_print_init::@12 //SEG383 [206] call print_str_at //SEG384 [260] phi from debug_print_init::@12 to print_str_at [phi:debug_print_init::@12->print_str_at] - //SEG385 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 20 [phi:debug_print_init::@12->print_str_at#0] -- pbuz1=pbuc1 + //SEG385 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $14 [phi:debug_print_init::@12->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$14 @@ -12561,7 +12561,7 @@ debug_print_init: { //SEG388 debug_print_init::@13 //SEG389 [208] call print_str_at //SEG390 [260] phi from debug_print_init::@13 to print_str_at [phi:debug_print_init::@13->print_str_at] - //SEG391 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 21 [phi:debug_print_init::@13->print_str_at#0] -- pbuz1=pbuc1 + //SEG391 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $15 [phi:debug_print_init::@13->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$15 @@ -12576,7 +12576,7 @@ debug_print_init: { //SEG394 debug_print_init::@14 //SEG395 [210] call print_str_at //SEG396 [260] phi from debug_print_init::@14 to print_str_at [phi:debug_print_init::@14->print_str_at] - //SEG397 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 22 [phi:debug_print_init::@14->print_str_at#0] -- pbuz1=pbuc1 + //SEG397 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $16 [phi:debug_print_init::@14->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$16 @@ -12591,7 +12591,7 @@ debug_print_init: { //SEG400 debug_print_init::@15 //SEG401 [212] call print_str_at //SEG402 [260] phi from debug_print_init::@15 to print_str_at [phi:debug_print_init::@15->print_str_at] - //SEG403 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 23 [phi:debug_print_init::@15->print_str_at#0] -- pbuz1=pbuc1 + //SEG403 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $17 [phi:debug_print_init::@15->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$17 @@ -12606,7 +12606,7 @@ debug_print_init: { //SEG406 debug_print_init::@16 //SEG407 [214] call print_str_at //SEG408 [260] phi from debug_print_init::@16 to print_str_at [phi:debug_print_init::@16->print_str_at] - //SEG409 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24 [phi:debug_print_init::@16->print_str_at#0] -- pbuz1=pbuc1 + //SEG409 [260] phi (byte*) print_str_at::at#15 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18 [phi:debug_print_init::@16->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$18 @@ -12647,7 +12647,7 @@ debug_print_init: { //SEG423 [114] phi (signed byte) print_sbyte_at::b#22 = (signed byte) print_sbyte_at::b#1 [phi:debug_print_init::@1->print_sbyte_at#1] -- register_copy jsr print_sbyte_at //SEG424 debug_print_init::@18 - //SEG425 [219] (byte*) print_sbyte_at::at#1 ← (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print_init::c#2 -- pbuz1=pbuc1_plus_vbuz2 + //SEG425 [219] (byte*) print_sbyte_at::at#1 ← (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) debug_print_init::c#2 -- pbuz1=pbuc1_plus_vbuz2 lda c clc adc #print_sbyte_at#1] -- register_copy jsr print_sbyte_at //SEG431 debug_print_init::@19 - //SEG432 [222] (byte*) print_sbyte_at::at#2 ← (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print_init::c#2 -- pbuz1=pbuc1_plus_vbuz2 + //SEG432 [222] (byte*) print_sbyte_at::at#2 ← (const byte*) debug_print_init::at_line#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) debug_print_init::c#2 -- pbuz1=pbuc1_plus_vbuz2 lda c clc adc #print_line_cursor+$3e8 bne b1 @@ -12979,7 +12979,7 @@ print_cls: { sprites_init: { .label SCREEN = $400 .label sprites_ptr = SCREEN+$3f8 - //SEG503 [273] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 -- _deref_pbuc1=vbuc2 + //SEG503 [273] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff -- _deref_pbuc1=vbuc2 lda #$ff sta SPRITES_ENABLE //SEG504 [274] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] @@ -12989,7 +12989,7 @@ sprites_init: { //SEG507 [274] phi (byte) sprites_init::i#2 = (byte) sprites_init::i#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy //SEG508 sprites_init::@1 b1: - //SEG509 [275] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG509 [275] *((const byte*) sprites_init::sprites_ptr#0 + (byte) sprites_init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 -- pbuc1_derefidx_vbuxx=vbuc2 lda #$ff&SPRITE/$40 sta sprites_ptr,x //SEG510 [276] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::i#2) ← (const byte) GREEN#0 -- pbuc1_derefidx_vbuxx=vbuc2 diff --git a/src/test/ref/examples/3d/3d.sym b/src/test/ref/examples/3d/3d.sym index be94415b4..46c1a564c 100644 --- a/src/test/ref/examples/3d/3d.sym +++ b/src/test/ref/examples/3d/3d.sym @@ -9,7 +9,7 @@ (byte) BLACK (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN (byte*) CIA1_INTERRUPT @@ -25,11 +25,11 @@ (byte) CIA_INTERRUPT_CLEAR (byte*) COLS (signed byte*) COSH -(const signed byte*) COSH#0 COSH = (const signed byte*) SINH#0+(byte/signed byte/word/signed word/dword/signed dword) 64 +(const signed byte*) COSH#0 COSH = (const signed byte*) SINH#0+(byte/signed byte/word/signed word/dword/signed dword) $40 (byte*) COSH_HI (byte*) COSH_LO (signed byte*) COSQ -(const signed byte*) COSQ#0 COSQ = (const signed byte*) SINQ#0+(byte/signed byte/word/signed word/dword/signed dword) 64 +(const signed byte*) COSQ#0 COSQ = (const signed byte*) SINQ#0+(byte/signed byte/word/signed word/dword/signed dword) $40 (byte*) COSQ_HI (byte*) COSQ_LO (byte) CYAN @@ -51,13 +51,13 @@ (byte*) LIGHTPEN_X (byte*) LIGHTPEN_Y (byte) LIGHT_BLUE -(const byte) LIGHT_BLUE#0 LIGHT_BLUE = (byte/signed byte/word/signed word/dword/signed dword) 14 +(const byte) LIGHT_BLUE#0 LIGHT_BLUE = (byte/signed byte/word/signed word/dword/signed dword) $e (byte) LIGHT_GREEN (byte) LIGHT_GREY -(const byte) LIGHT_GREY#0 LIGHT_GREY = (byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte) LIGHT_GREY#0 LIGHT_GREY = (byte/signed byte/word/signed word/dword/signed dword) $f (byte) ORANGE (signed byte*) PERSP_Z -(const signed byte*) PERSP_Z#0 PERSP_Z = ((signed byte*))(word/signed word/dword/signed dword) 10240 +(const signed byte*) PERSP_Z#0 PERSP_Z = ((signed byte*))(word/signed word/dword/signed dword) $2800 (byte) PINK (byte*) PROCPORT (byte) PROCPORT_BASIC_KERNEL_IO @@ -69,28 +69,28 @@ (byte) PROCPORT_RAM_IO (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (signed byte*) SINH -(const signed byte*) SINH#0 SINH = ((signed byte*))(word/signed word/dword/signed dword) 8192 +(const signed byte*) SINH#0 SINH = ((signed byte*))(word/signed word/dword/signed dword) $2000 (byte*) SINH_HI -(const byte*) SINH_HI#0 SINH_HI = ((byte*))(word/signed word/dword/signed dword) 16896 +(const byte*) SINH_HI#0 SINH_HI = ((byte*))(word/signed word/dword/signed dword) $4200 (byte*) SINH_LO -(const byte*) SINH_LO#0 SINH_LO = ((byte*))(word/signed word/dword/signed dword) 16384 +(const byte*) SINH_LO#0 SINH_LO = ((byte*))(word/signed word/dword/signed dword) $4000 (signed byte*) SINQ -(const signed byte*) SINQ#0 SINQ = ((signed byte*))(word/signed word/dword/signed dword) 8704 +(const signed byte*) SINQ#0 SINQ = ((signed byte*))(word/signed word/dword/signed dword) $2200 (byte*) SINQ_HI -(const byte*) SINQ_HI#0 SINQ_HI = ((byte*))(word/signed word/dword/signed dword) 17920 +(const byte*) SINQ_HI#0 SINQ_HI = ((byte*))(word/signed word/dword/signed dword) $4600 (byte*) SINQ_LO -(const byte*) SINQ_LO#0 SINQ_LO = ((byte*))(word/signed word/dword/signed dword) 17408 +(const byte*) SINQ_LO#0 SINQ_LO = ((byte*))(word/signed word/dword/signed dword) $4400 (byte*) SPRITE -(const byte*) SPRITE#0 SPRITE = ((byte*))(word/signed word/dword/signed dword) 12288 +(const byte*) SPRITE#0 SPRITE = ((byte*))(word/signed word/dword/signed dword) $3000 (byte*) SPRITES_COLS -(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) 53287 +(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) $d027 (byte*) SPRITES_ENABLE -(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) 53269 +(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) $d015 (byte*) SPRITES_EXPAND_X (byte*) SPRITES_EXPAND_Y (byte*) SPRITES_MC @@ -99,9 +99,9 @@ (byte*) SPRITES_PRIORITY (byte*) SPRITES_XMSB (byte*) SPRITES_XPOS -(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) 53248 +(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) $d000 (byte*) SPRITES_YPOS -(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) 53249 +(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) $d001 (word) SPRITE_PTRS (byte) VIC_BMM (byte*) VIC_CONTROL @@ -205,7 +205,7 @@ (label) debug_print::@9 (label) debug_print::@return (byte*) debug_print::at_line -(const byte*) debug_print::at_line#0 at_line = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 19*(byte/signed byte/word/signed word/dword/signed dword) 40 +(const byte*) debug_print::at_line#0 at_line = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $13*(byte/signed byte/word/signed word/dword/signed dword) $28 (byte) debug_print::c (byte) debug_print::c#1 c zp ZP_BYTE:4 67.33333333333333 (byte) debug_print::c#2 c zp ZP_BYTE:4 42.52631578947369 @@ -218,7 +218,7 @@ (byte*~) debug_print::print_sbyte_pos10_$1 (byte*~) debug_print::print_sbyte_pos10_$2 (byte) debug_print::print_sbyte_pos10_col -(const byte) debug_print::print_sbyte_pos10_col#0 print_sbyte_pos10_col = (byte/signed byte/word/signed word/dword/signed dword) 29 +(const byte) debug_print::print_sbyte_pos10_col#0 print_sbyte_pos10_col = (byte/signed byte/word/signed word/dword/signed dword) $1d (byte) debug_print::print_sbyte_pos10_row (const byte) debug_print::print_sbyte_pos10_row#0 print_sbyte_pos10_row = (byte/signed byte/word/signed word/dword/signed dword) 6 (signed byte) debug_print::print_sbyte_pos10_sb @@ -228,7 +228,7 @@ (byte*~) debug_print::print_sbyte_pos11_$1 (byte*~) debug_print::print_sbyte_pos11_$2 (byte) debug_print::print_sbyte_pos11_col -(const byte) debug_print::print_sbyte_pos11_col#0 print_sbyte_pos11_col = (byte/signed byte/word/signed word/dword/signed dword) 33 +(const byte) debug_print::print_sbyte_pos11_col#0 print_sbyte_pos11_col = (byte/signed byte/word/signed word/dword/signed dword) $21 (byte) debug_print::print_sbyte_pos11_row (const byte) debug_print::print_sbyte_pos11_row#0 print_sbyte_pos11_row = (byte/signed byte/word/signed word/dword/signed dword) 6 (signed byte) debug_print::print_sbyte_pos11_sb @@ -238,7 +238,7 @@ (byte*~) debug_print::print_sbyte_pos12_$1 (byte*~) debug_print::print_sbyte_pos12_$2 (byte) debug_print::print_sbyte_pos12_col -(const byte) debug_print::print_sbyte_pos12_col#0 print_sbyte_pos12_col = (byte/signed byte/word/signed word/dword/signed dword) 37 +(const byte) debug_print::print_sbyte_pos12_col#0 print_sbyte_pos12_col = (byte/signed byte/word/signed word/dword/signed dword) $25 (byte) debug_print::print_sbyte_pos12_row (const byte) debug_print::print_sbyte_pos12_row#0 print_sbyte_pos12_row = (byte/signed byte/word/signed word/dword/signed dword) 6 (signed byte) debug_print::print_sbyte_pos12_sb @@ -247,7 +247,7 @@ (byte*~) debug_print::print_sbyte_pos1_$1 (byte*~) debug_print::print_sbyte_pos1_$2 (byte) debug_print::print_sbyte_pos1_col -(const byte) debug_print::print_sbyte_pos1_col#0 print_sbyte_pos1_col = (byte/signed byte/word/signed word/dword/signed dword) 37 +(const byte) debug_print::print_sbyte_pos1_col#0 print_sbyte_pos1_col = (byte/signed byte/word/signed word/dword/signed dword) $25 (byte) debug_print::print_sbyte_pos1_row (const byte) debug_print::print_sbyte_pos1_row#0 print_sbyte_pos1_row = (byte/signed byte/word/signed word/dword/signed dword) 0 (signed byte) debug_print::print_sbyte_pos1_sb @@ -257,7 +257,7 @@ (byte*~) debug_print::print_sbyte_pos2_$1 (byte*~) debug_print::print_sbyte_pos2_$2 (byte) debug_print::print_sbyte_pos2_col -(const byte) debug_print::print_sbyte_pos2_col#0 print_sbyte_pos2_col = (byte/signed byte/word/signed word/dword/signed dword) 37 +(const byte) debug_print::print_sbyte_pos2_col#0 print_sbyte_pos2_col = (byte/signed byte/word/signed word/dword/signed dword) $25 (byte) debug_print::print_sbyte_pos2_row (const byte) debug_print::print_sbyte_pos2_row#0 print_sbyte_pos2_row = (byte/signed byte/word/signed word/dword/signed dword) 1 (signed byte) debug_print::print_sbyte_pos2_sb @@ -267,7 +267,7 @@ (byte*~) debug_print::print_sbyte_pos3_$1 (byte*~) debug_print::print_sbyte_pos3_$2 (byte) debug_print::print_sbyte_pos3_col -(const byte) debug_print::print_sbyte_pos3_col#0 print_sbyte_pos3_col = (byte/signed byte/word/signed word/dword/signed dword) 37 +(const byte) debug_print::print_sbyte_pos3_col#0 print_sbyte_pos3_col = (byte/signed byte/word/signed word/dword/signed dword) $25 (byte) debug_print::print_sbyte_pos3_row (const byte) debug_print::print_sbyte_pos3_row#0 print_sbyte_pos3_row = (byte/signed byte/word/signed word/dword/signed dword) 2 (signed byte) debug_print::print_sbyte_pos3_sb @@ -276,7 +276,7 @@ (byte*~) debug_print::print_sbyte_pos4_$1 (byte*~) debug_print::print_sbyte_pos4_$2 (byte) debug_print::print_sbyte_pos4_col -(const byte) debug_print::print_sbyte_pos4_col#0 print_sbyte_pos4_col = (byte/signed byte/word/signed word/dword/signed dword) 29 +(const byte) debug_print::print_sbyte_pos4_col#0 print_sbyte_pos4_col = (byte/signed byte/word/signed word/dword/signed dword) $1d (byte) debug_print::print_sbyte_pos4_row (const byte) debug_print::print_sbyte_pos4_row#0 print_sbyte_pos4_row = (byte/signed byte/word/signed word/dword/signed dword) 4 (signed byte) debug_print::print_sbyte_pos4_sb @@ -286,7 +286,7 @@ (byte*~) debug_print::print_sbyte_pos5_$1 (byte*~) debug_print::print_sbyte_pos5_$2 (byte) debug_print::print_sbyte_pos5_col -(const byte) debug_print::print_sbyte_pos5_col#0 print_sbyte_pos5_col = (byte/signed byte/word/signed word/dword/signed dword) 33 +(const byte) debug_print::print_sbyte_pos5_col#0 print_sbyte_pos5_col = (byte/signed byte/word/signed word/dword/signed dword) $21 (byte) debug_print::print_sbyte_pos5_row (const byte) debug_print::print_sbyte_pos5_row#0 print_sbyte_pos5_row = (byte/signed byte/word/signed word/dword/signed dword) 4 (signed byte) debug_print::print_sbyte_pos5_sb @@ -296,7 +296,7 @@ (byte*~) debug_print::print_sbyte_pos6_$1 (byte*~) debug_print::print_sbyte_pos6_$2 (byte) debug_print::print_sbyte_pos6_col -(const byte) debug_print::print_sbyte_pos6_col#0 print_sbyte_pos6_col = (byte/signed byte/word/signed word/dword/signed dword) 37 +(const byte) debug_print::print_sbyte_pos6_col#0 print_sbyte_pos6_col = (byte/signed byte/word/signed word/dword/signed dword) $25 (byte) debug_print::print_sbyte_pos6_row (const byte) debug_print::print_sbyte_pos6_row#0 print_sbyte_pos6_row = (byte/signed byte/word/signed word/dword/signed dword) 4 (signed byte) debug_print::print_sbyte_pos6_sb @@ -306,7 +306,7 @@ (byte*~) debug_print::print_sbyte_pos7_$1 (byte*~) debug_print::print_sbyte_pos7_$2 (byte) debug_print::print_sbyte_pos7_col -(const byte) debug_print::print_sbyte_pos7_col#0 print_sbyte_pos7_col = (byte/signed byte/word/signed word/dword/signed dword) 29 +(const byte) debug_print::print_sbyte_pos7_col#0 print_sbyte_pos7_col = (byte/signed byte/word/signed word/dword/signed dword) $1d (byte) debug_print::print_sbyte_pos7_row (const byte) debug_print::print_sbyte_pos7_row#0 print_sbyte_pos7_row = (byte/signed byte/word/signed word/dword/signed dword) 5 (signed byte) debug_print::print_sbyte_pos7_sb @@ -316,7 +316,7 @@ (byte*~) debug_print::print_sbyte_pos8_$1 (byte*~) debug_print::print_sbyte_pos8_$2 (byte) debug_print::print_sbyte_pos8_col -(const byte) debug_print::print_sbyte_pos8_col#0 print_sbyte_pos8_col = (byte/signed byte/word/signed word/dword/signed dword) 33 +(const byte) debug_print::print_sbyte_pos8_col#0 print_sbyte_pos8_col = (byte/signed byte/word/signed word/dword/signed dword) $21 (byte) debug_print::print_sbyte_pos8_row (const byte) debug_print::print_sbyte_pos8_row#0 print_sbyte_pos8_row = (byte/signed byte/word/signed word/dword/signed dword) 5 (signed byte) debug_print::print_sbyte_pos8_sb @@ -326,7 +326,7 @@ (byte*~) debug_print::print_sbyte_pos9_$1 (byte*~) debug_print::print_sbyte_pos9_$2 (byte) debug_print::print_sbyte_pos9_col -(const byte) debug_print::print_sbyte_pos9_col#0 print_sbyte_pos9_col = (byte/signed byte/word/signed word/dword/signed dword) 37 +(const byte) debug_print::print_sbyte_pos9_col#0 print_sbyte_pos9_col = (byte/signed byte/word/signed word/dword/signed dword) $25 (byte) debug_print::print_sbyte_pos9_row (const byte) debug_print::print_sbyte_pos9_row#0 print_sbyte_pos9_row = (byte/signed byte/word/signed word/dword/signed dword) 5 (signed byte) debug_print::print_sbyte_pos9_sb @@ -369,11 +369,11 @@ (label) debug_print_init::@9 (label) debug_print_init::@return (byte*) debug_print_init::COLS -(const byte*) debug_print_init::COLS#0 COLS = ((byte*))(word/dword/signed dword) 55296 +(const byte*) debug_print_init::COLS#0 COLS = ((byte*))(word/dword/signed dword) $d800 (byte*) debug_print_init::at_cols -(const byte*) debug_print_init::at_cols#0 at_cols = (const byte*) debug_print_init::COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 16*(byte/signed byte/word/signed word/dword/signed dword) 40 +(const byte*) debug_print_init::at_cols#0 at_cols = (const byte*) debug_print_init::COLS#0+(byte/signed byte/word/signed word/dword/signed dword) $10*(byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) debug_print_init::at_line -(const byte*) debug_print_init::at_line#0 at_line = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 16*(byte/signed byte/word/signed word/dword/signed dword) 40 +(const byte*) debug_print_init::at_line#0 at_line = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $10*(byte/signed byte/word/signed word/dword/signed dword) $28 (byte) debug_print_init::c (byte) debug_print_init::c#1 c zp ZP_BYTE:2 7.333333333333333 (byte) debug_print_init::c#2 c zp ZP_BYTE:2 23.512195121951223 @@ -402,11 +402,11 @@ (label) main::@2 (label) main::@return (byte*) mulf_sqr1 -(const byte*) mulf_sqr1#0 mulf_sqr1 = ((byte*))(word/signed word/dword/signed dword) 9216 +(const byte*) mulf_sqr1#0 mulf_sqr1 = ((byte*))(word/signed word/dword/signed dword) $2400 (byte*) mulf_sqr2 -(const byte*) mulf_sqr2#0 mulf_sqr2 = ((byte*))(word/signed word/dword/signed dword) 9728 +(const byte*) mulf_sqr2#0 mulf_sqr2 = ((byte*))(word/signed word/dword/signed dword) $2600 (signed byte*) pp -(const signed byte*) pp#0 pp = ((signed byte*))(byte/word/signed word/dword/signed dword) 243 +(const signed byte*) pp#0 pp = ((signed byte*))(byte/word/signed word/dword/signed dword) $f3 (signed byte[8]) pps (const signed byte[8]) pps#0 pps = { fill( 8, 0) } (void()) print_byte_at((byte) print_byte_at::b , (byte*) print_byte_at::at) @@ -439,7 +439,7 @@ (byte[]) print_hextab (const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor -(const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) $400 (void()) print_sbyte_at((signed byte) print_sbyte_at::b , (byte*) print_sbyte_at::at) (label) print_sbyte_at::@1 (label) print_sbyte_at::@2 @@ -495,9 +495,9 @@ (byte*) print_str_at::str#13 str zp ZP_WORD:6 11.5 (byte*) print_str_at::str#15 str zp ZP_WORD:6 2.0 (word*) psp1 -(const word*) psp1#0 psp1 = ((word*))(byte/word/signed word/dword/signed dword) 246 +(const word*) psp1#0 psp1 = ((word*))(byte/word/signed word/dword/signed dword) $f6 (word*) psp2 -(const word*) psp2#0 psp2 = ((word*))(byte/word/signed word/dword/signed dword) 248 +(const word*) psp2#0 psp2 = ((word*))(byte/word/signed word/dword/signed dword) $f8 (void()) rotate_matrix((signed byte) rotate_matrix::x , (signed byte) rotate_matrix::y , (signed byte) rotate_matrix::z) (label) rotate_matrix::@return (signed byte) rotate_matrix::x @@ -512,12 +512,12 @@ (label) sprites_init::@1 (label) sprites_init::@return (byte*) sprites_init::SCREEN -(const byte*) sprites_init::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) sprites_init::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) sprites_init::i (byte) sprites_init::i#1 reg byte x 16.5 (byte) sprites_init::i#2 reg byte x 14.666666666666666 (byte*) sprites_init::sprites_ptr -(const byte*) sprites_init::sprites_ptr#0 sprites_ptr = (const byte*) sprites_init::SCREEN#0+(word/signed word/dword/signed dword) 1016 +(const byte*) sprites_init::sprites_ptr#0 sprites_ptr = (const byte*) sprites_init::SCREEN#0+(word/signed word/dword/signed dword) $3f8 (void()) store_matrix() (label) store_matrix::@return (signed byte) sx @@ -529,31 +529,31 @@ (signed byte) sz (const signed byte) sz#0 sz = (byte/signed byte/word/signed word/dword/signed dword) 0 (signed byte*) xp -(const signed byte*) xp#0 xp = ((signed byte*))(byte/word/signed word/dword/signed dword) 244 +(const signed byte*) xp#0 xp = ((signed byte*))(byte/word/signed word/dword/signed dword) $f4 (signed byte[8]) xps (const signed byte[8]) xps#0 xps = { fill( 8, 0) } (signed byte*) xr -(const signed byte*) xr#0 xr = ((signed byte*))(byte/word/signed word/dword/signed dword) 240 +(const signed byte*) xr#0 xr = ((signed byte*))(byte/word/signed word/dword/signed dword) $f0 (signed byte[8]) xrs (const signed byte[8]) xrs#0 xrs = { fill( 8, 0) } (signed byte[8]) xs -(const signed byte[8]) xs#0 xs = { -(byte/signed byte/word/signed word/dword/signed dword) 52, -(byte/signed byte/word/signed word/dword/signed dword) 52, -(byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52 } +(const signed byte[8]) xs#0 xs = { -(byte/signed byte/word/signed word/dword/signed dword) $34, -(byte/signed byte/word/signed word/dword/signed dword) $34, -(byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34 } (signed byte*) yp -(const signed byte*) yp#0 yp = ((signed byte*))(byte/word/signed word/dword/signed dword) 245 +(const signed byte*) yp#0 yp = ((signed byte*))(byte/word/signed word/dword/signed dword) $f5 (signed byte[8]) yps (const signed byte[8]) yps#0 yps = { fill( 8, 0) } (signed byte*) yr -(const signed byte*) yr#0 yr = ((signed byte*))(byte/word/signed word/dword/signed dword) 241 +(const signed byte*) yr#0 yr = ((signed byte*))(byte/word/signed word/dword/signed dword) $f1 (signed byte[8]) yrs (const signed byte[8]) yrs#0 yrs = { fill( 8, 0) } (signed byte[8]) ys -(const signed byte[8]) ys#0 ys = { -(byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 52, -(byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52, -(byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 52 } +(const signed byte[8]) ys#0 ys = { -(byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $34, -(byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34, -(byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $34 } (signed byte*) zr -(const signed byte*) zr#0 zr = ((signed byte*))(byte/word/signed word/dword/signed dword) 242 +(const signed byte*) zr#0 zr = ((signed byte*))(byte/word/signed word/dword/signed dword) $f2 (signed byte[8]) zrs (const signed byte[8]) zrs#0 zrs = { fill( 8, 0) } (signed byte[8]) zs -(const signed byte[8]) zs#0 zs = { (byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52, (byte/signed byte/word/signed word/dword/signed dword) 52 } +(const signed byte[8]) zs#0 zs = { (byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34, (byte/signed byte/word/signed word/dword/signed dword) $34 } zp ZP_BYTE:2 [ sx#10 sx#3 debug_print_init::c#2 debug_print_init::c#1 ] zp ZP_BYTE:3 [ sy#10 sy#3 calculate_matrix::sy#0 debug_print_init::i#2 debug_print_init::i#1 ] diff --git a/src/test/ref/examples/3d/perspective.cfg b/src/test/ref/examples/3d/perspective.cfg index 672ecfa0d..9a5911f8a 100644 --- a/src/test/ref/examples/3d/perspective.cfg +++ b/src/test/ref/examples/3d/perspective.cfg @@ -23,8 +23,8 @@ main: scope:[main] from @27 [5] call mulf_init to:main::@1 main::@1: scope:[main] from main - [6] *((const word*) psp1#0) ← ((word))(const byte[512]) mulf_sqr1#0 - [7] *((const word*) psp2#0) ← ((word))(const byte[512]) mulf_sqr2#0 + [6] *((const word*) psp1#0) ← ((word))(const byte[$200]) mulf_sqr1#0 + [7] *((const word*) psp2#0) ← ((word))(const byte[$200]) mulf_sqr2#0 [8] call print_cls to:main::@2 main::@2: scope:[main] from main::@1 @@ -93,15 +93,15 @@ print_ln: scope:[print_ln] from do_perspective::@12 [39] phi() to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 - [40] (byte*) print_line_cursor#11 ← phi( print_ln/((byte*))(word/signed word/dword/signed dword) 1024 print_ln::@1/(byte*) print_line_cursor#1 ) - [41] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [40] (byte*) print_line_cursor#11 ← phi( print_ln/((byte*))(word/signed word/dword/signed dword) $400 print_ln::@1/(byte*) print_line_cursor#1 ) + [41] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) $28 [42] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 [43] return to:@return print_str: scope:[print_str] from do_perspective do_perspective::@11 do_perspective::@2 do_perspective::@4 do_perspective::@6 do_perspective::@9 - [44] (byte*) print_char_cursor#74 ← phi( do_perspective/((byte*))(word/signed word/dword/signed dword) 1024 do_perspective::@11/(byte*) print_char_cursor#12 do_perspective::@2/(byte*) print_char_cursor#12 do_perspective::@4/(byte*) print_char_cursor#12 do_perspective::@6/(byte*) print_char_cursor#12 do_perspective::@9/(byte*) print_char_cursor#12 ) + [44] (byte*) print_char_cursor#74 ← phi( do_perspective/((byte*))(word/signed word/dword/signed dword) $400 do_perspective::@11/(byte*) print_char_cursor#12 do_perspective::@2/(byte*) print_char_cursor#12 do_perspective::@4/(byte*) print_char_cursor#12 do_perspective::@6/(byte*) print_char_cursor#12 do_perspective::@9/(byte*) print_char_cursor#12 ) [44] (byte*) print_str::str#9 ← phi( do_perspective/(const string) do_perspective::str do_perspective::@11/(const string) do_perspective::str5 do_perspective::@2/(const string) do_perspective::str1 do_perspective::@4/(const string) do_perspective::str1 do_perspective::@6/(const string) do_perspective::str3 do_perspective::@9/(const string) do_perspective::str1 ) to:print_str::@1 print_str::@1: scope:[print_str] from print_str print_str::@2 @@ -125,7 +125,7 @@ print_byte: scope:[print_byte] from do_perspective::@10 do_perspective::@8 prin [54] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [55] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [55] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) $f [56] (byte) print_char::ch#3 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [57] call print_char to:print_byte::@return @@ -177,10 +177,10 @@ print_cls: scope:[print_cls] from main::@1 [79] phi() to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 - [80] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) 1024 print_cls::@1/(byte*) print_cls::sc#1 ) + [80] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) $400 print_cls::@1/(byte*) print_cls::sc#1 ) [81] *((byte*) print_cls::sc#2) ← (byte) ' ' [82] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [83] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [83] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [84] return @@ -193,22 +193,22 @@ mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@1 [86] (byte) mulf_init::i#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@1/(byte) mulf_init::i#1 ) [86] (signed word) mulf_init::sqr#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@1/(signed word) mulf_init::sqr#1 ) [87] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 - [88] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 - [89] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 + [88] *((const byte[$200]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 + [89] *((const byte[$200]) mulf_sqr1#0+(word/signed word/dword/signed dword) $100 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [90] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 - [91] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 + [91] *((const byte[$200]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 [92] (byte~) mulf_init::$4 ← - (byte) mulf_init::i#2 - [93] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 - [94] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 - [95] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 + [93] *((const byte[$200]) mulf_sqr1#0+(word/signed word/dword/signed dword) $100 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 + [94] *((const byte[$200]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 + [95] *((const byte[$200]) mulf_sqr2#0+(word/signed word/dword/signed dword) $100+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [96] (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 - [97] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 + [97] *((const byte[$200]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 [98] (byte/signed word/word/dword/signed dword~) mulf_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 - [99] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 + [99] *((const byte[$200]) mulf_sqr2#0+(word/signed word/dword/signed dword) $100 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 [100] (signed word) mulf_init::sqr#1 ← (signed word) mulf_init::sqr#2 + (signed word) mulf_init::add#2 [101] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [102] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 - [103] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 + [103] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) $81) goto mulf_init::@1 to:mulf_init::@return mulf_init::@return: scope:[mulf_init] from mulf_init::@1 [104] return diff --git a/src/test/ref/examples/3d/perspective.log b/src/test/ref/examples/3d/perspective.log index 063452f50..811c1f681 100644 --- a/src/test/ref/examples/3d/perspective.log +++ b/src/test/ref/examples/3d/perspective.log @@ -1,5 +1,5 @@ -Resolved forward reference mulf_sqr1 to (byte[512]) mulf_sqr1 -Resolved forward reference mulf_sqr2 to (byte[512]) mulf_sqr2 +Resolved forward reference mulf_sqr1 to (byte[$200]) mulf_sqr1 +Resolved forward reference mulf_sqr2 to (byte[$200]) mulf_sqr2 Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx CONTROL FLOW GRAPH SSA @@ -7,66 +7,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -77,15 +77,15 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@4 @4: scope:[] from @begin - (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 to:@16 @@ -118,7 +118,7 @@ print_ln: scope:[print_ln] from do_perspective::@12 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 (byte*) print_char_cursor#35 ← phi( print_ln/(byte*) print_char_cursor#65 print_ln::@1/(byte*) print_char_cursor#35 ) (byte*) print_line_cursor#11 ← phi( print_ln/(byte*) print_line_cursor#21 print_ln::@1/(byte*) print_line_cursor#1 ) - (byte*~) print_ln::$0 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) print_ln::$0 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) print_line_cursor#1 ← (byte*~) print_ln::$0 (bool~) print_ln::$1 ← (byte*) print_line_cursor#1 < (byte*) print_char_cursor#35 if((bool~) print_ln::$1) goto print_ln::@1 @@ -197,7 +197,7 @@ print_byte::@1: scope:[print_byte] from print_byte (byte) print_byte::b#4 ← phi( print_byte/(byte) print_byte::b#3 ) (byte*) print_char_cursor#41 ← phi( print_byte/(byte*) print_char_cursor#13 ) (byte*) print_char_cursor#9 ← (byte*) print_char_cursor#41 - (byte~) print_byte::$2 ← (byte) print_byte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) print_byte::$2 ← (byte) print_byte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte) print_char::ch#3 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$2) call print_char to:print_byte::@2 @@ -230,7 +230,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 (byte*) print_cls::sc#2 ← phi( print_cls/(byte*) print_cls::sc#0 print_cls::@1/(byte*) print_cls::sc#1 ) *((byte*) print_cls::sc#2) ← (byte) ' ' (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) 1000 + (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) $3e8 (bool~) print_cls::$1 ← (byte*) print_cls::sc#1 != (byte*~) print_cls::$0 if((bool~) print_cls::$1) goto print_cls::@1 to:print_cls::@2 @@ -250,11 +250,11 @@ print_cls::@return: scope:[print_cls] from print_cls::@2 (byte*) print_screen#8 ← phi( @16/(byte*) print_screen#9 ) (byte*) print_char_cursor#78 ← phi( @16/(byte*) print_char_cursor#79 ) (byte*) print_line_cursor#29 ← phi( @16/(byte*) print_line_cursor#30 ) - (signed byte*) xr#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 240 - (signed byte*) yr#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 241 - (signed byte*) zr#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 242 - (word*) psp1#0 ← ((word*)) (byte/word/signed word/dword/signed dword) 243 - (word*) psp2#0 ← ((word*)) (byte/word/signed word/dword/signed dword) 245 + (signed byte*) xr#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) $f0 + (signed byte*) yr#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) $f1 + (signed byte*) zr#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) $f2 + (word*) psp1#0 ← ((word*)) (byte/word/signed word/dword/signed dword) $f3 + (word*) psp2#0 ← ((word*)) (byte/word/signed word/dword/signed dword) $f5 to:@26 main: scope:[main] from @27 (signed byte*) zr#12 ← phi( @27/(signed byte*) zr#13 ) @@ -277,9 +277,9 @@ main::@1: scope:[main] from main (byte*) print_screen#4 ← phi( main/(byte*) print_screen#5 ) (word*) psp2#1 ← phi( main/(word*) psp2#2 ) (word*) psp1#1 ← phi( main/(word*) psp1#2 ) - (word~) main::$1 ← ((word)) (byte[512]) mulf_sqr1#0 + (word~) main::$1 ← ((word)) (byte[$200]) mulf_sqr1#0 *((word*) psp1#1) ← (word~) main::$1 - (word~) main::$2 ← ((word)) (byte[512]) mulf_sqr2#0 + (word~) main::$2 ← ((word)) (byte[$200]) mulf_sqr2#0 *((word*) psp2#1) ← (word~) main::$2 call print_cls to:main::@2 @@ -291,10 +291,10 @@ main::@2: scope:[main] from main::@1 (byte*) print_line_cursor#15 ← phi( main::@1/(byte*) print_line_cursor#4 ) (byte*) print_line_cursor#5 ← (byte*) print_line_cursor#15 (byte*) print_char_cursor#16 ← (byte*) print_char_cursor#47 - (signed byte/signed word/signed dword~) main::$4 ← - (byte/signed byte/word/signed word/dword/signed dword) 71 - (signed byte) do_perspective::x#0 ← (byte/signed byte/word/signed word/dword/signed dword) 57 + (signed byte/signed word/signed dword~) main::$4 ← - (byte/signed byte/word/signed word/dword/signed dword) $47 + (signed byte) do_perspective::x#0 ← (byte/signed byte/word/signed word/dword/signed dword) $39 (signed byte) do_perspective::y#0 ← (signed byte/signed word/signed dword~) main::$4 - (signed byte) do_perspective::z#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 + (signed byte) do_perspective::z#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 call do_perspective to:main::@3 main::@3: scope:[main] from main::@2 @@ -491,8 +491,8 @@ perspective::@return: scope:[perspective] from perspective (word*) psp1#4 ← phi( @23/(word*) psp1#0 ) (byte*) print_char_cursor#77 ← phi( @23/(byte*) print_char_cursor#78 ) (byte*) print_line_cursor#27 ← phi( @23/(byte*) print_line_cursor#29 ) - (byte[512]) mulf_sqr1#0 ← { fill( 512, 0) } - (byte[512]) mulf_sqr2#0 ← { fill( 512, 0) } + (byte[$200]) mulf_sqr1#0 ← { fill( $200, 0) } + (byte[$200]) mulf_sqr2#0 ← { fill( $200, 0) } to:@27 mulf_init: scope:[mulf_init] from main (signed word) mulf_init::sqr#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -505,28 +505,28 @@ mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@1 (signed word) mulf_init::sqr#2 ← phi( mulf_init/(signed word) mulf_init::sqr#0 mulf_init::@1/(signed word) mulf_init::sqr#1 ) (byte~) mulf_init::$0 ← > (signed word) mulf_init::sqr#2 (byte) mulf_init::val#0 ← (byte~) mulf_init::$0 - *((byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 - (byte*~) mulf_init::$1 ← (byte[512]) mulf_sqr1#0 + (word/signed word/dword/signed dword) 256 + *((byte[$200]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 + (byte*~) mulf_init::$1 ← (byte[$200]) mulf_sqr1#0 + (word/signed word/dword/signed dword) $100 *((byte*~) mulf_init::$1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 - *((byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 - (byte*~) mulf_init::$3 ← (byte[512]) mulf_sqr1#0 + (word/signed word/dword/signed dword) 256 + *((byte[$200]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 + (byte*~) mulf_init::$3 ← (byte[$200]) mulf_sqr1#0 + (word/signed word/dword/signed dword) $100 (byte~) mulf_init::$4 ← - (byte) mulf_init::i#2 *((byte*~) mulf_init::$3 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 (byte/signed word/word/dword/signed dword~) mulf_init::$5 ← (byte) mulf_init::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 - *((byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$5) ← (byte) mulf_init::val#0 - (byte*~) mulf_init::$6 ← (byte[512]) mulf_sqr2#0 + (word/signed word/dword/signed dword) 256 + *((byte[$200]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$5) ← (byte) mulf_init::val#0 + (byte*~) mulf_init::$6 ← (byte[$200]) mulf_sqr2#0 + (word/signed word/dword/signed dword) $100 (byte/signed word/word/dword/signed dword~) mulf_init::$7 ← (byte) mulf_init::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 *((byte*~) mulf_init::$6 + (byte/signed word/word/dword/signed dword~) mulf_init::$7) ← (byte) mulf_init::val#0 (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 - *((byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 - (byte*~) mulf_init::$9 ← (byte[512]) mulf_sqr2#0 + (word/signed word/dword/signed dword) 256 + *((byte[$200]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 + (byte*~) mulf_init::$9 ← (byte[$200]) mulf_sqr2#0 + (word/signed word/dword/signed dword) $100 (byte/signed word/word/dword/signed dword~) mulf_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 *((byte*~) mulf_init::$9 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 (signed word) mulf_init::sqr#1 ← (signed word) mulf_init::sqr#2 + (signed word) mulf_init::add#2 (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte) mulf_init::i#1 ← (byte) mulf_init::i#2 + rangenext(0,128) - (bool~) mulf_init::$11 ← (byte) mulf_init::i#1 != rangelast(0,128) + (byte) mulf_init::i#1 ← (byte) mulf_init::i#2 + rangenext(0,$80) + (bool~) mulf_init::$11 ← (byte) mulf_init::i#1 != rangelast(0,$80) if((bool~) mulf_init::$11) goto mulf_init::@1 to:mulf_init::@return mulf_init::@return: scope:[mulf_init] from mulf_init::@1 @@ -541,7 +541,7 @@ mulf_init::@return: scope:[mulf_init] from mulf_init::@1 (word*) psp1#3 ← phi( @26/(word*) psp1#4 ) (byte*) print_char_cursor#73 ← phi( @26/(byte*) print_char_cursor#77 ) (byte*) print_line_cursor#24 ← phi( @26/(byte*) print_line_cursor#27 ) - (signed byte*) PERSP_Z#0 ← ((signed byte*)) (word/signed word/dword/signed dword) 9216 + (signed byte*) PERSP_Z#0 ← ((signed byte*)) (word/signed word/dword/signed dword) $2400 kickasm(location (signed byte*) PERSP_Z#0) {{ { .var d = 256.0 .var z0 = 5.0 @@ -824,10 +824,10 @@ SYMBOL TABLE SSA (signed word) mulf_init::sqr#2 (byte) mulf_init::val (byte) mulf_init::val#0 -(byte[512]) mulf_sqr1 -(byte[512]) mulf_sqr1#0 -(byte[512]) mulf_sqr2 -(byte[512]) mulf_sqr2#0 +(byte[$200]) mulf_sqr1 +(byte[$200]) mulf_sqr1#0 +(byte[$200]) mulf_sqr2 +(byte[$200]) mulf_sqr2#0 (void()) perspective((signed byte) perspective::x , (signed byte) perspective::y , (signed byte) perspective::z) (label) perspective::@return (signed byte) perspective::x @@ -1236,71 +1236,71 @@ Simple Condition (bool~) print_str::$0 [85] if(*((byte*) print_str::str#7)!=(byt Simple Condition (bool~) print_ln::$1 [98] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1 Simple Condition (bool~) print_sbyte::$0 [107] if((signed byte) print_sbyte::b#4<(byte/signed byte/word/signed word/dword/signed dword) 0) goto print_sbyte::@1 Simple Condition (bool~) print_cls::$1 [158] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 -Simple Condition (bool~) mulf_init::$11 [293] if((byte) mulf_init::i#1!=rangelast(0,128)) goto mulf_init::@1 +Simple Condition (bool~) mulf_init::$11 [293] if((byte) mulf_init::i#1!=rangelast(0,$80)) goto mulf_init::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -1311,39 +1311,39 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 -Constant (const byte*) print_line_cursor#0 = ((byte*))1024 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f +Constant (const byte*) print_line_cursor#0 = ((byte*))$400 Constant (const byte) print_char::ch#0 = '-' Constant (const byte) print_char::ch#1 = ' ' Constant (const byte[]) print_hextab#0 = $0 -Constant (const signed byte*) xr#0 = ((signed byte*))240 -Constant (const signed byte*) yr#0 = ((signed byte*))241 -Constant (const signed byte*) zr#0 = ((signed byte*))242 -Constant (const word*) psp1#0 = ((word*))243 -Constant (const word*) psp2#0 = ((word*))245 -Constant (const signed byte) do_perspective::y#0 = -71 -Constant (const signed byte) do_perspective::x#0 = 57 -Constant (const signed byte) do_perspective::z#0 = 54 +Constant (const signed byte*) xr#0 = ((signed byte*))$f0 +Constant (const signed byte*) yr#0 = ((signed byte*))$f1 +Constant (const signed byte*) zr#0 = ((signed byte*))$f2 +Constant (const word*) psp1#0 = ((word*))$f3 +Constant (const word*) psp2#0 = ((word*))$f5 +Constant (const signed byte) do_perspective::y#0 = -$47 +Constant (const signed byte) do_perspective::x#0 = $39 +Constant (const signed byte) do_perspective::z#0 = $36 Constant (const byte*) print_str::str#1 = do_perspective::str Constant (const byte*) print_str::str#2 = do_perspective::str1 Constant (const byte*) print_str::str#3 = do_perspective::str2 Constant (const byte*) print_str::str#4 = do_perspective::str3 Constant (const byte*) print_str::str#5 = do_perspective::str4 Constant (const byte*) print_str::str#6 = do_perspective::str5 -Constant (const byte[512]) mulf_sqr1#0 = { fill( 512, 0) } -Constant (const byte[512]) mulf_sqr2#0 = { fill( 512, 0) } +Constant (const byte[$200]) mulf_sqr1#0 = { fill( $200, 0) } +Constant (const byte[$200]) mulf_sqr2#0 = { fill( $200, 0) } Constant (const signed word) mulf_init::sqr#0 = 0 Constant (const signed word) mulf_init::add#0 = 1 Constant (const byte) mulf_init::i#0 = 0 -Constant (const signed byte*) PERSP_Z#0 = ((signed byte*))9216 +Constant (const signed byte*) PERSP_Z#0 = ((signed byte*))$2400 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) print_cls::sc#0 = print_line_cursor#0 -Constant (const byte*) print_cls::$0 = print_line_cursor#0+1000 +Constant (const byte*) print_cls::$0 = print_line_cursor#0+$3e8 Constant (const word) main::$1 = ((word))mulf_sqr1#0 Constant (const word) main::$2 = ((word))mulf_sqr2#0 Constant (const signed byte) print_sbyte::b#1 = do_perspective::x#0 @@ -1352,10 +1352,10 @@ Constant (const signed byte) print_sbyte::b#3 = do_perspective::z#0 Constant (const signed byte) perspective::x#0 = do_perspective::x#0 Constant (const signed byte) perspective::y#0 = do_perspective::y#0 Constant (const signed byte) perspective::z#0 = do_perspective::z#0 -Constant (const byte*) mulf_init::$1 = mulf_sqr1#0+256 -Constant (const byte*) mulf_init::$3 = mulf_sqr1#0+256 -Constant (const byte*) mulf_init::$6 = mulf_sqr2#0+256 -Constant (const byte*) mulf_init::$9 = mulf_sqr2#0+256 +Constant (const byte*) mulf_init::$1 = mulf_sqr1#0+$100 +Constant (const byte*) mulf_init::$3 = mulf_sqr1#0+$100 +Constant (const byte*) mulf_init::$6 = mulf_sqr2#0+$100 +Constant (const byte*) mulf_init::$9 = mulf_sqr2#0+$100 Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in assignment *(mulf_sqr2#0+1 + mulf_init::$5) Consolidated array index constant in assignment *(mulf_init::$6+1 + mulf_init::$7) @@ -1369,7 +1369,7 @@ Eliminating Noop Cast (byte) print_byte::b#1 ← ((byte)) *((const signed byte*) Eliminating Noop Cast (byte) print_byte::b#2 ← ((byte)) *((const signed byte*) yr#0) Successful SSA optimization Pass2NopCastElimination Resolved ranged next value mulf_init::i#1 ← ++ mulf_init::i#2 to ++ -Resolved ranged comparison value if(mulf_init::i#1!=rangelast(0,128)) goto mulf_init::@1 to (byte/word/signed word/dword/signed dword) 129 +Resolved ranged comparison value if(mulf_init::i#1!=rangelast(0,$80)) goto mulf_init::@1 to (byte/word/signed word/dword/signed dword) $81 Culled Empty Block (label) @4 Culled Empty Block (label) print_ln::@2 Culled Empty Block (label) print_sbyte::@6 @@ -1401,27 +1401,27 @@ Inlining constant with var siblings (const signed word) mulf_init::sqr#0 Inlining constant with var siblings (const signed word) mulf_init::add#0 Inlining constant with var siblings (const byte) mulf_init::i#0 Inlining constant with var siblings (const byte*) print_line_cursor#0 -Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000 +Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8 Constant inlined print_sbyte::b#1 = (const signed byte) do_perspective::x#0 Constant inlined print_sbyte::b#2 = (const signed byte) do_perspective::y#0 Constant inlined do_perspective::str4 = (const string) do_perspective::str1 Constant inlined print_sbyte::b#3 = (const signed byte) do_perspective::z#0 Constant inlined do_perspective::str2 = (const string) do_perspective::str1 Constant inlined mulf_init::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mulf_init::$1 = (const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 +Constant inlined mulf_init::$1 = (const byte[$200]) mulf_sqr1#0+(word/signed word/dword/signed dword) $100 Constant inlined $0 = (const byte[]) print_hextab#0 -Constant inlined mulf_init::$3 = (const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 -Constant inlined mulf_init::$6 = (const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 +Constant inlined mulf_init::$3 = (const byte[$200]) mulf_sqr1#0+(word/signed word/dword/signed dword) $100 +Constant inlined mulf_init::$6 = (const byte[$200]) mulf_sqr2#0+(word/signed word/dword/signed dword) $100 Constant inlined mulf_init::add#0 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined perspective::z#0 = (const signed byte) do_perspective::z#0 Constant inlined perspective::y#0 = (const signed byte) do_perspective::y#0 Constant inlined perspective::x#0 = (const signed byte) do_perspective::x#0 Constant inlined mulf_init::sqr#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined print_line_cursor#0 = ((byte*))(word/signed word/dword/signed dword) 1024 -Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword) 1024 -Constant inlined mulf_init::$9 = (const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 -Constant inlined main::$1 = ((word))(const byte[512]) mulf_sqr1#0 -Constant inlined main::$2 = ((word))(const byte[512]) mulf_sqr2#0 +Constant inlined print_line_cursor#0 = ((byte*))(word/signed word/dword/signed dword) $400 +Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword) $400 +Constant inlined mulf_init::$9 = (const byte[$200]) mulf_sqr2#0+(word/signed word/dword/signed dword) $100 +Constant inlined main::$1 = ((word))(const byte[$200]) mulf_sqr1#0 +Constant inlined main::$2 = ((word))(const byte[$200]) mulf_sqr2#0 Constant inlined print_char::ch#1 = (byte) ' ' Constant inlined print_char::ch#0 = (byte) '-' Constant inlined print_str::str#4 = (const string) do_perspective::str3 @@ -1529,8 +1529,8 @@ main: scope:[main] from @27 [5] call mulf_init to:main::@1 main::@1: scope:[main] from main - [6] *((const word*) psp1#0) ← ((word))(const byte[512]) mulf_sqr1#0 - [7] *((const word*) psp2#0) ← ((word))(const byte[512]) mulf_sqr2#0 + [6] *((const word*) psp1#0) ← ((word))(const byte[$200]) mulf_sqr1#0 + [7] *((const word*) psp2#0) ← ((word))(const byte[$200]) mulf_sqr2#0 [8] call print_cls to:main::@2 main::@2: scope:[main] from main::@1 @@ -1599,15 +1599,15 @@ print_ln: scope:[print_ln] from do_perspective::@12 [39] phi() to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 - [40] (byte*) print_line_cursor#11 ← phi( print_ln/((byte*))(word/signed word/dword/signed dword) 1024 print_ln::@1/(byte*) print_line_cursor#1 ) - [41] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [40] (byte*) print_line_cursor#11 ← phi( print_ln/((byte*))(word/signed word/dword/signed dword) $400 print_ln::@1/(byte*) print_line_cursor#1 ) + [41] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) $28 [42] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 [43] return to:@return print_str: scope:[print_str] from do_perspective do_perspective::@11 do_perspective::@2 do_perspective::@4 do_perspective::@6 do_perspective::@9 - [44] (byte*) print_char_cursor#74 ← phi( do_perspective/((byte*))(word/signed word/dword/signed dword) 1024 do_perspective::@11/(byte*) print_char_cursor#12 do_perspective::@2/(byte*) print_char_cursor#12 do_perspective::@4/(byte*) print_char_cursor#12 do_perspective::@6/(byte*) print_char_cursor#12 do_perspective::@9/(byte*) print_char_cursor#12 ) + [44] (byte*) print_char_cursor#74 ← phi( do_perspective/((byte*))(word/signed word/dword/signed dword) $400 do_perspective::@11/(byte*) print_char_cursor#12 do_perspective::@2/(byte*) print_char_cursor#12 do_perspective::@4/(byte*) print_char_cursor#12 do_perspective::@6/(byte*) print_char_cursor#12 do_perspective::@9/(byte*) print_char_cursor#12 ) [44] (byte*) print_str::str#9 ← phi( do_perspective/(const string) do_perspective::str do_perspective::@11/(const string) do_perspective::str5 do_perspective::@2/(const string) do_perspective::str1 do_perspective::@4/(const string) do_perspective::str1 do_perspective::@6/(const string) do_perspective::str3 do_perspective::@9/(const string) do_perspective::str1 ) to:print_str::@1 print_str::@1: scope:[print_str] from print_str print_str::@2 @@ -1631,7 +1631,7 @@ print_byte: scope:[print_byte] from do_perspective::@10 do_perspective::@8 prin [54] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [55] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [55] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) $f [56] (byte) print_char::ch#3 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [57] call print_char to:print_byte::@return @@ -1683,10 +1683,10 @@ print_cls: scope:[print_cls] from main::@1 [79] phi() to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 - [80] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) 1024 print_cls::@1/(byte*) print_cls::sc#1 ) + [80] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) $400 print_cls::@1/(byte*) print_cls::sc#1 ) [81] *((byte*) print_cls::sc#2) ← (byte) ' ' [82] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [83] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [83] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [84] return @@ -1699,22 +1699,22 @@ mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@1 [86] (byte) mulf_init::i#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@1/(byte) mulf_init::i#1 ) [86] (signed word) mulf_init::sqr#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@1/(signed word) mulf_init::sqr#1 ) [87] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 - [88] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 - [89] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 + [88] *((const byte[$200]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 + [89] *((const byte[$200]) mulf_sqr1#0+(word/signed word/dword/signed dword) $100 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [90] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 - [91] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 + [91] *((const byte[$200]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 [92] (byte~) mulf_init::$4 ← - (byte) mulf_init::i#2 - [93] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 - [94] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 - [95] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 + [93] *((const byte[$200]) mulf_sqr1#0+(word/signed word/dword/signed dword) $100 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 + [94] *((const byte[$200]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 + [95] *((const byte[$200]) mulf_sqr2#0+(word/signed word/dword/signed dword) $100+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [96] (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 - [97] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 + [97] *((const byte[$200]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 [98] (byte/signed word/word/dword/signed dword~) mulf_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 - [99] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 + [99] *((const byte[$200]) mulf_sqr2#0+(word/signed word/dword/signed dword) $100 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 [100] (signed word) mulf_init::sqr#1 ← (signed word) mulf_init::sqr#2 + (signed word) mulf_init::add#2 [101] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [102] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 - [103] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 + [103] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) $81) goto mulf_init::@1 to:mulf_init::@return mulf_init::@return: scope:[mulf_init] from mulf_init::@1 [104] return @@ -1823,8 +1823,8 @@ VARIABLE REGISTER WEIGHTS (signed word) mulf_init::sqr#2 2.357142857142857 (byte) mulf_init::val (byte) mulf_init::val#0 8.25 -(byte[512]) mulf_sqr1 -(byte[512]) mulf_sqr2 +(byte[$200]) mulf_sqr1 +(byte[$200]) mulf_sqr2 (void()) perspective((signed byte) perspective::x , (signed byte) perspective::y , (signed byte) perspective::z) (signed byte) perspective::x (signed byte) perspective::y @@ -1975,12 +1975,12 @@ main: { jmp b1 //SEG13 main::@1 b1: - //SEG14 [6] *((const word*) psp1#0) ← ((word))(const byte[512]) mulf_sqr1#0 -- _deref_pwuc1=vwuc2 + //SEG14 [6] *((const word*) psp1#0) ← ((word))(const byte[$200]) mulf_sqr1#0 -- _deref_pwuc1=vwuc2 lda #mulf_sqr1 sta psp1+1 - //SEG15 [7] *((const word*) psp2#0) ← ((word))(const byte[512]) mulf_sqr2#0 -- _deref_pwuc1=vwuc2 + //SEG15 [7] *((const word*) psp2#0) ← ((word))(const byte[$200]) mulf_sqr2#0 -- _deref_pwuc1=vwuc2 lda #mulf_sqr2 @@ -2012,7 +2012,7 @@ do_perspective: { //SEG25 [13] call print_str //SEG26 [44] phi from do_perspective to print_str [phi:do_perspective->print_str] print_str_from_do_perspective: - //SEG27 [44] phi (byte*) print_char_cursor#74 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:do_perspective->print_str#0] -- pbuz1=pbuc1 + //SEG27 [44] phi (byte*) print_char_cursor#74 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:do_perspective->print_str#0] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -2189,7 +2189,7 @@ do_perspective: { print_ln: { //SEG96 [40] phi from print_ln to print_ln::@1 [phi:print_ln->print_ln::@1] b1_from_print_ln: - //SEG97 [40] phi (byte*) print_line_cursor#11 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_ln->print_ln::@1#0] -- pbuz1=pbuc1 + //SEG97 [40] phi (byte*) print_line_cursor#11 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_ln->print_ln::@1#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -2201,7 +2201,7 @@ print_ln: { jmp b1 //SEG100 print_ln::@1 b1: - //SEG101 [41] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG101 [41] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -2293,7 +2293,7 @@ print_byte: { jmp b1 //SEG124 print_byte::@1 b1: - //SEG125 [55] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG125 [55] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and b sta _2 @@ -2444,7 +2444,7 @@ print_cls: { .label sc = $b //SEG172 [80] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] b1_from_print_cls: - //SEG173 [80] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG173 [80] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -2465,7 +2465,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG179 [83] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG179 [83] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1_from_b1 @@ -2516,11 +2516,11 @@ mulf_init: { //SEG192 [87] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 -- vbuz1=_hi_vwsz2 lda sqr+1 sta val - //SEG193 [88] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG193 [88] *((const byte[$200]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuz1=vbuz2 lda val ldy i sta mulf_sqr1,y - //SEG194 [89] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG194 [89] *((const byte[$200]) mulf_sqr1#0+(word/signed word/dword/signed dword) $100 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuz1=vbuz2 lda val ldy i sta mulf_sqr1+$100,y @@ -2530,7 +2530,7 @@ mulf_init: { clc adc #1 sta _2 - //SEG196 [91] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG196 [91] *((const byte[$200]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuz1=vbuz2 lda val ldy _2 sta mulf_sqr1,y @@ -2540,15 +2540,15 @@ mulf_init: { clc adc #1 sta _4 - //SEG198 [93] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG198 [93] *((const byte[$200]) mulf_sqr1#0+(word/signed word/dword/signed dword) $100 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuz1=vbuz2 lda val ldy _4 sta mulf_sqr1+$100,y - //SEG199 [94] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG199 [94] *((const byte[$200]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuz1=vbuz2 lda val ldy i sta mulf_sqr2+1,y - //SEG200 [95] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG200 [95] *((const byte[$200]) mulf_sqr2#0+(word/signed word/dword/signed dword) $100+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuz1=vbuz2 lda val ldy i sta mulf_sqr2+$100+1,y @@ -2557,7 +2557,7 @@ mulf_init: { sec sbc i sta _8 - //SEG202 [97] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG202 [97] *((const byte[$200]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuz1=vbuz2 lda val ldy _8 sta mulf_sqr2,y @@ -2566,7 +2566,7 @@ mulf_init: { sec sbc i sta _10 - //SEG204 [99] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG204 [99] *((const byte[$200]) mulf_sqr2#0+(word/signed word/dword/signed dword) $100 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuz1=vbuz2 lda val ldy _10 sta mulf_sqr2+$100,y @@ -2588,7 +2588,7 @@ mulf_init: { !: //SEG207 [102] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG208 [103] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG208 [103] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) $81) goto mulf_init::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$81 bne b1_from_b1 @@ -2629,15 +2629,15 @@ mulf_init: { REGISTER UPLIFT POTENTIAL REGISTERS -Statement [6] *((const word*) psp1#0) ← ((word))(const byte[512]) mulf_sqr1#0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [7] *((const word*) psp2#0) ← ((word))(const byte[512]) mulf_sqr2#0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [41] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a +Statement [6] *((const word*) psp1#0) ← ((word))(const byte[$200]) mulf_sqr1#0 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [7] *((const word*) psp2#0) ← ((word))(const byte[$200]) mulf_sqr2#0 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [41] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a Statement [42] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a Statement [46] if(*((byte*) print_str::str#7)!=(byte) '@') goto print_str::@2 [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) always clobbers reg byte a reg byte y Statement [48] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#7) [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) always clobbers reg byte a reg byte y Statement [52] (byte~) print_byte::$0 ← (byte) print_byte::b#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] ( main:2::do_perspective:10::print_byte:29 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] main:2::do_perspective:10::print_byte:33 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:15::print_byte:74 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:19::print_byte:74 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:23::print_byte:74 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:6 [ print_byte::b#3 print_byte::b#5 print_byte::b#6 print_byte::b#7 ] -Statement [55] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#12 print_byte::$2 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#12 print_byte::$2 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#12 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:15::print_byte:74 [ print_char_cursor#12 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:19::print_byte:74 [ print_char_cursor#12 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:23::print_byte:74 [ print_char_cursor#12 print_byte::$2 ] ) always clobbers reg byte a +Statement [55] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#12 print_byte::$2 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#12 print_byte::$2 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#12 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:15::print_byte:74 [ print_char_cursor#12 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:19::print_byte:74 [ print_char_cursor#12 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:23::print_byte:74 [ print_char_cursor#12 print_byte::$2 ] ) always clobbers reg byte a Statement [60] *((byte*) print_char_cursor#44) ← (byte) print_char::ch#4 [ print_char_cursor#44 ] ( main:2::do_perspective:10::print_byte:29::print_char:54 [ print_byte::b#3 print_char_cursor#44 ] main:2::do_perspective:10::print_byte:33::print_char:54 [ print_byte::b#3 print_char_cursor#44 ] main:2::do_perspective:10::print_sbyte:15::print_byte:74::print_char:54 [ print_byte::b#3 print_char_cursor#44 ] main:2::do_perspective:10::print_sbyte:19::print_byte:74::print_char:54 [ print_byte::b#3 print_char_cursor#44 ] main:2::do_perspective:10::print_sbyte:23::print_byte:74::print_char:54 [ print_byte::b#3 print_char_cursor#44 ] main:2::do_perspective:10::print_byte:29::print_char:57 [ print_char_cursor#44 ] main:2::do_perspective:10::print_byte:33::print_char:57 [ print_char_cursor#44 ] main:2::do_perspective:10::print_sbyte:15::print_byte:74::print_char:57 [ print_char_cursor#44 ] main:2::do_perspective:10::print_sbyte:19::print_byte:74::print_char:57 [ print_char_cursor#44 ] main:2::do_perspective:10::print_sbyte:23::print_byte:74::print_char:57 [ print_char_cursor#44 ] main:2::do_perspective:10::print_sbyte:15::print_char:71 [ print_sbyte::b#4 print_char_cursor#44 ] main:2::do_perspective:10::print_sbyte:19::print_char:71 [ print_sbyte::b#4 print_char_cursor#44 ] main:2::do_perspective:10::print_sbyte:23::print_char:71 [ print_sbyte::b#4 print_char_cursor#44 ] main:2::do_perspective:10::print_sbyte:15::print_char:77 [ print_sbyte::b#4 print_char_cursor#44 ] main:2::do_perspective:10::print_sbyte:19::print_char:77 [ print_sbyte::b#4 print_char_cursor#44 ] main:2::do_perspective:10::print_sbyte:23::print_char:77 [ print_sbyte::b#4 print_char_cursor#44 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:6 [ print_byte::b#3 print_byte::b#5 print_byte::b#6 print_byte::b#7 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:10 [ print_sbyte::b#6 print_sbyte::b#0 print_sbyte::b#4 ] @@ -2647,30 +2647,30 @@ Statement [65] *((const signed byte*) zr#0) ← (const signed byte) do_perspecti Statement asm { ldazr staPP+1 PP: ldaPERSP_Z stapsp1 eor#$ff stapsp2 clc ldyyr lda(psp1),y sbc(psp2),y adc#$80 stayr clc ldyxr lda(psp1),y sbc(psp2),y adc#$80 staxr } always clobbers reg byte a reg byte y Statement [78] (signed byte) print_sbyte::b#0 ← - (signed byte) print_sbyte::b#4 [ print_char_cursor#12 print_sbyte::b#0 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#12 print_sbyte::b#0 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#12 print_sbyte::b#0 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#12 print_sbyte::b#0 ] ) always clobbers reg byte a Statement [81] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:8 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [83] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:8 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [83] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:8 [ print_cls::sc#1 ] ) always clobbers reg byte a Statement [87] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:15 [ mulf_init::i#2 mulf_init::i#1 ] Statement [90] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:20 [ mulf_init::val#0 ] -Statement [91] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [91] *((const byte[$200]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a Statement [92] (byte~) mulf_init::$4 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ) always clobbers reg byte a -Statement [93] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a -Statement [94] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a -Statement [95] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [93] *((const byte[$200]) mulf_sqr1#0+(word/signed word/dword/signed dword) $100 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [94] *((const byte[$200]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [95] *((const byte[$200]) mulf_sqr2#0+(word/signed word/dword/signed dword) $100+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a Statement [96] (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ) always clobbers reg byte a -Statement [97] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [97] *((const byte[$200]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a Statement [98] (byte/signed word/word/dword/signed dword~) mulf_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ) always clobbers reg byte a -Statement [99] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) always clobbers reg byte a +Statement [99] *((const byte[$200]) mulf_sqr2#0+(word/signed word/dword/signed dword) $100 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) always clobbers reg byte a Statement [100] (signed word) mulf_init::sqr#1 ← (signed word) mulf_init::sqr#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ( main:2::mulf_init:5 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ) always clobbers reg byte a Statement [101] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ( main:2::mulf_init:5 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ) always clobbers reg byte a -Statement [6] *((const word*) psp1#0) ← ((word))(const byte[512]) mulf_sqr1#0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [7] *((const word*) psp2#0) ← ((word))(const byte[512]) mulf_sqr2#0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [41] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a +Statement [6] *((const word*) psp1#0) ← ((word))(const byte[$200]) mulf_sqr1#0 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [7] *((const word*) psp2#0) ← ((word))(const byte[$200]) mulf_sqr2#0 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [41] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a Statement [42] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::do_perspective:10::print_ln:37 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a Statement [46] if(*((byte*) print_str::str#7)!=(byte) '@') goto print_str::@2 [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) always clobbers reg byte a reg byte y Statement [48] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#7) [ print_char_cursor#2 print_str::str#7 ] ( main:2::do_perspective:10::print_str:13 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:17 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:21 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:25 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:31 [ print_char_cursor#2 print_str::str#7 ] main:2::do_perspective:10::print_str:35 [ print_char_cursor#2 print_str::str#7 ] ) always clobbers reg byte a reg byte y Statement [52] (byte~) print_byte::$0 ← (byte) print_byte::b#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] ( main:2::do_perspective:10::print_byte:29 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] main:2::do_perspective:10::print_byte:33 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:15::print_byte:74 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:19::print_byte:74 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] main:2::do_perspective:10::print_sbyte:23::print_byte:74 [ print_byte::b#3 print_char_cursor#69 print_byte::$0 ] ) always clobbers reg byte a -Statement [55] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#12 print_byte::$2 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#12 print_byte::$2 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#12 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:15::print_byte:74 [ print_char_cursor#12 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:19::print_byte:74 [ print_char_cursor#12 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:23::print_byte:74 [ print_char_cursor#12 print_byte::$2 ] ) always clobbers reg byte a +Statement [55] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#12 print_byte::$2 ] ( main:2::do_perspective:10::print_byte:29 [ print_char_cursor#12 print_byte::$2 ] main:2::do_perspective:10::print_byte:33 [ print_char_cursor#12 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:15::print_byte:74 [ print_char_cursor#12 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:19::print_byte:74 [ print_char_cursor#12 print_byte::$2 ] main:2::do_perspective:10::print_sbyte:23::print_byte:74 [ print_char_cursor#12 print_byte::$2 ] ) always clobbers reg byte a Statement [60] *((byte*) print_char_cursor#44) ← (byte) print_char::ch#4 [ print_char_cursor#44 ] ( main:2::do_perspective:10::print_byte:29::print_char:54 [ print_byte::b#3 print_char_cursor#44 ] main:2::do_perspective:10::print_byte:33::print_char:54 [ print_byte::b#3 print_char_cursor#44 ] main:2::do_perspective:10::print_sbyte:15::print_byte:74::print_char:54 [ print_byte::b#3 print_char_cursor#44 ] main:2::do_perspective:10::print_sbyte:19::print_byte:74::print_char:54 [ print_byte::b#3 print_char_cursor#44 ] main:2::do_perspective:10::print_sbyte:23::print_byte:74::print_char:54 [ print_byte::b#3 print_char_cursor#44 ] main:2::do_perspective:10::print_byte:29::print_char:57 [ print_char_cursor#44 ] main:2::do_perspective:10::print_byte:33::print_char:57 [ print_char_cursor#44 ] main:2::do_perspective:10::print_sbyte:15::print_byte:74::print_char:57 [ print_char_cursor#44 ] main:2::do_perspective:10::print_sbyte:19::print_byte:74::print_char:57 [ print_char_cursor#44 ] main:2::do_perspective:10::print_sbyte:23::print_byte:74::print_char:57 [ print_char_cursor#44 ] main:2::do_perspective:10::print_sbyte:15::print_char:71 [ print_sbyte::b#4 print_char_cursor#44 ] main:2::do_perspective:10::print_sbyte:19::print_char:71 [ print_sbyte::b#4 print_char_cursor#44 ] main:2::do_perspective:10::print_sbyte:23::print_char:71 [ print_sbyte::b#4 print_char_cursor#44 ] main:2::do_perspective:10::print_sbyte:15::print_char:77 [ print_sbyte::b#4 print_char_cursor#44 ] main:2::do_perspective:10::print_sbyte:19::print_char:77 [ print_sbyte::b#4 print_char_cursor#44 ] main:2::do_perspective:10::print_sbyte:23::print_char:77 [ print_sbyte::b#4 print_char_cursor#44 ] ) always clobbers reg byte y Statement [63] *((const signed byte*) xr#0) ← (const signed byte) do_perspective::x#0 [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) always clobbers reg byte a Statement [64] *((const signed byte*) yr#0) ← (const signed byte) do_perspective::y#0 [ ] ( main:2::do_perspective:10::perspective:27 [ print_char_cursor#2 ] ) always clobbers reg byte a @@ -2678,20 +2678,20 @@ Statement [65] *((const signed byte*) zr#0) ← (const signed byte) do_perspecti Statement asm { ldazr staPP+1 PP: ldaPERSP_Z stapsp1 eor#$ff stapsp2 clc ldyyr lda(psp1),y sbc(psp2),y adc#$80 stayr clc ldyxr lda(psp1),y sbc(psp2),y adc#$80 staxr } always clobbers reg byte a reg byte y Statement [78] (signed byte) print_sbyte::b#0 ← - (signed byte) print_sbyte::b#4 [ print_char_cursor#12 print_sbyte::b#0 ] ( main:2::do_perspective:10::print_sbyte:15 [ print_char_cursor#12 print_sbyte::b#0 ] main:2::do_perspective:10::print_sbyte:19 [ print_char_cursor#12 print_sbyte::b#0 ] main:2::do_perspective:10::print_sbyte:23 [ print_char_cursor#12 print_sbyte::b#0 ] ) always clobbers reg byte a Statement [81] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:8 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [83] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:8 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [83] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:8 [ print_cls::sc#1 ] ) always clobbers reg byte a Statement [87] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a -Statement [88] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a -Statement [89] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [88] *((const byte[$200]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [89] *((const byte[$200]) mulf_sqr1#0+(word/signed word/dword/signed dword) $100 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a Statement [90] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ) always clobbers reg byte a -Statement [91] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [91] *((const byte[$200]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a Statement [92] (byte~) mulf_init::$4 ← - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$4 ] ) always clobbers reg byte a -Statement [93] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a -Statement [94] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a -Statement [95] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [93] *((const byte[$200]) mulf_sqr1#0+(word/signed word/dword/signed dword) $100 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [94] *((const byte[$200]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [95] *((const byte[$200]) mulf_sqr2#0+(word/signed word/dword/signed dword) $100+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a Statement [96] (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$8 ] ) always clobbers reg byte a -Statement [97] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a +Statement [97] *((const byte[$200]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ) always clobbers reg byte a Statement [98] (byte/signed word/word/dword/signed dword~) mulf_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$10 ] ) always clobbers reg byte a -Statement [99] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) always clobbers reg byte a +Statement [99] *((const byte[$200]) mulf_sqr2#0+(word/signed word/dword/signed dword) $100 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ( main:2::mulf_init:5 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 ] ) always clobbers reg byte a Statement [100] (signed word) mulf_init::sqr#1 ← (signed word) mulf_init::sqr#2 + (signed word) mulf_init::add#2 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ( main:2::mulf_init:5 [ mulf_init::i#2 mulf_init::add#2 mulf_init::sqr#1 ] ) always clobbers reg byte a Statement [101] (signed word) mulf_init::add#1 ← (signed word) mulf_init::add#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ( main:2::mulf_init:5 [ mulf_init::i#2 mulf_init::sqr#1 mulf_init::add#1 ] ) always clobbers reg byte a Potential registers zp ZP_WORD:2 [ print_line_cursor#11 print_line_cursor#1 ] : zp ZP_WORD:2 , @@ -2794,12 +2794,12 @@ main: { jmp b1 //SEG13 main::@1 b1: - //SEG14 [6] *((const word*) psp1#0) ← ((word))(const byte[512]) mulf_sqr1#0 -- _deref_pwuc1=vwuc2 + //SEG14 [6] *((const word*) psp1#0) ← ((word))(const byte[$200]) mulf_sqr1#0 -- _deref_pwuc1=vwuc2 lda #mulf_sqr1 sta psp1+1 - //SEG15 [7] *((const word*) psp2#0) ← ((word))(const byte[512]) mulf_sqr2#0 -- _deref_pwuc1=vwuc2 + //SEG15 [7] *((const word*) psp2#0) ← ((word))(const byte[$200]) mulf_sqr2#0 -- _deref_pwuc1=vwuc2 lda #mulf_sqr2 @@ -2831,7 +2831,7 @@ do_perspective: { //SEG25 [13] call print_str //SEG26 [44] phi from do_perspective to print_str [phi:do_perspective->print_str] print_str_from_do_perspective: - //SEG27 [44] phi (byte*) print_char_cursor#74 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:do_perspective->print_str#0] -- pbuz1=pbuc1 + //SEG27 [44] phi (byte*) print_char_cursor#74 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:do_perspective->print_str#0] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -3003,7 +3003,7 @@ do_perspective: { print_ln: { //SEG96 [40] phi from print_ln to print_ln::@1 [phi:print_ln->print_ln::@1] b1_from_print_ln: - //SEG97 [40] phi (byte*) print_line_cursor#11 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_ln->print_ln::@1#0] -- pbuz1=pbuc1 + //SEG97 [40] phi (byte*) print_line_cursor#11 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_ln->print_ln::@1#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -3015,7 +3015,7 @@ print_ln: { jmp b1 //SEG100 print_ln::@1 b1: - //SEG101 [41] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG101 [41] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -3102,7 +3102,7 @@ print_byte: { jmp b1 //SEG124 print_byte::@1 b1: - //SEG125 [55] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG125 [55] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG126 [56] (byte) print_char::ch#3 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) -- vbuaa=pbuc1_derefidx_vbuaa @@ -3244,7 +3244,7 @@ print_cls: { .label sc = 2 //SEG172 [80] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] b1_from_print_cls: - //SEG173 [80] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG173 [80] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -3265,7 +3265,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG179 [83] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG179 [83] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1_from_b1 @@ -3310,10 +3310,10 @@ mulf_init: { //SEG192 [87] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 -- vbuz1=_hi_vwsz2 lda sqr+1 sta val - //SEG193 [88] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG193 [88] *((const byte[$200]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuxx=vbuz1 lda val sta mulf_sqr1,x - //SEG194 [89] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG194 [89] *((const byte[$200]) mulf_sqr1#0+(word/signed word/dword/signed dword) $100 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuxx=vbuz1 lda val sta mulf_sqr1+$100,x //SEG195 [90] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 -- vbuaa=_neg_vbuxx @@ -3321,7 +3321,7 @@ mulf_init: { eor #$ff clc adc #1 - //SEG196 [91] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG196 [91] *((const byte[$200]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuaa=vbuz1 tay lda val sta mulf_sqr1,y @@ -3330,14 +3330,14 @@ mulf_init: { eor #$ff clc adc #1 - //SEG198 [93] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG198 [93] *((const byte[$200]) mulf_sqr1#0+(word/signed word/dword/signed dword) $100 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuaa=vbuz1 tay lda val sta mulf_sqr1+$100,y - //SEG199 [94] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG199 [94] *((const byte[$200]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuxx=vbuz1 lda val sta mulf_sqr2+1,x - //SEG200 [95] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG200 [95] *((const byte[$200]) mulf_sqr2#0+(word/signed word/dword/signed dword) $100+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuxx=vbuz1 lda val sta mulf_sqr2+$100+1,x //SEG201 [96] (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 -- vbuaa=vbuc1_minus_vbuxx @@ -3345,7 +3345,7 @@ mulf_init: { eor #$ff clc adc #1+1 - //SEG202 [97] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG202 [97] *((const byte[$200]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuaa=vbuz1 tay lda val sta mulf_sqr2,y @@ -3354,7 +3354,7 @@ mulf_init: { eor #$ff clc adc #1+1 - //SEG204 [99] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG204 [99] *((const byte[$200]) mulf_sqr2#0+(word/signed word/dword/signed dword) $100 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuaa=vbuz1 tay lda val sta mulf_sqr2+$100,y @@ -3376,7 +3376,7 @@ mulf_init: { !: //SEG207 [102] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 -- vbuxx=_inc_vbuxx inx - //SEG208 [103] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG208 [103] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) $81) goto mulf_init::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$81 bne b1_from_b1 jmp breturn @@ -3603,7 +3603,7 @@ FINAL SYMBOL TABLE (byte) LIGHT_GREY (byte) ORANGE (signed byte*) PERSP_Z -(const signed byte*) PERSP_Z#0 PERSP_Z = ((signed byte*))(word/signed word/dword/signed dword) 9216 +(const signed byte*) PERSP_Z#0 PERSP_Z = ((signed byte*))(word/signed word/dword/signed dword) $2400 (byte) PINK (byte*) PROCPORT (byte) PROCPORT_BASIC_KERNEL_IO @@ -3659,11 +3659,11 @@ FINAL SYMBOL TABLE (const string) do_perspective::str3 str3 = (string) ") -> (@" (const string) do_perspective::str5 str5 = (string) ")@" (signed byte) do_perspective::x -(const signed byte) do_perspective::x#0 x = (byte/signed byte/word/signed word/dword/signed dword) 57 +(const signed byte) do_perspective::x#0 x = (byte/signed byte/word/signed word/dword/signed dword) $39 (signed byte) do_perspective::y -(const signed byte) do_perspective::y#0 y = -(byte/signed byte/word/signed word/dword/signed dword) 71 +(const signed byte) do_perspective::y#0 y = -(byte/signed byte/word/signed word/dword/signed dword) $47 (signed byte) do_perspective::z -(const signed byte) do_perspective::z#0 z = (byte/signed byte/word/signed word/dword/signed dword) 54 +(const signed byte) do_perspective::z#0 z = (byte/signed byte/word/signed word/dword/signed dword) $36 (void()) main() (label) main::@1 (label) main::@2 @@ -3686,10 +3686,10 @@ FINAL SYMBOL TABLE (signed word) mulf_init::sqr#2 sqr zp ZP_WORD:2 2.357142857142857 (byte) mulf_init::val (byte) mulf_init::val#0 val zp ZP_BYTE:6 8.25 -(byte[512]) mulf_sqr1 -(const byte[512]) mulf_sqr1#0 mulf_sqr1 = { fill( 512, 0) } -(byte[512]) mulf_sqr2 -(const byte[512]) mulf_sqr2#0 mulf_sqr2 = { fill( 512, 0) } +(byte[$200]) mulf_sqr1 +(const byte[$200]) mulf_sqr1#0 mulf_sqr1 = { fill( $200, 0) } +(byte[$200]) mulf_sqr2 +(const byte[$200]) mulf_sqr2#0 mulf_sqr2 = { fill( $200, 0) } (void()) perspective((signed byte) perspective::x , (signed byte) perspective::y , (signed byte) perspective::z) (label) perspective::@return (signed byte) perspective::x @@ -3752,15 +3752,15 @@ FINAL SYMBOL TABLE (byte*) print_str::str#7 str zp ZP_WORD:2 11.5 (byte*) print_str::str#9 str zp ZP_WORD:2 2.0 (word*) psp1 -(const word*) psp1#0 psp1 = ((word*))(byte/word/signed word/dword/signed dword) 243 +(const word*) psp1#0 psp1 = ((word*))(byte/word/signed word/dword/signed dword) $f3 (word*) psp2 -(const word*) psp2#0 psp2 = ((word*))(byte/word/signed word/dword/signed dword) 245 +(const word*) psp2#0 psp2 = ((word*))(byte/word/signed word/dword/signed dword) $f5 (signed byte*) xr -(const signed byte*) xr#0 xr = ((signed byte*))(byte/word/signed word/dword/signed dword) 240 +(const signed byte*) xr#0 xr = ((signed byte*))(byte/word/signed word/dword/signed dword) $f0 (signed byte*) yr -(const signed byte*) yr#0 yr = ((signed byte*))(byte/word/signed word/dword/signed dword) 241 +(const signed byte*) yr#0 yr = ((signed byte*))(byte/word/signed word/dword/signed dword) $f1 (signed byte*) zr -(const signed byte*) zr#0 zr = ((signed byte*))(byte/word/signed word/dword/signed dword) 242 +(const signed byte*) zr#0 zr = ((signed byte*))(byte/word/signed word/dword/signed dword) $f2 zp ZP_WORD:2 [ print_line_cursor#11 print_line_cursor#1 print_str::str#7 print_str::str#9 print_str::str#0 print_cls::sc#2 print_cls::sc#1 mulf_init::sqr#2 mulf_init::sqr#1 ] reg byte x [ print_byte::b#3 print_byte::b#5 print_byte::b#6 print_byte::b#7 ] @@ -3815,12 +3815,12 @@ main: { //SEG12 [85] phi from main to mulf_init [phi:main->mulf_init] jsr mulf_init //SEG13 main::@1 - //SEG14 [6] *((const word*) psp1#0) ← ((word))(const byte[512]) mulf_sqr1#0 -- _deref_pwuc1=vwuc2 + //SEG14 [6] *((const word*) psp1#0) ← ((word))(const byte[$200]) mulf_sqr1#0 -- _deref_pwuc1=vwuc2 lda #mulf_sqr1 sta psp1+1 - //SEG15 [7] *((const word*) psp2#0) ← ((word))(const byte[512]) mulf_sqr2#0 -- _deref_pwuc1=vwuc2 + //SEG15 [7] *((const word*) psp2#0) ← ((word))(const byte[$200]) mulf_sqr2#0 -- _deref_pwuc1=vwuc2 lda #mulf_sqr2 @@ -3844,7 +3844,7 @@ do_perspective: { .label z = $36 //SEG25 [13] call print_str //SEG26 [44] phi from do_perspective to print_str [phi:do_perspective->print_str] - //SEG27 [44] phi (byte*) print_char_cursor#74 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:do_perspective->print_str#0] -- pbuz1=pbuc1 + //SEG27 [44] phi (byte*) print_char_cursor#74 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:do_perspective->print_str#0] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -3968,7 +3968,7 @@ do_perspective: { // Print a newline print_ln: { //SEG96 [40] phi from print_ln to print_ln::@1 [phi:print_ln->print_ln::@1] - //SEG97 [40] phi (byte*) print_line_cursor#11 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_ln->print_ln::@1#0] -- pbuz1=pbuc1 + //SEG97 [40] phi (byte*) print_line_cursor#11 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_ln->print_ln::@1#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -3977,7 +3977,7 @@ print_ln: { //SEG99 [40] phi (byte*) print_line_cursor#11 = (byte*) print_line_cursor#1 [phi:print_ln::@1->print_ln::@1#0] -- register_copy //SEG100 print_ln::@1 b1: - //SEG101 [41] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG101 [41] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -4053,7 +4053,7 @@ print_byte: { //SEG123 [59] phi (byte) print_char::ch#4 = (byte) print_char::ch#2 [phi:print_byte->print_char#1] -- register_copy jsr print_char //SEG124 print_byte::@1 - //SEG125 [55] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG125 [55] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG126 [56] (byte) print_char::ch#3 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) -- vbuaa=pbuc1_derefidx_vbuaa @@ -4171,7 +4171,7 @@ print_sbyte: { print_cls: { .label sc = 2 //SEG172 [80] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] - //SEG173 [80] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG173 [80] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -4189,7 +4189,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG179 [83] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG179 [83] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1 @@ -4226,16 +4226,16 @@ mulf_init: { //SEG192 [87] (byte) mulf_init::val#0 ← > (signed word) mulf_init::sqr#2 -- vbuz1=_hi_vwsz2 lda sqr+1 sta val - //SEG193 [88] *((const byte[512]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG193 [88] *((const byte[$200]) mulf_sqr1#0 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuxx=vbuz1 sta mulf_sqr1,x - //SEG194 [89] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG194 [89] *((const byte[$200]) mulf_sqr1#0+(word/signed word/dword/signed dword) $100 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuxx=vbuz1 sta mulf_sqr1+$100,x //SEG195 [90] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2 -- vbuaa=_neg_vbuxx txa eor #$ff clc adc #1 - //SEG196 [91] *((const byte[512]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG196 [91] *((const byte[$200]) mulf_sqr1#0 + (byte~) mulf_init::$2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuaa=vbuz1 tay lda val sta mulf_sqr1,y @@ -4244,20 +4244,20 @@ mulf_init: { eor #$ff clc adc #1 - //SEG198 [93] *((const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG198 [93] *((const byte[$200]) mulf_sqr1#0+(word/signed word/dword/signed dword) $100 + (byte~) mulf_init::$4) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuaa=vbuz1 tay lda val sta mulf_sqr1+$100,y - //SEG199 [94] *((const byte[512]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG199 [94] *((const byte[$200]) mulf_sqr2#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuxx=vbuz1 sta mulf_sqr2+1,x - //SEG200 [95] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG200 [95] *((const byte[$200]) mulf_sqr2#0+(word/signed word/dword/signed dword) $100+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) mulf_init::i#2) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuxx=vbuz1 sta mulf_sqr2+$100+1,x //SEG201 [96] (byte/signed word/word/dword/signed dword~) mulf_init::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) mulf_init::i#2 -- vbuaa=vbuc1_minus_vbuxx txa eor #$ff clc adc #1+1 - //SEG202 [97] *((const byte[512]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG202 [97] *((const byte[$200]) mulf_sqr2#0 + (byte/signed word/word/dword/signed dword~) mulf_init::$8) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuaa=vbuz1 tay lda val sta mulf_sqr2,y @@ -4266,7 +4266,7 @@ mulf_init: { eor #$ff clc adc #1+1 - //SEG204 [99] *((const byte[512]) mulf_sqr2#0+(word/signed word/dword/signed dword) 256 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG204 [99] *((const byte[$200]) mulf_sqr2#0+(word/signed word/dword/signed dword) $100 + (byte/signed word/word/dword/signed dword~) mulf_init::$10) ← (byte) mulf_init::val#0 -- pbuc1_derefidx_vbuaa=vbuz1 tay lda val sta mulf_sqr2+$100,y @@ -4288,7 +4288,7 @@ mulf_init: { !: //SEG207 [102] (byte) mulf_init::i#1 ← ++ (byte) mulf_init::i#2 -- vbuxx=_inc_vbuxx inx - //SEG208 [103] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) 129) goto mulf_init::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG208 [103] if((byte) mulf_init::i#1!=(byte/word/signed word/dword/signed dword) $81) goto mulf_init::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$81 bne b1 //SEG209 mulf_init::@return diff --git a/src/test/ref/examples/3d/perspective.sym b/src/test/ref/examples/3d/perspective.sym index f9ffb0005..2242df1df 100644 --- a/src/test/ref/examples/3d/perspective.sym +++ b/src/test/ref/examples/3d/perspective.sym @@ -45,7 +45,7 @@ (byte) LIGHT_GREY (byte) ORANGE (signed byte*) PERSP_Z -(const signed byte*) PERSP_Z#0 PERSP_Z = ((signed byte*))(word/signed word/dword/signed dword) 9216 +(const signed byte*) PERSP_Z#0 PERSP_Z = ((signed byte*))(word/signed word/dword/signed dword) $2400 (byte) PINK (byte*) PROCPORT (byte) PROCPORT_BASIC_KERNEL_IO @@ -101,11 +101,11 @@ (const string) do_perspective::str3 str3 = (string) ") -> (@" (const string) do_perspective::str5 str5 = (string) ")@" (signed byte) do_perspective::x -(const signed byte) do_perspective::x#0 x = (byte/signed byte/word/signed word/dword/signed dword) 57 +(const signed byte) do_perspective::x#0 x = (byte/signed byte/word/signed word/dword/signed dword) $39 (signed byte) do_perspective::y -(const signed byte) do_perspective::y#0 y = -(byte/signed byte/word/signed word/dword/signed dword) 71 +(const signed byte) do_perspective::y#0 y = -(byte/signed byte/word/signed word/dword/signed dword) $47 (signed byte) do_perspective::z -(const signed byte) do_perspective::z#0 z = (byte/signed byte/word/signed word/dword/signed dword) 54 +(const signed byte) do_perspective::z#0 z = (byte/signed byte/word/signed word/dword/signed dword) $36 (void()) main() (label) main::@1 (label) main::@2 @@ -128,10 +128,10 @@ (signed word) mulf_init::sqr#2 sqr zp ZP_WORD:2 2.357142857142857 (byte) mulf_init::val (byte) mulf_init::val#0 val zp ZP_BYTE:6 8.25 -(byte[512]) mulf_sqr1 -(const byte[512]) mulf_sqr1#0 mulf_sqr1 = { fill( 512, 0) } -(byte[512]) mulf_sqr2 -(const byte[512]) mulf_sqr2#0 mulf_sqr2 = { fill( 512, 0) } +(byte[$200]) mulf_sqr1 +(const byte[$200]) mulf_sqr1#0 mulf_sqr1 = { fill( $200, 0) } +(byte[$200]) mulf_sqr2 +(const byte[$200]) mulf_sqr2#0 mulf_sqr2 = { fill( $200, 0) } (void()) perspective((signed byte) perspective::x , (signed byte) perspective::y , (signed byte) perspective::z) (label) perspective::@return (signed byte) perspective::x @@ -194,15 +194,15 @@ (byte*) print_str::str#7 str zp ZP_WORD:2 11.5 (byte*) print_str::str#9 str zp ZP_WORD:2 2.0 (word*) psp1 -(const word*) psp1#0 psp1 = ((word*))(byte/word/signed word/dword/signed dword) 243 +(const word*) psp1#0 psp1 = ((word*))(byte/word/signed word/dword/signed dword) $f3 (word*) psp2 -(const word*) psp2#0 psp2 = ((word*))(byte/word/signed word/dword/signed dword) 245 +(const word*) psp2#0 psp2 = ((word*))(byte/word/signed word/dword/signed dword) $f5 (signed byte*) xr -(const signed byte*) xr#0 xr = ((signed byte*))(byte/word/signed word/dword/signed dword) 240 +(const signed byte*) xr#0 xr = ((signed byte*))(byte/word/signed word/dword/signed dword) $f0 (signed byte*) yr -(const signed byte*) yr#0 yr = ((signed byte*))(byte/word/signed word/dword/signed dword) 241 +(const signed byte*) yr#0 yr = ((signed byte*))(byte/word/signed word/dword/signed dword) $f1 (signed byte*) zr -(const signed byte*) zr#0 zr = ((signed byte*))(byte/word/signed word/dword/signed dword) 242 +(const signed byte*) zr#0 zr = ((signed byte*))(byte/word/signed word/dword/signed dword) $f2 zp ZP_WORD:2 [ print_line_cursor#11 print_line_cursor#1 print_str::str#7 print_str::str#9 print_str::str#0 print_cls::sc#2 print_cls::sc#1 mulf_init::sqr#2 mulf_init::sqr#1 ] reg byte x [ print_byte::b#3 print_byte::b#5 print_byte::b#6 print_byte::b#7 ] diff --git a/src/test/ref/examples/bresenham/bitmap-bresenham.cfg b/src/test/ref/examples/bresenham/bitmap-bresenham.cfg index fdf5ab4ac..b0985ef1b 100644 --- a/src/test/ref/examples/bresenham/bitmap-bresenham.cfg +++ b/src/test/ref/examples/bresenham/bitmap-bresenham.cfg @@ -11,7 +11,7 @@ main: scope:[main] from @15 [4] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [5] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [6] *((const byte*) D011#0) ← (const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 - [7] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) BITMAP#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 + [7] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) BITMAP#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 [8] call bitmap_init to:main::@3 main::@3: scope:[main] from main @@ -175,10 +175,10 @@ bitmap_line_xdyi::@return: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@2 bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1 bitmap_line_ydxd::@1 bitmap_line_ydxi::@1 [102] (byte) bitmap_plot::y#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::y#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::y#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::y#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::y#2 ) [102] (byte) bitmap_plot::x#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::x#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::x#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::x#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::x#2 ) - [103] (word) bitmap_plot::plotter_x#0 ← *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) - [104] (word) bitmap_plot::plotter_y#0 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) + [103] (word) bitmap_plot::plotter_x#0 ← *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) + [104] (word) bitmap_plot::plotter_y#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) [105] (word~) bitmap_plot::$0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0 - [106] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) + [106] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) [107] *((byte*)(word~) bitmap_plot::$0) ← (byte~) bitmap_plot::$1 to:bitmap_plot::@return bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot @@ -291,15 +291,15 @@ init_screen: scope:[init_screen] from main::@4 to:init_screen::@1 init_screen::@1: scope:[init_screen] from init_screen init_screen::@1 [155] (byte*) init_screen::c#2 ← phi( init_screen/(const byte*) SCREEN#0 init_screen::@1/(byte*) init_screen::c#1 ) - [156] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) 20 + [156] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) $14 [157] (byte*) init_screen::c#1 ← ++ (byte*) init_screen::c#2 - [158] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1024) goto init_screen::@1 + [158] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $400) goto init_screen::@1 to:init_screen::@return init_screen::@return: scope:[init_screen] from init_screen::@1 [159] return to:@return bitmap_clear: scope:[bitmap_clear] from main::@3 - [160] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_xhi#0) w= *((const byte[256]) bitmap_plot_xlo#0) + [160] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_xhi#0) w= *((const byte[$100]) bitmap_plot_xlo#0) [161] (byte*~) bitmap_clear::bitmap#5 ← (byte*)(word~) bitmap_clear::$3 to:bitmap_clear::@1 bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear bitmap_clear::@3 @@ -312,11 +312,11 @@ bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1 bitmap_clear::@2 [164] *((byte*) bitmap_clear::bitmap#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [165] (byte*) bitmap_clear::bitmap#1 ← ++ (byte*) bitmap_clear::bitmap#2 [166] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 - [167] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) 200) goto bitmap_clear::@2 + [167] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) $c8) goto bitmap_clear::@2 to:bitmap_clear::@3 bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2 [168] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 - [169] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto bitmap_clear::@1 + [169] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto bitmap_clear::@1 to:bitmap_clear::@return bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3 [170] return @@ -325,17 +325,17 @@ bitmap_init: scope:[bitmap_init] from main [171] phi() to:bitmap_init::@1 bitmap_init::@1: scope:[bitmap_init] from bitmap_init bitmap_init::@2 - [172] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte/word/signed word/dword/signed dword) 128 bitmap_init::@2/(byte) bitmap_init::bits#4 ) + [172] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte/word/signed word/dword/signed dword) $80 bitmap_init::@2/(byte) bitmap_init::bits#4 ) [172] (byte) bitmap_init::x#2 ← phi( bitmap_init/(byte/signed byte/word/signed word/dword/signed dword) 0 bitmap_init::@2/(byte) bitmap_init::x#1 ) - [173] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) 248 - [174] *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 - [175] *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) BITMAP#0 - [176] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 + [173] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) $f8 + [174] *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 + [175] *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) BITMAP#0 + [176] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [177] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [178] if((byte) bitmap_init::bits#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@10 to:bitmap_init::@2 bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@10 - [179] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@10/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte/word/signed word/dword/signed dword) 128 ) + [179] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@10/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte/word/signed word/dword/signed dword) $80 ) [180] (byte) bitmap_init::x#1 ← ++ (byte) bitmap_init::x#2 [181] if((byte) bitmap_init::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@1 to:bitmap_init::@3 @@ -345,14 +345,14 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4 [183] (byte~) bitmap_init::$6 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [184] (byte~) bitmap_init::$7 ← < (byte*) bitmap_init::yoffs#2 [185] (byte~) bitmap_init::$8 ← (byte~) bitmap_init::$6 | (byte~) bitmap_init::$7 - [186] *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 + [186] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 [187] (byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2 - [188] *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 + [188] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 [189] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [190] if((byte~) bitmap_init::$10!=(byte/signed byte/word/signed word/dword/signed dword) 7) goto bitmap_init::@4 to:bitmap_init::@7 bitmap_init::@7: scope:[bitmap_init] from bitmap_init::@3 - [191] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 + [191] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 to:bitmap_init::@4 bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@7 [192] (byte*) bitmap_init::yoffs#4 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 bitmap_init::@7/(byte*) bitmap_init::yoffs#1 ) diff --git a/src/test/ref/examples/bresenham/bitmap-bresenham.log b/src/test/ref/examples/bresenham/bitmap-bresenham.log index 326e48eab..a718609b6 100644 --- a/src/test/ref/examples/bresenham/bitmap-bresenham.log +++ b/src/test/ref/examples/bresenham/bitmap-bresenham.log @@ -5,66 +5,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -75,34 +75,34 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@4 @4: scope:[] from @begin - (byte[256]) bitmap_plot_xlo#0 ← { fill( 256, 0) } - (byte[256]) bitmap_plot_xhi#0 ← { fill( 256, 0) } - (byte[256]) bitmap_plot_ylo#0 ← { fill( 256, 0) } - (byte[256]) bitmap_plot_yhi#0 ← { fill( 256, 0) } - (byte[256]) bitmap_plot_bit#0 ← { fill( 256, 0) } + (byte[$100]) bitmap_plot_xlo#0 ← { fill( $100, 0) } + (byte[$100]) bitmap_plot_xhi#0 ← { fill( $100, 0) } + (byte[$100]) bitmap_plot_ylo#0 ← { fill( $100, 0) } + (byte[$100]) bitmap_plot_yhi#0 ← { fill( $100, 0) } + (byte[$100]) bitmap_plot_bit#0 ← { fill( $100, 0) } to:@12 bitmap_init: scope:[bitmap_init] from main (byte*) bitmap_init::bitmap#2 ← phi( main/(byte*) bitmap_init::bitmap#0 ) - (byte) bitmap_init::bits#0 ← (byte/word/signed word/dword/signed dword) 128 + (byte) bitmap_init::bits#0 ← (byte/word/signed word/dword/signed dword) $80 (byte) bitmap_init::x#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:bitmap_init::@1 bitmap_init::@1: scope:[bitmap_init] from bitmap_init bitmap_init::@2 (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte) bitmap_init::bits#0 bitmap_init::@2/(byte) bitmap_init::bits#4 ) (byte*) bitmap_init::bitmap#1 ← phi( bitmap_init/(byte*) bitmap_init::bitmap#2 bitmap_init::@2/(byte*) bitmap_init::bitmap#3 ) (byte) bitmap_init::x#2 ← phi( bitmap_init/(byte) bitmap_init::x#0 bitmap_init::@2/(byte) bitmap_init::x#1 ) - (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) 248 - *((byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 + (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) $f8 + *((byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 (byte~) bitmap_init::$1 ← > (byte*) bitmap_init::bitmap#1 - *((byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$1 - *((byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 + *((byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$1 + *((byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 (byte~) bitmap_init::$2 ← (byte) bitmap_init::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) bitmap_init::bits#1 ← (byte~) bitmap_init::$2 (bool~) bitmap_init::$3 ← (byte) bitmap_init::bits#1 == (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -113,14 +113,14 @@ bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@5 (byte) bitmap_init::bits#4 ← phi( bitmap_init::@1/(byte) bitmap_init::bits#1 bitmap_init::@5/(byte) bitmap_init::bits#2 ) (byte*) bitmap_init::bitmap#3 ← phi( bitmap_init::@1/(byte*) bitmap_init::bitmap#1 bitmap_init::@5/(byte*) bitmap_init::bitmap#4 ) (byte) bitmap_init::x#3 ← phi( bitmap_init::@1/(byte) bitmap_init::x#2 bitmap_init::@5/(byte) bitmap_init::x#4 ) - (byte) bitmap_init::x#1 ← (byte) bitmap_init::x#3 + rangenext(0,255) - (bool~) bitmap_init::$5 ← (byte) bitmap_init::x#1 != rangelast(0,255) + (byte) bitmap_init::x#1 ← (byte) bitmap_init::x#3 + rangenext(0,$ff) + (bool~) bitmap_init::$5 ← (byte) bitmap_init::x#1 != rangelast(0,$ff) if((bool~) bitmap_init::$5) goto bitmap_init::@1 to:bitmap_init::@6 bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@1 (byte*) bitmap_init::bitmap#4 ← phi( bitmap_init::@1/(byte*) bitmap_init::bitmap#1 ) (byte) bitmap_init::x#4 ← phi( bitmap_init::@1/(byte) bitmap_init::x#2 ) - (byte) bitmap_init::bits#2 ← (byte/word/signed word/dword/signed dword) 128 + (byte) bitmap_init::bits#2 ← (byte/word/signed word/dword/signed dword) $80 to:bitmap_init::@2 bitmap_init::@6: scope:[bitmap_init] from bitmap_init::@2 (byte*) bitmap_init::yoffs#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -132,9 +132,9 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@4 bitmap_init::@6 (byte~) bitmap_init::$6 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 (byte~) bitmap_init::$7 ← < (byte*) bitmap_init::yoffs#2 (byte~) bitmap_init::$8 ← (byte~) bitmap_init::$6 | (byte~) bitmap_init::$7 - *((byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 + *((byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 (byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2 - *((byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 + *((byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 (bool~) bitmap_init::$11 ← (byte~) bitmap_init::$10 == (byte/signed byte/word/signed word/dword/signed dword) 7 (bool~) bitmap_init::$12 ← ! (bool~) bitmap_init::$11 @@ -143,14 +143,14 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@4 bitmap_init::@6 bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@7 (byte*) bitmap_init::yoffs#4 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 bitmap_init::@7/(byte*) bitmap_init::yoffs#1 ) (byte) bitmap_init::y#3 ← phi( bitmap_init::@3/(byte) bitmap_init::y#2 bitmap_init::@7/(byte) bitmap_init::y#4 ) - (byte) bitmap_init::y#1 ← (byte) bitmap_init::y#3 + rangenext(0,255) - (bool~) bitmap_init::$15 ← (byte) bitmap_init::y#1 != rangelast(0,255) + (byte) bitmap_init::y#1 ← (byte) bitmap_init::y#3 + rangenext(0,$ff) + (bool~) bitmap_init::$15 ← (byte) bitmap_init::y#1 != rangelast(0,$ff) if((bool~) bitmap_init::$15) goto bitmap_init::@3 to:bitmap_init::@return bitmap_init::@7: scope:[bitmap_init] from bitmap_init::@3 (byte) bitmap_init::y#4 ← phi( bitmap_init::@3/(byte) bitmap_init::y#2 ) (byte*) bitmap_init::yoffs#3 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 ) - (word/signed word/dword/signed dword~) bitmap_init::$13 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 8 + (word/signed word/dword/signed dword~) bitmap_init::$13 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 8 (byte*~) bitmap_init::$14 ← (byte*) bitmap_init::yoffs#3 + (word/signed word/dword/signed dword~) bitmap_init::$13 (byte*) bitmap_init::yoffs#1 ← (byte*~) bitmap_init::$14 to:bitmap_init::@4 @@ -158,7 +158,7 @@ bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4 return to:@return bitmap_clear: scope:[bitmap_clear] from main::@3 - (byte*~) bitmap_clear::$0 ← ((byte*)) { *((byte[256]) bitmap_plot_xhi#0 + (byte/signed byte/word/signed word/dword/signed dword) 0), *((byte[256]) bitmap_plot_xlo#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) } + (byte*~) bitmap_clear::$0 ← ((byte*)) { *((byte[$100]) bitmap_plot_xhi#0 + (byte/signed byte/word/signed word/dword/signed dword) 0), *((byte[$100]) bitmap_plot_xlo#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) } (byte*) bitmap_clear::bitmap#0 ← (byte*~) bitmap_clear::$0 (byte) bitmap_clear::y#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:bitmap_clear::@1 @@ -173,15 +173,15 @@ bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1 bitmap_clear::@2 (byte*) bitmap_clear::bitmap#2 ← phi( bitmap_clear::@1/(byte*) bitmap_clear::bitmap#3 bitmap_clear::@2/(byte*) bitmap_clear::bitmap#1 ) *((byte*) bitmap_clear::bitmap#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) bitmap_clear::bitmap#1 ← ++ (byte*) bitmap_clear::bitmap#2 - (byte) bitmap_clear::x#1 ← (byte) bitmap_clear::x#2 + rangenext(0,199) - (bool~) bitmap_clear::$1 ← (byte) bitmap_clear::x#1 != rangelast(0,199) + (byte) bitmap_clear::x#1 ← (byte) bitmap_clear::x#2 + rangenext(0,$c7) + (bool~) bitmap_clear::$1 ← (byte) bitmap_clear::x#1 != rangelast(0,$c7) if((bool~) bitmap_clear::$1) goto bitmap_clear::@2 to:bitmap_clear::@3 bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2 (byte*) bitmap_clear::bitmap#4 ← phi( bitmap_clear::@2/(byte*) bitmap_clear::bitmap#1 ) (byte) bitmap_clear::y#2 ← phi( bitmap_clear::@2/(byte) bitmap_clear::y#3 ) - (byte) bitmap_clear::y#1 ← (byte) bitmap_clear::y#2 + rangenext(0,39) - (bool~) bitmap_clear::$2 ← (byte) bitmap_clear::y#1 != rangelast(0,39) + (byte) bitmap_clear::y#1 ← (byte) bitmap_clear::y#2 + rangenext(0,$27) + (bool~) bitmap_clear::$2 ← (byte) bitmap_clear::y#1 != rangelast(0,$27) if((bool~) bitmap_clear::$2) goto bitmap_clear::@1 to:bitmap_clear::@return bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3 @@ -190,11 +190,11 @@ bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3 bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1 bitmap_line_ydxd::@1 bitmap_line_ydxi::@1 (byte) bitmap_plot::y#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::y#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::y#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::y#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::y#2 ) (byte) bitmap_plot::x#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::x#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::x#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::x#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::x#2 ) - (word) bitmap_plot::plotter_x#0 ← { *((byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4), *((byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) } - (word) bitmap_plot::plotter_y#0 ← { *((byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4), *((byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) } + (word) bitmap_plot::plotter_x#0 ← { *((byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4), *((byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) } + (word) bitmap_plot::plotter_y#0 ← { *((byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4), *((byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) } (word~) bitmap_plot::$0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0 (byte*) bitmap_plot::plotter#0 ← ((byte*)) (word~) bitmap_plot::$0 - (byte~) bitmap_plot::$1 ← *((byte*) bitmap_plot::plotter#0) | *((byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) + (byte~) bitmap_plot::$1 ← *((byte*) bitmap_plot::plotter#0) | *((byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) *((byte*) bitmap_plot::plotter#0) ← (byte~) bitmap_plot::$1 to:bitmap_plot::@return bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot @@ -635,10 +635,10 @@ bitmap_line_ydxd::@return: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@2 return to:@return @12: scope:[] from @4 - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte*) BITMAP#0 ← ((byte*)) (word/signed word/dword/signed dword) 8192 - (byte[]) lines_x#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 80, (byte/signed byte/word/signed word/dword/signed dword) 110, (byte/signed byte/word/signed word/dword/signed dword) 80, (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 40, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 40, (byte/signed byte/word/signed word/dword/signed dword) 60 } - (byte[]) lines_y#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 40, (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 80, (byte/signed byte/word/signed word/dword/signed dword) 110, (byte/signed byte/word/signed word/dword/signed dword) 80, (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 40, (byte/signed byte/word/signed word/dword/signed dword) 10 } + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte*) BITMAP#0 ← ((byte*)) (word/signed word/dword/signed dword) $2000 + (byte[]) lines_x#0 ← { (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $50, (byte/signed byte/word/signed word/dword/signed dword) $6e, (byte/signed byte/word/signed word/dword/signed dword) $50, (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $28, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $28, (byte/signed byte/word/signed word/dword/signed dword) $3c } + (byte[]) lines_y#0 ← { (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $28, (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $50, (byte/signed byte/word/signed word/dword/signed dword) $6e, (byte/signed byte/word/signed word/dword/signed dword) $50, (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $28, (byte/signed byte/word/signed word/dword/signed dword) $a } (byte) lines_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 to:@15 main: scope:[main] from @15 @@ -650,11 +650,11 @@ main: scope:[main] from @15 (byte/word/dword~) main::$2 ← (byte~) main::$1 | (byte/signed byte/word/signed word/dword/signed dword) 3 *((byte*) D011#0) ← (byte/word/dword~) main::$2 (word~) main::$3 ← ((word)) (byte*) SCREEN#0 - (word~) main::$4 ← (word~) main::$3 & (word/signed word/dword/signed dword) 16383 - (word/signed dword/dword~) main::$5 ← (word~) main::$4 / (byte/signed byte/word/signed word/dword/signed dword) 64 + (word~) main::$4 ← (word~) main::$3 & (word/signed word/dword/signed dword) $3fff + (word/signed dword/dword~) main::$5 ← (word~) main::$4 / (byte/signed byte/word/signed word/dword/signed dword) $40 (word~) main::$6 ← ((word)) (byte*) BITMAP#0 - (word~) main::$7 ← (word~) main::$6 & (word/signed word/dword/signed dword) 16383 - (word/signed dword/dword~) main::$8 ← (word~) main::$7 / (word/signed word/dword/signed dword) 1024 + (word~) main::$7 ← (word~) main::$6 & (word/signed word/dword/signed dword) $3fff + (word/signed dword/dword~) main::$8 ← (word~) main::$7 / (word/signed word/dword/signed dword) $400 (word/dword~) main::$9 ← (word/signed dword/dword~) main::$5 | (word/signed dword/dword~) main::$8 (byte~) main::$10 ← ((byte)) (word/dword~) main::$9 *((byte*) VIC_MEMORY#0) ← (byte~) main::$10 @@ -713,9 +713,9 @@ init_screen: scope:[init_screen] from main::@4 to:init_screen::@1 init_screen::@1: scope:[init_screen] from init_screen init_screen::@1 (byte*) init_screen::c#2 ← phi( init_screen/(byte*) init_screen::c#0 init_screen::@1/(byte*) init_screen::c#1 ) - *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) 20 + *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) $14 (byte*) init_screen::c#1 ← ++ (byte*) init_screen::c#2 - (byte*~) init_screen::$0 ← (byte*) SCREEN#0 + (word/signed word/dword/signed dword) 1024 + (byte*~) init_screen::$0 ← (byte*) SCREEN#0 + (word/signed word/dword/signed dword) $400 (bool~) init_screen::$1 ← (byte*) init_screen::c#1 != (byte*~) init_screen::$0 if((bool~) init_screen::$1) goto init_screen::@1 to:init_screen::@return @@ -1380,16 +1380,16 @@ SYMBOL TABLE SSA (byte) bitmap_plot::y#2 (byte) bitmap_plot::y#3 (byte) bitmap_plot::y#4 -(byte[256]) bitmap_plot_bit -(byte[256]) bitmap_plot_bit#0 -(byte[256]) bitmap_plot_xhi -(byte[256]) bitmap_plot_xhi#0 -(byte[256]) bitmap_plot_xlo -(byte[256]) bitmap_plot_xlo#0 -(byte[256]) bitmap_plot_yhi -(byte[256]) bitmap_plot_yhi#0 -(byte[256]) bitmap_plot_ylo -(byte[256]) bitmap_plot_ylo#0 +(byte[$100]) bitmap_plot_bit +(byte[$100]) bitmap_plot_bit#0 +(byte[$100]) bitmap_plot_xhi +(byte[$100]) bitmap_plot_xhi#0 +(byte[$100]) bitmap_plot_xlo +(byte[$100]) bitmap_plot_xlo#0 +(byte[$100]) bitmap_plot_yhi +(byte[$100]) bitmap_plot_yhi#0 +(byte[$100]) bitmap_plot_ylo +(byte[$100]) bitmap_plot_ylo#0 (void()) init_screen() (byte*~) init_screen::$0 (bool~) init_screen::$1 @@ -1590,11 +1590,11 @@ Redundant Phi (byte) lines_cnt#3 (byte) lines_cnt#4 Redundant Phi (byte) lines_cnt#1 (byte) lines_cnt#3 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) bitmap_init::$4 [97] if((byte) bitmap_init::bits#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@2 -Simple Condition (bool~) bitmap_init::$5 [101] if((byte) bitmap_init::x#1!=rangelast(0,255)) goto bitmap_init::@1 +Simple Condition (bool~) bitmap_init::$5 [101] if((byte) bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 Simple Condition (bool~) bitmap_init::$12 [116] if((byte~) bitmap_init::$10!=(byte/signed byte/word/signed word/dword/signed dword) 7) goto bitmap_init::@4 -Simple Condition (bool~) bitmap_init::$15 [120] if((byte) bitmap_init::y#1!=rangelast(0,255)) goto bitmap_init::@3 -Simple Condition (bool~) bitmap_clear::$1 [136] if((byte) bitmap_clear::x#1!=rangelast(0,199)) goto bitmap_clear::@2 -Simple Condition (bool~) bitmap_clear::$2 [140] if((byte) bitmap_clear::y#1!=rangelast(0,39)) goto bitmap_clear::@1 +Simple Condition (bool~) bitmap_init::$15 [120] if((byte) bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@3 +Simple Condition (bool~) bitmap_clear::$1 [136] if((byte) bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2 +Simple Condition (bool~) bitmap_clear::$2 [140] if((byte) bitmap_clear::y#1!=rangelast(0,$27)) goto bitmap_clear::@1 Simple Condition (bool~) bitmap_line::$0 [154] if((byte) bitmap_line::x0#0<(byte) bitmap_line::x1#0) goto bitmap_line::@1 Simple Condition (bool~) bitmap_line::$12 [159] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@9 Simple Condition (bool~) bitmap_line::$2 [164] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@2 @@ -1616,66 +1616,66 @@ Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -1686,31 +1686,31 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 -Constant (const byte[256]) bitmap_plot_xlo#0 = { fill( 256, 0) } -Constant (const byte[256]) bitmap_plot_xhi#0 = { fill( 256, 0) } -Constant (const byte[256]) bitmap_plot_ylo#0 = { fill( 256, 0) } -Constant (const byte[256]) bitmap_plot_yhi#0 = { fill( 256, 0) } -Constant (const byte[256]) bitmap_plot_bit#0 = { fill( 256, 0) } -Constant (const byte) bitmap_init::bits#0 = 128 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f +Constant (const byte[$100]) bitmap_plot_xlo#0 = { fill( $100, 0) } +Constant (const byte[$100]) bitmap_plot_xhi#0 = { fill( $100, 0) } +Constant (const byte[$100]) bitmap_plot_ylo#0 = { fill( $100, 0) } +Constant (const byte[$100]) bitmap_plot_yhi#0 = { fill( $100, 0) } +Constant (const byte[$100]) bitmap_plot_bit#0 = { fill( $100, 0) } +Constant (const byte) bitmap_init::bits#0 = $80 Constant (const byte) bitmap_init::x#0 = 0 -Constant (const byte) bitmap_init::bits#2 = 128 +Constant (const byte) bitmap_init::bits#2 = $80 Constant (const byte*) bitmap_init::yoffs#0 = ((byte*))0 Constant (const byte) bitmap_init::y#0 = 0 -Constant (const word/signed word/dword/signed dword) bitmap_init::$13 = 40*8 +Constant (const word/signed word/dword/signed dword) bitmap_init::$13 = $28*8 Constant (const byte) bitmap_clear::y#0 = 0 Constant (const byte) bitmap_clear::x#0 = 0 Constant (const byte) bitmap_line::xd#0 = 0 Constant (const byte) bitmap_line::yd#0 = 0 -Constant (const byte*) SCREEN#0 = ((byte*))1024 -Constant (const byte*) BITMAP#0 = ((byte*))8192 -Constant (const byte[]) lines_x#0 = { 60, 80, 110, 80, 60, 40, 10, 40, 60 } -Constant (const byte[]) lines_y#0 = { 10, 40, 60, 80, 110, 80, 60, 40, 10 } +Constant (const byte*) SCREEN#0 = ((byte*))$400 +Constant (const byte*) BITMAP#0 = ((byte*))$2000 +Constant (const byte[]) lines_x#0 = { $3c, $50, $6e, $50, $3c, $28, $a, $28, $3c } +Constant (const byte[]) lines_y#0 = { $a, $28, $3c, $50, $6e, $50, $3c, $28, $a } Constant (const byte) lines_cnt#0 = 8 Constant (const byte) lines::l#0 = 0 Successful SSA optimization Pass2ConstantIdentification @@ -1719,16 +1719,16 @@ Constant (const word) main::$3 = ((word))SCREEN#0 Constant (const word) main::$6 = ((word))BITMAP#0 Constant (const byte*) bitmap_init::bitmap#0 = BITMAP#0 Constant (const byte*) init_screen::c#0 = SCREEN#0 -Constant (const byte*) init_screen::$0 = SCREEN#0+1024 +Constant (const byte*) init_screen::$0 = SCREEN#0+$400 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) bitmap_init::$1 = >bitmap_init::bitmap#0 Constant (const byte) main::$1 = main::$0|VIC_RSEL#0 -Constant (const word) main::$4 = main::$3&16383 -Constant (const word) main::$7 = main::$6&16383 +Constant (const word) main::$4 = main::$3&$3fff +Constant (const word) main::$7 = main::$6&$3fff Successful SSA optimization Pass2ConstantIdentification Constant (const byte/word/dword) main::$2 = main::$1|3 -Constant (const word/signed dword/dword) main::$5 = main::$4/64 -Constant (const word/signed dword/dword) main::$8 = main::$7/1024 +Constant (const word/signed dword/dword) main::$5 = main::$4/$40 +Constant (const word/signed dword/dword) main::$8 = main::$7/$400 Successful SSA optimization Pass2ConstantIdentification Constant (const word/dword) main::$9 = main::$5|main::$8 Successful SSA optimization Pass2ConstantIdentification @@ -1752,13 +1752,13 @@ Successful SSA optimization Pass2NopCastElimination Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks Resolved ranged next value bitmap_init::x#1 ← ++ bitmap_init::x#2 to ++ -Resolved ranged comparison value if(bitmap_init::x#1!=rangelast(0,255)) goto bitmap_init::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 Resolved ranged next value bitmap_init::y#1 ← ++ bitmap_init::y#2 to ++ -Resolved ranged comparison value if(bitmap_init::y#1!=rangelast(0,255)) goto bitmap_init::@3 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@3 to (byte/signed byte/word/signed word/dword/signed dword) 0 Resolved ranged next value bitmap_clear::x#1 ← ++ bitmap_clear::x#2 to ++ -Resolved ranged comparison value if(bitmap_clear::x#1!=rangelast(0,199)) goto bitmap_clear::@2 to (byte/word/signed word/dword/signed dword) 200 +Resolved ranged comparison value if(bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2 to (byte/word/signed word/dword/signed dword) $c8 Resolved ranged next value bitmap_clear::y#1 ← ++ bitmap_clear::y#4 to ++ -Resolved ranged comparison value if(bitmap_clear::y#1!=rangelast(0,39)) goto bitmap_clear::@1 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(bitmap_clear::y#1!=rangelast(0,$27)) goto bitmap_clear::@1 to (byte/signed byte/word/signed word/dword/signed dword) $28 Culled Empty Block (label) @4 Culled Empty Block (label) bitmap_init::@6 Culled Empty Block (label) @12 @@ -1784,26 +1784,26 @@ Inlining constant with var siblings (const byte*) init_screen::c#0 Constant inlined bitmap_init::yoffs#0 = ((byte*))(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined bitmap_clear::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined bitmap_clear::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined bitmap_init::bits#0 = (byte/word/signed word/dword/signed dword) 128 -Constant inlined bitmap_init::bits#2 = (byte/word/signed word/dword/signed dword) 128 -Constant inlined main::$10 = ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) BITMAP#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 +Constant inlined bitmap_init::bits#0 = (byte/word/signed word/dword/signed dword) $80 +Constant inlined bitmap_init::bits#2 = (byte/word/signed word/dword/signed dword) $80 +Constant inlined main::$10 = ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) BITMAP#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 Constant inlined main::$1 = (const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0 Constant inlined lines::l#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::$2 = (const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 Constant inlined bitmap_init::$1 = >(const byte*) BITMAP#0 Constant inlined main::$0 = (const byte) VIC_BMM#0|(const byte) VIC_DEN#0 -Constant inlined main::$5 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64 +Constant inlined main::$5 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40 Constant inlined bitmap_init::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::$6 = ((word))(const byte*) BITMAP#0 -Constant inlined bitmap_init::$13 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 +Constant inlined bitmap_init::$13 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 Constant inlined main::$3 = ((word))(const byte*) SCREEN#0 -Constant inlined main::$4 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383 +Constant inlined main::$4 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff Constant inlined bitmap_init::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$9 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) BITMAP#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 +Constant inlined main::$9 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) BITMAP#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 Constant inlined init_screen::c#0 = (const byte*) SCREEN#0 -Constant inlined main::$7 = ((word))(const byte*) BITMAP#0&(word/signed word/dword/signed dword) 16383 -Constant inlined init_screen::$0 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1024 -Constant inlined main::$8 = ((word))(const byte*) BITMAP#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 +Constant inlined main::$7 = ((word))(const byte*) BITMAP#0&(word/signed word/dword/signed dword) $3fff +Constant inlined init_screen::$0 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) $400 +Constant inlined main::$8 = ((word))(const byte*) BITMAP#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 Constant inlined bitmap_init::bitmap#0 = (const byte*) BITMAP#0 Successful SSA optimization Pass2ConstantInlining Simplifying constant plus zero bitmap_plot_xhi#0+0 @@ -1989,7 +1989,7 @@ main: scope:[main] from @15 [4] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [5] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [6] *((const byte*) D011#0) ← (const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 - [7] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) BITMAP#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 + [7] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) BITMAP#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 [8] call bitmap_init to:main::@3 main::@3: scope:[main] from main @@ -2153,10 +2153,10 @@ bitmap_line_xdyi::@return: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@2 bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1 bitmap_line_ydxd::@1 bitmap_line_ydxi::@1 [102] (byte) bitmap_plot::y#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::y#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::y#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::y#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::y#2 ) [102] (byte) bitmap_plot::x#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::x#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::x#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::x#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::x#2 ) - [103] (word) bitmap_plot::plotter_x#0 ← *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) - [104] (word) bitmap_plot::plotter_y#0 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) + [103] (word) bitmap_plot::plotter_x#0 ← *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) + [104] (word) bitmap_plot::plotter_y#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) [105] (word~) bitmap_plot::$0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0 - [106] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) + [106] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) [107] *((byte*)(word~) bitmap_plot::$0) ← (byte~) bitmap_plot::$1 to:bitmap_plot::@return bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot @@ -2269,15 +2269,15 @@ init_screen: scope:[init_screen] from main::@4 to:init_screen::@1 init_screen::@1: scope:[init_screen] from init_screen init_screen::@1 [155] (byte*) init_screen::c#2 ← phi( init_screen/(const byte*) SCREEN#0 init_screen::@1/(byte*) init_screen::c#1 ) - [156] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) 20 + [156] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) $14 [157] (byte*) init_screen::c#1 ← ++ (byte*) init_screen::c#2 - [158] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1024) goto init_screen::@1 + [158] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $400) goto init_screen::@1 to:init_screen::@return init_screen::@return: scope:[init_screen] from init_screen::@1 [159] return to:@return bitmap_clear: scope:[bitmap_clear] from main::@3 - [160] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_xhi#0) w= *((const byte[256]) bitmap_plot_xlo#0) + [160] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_xhi#0) w= *((const byte[$100]) bitmap_plot_xlo#0) [161] (byte*~) bitmap_clear::bitmap#5 ← (byte*)(word~) bitmap_clear::$3 to:bitmap_clear::@1 bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear bitmap_clear::@3 @@ -2290,11 +2290,11 @@ bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1 bitmap_clear::@2 [164] *((byte*) bitmap_clear::bitmap#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [165] (byte*) bitmap_clear::bitmap#1 ← ++ (byte*) bitmap_clear::bitmap#2 [166] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 - [167] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) 200) goto bitmap_clear::@2 + [167] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) $c8) goto bitmap_clear::@2 to:bitmap_clear::@3 bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2 [168] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 - [169] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto bitmap_clear::@1 + [169] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto bitmap_clear::@1 to:bitmap_clear::@return bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3 [170] return @@ -2303,17 +2303,17 @@ bitmap_init: scope:[bitmap_init] from main [171] phi() to:bitmap_init::@1 bitmap_init::@1: scope:[bitmap_init] from bitmap_init bitmap_init::@2 - [172] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte/word/signed word/dword/signed dword) 128 bitmap_init::@2/(byte) bitmap_init::bits#4 ) + [172] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte/word/signed word/dword/signed dword) $80 bitmap_init::@2/(byte) bitmap_init::bits#4 ) [172] (byte) bitmap_init::x#2 ← phi( bitmap_init/(byte/signed byte/word/signed word/dword/signed dword) 0 bitmap_init::@2/(byte) bitmap_init::x#1 ) - [173] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) 248 - [174] *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 - [175] *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) BITMAP#0 - [176] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 + [173] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) $f8 + [174] *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 + [175] *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) BITMAP#0 + [176] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [177] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [178] if((byte) bitmap_init::bits#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@10 to:bitmap_init::@2 bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@10 - [179] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@10/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte/word/signed word/dword/signed dword) 128 ) + [179] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@10/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte/word/signed word/dword/signed dword) $80 ) [180] (byte) bitmap_init::x#1 ← ++ (byte) bitmap_init::x#2 [181] if((byte) bitmap_init::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@1 to:bitmap_init::@3 @@ -2323,14 +2323,14 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4 [183] (byte~) bitmap_init::$6 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [184] (byte~) bitmap_init::$7 ← < (byte*) bitmap_init::yoffs#2 [185] (byte~) bitmap_init::$8 ← (byte~) bitmap_init::$6 | (byte~) bitmap_init::$7 - [186] *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 + [186] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 [187] (byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2 - [188] *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 + [188] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 [189] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [190] if((byte~) bitmap_init::$10!=(byte/signed byte/word/signed word/dword/signed dword) 7) goto bitmap_init::@4 to:bitmap_init::@7 bitmap_init::@7: scope:[bitmap_init] from bitmap_init::@3 - [191] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 + [191] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 to:bitmap_init::@4 bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@7 [192] (byte*) bitmap_init::yoffs#4 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 bitmap_init::@7/(byte*) bitmap_init::yoffs#1 ) @@ -2631,11 +2631,11 @@ VARIABLE REGISTER WEIGHTS (byte) bitmap_plot::y#2 2002.0 (byte) bitmap_plot::y#3 2002.0 (byte) bitmap_plot::y#4 2004.0 -(byte[256]) bitmap_plot_bit -(byte[256]) bitmap_plot_xhi -(byte[256]) bitmap_plot_xlo -(byte[256]) bitmap_plot_yhi -(byte[256]) bitmap_plot_ylo +(byte[$100]) bitmap_plot_bit +(byte[$100]) bitmap_plot_xhi +(byte[$100]) bitmap_plot_xlo +(byte[$100]) bitmap_plot_yhi +(byte[$100]) bitmap_plot_ylo (void()) init_screen() (byte*) init_screen::c (byte*) init_screen::c#1 16.5 @@ -2874,7 +2874,7 @@ main: { //SEG12 [6] *((const byte*) D011#0) ← (const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #VIC_BMM|VIC_DEN|VIC_RSEL|3 sta D011 - //SEG13 [7] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) BITMAP#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG13 [7] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) BITMAP#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400 sta VIC_MEMORY //SEG14 [8] call bitmap_init @@ -3359,13 +3359,13 @@ bitmap_plot: { .label plotter_y = $35 .label x = 9 .label y = $a - //SEG198 [103] (word) bitmap_plot::plotter_x#0 ← *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) -- vwuz1=pbuc1_derefidx_vbuz2_word_pbuc2_derefidx_vbuz2 + //SEG198 [103] (word) bitmap_plot::plotter_x#0 ← *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) -- vwuz1=pbuc1_derefidx_vbuz2_word_pbuc2_derefidx_vbuz2 ldy x lda bitmap_plot_xhi,y sta plotter_x+1 lda bitmap_plot_xlo,y sta plotter_x - //SEG199 [104] (word) bitmap_plot::plotter_y#0 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) -- vwuz1=pbuc1_derefidx_vbuz2_word_pbuc2_derefidx_vbuz2 + //SEG199 [104] (word) bitmap_plot::plotter_y#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) -- vwuz1=pbuc1_derefidx_vbuz2_word_pbuc2_derefidx_vbuz2 ldy y lda bitmap_plot_yhi,y sta plotter_y+1 @@ -3379,7 +3379,7 @@ bitmap_plot: { lda plotter_x+1 adc plotter_y+1 sta _0+1 - //SEG201 [106] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) -- vbuz1=_deref_pbuz2_bor_pbuc1_derefidx_vbuz3 + //SEG201 [106] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) -- vbuz1=_deref_pbuz2_bor_pbuc1_derefidx_vbuz3 ldy #0 lda (_0),y ldy x @@ -3655,7 +3655,7 @@ init_screen: { jmp b1 //SEG294 init_screen::@1 b1: - //SEG295 [156] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) 20 -- _deref_pbuz1=vbuc1 + //SEG295 [156] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) $14 -- _deref_pbuz1=vbuc1 lda #$14 ldy #0 sta (c),y @@ -3664,7 +3664,7 @@ init_screen: { bne !+ inc c+1 !: - //SEG297 [158] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1024) goto init_screen::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG297 [158] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $400) goto init_screen::@1 -- pbuz1_neq_pbuc1_then_la1 lda c+1 cmp #>SCREEN+$400 bne b1_from_b1 @@ -3684,7 +3684,7 @@ bitmap_clear: { .label x = $22 .label y = $1f .label _3 = $3d - //SEG301 [160] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_xhi#0) w= *((const byte[256]) bitmap_plot_xlo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 + //SEG301 [160] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_xhi#0) w= *((const byte[$100]) bitmap_plot_xlo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 lda bitmap_plot_xlo sta _3 lda bitmap_plot_xhi @@ -3733,7 +3733,7 @@ bitmap_clear: { !: //SEG319 [166] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG320 [167] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) 200) goto bitmap_clear::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG320 [167] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) $c8) goto bitmap_clear::@2 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #$c8 bne b2_from_b2 @@ -3742,7 +3742,7 @@ bitmap_clear: { b3: //SEG322 [168] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 -- vbuz1=_inc_vbuz1 inc y - //SEG323 [169] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG323 [169] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$28 bne b1_from_b3 @@ -3767,7 +3767,7 @@ bitmap_init: { .label yoffs = $26 //SEG327 [172] phi from bitmap_init to bitmap_init::@1 [phi:bitmap_init->bitmap_init::@1] b1_from_bitmap_init: - //SEG328 [172] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init->bitmap_init::@1#0] -- vbuz1=vbuc1 + //SEG328 [172] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init->bitmap_init::@1#0] -- vbuz1=vbuc1 lda #$80 sta bits //SEG329 [172] phi (byte) bitmap_init::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:bitmap_init->bitmap_init::@1#1] -- vbuz1=vbuc1 @@ -3781,19 +3781,19 @@ bitmap_init: { jmp b1 //SEG333 bitmap_init::@1 b1: - //SEG334 [173] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) 248 -- vbuz1=vbuz2_band_vbuc1 + //SEG334 [173] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) $f8 -- vbuz1=vbuz2_band_vbuc1 lda #$f8 and x sta _0 - //SEG335 [174] *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG335 [174] *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 -- pbuc1_derefidx_vbuz1=vbuz2 lda _0 ldy x sta bitmap_plot_xlo,y - //SEG336 [175] *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) BITMAP#0 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG336 [175] *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) BITMAP#0 -- pbuc1_derefidx_vbuz1=vbuc2 ldy x lda #>BITMAP sta bitmap_plot_xhi,y - //SEG337 [176] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG337 [176] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuz1=vbuz2 lda bits ldy x sta bitmap_plot_bit,y @@ -3805,7 +3805,7 @@ bitmap_init: { bne b10_from_b1 //SEG340 [179] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2] b2_from_b1: - //SEG341 [179] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuz1=vbuc1 + //SEG341 [179] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuz1=vbuc1 lda #$80 sta bits jmp b2 @@ -3846,14 +3846,14 @@ bitmap_init: { lda _6 ora _7 sta _8 - //SEG355 [186] *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG355 [186] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 -- pbuc1_derefidx_vbuz1=vbuz2 lda _8 ldy y sta bitmap_plot_ylo,y //SEG356 [187] (byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2 -- vbuz1=_hi_pbuz2 lda yoffs+1 sta _9 - //SEG357 [188] *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG357 [188] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 -- pbuc1_derefidx_vbuz1=vbuz2 lda _9 ldy y sta bitmap_plot_yhi,y @@ -3868,7 +3868,7 @@ bitmap_init: { jmp b7 //SEG360 bitmap_init::@7 b7: - //SEG361 [191] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 + //SEG361 [191] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 clc lda yoffs adc #<$28*8 @@ -3918,7 +3918,7 @@ Equivalence Class zp ZP_BYTE:65 [ bitmap_init::$7 ] has ALU potential. Statement [4] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [5] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [6] *((const byte*) D011#0) ← (const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [7] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) BITMAP#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [7] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) BITMAP#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [26] (byte) bitmap_line::xd#2 ← (byte) bitmap_line::x0#0 - (byte) bitmap_line::x1#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#2 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ lines::l#2 lines::l#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:40 [ bitmap_line::x0#0 ] @@ -3940,7 +3940,7 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ bi Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 ] Statement [94] (byte) bitmap_line_xdyi::e#1 ← (byte) bitmap_line_xdyi::e#3 + (byte) bitmap_line_xdyi::yd#2 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ) always clobbers reg byte a Statement [97] (byte) bitmap_line_xdyi::e#2 ← (byte) bitmap_line_xdyi::e#1 - (byte) bitmap_line_xdyi::xd#5 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] ) always clobbers reg byte a -Statement [103] (word) bitmap_plot::plotter_x#0 ← *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ) always clobbers reg byte a +Statement [103] (word) bitmap_plot::plotter_x#0 ← *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:8 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:9 [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:10 [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] @@ -3962,9 +3962,9 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:25 [ b Removing always clobbered register reg byte a as potential for zp ZP_BYTE:26 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#5 bitmap_line_ydxd::x#0 bitmap_line_ydxd::x#1 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:27 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:28 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] -Statement [104] (word) bitmap_plot::plotter_y#0 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) [ bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ) always clobbers reg byte a +Statement [104] (word) bitmap_plot::plotter_y#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) [ bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ) always clobbers reg byte a Statement [105] (word~) bitmap_plot::$0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0 [ bitmap_plot::x#4 bitmap_plot::$0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] ) always clobbers reg byte a -Statement [106] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::$0 bitmap_plot::$1 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] ) always clobbers reg byte a reg byte y +Statement [106] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::$0 bitmap_plot::$1 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ lines::l#2 lines::l#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:3 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:4 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 ] @@ -4000,28 +4000,28 @@ Statement [134] (byte) bitmap_line_xdyd::e#2 ← (byte) bitmap_line_xdyd::e#1 - Statement [140] (byte) bitmap_line_ydxd::e#0 ← (byte) bitmap_line_ydxd::xd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] ) always clobbers reg byte a Statement [146] (byte) bitmap_line_ydxd::e#1 ← (byte) bitmap_line_ydxd::e#3 + (byte) bitmap_line_ydxd::xd#2 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ) always clobbers reg byte a Statement [149] (byte) bitmap_line_ydxd::e#2 ← (byte) bitmap_line_ydxd::e#1 - (byte) bitmap_line_ydxd::yd#5 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] ) always clobbers reg byte a -Statement [156] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) 20 [ init_screen::c#2 ] ( main:2::init_screen:12 [ init_screen::c#2 ] ) always clobbers reg byte a reg byte y -Statement [158] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1024) goto init_screen::@1 [ init_screen::c#1 ] ( main:2::init_screen:12 [ init_screen::c#1 ] ) always clobbers reg byte a -Statement [160] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_xhi#0) w= *((const byte[256]) bitmap_plot_xlo#0) [ bitmap_clear::$3 ] ( main:2::bitmap_clear:10 [ bitmap_clear::$3 ] ) always clobbers reg byte a +Statement [156] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) $14 [ init_screen::c#2 ] ( main:2::init_screen:12 [ init_screen::c#2 ] ) always clobbers reg byte a reg byte y +Statement [158] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $400) goto init_screen::@1 [ init_screen::c#1 ] ( main:2::init_screen:12 [ init_screen::c#1 ] ) always clobbers reg byte a +Statement [160] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_xhi#0) w= *((const byte[$100]) bitmap_plot_xlo#0) [ bitmap_clear::$3 ] ( main:2::bitmap_clear:10 [ bitmap_clear::$3 ] ) always clobbers reg byte a Statement [161] (byte*~) bitmap_clear::bitmap#5 ← (byte*)(word~) bitmap_clear::$3 [ bitmap_clear::bitmap#5 ] ( main:2::bitmap_clear:10 [ bitmap_clear::bitmap#5 ] ) always clobbers reg byte a Statement [164] *((byte*) bitmap_clear::bitmap#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ( main:2::bitmap_clear:10 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp ZP_BYTE:31 [ bitmap_clear::y#4 bitmap_clear::y#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:31 [ bitmap_clear::y#4 bitmap_clear::y#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:34 [ bitmap_clear::x#2 bitmap_clear::x#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:34 [ bitmap_clear::x#2 bitmap_clear::x#1 ] -Statement [173] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) 248 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ( main:2::bitmap_init:8 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ) always clobbers reg byte a +Statement [173] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) $f8 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ( main:2::bitmap_init:8 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:35 [ bitmap_init::x#2 bitmap_init::x#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:36 [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] -Statement [175] *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) BITMAP#0 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::bitmap_init:8 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a -Statement [176] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::bitmap_init:8 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a +Statement [175] *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) BITMAP#0 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::bitmap_init:8 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a +Statement [176] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::bitmap_init:8 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a Statement [183] (byte~) bitmap_init::$6 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$6 ] ( main:2::bitmap_init:8 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$6 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:37 [ bitmap_init::y#2 bitmap_init::y#1 ] Statement [189] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$10 ] ( main:2::bitmap_init:8 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$10 ] ) always clobbers reg byte a -Statement [191] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:2::bitmap_init:8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ) always clobbers reg byte a +Statement [191] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:2::bitmap_init:8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ) always clobbers reg byte a Statement [4] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [5] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [6] *((const byte*) D011#0) ← (const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [7] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) BITMAP#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [7] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) BITMAP#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [26] (byte) bitmap_line::xd#2 ← (byte) bitmap_line::x0#0 - (byte) bitmap_line::x1#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#2 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#2 ] ) always clobbers reg byte a Statement [28] (byte) bitmap_line::yd#2 ← (byte) bitmap_line::y0#0 - (byte) bitmap_line::y1#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#2 bitmap_line::yd#2 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#2 bitmap_line::yd#2 ] ) always clobbers reg byte a Statement [43] (byte) bitmap_line::yd#1 ← (byte) bitmap_line::y1#0 - (byte) bitmap_line::y0#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#2 bitmap_line::yd#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#2 bitmap_line::yd#1 ] ) always clobbers reg byte a @@ -4031,10 +4031,10 @@ Statement [73] (byte) bitmap_line::yd#11 ← (byte) bitmap_line::y1#0 - (byte) b Statement [88] (byte) bitmap_line_xdyi::e#0 ← (byte) bitmap_line_xdyi::yd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] ) always clobbers reg byte a Statement [94] (byte) bitmap_line_xdyi::e#1 ← (byte) bitmap_line_xdyi::e#3 + (byte) bitmap_line_xdyi::yd#2 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ) always clobbers reg byte a Statement [97] (byte) bitmap_line_xdyi::e#2 ← (byte) bitmap_line_xdyi::e#1 - (byte) bitmap_line_xdyi::xd#5 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] ) always clobbers reg byte a -Statement [103] (word) bitmap_plot::plotter_x#0 ← *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ) always clobbers reg byte a -Statement [104] (word) bitmap_plot::plotter_y#0 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) [ bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ) always clobbers reg byte a +Statement [103] (word) bitmap_plot::plotter_x#0 ← *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ) always clobbers reg byte a +Statement [104] (word) bitmap_plot::plotter_y#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) [ bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ) always clobbers reg byte a Statement [105] (word~) bitmap_plot::$0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0 [ bitmap_plot::x#4 bitmap_plot::$0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] ) always clobbers reg byte a -Statement [106] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::$0 bitmap_plot::$1 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] ) always clobbers reg byte a reg byte y +Statement [106] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::$0 bitmap_plot::$1 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] ) always clobbers reg byte a reg byte y Statement [107] *((byte*)(word~) bitmap_plot::$0) ← (byte~) bitmap_plot::$1 [ ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ) always clobbers reg byte y Statement [110] (byte) bitmap_line_ydxi::e#0 ← (byte) bitmap_line_ydxi::xd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] ) always clobbers reg byte a Statement [116] (byte) bitmap_line_ydxi::e#1 ← (byte) bitmap_line_ydxi::e#3 + (byte) bitmap_line_ydxi::xd#2 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] ) always clobbers reg byte a @@ -4045,17 +4045,17 @@ Statement [134] (byte) bitmap_line_xdyd::e#2 ← (byte) bitmap_line_xdyd::e#1 - Statement [140] (byte) bitmap_line_ydxd::e#0 ← (byte) bitmap_line_ydxd::xd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] ) always clobbers reg byte a Statement [146] (byte) bitmap_line_ydxd::e#1 ← (byte) bitmap_line_ydxd::e#3 + (byte) bitmap_line_ydxd::xd#2 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ) always clobbers reg byte a Statement [149] (byte) bitmap_line_ydxd::e#2 ← (byte) bitmap_line_ydxd::e#1 - (byte) bitmap_line_ydxd::yd#5 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] ) always clobbers reg byte a -Statement [156] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) 20 [ init_screen::c#2 ] ( main:2::init_screen:12 [ init_screen::c#2 ] ) always clobbers reg byte a reg byte y -Statement [158] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1024) goto init_screen::@1 [ init_screen::c#1 ] ( main:2::init_screen:12 [ init_screen::c#1 ] ) always clobbers reg byte a -Statement [160] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_xhi#0) w= *((const byte[256]) bitmap_plot_xlo#0) [ bitmap_clear::$3 ] ( main:2::bitmap_clear:10 [ bitmap_clear::$3 ] ) always clobbers reg byte a +Statement [156] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) $14 [ init_screen::c#2 ] ( main:2::init_screen:12 [ init_screen::c#2 ] ) always clobbers reg byte a reg byte y +Statement [158] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $400) goto init_screen::@1 [ init_screen::c#1 ] ( main:2::init_screen:12 [ init_screen::c#1 ] ) always clobbers reg byte a +Statement [160] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_xhi#0) w= *((const byte[$100]) bitmap_plot_xlo#0) [ bitmap_clear::$3 ] ( main:2::bitmap_clear:10 [ bitmap_clear::$3 ] ) always clobbers reg byte a Statement [161] (byte*~) bitmap_clear::bitmap#5 ← (byte*)(word~) bitmap_clear::$3 [ bitmap_clear::bitmap#5 ] ( main:2::bitmap_clear:10 [ bitmap_clear::bitmap#5 ] ) always clobbers reg byte a Statement [164] *((byte*) bitmap_clear::bitmap#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ( main:2::bitmap_clear:10 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ) always clobbers reg byte a reg byte y -Statement [173] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) 248 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ( main:2::bitmap_init:8 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ) always clobbers reg byte a -Statement [175] *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) BITMAP#0 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::bitmap_init:8 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a -Statement [176] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::bitmap_init:8 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a +Statement [173] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) $f8 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ( main:2::bitmap_init:8 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ) always clobbers reg byte a +Statement [175] *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) BITMAP#0 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::bitmap_init:8 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a +Statement [176] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::bitmap_init:8 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a Statement [183] (byte~) bitmap_init::$6 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$6 ] ( main:2::bitmap_init:8 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$6 ] ) always clobbers reg byte a Statement [189] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$10 ] ( main:2::bitmap_init:8 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$10 ] ) always clobbers reg byte a -Statement [191] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:2::bitmap_init:8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ) always clobbers reg byte a +Statement [191] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:2::bitmap_init:8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ lines::l#2 lines::l#1 ] : zp ZP_BYTE:2 , reg byte x , Potential registers zp ZP_BYTE:3 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ] : zp ZP_BYTE:3 , reg byte x , Potential registers zp ZP_BYTE:4 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 ] : zp ZP_BYTE:4 , reg byte x , @@ -4305,7 +4305,7 @@ main: { //SEG12 [6] *((const byte*) D011#0) ← (const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #VIC_BMM|VIC_DEN|VIC_RSEL|3 sta D011 - //SEG13 [7] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) BITMAP#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG13 [7] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) BITMAP#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400 sta VIC_MEMORY //SEG14 [8] call bitmap_init @@ -4724,12 +4724,12 @@ bitmap_plot: { .label _0 = 9 .label plotter_x = 9 .label plotter_y = $b - //SEG198 [103] (word) bitmap_plot::plotter_x#0 ← *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx + //SEG198 [103] (word) bitmap_plot::plotter_x#0 ← *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx lda bitmap_plot_xhi,x sta plotter_x+1 lda bitmap_plot_xlo,x sta plotter_x - //SEG199 [104] (word) bitmap_plot::plotter_y#0 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) -- vwuz1=pbuc1_derefidx_vbuyy_word_pbuc2_derefidx_vbuyy + //SEG199 [104] (word) bitmap_plot::plotter_y#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) -- vwuz1=pbuc1_derefidx_vbuyy_word_pbuc2_derefidx_vbuyy lda bitmap_plot_yhi,y sta plotter_y+1 lda bitmap_plot_ylo,y @@ -4742,7 +4742,7 @@ bitmap_plot: { lda _0+1 adc plotter_y+1 sta _0+1 - //SEG201 [106] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) -- vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx + //SEG201 [106] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) -- vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx lda bitmap_plot_bit,x ldy #0 ora (_0),y @@ -4996,7 +4996,7 @@ init_screen: { jmp b1 //SEG294 init_screen::@1 b1: - //SEG295 [156] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) 20 -- _deref_pbuz1=vbuc1 + //SEG295 [156] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) $14 -- _deref_pbuz1=vbuc1 lda #$14 ldy #0 sta (c),y @@ -5005,7 +5005,7 @@ init_screen: { bne !+ inc c+1 !: - //SEG297 [158] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1024) goto init_screen::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG297 [158] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $400) goto init_screen::@1 -- pbuz1_neq_pbuc1_then_la1 lda c+1 cmp #>SCREEN+$400 bne b1_from_b1 @@ -5024,7 +5024,7 @@ bitmap_clear: { .label bitmap = 9 .label y = 2 .label _3 = 9 - //SEG301 [160] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_xhi#0) w= *((const byte[256]) bitmap_plot_xlo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 + //SEG301 [160] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_xhi#0) w= *((const byte[$100]) bitmap_plot_xlo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 lda bitmap_plot_xlo sta _3 lda bitmap_plot_xhi @@ -5068,7 +5068,7 @@ bitmap_clear: { !: //SEG319 [166] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 -- vbuxx=_inc_vbuxx inx - //SEG320 [167] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) 200) goto bitmap_clear::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG320 [167] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) $c8) goto bitmap_clear::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$c8 bne b2_from_b2 jmp b3 @@ -5076,7 +5076,7 @@ bitmap_clear: { b3: //SEG322 [168] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 -- vbuz1=_inc_vbuz1 inc y - //SEG323 [169] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG323 [169] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$28 bne b1_from_b3 @@ -5093,7 +5093,7 @@ bitmap_init: { .label yoffs = 9 //SEG327 [172] phi from bitmap_init to bitmap_init::@1 [phi:bitmap_init->bitmap_init::@1] b1_from_bitmap_init: - //SEG328 [172] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init->bitmap_init::@1#0] -- vbuyy=vbuc1 + //SEG328 [172] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init->bitmap_init::@1#0] -- vbuyy=vbuc1 ldy #$80 //SEG329 [172] phi (byte) bitmap_init::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:bitmap_init->bitmap_init::@1#1] -- vbuxx=vbuc1 ldx #0 @@ -5105,15 +5105,15 @@ bitmap_init: { jmp b1 //SEG333 bitmap_init::@1 b1: - //SEG334 [173] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) 248 -- vbuaa=vbuxx_band_vbuc1 + //SEG334 [173] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) $f8 -- vbuaa=vbuxx_band_vbuc1 txa and #$f8 - //SEG335 [174] *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG335 [174] *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_xlo,x - //SEG336 [175] *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) BITMAP#0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG336 [175] *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) BITMAP#0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #>BITMAP sta bitmap_plot_xhi,x - //SEG337 [176] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuxx=vbuyy + //SEG337 [176] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuxx=vbuyy tya sta bitmap_plot_bit,x //SEG338 [177] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuyy_ror_1 @@ -5125,7 +5125,7 @@ bitmap_init: { bne b10_from_b1 //SEG340 [179] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2] b2_from_b1: - //SEG341 [179] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuyy=vbuc1 + //SEG341 [179] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuyy=vbuc1 ldy #$80 jmp b2 //SEG342 bitmap_init::@2 @@ -5160,11 +5160,11 @@ bitmap_init: { lda yoffs //SEG354 [185] (byte~) bitmap_init::$8 ← (byte~) bitmap_init::$6 | (byte~) bitmap_init::$7 -- vbuaa=vbuz1_bor_vbuaa ora _6 - //SEG355 [186] *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG355 [186] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_ylo,x //SEG356 [187] (byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2 -- vbuaa=_hi_pbuz1 lda yoffs+1 - //SEG357 [188] *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG357 [188] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_yhi,x //SEG358 [189] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuxx_band_vbuc1 txa @@ -5175,7 +5175,7 @@ bitmap_init: { jmp b7 //SEG360 bitmap_init::@7 b7: - //SEG361 [191] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 + //SEG361 [191] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 clc lda yoffs adc #<$28*8 @@ -5413,17 +5413,17 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL1 (byte*) BGCOL2 (byte*) BGCOL3 (byte*) BGCOL4 (byte*) BITMAP -(const byte*) BITMAP#0 BITMAP = ((byte*))(word/signed word/dword/signed dword) 8192 +(const byte*) BITMAP#0 BITMAP = ((byte*))(word/signed word/dword/signed dword) $2000 (byte) BLACK (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN (byte*) CIA1_INTERRUPT @@ -5440,7 +5440,7 @@ FINAL SYMBOL TABLE (byte*) COLS (byte) CYAN (byte*) D011 -(const byte*) D011#0 D011 = ((byte*))(word/dword/signed dword) 53265 +(const byte*) D011#0 D011 = ((byte*))(word/dword/signed dword) $d011 (byte*) D016 (byte*) D018 (byte) DARK_GREY @@ -5473,7 +5473,7 @@ FINAL SYMBOL TABLE (byte*) RASTER (byte) RED (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE (byte*) SPRITES_EXPAND_X @@ -5487,16 +5487,16 @@ FINAL SYMBOL TABLE (byte*) SPRITES_YPOS (word) SPRITE_PTRS (byte) VIC_BMM -(const byte) VIC_BMM#0 VIC_BMM = (byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte) VIC_BMM#0 VIC_BMM = (byte/signed byte/word/signed word/dword/signed dword) $20 (byte*) VIC_CONTROL (byte*) VIC_CONTROL2 (byte) VIC_CSEL (byte) VIC_DEN -(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_ECM (byte) VIC_MCM (byte*) VIC_MEMORY -(const byte*) VIC_MEMORY#0 VIC_MEMORY = ((byte*))(word/dword/signed dword) 53272 +(const byte*) VIC_MEMORY#0 VIC_MEMORY = ((byte*))(word/dword/signed dword) $d018 (byte) VIC_RSEL (const byte) VIC_RSEL#0 VIC_RSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) VIC_RST8 @@ -5753,16 +5753,16 @@ FINAL SYMBOL TABLE (byte) bitmap_plot::y#2 reg byte y 2002.0 (byte) bitmap_plot::y#3 reg byte y 2002.0 (byte) bitmap_plot::y#4 reg byte y 2004.0 -(byte[256]) bitmap_plot_bit -(const byte[256]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( 256, 0) } -(byte[256]) bitmap_plot_xhi -(const byte[256]) bitmap_plot_xhi#0 bitmap_plot_xhi = { fill( 256, 0) } -(byte[256]) bitmap_plot_xlo -(const byte[256]) bitmap_plot_xlo#0 bitmap_plot_xlo = { fill( 256, 0) } -(byte[256]) bitmap_plot_yhi -(const byte[256]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( 256, 0) } -(byte[256]) bitmap_plot_ylo -(const byte[256]) bitmap_plot_ylo#0 bitmap_plot_ylo = { fill( 256, 0) } +(byte[$100]) bitmap_plot_bit +(const byte[$100]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( $100, 0) } +(byte[$100]) bitmap_plot_xhi +(const byte[$100]) bitmap_plot_xhi#0 bitmap_plot_xhi = { fill( $100, 0) } +(byte[$100]) bitmap_plot_xlo +(const byte[$100]) bitmap_plot_xlo#0 bitmap_plot_xlo = { fill( $100, 0) } +(byte[$100]) bitmap_plot_yhi +(const byte[$100]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( $100, 0) } +(byte[$100]) bitmap_plot_ylo +(const byte[$100]) bitmap_plot_ylo#0 bitmap_plot_ylo = { fill( $100, 0) } (void()) init_screen() (label) init_screen::@1 (label) init_screen::@return @@ -5779,9 +5779,9 @@ FINAL SYMBOL TABLE (byte) lines_cnt (const byte) lines_cnt#0 lines_cnt = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte[]) lines_x -(const byte[]) lines_x#0 lines_x = { (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 80, (byte/signed byte/word/signed word/dword/signed dword) 110, (byte/signed byte/word/signed word/dword/signed dword) 80, (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 40, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 40, (byte/signed byte/word/signed word/dword/signed dword) 60 } +(const byte[]) lines_x#0 lines_x = { (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $50, (byte/signed byte/word/signed word/dword/signed dword) $6e, (byte/signed byte/word/signed word/dword/signed dword) $50, (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $28, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $28, (byte/signed byte/word/signed word/dword/signed dword) $3c } (byte[]) lines_y -(const byte[]) lines_y#0 lines_y = { (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 40, (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 80, (byte/signed byte/word/signed word/dword/signed dword) 110, (byte/signed byte/word/signed word/dword/signed dword) 80, (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 40, (byte/signed byte/word/signed word/dword/signed dword) 10 } +(const byte[]) lines_y#0 lines_y = { (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $28, (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $50, (byte/signed byte/word/signed word/dword/signed dword) $6e, (byte/signed byte/word/signed word/dword/signed dword) $50, (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $28, (byte/signed byte/word/signed word/dword/signed dword) $a } (void()) main() (label) main::@1 (label) main::@3 @@ -5852,7 +5852,7 @@ main: { //SEG12 [6] *((const byte*) D011#0) ← (const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #VIC_BMM|VIC_DEN|VIC_RSEL|3 sta D011 - //SEG13 [7] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) BITMAP#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG13 [7] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) BITMAP#0&(word/signed word/dword/signed dword) $3fff/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400 sta VIC_MEMORY //SEG14 [8] call bitmap_init @@ -6208,12 +6208,12 @@ bitmap_plot: { .label _0 = 9 .label plotter_x = 9 .label plotter_y = $b - //SEG198 [103] (word) bitmap_plot::plotter_x#0 ← *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx + //SEG198 [103] (word) bitmap_plot::plotter_x#0 ← *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx lda bitmap_plot_xhi,x sta plotter_x+1 lda bitmap_plot_xlo,x sta plotter_x - //SEG199 [104] (word) bitmap_plot::plotter_y#0 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) -- vwuz1=pbuc1_derefidx_vbuyy_word_pbuc2_derefidx_vbuyy + //SEG199 [104] (word) bitmap_plot::plotter_y#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) -- vwuz1=pbuc1_derefidx_vbuyy_word_pbuc2_derefidx_vbuyy lda bitmap_plot_yhi,y sta plotter_y+1 lda bitmap_plot_ylo,y @@ -6226,7 +6226,7 @@ bitmap_plot: { lda _0+1 adc plotter_y+1 sta _0+1 - //SEG201 [106] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) -- vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx + //SEG201 [106] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) -- vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx lda bitmap_plot_bit,x ldy #0 ora (_0),y @@ -6434,7 +6434,7 @@ init_screen: { //SEG293 [155] phi (byte*) init_screen::c#2 = (byte*) init_screen::c#1 [phi:init_screen::@1->init_screen::@1#0] -- register_copy //SEG294 init_screen::@1 b1: - //SEG295 [156] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) 20 -- _deref_pbuz1=vbuc1 + //SEG295 [156] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word/dword/signed dword) $14 -- _deref_pbuz1=vbuc1 lda #$14 ldy #0 sta (c),y @@ -6443,7 +6443,7 @@ init_screen: { bne !+ inc c+1 !: - //SEG297 [158] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1024) goto init_screen::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG297 [158] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $400) goto init_screen::@1 -- pbuz1_neq_pbuc1_then_la1 lda c+1 cmp #>SCREEN+$400 bne b1 @@ -6460,7 +6460,7 @@ bitmap_clear: { .label bitmap = 9 .label y = 2 .label _3 = 9 - //SEG301 [160] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_xhi#0) w= *((const byte[256]) bitmap_plot_xlo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 + //SEG301 [160] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_xhi#0) w= *((const byte[$100]) bitmap_plot_xlo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 lda bitmap_plot_xlo sta _3 lda bitmap_plot_xhi @@ -6496,13 +6496,13 @@ bitmap_clear: { !: //SEG319 [166] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 -- vbuxx=_inc_vbuxx inx - //SEG320 [167] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) 200) goto bitmap_clear::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG320 [167] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) $c8) goto bitmap_clear::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$c8 bne b2 //SEG321 bitmap_clear::@3 //SEG322 [168] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 -- vbuz1=_inc_vbuz1 inc y - //SEG323 [169] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG323 [169] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$28 bne b1 @@ -6516,7 +6516,7 @@ bitmap_init: { .label _6 = 2 .label yoffs = 9 //SEG327 [172] phi from bitmap_init to bitmap_init::@1 [phi:bitmap_init->bitmap_init::@1] - //SEG328 [172] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init->bitmap_init::@1#0] -- vbuyy=vbuc1 + //SEG328 [172] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init->bitmap_init::@1#0] -- vbuyy=vbuc1 ldy #$80 //SEG329 [172] phi (byte) bitmap_init::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:bitmap_init->bitmap_init::@1#1] -- vbuxx=vbuc1 ldx #0 @@ -6525,15 +6525,15 @@ bitmap_init: { //SEG332 [172] phi (byte) bitmap_init::x#2 = (byte) bitmap_init::x#1 [phi:bitmap_init::@2->bitmap_init::@1#1] -- register_copy //SEG333 bitmap_init::@1 b1: - //SEG334 [173] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) 248 -- vbuaa=vbuxx_band_vbuc1 + //SEG334 [173] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte/word/signed word/dword/signed dword) $f8 -- vbuaa=vbuxx_band_vbuc1 txa and #$f8 - //SEG335 [174] *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG335 [174] *((const byte[$100]) bitmap_plot_xlo#0 + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_xlo,x - //SEG336 [175] *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) BITMAP#0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG336 [175] *((const byte[$100]) bitmap_plot_xhi#0 + (byte) bitmap_init::x#2) ← >(const byte*) BITMAP#0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #>BITMAP sta bitmap_plot_xhi,x - //SEG337 [176] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuxx=vbuyy + //SEG337 [176] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuxx=vbuyy tya sta bitmap_plot_bit,x //SEG338 [177] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuyy_ror_1 @@ -6544,7 +6544,7 @@ bitmap_init: { cpy #0 bne b2 //SEG340 [179] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2] - //SEG341 [179] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuyy=vbuc1 + //SEG341 [179] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuyy=vbuc1 ldy #$80 //SEG342 bitmap_init::@2 b2: @@ -6573,11 +6573,11 @@ bitmap_init: { lda yoffs //SEG354 [185] (byte~) bitmap_init::$8 ← (byte~) bitmap_init::$6 | (byte~) bitmap_init::$7 -- vbuaa=vbuz1_bor_vbuaa ora _6 - //SEG355 [186] *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG355 [186] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_ylo,x //SEG356 [187] (byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2 -- vbuaa=_hi_pbuz1 lda yoffs+1 - //SEG357 [188] *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG357 [188] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_yhi,x //SEG358 [189] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuxx_band_vbuc1 txa @@ -6586,7 +6586,7 @@ bitmap_init: { cmp #7 bne b4 //SEG360 bitmap_init::@7 - //SEG361 [191] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 + //SEG361 [191] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 clc lda yoffs adc #<$28*8 diff --git a/src/test/ref/examples/bresenham/bitmap-bresenham.sym b/src/test/ref/examples/bresenham/bitmap-bresenham.sym index c77ada0dd..d45e80012 100644 --- a/src/test/ref/examples/bresenham/bitmap-bresenham.sym +++ b/src/test/ref/examples/bresenham/bitmap-bresenham.sym @@ -2,17 +2,17 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL1 (byte*) BGCOL2 (byte*) BGCOL3 (byte*) BGCOL4 (byte*) BITMAP -(const byte*) BITMAP#0 BITMAP = ((byte*))(word/signed word/dword/signed dword) 8192 +(const byte*) BITMAP#0 BITMAP = ((byte*))(word/signed word/dword/signed dword) $2000 (byte) BLACK (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN (byte*) CIA1_INTERRUPT @@ -29,7 +29,7 @@ (byte*) COLS (byte) CYAN (byte*) D011 -(const byte*) D011#0 D011 = ((byte*))(word/dword/signed dword) 53265 +(const byte*) D011#0 D011 = ((byte*))(word/dword/signed dword) $d011 (byte*) D016 (byte*) D018 (byte) DARK_GREY @@ -62,7 +62,7 @@ (byte*) RASTER (byte) RED (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE (byte*) SPRITES_EXPAND_X @@ -76,16 +76,16 @@ (byte*) SPRITES_YPOS (word) SPRITE_PTRS (byte) VIC_BMM -(const byte) VIC_BMM#0 VIC_BMM = (byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte) VIC_BMM#0 VIC_BMM = (byte/signed byte/word/signed word/dword/signed dword) $20 (byte*) VIC_CONTROL (byte*) VIC_CONTROL2 (byte) VIC_CSEL (byte) VIC_DEN -(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_ECM (byte) VIC_MCM (byte*) VIC_MEMORY -(const byte*) VIC_MEMORY#0 VIC_MEMORY = ((byte*))(word/dword/signed dword) 53272 +(const byte*) VIC_MEMORY#0 VIC_MEMORY = ((byte*))(word/dword/signed dword) $d018 (byte) VIC_RSEL (const byte) VIC_RSEL#0 VIC_RSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) VIC_RST8 @@ -342,16 +342,16 @@ (byte) bitmap_plot::y#2 reg byte y 2002.0 (byte) bitmap_plot::y#3 reg byte y 2002.0 (byte) bitmap_plot::y#4 reg byte y 2004.0 -(byte[256]) bitmap_plot_bit -(const byte[256]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( 256, 0) } -(byte[256]) bitmap_plot_xhi -(const byte[256]) bitmap_plot_xhi#0 bitmap_plot_xhi = { fill( 256, 0) } -(byte[256]) bitmap_plot_xlo -(const byte[256]) bitmap_plot_xlo#0 bitmap_plot_xlo = { fill( 256, 0) } -(byte[256]) bitmap_plot_yhi -(const byte[256]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( 256, 0) } -(byte[256]) bitmap_plot_ylo -(const byte[256]) bitmap_plot_ylo#0 bitmap_plot_ylo = { fill( 256, 0) } +(byte[$100]) bitmap_plot_bit +(const byte[$100]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( $100, 0) } +(byte[$100]) bitmap_plot_xhi +(const byte[$100]) bitmap_plot_xhi#0 bitmap_plot_xhi = { fill( $100, 0) } +(byte[$100]) bitmap_plot_xlo +(const byte[$100]) bitmap_plot_xlo#0 bitmap_plot_xlo = { fill( $100, 0) } +(byte[$100]) bitmap_plot_yhi +(const byte[$100]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( $100, 0) } +(byte[$100]) bitmap_plot_ylo +(const byte[$100]) bitmap_plot_ylo#0 bitmap_plot_ylo = { fill( $100, 0) } (void()) init_screen() (label) init_screen::@1 (label) init_screen::@return @@ -368,9 +368,9 @@ (byte) lines_cnt (const byte) lines_cnt#0 lines_cnt = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte[]) lines_x -(const byte[]) lines_x#0 lines_x = { (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 80, (byte/signed byte/word/signed word/dword/signed dword) 110, (byte/signed byte/word/signed word/dword/signed dword) 80, (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 40, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 40, (byte/signed byte/word/signed word/dword/signed dword) 60 } +(const byte[]) lines_x#0 lines_x = { (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $50, (byte/signed byte/word/signed word/dword/signed dword) $6e, (byte/signed byte/word/signed word/dword/signed dword) $50, (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $28, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $28, (byte/signed byte/word/signed word/dword/signed dword) $3c } (byte[]) lines_y -(const byte[]) lines_y#0 lines_y = { (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 40, (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 80, (byte/signed byte/word/signed word/dword/signed dword) 110, (byte/signed byte/word/signed word/dword/signed dword) 80, (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 40, (byte/signed byte/word/signed word/dword/signed dword) 10 } +(const byte[]) lines_y#0 lines_y = { (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $28, (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $50, (byte/signed byte/word/signed word/dword/signed dword) $6e, (byte/signed byte/word/signed word/dword/signed dword) $50, (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $28, (byte/signed byte/word/signed word/dword/signed dword) $a } (void()) main() (label) main::@1 (label) main::@3 diff --git a/src/test/ref/examples/chargen/chargen-analysis.cfg b/src/test/ref/examples/chargen/chargen-analysis.cfg index 2ed7fb7f0..09c2c8c0c 100644 --- a/src/test/ref/examples/chargen/chargen-analysis.cfg +++ b/src/test/ref/examples/chargen/chargen-analysis.cfg @@ -14,7 +14,7 @@ main::@1: scope:[main] from main main::@1 [5] (byte*) main::sc#2 ← phi( main/(const byte*) SCREEN#0 main::@1/(byte*) main::sc#1 ) [6] *((byte*) main::sc#2) ← (byte) ' ' [7] (byte*) main::sc#1 ← ++ (byte*) main::sc#2 - [8] if((byte*) main::sc#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto main::@1 + [8] if((byte*) main::sc#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto main::@1 to:main::@13 main::@13: scope:[main] from main::@1 [9] phi() @@ -100,7 +100,7 @@ main::@10: scope:[main] from main::@12 main::@9 to:main::@35 main::@35: scope:[main] from main::@10 [53] (byte) main::key#0 ← (byte) keyboard_get_keycode::return#2 - [54] if((byte) main::key#0==(byte/signed byte/word/signed word/dword/signed dword) 63) goto main::@11 + [54] if((byte) main::key#0==(byte/signed byte/word/signed word/dword/signed dword) $3f) goto main::@11 to:main::@21 main::@21: scope:[main] from main::@35 [55] (byte) keyboard_key_pressed::key#5 ← (byte) main::key#0 @@ -122,7 +122,7 @@ main::@22: scope:[main] from main::@11 to:main::@12 main::@12: scope:[main] from main::@11 main::@22 [65] (byte) main::ch#1 ← ++ (byte) main::ch#2 - [66] if((byte) main::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) 64) goto main::@10 + [66] if((byte) main::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) $40) goto main::@10 to:main::@3 main::@44: scope:[main] from main::@33 [67] phi() @@ -139,7 +139,7 @@ main::@41: scope:[main] from main::@30 plot_chargen: scope:[plot_chargen] from main::@2 main::@22 [71] (byte) plot_chargen::pos#2 ← phi( main::@2/(byte) plot_chargen::pos#0 main::@22/(byte) plot_chargen::pos#1 ) [71] (byte) plot_chargen::shift#2 ← phi( main::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@22/(byte) plot_chargen::shift#1 ) - [71] (byte) plot_chargen::ch#2 ← phi( main::@2/(byte/signed byte/word/signed word/dword/signed dword) 32 main::@22/(byte) plot_chargen::ch#1 ) + [71] (byte) plot_chargen::ch#2 ← phi( main::@2/(byte/signed byte/word/signed word/dword/signed dword) $20 main::@22/(byte) plot_chargen::ch#1 ) asm { sei } [73] (word~) plot_chargen::$0 ← ((word)) (byte) plot_chargen::ch#2 [74] (word~) plot_chargen::$1 ← (word~) plot_chargen::$0 << (byte/signed byte/word/signed word/dword/signed dword) 3 @@ -147,18 +147,18 @@ plot_chargen: scope:[plot_chargen] from main::@2 main::@22 [76] if((byte) plot_chargen::shift#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto plot_chargen::@1 to:plot_chargen::@5 plot_chargen::@5: scope:[plot_chargen] from plot_chargen - [77] (byte*) plot_chargen::chargen#1 ← (byte*) plot_chargen::chargen#0 + (word/signed word/dword/signed dword) 2048 + [77] (byte*) plot_chargen::chargen#1 ← (byte*) plot_chargen::chargen#0 + (word/signed word/dword/signed dword) $800 to:plot_chargen::@1 plot_chargen::@1: scope:[plot_chargen] from plot_chargen plot_chargen::@5 [78] (byte*) plot_chargen::chargen#5 ← phi( plot_chargen/(byte*) plot_chargen::chargen#0 plot_chargen::@5/(byte*) plot_chargen::chargen#1 ) - [79] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 + [79] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 [80] (byte) mul8u::a#1 ← (byte) plot_chargen::pos#2 [81] call mul8u [82] (word) mul8u::return#2 ← (word) mul8u::res#2 to:plot_chargen::@9 plot_chargen::@9: scope:[plot_chargen] from plot_chargen::@1 [83] (word~) plot_chargen::$8 ← (word) mul8u::return#2 - [84] (byte*) plot_chargen::sc#0 ← (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1 + (word~) plot_chargen::$8 + [84] (byte*) plot_chargen::sc#0 ← (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1 + (word~) plot_chargen::$8 to:plot_chargen::@2 plot_chargen::@2: scope:[plot_chargen] from plot_chargen::@7 plot_chargen::@9 [85] (byte*) plot_chargen::sc#7 ← phi( plot_chargen::@7/(byte*) plot_chargen::sc#2 plot_chargen::@9/(byte*) plot_chargen::sc#0 ) @@ -169,7 +169,7 @@ plot_chargen::@3: scope:[plot_chargen] from plot_chargen::@2 plot_chargen::@4 [87] (byte) plot_chargen::x#2 ← phi( plot_chargen::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 plot_chargen::@4/(byte) plot_chargen::x#1 ) [87] (byte*) plot_chargen::sc#3 ← phi( plot_chargen::@2/(byte*) plot_chargen::sc#7 plot_chargen::@4/(byte*) plot_chargen::sc#1 ) [87] (byte) plot_chargen::bits#2 ← phi( plot_chargen::@2/(byte) plot_chargen::bits#0 plot_chargen::@4/(byte) plot_chargen::bits#1 ) - [88] (byte~) plot_chargen::$10 ← (byte) plot_chargen::bits#2 & (byte/word/signed word/dword/signed dword) 128 + [88] (byte~) plot_chargen::$10 ← (byte) plot_chargen::bits#2 & (byte/word/signed word/dword/signed dword) $80 [89] if((byte~) plot_chargen::$10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto plot_chargen::@4 to:plot_chargen::@6 plot_chargen::@6: scope:[plot_chargen] from plot_chargen::@3 @@ -184,12 +184,12 @@ plot_chargen::@4: scope:[plot_chargen] from plot_chargen::@3 plot_chargen::@6 [96] if((byte) plot_chargen::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto plot_chargen::@3 to:plot_chargen::@7 plot_chargen::@7: scope:[plot_chargen] from plot_chargen::@4 - [97] (byte*) plot_chargen::sc#2 ← (byte*) plot_chargen::sc#1 + (byte/signed byte/word/signed word/dword/signed dword) 32 + [97] (byte*) plot_chargen::sc#2 ← (byte*) plot_chargen::sc#1 + (byte/signed byte/word/signed word/dword/signed dword) $20 [98] (byte) plot_chargen::y#1 ← ++ (byte) plot_chargen::y#2 [99] if((byte) plot_chargen::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto plot_chargen::@2 to:plot_chargen::@8 plot_chargen::@8: scope:[plot_chargen] from plot_chargen::@7 - [100] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 + [100] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 asm { cli } to:plot_chargen::@return plot_chargen::@return: scope:[plot_chargen] from plot_chargen::@8 @@ -248,7 +248,7 @@ keyboard_get_keycode::@return: scope:[keyboard_get_keycode] from keyboard_get_k [126] return to:@return print_str_at: scope:[print_str_at] from main::@13 main::@25 main::@26 main::@27 - [127] (byte*) print_str_at::at#7 ← phi( main::@13/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1 main::@25/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 10 main::@26/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 20 main::@27/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 30 ) + [127] (byte*) print_str_at::at#7 ← phi( main::@13/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1 main::@25/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) $a main::@26/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) $14 main::@27/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) $1e ) [127] (byte*) print_str_at::str#7 ← phi( main::@13/(const string) main::str main::@25/(const string) main::str1 main::@26/(const string) main::str2 main::@27/(const string) main::str3 ) to:print_str_at::@1 print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2 diff --git a/src/test/ref/examples/chargen/chargen-analysis.log b/src/test/ref/examples/chargen/chargen-analysis.log index 82a3ce888..147f22395 100644 --- a/src/test/ref/examples/chargen/chargen-analysis.log +++ b/src/test/ref/examples/chargen/chargen-analysis.log @@ -5,66 +5,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -75,12 +75,12 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@9 mul8u: scope:[mul8u] from plot_chargen::@1 (byte) mul8u::a#5 ← phi( plot_chargen::@1/(byte) mul8u::a#1 ) @@ -140,63 +140,63 @@ mul8u::@return: scope:[mul8u] from mul8u::@3 (byte) KEY_CRSR_DOWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) KEY_3#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) KEY_W#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) KEY_A#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) KEY_4#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) KEY_Z#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) KEY_S#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) KEY_E#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) KEY_LSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) KEY_5#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte) KEY_R#0 ← (byte/signed byte/word/signed word/dword/signed dword) 17 - (byte) KEY_D#0 ← (byte/signed byte/word/signed word/dword/signed dword) 18 - (byte) KEY_6#0 ← (byte/signed byte/word/signed word/dword/signed dword) 19 - (byte) KEY_C#0 ← (byte/signed byte/word/signed word/dword/signed dword) 20 - (byte) KEY_F#0 ← (byte/signed byte/word/signed word/dword/signed dword) 21 - (byte) KEY_T#0 ← (byte/signed byte/word/signed word/dword/signed dword) 22 - (byte) KEY_X#0 ← (byte/signed byte/word/signed word/dword/signed dword) 23 - (byte) KEY_7#0 ← (byte/signed byte/word/signed word/dword/signed dword) 24 - (byte) KEY_Y#0 ← (byte/signed byte/word/signed word/dword/signed dword) 25 - (byte) KEY_G#0 ← (byte/signed byte/word/signed word/dword/signed dword) 26 - (byte) KEY_8#0 ← (byte/signed byte/word/signed word/dword/signed dword) 27 - (byte) KEY_B#0 ← (byte/signed byte/word/signed word/dword/signed dword) 28 - (byte) KEY_H#0 ← (byte/signed byte/word/signed word/dword/signed dword) 29 - (byte) KEY_U#0 ← (byte/signed byte/word/signed word/dword/signed dword) 30 - (byte) KEY_V#0 ← (byte/signed byte/word/signed word/dword/signed dword) 31 - (byte) KEY_9#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) KEY_I#0 ← (byte/signed byte/word/signed word/dword/signed dword) 33 - (byte) KEY_J#0 ← (byte/signed byte/word/signed word/dword/signed dword) 34 - (byte) KEY_0#0 ← (byte/signed byte/word/signed word/dword/signed dword) 35 - (byte) KEY_M#0 ← (byte/signed byte/word/signed word/dword/signed dword) 36 - (byte) KEY_K#0 ← (byte/signed byte/word/signed word/dword/signed dword) 37 - (byte) KEY_O#0 ← (byte/signed byte/word/signed word/dword/signed dword) 38 - (byte) KEY_N#0 ← (byte/signed byte/word/signed word/dword/signed dword) 39 - (byte) KEY_PLUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte) KEY_P#0 ← (byte/signed byte/word/signed word/dword/signed dword) 41 - (byte) KEY_L#0 ← (byte/signed byte/word/signed word/dword/signed dword) 42 - (byte) KEY_MINUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 43 - (byte) KEY_DOT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 44 - (byte) KEY_COLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) 45 - (byte) KEY_AT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 46 - (byte) KEY_COMMA#0 ← (byte/signed byte/word/signed word/dword/signed dword) 47 - (byte) KEY_POUND#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) KEY_ASTERISK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) KEY_SEMICOLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 - (byte) KEY_HOME#0 ← (byte/signed byte/word/signed word/dword/signed dword) 51 - (byte) KEY_RSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 52 - (byte) KEY_EQUALS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) KEY_ARROW_UP#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) KEY_SLASH#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte) KEY_1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 56 - (byte) KEY_ARROW_LEFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 57 - (byte) KEY_CTRL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 58 - (byte) KEY_2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 59 - (byte) KEY_SPACE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 60 - (byte) KEY_COMMODORE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 61 - (byte) KEY_Q#0 ← (byte/signed byte/word/signed word/dword/signed dword) 62 - (byte) KEY_RUNSTOP#0 ← (byte/signed byte/word/signed word/dword/signed dword) 63 - (byte[]) keyboard_char_keycodes#0 ← { (byte) KEY_AT#0, (byte) KEY_A#0, (byte) KEY_B#0, (byte) KEY_C#0, (byte) KEY_D#0, (byte) KEY_E#0, (byte) KEY_F#0, (byte) KEY_G#0, (byte) KEY_H#0, (byte) KEY_I#0, (byte) KEY_J#0, (byte) KEY_K#0, (byte) KEY_L#0, (byte) KEY_M#0, (byte) KEY_N#0, (byte) KEY_O#0, (byte) KEY_P#0, (byte) KEY_Q#0, (byte) KEY_R#0, (byte) KEY_S#0, (byte) KEY_T#0, (byte) KEY_U#0, (byte) KEY_V#0, (byte) KEY_W#0, (byte) KEY_X#0, (byte) KEY_Y#0, (byte) KEY_Z#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP#0, (byte) KEY_ARROW_LEFT#0, (byte) KEY_SPACE#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK#0, (byte) KEY_PLUS#0, (byte) KEY_COMMA#0, (byte) KEY_MINUS#0, (byte) KEY_DOT#0, (byte) KEY_SLASH#0, (byte) KEY_0#0, (byte) KEY_1#0, (byte) KEY_2#0, (byte) KEY_3#0, (byte) KEY_4#0, (byte) KEY_5#0, (byte) KEY_6#0, (byte) KEY_7#0, (byte) KEY_8#0, (byte) KEY_9#0, (byte) KEY_COLON#0, (byte) KEY_SEMICOLON#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } - (byte[8]) keyboard_matrix_row_bitmask#0 ← { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } - (byte[8]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } + (byte) KEY_A#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) KEY_4#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) KEY_Z#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) KEY_S#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) KEY_E#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) KEY_LSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f + (byte) KEY_5#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte) KEY_R#0 ← (byte/signed byte/word/signed word/dword/signed dword) $11 + (byte) KEY_D#0 ← (byte/signed byte/word/signed word/dword/signed dword) $12 + (byte) KEY_6#0 ← (byte/signed byte/word/signed word/dword/signed dword) $13 + (byte) KEY_C#0 ← (byte/signed byte/word/signed word/dword/signed dword) $14 + (byte) KEY_F#0 ← (byte/signed byte/word/signed word/dword/signed dword) $15 + (byte) KEY_T#0 ← (byte/signed byte/word/signed word/dword/signed dword) $16 + (byte) KEY_X#0 ← (byte/signed byte/word/signed word/dword/signed dword) $17 + (byte) KEY_7#0 ← (byte/signed byte/word/signed word/dword/signed dword) $18 + (byte) KEY_Y#0 ← (byte/signed byte/word/signed word/dword/signed dword) $19 + (byte) KEY_G#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1a + (byte) KEY_8#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1b + (byte) KEY_B#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1c + (byte) KEY_H#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1d + (byte) KEY_U#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1e + (byte) KEY_V#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1f + (byte) KEY_9#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) KEY_I#0 ← (byte/signed byte/word/signed word/dword/signed dword) $21 + (byte) KEY_J#0 ← (byte/signed byte/word/signed word/dword/signed dword) $22 + (byte) KEY_0#0 ← (byte/signed byte/word/signed word/dword/signed dword) $23 + (byte) KEY_M#0 ← (byte/signed byte/word/signed word/dword/signed dword) $24 + (byte) KEY_K#0 ← (byte/signed byte/word/signed word/dword/signed dword) $25 + (byte) KEY_O#0 ← (byte/signed byte/word/signed word/dword/signed dword) $26 + (byte) KEY_N#0 ← (byte/signed byte/word/signed word/dword/signed dword) $27 + (byte) KEY_PLUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) KEY_P#0 ← (byte/signed byte/word/signed word/dword/signed dword) $29 + (byte) KEY_L#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2a + (byte) KEY_MINUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2b + (byte) KEY_DOT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2c + (byte) KEY_COLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2d + (byte) KEY_AT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2e + (byte) KEY_COMMA#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2f + (byte) KEY_POUND#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) KEY_ASTERISK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) KEY_SEMICOLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) $32 + (byte) KEY_HOME#0 ← (byte/signed byte/word/signed word/dword/signed dword) $33 + (byte) KEY_RSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $34 + (byte) KEY_EQUALS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) KEY_ARROW_UP#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) KEY_SLASH#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte) KEY_1#0 ← (byte/signed byte/word/signed word/dword/signed dword) $38 + (byte) KEY_ARROW_LEFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $39 + (byte) KEY_CTRL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3a + (byte) KEY_2#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3b + (byte) KEY_SPACE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3c + (byte) KEY_COMMODORE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3d + (byte) KEY_Q#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3e + (byte) KEY_RUNSTOP#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3f + (byte[]) keyboard_char_keycodes#0 ← { (byte) KEY_AT#0, (byte) KEY_A#0, (byte) KEY_B#0, (byte) KEY_C#0, (byte) KEY_D#0, (byte) KEY_E#0, (byte) KEY_F#0, (byte) KEY_G#0, (byte) KEY_H#0, (byte) KEY_I#0, (byte) KEY_J#0, (byte) KEY_K#0, (byte) KEY_L#0, (byte) KEY_M#0, (byte) KEY_N#0, (byte) KEY_O#0, (byte) KEY_P#0, (byte) KEY_Q#0, (byte) KEY_R#0, (byte) KEY_S#0, (byte) KEY_T#0, (byte) KEY_U#0, (byte) KEY_V#0, (byte) KEY_W#0, (byte) KEY_X#0, (byte) KEY_Y#0, (byte) KEY_Z#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_POUND#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_ARROW_UP#0, (byte) KEY_ARROW_LEFT#0, (byte) KEY_SPACE#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_ASTERISK#0, (byte) KEY_PLUS#0, (byte) KEY_COMMA#0, (byte) KEY_MINUS#0, (byte) KEY_DOT#0, (byte) KEY_SLASH#0, (byte) KEY_0#0, (byte) KEY_1#0, (byte) KEY_2#0, (byte) KEY_3#0, (byte) KEY_4#0, (byte) KEY_5#0, (byte) KEY_6#0, (byte) KEY_7#0, (byte) KEY_8#0, (byte) KEY_9#0, (byte) KEY_COLON#0, (byte) KEY_SEMICOLON#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_EQUALS#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f } + (byte[8]) keyboard_matrix_row_bitmask#0 ← { (byte/word/signed word/dword/signed dword) $fe, (byte/word/signed word/dword/signed dword) $fd, (byte/word/signed word/dword/signed dword) $fb, (byte/word/signed word/dword/signed dword) $f7, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $bf, (byte/signed byte/word/signed word/dword/signed dword) $7f } + (byte[8]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $10, (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/word/signed word/dword/signed dword) $80 } to:@13 keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed (byte) keyboard_matrix_read::rowid#1 ← phi( keyboard_key_pressed/(byte) keyboard_matrix_read::rowid#0 ) @@ -254,7 +254,7 @@ keyboard_get_keycode::@return: scope:[keyboard_get_keycode] from keyboard_get_k (byte[8]) keyboard_scan_values#0 ← { fill( 8, 0) } to:@16 @16: scope:[] from @13 - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@19 main: scope:[main] from @19 (byte*) SCREEN#1 ← phi( @19/(byte*) SCREEN#8 ) @@ -265,7 +265,7 @@ 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 - (byte*~) main::$0 ← (byte*) SCREEN#2 + (word/signed word/dword/signed dword) 1000 + (byte*~) main::$0 ← (byte*) SCREEN#2 + (word/signed word/dword/signed dword) $3e8 (bool~) main::$1 ← (byte*) main::sc#1 < (byte*~) main::$0 if((bool~) main::$1) goto main::@1 to:main::@13 @@ -279,7 +279,7 @@ main::@13: scope:[main] from main::@1 main::@25: scope:[main] from main::@13 (byte*) SCREEN#4 ← phi( main::@13/(byte*) SCREEN#3 ) (byte*~) main::$4 ← (byte*) SCREEN#4 + (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte*~) main::$5 ← (byte*~) main::$4 + (byte/signed byte/word/signed word/dword/signed dword) 10 + (byte*~) main::$5 ← (byte*~) main::$4 + (byte/signed byte/word/signed word/dword/signed dword) $a (byte*) print_str_at::str#1 ← (const string) main::str1 (byte*) print_str_at::at#1 ← (byte*~) main::$5 call print_str_at @@ -287,7 +287,7 @@ main::@25: scope:[main] from main::@13 main::@26: scope:[main] from main::@25 (byte*) SCREEN#5 ← phi( main::@25/(byte*) SCREEN#4 ) (byte*~) main::$7 ← (byte*) SCREEN#5 + (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte*~) main::$8 ← (byte*~) main::$7 + (byte/signed byte/word/signed word/dword/signed dword) 20 + (byte*~) main::$8 ← (byte*~) main::$7 + (byte/signed byte/word/signed word/dword/signed dword) $14 (byte*) print_str_at::str#2 ← (const string) main::str2 (byte*) print_str_at::at#2 ← (byte*~) main::$8 call print_str_at @@ -295,7 +295,7 @@ main::@26: scope:[main] from main::@25 main::@27: scope:[main] from main::@26 (byte*) SCREEN#6 ← phi( main::@26/(byte*) SCREEN#5 ) (byte*~) main::$10 ← (byte*) SCREEN#6 + (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte*~) main::$11 ← (byte*~) main::$10 + (byte/signed byte/word/signed word/dword/signed dword) 30 + (byte*~) main::$11 ← (byte*~) main::$10 + (byte/signed byte/word/signed word/dword/signed dword) $1e (byte*) print_str_at::str#3 ← (const string) main::str3 (byte*) print_str_at::at#3 ← (byte*~) main::$11 call print_str_at @@ -308,7 +308,7 @@ main::@2: scope:[main] from main::@28 main::@29 (byte*) SCREEN#11 ← phi( main::@28/(byte*) SCREEN#13 main::@29/(byte*) SCREEN#14 ) (byte) main::i#2 ← phi( main::@28/(byte) main::i#0 main::@29/(byte) main::i#1 ) (byte) plot_chargen::pos#0 ← (byte) main::i#2 - (byte) plot_chargen::ch#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 + (byte) plot_chargen::ch#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 (byte) plot_chargen::shift#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 call plot_chargen to:main::@29 @@ -454,7 +454,7 @@ main::@35: scope:[main] from main::@10 (byte) keyboard_get_keycode::return#4 ← phi( main::@10/(byte) keyboard_get_keycode::return#2 ) (byte~) main::$29 ← (byte) keyboard_get_keycode::return#4 (byte) main::key#0 ← (byte~) main::$29 - (bool~) main::$30 ← (byte) main::key#0 != (byte/signed byte/word/signed word/dword/signed dword) 63 + (bool~) main::$30 ← (byte) main::key#0 != (byte/signed byte/word/signed word/dword/signed dword) $3f (bool~) main::$31 ← ! (bool~) main::$30 if((bool~) main::$31) goto main::@11 to:main::@21 @@ -492,8 +492,8 @@ main::@12: scope:[main] from main::@11 main::@37 (byte) main::shift#9 ← phi( main::@11/(byte) main::shift#4 main::@37/(byte) main::shift#11 ) (byte) main::cur_pos#11 ← phi( main::@11/(byte) main::cur_pos#6 main::@37/(byte) main::cur_pos#15 ) (byte) main::ch#3 ← phi( main::@11/(byte) main::ch#5 main::@37/(byte) main::ch#6 ) - (byte) main::ch#1 ← (byte) main::ch#3 + rangenext(0,63) - (bool~) main::$36 ← (byte) main::ch#1 != rangelast(0,63) + (byte) main::ch#1 ← (byte) main::ch#3 + rangenext(0,$3f) + (bool~) main::$36 ← (byte) main::ch#1 != rangelast(0,$3f) if((bool~) main::$36) goto main::@10 to:main::@23 main::@22: scope:[main] from main::@11 @@ -558,11 +558,11 @@ plot_chargen::@1: scope:[plot_chargen] from plot_chargen plot_chargen::@5 (byte*) plot_chargen::chargen#6 ← phi( plot_chargen/(byte*) plot_chargen::chargen#0 plot_chargen::@5/(byte*) plot_chargen::chargen#1 ) (byte) plot_chargen::pos#2 ← phi( plot_chargen/(byte) plot_chargen::pos#3 plot_chargen::@5/(byte) plot_chargen::pos#4 ) (byte*) SCREEN#7 ← phi( plot_chargen/(byte*) SCREEN#9 plot_chargen::@5/(byte*) SCREEN#10 ) - *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 - (byte*~) plot_chargen::$6 ← (byte*) SCREEN#7 + (byte/signed byte/word/signed word/dword/signed dword) 40 + *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 + (byte*~) plot_chargen::$6 ← (byte*) SCREEN#7 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*~) plot_chargen::$7 ← (byte*~) plot_chargen::$6 + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) mul8u::a#1 ← (byte) plot_chargen::pos#2 - (byte) mul8u::b#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 + (byte) mul8u::b#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a call mul8u (word) mul8u::return#2 ← (word) mul8u::return#1 to:plot_chargen::@9 @@ -578,7 +578,7 @@ plot_chargen::@5: scope:[plot_chargen] from plot_chargen (byte) plot_chargen::pos#4 ← phi( plot_chargen/(byte) plot_chargen::pos#3 ) (byte*) SCREEN#10 ← phi( plot_chargen/(byte*) SCREEN#9 ) (byte*) plot_chargen::chargen#2 ← phi( plot_chargen/(byte*) plot_chargen::chargen#0 ) - (byte*~) plot_chargen::$5 ← (byte*) plot_chargen::chargen#2 + (word/signed word/dword/signed dword) 2048 + (byte*~) plot_chargen::$5 ← (byte*) plot_chargen::chargen#2 + (word/signed word/dword/signed dword) $800 (byte*) plot_chargen::chargen#1 ← (byte*~) plot_chargen::$5 to:plot_chargen::@1 plot_chargen::@2: scope:[plot_chargen] from plot_chargen::@7 plot_chargen::@9 @@ -595,7 +595,7 @@ plot_chargen::@3: scope:[plot_chargen] from plot_chargen::@2 plot_chargen::@4 (byte*) plot_chargen::sc#5 ← phi( plot_chargen::@2/(byte*) plot_chargen::sc#7 plot_chargen::@4/(byte*) plot_chargen::sc#1 ) (byte) plot_chargen::bits#2 ← phi( plot_chargen::@2/(byte) plot_chargen::bits#0 plot_chargen::@4/(byte) plot_chargen::bits#1 ) (byte) plot_chargen::c#0 ← (byte) '.' - (byte~) plot_chargen::$10 ← (byte) plot_chargen::bits#2 & (byte/word/signed word/dword/signed dword) 128 + (byte~) plot_chargen::$10 ← (byte) plot_chargen::bits#2 & (byte/word/signed word/dword/signed dword) $80 (bool~) plot_chargen::$11 ← (byte~) plot_chargen::$10 != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) plot_chargen::$12 ← ! (bool~) plot_chargen::$11 if((bool~) plot_chargen::$12) goto plot_chargen::@4 @@ -627,14 +627,14 @@ plot_chargen::@7: scope:[plot_chargen] from plot_chargen::@4 (byte*) plot_chargen::chargen#4 ← phi( plot_chargen::@4/(byte*) plot_chargen::chargen#7 ) (byte) plot_chargen::y#3 ← phi( plot_chargen::@4/(byte) plot_chargen::y#4 ) (byte*) plot_chargen::sc#4 ← phi( plot_chargen::@4/(byte*) plot_chargen::sc#1 ) - (byte*~) plot_chargen::$15 ← (byte*) plot_chargen::sc#4 + (byte/signed byte/word/signed word/dword/signed dword) 32 + (byte*~) plot_chargen::$15 ← (byte*) plot_chargen::sc#4 + (byte/signed byte/word/signed word/dword/signed dword) $20 (byte*) plot_chargen::sc#2 ← (byte*~) plot_chargen::$15 (byte) plot_chargen::y#1 ← (byte) plot_chargen::y#3 + rangenext(0,7) (bool~) plot_chargen::$16 ← (byte) plot_chargen::y#1 != rangelast(0,7) if((bool~) plot_chargen::$16) goto plot_chargen::@2 to:plot_chargen::@8 plot_chargen::@8: scope:[plot_chargen] from plot_chargen::@7 - *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 + *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 asm { cli } to:plot_chargen::@return plot_chargen::@return: scope:[plot_chargen] from plot_chargen::@8 @@ -1374,7 +1374,7 @@ Inversing boolean not [261] (bool~) main::$17 ← (byte~) main::$15 == (byte/sig Inversing boolean not [270] (bool~) main::$20 ← (byte~) main::$18 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [269] (bool~) main::$19 ← (byte~) main::$18 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not [281] (bool~) main::$23 ← (byte~) main::$21 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [280] (bool~) main::$22 ← (byte~) main::$21 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not [292] (bool~) main::$26 ← (byte~) main::$24 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [291] (bool~) main::$25 ← (byte~) main::$24 != (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not [321] (bool~) main::$31 ← (byte) main::key#0 == (byte/signed byte/word/signed word/dword/signed dword) 63 from [320] (bool~) main::$30 ← (byte) main::key#0 != (byte/signed byte/word/signed word/dword/signed dword) 63 +Inversing boolean not [321] (bool~) main::$31 ← (byte) main::key#0 == (byte/signed byte/word/signed word/dword/signed dword) $3f from [320] (bool~) main::$30 ← (byte) main::key#0 != (byte/signed byte/word/signed word/dword/signed dword) $3f Inversing boolean not [325] (bool~) main::$34 ← (byte) main::pressed#2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [324] (bool~) main::$33 ← (byte) main::pressed#2 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not [363] (bool~) plot_chargen::$4 ← (byte) plot_chargen::shift#2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [362] (bool~) plot_chargen::$3 ← (byte) plot_chargen::shift#2 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not [388] (bool~) plot_chargen::$12 ← (byte~) plot_chargen::$10 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [387] (bool~) plot_chargen::$11 ← (byte~) plot_chargen::$10 != (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -1496,9 +1496,9 @@ Simple Condition (bool~) main::$20 [271] if((byte~) main::$18==(byte/signed byte Simple Condition (bool~) main::$23 [282] if((byte~) main::$21==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@6 Simple Condition (bool~) main::$26 [293] if((byte~) main::$24==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@7 Simple Condition (bool~) main::$28 [303] if((byte~) main::$27!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@8 -Simple Condition (bool~) main::$31 [322] if((byte) main::key#0==(byte/signed byte/word/signed word/dword/signed dword) 63) goto main::@11 +Simple Condition (bool~) main::$31 [322] if((byte) main::key#0==(byte/signed byte/word/signed word/dword/signed dword) $3f) goto main::@11 Simple Condition (bool~) main::$34 [326] if((byte) main::pressed#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@12 -Simple Condition (bool~) main::$36 [337] if((byte) main::ch#1!=rangelast(0,63)) goto main::@10 +Simple Condition (bool~) main::$36 [337] if((byte) main::ch#1!=rangelast(0,$3f)) goto main::@10 Simple Condition (bool~) print_str_at::$0 [350] if(*((byte*) print_str_at::str#5)!=(byte) '@') goto print_str_at::@2 Simple Condition (bool~) plot_chargen::$4 [364] if((byte) plot_chargen::shift#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto plot_chargen::@1 Simple Condition (bool~) plot_chargen::$12 [389] if((byte~) plot_chargen::$10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto plot_chargen::@4 @@ -1508,66 +1508,66 @@ Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -1578,12 +1578,12 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f Constant (const word) mul8u::res#0 = 0 Constant (const byte) KEY_DEL#0 = 0 Constant (const byte) KEY_RETURN#0 = 1 @@ -1595,62 +1595,62 @@ Constant (const byte) KEY_F5#0 = 6 Constant (const byte) KEY_CRSR_DOWN#0 = 7 Constant (const byte) KEY_3#0 = 8 Constant (const byte) KEY_W#0 = 9 -Constant (const byte) KEY_A#0 = 10 -Constant (const byte) KEY_4#0 = 11 -Constant (const byte) KEY_Z#0 = 12 -Constant (const byte) KEY_S#0 = 13 -Constant (const byte) KEY_E#0 = 14 -Constant (const byte) KEY_LSHIFT#0 = 15 -Constant (const byte) KEY_5#0 = 16 -Constant (const byte) KEY_R#0 = 17 -Constant (const byte) KEY_D#0 = 18 -Constant (const byte) KEY_6#0 = 19 -Constant (const byte) KEY_C#0 = 20 -Constant (const byte) KEY_F#0 = 21 -Constant (const byte) KEY_T#0 = 22 -Constant (const byte) KEY_X#0 = 23 -Constant (const byte) KEY_7#0 = 24 -Constant (const byte) KEY_Y#0 = 25 -Constant (const byte) KEY_G#0 = 26 -Constant (const byte) KEY_8#0 = 27 -Constant (const byte) KEY_B#0 = 28 -Constant (const byte) KEY_H#0 = 29 -Constant (const byte) KEY_U#0 = 30 -Constant (const byte) KEY_V#0 = 31 -Constant (const byte) KEY_9#0 = 32 -Constant (const byte) KEY_I#0 = 33 -Constant (const byte) KEY_J#0 = 34 -Constant (const byte) KEY_0#0 = 35 -Constant (const byte) KEY_M#0 = 36 -Constant (const byte) KEY_K#0 = 37 -Constant (const byte) KEY_O#0 = 38 -Constant (const byte) KEY_N#0 = 39 -Constant (const byte) KEY_PLUS#0 = 40 -Constant (const byte) KEY_P#0 = 41 -Constant (const byte) KEY_L#0 = 42 -Constant (const byte) KEY_MINUS#0 = 43 -Constant (const byte) KEY_DOT#0 = 44 -Constant (const byte) KEY_COLON#0 = 45 -Constant (const byte) KEY_AT#0 = 46 -Constant (const byte) KEY_COMMA#0 = 47 -Constant (const byte) KEY_POUND#0 = 48 -Constant (const byte) KEY_ASTERISK#0 = 49 -Constant (const byte) KEY_SEMICOLON#0 = 50 -Constant (const byte) KEY_HOME#0 = 51 -Constant (const byte) KEY_RSHIFT#0 = 52 -Constant (const byte) KEY_EQUALS#0 = 53 -Constant (const byte) KEY_ARROW_UP#0 = 54 -Constant (const byte) KEY_SLASH#0 = 55 -Constant (const byte) KEY_1#0 = 56 -Constant (const byte) KEY_ARROW_LEFT#0 = 57 -Constant (const byte) KEY_CTRL#0 = 58 -Constant (const byte) KEY_2#0 = 59 -Constant (const byte) KEY_SPACE#0 = 60 -Constant (const byte) KEY_COMMODORE#0 = 61 -Constant (const byte) KEY_Q#0 = 62 -Constant (const byte) KEY_RUNSTOP#0 = 63 -Constant (const byte[8]) keyboard_matrix_row_bitmask#0 = { 254, 253, 251, 247, 239, 223, 191, 127 } -Constant (const byte[8]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, 16, 32, 64, 128 } +Constant (const byte) KEY_A#0 = $a +Constant (const byte) KEY_4#0 = $b +Constant (const byte) KEY_Z#0 = $c +Constant (const byte) KEY_S#0 = $d +Constant (const byte) KEY_E#0 = $e +Constant (const byte) KEY_LSHIFT#0 = $f +Constant (const byte) KEY_5#0 = $10 +Constant (const byte) KEY_R#0 = $11 +Constant (const byte) KEY_D#0 = $12 +Constant (const byte) KEY_6#0 = $13 +Constant (const byte) KEY_C#0 = $14 +Constant (const byte) KEY_F#0 = $15 +Constant (const byte) KEY_T#0 = $16 +Constant (const byte) KEY_X#0 = $17 +Constant (const byte) KEY_7#0 = $18 +Constant (const byte) KEY_Y#0 = $19 +Constant (const byte) KEY_G#0 = $1a +Constant (const byte) KEY_8#0 = $1b +Constant (const byte) KEY_B#0 = $1c +Constant (const byte) KEY_H#0 = $1d +Constant (const byte) KEY_U#0 = $1e +Constant (const byte) KEY_V#0 = $1f +Constant (const byte) KEY_9#0 = $20 +Constant (const byte) KEY_I#0 = $21 +Constant (const byte) KEY_J#0 = $22 +Constant (const byte) KEY_0#0 = $23 +Constant (const byte) KEY_M#0 = $24 +Constant (const byte) KEY_K#0 = $25 +Constant (const byte) KEY_O#0 = $26 +Constant (const byte) KEY_N#0 = $27 +Constant (const byte) KEY_PLUS#0 = $28 +Constant (const byte) KEY_P#0 = $29 +Constant (const byte) KEY_L#0 = $2a +Constant (const byte) KEY_MINUS#0 = $2b +Constant (const byte) KEY_DOT#0 = $2c +Constant (const byte) KEY_COLON#0 = $2d +Constant (const byte) KEY_AT#0 = $2e +Constant (const byte) KEY_COMMA#0 = $2f +Constant (const byte) KEY_POUND#0 = $30 +Constant (const byte) KEY_ASTERISK#0 = $31 +Constant (const byte) KEY_SEMICOLON#0 = $32 +Constant (const byte) KEY_HOME#0 = $33 +Constant (const byte) KEY_RSHIFT#0 = $34 +Constant (const byte) KEY_EQUALS#0 = $35 +Constant (const byte) KEY_ARROW_UP#0 = $36 +Constant (const byte) KEY_SLASH#0 = $37 +Constant (const byte) KEY_1#0 = $38 +Constant (const byte) KEY_ARROW_LEFT#0 = $39 +Constant (const byte) KEY_CTRL#0 = $3a +Constant (const byte) KEY_2#0 = $3b +Constant (const byte) KEY_SPACE#0 = $3c +Constant (const byte) KEY_COMMODORE#0 = $3d +Constant (const byte) KEY_Q#0 = $3e +Constant (const byte) KEY_RUNSTOP#0 = $3f +Constant (const byte[8]) keyboard_matrix_row_bitmask#0 = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f } +Constant (const byte[8]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, $10, $20, $40, $80 } Constant (const byte[8]) keyboard_events#0 = { fill( 8, 0) } Constant (const byte) keyboard_events_size#0 = 0 Constant (const byte) keyboard_modifiers#0 = 0 @@ -1659,13 +1659,13 @@ Constant (const byte) KEY_MODIFIER_RSHIFT#0 = 2 Constant (const byte) KEY_MODIFIER_CTRL#0 = 4 Constant (const byte) KEY_MODIFIER_COMMODORE#0 = 8 Constant (const byte[8]) keyboard_scan_values#0 = { fill( 8, 0) } -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Constant (const byte*) print_str_at::str#0 = main::str Constant (const byte*) print_str_at::str#1 = main::str1 Constant (const byte*) print_str_at::str#2 = main::str2 Constant (const byte*) print_str_at::str#3 = main::str3 Constant (const byte) main::i#0 = 0 -Constant (const byte) plot_chargen::ch#0 = 32 +Constant (const byte) plot_chargen::ch#0 = $20 Constant (const byte) plot_chargen::shift#0 = 0 Constant (const byte) main::cur_pos#0 = 0 Constant (const byte) main::shift#0 = 0 @@ -1677,17 +1677,17 @@ Constant (const byte) main::shift#1 = 1 Constant (const byte) main::shift#2 = 0 Constant (const byte) main::ch#0 = 0 Constant (const byte) main::pressed#0 = 0 -Constant (const byte) mul8u::b#0 = 10 +Constant (const byte) mul8u::b#0 = $a Constant (const byte) plot_chargen::y#0 = 0 Constant (const byte) plot_chargen::x#0 = 0 Constant (const byte) plot_chargen::c#0 = '.' Constant (const byte) plot_chargen::c#1 = '*' Successful SSA optimization Pass2ConstantIdentification Constant (const word) mul8u::mb#0 = ((word))mul8u::b#0 -Constant (const byte[]) keyboard_char_keycodes#0 = { KEY_AT#0, KEY_A#0, KEY_B#0, KEY_C#0, KEY_D#0, KEY_E#0, KEY_F#0, KEY_G#0, KEY_H#0, KEY_I#0, KEY_J#0, KEY_K#0, KEY_L#0, KEY_M#0, KEY_N#0, KEY_O#0, KEY_P#0, KEY_Q#0, KEY_R#0, KEY_S#0, KEY_T#0, KEY_U#0, KEY_V#0, KEY_W#0, KEY_X#0, KEY_Y#0, KEY_Z#0, 63, KEY_POUND#0, 63, KEY_ARROW_UP#0, KEY_ARROW_LEFT#0, KEY_SPACE#0, 63, 63, 63, 63, 63, 63, 63, 63, 63, KEY_ASTERISK#0, KEY_PLUS#0, KEY_COMMA#0, KEY_MINUS#0, KEY_DOT#0, KEY_SLASH#0, KEY_0#0, KEY_1#0, KEY_2#0, KEY_3#0, KEY_4#0, KEY_5#0, KEY_6#0, KEY_7#0, KEY_8#0, KEY_9#0, KEY_COLON#0, KEY_SEMICOLON#0, 63, KEY_EQUALS#0, 63, 63 } +Constant (const byte[]) keyboard_char_keycodes#0 = { KEY_AT#0, KEY_A#0, KEY_B#0, KEY_C#0, KEY_D#0, KEY_E#0, KEY_F#0, KEY_G#0, KEY_H#0, KEY_I#0, KEY_J#0, KEY_K#0, KEY_L#0, KEY_M#0, KEY_N#0, KEY_O#0, KEY_P#0, KEY_Q#0, KEY_R#0, KEY_S#0, KEY_T#0, KEY_U#0, KEY_V#0, KEY_W#0, KEY_X#0, KEY_Y#0, KEY_Z#0, $3f, KEY_POUND#0, $3f, KEY_ARROW_UP#0, KEY_ARROW_LEFT#0, KEY_SPACE#0, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, KEY_ASTERISK#0, KEY_PLUS#0, KEY_COMMA#0, KEY_MINUS#0, KEY_DOT#0, KEY_SLASH#0, KEY_0#0, KEY_1#0, KEY_2#0, KEY_3#0, KEY_4#0, KEY_5#0, KEY_6#0, KEY_7#0, KEY_8#0, KEY_9#0, KEY_COLON#0, KEY_SEMICOLON#0, $3f, KEY_EQUALS#0, $3f, $3f } Constant (const byte) KEY_MODIFIER_SHIFT#0 = KEY_MODIFIER_LSHIFT#0|KEY_MODIFIER_RSHIFT#0 Constant (const byte*) main::sc#0 = SCREEN#0 -Constant (const byte*) main::$0 = SCREEN#0+1000 +Constant (const byte*) main::$0 = SCREEN#0+$3e8 Constant (const byte*) print_str_at::at#0 = SCREEN#0+1 Constant (const byte*) main::$4 = SCREEN#0+1 Constant (const byte*) main::$7 = SCREEN#0+1 @@ -1698,9 +1698,9 @@ Constant (const byte) keyboard_key_pressed::key#2 = KEY_F5#0 Constant (const byte) keyboard_key_pressed::key#3 = KEY_F7#0 Constant (const byte) keyboard_key_pressed::key#4 = KEY_LSHIFT#0 Successful SSA optimization Pass2ConstantIdentification -Constant (const byte*) print_str_at::at#1 = main::$4+10 -Constant (const byte*) print_str_at::at#2 = main::$7+20 -Constant (const byte*) print_str_at::at#3 = main::$10+30 +Constant (const byte*) print_str_at::at#1 = main::$4+$a +Constant (const byte*) print_str_at::at#2 = main::$7+$14 +Constant (const byte*) print_str_at::at#3 = main::$10+$1e Successful SSA optimization Pass2ConstantIdentification Consolidated constant in assignment plot_chargen::$7 Successful SSA optimization Pass2ConstantAdditionElimination @@ -1713,7 +1713,7 @@ Successful SSA optimization Pass2EliminateUnusedBlocks Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ Resolved ranged comparison value if(main::i#1!=rangelast(0,3)) goto main::@2 to (byte/signed byte/word/signed word/dword/signed dword) 4 Resolved ranged next value main::ch#1 ← ++ main::ch#2 to ++ -Resolved ranged comparison value if(main::ch#1!=rangelast(0,63)) goto main::@10 to (byte/signed byte/word/signed word/dword/signed dword) 64 +Resolved ranged comparison value if(main::ch#1!=rangelast(0,$3f)) goto main::@10 to (byte/signed byte/word/signed word/dword/signed dword) $40 Resolved ranged next value plot_chargen::x#1 ← ++ plot_chargen::x#2 to ++ Resolved ranged comparison value if(plot_chargen::x#1!=rangelast(0,7)) goto plot_chargen::@3 to (byte/signed byte/word/signed word/dword/signed dword) 8 Resolved ranged next value plot_chargen::y#1 ← ++ plot_chargen::y#2 to ++ @@ -1738,7 +1738,7 @@ Redundant Phi (byte*) SCREEN#10 (const byte*) SCREEN#0 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte*) plot_chargen::$6 = SCREEN#0 Successful SSA optimization Pass2ConstantIdentification -Constant (const byte*) plot_chargen::$7 = plot_chargen::$6+40+1 +Constant (const byte*) plot_chargen::$7 = plot_chargen::$6+$28+1 Successful SSA optimization Pass2ConstantIdentification Inlining constant with var siblings (const word) mul8u::res#0 Inlining constant with var siblings (const word) mul8u::mb#0 @@ -1775,23 +1775,23 @@ Inlining constant with var siblings (const byte) plot_chargen::c#1 Constant inlined print_str_at::str#1 = (const string) main::str1 Constant inlined main::shift#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined print_str_at::str#2 = (const string) main::str2 -Constant inlined print_str_at::at#3 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 30 +Constant inlined print_str_at::at#3 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) $1e Constant inlined print_str_at::str#3 = (const string) main::str3 -Constant inlined print_str_at::at#2 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 20 +Constant inlined print_str_at::at#2 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) $14 Constant inlined plot_chargen::c#0 = (byte) '.' -Constant inlined print_str_at::at#1 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 10 +Constant inlined print_str_at::at#1 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) $a Constant inlined plot_chargen::c#1 = (byte) '*' Constant inlined print_str_at::at#0 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined print_str_at::str#0 = (const string) main::str Constant inlined main::$10 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined main::shift#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined plot_chargen::$7 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined plot_chargen::$7 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined plot_chargen::$6 = (const byte*) SCREEN#0 Constant inlined plot_chargen::shift#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::ch#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined keyboard_key_pressed::key#0 = (const byte) KEY_F1#0 -Constant inlined plot_chargen::ch#0 = (byte/signed byte/word/signed word/dword/signed dword) 32 +Constant inlined plot_chargen::ch#0 = (byte/signed byte/word/signed word/dword/signed dword) $20 Constant inlined keyboard_key_pressed::key#1 = (const byte) KEY_F3#0 Constant inlined keyboard_key_pressed::key#4 = (const byte) KEY_LSHIFT#0 Constant inlined mul8u::mb#0 = ((word))(const byte) mul8u::b#0 @@ -1803,7 +1803,7 @@ Constant inlined mul8u::res#0 = (byte/signed byte/word/signed word/dword/signed Constant inlined main::cur_pos#4 = (byte/signed byte/word/signed word/dword/signed dword) 3 Constant inlined main::cur_pos#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::cur_pos#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined main::$0 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000 +Constant inlined main::$0 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8 Constant inlined main::cur_pos#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::$4 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined plot_chargen::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -1924,7 +1924,7 @@ main::@1: scope:[main] from main main::@1 [5] (byte*) main::sc#2 ← phi( main/(const byte*) SCREEN#0 main::@1/(byte*) main::sc#1 ) [6] *((byte*) main::sc#2) ← (byte) ' ' [7] (byte*) main::sc#1 ← ++ (byte*) main::sc#2 - [8] if((byte*) main::sc#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto main::@1 + [8] if((byte*) main::sc#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto main::@1 to:main::@13 main::@13: scope:[main] from main::@1 [9] phi() @@ -2010,7 +2010,7 @@ main::@10: scope:[main] from main::@12 main::@9 to:main::@35 main::@35: scope:[main] from main::@10 [53] (byte) main::key#0 ← (byte) keyboard_get_keycode::return#2 - [54] if((byte) main::key#0==(byte/signed byte/word/signed word/dword/signed dword) 63) goto main::@11 + [54] if((byte) main::key#0==(byte/signed byte/word/signed word/dword/signed dword) $3f) goto main::@11 to:main::@21 main::@21: scope:[main] from main::@35 [55] (byte) keyboard_key_pressed::key#5 ← (byte) main::key#0 @@ -2032,7 +2032,7 @@ main::@22: scope:[main] from main::@11 to:main::@12 main::@12: scope:[main] from main::@11 main::@22 [65] (byte) main::ch#1 ← ++ (byte) main::ch#2 - [66] if((byte) main::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) 64) goto main::@10 + [66] if((byte) main::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) $40) goto main::@10 to:main::@3 main::@44: scope:[main] from main::@33 [67] phi() @@ -2049,7 +2049,7 @@ main::@41: scope:[main] from main::@30 plot_chargen: scope:[plot_chargen] from main::@2 main::@22 [71] (byte) plot_chargen::pos#2 ← phi( main::@2/(byte) plot_chargen::pos#0 main::@22/(byte) plot_chargen::pos#1 ) [71] (byte) plot_chargen::shift#2 ← phi( main::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@22/(byte) plot_chargen::shift#1 ) - [71] (byte) plot_chargen::ch#2 ← phi( main::@2/(byte/signed byte/word/signed word/dword/signed dword) 32 main::@22/(byte) plot_chargen::ch#1 ) + [71] (byte) plot_chargen::ch#2 ← phi( main::@2/(byte/signed byte/word/signed word/dword/signed dword) $20 main::@22/(byte) plot_chargen::ch#1 ) asm { sei } [73] (word~) plot_chargen::$0 ← ((word)) (byte) plot_chargen::ch#2 [74] (word~) plot_chargen::$1 ← (word~) plot_chargen::$0 << (byte/signed byte/word/signed word/dword/signed dword) 3 @@ -2057,18 +2057,18 @@ plot_chargen: scope:[plot_chargen] from main::@2 main::@22 [76] if((byte) plot_chargen::shift#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto plot_chargen::@1 to:plot_chargen::@5 plot_chargen::@5: scope:[plot_chargen] from plot_chargen - [77] (byte*) plot_chargen::chargen#1 ← (byte*) plot_chargen::chargen#0 + (word/signed word/dword/signed dword) 2048 + [77] (byte*) plot_chargen::chargen#1 ← (byte*) plot_chargen::chargen#0 + (word/signed word/dword/signed dword) $800 to:plot_chargen::@1 plot_chargen::@1: scope:[plot_chargen] from plot_chargen plot_chargen::@5 [78] (byte*) plot_chargen::chargen#5 ← phi( plot_chargen/(byte*) plot_chargen::chargen#0 plot_chargen::@5/(byte*) plot_chargen::chargen#1 ) - [79] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 + [79] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 [80] (byte) mul8u::a#1 ← (byte) plot_chargen::pos#2 [81] call mul8u [82] (word) mul8u::return#2 ← (word) mul8u::res#2 to:plot_chargen::@9 plot_chargen::@9: scope:[plot_chargen] from plot_chargen::@1 [83] (word~) plot_chargen::$8 ← (word) mul8u::return#2 - [84] (byte*) plot_chargen::sc#0 ← (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1 + (word~) plot_chargen::$8 + [84] (byte*) plot_chargen::sc#0 ← (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1 + (word~) plot_chargen::$8 to:plot_chargen::@2 plot_chargen::@2: scope:[plot_chargen] from plot_chargen::@7 plot_chargen::@9 [85] (byte*) plot_chargen::sc#7 ← phi( plot_chargen::@7/(byte*) plot_chargen::sc#2 plot_chargen::@9/(byte*) plot_chargen::sc#0 ) @@ -2079,7 +2079,7 @@ plot_chargen::@3: scope:[plot_chargen] from plot_chargen::@2 plot_chargen::@4 [87] (byte) plot_chargen::x#2 ← phi( plot_chargen::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 plot_chargen::@4/(byte) plot_chargen::x#1 ) [87] (byte*) plot_chargen::sc#3 ← phi( plot_chargen::@2/(byte*) plot_chargen::sc#7 plot_chargen::@4/(byte*) plot_chargen::sc#1 ) [87] (byte) plot_chargen::bits#2 ← phi( plot_chargen::@2/(byte) plot_chargen::bits#0 plot_chargen::@4/(byte) plot_chargen::bits#1 ) - [88] (byte~) plot_chargen::$10 ← (byte) plot_chargen::bits#2 & (byte/word/signed word/dword/signed dword) 128 + [88] (byte~) plot_chargen::$10 ← (byte) plot_chargen::bits#2 & (byte/word/signed word/dword/signed dword) $80 [89] if((byte~) plot_chargen::$10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto plot_chargen::@4 to:plot_chargen::@6 plot_chargen::@6: scope:[plot_chargen] from plot_chargen::@3 @@ -2094,12 +2094,12 @@ plot_chargen::@4: scope:[plot_chargen] from plot_chargen::@3 plot_chargen::@6 [96] if((byte) plot_chargen::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto plot_chargen::@3 to:plot_chargen::@7 plot_chargen::@7: scope:[plot_chargen] from plot_chargen::@4 - [97] (byte*) plot_chargen::sc#2 ← (byte*) plot_chargen::sc#1 + (byte/signed byte/word/signed word/dword/signed dword) 32 + [97] (byte*) plot_chargen::sc#2 ← (byte*) plot_chargen::sc#1 + (byte/signed byte/word/signed word/dword/signed dword) $20 [98] (byte) plot_chargen::y#1 ← ++ (byte) plot_chargen::y#2 [99] if((byte) plot_chargen::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto plot_chargen::@2 to:plot_chargen::@8 plot_chargen::@8: scope:[plot_chargen] from plot_chargen::@7 - [100] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 + [100] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 asm { cli } to:plot_chargen::@return plot_chargen::@return: scope:[plot_chargen] from plot_chargen::@8 @@ -2158,7 +2158,7 @@ keyboard_get_keycode::@return: scope:[keyboard_get_keycode] from keyboard_get_k [126] return to:@return print_str_at: scope:[print_str_at] from main::@13 main::@25 main::@26 main::@27 - [127] (byte*) print_str_at::at#7 ← phi( main::@13/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1 main::@25/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 10 main::@26/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 20 main::@27/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 30 ) + [127] (byte*) print_str_at::at#7 ← phi( main::@13/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1 main::@25/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) $a main::@26/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) $14 main::@27/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) $1e ) [127] (byte*) print_str_at::str#7 ← phi( main::@13/(const string) main::str main::@25/(const string) main::str1 main::@26/(const string) main::str2 main::@27/(const string) main::str3 ) to:print_str_at::@1 print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2 @@ -2730,7 +2730,7 @@ main: { bne !+ inc sc+1 !: - //SEG18 [8] if((byte*) main::sc#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto main::@1 -- pbuz1_lt_pbuc1_then_la1 + //SEG18 [8] if((byte*) main::sc#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto main::@1 -- pbuz1_lt_pbuc1_then_la1 lda sc+1 cmp #>SCREEN+$3e8 bcc b1_from_b1 @@ -2766,7 +2766,7 @@ main: { //SEG27 [12] call print_str_at //SEG28 [127] phi from main::@25 to print_str_at [phi:main::@25->print_str_at] print_str_at_from_b25: - //SEG29 [127] phi (byte*) print_str_at::at#7 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 10 [phi:main::@25->print_str_at#0] -- pbuz1=pbuc1 + //SEG29 [127] phi (byte*) print_str_at::at#7 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) $a [phi:main::@25->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+1+$a @@ -2785,7 +2785,7 @@ main: { //SEG33 [14] call print_str_at //SEG34 [127] phi from main::@26 to print_str_at [phi:main::@26->print_str_at] print_str_at_from_b26: - //SEG35 [127] phi (byte*) print_str_at::at#7 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 20 [phi:main::@26->print_str_at#0] -- pbuz1=pbuc1 + //SEG35 [127] phi (byte*) print_str_at::at#7 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) $14 [phi:main::@26->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+1+$14 @@ -2804,7 +2804,7 @@ main: { //SEG39 [16] call print_str_at //SEG40 [127] phi from main::@27 to print_str_at [phi:main::@27->print_str_at] print_str_at_from_b27: - //SEG41 [127] phi (byte*) print_str_at::at#7 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 30 [phi:main::@27->print_str_at#0] -- pbuz1=pbuc1 + //SEG41 [127] phi (byte*) print_str_at::at#7 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) $1e [phi:main::@27->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+1+$1e @@ -2837,7 +2837,7 @@ main: { //SEG52 [71] phi (byte) plot_chargen::shift#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@2->plot_chargen#1] -- vbuz1=vbuc1 lda #0 sta plot_chargen.shift - //SEG53 [71] phi (byte) plot_chargen::ch#2 = (byte/signed byte/word/signed word/dword/signed dword) 32 [phi:main::@2->plot_chargen#2] -- vbuz1=vbuc1 + //SEG53 [71] phi (byte) plot_chargen::ch#2 = (byte/signed byte/word/signed word/dword/signed dword) $20 [phi:main::@2->plot_chargen#2] -- vbuz1=vbuc1 lda #$20 sta plot_chargen.ch jsr plot_chargen @@ -3036,7 +3036,7 @@ main: { //SEG123 [53] (byte) main::key#0 ← (byte) keyboard_get_keycode::return#2 -- vbuz1=vbuz2 lda keyboard_get_keycode.return_2 sta key - //SEG124 [54] if((byte) main::key#0==(byte/signed byte/word/signed word/dword/signed dword) 63) goto main::@11 -- vbuz1_eq_vbuc1_then_la1 + //SEG124 [54] if((byte) main::key#0==(byte/signed byte/word/signed word/dword/signed dword) $3f) goto main::@11 -- vbuz1_eq_vbuc1_then_la1 lda key cmp #$3f beq b11_from_b35 @@ -3100,7 +3100,7 @@ main: { b12: //SEG149 [65] (byte) main::ch#1 ← ++ (byte) main::ch#2 -- vbuz1=_inc_vbuz1 inc ch - //SEG150 [66] if((byte) main::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) 64) goto main::@10 -- vbuz1_neq_vbuc1_then_la1 + //SEG150 [66] if((byte) main::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) $40) goto main::@10 -- vbuz1_neq_vbuc1_then_la1 lda ch cmp #$40 bne b10_from_b12 @@ -3199,7 +3199,7 @@ plot_chargen: { jmp b5 //SEG175 plot_chargen::@5 b5: - //SEG176 [77] (byte*) plot_chargen::chargen#1 ← (byte*) plot_chargen::chargen#0 + (word/signed word/dword/signed dword) 2048 -- pbuz1=pbuz1_plus_vwuc1 + //SEG176 [77] (byte*) plot_chargen::chargen#1 ← (byte*) plot_chargen::chargen#0 + (word/signed word/dword/signed dword) $800 -- pbuz1=pbuz1_plus_vwuc1 clc lda chargen adc #<$800 @@ -3214,7 +3214,7 @@ plot_chargen: { jmp b1 //SEG179 plot_chargen::@1 b1: - //SEG180 [79] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- _deref_pbuc1=vbuc2 + //SEG180 [79] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 -- _deref_pbuc1=vbuc2 lda #$32 sta PROCPORT //SEG181 [80] (byte) mul8u::a#1 ← (byte) plot_chargen::pos#2 -- vbuz1=vbuz2 @@ -3237,7 +3237,7 @@ plot_chargen: { sta _8 lda mul8u.return+1 sta _8+1 - //SEG187 [84] (byte*) plot_chargen::sc#0 ← (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1 + (word~) plot_chargen::$8 -- pbuz1=pbuc1_plus_vwuz2 + //SEG187 [84] (byte*) plot_chargen::sc#0 ← (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1 + (word~) plot_chargen::$8 -- pbuz1=pbuc1_plus_vwuz2 lda _8 clc adc #SCREEN+$3e8 bcc b1_from_b1 @@ -3930,7 +3930,7 @@ main: { //SEG27 [12] call print_str_at //SEG28 [127] phi from main::@25 to print_str_at [phi:main::@25->print_str_at] print_str_at_from_b25: - //SEG29 [127] phi (byte*) print_str_at::at#7 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 10 [phi:main::@25->print_str_at#0] -- pbuz1=pbuc1 + //SEG29 [127] phi (byte*) print_str_at::at#7 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) $a [phi:main::@25->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+1+$a @@ -3949,7 +3949,7 @@ main: { //SEG33 [14] call print_str_at //SEG34 [127] phi from main::@26 to print_str_at [phi:main::@26->print_str_at] print_str_at_from_b26: - //SEG35 [127] phi (byte*) print_str_at::at#7 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 20 [phi:main::@26->print_str_at#0] -- pbuz1=pbuc1 + //SEG35 [127] phi (byte*) print_str_at::at#7 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) $14 [phi:main::@26->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+1+$14 @@ -3968,7 +3968,7 @@ main: { //SEG39 [16] call print_str_at //SEG40 [127] phi from main::@27 to print_str_at [phi:main::@27->print_str_at] print_str_at_from_b27: - //SEG41 [127] phi (byte*) print_str_at::at#7 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 30 [phi:main::@27->print_str_at#0] -- pbuz1=pbuc1 + //SEG41 [127] phi (byte*) print_str_at::at#7 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) $1e [phi:main::@27->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+1+$1e @@ -3999,7 +3999,7 @@ main: { //SEG51 [71] phi (byte) plot_chargen::pos#2 = (byte) plot_chargen::pos#0 [phi:main::@2->plot_chargen#0] -- register_copy //SEG52 [71] phi (byte) plot_chargen::shift#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@2->plot_chargen#1] -- vbuxx=vbuc1 ldx #0 - //SEG53 [71] phi (byte) plot_chargen::ch#2 = (byte/signed byte/word/signed word/dword/signed dword) 32 [phi:main::@2->plot_chargen#2] -- vbuaa=vbuc1 + //SEG53 [71] phi (byte) plot_chargen::ch#2 = (byte/signed byte/word/signed word/dword/signed dword) $20 [phi:main::@2->plot_chargen#2] -- vbuaa=vbuc1 lda #$20 jsr plot_chargen jmp b29 @@ -4162,7 +4162,7 @@ main: { //SEG122 main::@35 b35: //SEG123 [53] (byte) main::key#0 ← (byte) keyboard_get_keycode::return#2 - //SEG124 [54] if((byte) main::key#0==(byte/signed byte/word/signed word/dword/signed dword) 63) goto main::@11 -- vbuaa_eq_vbuc1_then_la1 + //SEG124 [54] if((byte) main::key#0==(byte/signed byte/word/signed word/dword/signed dword) $3f) goto main::@11 -- vbuaa_eq_vbuc1_then_la1 cmp #$3f beq b11_from_b35 jmp b21 @@ -4215,7 +4215,7 @@ main: { b12: //SEG149 [65] (byte) main::ch#1 ← ++ (byte) main::ch#2 -- vbuz1=_inc_vbuz1 inc ch - //SEG150 [66] if((byte) main::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) 64) goto main::@10 -- vbuz1_neq_vbuc1_then_la1 + //SEG150 [66] if((byte) main::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) $40) goto main::@10 -- vbuz1_neq_vbuc1_then_la1 lda ch cmp #$40 bne b10_from_b12 @@ -4302,7 +4302,7 @@ plot_chargen: { jmp b5 //SEG175 plot_chargen::@5 b5: - //SEG176 [77] (byte*) plot_chargen::chargen#1 ← (byte*) plot_chargen::chargen#0 + (word/signed word/dword/signed dword) 2048 -- pbuz1=pbuz1_plus_vwuc1 + //SEG176 [77] (byte*) plot_chargen::chargen#1 ← (byte*) plot_chargen::chargen#0 + (word/signed word/dword/signed dword) $800 -- pbuz1=pbuz1_plus_vwuc1 clc lda chargen adc #<$800 @@ -4317,7 +4317,7 @@ plot_chargen: { jmp b1 //SEG179 plot_chargen::@1 b1: - //SEG180 [79] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- _deref_pbuc1=vbuc2 + //SEG180 [79] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 -- _deref_pbuc1=vbuc2 lda #$32 sta PROCPORT //SEG181 [80] (byte) mul8u::a#1 ← (byte) plot_chargen::pos#2 -- vbuxx=vbuyy @@ -4332,7 +4332,7 @@ plot_chargen: { //SEG185 plot_chargen::@9 b9: //SEG186 [83] (word~) plot_chargen::$8 ← (word) mul8u::return#2 - //SEG187 [84] (byte*) plot_chargen::sc#0 ← (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1 + (word~) plot_chargen::$8 -- pbuz1=pbuc1_plus_vwuz1 + //SEG187 [84] (byte*) plot_chargen::sc#0 ← (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1 + (word~) plot_chargen::$8 -- pbuz1=pbuc1_plus_vwuz1 clc lda sc adc #SCREEN+$3e8 bcc b1 @@ -5401,7 +5401,7 @@ main: { //SEG26 main::@25 //SEG27 [12] call print_str_at //SEG28 [127] phi from main::@25 to print_str_at [phi:main::@25->print_str_at] - //SEG29 [127] phi (byte*) print_str_at::at#7 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 10 [phi:main::@25->print_str_at#0] -- pbuz1=pbuc1 + //SEG29 [127] phi (byte*) print_str_at::at#7 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) $a [phi:main::@25->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+1+$a @@ -5416,7 +5416,7 @@ main: { //SEG32 main::@26 //SEG33 [14] call print_str_at //SEG34 [127] phi from main::@26 to print_str_at [phi:main::@26->print_str_at] - //SEG35 [127] phi (byte*) print_str_at::at#7 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 20 [phi:main::@26->print_str_at#0] -- pbuz1=pbuc1 + //SEG35 [127] phi (byte*) print_str_at::at#7 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) $14 [phi:main::@26->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+1+$14 @@ -5431,7 +5431,7 @@ main: { //SEG38 main::@27 //SEG39 [16] call print_str_at //SEG40 [127] phi from main::@27 to print_str_at [phi:main::@27->print_str_at] - //SEG41 [127] phi (byte*) print_str_at::at#7 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 30 [phi:main::@27->print_str_at#0] -- pbuz1=pbuc1 + //SEG41 [127] phi (byte*) print_str_at::at#7 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) $1e [phi:main::@27->print_str_at#0] -- pbuz1=pbuc1 lda #SCREEN+1+$1e @@ -5457,7 +5457,7 @@ main: { //SEG51 [71] phi (byte) plot_chargen::pos#2 = (byte) plot_chargen::pos#0 [phi:main::@2->plot_chargen#0] -- register_copy //SEG52 [71] phi (byte) plot_chargen::shift#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@2->plot_chargen#1] -- vbuxx=vbuc1 ldx #0 - //SEG53 [71] phi (byte) plot_chargen::ch#2 = (byte/signed byte/word/signed word/dword/signed dword) 32 [phi:main::@2->plot_chargen#2] -- vbuaa=vbuc1 + //SEG53 [71] phi (byte) plot_chargen::ch#2 = (byte/signed byte/word/signed word/dword/signed dword) $20 [phi:main::@2->plot_chargen#2] -- vbuaa=vbuc1 lda #$20 jsr plot_chargen //SEG54 main::@29 @@ -5582,7 +5582,7 @@ main: { //SEG121 [52] (byte) keyboard_get_keycode::return#2 ← (byte) keyboard_get_keycode::return#0 //SEG122 main::@35 //SEG123 [53] (byte) main::key#0 ← (byte) keyboard_get_keycode::return#2 - //SEG124 [54] if((byte) main::key#0==(byte/signed byte/word/signed word/dword/signed dword) 63) goto main::@11 -- vbuaa_eq_vbuc1_then_la1 + //SEG124 [54] if((byte) main::key#0==(byte/signed byte/word/signed word/dword/signed dword) $3f) goto main::@11 -- vbuaa_eq_vbuc1_then_la1 cmp #$3f beq b13 //SEG125 main::@21 @@ -5624,7 +5624,7 @@ main: { b12: //SEG149 [65] (byte) main::ch#1 ← ++ (byte) main::ch#2 -- vbuz1=_inc_vbuz1 inc ch - //SEG150 [66] if((byte) main::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) 64) goto main::@10 -- vbuz1_neq_vbuc1_then_la1 + //SEG150 [66] if((byte) main::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) $40) goto main::@10 -- vbuz1_neq_vbuc1_then_la1 lda ch cmp #$40 bne b10 @@ -5688,7 +5688,7 @@ plot_chargen: { cpx #0 beq b1 //SEG175 plot_chargen::@5 - //SEG176 [77] (byte*) plot_chargen::chargen#1 ← (byte*) plot_chargen::chargen#0 + (word/signed word/dword/signed dword) 2048 -- pbuz1=pbuz1_plus_vwuc1 + //SEG176 [77] (byte*) plot_chargen::chargen#1 ← (byte*) plot_chargen::chargen#0 + (word/signed word/dword/signed dword) $800 -- pbuz1=pbuz1_plus_vwuc1 clc lda chargen adc #<$800 @@ -5700,7 +5700,7 @@ plot_chargen: { //SEG178 [78] phi (byte*) plot_chargen::chargen#5 = (byte*) plot_chargen::chargen#0 [phi:plot_chargen/plot_chargen::@5->plot_chargen::@1#0] -- register_copy //SEG179 plot_chargen::@1 b1: - //SEG180 [79] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- _deref_pbuc1=vbuc2 + //SEG180 [79] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 -- _deref_pbuc1=vbuc2 lda #$32 sta PROCPORT //SEG181 [80] (byte) mul8u::a#1 ← (byte) plot_chargen::pos#2 -- vbuxx=vbuyy @@ -5712,7 +5712,7 @@ plot_chargen: { //SEG184 [82] (word) mul8u::return#2 ← (word) mul8u::res#2 //SEG185 plot_chargen::@9 //SEG186 [83] (word~) plot_chargen::$8 ← (word) mul8u::return#2 - //SEG187 [84] (byte*) plot_chargen::sc#0 ← (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1 + (word~) plot_chargen::$8 -- pbuz1=pbuc1_plus_vwuz1 + //SEG187 [84] (byte*) plot_chargen::sc#0 ← (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1 + (word~) plot_chargen::$8 -- pbuz1=pbuc1_plus_vwuz1 clc lda sc adc #plot_chargen::@3#2] -- register_copy //SEG204 plot_chargen::@3 b3: - //SEG205 [88] (byte~) plot_chargen::$10 ← (byte) plot_chargen::bits#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG205 [88] (byte~) plot_chargen::$10 ← (byte) plot_chargen::bits#2 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuz1_band_vbuc1 lda #$80 and bits //SEG206 [89] if((byte~) plot_chargen::$10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto plot_chargen::@4 -- vbuaa_eq_0_then_la1 @@ -5779,7 +5779,7 @@ plot_chargen: { cpx #8 bne b3 //SEG219 plot_chargen::@7 - //SEG220 [97] (byte*) plot_chargen::sc#2 ← (byte*) plot_chargen::sc#1 + (byte/signed byte/word/signed word/dword/signed dword) 32 -- pbuz1=pbuz1_plus_vbuc1 + //SEG220 [97] (byte*) plot_chargen::sc#2 ← (byte*) plot_chargen::sc#1 + (byte/signed byte/word/signed word/dword/signed dword) $20 -- pbuz1=pbuz1_plus_vbuc1 lda sc clc adc #$20 @@ -5794,7 +5794,7 @@ plot_chargen: { cmp #8 bne b2 //SEG223 plot_chargen::@8 - //SEG224 [100] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 -- _deref_pbuc1=vbuc2 + //SEG224 [100] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 -- _deref_pbuc1=vbuc2 lda #$37 sta PROCPORT //SEG225 asm { cli } diff --git a/src/test/ref/examples/chargen/chargen-analysis.sym b/src/test/ref/examples/chargen/chargen-analysis.sym index 0397950ce..8d993081c 100644 --- a/src/test/ref/examples/chargen/chargen-analysis.sym +++ b/src/test/ref/examples/chargen/chargen-analysis.sym @@ -11,13 +11,13 @@ (byte*) BORDERCOL (byte) BROWN (byte*) CHARGEN -(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word/dword/signed dword) 53248 +(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word/dword/signed dword) $d000 (byte*) CIA1_INTERRUPT (byte*) CIA1_PORT_A -(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) 56320 +(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) $dc00 (byte*) CIA1_PORT_A_DDR (byte*) CIA1_PORT_B -(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) 56321 +(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) $dc01 (byte*) CIA1_PORT_B_DDR (byte*) CIA2_INTERRUPT (byte*) CIA2_PORT_A @@ -42,58 +42,58 @@ (byte*) IRQ_STATUS (void()**) KERNEL_IRQ (byte) KEY_0 -(const byte) KEY_0#0 KEY_0 = (byte/signed byte/word/signed word/dword/signed dword) 35 +(const byte) KEY_0#0 KEY_0 = (byte/signed byte/word/signed word/dword/signed dword) $23 (byte) KEY_1 -(const byte) KEY_1#0 KEY_1 = (byte/signed byte/word/signed word/dword/signed dword) 56 +(const byte) KEY_1#0 KEY_1 = (byte/signed byte/word/signed word/dword/signed dword) $38 (byte) KEY_2 -(const byte) KEY_2#0 KEY_2 = (byte/signed byte/word/signed word/dword/signed dword) 59 +(const byte) KEY_2#0 KEY_2 = (byte/signed byte/word/signed word/dword/signed dword) $3b (byte) KEY_3 (const byte) KEY_3#0 KEY_3 = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) KEY_4 -(const byte) KEY_4#0 KEY_4 = (byte/signed byte/word/signed word/dword/signed dword) 11 +(const byte) KEY_4#0 KEY_4 = (byte/signed byte/word/signed word/dword/signed dword) $b (byte) KEY_5 -(const byte) KEY_5#0 KEY_5 = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) KEY_5#0 KEY_5 = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) KEY_6 -(const byte) KEY_6#0 KEY_6 = (byte/signed byte/word/signed word/dword/signed dword) 19 +(const byte) KEY_6#0 KEY_6 = (byte/signed byte/word/signed word/dword/signed dword) $13 (byte) KEY_7 -(const byte) KEY_7#0 KEY_7 = (byte/signed byte/word/signed word/dword/signed dword) 24 +(const byte) KEY_7#0 KEY_7 = (byte/signed byte/word/signed word/dword/signed dword) $18 (byte) KEY_8 -(const byte) KEY_8#0 KEY_8 = (byte/signed byte/word/signed word/dword/signed dword) 27 +(const byte) KEY_8#0 KEY_8 = (byte/signed byte/word/signed word/dword/signed dword) $1b (byte) KEY_9 -(const byte) KEY_9#0 KEY_9 = (byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte) KEY_9#0 KEY_9 = (byte/signed byte/word/signed word/dword/signed dword) $20 (byte) KEY_A -(const byte) KEY_A#0 KEY_A = (byte/signed byte/word/signed word/dword/signed dword) 10 +(const byte) KEY_A#0 KEY_A = (byte/signed byte/word/signed word/dword/signed dword) $a (byte) KEY_ARROW_LEFT -(const byte) KEY_ARROW_LEFT#0 KEY_ARROW_LEFT = (byte/signed byte/word/signed word/dword/signed dword) 57 +(const byte) KEY_ARROW_LEFT#0 KEY_ARROW_LEFT = (byte/signed byte/word/signed word/dword/signed dword) $39 (byte) KEY_ARROW_UP -(const byte) KEY_ARROW_UP#0 KEY_ARROW_UP = (byte/signed byte/word/signed word/dword/signed dword) 54 +(const byte) KEY_ARROW_UP#0 KEY_ARROW_UP = (byte/signed byte/word/signed word/dword/signed dword) $36 (byte) KEY_ASTERISK -(const byte) KEY_ASTERISK#0 KEY_ASTERISK = (byte/signed byte/word/signed word/dword/signed dword) 49 +(const byte) KEY_ASTERISK#0 KEY_ASTERISK = (byte/signed byte/word/signed word/dword/signed dword) $31 (byte) KEY_AT -(const byte) KEY_AT#0 KEY_AT = (byte/signed byte/word/signed word/dword/signed dword) 46 +(const byte) KEY_AT#0 KEY_AT = (byte/signed byte/word/signed word/dword/signed dword) $2e (byte) KEY_B -(const byte) KEY_B#0 KEY_B = (byte/signed byte/word/signed word/dword/signed dword) 28 +(const byte) KEY_B#0 KEY_B = (byte/signed byte/word/signed word/dword/signed dword) $1c (byte) KEY_C -(const byte) KEY_C#0 KEY_C = (byte/signed byte/word/signed word/dword/signed dword) 20 +(const byte) KEY_C#0 KEY_C = (byte/signed byte/word/signed word/dword/signed dword) $14 (byte) KEY_COLON -(const byte) KEY_COLON#0 KEY_COLON = (byte/signed byte/word/signed word/dword/signed dword) 45 +(const byte) KEY_COLON#0 KEY_COLON = (byte/signed byte/word/signed word/dword/signed dword) $2d (byte) KEY_COMMA -(const byte) KEY_COMMA#0 KEY_COMMA = (byte/signed byte/word/signed word/dword/signed dword) 47 +(const byte) KEY_COMMA#0 KEY_COMMA = (byte/signed byte/word/signed word/dword/signed dword) $2f (byte) KEY_COMMODORE (byte) KEY_CRSR_DOWN (byte) KEY_CRSR_RIGHT (byte) KEY_CTRL (byte) KEY_D -(const byte) KEY_D#0 KEY_D = (byte/signed byte/word/signed word/dword/signed dword) 18 +(const byte) KEY_D#0 KEY_D = (byte/signed byte/word/signed word/dword/signed dword) $12 (byte) KEY_DEL (byte) KEY_DOT -(const byte) KEY_DOT#0 KEY_DOT = (byte/signed byte/word/signed word/dword/signed dword) 44 +(const byte) KEY_DOT#0 KEY_DOT = (byte/signed byte/word/signed word/dword/signed dword) $2c (byte) KEY_E -(const byte) KEY_E#0 KEY_E = (byte/signed byte/word/signed word/dword/signed dword) 14 +(const byte) KEY_E#0 KEY_E = (byte/signed byte/word/signed word/dword/signed dword) $e (byte) KEY_EQUALS -(const byte) KEY_EQUALS#0 KEY_EQUALS = (byte/signed byte/word/signed word/dword/signed dword) 53 +(const byte) KEY_EQUALS#0 KEY_EQUALS = (byte/signed byte/word/signed word/dword/signed dword) $35 (byte) KEY_F -(const byte) KEY_F#0 KEY_F = (byte/signed byte/word/signed word/dword/signed dword) 21 +(const byte) KEY_F#0 KEY_F = (byte/signed byte/word/signed word/dword/signed dword) $15 (byte) KEY_F1 (const byte) KEY_F1#0 KEY_F1 = (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) KEY_F3 @@ -103,68 +103,68 @@ (byte) KEY_F7 (const byte) KEY_F7#0 KEY_F7 = (byte/signed byte/word/signed word/dword/signed dword) 3 (byte) KEY_G -(const byte) KEY_G#0 KEY_G = (byte/signed byte/word/signed word/dword/signed dword) 26 +(const byte) KEY_G#0 KEY_G = (byte/signed byte/word/signed word/dword/signed dword) $1a (byte) KEY_H -(const byte) KEY_H#0 KEY_H = (byte/signed byte/word/signed word/dword/signed dword) 29 +(const byte) KEY_H#0 KEY_H = (byte/signed byte/word/signed word/dword/signed dword) $1d (byte) KEY_HOME (byte) KEY_I -(const byte) KEY_I#0 KEY_I = (byte/signed byte/word/signed word/dword/signed dword) 33 +(const byte) KEY_I#0 KEY_I = (byte/signed byte/word/signed word/dword/signed dword) $21 (byte) KEY_J -(const byte) KEY_J#0 KEY_J = (byte/signed byte/word/signed word/dword/signed dword) 34 +(const byte) KEY_J#0 KEY_J = (byte/signed byte/word/signed word/dword/signed dword) $22 (byte) KEY_K -(const byte) KEY_K#0 KEY_K = (byte/signed byte/word/signed word/dword/signed dword) 37 +(const byte) KEY_K#0 KEY_K = (byte/signed byte/word/signed word/dword/signed dword) $25 (byte) KEY_L -(const byte) KEY_L#0 KEY_L = (byte/signed byte/word/signed word/dword/signed dword) 42 +(const byte) KEY_L#0 KEY_L = (byte/signed byte/word/signed word/dword/signed dword) $2a (byte) KEY_LSHIFT -(const byte) KEY_LSHIFT#0 KEY_LSHIFT = (byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte) KEY_LSHIFT#0 KEY_LSHIFT = (byte/signed byte/word/signed word/dword/signed dword) $f (byte) KEY_M -(const byte) KEY_M#0 KEY_M = (byte/signed byte/word/signed word/dword/signed dword) 36 +(const byte) KEY_M#0 KEY_M = (byte/signed byte/word/signed word/dword/signed dword) $24 (byte) KEY_MINUS -(const byte) KEY_MINUS#0 KEY_MINUS = (byte/signed byte/word/signed word/dword/signed dword) 43 +(const byte) KEY_MINUS#0 KEY_MINUS = (byte/signed byte/word/signed word/dword/signed dword) $2b (byte) KEY_MODIFIER_COMMODORE (byte) KEY_MODIFIER_CTRL (byte) KEY_MODIFIER_LSHIFT (byte) KEY_MODIFIER_RSHIFT (byte) KEY_MODIFIER_SHIFT (byte) KEY_N -(const byte) KEY_N#0 KEY_N = (byte/signed byte/word/signed word/dword/signed dword) 39 +(const byte) KEY_N#0 KEY_N = (byte/signed byte/word/signed word/dword/signed dword) $27 (byte) KEY_O -(const byte) KEY_O#0 KEY_O = (byte/signed byte/word/signed word/dword/signed dword) 38 +(const byte) KEY_O#0 KEY_O = (byte/signed byte/word/signed word/dword/signed dword) $26 (byte) KEY_P -(const byte) KEY_P#0 KEY_P = (byte/signed byte/word/signed word/dword/signed dword) 41 +(const byte) KEY_P#0 KEY_P = (byte/signed byte/word/signed word/dword/signed dword) $29 (byte) KEY_PLUS -(const byte) KEY_PLUS#0 KEY_PLUS = (byte/signed byte/word/signed word/dword/signed dword) 40 +(const byte) KEY_PLUS#0 KEY_PLUS = (byte/signed byte/word/signed word/dword/signed dword) $28 (byte) KEY_POUND -(const byte) KEY_POUND#0 KEY_POUND = (byte/signed byte/word/signed word/dword/signed dword) 48 +(const byte) KEY_POUND#0 KEY_POUND = (byte/signed byte/word/signed word/dword/signed dword) $30 (byte) KEY_Q -(const byte) KEY_Q#0 KEY_Q = (byte/signed byte/word/signed word/dword/signed dword) 62 +(const byte) KEY_Q#0 KEY_Q = (byte/signed byte/word/signed word/dword/signed dword) $3e (byte) KEY_R -(const byte) KEY_R#0 KEY_R = (byte/signed byte/word/signed word/dword/signed dword) 17 +(const byte) KEY_R#0 KEY_R = (byte/signed byte/word/signed word/dword/signed dword) $11 (byte) KEY_RETURN (byte) KEY_RSHIFT (byte) KEY_RUNSTOP (byte) KEY_S -(const byte) KEY_S#0 KEY_S = (byte/signed byte/word/signed word/dword/signed dword) 13 +(const byte) KEY_S#0 KEY_S = (byte/signed byte/word/signed word/dword/signed dword) $d (byte) KEY_SEMICOLON -(const byte) KEY_SEMICOLON#0 KEY_SEMICOLON = (byte/signed byte/word/signed word/dword/signed dword) 50 +(const byte) KEY_SEMICOLON#0 KEY_SEMICOLON = (byte/signed byte/word/signed word/dword/signed dword) $32 (byte) KEY_SLASH -(const byte) KEY_SLASH#0 KEY_SLASH = (byte/signed byte/word/signed word/dword/signed dword) 55 +(const byte) KEY_SLASH#0 KEY_SLASH = (byte/signed byte/word/signed word/dword/signed dword) $37 (byte) KEY_SPACE -(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) 60 +(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) $3c (byte) KEY_T -(const byte) KEY_T#0 KEY_T = (byte/signed byte/word/signed word/dword/signed dword) 22 +(const byte) KEY_T#0 KEY_T = (byte/signed byte/word/signed word/dword/signed dword) $16 (byte) KEY_U -(const byte) KEY_U#0 KEY_U = (byte/signed byte/word/signed word/dword/signed dword) 30 +(const byte) KEY_U#0 KEY_U = (byte/signed byte/word/signed word/dword/signed dword) $1e (byte) KEY_V -(const byte) KEY_V#0 KEY_V = (byte/signed byte/word/signed word/dword/signed dword) 31 +(const byte) KEY_V#0 KEY_V = (byte/signed byte/word/signed word/dword/signed dword) $1f (byte) KEY_W (const byte) KEY_W#0 KEY_W = (byte/signed byte/word/signed word/dword/signed dword) 9 (byte) KEY_X -(const byte) KEY_X#0 KEY_X = (byte/signed byte/word/signed word/dword/signed dword) 23 +(const byte) KEY_X#0 KEY_X = (byte/signed byte/word/signed word/dword/signed dword) $17 (byte) KEY_Y -(const byte) KEY_Y#0 KEY_Y = (byte/signed byte/word/signed word/dword/signed dword) 25 +(const byte) KEY_Y#0 KEY_Y = (byte/signed byte/word/signed word/dword/signed dword) $19 (byte) KEY_Z -(const byte) KEY_Z#0 KEY_Z = (byte/signed byte/word/signed word/dword/signed dword) 12 +(const byte) KEY_Z#0 KEY_Z = (byte/signed byte/word/signed word/dword/signed dword) $c (byte*) LIGHTPEN_X (byte*) LIGHTPEN_Y (byte) LIGHT_BLUE @@ -185,7 +185,7 @@ (byte*) RASTER (byte) RED (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE (byte*) SPRITES_EXPAND_X @@ -211,7 +211,7 @@ (byte) WHITE (byte) YELLOW (byte[]) keyboard_char_keycodes -(const byte[]) keyboard_char_keycodes#0 keyboard_char_keycodes = { (const byte) KEY_AT#0, (const byte) KEY_A#0, (const byte) KEY_B#0, (const byte) KEY_C#0, (const byte) KEY_D#0, (const byte) KEY_E#0, (const byte) KEY_F#0, (const byte) KEY_G#0, (const byte) KEY_H#0, (const byte) KEY_I#0, (const byte) KEY_J#0, (const byte) KEY_K#0, (const byte) KEY_L#0, (const byte) KEY_M#0, (const byte) KEY_N#0, (const byte) KEY_O#0, (const byte) KEY_P#0, (const byte) KEY_Q#0, (const byte) KEY_R#0, (const byte) KEY_S#0, (const byte) KEY_T#0, (const byte) KEY_U#0, (const byte) KEY_V#0, (const byte) KEY_W#0, (const byte) KEY_X#0, (const byte) KEY_Y#0, (const byte) KEY_Z#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (const byte) KEY_POUND#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (const byte) KEY_ARROW_UP#0, (const byte) KEY_ARROW_LEFT#0, (const byte) KEY_SPACE#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (const byte) KEY_ASTERISK#0, (const byte) KEY_PLUS#0, (const byte) KEY_COMMA#0, (const byte) KEY_MINUS#0, (const byte) KEY_DOT#0, (const byte) KEY_SLASH#0, (const byte) KEY_0#0, (const byte) KEY_1#0, (const byte) KEY_2#0, (const byte) KEY_3#0, (const byte) KEY_4#0, (const byte) KEY_5#0, (const byte) KEY_6#0, (const byte) KEY_7#0, (const byte) KEY_8#0, (const byte) KEY_9#0, (const byte) KEY_COLON#0, (const byte) KEY_SEMICOLON#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (const byte) KEY_EQUALS#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } +(const byte[]) keyboard_char_keycodes#0 keyboard_char_keycodes = { (const byte) KEY_AT#0, (const byte) KEY_A#0, (const byte) KEY_B#0, (const byte) KEY_C#0, (const byte) KEY_D#0, (const byte) KEY_E#0, (const byte) KEY_F#0, (const byte) KEY_G#0, (const byte) KEY_H#0, (const byte) KEY_I#0, (const byte) KEY_J#0, (const byte) KEY_K#0, (const byte) KEY_L#0, (const byte) KEY_M#0, (const byte) KEY_N#0, (const byte) KEY_O#0, (const byte) KEY_P#0, (const byte) KEY_Q#0, (const byte) KEY_R#0, (const byte) KEY_S#0, (const byte) KEY_T#0, (const byte) KEY_U#0, (const byte) KEY_V#0, (const byte) KEY_W#0, (const byte) KEY_X#0, (const byte) KEY_Y#0, (const byte) KEY_Z#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (const byte) KEY_POUND#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (const byte) KEY_ARROW_UP#0, (const byte) KEY_ARROW_LEFT#0, (const byte) KEY_SPACE#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (const byte) KEY_ASTERISK#0, (const byte) KEY_PLUS#0, (const byte) KEY_COMMA#0, (const byte) KEY_MINUS#0, (const byte) KEY_DOT#0, (const byte) KEY_SLASH#0, (const byte) KEY_0#0, (const byte) KEY_1#0, (const byte) KEY_2#0, (const byte) KEY_3#0, (const byte) KEY_4#0, (const byte) KEY_5#0, (const byte) KEY_6#0, (const byte) KEY_7#0, (const byte) KEY_8#0, (const byte) KEY_9#0, (const byte) KEY_COLON#0, (const byte) KEY_SEMICOLON#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (const byte) KEY_EQUALS#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f } (byte[8]) keyboard_events (byte) keyboard_events_size (byte()) keyboard_get_keycode((byte) keyboard_get_keycode::ch) @@ -241,7 +241,7 @@ (byte) keyboard_key_pressed::rowidx (byte) keyboard_key_pressed::rowidx#0 reg byte a 4.0 (byte[8]) keyboard_matrix_col_bitmask -(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $10, (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/word/signed word/dword/signed dword) $80 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (label) keyboard_matrix_read::@return (byte) keyboard_matrix_read::return @@ -251,7 +251,7 @@ (byte) keyboard_matrix_read::rowid (byte) keyboard_matrix_read::rowid#0 reg byte x 4.0 (byte[8]) keyboard_matrix_row_bitmask -(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } +(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) $fe, (byte/word/signed word/dword/signed dword) $fd, (byte/word/signed word/dword/signed dword) $fb, (byte/word/signed word/dword/signed dword) $f7, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $bf, (byte/signed byte/word/signed word/dword/signed dword) $7f } (byte) keyboard_modifiers (byte[8]) keyboard_scan_values (void()) main() @@ -328,7 +328,7 @@ (byte) mul8u::a#1 reg byte x 2.0 (byte) mul8u::a#2 reg byte x 667.6666666666667 (byte) mul8u::b -(const byte) mul8u::b#0 b = (byte/signed byte/word/signed word/dword/signed dword) 10 +(const byte) mul8u::b#0 b = (byte/signed byte/word/signed word/dword/signed dword) $a (word) mul8u::mb (word) mul8u::mb#1 mb zp ZP_WORD:11 2002.0 (word) mul8u::mb#2 mb zp ZP_WORD:11 429.0 diff --git a/src/test/ref/examples/fastmultiply/fastmultiply8.cfg b/src/test/ref/examples/fastmultiply/fastmultiply8.cfg index d5c264b39..732304cf1 100644 --- a/src/test/ref/examples/fastmultiply/fastmultiply8.cfg +++ b/src/test/ref/examples/fastmultiply/fastmultiply8.cfg @@ -23,7 +23,7 @@ main: scope:[main] from @22 [6] call init_screen to:main::@1 main::@1: scope:[main] from main main::@8 - [7] (byte*) main::at#4 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 4 main::@8/(byte*) main::at#1 ) + [7] (byte*) main::at#4 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 4 main::@8/(byte*) main::at#1 ) [7] (byte) main::k#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@8/(byte) main::k#1 ) [8] (signed byte) print_sbyte_at::b#1 ← *((const signed byte[]) vals#0 + (byte) main::k#2) [9] (byte*) print_sbyte_at::at#0 ← (byte*) main::at#4 @@ -36,8 +36,8 @@ main::@8: scope:[main] from main::@1 to:main::@2 main::@2: scope:[main] from main::@5 main::@8 [14] (byte) main::i#2 ← phi( main::@8/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@5/(byte) main::i#1 ) - [14] (byte*) main::at_line#2 ← phi( main::@8/((byte*))(word/signed word/dword/signed dword) 1024 main::@5/(byte*) main::at#2 ) - [15] (byte*) main::at#2 ← (byte*) main::at_line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [14] (byte*) main::at_line#2 ← phi( main::@8/((byte*))(word/signed word/dword/signed dword) $400 main::@5/(byte*) main::at#2 ) + [15] (byte*) main::at#2 ← (byte*) main::at_line#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 [16] (signed byte) print_sbyte_at::b#2 ← *((const signed byte[]) vals#0 + (byte) main::i#2) [17] (byte*) print_sbyte_at::at#1 ← (byte*) main::at#2 [18] call print_sbyte_at @@ -108,7 +108,7 @@ print_byte_at: scope:[print_byte_at] from print_sbyte_at::@2 [52] call print_char_at to:print_byte_at::@1 print_byte_at::@1: scope:[print_byte_at] from print_byte_at - [53] (byte~) print_byte_at::$2 ← (byte)(signed byte) print_sbyte_at::b#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [53] (byte~) print_byte_at::$2 ← (byte)(signed byte) print_sbyte_at::b#6 & (byte/signed byte/word/signed word/dword/signed dword) $f [54] (byte*) print_char_at::at#3 ← (byte*) print_byte_at::at#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 [55] (byte) print_char_at::ch#3 ← *((const byte[]) print_hextab#0 + (byte~) print_byte_at::$2) [56] call print_char_at @@ -131,20 +131,20 @@ init_screen: scope:[init_screen] from main to:init_screen::@1 init_screen::@1: scope:[init_screen] from init_screen init_screen::@1 [65] (byte) init_screen::l#2 ← phi( init_screen::@1/(byte) init_screen::l#1 init_screen/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [66] *(((byte*))(word/dword/signed dword) 55296 + (byte) init_screen::l#2) ← (const byte) init_screen::WHITE#0 + [66] *(((byte*))(word/dword/signed dword) $d800 + (byte) init_screen::l#2) ← (const byte) init_screen::WHITE#0 [67] (byte) init_screen::l#1 ← ++ (byte) init_screen::l#2 - [68] if((byte) init_screen::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto init_screen::@1 + [68] if((byte) init_screen::l#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto init_screen::@1 to:init_screen::@2 init_screen::@2: scope:[init_screen] from init_screen::@1 init_screen::@2 [69] (byte) init_screen::m#2 ← phi( init_screen::@2/(byte) init_screen::m#1 init_screen::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [69] (byte*) init_screen::COLS#3 ← phi( init_screen::@2/(byte*) init_screen::COLS#1 init_screen::@1/((byte*))(word/dword/signed dword) 55296 ) + [69] (byte*) init_screen::COLS#3 ← phi( init_screen::@2/(byte*) init_screen::COLS#1 init_screen::@1/((byte*))(word/dword/signed dword) $d800 ) [70] *((byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (const byte) init_screen::WHITE#0 [71] *((byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (const byte) init_screen::WHITE#0 [72] *((byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 2) ← (const byte) init_screen::WHITE#0 [73] *((byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (const byte) init_screen::WHITE#0 - [74] (byte*) init_screen::COLS#1 ← (byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [74] (byte*) init_screen::COLS#1 ← (byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) $28 [75] (byte) init_screen::m#1 ← ++ (byte) init_screen::m#2 - [76] if((byte) init_screen::m#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto init_screen::@2 + [76] if((byte) init_screen::m#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto init_screen::@2 to:init_screen::@return init_screen::@return: scope:[init_screen] from init_screen::@2 [77] return @@ -156,7 +156,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 [79] (byte*) print_cls::sc#2 ← phi( print_cls/(const byte*) print_line_cursor#0 print_cls::@1/(byte*) print_cls::sc#1 ) [80] *((byte*) print_cls::sc#2) ← (byte) ' ' [81] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [82] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [82] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [83] return diff --git a/src/test/ref/examples/fastmultiply/fastmultiply8.log b/src/test/ref/examples/fastmultiply/fastmultiply8.log index 5e3aafcba..a66922e52 100644 --- a/src/test/ref/examples/fastmultiply/fastmultiply8.log +++ b/src/test/ref/examples/fastmultiply/fastmultiply8.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 to:@12 @@ -66,7 +66,7 @@ print_byte_at: scope:[print_byte_at] from print_sbyte_at::@2 print_byte_at::@1: scope:[print_byte_at] from print_byte_at (byte*) print_byte_at::at#2 ← phi( print_byte_at/(byte*) print_byte_at::at#1 ) (byte) print_byte_at::b#2 ← phi( print_byte_at/(byte) print_byte_at::b#1 ) - (byte~) print_byte_at::$2 ← (byte) print_byte_at::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) print_byte_at::$2 ← (byte) print_byte_at::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte*~) print_byte_at::$3 ← (byte*) print_byte_at::at#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) print_char_at::ch#3 ← *((byte[]) print_hextab#0 + (byte~) print_byte_at::$2) (byte*) print_char_at::at#3 ← (byte*~) print_byte_at::$3 @@ -94,7 +94,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 (byte*) print_cls::sc#2 ← phi( print_cls/(byte*) print_cls::sc#0 print_cls::@1/(byte*) print_cls::sc#1 ) *((byte*) print_cls::sc#2) ← (byte) ' ' (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) 1000 + (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) $3e8 (bool~) print_cls::$1 ← (byte*) print_cls::sc#1 != (byte*~) print_cls::$0 if((bool~) print_cls::$1) goto print_cls::@1 to:print_cls::@2 @@ -114,11 +114,11 @@ print_cls::@return: scope:[print_cls] from print_cls::@2 (byte*) print_screen#8 ← phi( @12/(byte*) print_screen#9 ) (byte*) print_char_cursor#24 ← phi( @12/(byte*) print_char_cursor#25 ) (byte*) print_line_cursor#24 ← phi( @12/(byte*) print_line_cursor#25 ) - (signed byte/signed word/signed dword~) $0 ← - (byte/signed byte/word/signed word/dword/signed dword) 95 - (signed byte/signed word/signed dword~) $1 ← - (byte/signed byte/word/signed word/dword/signed dword) 64 - (signed byte/signed word/signed dword~) $2 ← - (byte/signed byte/word/signed word/dword/signed dword) 32 - (signed byte/signed word/signed dword~) $3 ← - (byte/signed byte/word/signed word/dword/signed dword) 16 - (signed byte[]) vals#0 ← { (signed byte/signed word/signed dword~) $0, (signed byte/signed word/signed dword~) $1, (signed byte/signed word/signed dword~) $2, (signed byte/signed word/signed dword~) $3, (byte/signed byte/word/signed word/dword/signed dword) 0, (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/signed byte/word/signed word/dword/signed dword) 95 } + (signed byte/signed word/signed dword~) $0 ← - (byte/signed byte/word/signed word/dword/signed dword) $5f + (signed byte/signed word/signed dword~) $1 ← - (byte/signed byte/word/signed word/dword/signed dword) $40 + (signed byte/signed word/signed dword~) $2 ← - (byte/signed byte/word/signed word/dword/signed dword) $20 + (signed byte/signed word/signed dword~) $3 ← - (byte/signed byte/word/signed word/dword/signed dword) $10 + (signed byte[]) vals#0 ← { (signed byte/signed word/signed dword~) $0, (signed byte/signed word/signed dword~) $1, (signed byte/signed word/signed dword~) $2, (signed byte/signed word/signed dword~) $3, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $10, (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/signed byte/word/signed word/dword/signed dword) $5f } to:@21 main: scope:[main] from @22 (signed byte*) cp#12 ← phi( @22/(signed byte*) cp#13 ) @@ -137,7 +137,7 @@ main::@7: scope:[main] from main (byte*) print_line_cursor#9 ← phi( main/(byte*) print_line_cursor#6 ) (byte*) print_line_cursor#3 ← (byte*) print_line_cursor#9 (byte*) print_char_cursor#3 ← (byte*) print_char_cursor#9 - (byte*) main::at_line#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::at_line#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*~) main::$1 ← (byte*) main::at_line#0 + (byte/signed byte/word/signed word/dword/signed dword) 4 (byte*) main::at#0 ← (byte*~) main::$1 (byte) main::k#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -186,7 +186,7 @@ main::@2: scope:[main] from main::@4 main::@5 (signed byte*) ap#5 ← phi( main::@4/(signed byte*) ap#7 main::@5/(signed byte*) ap#8 ) (byte) main::i#2 ← phi( main::@4/(byte) main::i#0 main::@5/(byte) main::i#1 ) (byte*) main::at_line#2 ← phi( main::@4/(byte*) main::at_line#3 main::@5/(byte*) main::at_line#4 ) - (byte*) main::at_line#1 ← (byte*) main::at_line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*) main::at_line#1 ← (byte*) main::at_line#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) main::at#2 ← (byte*) main::at_line#1 (signed byte) print_sbyte_at::b#2 ← *((signed byte[]) vals#0 + (byte) main::i#2) (byte*) print_sbyte_at::at#1 ← (byte*) main::at#2 @@ -280,7 +280,7 @@ init_screen::@5: scope:[init_screen] from init_screen (byte*) print_line_cursor#11 ← phi( init_screen/(byte*) print_line_cursor#2 ) (byte*) print_line_cursor#5 ← (byte*) print_line_cursor#11 (byte*) print_char_cursor#5 ← (byte*) print_char_cursor#11 - (byte*) init_screen::COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 + (byte*) init_screen::COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 (byte) init_screen::WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) init_screen::l#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:init_screen::@1 @@ -291,8 +291,8 @@ init_screen::@1: scope:[init_screen] from init_screen::@1 init_screen::@5 (byte*) init_screen::COLS#2 ← phi( init_screen::@1/(byte*) init_screen::COLS#2 init_screen::@5/(byte*) init_screen::COLS#0 ) (byte) init_screen::WHITE#1 ← phi( init_screen::@1/(byte) init_screen::WHITE#1 init_screen::@5/(byte) init_screen::WHITE#0 ) *((byte*) init_screen::COLS#2 + (byte) init_screen::l#2) ← (byte) init_screen::WHITE#1 - (byte) init_screen::l#1 ← (byte) init_screen::l#2 + rangenext(0,39) - (bool~) init_screen::$1 ← (byte) init_screen::l#1 != rangelast(0,39) + (byte) init_screen::l#1 ← (byte) init_screen::l#2 + rangenext(0,$27) + (bool~) init_screen::$1 ← (byte) init_screen::l#1 != rangelast(0,$27) if((bool~) init_screen::$1) goto init_screen::@1 to:init_screen::@3 init_screen::@3: scope:[init_screen] from init_screen::@1 @@ -312,9 +312,9 @@ init_screen::@2: scope:[init_screen] from init_screen::@2 init_screen::@3 *((byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) init_screen::WHITE#2 *((byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) init_screen::WHITE#2 *((byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) init_screen::WHITE#2 - (byte*) init_screen::COLS#1 ← (byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte) init_screen::m#1 ← (byte) init_screen::m#2 + rangenext(0,24) - (bool~) init_screen::$2 ← (byte) init_screen::m#1 != rangelast(0,24) + (byte*) init_screen::COLS#1 ← (byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) init_screen::m#1 ← (byte) init_screen::m#2 + rangenext(0,$18) + (bool~) init_screen::$2 ← (byte) init_screen::m#1 != rangelast(0,$18) if((bool~) init_screen::$2) goto init_screen::@2 to:init_screen::@return init_screen::@return: scope:[init_screen] from init_screen::@2 @@ -328,9 +328,9 @@ init_screen::@return: scope:[init_screen] from init_screen::@2 (byte*) print_screen#7 ← phi( @19/(byte*) print_screen#8 ) (byte*) print_char_cursor#21 ← phi( @19/(byte*) print_char_cursor#24 ) (byte*) print_line_cursor#21 ← phi( @19/(byte*) print_line_cursor#24 ) - (signed byte*) ap#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 253 - (signed byte*) bp#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 254 - (signed byte*) cp#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 255 + (signed byte*) ap#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) $fd + (signed byte*) bp#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) $fe + (signed byte*) cp#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) $ff to:@22 fmul8: scope:[fmul8] from main::@3 (signed byte*) cp#1 ← phi( main::@3/(signed byte*) cp#2 ) @@ -355,8 +355,8 @@ fmul8::@return: scope:[fmul8] from fmul8 (byte*) print_screen#6 ← phi( @21/(byte*) print_screen#7 ) (byte*) print_char_cursor#18 ← phi( @21/(byte*) print_char_cursor#21 ) (byte*) print_line_cursor#18 ← phi( @21/(byte*) print_line_cursor#21 ) - (byte*) mulf_sqr1#0 ← ((byte*)) (word/signed word/dword/signed dword) 8192 - (byte*) mulf_sqr2#0 ← ((byte*)) (word/signed word/dword/signed dword) 8704 + (byte*) mulf_sqr1#0 ← ((byte*)) (word/signed word/dword/signed dword) $2000 + (byte*) mulf_sqr2#0 ← ((byte*)) (word/signed word/dword/signed dword) $2200 kickasm(location (byte*) mulf_sqr1#0) {{ .for(var i=0;i<$200;i++) { .if(i<=159) { .byte round((i*i)/256) } .if(i>159 && i<=351 ) { .byte round(((i-256)*(i-256))/256) } @@ -832,34 +832,34 @@ Simple Condition (bool~) print_cls::$1 [49] if((byte*) print_cls::sc#1!=(byte*~) Simple Condition (bool~) main::$3 [80] if((byte) main::k#1!=rangelast(0,8)) goto main::@1 Simple Condition (bool~) main::$7 [106] if((byte) main::j#1!=rangelast(0,8)) goto main::@3 Simple Condition (bool~) main::$8 [110] if((byte) main::i#1!=rangelast(0,8)) goto main::@2 -Simple Condition (bool~) init_screen::$1 [127] if((byte) init_screen::l#1!=rangelast(0,39)) goto init_screen::@1 -Simple Condition (bool~) init_screen::$2 [138] if((byte) init_screen::m#1!=rangelast(0,24)) goto init_screen::@2 +Simple Condition (bool~) init_screen::$1 [127] if((byte) init_screen::l#1!=rangelast(0,$27)) goto init_screen::@1 +Simple Condition (bool~) init_screen::$2 [138] if((byte) init_screen::m#1!=rangelast(0,$18)) goto init_screen::@2 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) print_line_cursor#0 = ((byte*))1024 +Constant (const byte*) print_line_cursor#0 = ((byte*))$400 Constant (const byte) print_char_at::ch#0 = '-' Constant (const byte) print_char_at::ch#1 = ' ' Constant (const byte[]) print_hextab#0 = $4 -Constant (const signed byte/signed word/signed dword) $0 = -95 -Constant (const signed byte/signed word/signed dword) $1 = -64 -Constant (const signed byte/signed word/signed dword) $2 = -32 -Constant (const signed byte/signed word/signed dword) $3 = -16 -Constant (const byte*) main::at_line#0 = ((byte*))1024 +Constant (const signed byte/signed word/signed dword) $0 = -$5f +Constant (const signed byte/signed word/signed dword) $1 = -$40 +Constant (const signed byte/signed word/signed dword) $2 = -$20 +Constant (const signed byte/signed word/signed dword) $3 = -$10 +Constant (const byte*) main::at_line#0 = ((byte*))$400 Constant (const byte) main::k#0 = 0 Constant (const byte) main::i#0 = 0 Constant (const byte) main::j#0 = 0 -Constant (const byte*) init_screen::COLS#0 = ((byte*))55296 +Constant (const byte*) init_screen::COLS#0 = ((byte*))$d800 Constant (const byte) init_screen::WHITE#0 = 1 Constant (const byte) init_screen::l#0 = 0 Constant (const byte) init_screen::m#0 = 0 -Constant (const signed byte*) ap#0 = ((signed byte*))253 -Constant (const signed byte*) bp#0 = ((signed byte*))254 -Constant (const signed byte*) cp#0 = ((signed byte*))255 -Constant (const byte*) mulf_sqr1#0 = ((byte*))8192 -Constant (const byte*) mulf_sqr2#0 = ((byte*))8704 +Constant (const signed byte*) ap#0 = ((signed byte*))$fd +Constant (const signed byte*) bp#0 = ((signed byte*))$fe +Constant (const signed byte*) cp#0 = ((signed byte*))$ff +Constant (const byte*) mulf_sqr1#0 = ((byte*))$2000 +Constant (const byte*) mulf_sqr2#0 = ((byte*))$2200 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) print_cls::sc#0 = print_line_cursor#0 -Constant (const byte*) print_cls::$0 = print_line_cursor#0+1000 -Constant (const signed byte[]) vals#0 = { $0, $1, $2, $3, 0, 16, 32, 64, 95 } +Constant (const byte*) print_cls::$0 = print_line_cursor#0+$3e8 +Constant (const signed byte[]) vals#0 = { $0, $1, $2, $3, 0, $10, $20, $40, $5f } Constant (const byte*) main::at#0 = main::at_line#0+4 Successful SSA optimization Pass2ConstantIdentification Successful SSA optimization PassNEliminateUnusedVars @@ -872,9 +872,9 @@ Resolved ranged comparison value if(main::j#1!=rangelast(0,8)) goto main::@3 to Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ Resolved ranged comparison value if(main::i#1!=rangelast(0,8)) goto main::@2 to (byte/signed byte/word/signed word/dword/signed dword) 9 Resolved ranged next value init_screen::l#1 ← ++ init_screen::l#2 to ++ -Resolved ranged comparison value if(init_screen::l#1!=rangelast(0,39)) goto init_screen::@1 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(init_screen::l#1!=rangelast(0,$27)) goto init_screen::@1 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value init_screen::m#1 ← ++ init_screen::m#2 to ++ -Resolved ranged comparison value if(init_screen::m#1!=rangelast(0,24)) goto init_screen::@2 to (byte/signed byte/word/signed word/dword/signed dword) 25 +Resolved ranged comparison value if(init_screen::m#1!=rangelast(0,$18)) goto init_screen::@2 to (byte/signed byte/word/signed word/dword/signed dword) $19 Culled Empty Block (label) print_sbyte_at::@6 Culled Empty Block (label) @12 Culled Empty Block (label) print_cls::@2 @@ -906,13 +906,13 @@ Inlining constant with var siblings (const byte*) main::at#0 Inlining constant with var siblings (const byte*) init_screen::COLS#0 Inlining constant with var siblings (const byte) init_screen::l#0 Inlining constant with var siblings (const byte) init_screen::m#0 -Constant inlined print_cls::$0 = (const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000 -Constant inlined $0 = -(byte/signed byte/word/signed word/dword/signed dword) 95 +Constant inlined print_cls::$0 = (const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8 +Constant inlined $0 = -(byte/signed byte/word/signed word/dword/signed dword) $5f Constant inlined print_cls::sc#0 = (const byte*) print_line_cursor#0 -Constant inlined $1 = -(byte/signed byte/word/signed word/dword/signed dword) 64 -Constant inlined main::at#0 = ((byte*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 4 -Constant inlined $2 = -(byte/signed byte/word/signed word/dword/signed dword) 32 -Constant inlined $3 = -(byte/signed byte/word/signed word/dword/signed dword) 16 +Constant inlined $1 = -(byte/signed byte/word/signed word/dword/signed dword) $40 +Constant inlined main::at#0 = ((byte*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 4 +Constant inlined $2 = -(byte/signed byte/word/signed word/dword/signed dword) $20 +Constant inlined $3 = -(byte/signed byte/word/signed word/dword/signed dword) $10 Constant inlined $4 = (const byte[]) print_hextab#0 Constant inlined print_char_at::ch#0 = (byte) '-' Constant inlined init_screen::m#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -921,8 +921,8 @@ Constant inlined init_screen::l#0 = (byte/signed byte/word/signed word/dword/sig Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::k#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::at_line#0 = ((byte*))(word/signed word/dword/signed dword) 1024 -Constant inlined init_screen::COLS#0 = ((byte*))(word/dword/signed dword) 55296 +Constant inlined main::at_line#0 = ((byte*))(word/signed word/dword/signed dword) $400 +Constant inlined init_screen::COLS#0 = ((byte*))(word/dword/signed dword) $d800 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@12(between main::@8 and main::@1) Added new block during phi lifting main::@13(between main::@5 and main::@2) @@ -1007,7 +1007,7 @@ main: scope:[main] from @22 [6] call init_screen to:main::@1 main::@1: scope:[main] from main main::@8 - [7] (byte*) main::at#4 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 4 main::@8/(byte*) main::at#1 ) + [7] (byte*) main::at#4 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 4 main::@8/(byte*) main::at#1 ) [7] (byte) main::k#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@8/(byte) main::k#1 ) [8] (signed byte) print_sbyte_at::b#1 ← *((const signed byte[]) vals#0 + (byte) main::k#2) [9] (byte*) print_sbyte_at::at#0 ← (byte*) main::at#4 @@ -1020,8 +1020,8 @@ main::@8: scope:[main] from main::@1 to:main::@2 main::@2: scope:[main] from main::@5 main::@8 [14] (byte) main::i#2 ← phi( main::@8/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@5/(byte) main::i#1 ) - [14] (byte*) main::at_line#2 ← phi( main::@8/((byte*))(word/signed word/dword/signed dword) 1024 main::@5/(byte*) main::at#2 ) - [15] (byte*) main::at#2 ← (byte*) main::at_line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [14] (byte*) main::at_line#2 ← phi( main::@8/((byte*))(word/signed word/dword/signed dword) $400 main::@5/(byte*) main::at#2 ) + [15] (byte*) main::at#2 ← (byte*) main::at_line#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 [16] (signed byte) print_sbyte_at::b#2 ← *((const signed byte[]) vals#0 + (byte) main::i#2) [17] (byte*) print_sbyte_at::at#1 ← (byte*) main::at#2 [18] call print_sbyte_at @@ -1092,7 +1092,7 @@ print_byte_at: scope:[print_byte_at] from print_sbyte_at::@2 [52] call print_char_at to:print_byte_at::@1 print_byte_at::@1: scope:[print_byte_at] from print_byte_at - [53] (byte~) print_byte_at::$2 ← (byte)(signed byte) print_sbyte_at::b#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [53] (byte~) print_byte_at::$2 ← (byte)(signed byte) print_sbyte_at::b#6 & (byte/signed byte/word/signed word/dword/signed dword) $f [54] (byte*) print_char_at::at#3 ← (byte*) print_byte_at::at#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 [55] (byte) print_char_at::ch#3 ← *((const byte[]) print_hextab#0 + (byte~) print_byte_at::$2) [56] call print_char_at @@ -1115,20 +1115,20 @@ init_screen: scope:[init_screen] from main to:init_screen::@1 init_screen::@1: scope:[init_screen] from init_screen init_screen::@1 [65] (byte) init_screen::l#2 ← phi( init_screen::@1/(byte) init_screen::l#1 init_screen/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [66] *(((byte*))(word/dword/signed dword) 55296 + (byte) init_screen::l#2) ← (const byte) init_screen::WHITE#0 + [66] *(((byte*))(word/dword/signed dword) $d800 + (byte) init_screen::l#2) ← (const byte) init_screen::WHITE#0 [67] (byte) init_screen::l#1 ← ++ (byte) init_screen::l#2 - [68] if((byte) init_screen::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto init_screen::@1 + [68] if((byte) init_screen::l#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto init_screen::@1 to:init_screen::@2 init_screen::@2: scope:[init_screen] from init_screen::@1 init_screen::@2 [69] (byte) init_screen::m#2 ← phi( init_screen::@2/(byte) init_screen::m#1 init_screen::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [69] (byte*) init_screen::COLS#3 ← phi( init_screen::@2/(byte*) init_screen::COLS#1 init_screen::@1/((byte*))(word/dword/signed dword) 55296 ) + [69] (byte*) init_screen::COLS#3 ← phi( init_screen::@2/(byte*) init_screen::COLS#1 init_screen::@1/((byte*))(word/dword/signed dword) $d800 ) [70] *((byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (const byte) init_screen::WHITE#0 [71] *((byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (const byte) init_screen::WHITE#0 [72] *((byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 2) ← (const byte) init_screen::WHITE#0 [73] *((byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (const byte) init_screen::WHITE#0 - [74] (byte*) init_screen::COLS#1 ← (byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [74] (byte*) init_screen::COLS#1 ← (byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) $28 [75] (byte) init_screen::m#1 ← ++ (byte) init_screen::m#2 - [76] if((byte) init_screen::m#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto init_screen::@2 + [76] if((byte) init_screen::m#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto init_screen::@2 to:init_screen::@return init_screen::@return: scope:[init_screen] from init_screen::@2 [77] return @@ -1140,7 +1140,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 [79] (byte*) print_cls::sc#2 ← phi( print_cls/(const byte*) print_line_cursor#0 print_cls::@1/(byte*) print_cls::sc#1 ) [80] *((byte*) print_cls::sc#2) ← (byte) ' ' [81] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [82] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [82] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [83] return @@ -1360,7 +1360,7 @@ main: { jsr init_screen //SEG14 [7] phi from main to main::@1 [phi:main->main::@1] b1_from_main: - //SEG15 [7] phi (byte*) main::at#4 = ((byte*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 4 [phi:main->main::@1#0] -- pbuz1=pbuc1 + //SEG15 [7] phi (byte*) main::at#4 = ((byte*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 4 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400+4 sta at lda #>$400+4 @@ -1413,7 +1413,7 @@ main: { //SEG32 [14] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@8->main::@2#0] -- vbuz1=vbuc1 lda #0 sta i - //SEG33 [14] phi (byte*) main::at_line#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::@8->main::@2#1] -- pbuz1=pbuc1 + //SEG33 [14] phi (byte*) main::at_line#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::@8->main::@2#1] -- pbuz1=pbuc1 lda #<$400 sta at_line lda #>$400 @@ -1426,7 +1426,7 @@ main: { jmp b2 //SEG37 main::@2 b2: - //SEG38 [15] (byte*) main::at#2 ← (byte*) main::at_line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG38 [15] (byte*) main::at#2 ← (byte*) main::at_line#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda at_2 clc adc #$28 @@ -1654,7 +1654,7 @@ print_byte_at: { jmp b1 //SEG109 print_byte_at::@1 b1: - //SEG110 [53] (byte~) print_byte_at::$2 ← (byte)(signed byte) print_sbyte_at::b#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG110 [53] (byte~) print_byte_at::$2 ← (byte)(signed byte) print_sbyte_at::b#6 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and print_sbyte_at.b sta _2 @@ -1738,13 +1738,13 @@ init_screen: { jmp b1 //SEG133 init_screen::@1 b1: - //SEG134 [66] *(((byte*))(word/dword/signed dword) 55296 + (byte) init_screen::l#2) ← (const byte) init_screen::WHITE#0 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG134 [66] *(((byte*))(word/dword/signed dword) $d800 + (byte) init_screen::l#2) ← (const byte) init_screen::WHITE#0 -- pbuc1_derefidx_vbuz1=vbuc2 ldy l lda #WHITE sta $d800,y //SEG135 [67] (byte) init_screen::l#1 ← ++ (byte) init_screen::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG136 [68] if((byte) init_screen::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto init_screen::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG136 [68] if((byte) init_screen::l#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto init_screen::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #$28 bne b1_from_b1 @@ -1753,7 +1753,7 @@ init_screen: { //SEG138 [69] phi (byte) init_screen::m#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init_screen::@1->init_screen::@2#0] -- vbuz1=vbuc1 lda #0 sta m - //SEG139 [69] phi (byte*) init_screen::COLS#3 = ((byte*))(word/dword/signed dword) 55296 [phi:init_screen::@1->init_screen::@2#1] -- pbuz1=pbuc1 + //SEG139 [69] phi (byte*) init_screen::COLS#3 = ((byte*))(word/dword/signed dword) $d800 [phi:init_screen::@1->init_screen::@2#1] -- pbuz1=pbuc1 lda #<$d800 sta COLS lda #>$d800 @@ -1782,7 +1782,7 @@ init_screen: { lda #WHITE ldy #3 sta (COLS),y - //SEG148 [74] (byte*) init_screen::COLS#1 ← (byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG148 [74] (byte*) init_screen::COLS#1 ← (byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda COLS clc adc #$28 @@ -1792,7 +1792,7 @@ init_screen: { !: //SEG149 [75] (byte) init_screen::m#1 ← ++ (byte) init_screen::m#2 -- vbuz1=_inc_vbuz1 inc m - //SEG150 [76] if((byte) init_screen::m#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto init_screen::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG150 [76] if((byte) init_screen::m#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto init_screen::@2 -- vbuz1_neq_vbuc1_then_la1 lda m cmp #$19 bne b2_from_b2 @@ -1829,7 +1829,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG161 [82] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG161 [82] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>print_line_cursor+$3e8 bne b1_from_b1 @@ -1864,7 +1864,7 @@ Statement [9] (byte*) print_sbyte_at::at#0 ← (byte*) main::at#4 [ main::k#2 ma Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::k#2 main::k#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:13 [ print_sbyte_at::b#6 print_sbyte_at::b#0 print_sbyte_at::b#4 print_sbyte_at::b#1 print_sbyte_at::b#3 print_sbyte_at::b#2 ] Statement [11] (byte*) main::at#1 ← (byte*) main::at#4 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ main::k#2 main::at#1 ] ( main:3 [ main::k#2 main::at#1 ] ) always clobbers reg byte a -Statement [15] (byte*) main::at#2 ← (byte*) main::at_line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::i#2 main::at#2 ] ( main:3 [ main::i#2 main::at#2 ] ) always clobbers reg byte a +Statement [15] (byte*) main::at#2 ← (byte*) main::at_line#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ main::i#2 main::at#2 ] ( main:3 [ main::i#2 main::at#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:7 [ main::i#2 main::i#1 ] Statement [17] (byte*) print_sbyte_at::at#1 ← (byte*) main::at#2 [ main::i#2 main::at#2 print_sbyte_at::b#2 print_sbyte_at::at#1 ] ( main:3 [ main::i#2 main::at#2 print_sbyte_at::b#2 print_sbyte_at::at#1 ] ) always clobbers reg byte a Statement [19] (byte*~) main::at#12 ← (byte*) main::at#2 [ main::i#2 main::at#2 main::at#12 ] ( main:3 [ main::i#2 main::at#2 main::at#12 ] ) always clobbers reg byte a @@ -1883,13 +1883,13 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:10 [ m Statement [49] (byte~) print_byte_at::$0 ← (byte)(signed byte) print_sbyte_at::b#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_sbyte_at::b#6 print_byte_at::at#0 print_byte_at::$0 ] ( main:3::print_sbyte_at:10::print_byte_at:41 [ main::k#2 main::at#4 print_sbyte_at::b#6 print_byte_at::at#0 print_byte_at::$0 ] main:3::print_sbyte_at:18::print_byte_at:41 [ main::i#2 main::at#2 print_sbyte_at::b#6 print_byte_at::at#0 print_byte_at::$0 ] main:3::print_sbyte_at:29::print_byte_at:41 [ main::i#2 main::at#2 main::j#2 main::at#3 print_sbyte_at::b#6 print_byte_at::at#0 print_byte_at::$0 ] ) always clobbers reg byte a Statement [51] (byte*) print_char_at::at#2 ← (byte*) print_byte_at::at#0 [ print_sbyte_at::b#6 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] ( main:3::print_sbyte_at:10::print_byte_at:41 [ main::k#2 main::at#4 print_sbyte_at::b#6 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:3::print_sbyte_at:18::print_byte_at:41 [ main::i#2 main::at#2 print_sbyte_at::b#6 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:3::print_sbyte_at:29::print_byte_at:41 [ main::i#2 main::at#2 main::j#2 main::at#3 print_sbyte_at::b#6 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:14 [ print_char_at::ch#4 print_char_at::ch#2 print_char_at::ch#3 ] -Statement [53] (byte~) print_byte_at::$2 ← (byte)(signed byte) print_sbyte_at::b#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_byte_at::at#0 print_byte_at::$2 ] ( main:3::print_sbyte_at:10::print_byte_at:41 [ main::k#2 main::at#4 print_byte_at::at#0 print_byte_at::$2 ] main:3::print_sbyte_at:18::print_byte_at:41 [ main::i#2 main::at#2 print_byte_at::at#0 print_byte_at::$2 ] main:3::print_sbyte_at:29::print_byte_at:41 [ main::i#2 main::at#2 main::j#2 main::at#3 print_byte_at::at#0 print_byte_at::$2 ] ) always clobbers reg byte a +Statement [53] (byte~) print_byte_at::$2 ← (byte)(signed byte) print_sbyte_at::b#6 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_byte_at::at#0 print_byte_at::$2 ] ( main:3::print_sbyte_at:10::print_byte_at:41 [ main::k#2 main::at#4 print_byte_at::at#0 print_byte_at::$2 ] main:3::print_sbyte_at:18::print_byte_at:41 [ main::i#2 main::at#2 print_byte_at::at#0 print_byte_at::$2 ] main:3::print_sbyte_at:29::print_byte_at:41 [ main::i#2 main::at#2 main::j#2 main::at#3 print_byte_at::at#0 print_byte_at::$2 ] ) always clobbers reg byte a Statement [54] (byte*) print_char_at::at#3 ← (byte*) print_byte_at::at#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 [ print_char_at::at#3 print_byte_at::$2 ] ( main:3::print_sbyte_at:10::print_byte_at:41 [ main::k#2 main::at#4 print_char_at::at#3 print_byte_at::$2 ] main:3::print_sbyte_at:18::print_byte_at:41 [ main::i#2 main::at#2 print_char_at::at#3 print_byte_at::$2 ] main:3::print_sbyte_at:29::print_byte_at:41 [ main::i#2 main::at#2 main::j#2 main::at#3 print_char_at::at#3 print_byte_at::$2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:30 [ print_byte_at::$2 ] Statement asm { ldaap staA1+1 eor#$ff staA2+1 ldxbp sec A1: ldamulf_sqr1,x A2: sbcmulf_sqr2,x stacp } always clobbers reg byte a reg byte x Removing always clobbered register reg byte x as potential for zp ZP_BYTE:7 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte x as potential for zp ZP_BYTE:10 [ main::j#2 main::j#1 ] -Statement [66] *(((byte*))(word/dword/signed dword) 55296 + (byte) init_screen::l#2) ← (const byte) init_screen::WHITE#0 [ init_screen::l#2 ] ( main:3::init_screen:6 [ init_screen::l#2 ] ) always clobbers reg byte a +Statement [66] *(((byte*))(word/dword/signed dword) $d800 + (byte) init_screen::l#2) ← (const byte) init_screen::WHITE#0 [ init_screen::l#2 ] ( main:3::init_screen:6 [ init_screen::l#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:17 [ init_screen::l#2 init_screen::l#1 ] Statement [70] *((byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (const byte) init_screen::WHITE#0 [ init_screen::COLS#3 init_screen::m#2 ] ( main:3::init_screen:6 [ init_screen::COLS#3 init_screen::m#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp ZP_BYTE:20 [ init_screen::m#2 init_screen::m#1 ] @@ -1897,13 +1897,13 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:20 [ i Statement [71] *((byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (const byte) init_screen::WHITE#0 [ init_screen::COLS#3 init_screen::m#2 ] ( main:3::init_screen:6 [ init_screen::COLS#3 init_screen::m#2 ] ) always clobbers reg byte a reg byte y Statement [72] *((byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 2) ← (const byte) init_screen::WHITE#0 [ init_screen::COLS#3 init_screen::m#2 ] ( main:3::init_screen:6 [ init_screen::COLS#3 init_screen::m#2 ] ) always clobbers reg byte a reg byte y Statement [73] *((byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (const byte) init_screen::WHITE#0 [ init_screen::COLS#3 init_screen::m#2 ] ( main:3::init_screen:6 [ init_screen::COLS#3 init_screen::m#2 ] ) always clobbers reg byte a reg byte y -Statement [74] (byte*) init_screen::COLS#1 ← (byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ init_screen::m#2 init_screen::COLS#1 ] ( main:3::init_screen:6 [ init_screen::m#2 init_screen::COLS#1 ] ) always clobbers reg byte a +Statement [74] (byte*) init_screen::COLS#1 ← (byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ init_screen::m#2 init_screen::COLS#1 ] ( main:3::init_screen:6 [ init_screen::m#2 init_screen::COLS#1 ] ) always clobbers reg byte a Statement [80] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:3::init_screen:6::print_cls:64 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [82] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:3::init_screen:6::print_cls:64 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [82] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:3::init_screen:6::print_cls:64 [ print_cls::sc#1 ] ) always clobbers reg byte a Statement [8] (signed byte) print_sbyte_at::b#1 ← *((const signed byte[]) vals#0 + (byte) main::k#2) [ main::k#2 main::at#4 print_sbyte_at::b#1 ] ( main:3 [ main::k#2 main::at#4 print_sbyte_at::b#1 ] ) always clobbers reg byte a Statement [9] (byte*) print_sbyte_at::at#0 ← (byte*) main::at#4 [ main::k#2 main::at#4 print_sbyte_at::b#1 print_sbyte_at::at#0 ] ( main:3 [ main::k#2 main::at#4 print_sbyte_at::b#1 print_sbyte_at::at#0 ] ) always clobbers reg byte a Statement [11] (byte*) main::at#1 ← (byte*) main::at#4 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ main::k#2 main::at#1 ] ( main:3 [ main::k#2 main::at#1 ] ) always clobbers reg byte a -Statement [15] (byte*) main::at#2 ← (byte*) main::at_line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::i#2 main::at#2 ] ( main:3 [ main::i#2 main::at#2 ] ) always clobbers reg byte a +Statement [15] (byte*) main::at#2 ← (byte*) main::at_line#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ main::i#2 main::at#2 ] ( main:3 [ main::i#2 main::at#2 ] ) always clobbers reg byte a Statement [16] (signed byte) print_sbyte_at::b#2 ← *((const signed byte[]) vals#0 + (byte) main::i#2) [ main::i#2 main::at#2 print_sbyte_at::b#2 ] ( main:3 [ main::i#2 main::at#2 print_sbyte_at::b#2 ] ) always clobbers reg byte a Statement [17] (byte*) print_sbyte_at::at#1 ← (byte*) main::at#2 [ main::i#2 main::at#2 print_sbyte_at::b#2 print_sbyte_at::at#1 ] ( main:3 [ main::i#2 main::at#2 print_sbyte_at::b#2 print_sbyte_at::at#1 ] ) always clobbers reg byte a Statement [19] (byte*~) main::at#12 ← (byte*) main::at#2 [ main::i#2 main::at#2 main::at#12 ] ( main:3 [ main::i#2 main::at#2 main::at#12 ] ) always clobbers reg byte a @@ -1918,17 +1918,17 @@ Statement [45] (signed byte) print_sbyte_at::b#0 ← - (signed byte) print_sbyte Statement [47] *((byte*) print_char_at::at#4) ← (byte) print_char_at::ch#4 [ ] ( main:3::print_sbyte_at:10::print_char_at:38 [ main::k#2 main::at#4 print_sbyte_at::b#4 print_sbyte_at::at#3 ] main:3::print_sbyte_at:18::print_char_at:38 [ main::i#2 main::at#2 print_sbyte_at::b#4 print_sbyte_at::at#3 ] main:3::print_sbyte_at:29::print_char_at:38 [ main::i#2 main::at#2 main::j#2 main::at#3 print_sbyte_at::b#4 print_sbyte_at::at#3 ] main:3::print_sbyte_at:10::print_char_at:44 [ main::k#2 main::at#4 print_sbyte_at::b#4 print_sbyte_at::at#3 ] main:3::print_sbyte_at:18::print_char_at:44 [ main::i#2 main::at#2 print_sbyte_at::b#4 print_sbyte_at::at#3 ] main:3::print_sbyte_at:29::print_char_at:44 [ main::i#2 main::at#2 main::j#2 main::at#3 print_sbyte_at::b#4 print_sbyte_at::at#3 ] main:3::print_sbyte_at:10::print_byte_at:41::print_char_at:52 [ main::k#2 main::at#4 print_sbyte_at::b#6 print_byte_at::at#0 ] main:3::print_sbyte_at:18::print_byte_at:41::print_char_at:52 [ main::i#2 main::at#2 print_sbyte_at::b#6 print_byte_at::at#0 ] main:3::print_sbyte_at:29::print_byte_at:41::print_char_at:52 [ main::i#2 main::at#2 main::j#2 main::at#3 print_sbyte_at::b#6 print_byte_at::at#0 ] main:3::print_sbyte_at:10::print_byte_at:41::print_char_at:56 [ main::k#2 main::at#4 ] main:3::print_sbyte_at:18::print_byte_at:41::print_char_at:56 [ main::i#2 main::at#2 ] main:3::print_sbyte_at:29::print_byte_at:41::print_char_at:56 [ main::i#2 main::at#2 main::j#2 main::at#3 ] ) always clobbers reg byte a reg byte y Statement [49] (byte~) print_byte_at::$0 ← (byte)(signed byte) print_sbyte_at::b#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_sbyte_at::b#6 print_byte_at::at#0 print_byte_at::$0 ] ( main:3::print_sbyte_at:10::print_byte_at:41 [ main::k#2 main::at#4 print_sbyte_at::b#6 print_byte_at::at#0 print_byte_at::$0 ] main:3::print_sbyte_at:18::print_byte_at:41 [ main::i#2 main::at#2 print_sbyte_at::b#6 print_byte_at::at#0 print_byte_at::$0 ] main:3::print_sbyte_at:29::print_byte_at:41 [ main::i#2 main::at#2 main::j#2 main::at#3 print_sbyte_at::b#6 print_byte_at::at#0 print_byte_at::$0 ] ) always clobbers reg byte a Statement [51] (byte*) print_char_at::at#2 ← (byte*) print_byte_at::at#0 [ print_sbyte_at::b#6 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] ( main:3::print_sbyte_at:10::print_byte_at:41 [ main::k#2 main::at#4 print_sbyte_at::b#6 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:3::print_sbyte_at:18::print_byte_at:41 [ main::i#2 main::at#2 print_sbyte_at::b#6 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] main:3::print_sbyte_at:29::print_byte_at:41 [ main::i#2 main::at#2 main::j#2 main::at#3 print_sbyte_at::b#6 print_byte_at::at#0 print_char_at::ch#2 print_char_at::at#2 ] ) always clobbers reg byte a -Statement [53] (byte~) print_byte_at::$2 ← (byte)(signed byte) print_sbyte_at::b#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_byte_at::at#0 print_byte_at::$2 ] ( main:3::print_sbyte_at:10::print_byte_at:41 [ main::k#2 main::at#4 print_byte_at::at#0 print_byte_at::$2 ] main:3::print_sbyte_at:18::print_byte_at:41 [ main::i#2 main::at#2 print_byte_at::at#0 print_byte_at::$2 ] main:3::print_sbyte_at:29::print_byte_at:41 [ main::i#2 main::at#2 main::j#2 main::at#3 print_byte_at::at#0 print_byte_at::$2 ] ) always clobbers reg byte a +Statement [53] (byte~) print_byte_at::$2 ← (byte)(signed byte) print_sbyte_at::b#6 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_byte_at::at#0 print_byte_at::$2 ] ( main:3::print_sbyte_at:10::print_byte_at:41 [ main::k#2 main::at#4 print_byte_at::at#0 print_byte_at::$2 ] main:3::print_sbyte_at:18::print_byte_at:41 [ main::i#2 main::at#2 print_byte_at::at#0 print_byte_at::$2 ] main:3::print_sbyte_at:29::print_byte_at:41 [ main::i#2 main::at#2 main::j#2 main::at#3 print_byte_at::at#0 print_byte_at::$2 ] ) always clobbers reg byte a Statement [54] (byte*) print_char_at::at#3 ← (byte*) print_byte_at::at#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 [ print_char_at::at#3 print_byte_at::$2 ] ( main:3::print_sbyte_at:10::print_byte_at:41 [ main::k#2 main::at#4 print_char_at::at#3 print_byte_at::$2 ] main:3::print_sbyte_at:18::print_byte_at:41 [ main::i#2 main::at#2 print_char_at::at#3 print_byte_at::$2 ] main:3::print_sbyte_at:29::print_byte_at:41 [ main::i#2 main::at#2 main::j#2 main::at#3 print_char_at::at#3 print_byte_at::$2 ] ) always clobbers reg byte a Statement asm { ldaap staA1+1 eor#$ff staA2+1 ldxbp sec A1: ldamulf_sqr1,x A2: sbcmulf_sqr2,x stacp } always clobbers reg byte a reg byte x -Statement [66] *(((byte*))(word/dword/signed dword) 55296 + (byte) init_screen::l#2) ← (const byte) init_screen::WHITE#0 [ init_screen::l#2 ] ( main:3::init_screen:6 [ init_screen::l#2 ] ) always clobbers reg byte a +Statement [66] *(((byte*))(word/dword/signed dword) $d800 + (byte) init_screen::l#2) ← (const byte) init_screen::WHITE#0 [ init_screen::l#2 ] ( main:3::init_screen:6 [ init_screen::l#2 ] ) always clobbers reg byte a Statement [70] *((byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (const byte) init_screen::WHITE#0 [ init_screen::COLS#3 init_screen::m#2 ] ( main:3::init_screen:6 [ init_screen::COLS#3 init_screen::m#2 ] ) always clobbers reg byte a reg byte y Statement [71] *((byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (const byte) init_screen::WHITE#0 [ init_screen::COLS#3 init_screen::m#2 ] ( main:3::init_screen:6 [ init_screen::COLS#3 init_screen::m#2 ] ) always clobbers reg byte a reg byte y Statement [72] *((byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 2) ← (const byte) init_screen::WHITE#0 [ init_screen::COLS#3 init_screen::m#2 ] ( main:3::init_screen:6 [ init_screen::COLS#3 init_screen::m#2 ] ) always clobbers reg byte a reg byte y Statement [73] *((byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (const byte) init_screen::WHITE#0 [ init_screen::COLS#3 init_screen::m#2 ] ( main:3::init_screen:6 [ init_screen::COLS#3 init_screen::m#2 ] ) always clobbers reg byte a reg byte y -Statement [74] (byte*) init_screen::COLS#1 ← (byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ init_screen::m#2 init_screen::COLS#1 ] ( main:3::init_screen:6 [ init_screen::m#2 init_screen::COLS#1 ] ) always clobbers reg byte a +Statement [74] (byte*) init_screen::COLS#1 ← (byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ init_screen::m#2 init_screen::COLS#1 ] ( main:3::init_screen:6 [ init_screen::m#2 init_screen::COLS#1 ] ) always clobbers reg byte a Statement [80] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:3::init_screen:6::print_cls:64 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [82] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:3::init_screen:6::print_cls:64 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [82] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:3::init_screen:6::print_cls:64 [ print_cls::sc#1 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ main::k#2 main::k#1 ] : zp ZP_BYTE:2 , reg byte x , Potential registers zp ZP_WORD:3 [ main::at#4 main::at#1 ] : zp ZP_WORD:3 , Potential registers zp ZP_WORD:5 [ main::at_line#2 main::at#2 ] : zp ZP_WORD:5 , @@ -2049,7 +2049,7 @@ main: { jsr init_screen //SEG14 [7] phi from main to main::@1 [phi:main->main::@1] b1_from_main: - //SEG15 [7] phi (byte*) main::at#4 = ((byte*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 4 [phi:main->main::@1#0] -- pbuz1=pbuc1 + //SEG15 [7] phi (byte*) main::at#4 = ((byte*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 4 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400+4 sta at lda #>$400+4 @@ -2099,7 +2099,7 @@ main: { //SEG32 [14] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@8->main::@2#0] -- vbuz1=vbuc1 lda #0 sta i - //SEG33 [14] phi (byte*) main::at_line#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::@8->main::@2#1] -- pbuz1=pbuc1 + //SEG33 [14] phi (byte*) main::at_line#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::@8->main::@2#1] -- pbuz1=pbuc1 lda #<$400 sta at_line lda #>$400 @@ -2112,7 +2112,7 @@ main: { jmp b2 //SEG37 main::@2 b2: - //SEG38 [15] (byte*) main::at#2 ← (byte*) main::at_line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG38 [15] (byte*) main::at#2 ← (byte*) main::at_line#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda at clc adc #$28 @@ -2315,7 +2315,7 @@ print_byte_at: { jmp b1 //SEG109 print_byte_at::@1 b1: - //SEG110 [53] (byte~) print_byte_at::$2 ← (byte)(signed byte) print_sbyte_at::b#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuyy=vbuz1_band_vbuc1 + //SEG110 [53] (byte~) print_byte_at::$2 ← (byte)(signed byte) print_sbyte_at::b#6 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuyy=vbuz1_band_vbuc1 lda #$f and print_sbyte_at.b tay @@ -2386,19 +2386,19 @@ init_screen: { jmp b1 //SEG133 init_screen::@1 b1: - //SEG134 [66] *(((byte*))(word/dword/signed dword) 55296 + (byte) init_screen::l#2) ← (const byte) init_screen::WHITE#0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG134 [66] *(((byte*))(word/dword/signed dword) $d800 + (byte) init_screen::l#2) ← (const byte) init_screen::WHITE#0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #WHITE sta $d800,x //SEG135 [67] (byte) init_screen::l#1 ← ++ (byte) init_screen::l#2 -- vbuxx=_inc_vbuxx inx - //SEG136 [68] if((byte) init_screen::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto init_screen::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG136 [68] if((byte) init_screen::l#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto init_screen::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b1_from_b1 //SEG137 [69] phi from init_screen::@1 to init_screen::@2 [phi:init_screen::@1->init_screen::@2] b2_from_b1: //SEG138 [69] phi (byte) init_screen::m#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init_screen::@1->init_screen::@2#0] -- vbuxx=vbuc1 ldx #0 - //SEG139 [69] phi (byte*) init_screen::COLS#3 = ((byte*))(word/dword/signed dword) 55296 [phi:init_screen::@1->init_screen::@2#1] -- pbuz1=pbuc1 + //SEG139 [69] phi (byte*) init_screen::COLS#3 = ((byte*))(word/dword/signed dword) $d800 [phi:init_screen::@1->init_screen::@2#1] -- pbuz1=pbuc1 lda #<$d800 sta COLS lda #>$d800 @@ -2427,7 +2427,7 @@ init_screen: { lda #WHITE ldy #3 sta (COLS),y - //SEG148 [74] (byte*) init_screen::COLS#1 ← (byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG148 [74] (byte*) init_screen::COLS#1 ← (byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda COLS clc adc #$28 @@ -2437,7 +2437,7 @@ init_screen: { !: //SEG149 [75] (byte) init_screen::m#1 ← ++ (byte) init_screen::m#2 -- vbuxx=_inc_vbuxx inx - //SEG150 [76] if((byte) init_screen::m#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto init_screen::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG150 [76] if((byte) init_screen::m#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto init_screen::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$19 bne b2_from_b2 jmp breturn @@ -2473,7 +2473,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG161 [82] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG161 [82] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>print_line_cursor+$3e8 bne b1_from_b1 @@ -2602,11 +2602,11 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (signed byte*) ap -(const signed byte*) ap#0 ap = ((signed byte*))(byte/word/signed word/dword/signed dword) 253 +(const signed byte*) ap#0 ap = ((signed byte*))(byte/word/signed word/dword/signed dword) $fd (signed byte*) bp -(const signed byte*) bp#0 bp = ((signed byte*))(byte/word/signed word/dword/signed dword) 254 +(const signed byte*) bp#0 bp = ((signed byte*))(byte/word/signed word/dword/signed dword) $fe (signed byte*) cp -(const signed byte*) cp#0 cp = ((signed byte*))(byte/word/signed word/dword/signed dword) 255 +(const signed byte*) cp#0 cp = ((signed byte*))(byte/word/signed word/dword/signed dword) $ff (signed byte()) fmul8((signed byte) fmul8::a , (signed byte) fmul8::b) (label) fmul8::@return (signed byte) fmul8::a @@ -2661,9 +2661,9 @@ FINAL SYMBOL TABLE (signed byte) main::r (signed byte) main::r#0 reg byte a 202.0 (byte*) mulf_sqr1 -(const byte*) mulf_sqr1#0 mulf_sqr1 = ((byte*))(word/signed word/dword/signed dword) 8192 +(const byte*) mulf_sqr1#0 mulf_sqr1 = ((byte*))(word/signed word/dword/signed dword) $2000 (byte*) mulf_sqr2 -(const byte*) mulf_sqr2#0 mulf_sqr2 = ((byte*))(word/signed word/dword/signed dword) 8704 +(const byte*) mulf_sqr2#0 mulf_sqr2 = ((byte*))(word/signed word/dword/signed dword) $2200 (void()) print_byte_at((byte) print_byte_at::b , (byte*) print_byte_at::at) (byte~) print_byte_at::$0 reg byte a 4.0 (byte~) print_byte_at::$2 reg byte y 2.0 @@ -2694,7 +2694,7 @@ FINAL SYMBOL TABLE (byte[]) print_hextab (const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor -(const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) $400 (void()) print_sbyte_at((signed byte) print_sbyte_at::b , (byte*) print_sbyte_at::at) (label) print_sbyte_at::@1 (label) print_sbyte_at::@2 @@ -2715,7 +2715,7 @@ FINAL SYMBOL TABLE (signed byte) print_sbyte_at::b#6 b zp ZP_BYTE:10 0.6666666666666666 (byte*) print_screen (signed byte[]) vals -(const signed byte[]) vals#0 vals = { -(byte/signed byte/word/signed word/dword/signed dword) 95, -(byte/signed byte/word/signed word/dword/signed dword) 64, -(byte/signed byte/word/signed word/dword/signed dword) 32, -(byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 0, (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/signed byte/word/signed word/dword/signed dword) 95 } +(const signed byte[]) vals#0 vals = { -(byte/signed byte/word/signed word/dword/signed dword) $5f, -(byte/signed byte/word/signed word/dword/signed dword) $40, -(byte/signed byte/word/signed word/dword/signed dword) $20, -(byte/signed byte/word/signed word/dword/signed dword) $10, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $10, (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/signed byte/word/signed word/dword/signed dword) $5f } reg byte x [ main::k#2 main::k#1 ] zp ZP_WORD:2 [ main::at#4 main::at#1 main::at_line#2 main::at#2 init_screen::COLS#3 init_screen::COLS#1 print_cls::sc#2 print_cls::sc#1 ] @@ -2783,7 +2783,7 @@ main: { //SEG13 [63] phi from main to init_screen [phi:main->init_screen] jsr init_screen //SEG14 [7] phi from main to main::@1 [phi:main->main::@1] - //SEG15 [7] phi (byte*) main::at#4 = ((byte*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 4 [phi:main->main::@1#0] -- pbuz1=pbuc1 + //SEG15 [7] phi (byte*) main::at#4 = ((byte*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) 4 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400+4 sta at lda #>$400+4 @@ -2826,7 +2826,7 @@ main: { //SEG32 [14] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@8->main::@2#0] -- vbuz1=vbuc1 lda #0 sta i - //SEG33 [14] phi (byte*) main::at_line#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::@8->main::@2#1] -- pbuz1=pbuc1 + //SEG33 [14] phi (byte*) main::at_line#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::@8->main::@2#1] -- pbuz1=pbuc1 lda #<$400 sta at_line lda #>$400 @@ -2836,7 +2836,7 @@ main: { //SEG36 [14] phi (byte*) main::at_line#2 = (byte*) main::at#2 [phi:main::@5->main::@2#1] -- register_copy //SEG37 main::@2 b2: - //SEG38 [15] (byte*) main::at#2 ← (byte*) main::at_line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG38 [15] (byte*) main::at#2 ← (byte*) main::at_line#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda at clc adc #$28 @@ -3009,7 +3009,7 @@ print_byte_at: { //SEG108 [46] phi (byte) print_char_at::ch#4 = (byte) print_char_at::ch#2 [phi:print_byte_at->print_char_at#1] -- register_copy jsr print_char_at //SEG109 print_byte_at::@1 - //SEG110 [53] (byte~) print_byte_at::$2 ← (byte)(signed byte) print_sbyte_at::b#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuyy=vbuz1_band_vbuc1 + //SEG110 [53] (byte~) print_byte_at::$2 ← (byte)(signed byte) print_sbyte_at::b#6 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuyy=vbuz1_band_vbuc1 lda #$f and print_sbyte_at.b tay @@ -3069,18 +3069,18 @@ init_screen: { //SEG132 [65] phi (byte) init_screen::l#2 = (byte) init_screen::l#1 [phi:init_screen::@1->init_screen::@1#0] -- register_copy //SEG133 init_screen::@1 b1: - //SEG134 [66] *(((byte*))(word/dword/signed dword) 55296 + (byte) init_screen::l#2) ← (const byte) init_screen::WHITE#0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG134 [66] *(((byte*))(word/dword/signed dword) $d800 + (byte) init_screen::l#2) ← (const byte) init_screen::WHITE#0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #WHITE sta $d800,x //SEG135 [67] (byte) init_screen::l#1 ← ++ (byte) init_screen::l#2 -- vbuxx=_inc_vbuxx inx - //SEG136 [68] if((byte) init_screen::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto init_screen::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG136 [68] if((byte) init_screen::l#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto init_screen::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b1 //SEG137 [69] phi from init_screen::@1 to init_screen::@2 [phi:init_screen::@1->init_screen::@2] //SEG138 [69] phi (byte) init_screen::m#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init_screen::@1->init_screen::@2#0] -- vbuxx=vbuc1 ldx #0 - //SEG139 [69] phi (byte*) init_screen::COLS#3 = ((byte*))(word/dword/signed dword) 55296 [phi:init_screen::@1->init_screen::@2#1] -- pbuz1=pbuc1 + //SEG139 [69] phi (byte*) init_screen::COLS#3 = ((byte*))(word/dword/signed dword) $d800 [phi:init_screen::@1->init_screen::@2#1] -- pbuz1=pbuc1 lda #<$d800 sta COLS lda #>$d800 @@ -3103,7 +3103,7 @@ init_screen: { //SEG147 [73] *((byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (const byte) init_screen::WHITE#0 -- pbuz1_derefidx_vbuc1=vbuc2 ldy #3 sta (COLS),y - //SEG148 [74] (byte*) init_screen::COLS#1 ← (byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG148 [74] (byte*) init_screen::COLS#1 ← (byte*) init_screen::COLS#3 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda COLS clc adc #$28 @@ -3113,7 +3113,7 @@ init_screen: { !: //SEG149 [75] (byte) init_screen::m#1 ← ++ (byte) init_screen::m#2 -- vbuxx=_inc_vbuxx inx - //SEG150 [76] if((byte) init_screen::m#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto init_screen::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG150 [76] if((byte) init_screen::m#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto init_screen::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$19 bne b2 //SEG151 init_screen::@return @@ -3143,7 +3143,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG161 [82] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG161 [82] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>print_line_cursor+$3e8 bne b1 diff --git a/src/test/ref/examples/fastmultiply/fastmultiply8.sym b/src/test/ref/examples/fastmultiply/fastmultiply8.sym index 494ca0ac1..c9f8e8f20 100644 --- a/src/test/ref/examples/fastmultiply/fastmultiply8.sym +++ b/src/test/ref/examples/fastmultiply/fastmultiply8.sym @@ -2,11 +2,11 @@ (label) @begin (label) @end (signed byte*) ap -(const signed byte*) ap#0 ap = ((signed byte*))(byte/word/signed word/dword/signed dword) 253 +(const signed byte*) ap#0 ap = ((signed byte*))(byte/word/signed word/dword/signed dword) $fd (signed byte*) bp -(const signed byte*) bp#0 bp = ((signed byte*))(byte/word/signed word/dword/signed dword) 254 +(const signed byte*) bp#0 bp = ((signed byte*))(byte/word/signed word/dword/signed dword) $fe (signed byte*) cp -(const signed byte*) cp#0 cp = ((signed byte*))(byte/word/signed word/dword/signed dword) 255 +(const signed byte*) cp#0 cp = ((signed byte*))(byte/word/signed word/dword/signed dword) $ff (signed byte()) fmul8((signed byte) fmul8::a , (signed byte) fmul8::b) (label) fmul8::@return (signed byte) fmul8::a @@ -61,9 +61,9 @@ (signed byte) main::r (signed byte) main::r#0 reg byte a 202.0 (byte*) mulf_sqr1 -(const byte*) mulf_sqr1#0 mulf_sqr1 = ((byte*))(word/signed word/dword/signed dword) 8192 +(const byte*) mulf_sqr1#0 mulf_sqr1 = ((byte*))(word/signed word/dword/signed dword) $2000 (byte*) mulf_sqr2 -(const byte*) mulf_sqr2#0 mulf_sqr2 = ((byte*))(word/signed word/dword/signed dword) 8704 +(const byte*) mulf_sqr2#0 mulf_sqr2 = ((byte*))(word/signed word/dword/signed dword) $2200 (void()) print_byte_at((byte) print_byte_at::b , (byte*) print_byte_at::at) (byte~) print_byte_at::$0 reg byte a 4.0 (byte~) print_byte_at::$2 reg byte y 2.0 @@ -94,7 +94,7 @@ (byte[]) print_hextab (const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor -(const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) $400 (void()) print_sbyte_at((signed byte) print_sbyte_at::b , (byte*) print_sbyte_at::at) (label) print_sbyte_at::@1 (label) print_sbyte_at::@2 @@ -115,7 +115,7 @@ (signed byte) print_sbyte_at::b#6 b zp ZP_BYTE:10 0.6666666666666666 (byte*) print_screen (signed byte[]) vals -(const signed byte[]) vals#0 vals = { -(byte/signed byte/word/signed word/dword/signed dword) 95, -(byte/signed byte/word/signed word/dword/signed dword) 64, -(byte/signed byte/word/signed word/dword/signed dword) 32, -(byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 0, (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/signed byte/word/signed word/dword/signed dword) 95 } +(const signed byte[]) vals#0 vals = { -(byte/signed byte/word/signed word/dword/signed dword) $5f, -(byte/signed byte/word/signed word/dword/signed dword) $40, -(byte/signed byte/word/signed word/dword/signed dword) $20, -(byte/signed byte/word/signed word/dword/signed dword) $10, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $10, (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/signed byte/word/signed word/dword/signed dword) $5f } reg byte x [ main::k#2 main::k#1 ] zp ZP_WORD:2 [ main::at#4 main::at#1 main::at_line#2 main::at#2 init_screen::COLS#3 init_screen::COLS#1 print_cls::sc#2 print_cls::sc#1 ] diff --git a/src/test/ref/examples/helloworld/helloworld.cfg b/src/test/ref/examples/helloworld/helloworld.cfg index 1846acd16..755b1b697 100644 --- a/src/test/ref/examples/helloworld/helloworld.cfg +++ b/src/test/ref/examples/helloworld/helloworld.cfg @@ -22,8 +22,8 @@ print_ln: scope:[print_ln] from main::@1 [9] phi() to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 - [10] (byte*) print_line_cursor#6 ← phi( print_ln/((byte*))(word/signed word/dword/signed dword) 1024 print_ln::@1/(byte*) print_line_cursor#1 ) - [11] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [10] (byte*) print_line_cursor#6 ← phi( print_ln/((byte*))(word/signed word/dword/signed dword) $400 print_ln::@1/(byte*) print_line_cursor#1 ) + [11] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) $28 [12] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#10) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 @@ -33,7 +33,7 @@ print_str: scope:[print_str] from main [14] phi() to:print_str::@1 print_str::@1: scope:[print_str] from print_str print_str::@2 - [15] (byte*) print_char_cursor#10 ← phi( print_str/((byte*))(word/signed word/dword/signed dword) 1024 print_str::@2/(byte*) print_char_cursor#1 ) + [15] (byte*) print_char_cursor#10 ← phi( print_str/((byte*))(word/signed word/dword/signed dword) $400 print_str::@2/(byte*) print_char_cursor#1 ) [15] (byte*) print_str::str#2 ← phi( print_str/(const string) main::str print_str::@2/(byte*) print_str::str#0 ) [16] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2 to:print_str::@return diff --git a/src/test/ref/examples/helloworld/helloworld.log b/src/test/ref/examples/helloworld/helloworld.log index e37f10683..f131d83a9 100644 --- a/src/test/ref/examples/helloworld/helloworld.log +++ b/src/test/ref/examples/helloworld/helloworld.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 to:@12 @@ -34,7 +34,7 @@ print_ln: scope:[print_ln] from main::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 (byte*) print_char_cursor#11 ← phi( print_ln/(byte*) print_char_cursor#18 print_ln::@1/(byte*) print_char_cursor#11 ) (byte*) print_line_cursor#6 ← phi( print_ln/(byte*) print_line_cursor#12 print_ln::@1/(byte*) print_line_cursor#1 ) - (byte*~) print_ln::$0 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) print_ln::$0 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) print_line_cursor#1 ← (byte*~) print_ln::$0 (bool~) print_ln::$1 ← (byte*) print_line_cursor#1 < (byte*) print_char_cursor#11 if((bool~) print_ln::$1) goto print_ln::@1 @@ -198,7 +198,7 @@ Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) print_str::$0 [6] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2 Simple Condition (bool~) print_ln::$1 [19] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#10) goto print_ln::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) print_char_cursor#0 = ((byte*))1024 +Constant (const byte*) print_char_cursor#0 = ((byte*))$400 Constant (const byte[]) print_hextab#0 = $0 Constant (const byte*) print_str::str#1 = main::str Successful SSA optimization Pass2ConstantIdentification @@ -211,7 +211,7 @@ Culled Empty Block (label) @21 Successful SSA optimization Pass2CullEmptyBlocks Inlining constant with var siblings (const byte*) print_str::str#1 Inlining constant with var siblings (const byte*) print_char_cursor#0 -Constant inlined print_char_cursor#0 = ((byte*))(word/signed word/dword/signed dword) 1024 +Constant inlined print_char_cursor#0 = ((byte*))(word/signed word/dword/signed dword) $400 Constant inlined print_str::str#1 = (const string) main::str Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1) @@ -265,8 +265,8 @@ print_ln: scope:[print_ln] from main::@1 [9] phi() to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 - [10] (byte*) print_line_cursor#6 ← phi( print_ln/((byte*))(word/signed word/dword/signed dword) 1024 print_ln::@1/(byte*) print_line_cursor#1 ) - [11] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [10] (byte*) print_line_cursor#6 ← phi( print_ln/((byte*))(word/signed word/dword/signed dword) $400 print_ln::@1/(byte*) print_line_cursor#1 ) + [11] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) $28 [12] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#10) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 @@ -276,7 +276,7 @@ print_str: scope:[print_str] from main [14] phi() to:print_str::@1 print_str::@1: scope:[print_str] from print_str print_str::@2 - [15] (byte*) print_char_cursor#10 ← phi( print_str/((byte*))(word/signed word/dword/signed dword) 1024 print_str::@2/(byte*) print_char_cursor#1 ) + [15] (byte*) print_char_cursor#10 ← phi( print_str/((byte*))(word/signed word/dword/signed dword) $400 print_str::@2/(byte*) print_char_cursor#1 ) [15] (byte*) print_str::str#2 ← phi( print_str/(const string) main::str print_str::@2/(byte*) print_str::str#0 ) [16] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2 to:print_str::@return @@ -370,7 +370,7 @@ main: { print_ln: { //SEG20 [10] phi from print_ln to print_ln::@1 [phi:print_ln->print_ln::@1] b1_from_print_ln: - //SEG21 [10] phi (byte*) print_line_cursor#6 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_ln->print_ln::@1#0] -- pbuz1=pbuc1 + //SEG21 [10] phi (byte*) print_line_cursor#6 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_ln->print_ln::@1#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -382,7 +382,7 @@ print_ln: { jmp b1 //SEG24 print_ln::@1 b1: - //SEG25 [11] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG25 [11] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -412,7 +412,7 @@ print_str: { .label str = 4 //SEG30 [15] phi from print_str to print_str::@1 [phi:print_str->print_str::@1] b1_from_print_str: - //SEG31 [15] phi (byte*) print_char_cursor#10 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_str->print_str::@1#0] -- pbuz1=pbuc1 + //SEG31 [15] phi (byte*) print_char_cursor#10 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_str->print_str::@1#0] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -460,7 +460,7 @@ print_str: { } REGISTER UPLIFT POTENTIAL REGISTERS -Statement [11] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#10 ] ( main:2::print_ln:7 [ print_line_cursor#1 print_char_cursor#10 ] ) always clobbers reg byte a +Statement [11] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#1 print_char_cursor#10 ] ( main:2::print_ln:7 [ print_line_cursor#1 print_char_cursor#10 ] ) always clobbers reg byte a Statement [12] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#10) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#10 ] ( main:2::print_ln:7 [ print_line_cursor#1 print_char_cursor#10 ] ) always clobbers reg byte a Statement [16] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2 [ print_char_cursor#10 print_str::str#2 ] ( main:2::print_str:5 [ print_char_cursor#10 print_str::str#2 ] ) always clobbers reg byte a reg byte y Statement [18] *((byte*) print_char_cursor#10) ← *((byte*) print_str::str#2) [ print_char_cursor#10 print_str::str#2 ] ( main:2::print_str:5 [ print_char_cursor#10 print_str::str#2 ] ) always clobbers reg byte a reg byte y @@ -533,7 +533,7 @@ main: { print_ln: { //SEG20 [10] phi from print_ln to print_ln::@1 [phi:print_ln->print_ln::@1] b1_from_print_ln: - //SEG21 [10] phi (byte*) print_line_cursor#6 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_ln->print_ln::@1#0] -- pbuz1=pbuc1 + //SEG21 [10] phi (byte*) print_line_cursor#6 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_ln->print_ln::@1#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -545,7 +545,7 @@ print_ln: { jmp b1 //SEG24 print_ln::@1 b1: - //SEG25 [11] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG25 [11] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -575,7 +575,7 @@ print_str: { .label str = 2 //SEG30 [15] phi from print_str to print_str::@1 [phi:print_str->print_str::@1] b1_from_print_str: - //SEG31 [15] phi (byte*) print_char_cursor#10 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_str->print_str::@1#0] -- pbuz1=pbuc1 + //SEG31 [15] phi (byte*) print_char_cursor#10 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_str->print_str::@1#0] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -730,7 +730,7 @@ main: { // Print a newline print_ln: { //SEG20 [10] phi from print_ln to print_ln::@1 [phi:print_ln->print_ln::@1] - //SEG21 [10] phi (byte*) print_line_cursor#6 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_ln->print_ln::@1#0] -- pbuz1=pbuc1 + //SEG21 [10] phi (byte*) print_line_cursor#6 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_ln->print_ln::@1#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -739,7 +739,7 @@ print_ln: { //SEG23 [10] phi (byte*) print_line_cursor#6 = (byte*) print_line_cursor#1 [phi:print_ln::@1->print_ln::@1#0] -- register_copy //SEG24 print_ln::@1 b1: - //SEG25 [11] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG25 [11] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -766,7 +766,7 @@ print_ln: { print_str: { .label str = 2 //SEG30 [15] phi from print_str to print_str::@1 [phi:print_str->print_str::@1] - //SEG31 [15] phi (byte*) print_char_cursor#10 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_str->print_str::@1#0] -- pbuz1=pbuc1 + //SEG31 [15] phi (byte*) print_char_cursor#10 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_str->print_str::@1#0] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 diff --git a/src/test/ref/examples/irq/irq-hyperscreen.cfg b/src/test/ref/examples/irq/irq-hyperscreen.cfg index 5791b29f6..b0770b26e 100644 --- a/src/test/ref/examples/irq/irq-hyperscreen.cfg +++ b/src/test/ref/examples/irq/irq-hyperscreen.cfg @@ -11,8 +11,8 @@ main: scope:[main] from @7 [4] *((const byte*) GHOST_BYTE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 asm { sei } [6] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [7] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 - [8] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) 250 + [7] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f + [8] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) $fa [9] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [10] *((const void()**) KERNEL_IRQ#0) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() asm { cli } @@ -24,7 +24,7 @@ irq_bottom_2: scope:[irq_bottom_2] from [13] *((const byte*) BORDERCOL#0) ← (const byte) WHITE#0 [14] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (const byte) VIC_RSEL#0 [15] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 - [16] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) 250 + [16] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) $fa [17] *((const void()**) KERNEL_IRQ#0) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() [18] *((const byte*) BORDERCOL#0) ← (const byte) RED#0 to:irq_bottom_2::@return @@ -33,9 +33,9 @@ irq_bottom_2::@return: scope:[irq_bottom_2] from irq_bottom_2 to:@return irq_bottom_1: scope:[irq_bottom_1] from [20] *((const byte*) BORDERCOL#0) ← (const byte) WHITE#0 - [21] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/word/signed word/dword/signed dword) 255^(const byte) VIC_RSEL#0 + [21] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/word/signed word/dword/signed dword) $ff^(const byte) VIC_RSEL#0 [22] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 - [23] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) 253 + [23] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) $fd [24] *((const void()**) KERNEL_IRQ#0) ← &interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() [25] *((const byte*) BORDERCOL#0) ← (const byte) RED#0 to:irq_bottom_1::@return diff --git a/src/test/ref/examples/irq/irq-hyperscreen.log b/src/test/ref/examples/irq/irq-hyperscreen.log index 50a6b980a..491f74276 100644 --- a/src/test/ref/examples/irq/irq-hyperscreen.log +++ b/src/test/ref/examples/irq/irq-hyperscreen.log @@ -7,66 +7,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -77,22 +77,22 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@4 @4: scope:[] from @begin - (byte*) GHOST_BYTE#0 ← ((byte*)) (word/signed word/dword/signed dword) 16383 + (byte*) GHOST_BYTE#0 ← ((byte*)) (word/signed word/dword/signed dword) $3fff to:@7 main: scope:[main] from @7 *((byte*) GHOST_BYTE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 asm { sei } *((byte*) CIA1_INTERRUPT#0) ← (byte) CIA_INTERRUPT_CLEAR#0 - *((byte*) VIC_CONTROL#0) ← *((byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 - *((byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) 250 + *((byte*) VIC_CONTROL#0) ← *((byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f + *((byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) $fa *((byte*) IRQ_ENABLE#0) ← (byte) IRQ_RASTER#0 (void()*~) main::$0 ← & interrupt(KERNEL_MIN)(void()) irq_bottom_1() *((void()**) KERNEL_IRQ#0) ← (void()*~) main::$0 @@ -103,10 +103,10 @@ main::@return: scope:[main] from main to:@return irq_bottom_1: scope:[irq_bottom_1] from *((byte*) BORDERCOL#0) ← (byte) WHITE#0 - (byte/word/dword~) irq_bottom_1::$0 ← (byte/word/signed word/dword/signed dword) 255 ^ (byte) VIC_RSEL#0 + (byte/word/dword~) irq_bottom_1::$0 ← (byte/word/signed word/dword/signed dword) $ff ^ (byte) VIC_RSEL#0 *((byte*) VIC_CONTROL#0) ← *((byte*) VIC_CONTROL#0) & (byte/word/dword~) irq_bottom_1::$0 *((byte*) IRQ_STATUS#0) ← (byte) IRQ_RASTER#0 - *((byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) 253 + *((byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) $fd (void()*~) irq_bottom_1::$1 ← & interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() *((void()**) KERNEL_IRQ#0) ← (void()*~) irq_bottom_1::$1 *((byte*) BORDERCOL#0) ← (byte) RED#0 @@ -118,7 +118,7 @@ irq_bottom_2: scope:[irq_bottom_2] from *((byte*) BORDERCOL#0) ← (byte) WHITE#0 *((byte*) VIC_CONTROL#0) ← *((byte*) VIC_CONTROL#0) | (byte) VIC_RSEL#0 *((byte*) IRQ_STATUS#0) ← (byte) IRQ_RASTER#0 - *((byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) 250 + *((byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) $fa (void()*~) irq_bottom_2::$0 ← & interrupt(KERNEL_MIN)(void()) irq_bottom_1() *((void()**) KERNEL_IRQ#0) ← (void()*~) irq_bottom_2::$0 *((byte*) BORDERCOL#0) ← (byte) RED#0 @@ -315,66 +315,66 @@ Successful SSA optimization Pass2CullEmptyBlocks Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -385,24 +385,24 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 -Constant (const byte*) GHOST_BYTE#0 = ((byte*))16383 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f +Constant (const byte*) GHOST_BYTE#0 = ((byte*))$3fff Constant (const void()*) main::$0 = &irq_bottom_1 Constant (const void()*) irq_bottom_1::$1 = &irq_bottom_2 Constant (const void()*) irq_bottom_2::$0 = &irq_bottom_1 Successful SSA optimization Pass2ConstantIdentification -Constant (const byte/word/dword) irq_bottom_1::$0 = 255^VIC_RSEL#0 +Constant (const byte/word/dword) irq_bottom_1::$0 = $ff^VIC_RSEL#0 Successful SSA optimization Pass2ConstantIdentification Successful SSA optimization PassNEliminateUnusedVars Culled Empty Block (label) @4 Successful SSA optimization Pass2CullEmptyBlocks Constant inlined irq_bottom_2::$0 = &interrupt(KERNEL_MIN)(void()) irq_bottom_1() -Constant inlined irq_bottom_1::$0 = (byte/word/signed word/dword/signed dword) 255^(const byte) VIC_RSEL#0 +Constant inlined irq_bottom_1::$0 = (byte/word/signed word/dword/signed dword) $ff^(const byte) VIC_RSEL#0 Constant inlined main::$0 = &interrupt(KERNEL_MIN)(void()) irq_bottom_1() Constant inlined irq_bottom_1::$1 = &interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() Successful SSA optimization Pass2ConstantInlining @@ -432,8 +432,8 @@ main: scope:[main] from @7 [4] *((const byte*) GHOST_BYTE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 asm { sei } [6] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [7] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 - [8] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) 250 + [7] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f + [8] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) $fa [9] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [10] *((const void()**) KERNEL_IRQ#0) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() asm { cli } @@ -445,7 +445,7 @@ irq_bottom_2: scope:[irq_bottom_2] from [13] *((const byte*) BORDERCOL#0) ← (const byte) WHITE#0 [14] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (const byte) VIC_RSEL#0 [15] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 - [16] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) 250 + [16] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) $fa [17] *((const void()**) KERNEL_IRQ#0) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() [18] *((const byte*) BORDERCOL#0) ← (const byte) RED#0 to:irq_bottom_2::@return @@ -454,9 +454,9 @@ irq_bottom_2::@return: scope:[irq_bottom_2] from irq_bottom_2 to:@return irq_bottom_1: scope:[irq_bottom_1] from [20] *((const byte*) BORDERCOL#0) ← (const byte) WHITE#0 - [21] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/word/signed word/dword/signed dword) 255^(const byte) VIC_RSEL#0 + [21] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/word/signed word/dword/signed dword) $ff^(const byte) VIC_RSEL#0 [22] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 - [23] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) 253 + [23] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) $fd [24] *((const void()**) KERNEL_IRQ#0) ← &interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() [25] *((const byte*) BORDERCOL#0) ← (const byte) RED#0 to:irq_bottom_1::@return @@ -605,12 +605,12 @@ main: { // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG13 [7] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + //SEG13 [7] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set raster line to $fa lda VIC_CONTROL and #$7f sta VIC_CONTROL - //SEG14 [8] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) 250 -- _deref_pbuc1=vbuc2 + //SEG14 [8] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) $fa -- _deref_pbuc1=vbuc2 lda #$fa sta RASTER //SEG15 [9] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 @@ -647,7 +647,7 @@ irq_bottom_2: { // Acknowledge the IRQ lda #IRQ_RASTER sta IRQ_STATUS - //SEG25 [16] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) 250 -- _deref_pbuc1=vbuc2 + //SEG25 [16] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) $fa -- _deref_pbuc1=vbuc2 // Trigger IRQ 1 at line $fa lda #$fa sta RASTER @@ -672,7 +672,7 @@ irq_bottom_1: { //SEG32 [20] *((const byte*) BORDERCOL#0) ← (const byte) WHITE#0 -- _deref_pbuc1=vbuc2 lda #WHITE sta BORDERCOL - //SEG33 [21] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/word/signed word/dword/signed dword) 255^(const byte) VIC_RSEL#0 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + //SEG33 [21] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/word/signed word/dword/signed dword) $ff^(const byte) VIC_RSEL#0 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set screen height to 24 lines - this is done after the border should have started drawing - so it wont start lda VIC_CONTROL and #$ff^VIC_RSEL @@ -681,7 +681,7 @@ irq_bottom_1: { // Acknowledge the IRQ lda #IRQ_RASTER sta IRQ_STATUS - //SEG35 [23] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) 253 -- _deref_pbuc1=vbuc2 + //SEG35 [23] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) $fd -- _deref_pbuc1=vbuc2 // Trigger IRQ 2 at line $fd lda #$fd sta RASTER @@ -703,20 +703,20 @@ irq_bottom_1: { REGISTER UPLIFT POTENTIAL REGISTERS Statement [4] *((const byte*) GHOST_BYTE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [6] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [7] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [8] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) 250 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [7] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [8] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) $fa [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [9] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [10] *((const void()**) KERNEL_IRQ#0) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [13] *((const byte*) BORDERCOL#0) ← (const byte) WHITE#0 [ ] ( [ ] ) always clobbers reg byte a Statement [14] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (const byte) VIC_RSEL#0 [ ] ( [ ] ) always clobbers reg byte a Statement [15] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a -Statement [16] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) 250 [ ] ( [ ] ) always clobbers reg byte a +Statement [16] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) $fa [ ] ( [ ] ) always clobbers reg byte a Statement [17] *((const void()**) KERNEL_IRQ#0) ← &interrupt(KERNEL_MIN)(void()) irq_bottom_1() [ ] ( [ ] ) always clobbers reg byte a Statement [18] *((const byte*) BORDERCOL#0) ← (const byte) RED#0 [ ] ( [ ] ) always clobbers reg byte a Statement [20] *((const byte*) BORDERCOL#0) ← (const byte) WHITE#0 [ ] ( [ ] ) always clobbers reg byte a -Statement [21] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/word/signed word/dword/signed dword) 255^(const byte) VIC_RSEL#0 [ ] ( [ ] ) always clobbers reg byte a +Statement [21] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/word/signed word/dword/signed dword) $ff^(const byte) VIC_RSEL#0 [ ] ( [ ] ) always clobbers reg byte a Statement [22] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a -Statement [23] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) 253 [ ] ( [ ] ) always clobbers reg byte a +Statement [23] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) $fd [ ] ( [ ] ) always clobbers reg byte a Statement [24] *((const void()**) KERNEL_IRQ#0) ← &interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() [ ] ( [ ] ) always clobbers reg byte a Statement [25] *((const byte*) BORDERCOL#0) ← (const byte) RED#0 [ ] ( [ ] ) always clobbers reg byte a @@ -783,12 +783,12 @@ main: { // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG13 [7] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + //SEG13 [7] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set raster line to $fa lda VIC_CONTROL and #$7f sta VIC_CONTROL - //SEG14 [8] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) 250 -- _deref_pbuc1=vbuc2 + //SEG14 [8] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) $fa -- _deref_pbuc1=vbuc2 lda #$fa sta RASTER //SEG15 [9] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 @@ -825,7 +825,7 @@ irq_bottom_2: { // Acknowledge the IRQ lda #IRQ_RASTER sta IRQ_STATUS - //SEG25 [16] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) 250 -- _deref_pbuc1=vbuc2 + //SEG25 [16] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) $fa -- _deref_pbuc1=vbuc2 // Trigger IRQ 1 at line $fa lda #$fa sta RASTER @@ -850,7 +850,7 @@ irq_bottom_1: { //SEG32 [20] *((const byte*) BORDERCOL#0) ← (const byte) WHITE#0 -- _deref_pbuc1=vbuc2 lda #WHITE sta BORDERCOL - //SEG33 [21] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/word/signed word/dword/signed dword) 255^(const byte) VIC_RSEL#0 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + //SEG33 [21] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/word/signed word/dword/signed dword) $ff^(const byte) VIC_RSEL#0 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set screen height to 24 lines - this is done after the border should have started drawing - so it wont start lda VIC_CONTROL and #$ff^VIC_RSEL @@ -859,7 +859,7 @@ irq_bottom_1: { // Acknowledge the IRQ lda #IRQ_RASTER sta IRQ_STATUS - //SEG35 [23] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) 253 -- _deref_pbuc1=vbuc2 + //SEG35 [23] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) $fd -- _deref_pbuc1=vbuc2 // Trigger IRQ 2 at line $fd lda #$fd sta RASTER @@ -912,11 +912,11 @@ FINAL SYMBOL TABLE (byte) BLACK (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN (byte*) CIA1_INTERRUPT -(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) 56333 +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) $dc0d (byte*) CIA1_PORT_A (byte*) CIA1_PORT_A_DDR (byte*) CIA1_PORT_B @@ -927,7 +927,7 @@ FINAL SYMBOL TABLE (byte*) CIA2_PORT_B (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR -(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) 127 +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) $7f (byte*) COLS (byte) CYAN (byte*) D011 @@ -935,21 +935,21 @@ FINAL SYMBOL TABLE (byte*) D018 (byte) DARK_GREY (byte*) GHOST_BYTE -(const byte*) GHOST_BYTE#0 GHOST_BYTE = ((byte*))(word/signed word/dword/signed dword) 16383 +(const byte*) GHOST_BYTE#0 GHOST_BYTE = ((byte*))(word/signed word/dword/signed dword) $3fff (byte) GREEN (byte) GREY (void()**) HARDWARE_IRQ (byte) IRQ_COLLISION_BG (byte) IRQ_COLLISION_SPRITE (byte*) IRQ_ENABLE -(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) 53274 +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) $d01a (byte) IRQ_LIGHTPEN (byte) IRQ_RASTER (const byte) IRQ_RASTER#0 IRQ_RASTER = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) IRQ_STATUS -(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) 53273 +(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) $d019 (void()**) KERNEL_IRQ -(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) 788 +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) $314 (byte*) LIGHTPEN_X (byte*) LIGHTPEN_Y (byte) LIGHT_BLUE @@ -967,7 +967,7 @@ FINAL SYMBOL TABLE (byte) PROCPORT_RAM_IO (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (const byte) RED#0 RED = (byte/signed byte/word/signed word/dword/signed dword) 2 (byte*) SPRITES_COLS @@ -984,7 +984,7 @@ FINAL SYMBOL TABLE (word) SPRITE_PTRS (byte) VIC_BMM (byte*) VIC_CONTROL -(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) 53265 +(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) $d011 (byte*) VIC_CONTROL2 (byte) VIC_CSEL (byte) VIC_DEN @@ -1052,12 +1052,12 @@ main: { // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG13 [7] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + //SEG13 [7] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set raster line to $fa lda VIC_CONTROL and #$7f sta VIC_CONTROL - //SEG14 [8] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) 250 -- _deref_pbuc1=vbuc2 + //SEG14 [8] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) $fa -- _deref_pbuc1=vbuc2 lda #$fa sta RASTER //SEG15 [9] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 @@ -1092,7 +1092,7 @@ irq_bottom_2: { // Acknowledge the IRQ lda #IRQ_RASTER sta IRQ_STATUS - //SEG25 [16] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) 250 -- _deref_pbuc1=vbuc2 + //SEG25 [16] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) $fa -- _deref_pbuc1=vbuc2 // Trigger IRQ 1 at line $fa lda #$fa sta RASTER @@ -1115,7 +1115,7 @@ irq_bottom_1: { //SEG32 [20] *((const byte*) BORDERCOL#0) ← (const byte) WHITE#0 -- _deref_pbuc1=vbuc2 lda #WHITE sta BORDERCOL - //SEG33 [21] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/word/signed word/dword/signed dword) 255^(const byte) VIC_RSEL#0 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + //SEG33 [21] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/word/signed word/dword/signed dword) $ff^(const byte) VIC_RSEL#0 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set screen height to 24 lines - this is done after the border should have started drawing - so it wont start lda VIC_CONTROL and #$ff^VIC_RSEL @@ -1124,7 +1124,7 @@ irq_bottom_1: { // Acknowledge the IRQ lda #IRQ_RASTER sta IRQ_STATUS - //SEG35 [23] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) 253 -- _deref_pbuc1=vbuc2 + //SEG35 [23] *((const byte*) RASTER#0) ← (byte/word/signed word/dword/signed dword) $fd -- _deref_pbuc1=vbuc2 // Trigger IRQ 2 at line $fd lda #$fd sta RASTER diff --git a/src/test/ref/examples/irq/irq-hyperscreen.sym b/src/test/ref/examples/irq/irq-hyperscreen.sym index 36f27e786..f56311f3b 100644 --- a/src/test/ref/examples/irq/irq-hyperscreen.sym +++ b/src/test/ref/examples/irq/irq-hyperscreen.sym @@ -9,11 +9,11 @@ (byte) BLACK (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN (byte*) CIA1_INTERRUPT -(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) 56333 +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) $dc0d (byte*) CIA1_PORT_A (byte*) CIA1_PORT_A_DDR (byte*) CIA1_PORT_B @@ -24,7 +24,7 @@ (byte*) CIA2_PORT_B (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR -(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) 127 +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) $7f (byte*) COLS (byte) CYAN (byte*) D011 @@ -32,21 +32,21 @@ (byte*) D018 (byte) DARK_GREY (byte*) GHOST_BYTE -(const byte*) GHOST_BYTE#0 GHOST_BYTE = ((byte*))(word/signed word/dword/signed dword) 16383 +(const byte*) GHOST_BYTE#0 GHOST_BYTE = ((byte*))(word/signed word/dword/signed dword) $3fff (byte) GREEN (byte) GREY (void()**) HARDWARE_IRQ (byte) IRQ_COLLISION_BG (byte) IRQ_COLLISION_SPRITE (byte*) IRQ_ENABLE -(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) 53274 +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) $d01a (byte) IRQ_LIGHTPEN (byte) IRQ_RASTER (const byte) IRQ_RASTER#0 IRQ_RASTER = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) IRQ_STATUS -(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) 53273 +(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) $d019 (void()**) KERNEL_IRQ -(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) 788 +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) $314 (byte*) LIGHTPEN_X (byte*) LIGHTPEN_Y (byte) LIGHT_BLUE @@ -64,7 +64,7 @@ (byte) PROCPORT_RAM_IO (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (const byte) RED#0 RED = (byte/signed byte/word/signed word/dword/signed dword) 2 (byte*) SPRITES_COLS @@ -81,7 +81,7 @@ (word) SPRITE_PTRS (byte) VIC_BMM (byte*) VIC_CONTROL -(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) 53265 +(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) $d011 (byte*) VIC_CONTROL2 (byte) VIC_CSEL (byte) VIC_DEN diff --git a/src/test/ref/examples/multiplexer/simple-multiplexer.cfg b/src/test/ref/examples/multiplexer/simple-multiplexer.cfg index 89081e903..844624172 100644 --- a/src/test/ref/examples/multiplexer/simple-multiplexer.cfg +++ b/src/test/ref/examples/multiplexer/simple-multiplexer.cfg @@ -38,7 +38,7 @@ loop::@1: scope:[loop] from loop loop::@27 [12] (byte) loop::sin_idx#6 ← phi( loop/(byte/signed byte/word/signed word/dword/signed dword) 0 loop::@27/(byte) loop::sin_idx#1 ) to:loop::@4 loop::@4: scope:[loop] from loop::@1 loop::@4 - [13] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto loop::@4 + [13] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto loop::@4 to:loop::@6 loop::@6: scope:[loop] from loop::@4 [14] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) @@ -95,7 +95,7 @@ plexShowSprite: scope:[plexShowSprite] from loop::@14 [38] *((const byte*) SPRITES_YPOS#0 + (byte) plexShowSprite::plex_sprite_idx2#0) ← (byte) plexShowSprite::plexFreeAdd1_ypos#0 to:plexShowSprite::plexFreeAdd1 plexShowSprite::plexFreeAdd1: scope:[plexShowSprite] from plexShowSprite - [39] (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$0#0 ← (byte) plexShowSprite::plexFreeAdd1_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [39] (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$0#0 ← (byte) plexShowSprite::plexFreeAdd1_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [40] *((const byte[8]) PLEX_FREE_YPOS#0 + (byte) plex_free_next#17) ← (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$0#0 [41] (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$1#0 ← (byte) plex_free_next#17 + (byte/signed byte/word/signed word/dword/signed dword) 1 [42] (byte) plex_free_next#13 ← (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$1#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 @@ -109,7 +109,7 @@ plexShowSprite::@7: scope:[plexShowSprite] from plexShowSprite::plexFreeAdd1 [48] if((byte~) plexShowSprite::$4!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto plexShowSprite::@1 to:plexShowSprite::@4 plexShowSprite::@4: scope:[plexShowSprite] from plexShowSprite::@7 - [49] (byte/word/dword~) plexShowSprite::$6 ← (byte/word/signed word/dword/signed dword) 255 ^ (byte) plex_sprite_msb#44 + [49] (byte/word/dword~) plexShowSprite::$6 ← (byte/word/signed word/dword/signed dword) $ff ^ (byte) plex_sprite_msb#44 [50] *((const byte*) SPRITES_XMSB#0) ← *((const byte*) SPRITES_XMSB#0) & (byte/word/dword~) plexShowSprite::$6 to:plexShowSprite::@2 plexShowSprite::@2: scope:[plexShowSprite] from plexShowSprite::@1 plexShowSprite::@4 @@ -145,7 +145,7 @@ plexSort::@3: scope:[plexSort] from plexSort::@11 plexSort::@8 [66] (byte) plexSort::s#3 ← phi( plexSort::@8/(byte) plexSort::s#1 plexSort::@11/(byte~) plexSort::s#6 ) [67] *((const byte[PLEX_COUNT#0]) PLEX_SORTED_IDX#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) plexSort::s#3) ← *((const byte[PLEX_COUNT#0]) PLEX_SORTED_IDX#0 + (byte) plexSort::s#3) [68] (byte) plexSort::s#1 ← -- (byte) plexSort::s#3 - [69] if((byte) plexSort::s#1!=(byte/word/signed word/dword/signed dword) 255) goto plexSort::@8 + [69] if((byte) plexSort::s#1!=(byte/word/signed word/dword/signed dword) $ff) goto plexSort::@8 to:plexSort::@5 plexSort::@5: scope:[plexSort] from plexSort::@3 plexSort::@8 [70] (byte) plexSort::s#2 ← ++ (byte) plexSort::s#1 @@ -175,9 +175,9 @@ init: scope:[init] from main [82] call plexInit to:init::@1 init::@1: scope:[init] from init init::@1 - [83] (word) init::xp#2 ← phi( init::@1/(word) init::xp#1 init/(byte/signed byte/word/signed word/dword/signed dword) 32 ) + [83] (word) init::xp#2 ← phi( init::@1/(word) init::xp#1 init/(byte/signed byte/word/signed word/dword/signed dword) $20 ) [83] (byte) init::sx#2 ← phi( init::@1/(byte) init::sx#1 init/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [84] *((const byte[PLEX_COUNT#0]) PLEX_PTR#0 + (byte) init::sx#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 + [84] *((const byte[PLEX_COUNT#0]) PLEX_PTR#0 + (byte) init::sx#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 [85] (byte~) init::$6 ← (byte) init::sx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [86] *((const word[PLEX_COUNT#0]) PLEX_XPOS#0 + (byte~) init::$6) ← (word) init::xp#2 [87] (word) init::xp#1 ← (word) init::xp#2 + (byte/signed byte/word/signed word/dword/signed dword) 9 @@ -185,7 +185,7 @@ init::@1: scope:[init] from init init::@1 [89] if((byte) init::sx#1!=(const byte) PLEX_COUNT#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto init::@1 to:init::@3 init::@3: scope:[init] from init::@1 - [90] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 + [90] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff to:init::@2 init::@2: scope:[init] from init::@2 init::@3 [91] (byte) init::ss#2 ← phi( init::@2/(byte) init::ss#1 init::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) diff --git a/src/test/ref/examples/multiplexer/simple-multiplexer.log b/src/test/ref/examples/multiplexer/simple-multiplexer.log index 20535719d..e3a444dfe 100644 --- a/src/test/ref/examples/multiplexer/simple-multiplexer.log +++ b/src/test/ref/examples/multiplexer/simple-multiplexer.log @@ -9,66 +9,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -79,19 +79,19 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@4 @4: scope:[] from @begin - (byte) PLEX_COUNT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 + (byte) PLEX_COUNT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 (word[PLEX_COUNT#0]) PLEX_XPOS#0 ← { fill( PLEX_COUNT#0, 0) } (byte[PLEX_COUNT#0]) PLEX_YPOS#0 ← { fill( PLEX_COUNT#0, 0) } (byte[PLEX_COUNT#0]) PLEX_PTR#0 ← { fill( PLEX_COUNT#0, 0) } - (word/signed word/dword/signed dword~) $0 ← (word/signed word/dword/signed dword) 1024 + (word/signed word/dword/signed dword) 1016 + (word/signed word/dword/signed dword~) $0 ← (word/signed word/dword/signed dword) $400 + (word/signed word/dword/signed dword) $3f8 (byte*) PLEX_SCREEN_PTR#0 ← ((byte*)) (word/signed word/dword/signed dword~) $0 (byte[PLEX_COUNT#0]) PLEX_SORTED_IDX#0 ← { fill( PLEX_COUNT#0, 0) } (byte) plex_show_idx#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -104,7 +104,7 @@ plexInit: scope:[plexInit] from init to:plexInit::plexSetScreen1 plexInit::plexSetScreen1: scope:[plexInit] from plexInit (byte*) plexInit::plexSetScreen1_screen#1 ← phi( plexInit/(byte*) plexInit::plexSetScreen1_screen#0 ) - (byte*) plexInit::plexSetScreen1_$0#0 ← (byte*) plexInit::plexSetScreen1_screen#1 + (word/signed word/dword/signed dword) 1016 + (byte*) plexInit::plexSetScreen1_$0#0 ← (byte*) plexInit::plexSetScreen1_screen#1 + (word/signed word/dword/signed dword) $3f8 (byte*) PLEX_SCREEN_PTR#1 ← (byte*) plexInit::plexSetScreen1_$0#0 to:plexInit::@3 plexInit::@3: scope:[plexInit] from plexInit::plexSetScreen1 @@ -158,7 +158,7 @@ plexSort::@3: scope:[plexSort] from plexSort::@3 plexSort::@4 (byte/signed word/word/dword/signed dword~) plexSort::$4 ← (byte) plexSort::s#3 + (byte/signed byte/word/signed word/dword/signed dword) 1 *((byte[PLEX_COUNT#0]) PLEX_SORTED_IDX#0 + (byte/signed word/word/dword/signed dword~) plexSort::$4) ← *((byte[PLEX_COUNT#0]) PLEX_SORTED_IDX#0 + (byte) plexSort::s#3) (byte) plexSort::s#1 ← -- (byte) plexSort::s#3 - (bool~) plexSort::$5 ← (byte) plexSort::s#1 != (byte/word/signed word/dword/signed dword) 255 + (bool~) plexSort::$5 ← (byte) plexSort::s#1 != (byte/word/signed word/dword/signed dword) $ff (bool~) plexSort::$6 ← (byte) plexSort::nxt_y#1 < *((byte[PLEX_COUNT#0]) PLEX_YPOS#0 + *((byte[PLEX_COUNT#0]) PLEX_SORTED_IDX#0 + (byte) plexSort::s#1)) (bool~) plexSort::$7 ← (bool~) plexSort::$5 && (bool~) plexSort::$6 if((bool~) plexSort::$7) goto plexSort::@3 @@ -228,7 +228,7 @@ plexShowSprite::plexFreeAdd1: scope:[plexShowSprite] from plexShowSprite (byte) plex_show_idx#24 ← phi( plexShowSprite/(byte) plex_show_idx#12 ) (byte) plex_free_next#12 ← phi( plexShowSprite/(byte) plex_free_next#21 ) (byte) plexShowSprite::plexFreeAdd1_ypos#1 ← phi( plexShowSprite/(byte) plexShowSprite::plexFreeAdd1_ypos#0 ) - (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$0#0 ← (byte) plexShowSprite::plexFreeAdd1_ypos#1 + (byte/signed byte/word/signed word/dword/signed dword) 21 + (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$0#0 ← (byte) plexShowSprite::plexFreeAdd1_ypos#1 + (byte/signed byte/word/signed word/dword/signed dword) $15 *((byte[8]) PLEX_FREE_YPOS#0 + (byte) plex_free_next#12) ← (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$0#0 (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$1#0 ← (byte) plex_free_next#12 + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte/word/dword) plexShowSprite::plexFreeAdd1_$2#0 ← (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$1#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 @@ -262,7 +262,7 @@ plexShowSprite::@4: scope:[plexShowSprite] from plexShowSprite::@7 (byte) plex_show_idx#26 ← phi( plexShowSprite::@7/(byte) plex_show_idx#13 ) (byte) plex_sprite_idx#26 ← phi( plexShowSprite::@7/(byte) plex_sprite_idx#13 ) (byte) plex_sprite_msb#14 ← phi( plexShowSprite::@7/(byte) plex_sprite_msb#24 ) - (byte/word/dword~) plexShowSprite::$6 ← (byte/word/signed word/dword/signed dword) 255 ^ (byte) plex_sprite_msb#14 + (byte/word/dword~) plexShowSprite::$6 ← (byte/word/signed word/dword/signed dword) $ff ^ (byte) plex_sprite_msb#14 *((byte*) SPRITES_XMSB#0) ← *((byte*) SPRITES_XMSB#0) & (byte/word/dword~) plexShowSprite::$6 to:plexShowSprite::@2 plexShowSprite::@2: scope:[plexShowSprite] from plexShowSprite::@1 plexShowSprite::@4 @@ -316,9 +316,9 @@ plexShowSprite::@return: scope:[plexShowSprite] from plexShowSprite::@3 plexSho (byte) plex_sprite_idx#39 ← phi( @9/(byte) plex_sprite_idx#41 ) (byte) plex_show_idx#39 ← phi( @9/(byte) plex_show_idx#41 ) (byte*) PLEX_SCREEN_PTR#25 ← phi( @9/(byte*) PLEX_SCREEN_PTR#27 ) - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte*) SPRITE#0 ← ((byte*)) (word/signed word/dword/signed dword) 8192 - (byte*) YSIN#0 ← ((byte*)) (word/signed word/dword/signed dword) 8448 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte*) SPRITE#0 ← ((byte*)) (word/signed word/dword/signed dword) $2000 + (byte*) YSIN#0 ← ((byte*)) (word/signed word/dword/signed dword) $2100 kickasm(location (byte*) YSIN#0) {{ .var min = 50 .var max = 250-21 .var ampl = max-min; @@ -391,7 +391,7 @@ init::@5: scope:[init] from init (byte*) SPRITE#2 ← phi( init/(byte*) SPRITE#3 ) (byte*) PLEX_SCREEN_PTR#12 ← phi( init/(byte*) PLEX_SCREEN_PTR#2 ) (byte*) PLEX_SCREEN_PTR#5 ← (byte*) PLEX_SCREEN_PTR#12 - (word) init::xp#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 + (word) init::xp#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 (byte/signed word/word/dword/signed dword~) init::$3 ← (byte) PLEX_COUNT#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) init::sx#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:init::@1 @@ -400,7 +400,7 @@ init::@1: scope:[init] from init::@1 init::@5 (word) init::xp#2 ← phi( init::@1/(word) init::xp#1 init::@5/(word) init::xp#0 ) (byte) init::sx#2 ← phi( init::@1/(byte) init::sx#1 init::@5/(byte) init::sx#0 ) (byte*) SPRITE#1 ← phi( init::@1/(byte*) SPRITE#1 init::@5/(byte*) SPRITE#2 ) - (byte*~) init::$4 ← (byte*) SPRITE#1 / (byte/signed byte/word/signed word/dword/signed dword) 64 + (byte*~) init::$4 ← (byte*) SPRITE#1 / (byte/signed byte/word/signed word/dword/signed dword) $40 (byte~) init::$5 ← ((byte)) (byte*~) init::$4 *((byte[PLEX_COUNT#0]) PLEX_PTR#0 + (byte) init::sx#2) ← (byte~) init::$5 (byte~) init::$6 ← (byte) init::sx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -412,7 +412,7 @@ init::@1: scope:[init] from init::@1 init::@5 to:init::@3 init::@3: scope:[init] from init::@1 (byte*) PLEX_SCREEN_PTR#24 ← phi( init::@1/(byte*) PLEX_SCREEN_PTR#28 ) - *((byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 + *((byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff (byte) init::ss#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:init::@2 init::@2: scope:[init] from init::@2 init::@3 @@ -464,7 +464,7 @@ loop::@4: scope:[loop] from loop::@2 loop::@5 (byte) plex_show_idx#45 ← phi( loop::@2/(byte) plex_show_idx#47 loop::@5/(byte) plex_show_idx#48 ) (byte*) YSIN#3 ← phi( loop::@2/(byte*) YSIN#4 loop::@5/(byte*) YSIN#5 ) (byte) loop::sin_idx#4 ← phi( loop::@2/(byte) loop::sin_idx#6 loop::@5/(byte) loop::sin_idx#7 ) - (bool~) loop::$0 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 255 + (bool~) loop::$0 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) $ff if((bool~) loop::$0) goto loop::@5 to:loop::@6 loop::@5: scope:[loop] from loop::@4 @@ -1669,7 +1669,7 @@ Simple Condition (bool~) plexShowSprite::$5 [169] if((byte~) plexShowSprite::$4! Simple Condition (bool~) plexShowSprite::$10 [183] if((byte) plex_sprite_msb#25!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto plexShowSprite::@3 Simple Condition (bool~) init::$7 [240] if((byte) init::sx#1!=rangelast(0,init::$3)) goto init::@1 Simple Condition (bool~) init::$8 [248] if((byte) init::ss#1!=rangelast(0,7)) goto init::@2 -Simple Condition (bool~) loop::$0 [259] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto loop::@5 +Simple Condition (bool~) loop::$0 [259] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto loop::@5 Simple Condition (bool~) loop::$2 [271] if((byte) loop::sy#1!=rangelast(0,loop::$1)) goto loop::@7 Simple Condition (bool~) loop::$5 [285] if((byte~) loop::$4!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto loop::@9 Simple Condition (bool~) loop::$8 [301] if(*((byte*) RASTER#0)<(byte) loop::plexFreeNextYpos1_return#0) goto loop::@13 @@ -1680,66 +1680,66 @@ Successful SSA optimization Pass2ConditionalAndOrRewriting Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -1750,14 +1750,14 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 -Constant (const byte) PLEX_COUNT#0 = 32 -Constant (const word/signed word/dword/signed dword) $0 = 1024+1016 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f +Constant (const byte) PLEX_COUNT#0 = $20 +Constant (const word/signed word/dword/signed dword) $0 = $400+$3f8 Constant (const byte) plex_show_idx#0 = 0 Constant (const byte) plex_sprite_idx#0 = 0 Constant (const byte) plex_sprite_msb#0 = 1 @@ -1771,10 +1771,10 @@ Constant (const byte) plex_free_next#0 = 0 Constant (const byte) plex_sprite_msb#4 = 1 Constant (const byte[8]) PLEX_FREE_YPOS#0 = { fill( 8, 0) } Constant (const byte) plex_free_next#29 = 0 -Constant (const byte*) SCREEN#0 = ((byte*))1024 -Constant (const byte*) SPRITE#0 = ((byte*))8192 -Constant (const byte*) YSIN#0 = ((byte*))8448 -Constant (const word) init::xp#0 = 32 +Constant (const byte*) SCREEN#0 = ((byte*))$400 +Constant (const byte*) SPRITE#0 = ((byte*))$2000 +Constant (const byte*) YSIN#0 = ((byte*))$2100 +Constant (const word) init::xp#0 = $20 Constant (const byte) init::sx#0 = 0 Constant (const byte) init::ss#0 = 0 Constant (const byte) loop::sin_idx#0 = 0 @@ -1791,11 +1791,11 @@ Constant (const byte/signed word/word/dword/signed dword) plexSort::$0 = PLEX_CO Constant (const byte) init::$0 = VIC_DEN#0|VIC_RSEL#0 Constant (const byte*) plexInit::screen#0 = SCREEN#0 Constant (const byte/signed word/word/dword/signed dword) init::$3 = PLEX_COUNT#0-1 -Constant (const byte*) init::$4 = SPRITE#0/64 +Constant (const byte*) init::$4 = SPRITE#0/$40 Constant (const byte/signed word/word/dword/signed dword) loop::$1 = PLEX_COUNT#0-1 Constant (const byte/signed word/word/dword/signed dword) loop::$6 = PLEX_COUNT#0-1 Successful SSA optimization Pass2ConstantIdentification -Constant (const byte*) PLEX_SCREEN_PTR#1 = plexInit::screen#0+1016 +Constant (const byte*) PLEX_SCREEN_PTR#1 = plexInit::screen#0+$3f8 Constant (const byte/word/dword) init::$1 = init::$0|3 Constant (const byte) init::$5 = ((byte))init::$4 Successful SSA optimization Pass2ConstantIdentification @@ -1853,7 +1853,7 @@ Redundant Phi (byte*) PLEX_SCREEN_PTR#31 (byte*) PLEX_SCREEN_PTR#44 Redundant Phi (byte) loop::sin_idx#14 (byte) loop::sin_idx#1 Redundant Phi (byte*) YSIN#16 (byte*) YSIN#4 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) plexSort::$5 [18] if((byte) plexSort::s#1!=(byte/word/signed word/dword/signed dword) 255) goto plexSort::@8 +Simple Condition (bool~) plexSort::$5 [18] if((byte) plexSort::s#1!=(byte/word/signed word/dword/signed dword) $ff) goto plexSort::@8 Simple Condition (bool~) plexSort::$6 [94] if((byte) plexSort::nxt_y#0<*((const byte[PLEX_COUNT#0]) PLEX_YPOS#0 + *((const byte[PLEX_COUNT#0]) PLEX_SORTED_IDX#0 + (byte) plexSort::s#1))) goto plexSort::@3 Successful SSA optimization Pass2ConditionalJumpSimplification Self Phi Eliminated (byte*) YSIN#4 @@ -1876,7 +1876,7 @@ Inlining constant with var siblings (const byte) plex_sprite_idx#1 Inlining constant with var siblings (const byte) plex_sprite_msb#1 Inlining constant with var siblings (const byte) plex_free_next#0 Inlining constant with var siblings (const byte) plex_sprite_msb#4 -Constant inlined init::xp#0 = (byte/signed byte/word/signed word/dword/signed dword) 32 +Constant inlined init::xp#0 = (byte/signed byte/word/signed word/dword/signed dword) $20 Constant inlined plexInit::$1 = (const byte) PLEX_COUNT#0-(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined plexSort::$0 = (const byte) PLEX_COUNT#0-(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined plexSort::plexFreePrepare1_s#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -1889,11 +1889,11 @@ Constant inlined loop::sin_idx#0 = (byte/signed byte/word/signed word/dword/sign Constant inlined init::$0 = (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0 Constant inlined plexInit::screen#0 = (const byte*) SCREEN#0 Constant inlined plex_sprite_msb#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined init::$5 = ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 +Constant inlined init::$5 = ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 Constant inlined plex_show_idx#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined plex_sprite_idx#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined plex_sprite_msb#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined init::$4 = (const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 +Constant inlined init::$4 = (const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 Constant inlined loop::$1 = (const byte) PLEX_COUNT#0-(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined loop::sy#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined plex_free_next#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -2008,7 +2008,7 @@ loop::@1: scope:[loop] from loop loop::@27 [12] (byte) loop::sin_idx#6 ← phi( loop/(byte/signed byte/word/signed word/dword/signed dword) 0 loop::@27/(byte) loop::sin_idx#1 ) to:loop::@4 loop::@4: scope:[loop] from loop::@1 loop::@4 - [13] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto loop::@4 + [13] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto loop::@4 to:loop::@6 loop::@6: scope:[loop] from loop::@4 [14] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) @@ -2065,7 +2065,7 @@ plexShowSprite: scope:[plexShowSprite] from loop::@14 [38] *((const byte*) SPRITES_YPOS#0 + (byte) plexShowSprite::plex_sprite_idx2#0) ← (byte) plexShowSprite::plexFreeAdd1_ypos#0 to:plexShowSprite::plexFreeAdd1 plexShowSprite::plexFreeAdd1: scope:[plexShowSprite] from plexShowSprite - [39] (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$0#0 ← (byte) plexShowSprite::plexFreeAdd1_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [39] (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$0#0 ← (byte) plexShowSprite::plexFreeAdd1_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [40] *((const byte[8]) PLEX_FREE_YPOS#0 + (byte) plex_free_next#17) ← (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$0#0 [41] (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$1#0 ← (byte) plex_free_next#17 + (byte/signed byte/word/signed word/dword/signed dword) 1 [42] (byte) plex_free_next#13 ← (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$1#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 @@ -2079,7 +2079,7 @@ plexShowSprite::@7: scope:[plexShowSprite] from plexShowSprite::plexFreeAdd1 [48] if((byte~) plexShowSprite::$4!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto plexShowSprite::@1 to:plexShowSprite::@4 plexShowSprite::@4: scope:[plexShowSprite] from plexShowSprite::@7 - [49] (byte/word/dword~) plexShowSprite::$6 ← (byte/word/signed word/dword/signed dword) 255 ^ (byte) plex_sprite_msb#44 + [49] (byte/word/dword~) plexShowSprite::$6 ← (byte/word/signed word/dword/signed dword) $ff ^ (byte) plex_sprite_msb#44 [50] *((const byte*) SPRITES_XMSB#0) ← *((const byte*) SPRITES_XMSB#0) & (byte/word/dword~) plexShowSprite::$6 to:plexShowSprite::@2 plexShowSprite::@2: scope:[plexShowSprite] from plexShowSprite::@1 plexShowSprite::@4 @@ -2115,7 +2115,7 @@ plexSort::@3: scope:[plexSort] from plexSort::@11 plexSort::@8 [66] (byte) plexSort::s#3 ← phi( plexSort::@8/(byte) plexSort::s#1 plexSort::@11/(byte~) plexSort::s#6 ) [67] *((const byte[PLEX_COUNT#0]) PLEX_SORTED_IDX#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) plexSort::s#3) ← *((const byte[PLEX_COUNT#0]) PLEX_SORTED_IDX#0 + (byte) plexSort::s#3) [68] (byte) plexSort::s#1 ← -- (byte) plexSort::s#3 - [69] if((byte) plexSort::s#1!=(byte/word/signed word/dword/signed dword) 255) goto plexSort::@8 + [69] if((byte) plexSort::s#1!=(byte/word/signed word/dword/signed dword) $ff) goto plexSort::@8 to:plexSort::@5 plexSort::@5: scope:[plexSort] from plexSort::@3 plexSort::@8 [70] (byte) plexSort::s#2 ← ++ (byte) plexSort::s#1 @@ -2145,9 +2145,9 @@ init: scope:[init] from main [82] call plexInit to:init::@1 init::@1: scope:[init] from init init::@1 - [83] (word) init::xp#2 ← phi( init::@1/(word) init::xp#1 init/(byte/signed byte/word/signed word/dword/signed dword) 32 ) + [83] (word) init::xp#2 ← phi( init::@1/(word) init::xp#1 init/(byte/signed byte/word/signed word/dword/signed dword) $20 ) [83] (byte) init::sx#2 ← phi( init::@1/(byte) init::sx#1 init/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [84] *((const byte[PLEX_COUNT#0]) PLEX_PTR#0 + (byte) init::sx#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 + [84] *((const byte[PLEX_COUNT#0]) PLEX_PTR#0 + (byte) init::sx#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 [85] (byte~) init::$6 ← (byte) init::sx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [86] *((const word[PLEX_COUNT#0]) PLEX_XPOS#0 + (byte~) init::$6) ← (word) init::xp#2 [87] (word) init::xp#1 ← (word) init::xp#2 + (byte/signed byte/word/signed word/dword/signed dword) 9 @@ -2155,7 +2155,7 @@ init::@1: scope:[init] from init init::@1 [89] if((byte) init::sx#1!=(const byte) PLEX_COUNT#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto init::@1 to:init::@3 init::@3: scope:[init] from init::@1 - [90] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 + [90] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff to:init::@2 init::@2: scope:[init] from init::@2 init::@3 [91] (byte) init::ss#2 ← phi( init::@2/(byte) init::ss#1 init::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) @@ -2544,7 +2544,7 @@ loop: { jmp b4 //SEG25 loop::@4 b4: - //SEG26 [13] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto loop::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG26 [13] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto loop::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -2717,7 +2717,7 @@ plexShowSprite: { jmp plexFreeAdd1 //SEG83 plexShowSprite::plexFreeAdd1 plexFreeAdd1: - //SEG84 [39] (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$0#0 ← (byte) plexShowSprite::plexFreeAdd1_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 + //SEG84 [39] (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$0#0 ← (byte) plexShowSprite::plexFreeAdd1_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuz1=vbuz2_plus_vbuc1 lda #$15 clc adc plexFreeAdd1_ypos @@ -2768,7 +2768,7 @@ plexShowSprite: { jmp b4 //SEG95 plexShowSprite::@4 b4: - //SEG96 [49] (byte/word/dword~) plexShowSprite::$6 ← (byte/word/signed word/dword/signed dword) 255 ^ (byte) plex_sprite_msb#44 -- vbuz1=vbuc1_bxor_vbuz2 + //SEG96 [49] (byte/word/dword~) plexShowSprite::$6 ← (byte/word/signed word/dword/signed dword) $ff ^ (byte) plex_sprite_msb#44 -- vbuz1=vbuc1_bxor_vbuz2 lda plex_sprite_msb eor #$ff sta _6 @@ -2884,7 +2884,7 @@ plexSort: { sta PLEX_SORTED_IDX+1,y //SEG129 [68] (byte) plexSort::s#1 ← -- (byte) plexSort::s#3 -- vbuz1=_dec_vbuz1 dec s - //SEG130 [69] if((byte) plexSort::s#1!=(byte/word/signed word/dword/signed dword) 255) goto plexSort::@8 -- vbuz1_neq_vbuc1_then_la1 + //SEG130 [69] if((byte) plexSort::s#1!=(byte/word/signed word/dword/signed dword) $ff) goto plexSort::@8 -- vbuz1_neq_vbuc1_then_la1 lda s cmp #$ff bne b8 @@ -2966,7 +2966,7 @@ init: { jsr plexInit //SEG155 [83] phi from init to init::@1 [phi:init->init::@1] b1_from_init: - //SEG156 [83] phi (word) init::xp#2 = (byte/signed byte/word/signed word/dword/signed dword) 32 [phi:init->init::@1#0] -- vwuz1=vbuc1 + //SEG156 [83] phi (word) init::xp#2 = (byte/signed byte/word/signed word/dword/signed dword) $20 [phi:init->init::@1#0] -- vwuz1=vbuc1 lda #<$20 sta xp lda #>$20 @@ -2982,7 +2982,7 @@ init: { jmp b1 //SEG161 init::@1 b1: - //SEG162 [84] *((const byte[PLEX_COUNT#0]) PLEX_PTR#0 + (byte) init::sx#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG162 [84] *((const byte[PLEX_COUNT#0]) PLEX_PTR#0 + (byte) init::sx#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 -- pbuc1_derefidx_vbuz1=vbuc2 ldy sx lda #$ff&SPRITE/$40 sta PLEX_PTR,y @@ -3013,7 +3013,7 @@ init: { jmp b3 //SEG168 init::@3 b3: - //SEG169 [90] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 -- _deref_pbuc1=vbuc2 + //SEG169 [90] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff -- _deref_pbuc1=vbuc2 // Enable & initialize sprites lda #$ff sta SPRITES_ENABLE @@ -3107,7 +3107,7 @@ plexInit: { REGISTER UPLIFT POTENTIAL REGISTERS -Statement [13] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto loop::@4 [ loop::sin_idx#6 ] ( main:4::loop:9 [ loop::sin_idx#6 ] ) always clobbers reg byte a +Statement [13] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto loop::@4 [ loop::sin_idx#6 ] ( main:4::loop:9 [ loop::sin_idx#6 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ loop::sin_idx#6 loop::sin_idx#1 ] Statement [17] *((const byte[PLEX_COUNT#0]) PLEX_YPOS#0 + (byte) loop::sy#2) ← *((const byte*) YSIN#0 + (byte) loop::y_idx#2) [ loop::sin_idx#6 loop::y_idx#2 loop::sy#2 ] ( main:4::loop:9 [ loop::sin_idx#6 loop::y_idx#2 loop::sy#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ loop::y_idx#2 loop::y_idx#3 loop::y_idx#1 ] @@ -3125,14 +3125,14 @@ Statement [35] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ loop::sin Statement [36] (byte) plexShowSprite::plex_sprite_idx2#0 ← (byte) plex_sprite_idx#44 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ plex_free_next#17 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plexShowSprite::plex_sprite_idx2#0 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_free_next#17 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plexShowSprite::plex_sprite_idx2#0 ] ) always clobbers reg byte a Statement [37] (byte) plexShowSprite::plexFreeAdd1_ypos#0 ← *((const byte[PLEX_COUNT#0]) PLEX_YPOS#0 + *((const byte[PLEX_COUNT#0]) PLEX_SORTED_IDX#0 + (byte) plex_show_idx#44)) [ plex_free_next#17 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plexShowSprite::plex_sprite_idx2#0 plexShowSprite::plexFreeAdd1_ypos#0 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_free_next#17 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plexShowSprite::plex_sprite_idx2#0 plexShowSprite::plexFreeAdd1_ypos#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:20 [ plexShowSprite::plex_sprite_idx2#0 ] -Statement [39] (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$0#0 ← (byte) plexShowSprite::plexFreeAdd1_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ plex_free_next#17 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plexShowSprite::plex_sprite_idx2#0 plexShowSprite::plexFreeAdd1_$0#0 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_free_next#17 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plexShowSprite::plex_sprite_idx2#0 plexShowSprite::plexFreeAdd1_$0#0 ] ) always clobbers reg byte a +Statement [39] (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$0#0 ← (byte) plexShowSprite::plexFreeAdd1_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [ plex_free_next#17 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plexShowSprite::plex_sprite_idx2#0 plexShowSprite::plexFreeAdd1_$0#0 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_free_next#17 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plexShowSprite::plex_sprite_idx2#0 plexShowSprite::plexFreeAdd1_$0#0 ] ) always clobbers reg byte a Statement [42] (byte) plex_free_next#13 ← (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$1#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::plex_sprite_idx2#0 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::plex_sprite_idx2#0 ] ) always clobbers reg byte a Statement [43] *((const byte*) PLEX_SCREEN_PTR#1 + (byte) plex_sprite_idx#44) ← *((const byte[PLEX_COUNT#0]) PLEX_PTR#0 + *((const byte[PLEX_COUNT#0]) PLEX_SORTED_IDX#0 + (byte) plex_show_idx#44)) [ plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::plex_sprite_idx2#0 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::plex_sprite_idx2#0 ] ) always clobbers reg byte a Statement [44] (byte) plexShowSprite::xpos_idx#0 ← *((const byte[PLEX_COUNT#0]) PLEX_SORTED_IDX#0 + (byte) plex_show_idx#44) << (byte/signed byte/word/signed word/dword/signed dword) 1 [ plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::plex_sprite_idx2#0 plexShowSprite::xpos_idx#0 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::plex_sprite_idx2#0 plexShowSprite::xpos_idx#0 ] ) always clobbers reg byte a Statement [45] (byte~) plexShowSprite::$3 ← < *((const word[PLEX_COUNT#0]) PLEX_XPOS#0 + (byte) plexShowSprite::xpos_idx#0) [ plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::plex_sprite_idx2#0 plexShowSprite::xpos_idx#0 plexShowSprite::$3 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::plex_sprite_idx2#0 plexShowSprite::xpos_idx#0 plexShowSprite::$3 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:24 [ plexShowSprite::xpos_idx#0 ] Statement [47] (byte~) plexShowSprite::$4 ← > *((const word[PLEX_COUNT#0]) PLEX_XPOS#0 + (byte) plexShowSprite::xpos_idx#0) [ plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::$4 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::$4 ] ) always clobbers reg byte a -Statement [49] (byte/word/dword~) plexShowSprite::$6 ← (byte/word/signed word/dword/signed dword) 255 ^ (byte) plex_sprite_msb#44 [ plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::$6 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::$6 ] ) always clobbers reg byte a +Statement [49] (byte/word/dword~) plexShowSprite::$6 ← (byte/word/signed word/dword/signed dword) $ff ^ (byte) plex_sprite_msb#44 [ plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::$6 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::$6 ] ) always clobbers reg byte a Statement [50] *((const byte*) SPRITES_XMSB#0) ← *((const byte*) SPRITES_XMSB#0) & (byte/word/dword~) plexShowSprite::$6 [ plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 ] ) always clobbers reg byte a Statement [52] (byte) plex_sprite_idx#15 ← (byte/signed word/word/dword/signed dword~) plexShowSprite::$7 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plex_sprite_idx#15 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plex_sprite_idx#15 ] ) always clobbers reg byte a Statement [59] *((const byte*) SPRITES_XMSB#0) ← *((const byte*) SPRITES_XMSB#0) | (byte) plex_sprite_msb#44 [ plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 ] ) always clobbers reg byte a @@ -3146,15 +3146,15 @@ Statement [76] *((const byte[8]) PLEX_FREE_YPOS#0 + (byte) plexSort::plexFreePre Removing always clobbered register reg byte a as potential for zp ZP_BYTE:12 [ plexSort::plexFreePrepare1_s#2 plexSort::plexFreePrepare1_s#1 ] Statement [80] if((byte) plexSort::nxt_y#0<*((const byte[PLEX_COUNT#0]) PLEX_YPOS#0 + *((const byte[PLEX_COUNT#0]) PLEX_SORTED_IDX#0 + (byte) plexSort::s#1))) goto plexSort::@3 [ plexSort::m#2 plexSort::nxt_idx#0 plexSort::nxt_y#0 plexSort::s#1 ] ( main:4::loop:9::plexSort:23 [ loop::sin_idx#1 plexSort::m#2 plexSort::nxt_idx#0 plexSort::nxt_y#0 plexSort::s#1 ] ) always clobbers reg byte a Statement [81] *((const byte*) D011#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:4::init:7 [ ] ) always clobbers reg byte a -Statement [84] *((const byte[PLEX_COUNT#0]) PLEX_PTR#0 + (byte) init::sx#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ init::sx#2 init::xp#2 ] ( main:4::init:7 [ init::sx#2 init::xp#2 ] ) always clobbers reg byte a +Statement [84] *((const byte[PLEX_COUNT#0]) PLEX_PTR#0 + (byte) init::sx#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 [ init::sx#2 init::xp#2 ] ( main:4::init:7 [ init::sx#2 init::xp#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:13 [ init::sx#2 init::sx#1 ] Statement [85] (byte~) init::$6 ← (byte) init::sx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ init::sx#2 init::xp#2 init::$6 ] ( main:4::init:7 [ init::sx#2 init::xp#2 init::$6 ] ) always clobbers reg byte a Statement [86] *((const word[PLEX_COUNT#0]) PLEX_XPOS#0 + (byte~) init::$6) ← (word) init::xp#2 [ init::sx#2 init::xp#2 ] ( main:4::init:7 [ init::sx#2 init::xp#2 ] ) always clobbers reg byte a Statement [87] (word) init::xp#1 ← (word) init::xp#2 + (byte/signed byte/word/signed word/dword/signed dword) 9 [ init::sx#2 init::xp#1 ] ( main:4::init:7 [ init::sx#2 init::xp#1 ] ) always clobbers reg byte a -Statement [90] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:4::init:7 [ ] ) always clobbers reg byte a +Statement [90] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff [ ] ( main:4::init:7 [ ] ) always clobbers reg byte a Statement [92] *((const byte*) SPRITES_COLS#0 + (byte) init::ss#2) ← (const byte) GREEN#0 [ init::ss#2 ] ( main:4::init:7 [ init::ss#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:16 [ init::ss#2 init::ss#1 ] -Statement [13] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto loop::@4 [ loop::sin_idx#6 ] ( main:4::loop:9 [ loop::sin_idx#6 ] ) always clobbers reg byte a +Statement [13] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto loop::@4 [ loop::sin_idx#6 ] ( main:4::loop:9 [ loop::sin_idx#6 ] ) always clobbers reg byte a Statement [17] *((const byte[PLEX_COUNT#0]) PLEX_YPOS#0 + (byte) loop::sy#2) ← *((const byte*) YSIN#0 + (byte) loop::y_idx#2) [ loop::sin_idx#6 loop::y_idx#2 loop::sy#2 ] ( main:4::loop:9 [ loop::sin_idx#6 loop::y_idx#2 loop::sy#2 ] ) always clobbers reg byte a Statement [18] (byte) loop::y_idx#1 ← (byte) loop::y_idx#2 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ loop::sin_idx#6 loop::sy#2 loop::y_idx#1 ] ( main:4::loop:9 [ loop::sin_idx#6 loop::sy#2 loop::y_idx#1 ] ) always clobbers reg byte a Statement [24] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ loop::sin_idx#1 ] ( main:4::loop:9 [ loop::sin_idx#1 ] ) always clobbers reg byte a @@ -3163,13 +3163,13 @@ Statement [28] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ loop::sin Statement [35] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ loop::sin_idx#1 ] ( main:4::loop:9 [ loop::sin_idx#1 ] ) always clobbers reg byte a Statement [36] (byte) plexShowSprite::plex_sprite_idx2#0 ← (byte) plex_sprite_idx#44 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ plex_free_next#17 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plexShowSprite::plex_sprite_idx2#0 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_free_next#17 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plexShowSprite::plex_sprite_idx2#0 ] ) always clobbers reg byte a Statement [37] (byte) plexShowSprite::plexFreeAdd1_ypos#0 ← *((const byte[PLEX_COUNT#0]) PLEX_YPOS#0 + *((const byte[PLEX_COUNT#0]) PLEX_SORTED_IDX#0 + (byte) plex_show_idx#44)) [ plex_free_next#17 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plexShowSprite::plex_sprite_idx2#0 plexShowSprite::plexFreeAdd1_ypos#0 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_free_next#17 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plexShowSprite::plex_sprite_idx2#0 plexShowSprite::plexFreeAdd1_ypos#0 ] ) always clobbers reg byte a -Statement [39] (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$0#0 ← (byte) plexShowSprite::plexFreeAdd1_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ plex_free_next#17 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plexShowSprite::plex_sprite_idx2#0 plexShowSprite::plexFreeAdd1_$0#0 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_free_next#17 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plexShowSprite::plex_sprite_idx2#0 plexShowSprite::plexFreeAdd1_$0#0 ] ) always clobbers reg byte a +Statement [39] (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$0#0 ← (byte) plexShowSprite::plexFreeAdd1_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 [ plex_free_next#17 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plexShowSprite::plex_sprite_idx2#0 plexShowSprite::plexFreeAdd1_$0#0 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_free_next#17 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plexShowSprite::plex_sprite_idx2#0 plexShowSprite::plexFreeAdd1_$0#0 ] ) always clobbers reg byte a Statement [42] (byte) plex_free_next#13 ← (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$1#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::plex_sprite_idx2#0 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::plex_sprite_idx2#0 ] ) always clobbers reg byte a Statement [43] *((const byte*) PLEX_SCREEN_PTR#1 + (byte) plex_sprite_idx#44) ← *((const byte[PLEX_COUNT#0]) PLEX_PTR#0 + *((const byte[PLEX_COUNT#0]) PLEX_SORTED_IDX#0 + (byte) plex_show_idx#44)) [ plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::plex_sprite_idx2#0 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::plex_sprite_idx2#0 ] ) always clobbers reg byte a Statement [44] (byte) plexShowSprite::xpos_idx#0 ← *((const byte[PLEX_COUNT#0]) PLEX_SORTED_IDX#0 + (byte) plex_show_idx#44) << (byte/signed byte/word/signed word/dword/signed dword) 1 [ plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::plex_sprite_idx2#0 plexShowSprite::xpos_idx#0 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::plex_sprite_idx2#0 plexShowSprite::xpos_idx#0 ] ) always clobbers reg byte a Statement [45] (byte~) plexShowSprite::$3 ← < *((const word[PLEX_COUNT#0]) PLEX_XPOS#0 + (byte) plexShowSprite::xpos_idx#0) [ plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::plex_sprite_idx2#0 plexShowSprite::xpos_idx#0 plexShowSprite::$3 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::plex_sprite_idx2#0 plexShowSprite::xpos_idx#0 plexShowSprite::$3 ] ) always clobbers reg byte a Statement [47] (byte~) plexShowSprite::$4 ← > *((const word[PLEX_COUNT#0]) PLEX_XPOS#0 + (byte) plexShowSprite::xpos_idx#0) [ plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::$4 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::$4 ] ) always clobbers reg byte a -Statement [49] (byte/word/dword~) plexShowSprite::$6 ← (byte/word/signed word/dword/signed dword) 255 ^ (byte) plex_sprite_msb#44 [ plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::$6 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::$6 ] ) always clobbers reg byte a +Statement [49] (byte/word/dword~) plexShowSprite::$6 ← (byte/word/signed word/dword/signed dword) $ff ^ (byte) plex_sprite_msb#44 [ plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::$6 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plexShowSprite::$6 ] ) always clobbers reg byte a Statement [50] *((const byte*) SPRITES_XMSB#0) ← *((const byte*) SPRITES_XMSB#0) & (byte/word/dword~) plexShowSprite::$6 [ plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 ] ) always clobbers reg byte a Statement [52] (byte) plex_sprite_idx#15 ← (byte/signed word/word/dword/signed dword~) plexShowSprite::$7 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plex_sprite_idx#15 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 plex_sprite_idx#15 ] ) always clobbers reg byte a Statement [59] *((const byte*) SPRITES_XMSB#0) ← *((const byte*) SPRITES_XMSB#0) | (byte) plex_sprite_msb#44 [ plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 ] ( main:4::loop:9::plexShowSprite:32 [ loop::sin_idx#1 loop::ss#6 plex_sprite_idx#44 plex_show_idx#44 plex_sprite_msb#44 plex_free_next#13 ] ) always clobbers reg byte a @@ -3179,11 +3179,11 @@ Statement [71] *((const byte[PLEX_COUNT#0]) PLEX_SORTED_IDX#0 + (byte) plexSort: Statement [76] *((const byte[8]) PLEX_FREE_YPOS#0 + (byte) plexSort::plexFreePrepare1_s#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ plexSort::plexFreePrepare1_s#2 ] ( main:4::loop:9::plexSort:23 [ loop::sin_idx#1 plexSort::plexFreePrepare1_s#2 ] ) always clobbers reg byte a Statement [80] if((byte) plexSort::nxt_y#0<*((const byte[PLEX_COUNT#0]) PLEX_YPOS#0 + *((const byte[PLEX_COUNT#0]) PLEX_SORTED_IDX#0 + (byte) plexSort::s#1))) goto plexSort::@3 [ plexSort::m#2 plexSort::nxt_idx#0 plexSort::nxt_y#0 plexSort::s#1 ] ( main:4::loop:9::plexSort:23 [ loop::sin_idx#1 plexSort::m#2 plexSort::nxt_idx#0 plexSort::nxt_y#0 plexSort::s#1 ] ) always clobbers reg byte a Statement [81] *((const byte*) D011#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:4::init:7 [ ] ) always clobbers reg byte a -Statement [84] *((const byte[PLEX_COUNT#0]) PLEX_PTR#0 + (byte) init::sx#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ init::sx#2 init::xp#2 ] ( main:4::init:7 [ init::sx#2 init::xp#2 ] ) always clobbers reg byte a +Statement [84] *((const byte[PLEX_COUNT#0]) PLEX_PTR#0 + (byte) init::sx#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 [ init::sx#2 init::xp#2 ] ( main:4::init:7 [ init::sx#2 init::xp#2 ] ) always clobbers reg byte a Statement [85] (byte~) init::$6 ← (byte) init::sx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ init::sx#2 init::xp#2 init::$6 ] ( main:4::init:7 [ init::sx#2 init::xp#2 init::$6 ] ) always clobbers reg byte a Statement [86] *((const word[PLEX_COUNT#0]) PLEX_XPOS#0 + (byte~) init::$6) ← (word) init::xp#2 [ init::sx#2 init::xp#2 ] ( main:4::init:7 [ init::sx#2 init::xp#2 ] ) always clobbers reg byte a Statement [87] (word) init::xp#1 ← (word) init::xp#2 + (byte/signed byte/word/signed word/dword/signed dword) 9 [ init::sx#2 init::xp#1 ] ( main:4::init:7 [ init::sx#2 init::xp#1 ] ) always clobbers reg byte a -Statement [90] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:4::init:7 [ ] ) always clobbers reg byte a +Statement [90] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff [ ] ( main:4::init:7 [ ] ) always clobbers reg byte a Statement [92] *((const byte*) SPRITES_COLS#0 + (byte) init::ss#2) ← (const byte) GREEN#0 [ init::ss#2 ] ( main:4::init:7 [ init::ss#2 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ loop::sin_idx#6 loop::sin_idx#1 ] : zp ZP_BYTE:2 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:3 [ loop::y_idx#2 loop::y_idx#3 loop::y_idx#1 ] : zp ZP_BYTE:3 , reg byte x , reg byte y , @@ -3380,7 +3380,7 @@ loop: { jmp b4 //SEG25 loop::@4 b4: - //SEG26 [13] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto loop::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG26 [13] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto loop::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -3536,7 +3536,7 @@ plexShowSprite: { jmp plexFreeAdd1 //SEG83 plexShowSprite::plexFreeAdd1 plexFreeAdd1: - //SEG84 [39] (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$0#0 ← (byte) plexShowSprite::plexFreeAdd1_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuaa=vbuaa_plus_vbuc1 + //SEG84 [39] (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$0#0 ← (byte) plexShowSprite::plexFreeAdd1_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuaa=vbuaa_plus_vbuc1 clc adc #$15 //SEG85 [40] *((const byte[8]) PLEX_FREE_YPOS#0 + (byte) plex_free_next#17) ← (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$0#0 -- pbuc1_derefidx_vbuz1=vbuaa @@ -3578,7 +3578,7 @@ plexShowSprite: { jmp b4 //SEG95 plexShowSprite::@4 b4: - //SEG96 [49] (byte/word/dword~) plexShowSprite::$6 ← (byte/word/signed word/dword/signed dword) 255 ^ (byte) plex_sprite_msb#44 -- vbuaa=vbuc1_bxor_vbuz1 + //SEG96 [49] (byte/word/dword~) plexShowSprite::$6 ← (byte/word/signed word/dword/signed dword) $ff ^ (byte) plex_sprite_msb#44 -- vbuaa=vbuc1_bxor_vbuz1 lda plex_sprite_msb eor #$ff //SEG97 [50] *((const byte*) SPRITES_XMSB#0) ← *((const byte*) SPRITES_XMSB#0) & (byte/word/dword~) plexShowSprite::$6 -- _deref_pbuc1=_deref_pbuc1_band_vbuaa @@ -3685,7 +3685,7 @@ plexSort: { sta PLEX_SORTED_IDX+1,x //SEG129 [68] (byte) plexSort::s#1 ← -- (byte) plexSort::s#3 -- vbuxx=_dec_vbuxx dex - //SEG130 [69] if((byte) plexSort::s#1!=(byte/word/signed word/dword/signed dword) 255) goto plexSort::@8 -- vbuxx_neq_vbuc1_then_la1 + //SEG130 [69] if((byte) plexSort::s#1!=(byte/word/signed word/dword/signed dword) $ff) goto plexSort::@8 -- vbuxx_neq_vbuc1_then_la1 cpx #$ff bne b8 jmp b5 @@ -3756,7 +3756,7 @@ init: { jsr plexInit //SEG155 [83] phi from init to init::@1 [phi:init->init::@1] b1_from_init: - //SEG156 [83] phi (word) init::xp#2 = (byte/signed byte/word/signed word/dword/signed dword) 32 [phi:init->init::@1#0] -- vwuz1=vbuc1 + //SEG156 [83] phi (word) init::xp#2 = (byte/signed byte/word/signed word/dword/signed dword) $20 [phi:init->init::@1#0] -- vwuz1=vbuc1 lda #<$20 sta xp lda #>$20 @@ -3771,7 +3771,7 @@ init: { jmp b1 //SEG161 init::@1 b1: - //SEG162 [84] *((const byte[PLEX_COUNT#0]) PLEX_PTR#0 + (byte) init::sx#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG162 [84] *((const byte[PLEX_COUNT#0]) PLEX_PTR#0 + (byte) init::sx#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 -- pbuc1_derefidx_vbuxx=vbuc2 lda #$ff&SPRITE/$40 sta PLEX_PTR,x //SEG163 [85] (byte~) init::$6 ← (byte) init::sx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 @@ -3799,7 +3799,7 @@ init: { jmp b3 //SEG168 init::@3 b3: - //SEG169 [90] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 -- _deref_pbuc1=vbuc2 + //SEG169 [90] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff -- _deref_pbuc1=vbuc2 // Enable & initialize sprites lda #$ff sta SPRITES_ENABLE @@ -4032,7 +4032,7 @@ FINAL SYMBOL TABLE (const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN (byte*) CIA1_INTERRUPT @@ -4049,7 +4049,7 @@ FINAL SYMBOL TABLE (byte*) COLS (byte) CYAN (byte*) D011 -(const byte*) D011#0 D011 = ((byte*))(word/dword/signed dword) 53265 +(const byte*) D011#0 D011 = ((byte*))(word/dword/signed dword) $d011 (byte*) D016 (byte*) D018 (byte) DARK_GREY @@ -4072,13 +4072,13 @@ FINAL SYMBOL TABLE (byte) ORANGE (byte) PINK (byte) PLEX_COUNT -(const byte) PLEX_COUNT#0 PLEX_COUNT = (byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte) PLEX_COUNT#0 PLEX_COUNT = (byte/signed byte/word/signed word/dword/signed dword) $20 (byte[8]) PLEX_FREE_YPOS (const byte[8]) PLEX_FREE_YPOS#0 PLEX_FREE_YPOS = { fill( 8, 0) } (byte[PLEX_COUNT#0]) PLEX_PTR (const byte[PLEX_COUNT#0]) PLEX_PTR#0 PLEX_PTR = { fill( PLEX_COUNT#0, 0) } (byte*) PLEX_SCREEN_PTR -(const byte*) PLEX_SCREEN_PTR#1 PLEX_SCREEN_PTR = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1016 +(const byte*) PLEX_SCREEN_PTR#1 PLEX_SCREEN_PTR = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3f8 (byte[PLEX_COUNT#0]) PLEX_SORTED_IDX (const byte[PLEX_COUNT#0]) PLEX_SORTED_IDX#0 PLEX_SORTED_IDX = { fill( PLEX_COUNT#0, 0) } (word[PLEX_COUNT#0]) PLEX_XPOS @@ -4095,16 +4095,16 @@ FINAL SYMBOL TABLE (byte) PROCPORT_RAM_IO (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SPRITE -(const byte*) SPRITE#0 SPRITE = ((byte*))(word/signed word/dword/signed dword) 8192 +(const byte*) SPRITE#0 SPRITE = ((byte*))(word/signed word/dword/signed dword) $2000 (byte*) SPRITES_COLS -(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) 53287 +(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) $d027 (byte*) SPRITES_ENABLE -(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) 53269 +(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) $d015 (byte*) SPRITES_EXPAND_X (byte*) SPRITES_EXPAND_Y (byte*) SPRITES_MC @@ -4112,29 +4112,29 @@ FINAL SYMBOL TABLE (byte*) SPRITES_MC2 (byte*) SPRITES_PRIORITY (byte*) SPRITES_XMSB -(const byte*) SPRITES_XMSB#0 SPRITES_XMSB = ((byte*))(word/dword/signed dword) 53264 +(const byte*) SPRITES_XMSB#0 SPRITES_XMSB = ((byte*))(word/dword/signed dword) $d010 (byte*) SPRITES_XPOS -(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) 53248 +(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) $d000 (byte*) SPRITES_YPOS -(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) 53249 +(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) $d001 (word) SPRITE_PTRS (byte) VIC_BMM (byte*) VIC_CONTROL (byte*) VIC_CONTROL2 (byte) VIC_CSEL (byte) VIC_DEN -(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_ECM (byte) VIC_MCM (byte*) VIC_MEMORY (byte) VIC_RSEL (const byte) VIC_RSEL#0 VIC_RSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) VIC_RST8 -(const byte) VIC_RST8#0 VIC_RST8 = (byte/word/signed word/dword/signed dword) 128 +(const byte) VIC_RST8#0 VIC_RST8 = (byte/word/signed word/dword/signed dword) $80 (byte) WHITE (byte) YELLOW (byte*) YSIN -(const byte*) YSIN#0 YSIN = ((byte*))(word/signed word/dword/signed dword) 8448 +(const byte*) YSIN#0 YSIN = ((byte*))(word/signed word/dword/signed dword) $2100 (void()) init() (byte~) init::$6 reg byte a 22.0 (label) init::@1 @@ -4357,7 +4357,7 @@ loop: { //SEG24 loop::@1 //SEG25 loop::@4 b4: - //SEG26 [13] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto loop::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG26 [13] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto loop::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -4484,7 +4484,7 @@ plexShowSprite: { ldy plex_sprite_idx2 sta SPRITES_YPOS,y //SEG83 plexShowSprite::plexFreeAdd1 - //SEG84 [39] (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$0#0 ← (byte) plexShowSprite::plexFreeAdd1_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuaa=vbuaa_plus_vbuc1 + //SEG84 [39] (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$0#0 ← (byte) plexShowSprite::plexFreeAdd1_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) $15 -- vbuaa=vbuaa_plus_vbuc1 clc adc #$15 //SEG85 [40] *((const byte[8]) PLEX_FREE_YPOS#0 + (byte) plex_free_next#17) ← (byte/signed word/word/dword/signed dword) plexShowSprite::plexFreeAdd1_$0#0 -- pbuc1_derefidx_vbuz1=vbuaa @@ -4522,7 +4522,7 @@ plexShowSprite: { cmp #0 bne b1 //SEG95 plexShowSprite::@4 - //SEG96 [49] (byte/word/dword~) plexShowSprite::$6 ← (byte/word/signed word/dword/signed dword) 255 ^ (byte) plex_sprite_msb#44 -- vbuaa=vbuc1_bxor_vbuz1 + //SEG96 [49] (byte/word/dword~) plexShowSprite::$6 ← (byte/word/signed word/dword/signed dword) $ff ^ (byte) plex_sprite_msb#44 -- vbuaa=vbuc1_bxor_vbuz1 lda plex_sprite_msb eor #$ff //SEG97 [50] *((const byte*) SPRITES_XMSB#0) ← *((const byte*) SPRITES_XMSB#0) & (byte/word/dword~) plexShowSprite::$6 -- _deref_pbuc1=_deref_pbuc1_band_vbuaa @@ -4610,7 +4610,7 @@ plexSort: { sta PLEX_SORTED_IDX+1,x //SEG129 [68] (byte) plexSort::s#1 ← -- (byte) plexSort::s#3 -- vbuxx=_dec_vbuxx dex - //SEG130 [69] if((byte) plexSort::s#1!=(byte/word/signed word/dword/signed dword) 255) goto plexSort::@8 -- vbuxx_neq_vbuc1_then_la1 + //SEG130 [69] if((byte) plexSort::s#1!=(byte/word/signed word/dword/signed dword) $ff) goto plexSort::@8 -- vbuxx_neq_vbuc1_then_la1 cpx #$ff bne b8 //SEG131 plexSort::@5 @@ -4668,7 +4668,7 @@ init: { //SEG154 [96] phi from init to plexInit [phi:init->plexInit] jsr plexInit //SEG155 [83] phi from init to init::@1 [phi:init->init::@1] - //SEG156 [83] phi (word) init::xp#2 = (byte/signed byte/word/signed word/dword/signed dword) 32 [phi:init->init::@1#0] -- vwuz1=vbuc1 + //SEG156 [83] phi (word) init::xp#2 = (byte/signed byte/word/signed word/dword/signed dword) $20 [phi:init->init::@1#0] -- vwuz1=vbuc1 lda #<$20 sta xp lda #>$20 @@ -4680,7 +4680,7 @@ init: { //SEG160 [83] phi (byte) init::sx#2 = (byte) init::sx#1 [phi:init::@1->init::@1#1] -- register_copy //SEG161 init::@1 b1: - //SEG162 [84] *((const byte[PLEX_COUNT#0]) PLEX_PTR#0 + (byte) init::sx#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG162 [84] *((const byte[PLEX_COUNT#0]) PLEX_PTR#0 + (byte) init::sx#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 -- pbuc1_derefidx_vbuxx=vbuc2 lda #$ff&SPRITE/$40 sta PLEX_PTR,x //SEG163 [85] (byte~) init::$6 ← (byte) init::sx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 @@ -4706,7 +4706,7 @@ init: { cpx #PLEX_COUNT-1+1 bne b1 //SEG168 init::@3 - //SEG169 [90] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 -- _deref_pbuc1=vbuc2 + //SEG169 [90] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff -- _deref_pbuc1=vbuc2 // Enable & initialize sprites lda #$ff sta SPRITES_ENABLE diff --git a/src/test/ref/examples/multiplexer/simple-multiplexer.sym b/src/test/ref/examples/multiplexer/simple-multiplexer.sym index 04b7e604f..45a1210c1 100644 --- a/src/test/ref/examples/multiplexer/simple-multiplexer.sym +++ b/src/test/ref/examples/multiplexer/simple-multiplexer.sym @@ -11,7 +11,7 @@ (const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN (byte*) CIA1_INTERRUPT @@ -28,7 +28,7 @@ (byte*) COLS (byte) CYAN (byte*) D011 -(const byte*) D011#0 D011 = ((byte*))(word/dword/signed dword) 53265 +(const byte*) D011#0 D011 = ((byte*))(word/dword/signed dword) $d011 (byte*) D016 (byte*) D018 (byte) DARK_GREY @@ -51,13 +51,13 @@ (byte) ORANGE (byte) PINK (byte) PLEX_COUNT -(const byte) PLEX_COUNT#0 PLEX_COUNT = (byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte) PLEX_COUNT#0 PLEX_COUNT = (byte/signed byte/word/signed word/dword/signed dword) $20 (byte[8]) PLEX_FREE_YPOS (const byte[8]) PLEX_FREE_YPOS#0 PLEX_FREE_YPOS = { fill( 8, 0) } (byte[PLEX_COUNT#0]) PLEX_PTR (const byte[PLEX_COUNT#0]) PLEX_PTR#0 PLEX_PTR = { fill( PLEX_COUNT#0, 0) } (byte*) PLEX_SCREEN_PTR -(const byte*) PLEX_SCREEN_PTR#1 PLEX_SCREEN_PTR = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1016 +(const byte*) PLEX_SCREEN_PTR#1 PLEX_SCREEN_PTR = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3f8 (byte[PLEX_COUNT#0]) PLEX_SORTED_IDX (const byte[PLEX_COUNT#0]) PLEX_SORTED_IDX#0 PLEX_SORTED_IDX = { fill( PLEX_COUNT#0, 0) } (word[PLEX_COUNT#0]) PLEX_XPOS @@ -74,16 +74,16 @@ (byte) PROCPORT_RAM_IO (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SPRITE -(const byte*) SPRITE#0 SPRITE = ((byte*))(word/signed word/dword/signed dword) 8192 +(const byte*) SPRITE#0 SPRITE = ((byte*))(word/signed word/dword/signed dword) $2000 (byte*) SPRITES_COLS -(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) 53287 +(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) $d027 (byte*) SPRITES_ENABLE -(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) 53269 +(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) $d015 (byte*) SPRITES_EXPAND_X (byte*) SPRITES_EXPAND_Y (byte*) SPRITES_MC @@ -91,29 +91,29 @@ (byte*) SPRITES_MC2 (byte*) SPRITES_PRIORITY (byte*) SPRITES_XMSB -(const byte*) SPRITES_XMSB#0 SPRITES_XMSB = ((byte*))(word/dword/signed dword) 53264 +(const byte*) SPRITES_XMSB#0 SPRITES_XMSB = ((byte*))(word/dword/signed dword) $d010 (byte*) SPRITES_XPOS -(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) 53248 +(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) $d000 (byte*) SPRITES_YPOS -(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) 53249 +(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) $d001 (word) SPRITE_PTRS (byte) VIC_BMM (byte*) VIC_CONTROL (byte*) VIC_CONTROL2 (byte) VIC_CSEL (byte) VIC_DEN -(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_ECM (byte) VIC_MCM (byte*) VIC_MEMORY (byte) VIC_RSEL (const byte) VIC_RSEL#0 VIC_RSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) VIC_RST8 -(const byte) VIC_RST8#0 VIC_RST8 = (byte/word/signed word/dword/signed dword) 128 +(const byte) VIC_RST8#0 VIC_RST8 = (byte/word/signed word/dword/signed dword) $80 (byte) WHITE (byte) YELLOW (byte*) YSIN -(const byte*) YSIN#0 YSIN = ((byte*))(word/signed word/dword/signed dword) 8448 +(const byte*) YSIN#0 YSIN = ((byte*))(word/signed word/dword/signed dword) $2100 (void()) init() (byte~) init::$6 reg byte a 22.0 (label) init::@1 diff --git a/src/test/ref/examples/rasterbars/raster-bars.cfg b/src/test/ref/examples/rasterbars/raster-bars.cfg index d332f4f8c..127f28894 100644 --- a/src/test/ref/examples/rasterbars/raster-bars.cfg +++ b/src/test/ref/examples/rasterbars/raster-bars.cfg @@ -11,10 +11,10 @@ main: scope:[main] from @6 asm { sei } to:main::@2 main::@2: scope:[main] from main main::@2 main::@5 - [5] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@2 + [5] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 main::@3 - [6] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@3 + [6] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@3 to:main::@5 main::@5: scope:[main] from main::@3 [7] phi() @@ -32,7 +32,7 @@ raster::@1: scope:[raster] from raster raster::@1 [14] (byte) raster::i#1 ← ++ (byte) raster::i#2 [15] (byte) raster::col#1 ← *((const byte[]) rastercols#0 + (byte) raster::i#1) asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } - [17] if((byte) raster::col#1!=(byte/word/signed word/dword/signed dword) 255) goto raster::@1 + [17] if((byte) raster::col#1!=(byte/word/signed word/dword/signed dword) $ff) goto raster::@1 to:raster::@return raster::@return: scope:[raster] from raster::@1 [18] return diff --git a/src/test/ref/examples/rasterbars/raster-bars.log b/src/test/ref/examples/rasterbars/raster-bars.log index 2f92581be..1663fe5c0 100644 --- a/src/test/ref/examples/rasterbars/raster-bars.log +++ b/src/test/ref/examples/rasterbars/raster-bars.log @@ -5,66 +5,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -75,12 +75,12 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@5 main: scope:[main] from @6 asm { sei } @@ -88,11 +88,11 @@ main: scope:[main] from @6 main::@1: scope:[main] from main::@7 to:main::@2 main::@2: scope:[main] from main main::@1 main::@2 - (bool~) main::$0 ← *((byte*) RASTER#0) != (byte/signed byte/word/signed word/dword/signed dword) 10 + (bool~) main::$0 ← *((byte*) RASTER#0) != (byte/signed byte/word/signed word/dword/signed dword) $a if((bool~) main::$0) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 main::@3 - (bool~) main::$1 ← *((byte*) RASTER#0) != (byte/signed byte/word/signed word/dword/signed dword) 11 + (bool~) main::$1 ← *((byte*) RASTER#0) != (byte/signed byte/word/signed word/dword/signed dword) $b if((bool~) main::$1) goto main::@3 to:main::@5 main::@5: scope:[main] from main::@3 @@ -105,7 +105,7 @@ main::@return: scope:[main] from main::@7 return to:@return @5: scope:[] from @begin - (byte[]) rastercols#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 255 } + (byte[]) rastercols#0 ← { (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $ff } to:@6 raster: scope:[raster] from main::@5 asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } @@ -120,7 +120,7 @@ raster::@1: scope:[raster] from raster raster::@1 (byte) raster::i#1 ← ++ (byte) raster::i#2 (byte) raster::col#1 ← *((byte[]) rastercols#0 + (byte) raster::i#1) asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } - (bool~) raster::$0 ← (byte) raster::col#1 != (byte/word/signed word/dword/signed dword) 255 + (bool~) raster::$0 ← (byte) raster::col#1 != (byte/word/signed word/dword/signed dword) $ff if((bool~) raster::$0) goto raster::@1 to:raster::@return raster::@return: scope:[raster] from raster::@1 @@ -324,73 +324,73 @@ SYMBOL TABLE SSA Culled Empty Block (label) main::@1 Culled Empty Block (label) @7 Successful SSA optimization Pass2CullEmptyBlocks -Simple Condition (bool~) main::$0 [81] if(*((byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@2 -Simple Condition (bool~) main::$1 [83] if(*((byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@3 -Simple Condition (bool~) raster::$0 [98] if((byte) raster::col#1!=(byte/word/signed word/dword/signed dword) 255) goto raster::@1 +Simple Condition (bool~) main::$0 [81] if(*((byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@2 +Simple Condition (bool~) main::$1 [83] if(*((byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@3 +Simple Condition (bool~) raster::$0 [98] if((byte) raster::col#1!=(byte/word/signed word/dword/signed dword) $ff) goto raster::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -401,13 +401,13 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 -Constant (const byte[]) rastercols#0 = { 11, 0, 11, 11, 12, 11, 12, 12, 15, 12, 15, 15, 1, 15, 1, 1, 15, 1, 15, 15, 12, 15, 12, 12, 11, 12, 11, 11, 0, 11, 0, 255 } +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f +Constant (const byte[]) rastercols#0 = { $b, 0, $b, $b, $c, $b, $c, $c, $f, $c, $f, $f, 1, $f, 1, 1, $f, 1, $f, $f, $c, $f, $c, $c, $b, $c, $b, $b, 0, $b, 0, $ff } Constant (const byte) raster::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(rastercols#0+raster::i#0) @@ -458,10 +458,10 @@ main: scope:[main] from @6 asm { sei } to:main::@2 main::@2: scope:[main] from main main::@2 main::@5 - [5] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@2 + [5] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 main::@3 - [6] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@3 + [6] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@3 to:main::@5 main::@5: scope:[main] from main::@3 [7] phi() @@ -479,7 +479,7 @@ raster::@1: scope:[raster] from raster raster::@1 [14] (byte) raster::i#1 ← ++ (byte) raster::i#2 [15] (byte) raster::col#1 ← *((const byte[]) rastercols#0 + (byte) raster::i#1) asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } - [17] if((byte) raster::col#1!=(byte/word/signed word/dword/signed dword) 255) goto raster::@1 + [17] if((byte) raster::col#1!=(byte/word/signed word/dword/signed dword) $ff) goto raster::@1 to:raster::@return raster::@return: scope:[raster] from raster::@1 [18] return @@ -617,14 +617,14 @@ main: { jmp b2 //SEG11 main::@2 b2: - //SEG12 [5] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG12 [5] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$a bne b2 jmp b3 //SEG13 main::@3 b3: - //SEG14 [6] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG14 [6] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$b bne b3 @@ -713,7 +713,7 @@ raster: { nop nop nop - //SEG33 [17] if((byte) raster::col#1!=(byte/word/signed word/dword/signed dword) 255) goto raster::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG33 [17] if((byte) raster::col#1!=(byte/word/signed word/dword/signed dword) $ff) goto raster::@1 -- vbuz1_neq_vbuc1_then_la1 lda col cmp #$ff bne b1_from_b1 @@ -726,8 +726,8 @@ raster: { rastercols: .byte $b, 0, $b, $b, $c, $b, $c, $c, $f, $c, $f, $f, 1, $f, 1, 1, $f, 1, $f, $f, $c, $f, $c, $c, $b, $c, $b, $b, 0, $b, 0, $ff REGISTER UPLIFT POTENTIAL REGISTERS -Statement [5] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@2 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [6] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@3 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [5] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@2 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [6] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@3 [ ] ( main:2 [ ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ raster::col#2 raster::col#0 raster::col#1 ] : zp ZP_BYTE:2 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:3 [ raster::i#2 raster::i#1 ] : zp ZP_BYTE:3 , reg byte a , reg byte x , reg byte y , @@ -771,14 +771,14 @@ main: { jmp b2 //SEG11 main::@2 b2: - //SEG12 [5] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG12 [5] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$a bne b2 jmp b3 //SEG13 main::@3 b3: - //SEG14 [6] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG14 [6] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$b bne b3 @@ -859,7 +859,7 @@ raster: { nop nop nop - //SEG33 [17] if((byte) raster::col#1!=(byte/word/signed word/dword/signed dword) 255) goto raster::@1 -- vbuaa_neq_vbuc1_then_la1 + //SEG33 [17] if((byte) raster::col#1!=(byte/word/signed word/dword/signed dword) $ff) goto raster::@1 -- vbuaa_neq_vbuc1_then_la1 cmp #$ff bne b1_from_b1 jmp breturn @@ -904,7 +904,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL1 (byte*) BGCOL2 (byte*) BGCOL3 @@ -912,7 +912,7 @@ FINAL SYMBOL TABLE (byte) BLACK (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN (byte*) CIA1_INTERRUPT @@ -959,7 +959,7 @@ FINAL SYMBOL TABLE (byte) PROCPORT_RAM_IO (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE @@ -1000,7 +1000,7 @@ FINAL SYMBOL TABLE (byte) raster::i#1 reg byte x 75.75 (byte) raster::i#2 reg byte x 67.33333333333333 (byte[]) rastercols -(const byte[]) rastercols#0 rastercols = { (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 255 } +(const byte[]) rastercols#0 rastercols = { (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $ff } reg byte a [ raster::col#2 raster::col#0 raster::col#1 ] reg byte x [ raster::i#2 raster::i#1 ] @@ -1030,13 +1030,13 @@ main: { sei //SEG11 main::@2 b2: - //SEG12 [5] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG12 [5] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$a bne b2 //SEG13 main::@3 b3: - //SEG14 [6] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG14 [6] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$b bne b3 @@ -1110,7 +1110,7 @@ raster: { nop nop nop - //SEG33 [17] if((byte) raster::col#1!=(byte/word/signed word/dword/signed dword) 255) goto raster::@1 -- vbuaa_neq_vbuc1_then_la1 + //SEG33 [17] if((byte) raster::col#1!=(byte/word/signed word/dword/signed dword) $ff) goto raster::@1 -- vbuaa_neq_vbuc1_then_la1 cmp #$ff bne b1 //SEG34 raster::@return diff --git a/src/test/ref/examples/rasterbars/raster-bars.sym b/src/test/ref/examples/rasterbars/raster-bars.sym index 048434fc0..e74d74450 100644 --- a/src/test/ref/examples/rasterbars/raster-bars.sym +++ b/src/test/ref/examples/rasterbars/raster-bars.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL1 (byte*) BGCOL2 (byte*) BGCOL3 @@ -10,7 +10,7 @@ (byte) BLACK (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN (byte*) CIA1_INTERRUPT @@ -57,7 +57,7 @@ (byte) PROCPORT_RAM_IO (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE @@ -98,7 +98,7 @@ (byte) raster::i#1 reg byte x 75.75 (byte) raster::i#2 reg byte x 67.33333333333333 (byte[]) rastercols -(const byte[]) rastercols#0 rastercols = { (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 255 } +(const byte[]) rastercols#0 rastercols = { (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $ff } reg byte a [ raster::col#2 raster::col#0 raster::col#1 ] reg byte x [ raster::i#2 raster::i#1 ] diff --git a/src/test/ref/examples/rotate/rotate.cfg b/src/test/ref/examples/rotate/rotate.cfg index 03784248c..3764d3c4e 100644 --- a/src/test/ref/examples/rotate/rotate.cfg +++ b/src/test/ref/examples/rotate/rotate.cfg @@ -41,7 +41,7 @@ anim::@1: scope:[anim] from anim anim::@15 [11] (byte) anim::angle#10 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@15/(byte) anim::angle#1 ) to:anim::@4 anim::@4: scope:[anim] from anim::@1 anim::@4 - [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 + [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto anim::@4 to:anim::@6 anim::@6: scope:[anim] from anim::@4 [13] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) @@ -95,18 +95,18 @@ anim::@24: scope:[anim] from anim::@23 [42] (signed word) anim::yr#1 ← (signed word) anim::yr#0 + (signed word~) anim::$12 [43] (byte~) anim::$13 ← > (signed word) anim::xr#1 [44] (signed byte~) anim::$15 ← (signed byte)(byte~) anim::$13 - [45] (signed word) anim::xpos#0 ← (signed byte~) anim::$15 + (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/word/signed word/dword/signed dword) 149 + [45] (signed word) anim::xpos#0 ← (signed byte~) anim::$15 + (byte/signed byte/word/signed word/dword/signed dword) $18+(byte/word/signed word/dword/signed dword) $95 [46] (byte) anim::sprite_msb#1 ← (byte) anim::sprite_msb#10 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [47] (byte~) anim::$18 ← > (signed word) anim::xpos#0 [48] if((byte~) anim::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto anim::@8 to:anim::@14 anim::@14: scope:[anim] from anim::@24 - [49] (byte) anim::sprite_msb#2 ← (byte) anim::sprite_msb#1 | (byte/word/signed word/dword/signed dword) 128 + [49] (byte) anim::sprite_msb#2 ← (byte) anim::sprite_msb#1 | (byte/word/signed word/dword/signed dword) $80 to:anim::@8 anim::@8: scope:[anim] from anim::@14 anim::@24 [50] (byte) anim::sprite_msb#5 ← phi( anim::@14/(byte) anim::sprite_msb#2 anim::@24/(byte) anim::sprite_msb#1 ) [51] (byte~) anim::$22 ← > (signed word) anim::yr#1 - [52] (byte) anim::ypos#0 ← (byte~) anim::$22 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 51 + [52] (byte) anim::ypos#0 ← (byte~) anim::$22 + (byte/signed byte/word/signed word/dword/signed dword) $59+(byte/signed byte/word/signed word/dword/signed dword) $33 [53] (byte) anim::i2#0 ← (byte) anim::i#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 [54] (byte~) anim::$25 ← < (signed word) anim::xpos#0 [55] *((const byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte~) anim::$25 @@ -169,11 +169,11 @@ init: scope:[init] from main [86] call mulf_init to:init::@3 init::@3: scope:[init] from init - [87] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 + [87] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff to:init::@1 init::@1: scope:[init] from init::@1 init::@3 [88] (byte) init::i#2 ← phi( init::@1/(byte) init::i#1 init::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [89] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 + [89] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 [90] *((const byte*) SPRITES_COLS#0 + (byte) init::i#2) ← (const byte) GREEN#0 [91] (byte) init::i#1 ← ++ (byte) init::i#2 [92] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto init::@1 @@ -186,8 +186,8 @@ mulf_init: scope:[mulf_init] from init to:mulf_init::@1 mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@2 [95] (byte) mulf_init::x_2#3 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::x_2#2 ) - [95] (byte*) mulf_init::sqr1_hi#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_hi#1 ) - [95] (byte*) mulf_init::sqr1_lo#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_lo#1 ) + [95] (byte*) mulf_init::sqr1_hi#2 ← phi( mulf_init/(const byte[$200]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_hi#1 ) + [95] (byte*) mulf_init::sqr1_lo#2 ← phi( mulf_init/(const byte[$200]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_lo#1 ) [95] (word) mulf_init::sqr#4 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(word) mulf_init::sqr#1 ) [95] (byte) mulf_init::c#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::c#1 ) [96] (byte) mulf_init::c#1 ← ++ (byte) mulf_init::c#2 @@ -208,15 +208,15 @@ mulf_init::@2: scope:[mulf_init] from mulf_init::@1 mulf_init::@5 [106] (byte*) mulf_init::sqr1_hi#1 ← ++ (byte*) mulf_init::sqr1_hi#2 [107] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [108] (byte*) mulf_init::sqr1_lo#1 ← ++ (byte*) mulf_init::sqr1_lo#2 - [109] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 + [109] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 to:mulf_init::@3 mulf_init::@3: scope:[mulf_init] from mulf_init::@2 mulf_init::@4 - [110] (byte) mulf_init::dir#2 ← phi( mulf_init::@4/(byte) mulf_init::dir#3 mulf_init::@2/(byte/word/signed word/dword/signed dword) 255 ) - [110] (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_hi#1 mulf_init::@2/(const byte[512]) mulf_sqr2_hi#0 ) - [110] (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_lo#1 mulf_init::@2/(const byte[512]) mulf_sqr2_lo#0 ) + [110] (byte) mulf_init::dir#2 ← phi( mulf_init::@4/(byte) mulf_init::dir#3 mulf_init::@2/(byte/word/signed word/dword/signed dword) $ff ) + [110] (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_hi#1 mulf_init::@2/(const byte[$200]) mulf_sqr2_hi#0 ) + [110] (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_lo#1 mulf_init::@2/(const byte[$200]) mulf_sqr2_lo#0 ) [110] (byte) mulf_init::x_255#2 ← phi( mulf_init::@4/(byte) mulf_init::x_255#1 mulf_init::@2/((byte))-(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [111] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) - [112] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) + [111] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) + [112] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [113] (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 [114] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [115] if((byte) mulf_init::x_255#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@12 @@ -224,11 +224,11 @@ mulf_init::@3: scope:[mulf_init] from mulf_init::@2 mulf_init::@4 mulf_init::@4: scope:[mulf_init] from mulf_init::@12 mulf_init::@3 [116] (byte) mulf_init::dir#3 ← phi( mulf_init::@12/(byte) mulf_init::dir#2 mulf_init::@3/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [117] (byte*) mulf_init::sqr2_lo#1 ← ++ (byte*) mulf_init::sqr2_lo#2 - [118] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 + [118] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 to:mulf_init::@8 mulf_init::@8: scope:[mulf_init] from mulf_init::@4 - [119] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) - [120] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) + [119] *((const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100) + [120] *((const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100) to:mulf_init::@return mulf_init::@return: scope:[mulf_init] from mulf_init::@8 [121] return diff --git a/src/test/ref/examples/rotate/rotate.log b/src/test/ref/examples/rotate/rotate.log index c0f1ee458..601293558 100644 --- a/src/test/ref/examples/rotate/rotate.log +++ b/src/test/ref/examples/rotate/rotate.log @@ -9,66 +9,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -79,26 +79,26 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@4 @4: scope:[] from @begin - (byte[512]) mulf_sqr1_lo#0 ← { fill( 512, 0) } - (byte[512]) mulf_sqr1_hi#0 ← { fill( 512, 0) } - (byte[512]) mulf_sqr2_lo#0 ← { fill( 512, 0) } - (byte[512]) mulf_sqr2_hi#0 ← { fill( 512, 0) } + (byte[$200]) mulf_sqr1_lo#0 ← { fill( $200, 0) } + (byte[$200]) mulf_sqr1_hi#0 ← { fill( $200, 0) } + (byte[$200]) mulf_sqr2_lo#0 ← { fill( $200, 0) } + (byte[$200]) mulf_sqr2_hi#0 ← { fill( $200, 0) } to:@13 mulf_init: scope:[mulf_init] from init (word) mulf_init::sqr#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) mulf_init::x_2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) mulf_init::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte*~) mulf_init::$0 ← (byte[512]) mulf_sqr1_hi#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte*~) mulf_init::$0 ← (byte[$200]) mulf_sqr1_hi#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) mulf_init::sqr1_hi#0 ← (byte*~) mulf_init::$0 - (byte*~) mulf_init::$1 ← (byte[512]) mulf_sqr1_lo#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte*~) mulf_init::$1 ← (byte[$200]) mulf_sqr1_lo#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) mulf_init::sqr1_lo#0 ← (byte*~) mulf_init::$1 to:mulf_init::@1 mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@2 @@ -127,7 +127,7 @@ mulf_init::@2: scope:[mulf_init] from mulf_init::@1 mulf_init::@5 (word~) mulf_init::$7 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 (word) mulf_init::sqr#1 ← (word~) mulf_init::$7 (byte*) mulf_init::sqr1_lo#1 ← ++ (byte*) mulf_init::sqr1_lo#2 - (byte*~) mulf_init::$8 ← (byte[512]) mulf_sqr1_lo#0 + (word/signed word/dword/signed dword) 512 + (byte*~) mulf_init::$8 ← (byte[$200]) mulf_sqr1_lo#0 + (word/signed word/dword/signed dword) $200 (bool~) mulf_init::$9 ← (byte*) mulf_init::sqr1_lo#1 != (byte*~) mulf_init::$8 if((bool~) mulf_init::$9) goto mulf_init::@1 to:mulf_init::@6 @@ -144,17 +144,17 @@ mulf_init::@6: scope:[mulf_init] from mulf_init::@2 (signed byte/signed word/signed dword~) mulf_init::$10 ← - (byte/signed byte/word/signed word/dword/signed dword) 1 (byte~) mulf_init::$11 ← ((byte)) (signed byte/signed word/signed dword~) mulf_init::$10 (byte) mulf_init::x_255#0 ← (byte~) mulf_init::$11 - (byte) mulf_init::dir#0 ← (byte/word/signed word/dword/signed dword) 255 - (byte*) mulf_init::sqr2_hi#0 ← (byte[512]) mulf_sqr2_hi#0 - (byte*) mulf_init::sqr2_lo#0 ← (byte[512]) mulf_sqr2_lo#0 + (byte) mulf_init::dir#0 ← (byte/word/signed word/dword/signed dword) $ff + (byte*) mulf_init::sqr2_hi#0 ← (byte[$200]) mulf_sqr2_hi#0 + (byte*) mulf_init::sqr2_lo#0 ← (byte[$200]) mulf_sqr2_lo#0 to:mulf_init::@3 mulf_init::@3: scope:[mulf_init] from mulf_init::@4 mulf_init::@6 (byte) mulf_init::dir#2 ← phi( mulf_init::@4/(byte) mulf_init::dir#3 mulf_init::@6/(byte) mulf_init::dir#0 ) (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_hi#3 mulf_init::@6/(byte*) mulf_init::sqr2_hi#0 ) (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_lo#1 mulf_init::@6/(byte*) mulf_init::sqr2_lo#0 ) (byte) mulf_init::x_255#2 ← phi( mulf_init::@4/(byte) mulf_init::x_255#3 mulf_init::@6/(byte) mulf_init::x_255#0 ) - *((byte*) mulf_init::sqr2_lo#2) ← *((byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) - *((byte*) mulf_init::sqr2_hi#2) ← *((byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) + *((byte*) mulf_init::sqr2_lo#2) ← *((byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) + *((byte*) mulf_init::sqr2_hi#2) ← *((byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 (byte~) mulf_init::$12 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 (byte) mulf_init::x_255#1 ← (byte~) mulf_init::$12 @@ -168,7 +168,7 @@ mulf_init::@4: scope:[mulf_init] from mulf_init::@3 mulf_init::@7 (byte) mulf_init::x_255#3 ← phi( mulf_init::@3/(byte) mulf_init::x_255#1 mulf_init::@7/(byte) mulf_init::x_255#4 ) (byte*) mulf_init::sqr2_lo#3 ← phi( mulf_init::@3/(byte*) mulf_init::sqr2_lo#2 mulf_init::@7/(byte*) mulf_init::sqr2_lo#4 ) (byte*) mulf_init::sqr2_lo#1 ← ++ (byte*) mulf_init::sqr2_lo#3 - (byte*~) mulf_init::$15 ← (byte[512]) mulf_sqr2_lo#0 + (word/signed word/dword/signed dword) 511 + (byte*~) mulf_init::$15 ← (byte[$200]) mulf_sqr2_lo#0 + (word/signed word/dword/signed dword) $1ff (bool~) mulf_init::$16 ← (byte*) mulf_init::sqr2_lo#1 != (byte*~) mulf_init::$15 if((bool~) mulf_init::$16) goto mulf_init::@3 to:mulf_init::@8 @@ -179,11 +179,11 @@ mulf_init::@7: scope:[mulf_init] from mulf_init::@3 (byte) mulf_init::dir#1 ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:mulf_init::@4 mulf_init::@8: scope:[mulf_init] from mulf_init::@4 - (byte*~) mulf_init::$17 ← (byte[512]) mulf_sqr2_lo#0 + (word/signed word/dword/signed dword) 511 - (byte*~) mulf_init::$18 ← (byte[512]) mulf_sqr1_lo#0 + (word/signed word/dword/signed dword) 256 + (byte*~) mulf_init::$17 ← (byte[$200]) mulf_sqr2_lo#0 + (word/signed word/dword/signed dword) $1ff + (byte*~) mulf_init::$18 ← (byte[$200]) mulf_sqr1_lo#0 + (word/signed word/dword/signed dword) $100 *((byte*~) mulf_init::$17) ← *((byte*~) mulf_init::$18) - (byte*~) mulf_init::$19 ← (byte[512]) mulf_sqr2_hi#0 + (word/signed word/dword/signed dword) 511 - (byte*~) mulf_init::$20 ← (byte[512]) mulf_sqr1_hi#0 + (word/signed word/dword/signed dword) 256 + (byte*~) mulf_init::$19 ← (byte[$200]) mulf_sqr2_hi#0 + (word/signed word/dword/signed dword) $1ff + (byte*~) mulf_init::$20 ← (byte[$200]) mulf_sqr1_hi#0 + (word/signed word/dword/signed dword) $100 *((byte*~) mulf_init::$19) ← *((byte*~) mulf_init::$20) to:mulf_init::@return mulf_init::@return: scope:[mulf_init] from mulf_init::@8 @@ -191,7 +191,7 @@ mulf_init::@return: scope:[mulf_init] from mulf_init::@8 to:@return mulf8u_prepare: scope:[mulf8u_prepare] from anim::mulf8s_prepare1 anim::mulf8s_prepare2 (byte) mulf8u_prepare::a#2 ← phi( anim::mulf8s_prepare1/(byte) mulf8u_prepare::a#0 anim::mulf8s_prepare2/(byte) mulf8u_prepare::a#1 ) - (byte*) mulf8u_prepare::memA#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) 253 + (byte*) mulf8u_prepare::memA#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) $fd *((byte*) mulf8u_prepare::memA#0) ← (byte) mulf8u_prepare::a#2 asm { ldamemA stamulf8u_prepared.sm1+1 stamulf8u_prepared.sm3+1 eor#$ff stamulf8u_prepared.sm2+1 stamulf8u_prepared.sm4+1 } to:mulf8u_prepare::@return @@ -200,8 +200,8 @@ mulf8u_prepare::@return: scope:[mulf8u_prepare] from mulf8u_prepare to:@return mulf8u_prepared: scope:[mulf8u_prepared] from mulf8s_prepared (byte) mulf8u_prepared::b#1 ← phi( mulf8s_prepared/(byte) mulf8u_prepared::b#0 ) - (byte*) mulf8u_prepared::resL#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) 254 - (byte*) mulf8u_prepared::memB#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) 255 + (byte*) mulf8u_prepared::resL#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) $fe + (byte*) mulf8u_prepared::memB#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) $ff *((byte*) mulf8u_prepared::memB#0) ← (byte) mulf8u_prepared::b#1 asm { ldxmemB sec sm1: ldamulf_sqr1_lo,x sm2: sbcmulf_sqr2_lo,x staresL sm3: ldamulf_sqr1_hi,x sm4: sbcmulf_sqr2_hi,x stamemB } (word) mulf8u_prepared::return#0 ← { *((byte*) mulf8u_prepared::memB#0), *((byte*) mulf8u_prepared::resL#0) } @@ -213,7 +213,7 @@ mulf8u_prepared::@return: scope:[mulf8u_prepared] from mulf8u_prepared to:@return mulf8s_prepared: scope:[mulf8s_prepared] from anim::@17 anim::@18 anim::@20 anim::@23 (signed byte) mulf8s_prepared::b#4 ← phi( anim::@17/(signed byte) mulf8s_prepared::b#0 anim::@18/(signed byte) mulf8s_prepared::b#2 anim::@20/(signed byte) mulf8s_prepared::b#1 anim::@23/(signed byte) mulf8s_prepared::b#3 ) - (signed byte*) mulf8s_prepared::memA#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 253 + (signed byte*) mulf8s_prepared::memA#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) $fd (byte~) mulf8s_prepared::$0 ← ((byte)) (signed byte) mulf8s_prepared::b#4 (byte) mulf8u_prepared::b#0 ← (byte~) mulf8s_prepared::$0 call mulf8u_prepared @@ -263,9 +263,9 @@ mulf8s_prepared::@return: scope:[mulf8s_prepared] from mulf8s_prepared::@2 return to:@return @13: scope:[] from @4 - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte*) COS#0 ← ((byte*)) (word/signed word/dword/signed dword) 8192 - (byte*~) $0 ← (byte*) COS#0 + (byte/signed byte/word/signed word/dword/signed dword) 64 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte*) COS#0 ← ((byte*)) (word/signed word/dword/signed dword) $2000 + (byte*~) $0 ← (byte*) COS#0 + (byte/signed byte/word/signed word/dword/signed dword) $40 (byte*) SIN#0 ← (byte*~) $0 kickasm(location (byte*) COS#0) {{ { .var min = -$7fff @@ -304,8 +304,8 @@ init: scope:[init] from main init::@3: scope:[init] from init (byte*) SPRITE#2 ← phi( init/(byte*) SPRITE#3 ) (byte*) SCREEN#1 ← phi( init/(byte*) SCREEN#2 ) - *((byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 - (byte*~) init::$1 ← (byte*) SCREEN#1 + (word/signed word/dword/signed dword) 1016 + *((byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff + (byte*~) init::$1 ← (byte*) SCREEN#1 + (word/signed word/dword/signed dword) $3f8 (byte*) init::sprites_ptr#0 ← (byte*~) init::$1 (byte) init::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:init::@1 @@ -313,7 +313,7 @@ init::@1: scope:[init] from init::@1 init::@3 (byte) init::i#2 ← phi( init::@1/(byte) init::i#1 init::@3/(byte) init::i#0 ) (byte*) init::sprites_ptr#1 ← phi( init::@1/(byte*) init::sprites_ptr#1 init::@3/(byte*) init::sprites_ptr#0 ) (byte*) SPRITE#1 ← phi( init::@1/(byte*) SPRITE#1 init::@3/(byte*) SPRITE#2 ) - (byte*~) init::$2 ← (byte*) SPRITE#1 / (byte/signed byte/word/signed word/dword/signed dword) 64 + (byte*~) init::$2 ← (byte*) SPRITE#1 / (byte/signed byte/word/signed word/dword/signed dword) $40 (byte~) init::$3 ← ((byte)) (byte*~) init::$2 *((byte*) init::sprites_ptr#1 + (byte) init::i#2) ← (byte~) init::$3 *((byte*) SPRITES_COLS#0 + (byte) init::i#2) ← (byte) GREEN#0 @@ -328,14 +328,14 @@ init::@return: scope:[init] from init::@1 (byte*) SIN#16 ← phi( @13/(byte*) SIN#0 ) (byte*) COS#16 ← phi( @13/(byte*) COS#0 ) (byte*) SCREEN#5 ← phi( @13/(byte*) SCREEN#0 ) - (signed byte/signed word/signed dword~) $1 ← - (byte/signed byte/word/signed word/dword/signed dword) 70 - (signed byte/signed word/signed dword~) $2 ← - (byte/signed byte/word/signed word/dword/signed dword) 70 - (signed byte/signed word/signed dword~) $3 ← - (byte/signed byte/word/signed word/dword/signed dword) 70 - (signed byte[8]) xs#0 ← { (signed byte/signed word/signed dword~) $1, (signed byte/signed word/signed dword~) $2, (signed byte/signed word/signed dword~) $3, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 70, (byte/signed byte/word/signed word/dword/signed dword) 70, (byte/signed byte/word/signed word/dword/signed dword) 70 } - (signed byte/signed word/signed dword~) $4 ← - (byte/signed byte/word/signed word/dword/signed dword) 70 - (signed byte/signed word/signed dword~) $5 ← - (byte/signed byte/word/signed word/dword/signed dword) 70 - (signed byte/signed word/signed dword~) $6 ← - (byte/signed byte/word/signed word/dword/signed dword) 70 - (signed byte[8]) ys#0 ← { (signed byte/signed word/signed dword~) $4, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 70, (signed byte/signed word/signed dword~) $5, (byte/signed byte/word/signed word/dword/signed dword) 70, (signed byte/signed word/signed dword~) $6, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 70 } + (signed byte/signed word/signed dword~) $1 ← - (byte/signed byte/word/signed word/dword/signed dword) $46 + (signed byte/signed word/signed dword~) $2 ← - (byte/signed byte/word/signed word/dword/signed dword) $46 + (signed byte/signed word/signed dword~) $3 ← - (byte/signed byte/word/signed word/dword/signed dword) $46 + (signed byte[8]) xs#0 ← { (signed byte/signed word/signed dword~) $1, (signed byte/signed word/signed dword~) $2, (signed byte/signed word/signed dword~) $3, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $46, (byte/signed byte/word/signed word/dword/signed dword) $46, (byte/signed byte/word/signed word/dword/signed dword) $46 } + (signed byte/signed word/signed dword~) $4 ← - (byte/signed byte/word/signed word/dword/signed dword) $46 + (signed byte/signed word/signed dword~) $5 ← - (byte/signed byte/word/signed word/dword/signed dword) $46 + (signed byte/signed word/signed dword~) $6 ← - (byte/signed byte/word/signed word/dword/signed dword) $46 + (signed byte[8]) ys#0 ← { (signed byte/signed word/signed dword~) $4, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $46, (signed byte/signed word/signed dword~) $5, (byte/signed byte/word/signed word/dword/signed dword) $46, (signed byte/signed word/signed dword~) $6, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $46 } to:@16 anim: scope:[anim] from main::@1 (byte*) SIN#6 ← phi( main::@1/(byte*) SIN#8 ) @@ -357,7 +357,7 @@ anim::@4: scope:[anim] from anim::@2 anim::@5 (byte*) SIN#2 ← phi( anim::@2/(byte*) SIN#3 anim::@5/(byte*) SIN#4 ) (byte) anim::angle#4 ← phi( anim::@2/(byte) anim::angle#6 anim::@5/(byte) anim::angle#7 ) (byte*) COS#2 ← phi( anim::@2/(byte*) COS#3 anim::@5/(byte*) COS#4 ) - (bool~) anim::$0 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 255 + (bool~) anim::$0 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) $ff if((bool~) anim::$0) goto anim::@5 to:anim::@6 anim::@5: scope:[anim] from anim::@4 @@ -545,8 +545,8 @@ anim::@24: scope:[anim] from anim::@23 (signed word) anim::yr#1 ← (signed word) anim::yr#2 + (signed word~) anim::$12 (byte~) anim::$13 ← > (signed word) anim::xr#3 (signed byte~) anim::$14 ← ((signed byte)) (byte~) anim::$13 - (signed word/signed byte/signed dword~) anim::$15 ← (signed byte~) anim::$14 + (byte/signed byte/word/signed word/dword/signed dword) 24 - (signed word/signed dword~) anim::$16 ← (signed word/signed byte/signed dword~) anim::$15 + (byte/word/signed word/dword/signed dword) 149 + (signed word/signed byte/signed dword~) anim::$15 ← (signed byte~) anim::$14 + (byte/signed byte/word/signed word/dword/signed dword) $18 + (signed word/signed dword~) anim::$16 ← (signed word/signed byte/signed dword~) anim::$15 + (byte/word/signed word/dword/signed dword) $95 (signed word) anim::xpos#0 ← (signed word/signed dword~) anim::$16 (byte~) anim::$17 ← (byte) anim::sprite_msb#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) anim::sprite_msb#1 ← (byte~) anim::$17 @@ -566,8 +566,8 @@ anim::@8: scope:[anim] from anim::@14 anim::@24 (byte) anim::i#3 ← phi( anim::@14/(byte) anim::i#4 anim::@24/(byte) anim::i#5 ) (signed word) anim::yr#3 ← phi( anim::@14/(signed word) anim::yr#5 anim::@24/(signed word) anim::yr#1 ) (byte~) anim::$21 ← > (signed word) anim::yr#3 - (byte/signed word/word/dword/signed dword~) anim::$22 ← (byte~) anim::$21 + (byte/signed byte/word/signed word/dword/signed dword) 89 - (byte/signed word/word/dword/signed dword~) anim::$23 ← (byte/signed word/word/dword/signed dword~) anim::$22 + (byte/signed byte/word/signed word/dword/signed dword) 51 + (byte/signed word/word/dword/signed dword~) anim::$22 ← (byte~) anim::$21 + (byte/signed byte/word/signed word/dword/signed dword) $59 + (byte/signed word/word/dword/signed dword~) anim::$23 ← (byte/signed word/word/dword/signed dword~) anim::$22 + (byte/signed byte/word/signed word/dword/signed dword) $33 (byte) anim::ypos#0 ← (byte/signed word/word/dword/signed dword~) anim::$23 (byte~) anim::$24 ← (byte) anim::i#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) anim::i2#0 ← (byte~) anim::$24 @@ -588,7 +588,7 @@ anim::@14: scope:[anim] from anim::@24 (byte) anim::i#4 ← phi( anim::@24/(byte) anim::i#5 ) (signed word) anim::yr#5 ← phi( anim::@24/(signed word) anim::yr#1 ) (byte) anim::sprite_msb#4 ← phi( anim::@24/(byte) anim::sprite_msb#1 ) - (byte) anim::sprite_msb#2 ← (byte) anim::sprite_msb#4 | (byte/word/signed word/dword/signed dword) 128 + (byte) anim::sprite_msb#2 ← (byte) anim::sprite_msb#4 | (byte/word/signed word/dword/signed dword) $80 to:anim::@8 anim::@15: scope:[anim] from anim::@8 (byte*) SIN#7 ← phi( anim::@8/(byte*) SIN#9 ) @@ -606,7 +606,7 @@ anim::@return: scope:[anim] from anim::@1 (byte*) SIN#13 ← phi( @15/(byte*) SIN#16 ) (byte*) COS#13 ← phi( @15/(byte*) COS#16 ) (byte*) SCREEN#4 ← phi( @15/(byte*) SCREEN#5 ) - (byte*) SPRITE#0 ← ((byte*)) (word/signed word/dword/signed dword) 12288 + (byte*) SPRITE#0 ← ((byte*)) (word/signed word/dword/signed dword) $3000 kickasm(location (byte*) SPRITE#0) {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) .for (var x=0;x<3; x++) @@ -1226,14 +1226,14 @@ SYMBOL TABLE SSA (byte) mulf_init::x_255#2 (byte) mulf_init::x_255#3 (byte) mulf_init::x_255#4 -(byte[512]) mulf_sqr1_hi -(byte[512]) mulf_sqr1_hi#0 -(byte[512]) mulf_sqr1_lo -(byte[512]) mulf_sqr1_lo#0 -(byte[512]) mulf_sqr2_hi -(byte[512]) mulf_sqr2_hi#0 -(byte[512]) mulf_sqr2_lo -(byte[512]) mulf_sqr2_lo#0 +(byte[$200]) mulf_sqr1_hi +(byte[$200]) mulf_sqr1_hi#0 +(byte[$200]) mulf_sqr1_lo +(byte[$200]) mulf_sqr1_lo#0 +(byte[$200]) mulf_sqr2_hi +(byte[$200]) mulf_sqr2_hi#0 +(byte[$200]) mulf_sqr2_lo +(byte[$200]) mulf_sqr2_lo#0 (signed byte[8]) xs (signed byte[8]) xs#0 (signed byte[8]) ys @@ -1367,73 +1367,73 @@ Simple Condition (bool~) mulf_init::$16 [130] if((byte*) mulf_init::sqr2_lo#1!=( Simple Condition (bool~) mulf8s_prepared::$3 [165] if(*((signed byte*) mulf8s_prepared::memA#0)>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@1 Simple Condition (bool~) mulf8s_prepared::$9 [169] if((signed byte) mulf8s_prepared::b#4>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf8s_prepared::@2 Simple Condition (bool~) init::$4 [213] if((byte) init::i#1!=rangelast(0,7)) goto init::@1 -Simple Condition (bool~) anim::$0 [231] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@5 +Simple Condition (bool~) anim::$0 [231] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto anim::@5 Simple Condition (bool~) anim::$20 [296] if((byte~) anim::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto anim::@8 Simple Condition (bool~) anim::$26 [309] if((byte) anim::i#1!=rangelast(0,7)) goto anim::@7 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -1444,56 +1444,56 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 -Constant (const byte[512]) mulf_sqr1_lo#0 = { fill( 512, 0) } -Constant (const byte[512]) mulf_sqr1_hi#0 = { fill( 512, 0) } -Constant (const byte[512]) mulf_sqr2_lo#0 = { fill( 512, 0) } -Constant (const byte[512]) mulf_sqr2_hi#0 = { fill( 512, 0) } +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f +Constant (const byte[$200]) mulf_sqr1_lo#0 = { fill( $200, 0) } +Constant (const byte[$200]) mulf_sqr1_hi#0 = { fill( $200, 0) } +Constant (const byte[$200]) mulf_sqr2_lo#0 = { fill( $200, 0) } +Constant (const byte[$200]) mulf_sqr2_hi#0 = { fill( $200, 0) } Constant (const word) mulf_init::sqr#0 = 0 Constant (const byte) mulf_init::x_2#0 = 0 Constant (const byte) mulf_init::c#0 = 0 Constant (const signed byte/signed word/signed dword) mulf_init::$10 = -1 -Constant (const byte) mulf_init::dir#0 = 255 +Constant (const byte) mulf_init::dir#0 = $ff Constant (const byte) mulf_init::dir#1 = 1 -Constant (const byte*) mulf8u_prepare::memA#0 = ((byte*))253 -Constant (const byte*) mulf8u_prepared::resL#0 = ((byte*))254 -Constant (const byte*) mulf8u_prepared::memB#0 = ((byte*))255 -Constant (const signed byte*) mulf8s_prepared::memA#0 = ((signed byte*))253 -Constant (const byte*) SCREEN#0 = ((byte*))1024 -Constant (const byte*) COS#0 = ((byte*))8192 +Constant (const byte*) mulf8u_prepare::memA#0 = ((byte*))$fd +Constant (const byte*) mulf8u_prepared::resL#0 = ((byte*))$fe +Constant (const byte*) mulf8u_prepared::memB#0 = ((byte*))$ff +Constant (const signed byte*) mulf8s_prepared::memA#0 = ((signed byte*))$fd +Constant (const byte*) SCREEN#0 = ((byte*))$400 +Constant (const byte*) COS#0 = ((byte*))$2000 Constant (const byte) init::i#0 = 0 -Constant (const signed byte/signed word/signed dword) $1 = -70 -Constant (const signed byte/signed word/signed dword) $2 = -70 -Constant (const signed byte/signed word/signed dword) $3 = -70 -Constant (const signed byte/signed word/signed dword) $4 = -70 -Constant (const signed byte/signed word/signed dword) $5 = -70 -Constant (const signed byte/signed word/signed dword) $6 = -70 +Constant (const signed byte/signed word/signed dword) $1 = -$46 +Constant (const signed byte/signed word/signed dword) $2 = -$46 +Constant (const signed byte/signed word/signed dword) $3 = -$46 +Constant (const signed byte/signed word/signed dword) $4 = -$46 +Constant (const signed byte/signed word/signed dword) $5 = -$46 +Constant (const signed byte/signed word/signed dword) $6 = -$46 Constant (const byte) anim::angle#0 = 0 Constant (const byte) anim::sprite_msb#0 = 0 Constant (const byte) anim::i#0 = 0 -Constant (const byte*) SPRITE#0 = ((byte*))12288 +Constant (const byte*) SPRITE#0 = ((byte*))$3000 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) mulf_init::sqr1_hi#0 = mulf_sqr1_hi#0+1 Constant (const byte*) mulf_init::sqr1_lo#0 = mulf_sqr1_lo#0+1 -Constant (const byte*) mulf_init::$8 = mulf_sqr1_lo#0+512 +Constant (const byte*) mulf_init::$8 = mulf_sqr1_lo#0+$200 Constant (const byte) mulf_init::x_255#0 = ((byte))mulf_init::$10 Constant (const byte*) mulf_init::sqr2_hi#0 = mulf_sqr2_hi#0 Constant (const byte*) mulf_init::sqr2_lo#0 = mulf_sqr2_lo#0 -Constant (const byte*) mulf_init::$15 = mulf_sqr2_lo#0+511 -Constant (const byte*) mulf_init::$17 = mulf_sqr2_lo#0+511 -Constant (const byte*) mulf_init::$18 = mulf_sqr1_lo#0+256 -Constant (const byte*) mulf_init::$19 = mulf_sqr2_hi#0+511 -Constant (const byte*) mulf_init::$20 = mulf_sqr1_hi#0+256 -Constant (const byte*) SIN#0 = COS#0+64 -Constant (const byte*) init::sprites_ptr#0 = SCREEN#0+1016 -Constant (const byte*) init::$2 = SPRITE#0/64 -Constant (const signed byte[8]) xs#0 = { $1, $2, $3, 0, 0, 70, 70, 70 } -Constant (const signed byte[8]) ys#0 = { $4, 0, 70, $5, 70, $6, 0, 70 } +Constant (const byte*) mulf_init::$15 = mulf_sqr2_lo#0+$1ff +Constant (const byte*) mulf_init::$17 = mulf_sqr2_lo#0+$1ff +Constant (const byte*) mulf_init::$18 = mulf_sqr1_lo#0+$100 +Constant (const byte*) mulf_init::$19 = mulf_sqr2_hi#0+$1ff +Constant (const byte*) mulf_init::$20 = mulf_sqr1_hi#0+$100 +Constant (const byte*) SIN#0 = COS#0+$40 +Constant (const byte*) init::sprites_ptr#0 = SCREEN#0+$3f8 +Constant (const byte*) init::$2 = SPRITE#0/$40 +Constant (const signed byte[8]) xs#0 = { $1, $2, $3, 0, 0, $46, $46, $46 } +Constant (const signed byte[8]) ys#0 = { $4, 0, $46, $5, $46, $6, 0, $46 } Successful SSA optimization Pass2ConstantIdentification Constant (const byte) init::$3 = ((byte))init::$2 Successful SSA optimization Pass2ConstantIdentification @@ -1555,34 +1555,34 @@ Inlining constant with var siblings (const byte) anim::angle#0 Inlining constant with var siblings (const byte) anim::sprite_msb#0 Inlining constant with var siblings (const byte) anim::i#0 Constant inlined mulf_init::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mulf_init::sqr2_lo#0 = (const byte[512]) mulf_sqr2_lo#0 +Constant inlined mulf_init::sqr2_lo#0 = (const byte[$200]) mulf_sqr2_lo#0 Constant inlined anim::sprite_msb#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined init::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mulf_init::sqr2_hi#0 = (const byte[512]) mulf_sqr2_hi#0 -Constant inlined $1 = -(byte/signed byte/word/signed word/dword/signed dword) 70 -Constant inlined $2 = -(byte/signed byte/word/signed word/dword/signed dword) 70 +Constant inlined mulf_init::sqr2_hi#0 = (const byte[$200]) mulf_sqr2_hi#0 +Constant inlined $1 = -(byte/signed byte/word/signed word/dword/signed dword) $46 +Constant inlined $2 = -(byte/signed byte/word/signed word/dword/signed dword) $46 Constant inlined anim::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined $3 = -(byte/signed byte/word/signed word/dword/signed dword) 70 -Constant inlined $4 = -(byte/signed byte/word/signed word/dword/signed dword) 70 -Constant inlined $5 = -(byte/signed byte/word/signed word/dword/signed dword) 70 +Constant inlined $3 = -(byte/signed byte/word/signed word/dword/signed dword) $46 +Constant inlined $4 = -(byte/signed byte/word/signed word/dword/signed dword) $46 +Constant inlined $5 = -(byte/signed byte/word/signed word/dword/signed dword) $46 Constant inlined mulf_init::dir#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined $6 = -(byte/signed byte/word/signed word/dword/signed dword) 70 -Constant inlined mulf_init::dir#0 = (byte/word/signed word/dword/signed dword) 255 -Constant inlined mulf_init::$20 = (const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256 +Constant inlined $6 = -(byte/signed byte/word/signed word/dword/signed dword) $46 +Constant inlined mulf_init::dir#0 = (byte/word/signed word/dword/signed dword) $ff +Constant inlined mulf_init::$20 = (const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100 Constant inlined mulf_init::x_255#0 = ((byte))-(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined mulf_init::x_2#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mulf_init::sqr#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined init::$3 = ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 -Constant inlined init::$2 = (const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 +Constant inlined init::$3 = ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 +Constant inlined init::$2 = (const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 Constant inlined anim::angle#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mulf_init::$8 = (const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512 -Constant inlined mulf_init::sqr1_hi#0 = (const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined mulf_init::$8 = (const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200 +Constant inlined mulf_init::sqr1_hi#0 = (const byte[$200]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined mulf_init::$10 = -(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined mulf_init::sqr1_lo#0 = (const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined mulf_init::$15 = (const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511 -Constant inlined mulf_init::$18 = (const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256 -Constant inlined mulf_init::$19 = (const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511 -Constant inlined mulf_init::$17 = (const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511 +Constant inlined mulf_init::sqr1_lo#0 = (const byte[$200]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined mulf_init::$15 = (const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff +Constant inlined mulf_init::$18 = (const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100 +Constant inlined mulf_init::$19 = (const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff +Constant inlined mulf_init::$17 = (const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting anim::@25(between anim::@8 and anim::@7) Added new block during phi lifting anim::@26(between anim::@24 and anim::@8) @@ -1698,7 +1698,7 @@ anim::@1: scope:[anim] from anim anim::@15 [11] (byte) anim::angle#10 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@15/(byte) anim::angle#1 ) to:anim::@4 anim::@4: scope:[anim] from anim::@1 anim::@4 - [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 + [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto anim::@4 to:anim::@6 anim::@6: scope:[anim] from anim::@4 [13] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) @@ -1752,18 +1752,18 @@ anim::@24: scope:[anim] from anim::@23 [42] (signed word) anim::yr#1 ← (signed word) anim::yr#0 + (signed word~) anim::$12 [43] (byte~) anim::$13 ← > (signed word) anim::xr#1 [44] (signed byte~) anim::$15 ← (signed byte)(byte~) anim::$13 - [45] (signed word) anim::xpos#0 ← (signed byte~) anim::$15 + (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/word/signed word/dword/signed dword) 149 + [45] (signed word) anim::xpos#0 ← (signed byte~) anim::$15 + (byte/signed byte/word/signed word/dword/signed dword) $18+(byte/word/signed word/dword/signed dword) $95 [46] (byte) anim::sprite_msb#1 ← (byte) anim::sprite_msb#10 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [47] (byte~) anim::$18 ← > (signed word) anim::xpos#0 [48] if((byte~) anim::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto anim::@8 to:anim::@14 anim::@14: scope:[anim] from anim::@24 - [49] (byte) anim::sprite_msb#2 ← (byte) anim::sprite_msb#1 | (byte/word/signed word/dword/signed dword) 128 + [49] (byte) anim::sprite_msb#2 ← (byte) anim::sprite_msb#1 | (byte/word/signed word/dword/signed dword) $80 to:anim::@8 anim::@8: scope:[anim] from anim::@14 anim::@24 [50] (byte) anim::sprite_msb#5 ← phi( anim::@14/(byte) anim::sprite_msb#2 anim::@24/(byte) anim::sprite_msb#1 ) [51] (byte~) anim::$22 ← > (signed word) anim::yr#1 - [52] (byte) anim::ypos#0 ← (byte~) anim::$22 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 51 + [52] (byte) anim::ypos#0 ← (byte~) anim::$22 + (byte/signed byte/word/signed word/dword/signed dword) $59+(byte/signed byte/word/signed word/dword/signed dword) $33 [53] (byte) anim::i2#0 ← (byte) anim::i#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 [54] (byte~) anim::$25 ← < (signed word) anim::xpos#0 [55] *((const byte*) SPRITES_XPOS#0 + (byte) anim::i2#0) ← (byte~) anim::$25 @@ -1826,11 +1826,11 @@ init: scope:[init] from main [86] call mulf_init to:init::@3 init::@3: scope:[init] from init - [87] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 + [87] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff to:init::@1 init::@1: scope:[init] from init::@1 init::@3 [88] (byte) init::i#2 ← phi( init::@1/(byte) init::i#1 init::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [89] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 + [89] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 [90] *((const byte*) SPRITES_COLS#0 + (byte) init::i#2) ← (const byte) GREEN#0 [91] (byte) init::i#1 ← ++ (byte) init::i#2 [92] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto init::@1 @@ -1843,8 +1843,8 @@ mulf_init: scope:[mulf_init] from init to:mulf_init::@1 mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@2 [95] (byte) mulf_init::x_2#3 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::x_2#2 ) - [95] (byte*) mulf_init::sqr1_hi#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_hi#1 ) - [95] (byte*) mulf_init::sqr1_lo#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_lo#1 ) + [95] (byte*) mulf_init::sqr1_hi#2 ← phi( mulf_init/(const byte[$200]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_hi#1 ) + [95] (byte*) mulf_init::sqr1_lo#2 ← phi( mulf_init/(const byte[$200]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_lo#1 ) [95] (word) mulf_init::sqr#4 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(word) mulf_init::sqr#1 ) [95] (byte) mulf_init::c#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::c#1 ) [96] (byte) mulf_init::c#1 ← ++ (byte) mulf_init::c#2 @@ -1865,15 +1865,15 @@ mulf_init::@2: scope:[mulf_init] from mulf_init::@1 mulf_init::@5 [106] (byte*) mulf_init::sqr1_hi#1 ← ++ (byte*) mulf_init::sqr1_hi#2 [107] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [108] (byte*) mulf_init::sqr1_lo#1 ← ++ (byte*) mulf_init::sqr1_lo#2 - [109] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 + [109] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 to:mulf_init::@3 mulf_init::@3: scope:[mulf_init] from mulf_init::@2 mulf_init::@4 - [110] (byte) mulf_init::dir#2 ← phi( mulf_init::@4/(byte) mulf_init::dir#3 mulf_init::@2/(byte/word/signed word/dword/signed dword) 255 ) - [110] (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_hi#1 mulf_init::@2/(const byte[512]) mulf_sqr2_hi#0 ) - [110] (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_lo#1 mulf_init::@2/(const byte[512]) mulf_sqr2_lo#0 ) + [110] (byte) mulf_init::dir#2 ← phi( mulf_init::@4/(byte) mulf_init::dir#3 mulf_init::@2/(byte/word/signed word/dword/signed dword) $ff ) + [110] (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_hi#1 mulf_init::@2/(const byte[$200]) mulf_sqr2_hi#0 ) + [110] (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_lo#1 mulf_init::@2/(const byte[$200]) mulf_sqr2_lo#0 ) [110] (byte) mulf_init::x_255#2 ← phi( mulf_init::@4/(byte) mulf_init::x_255#1 mulf_init::@2/((byte))-(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [111] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) - [112] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) + [111] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) + [112] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [113] (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 [114] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [115] if((byte) mulf_init::x_255#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@12 @@ -1881,11 +1881,11 @@ mulf_init::@3: scope:[mulf_init] from mulf_init::@2 mulf_init::@4 mulf_init::@4: scope:[mulf_init] from mulf_init::@12 mulf_init::@3 [116] (byte) mulf_init::dir#3 ← phi( mulf_init::@12/(byte) mulf_init::dir#2 mulf_init::@3/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [117] (byte*) mulf_init::sqr2_lo#1 ← ++ (byte*) mulf_init::sqr2_lo#2 - [118] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 + [118] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 to:mulf_init::@8 mulf_init::@8: scope:[mulf_init] from mulf_init::@4 - [119] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) - [120] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) + [119] *((const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100) + [120] *((const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100) to:mulf_init::@return mulf_init::@return: scope:[mulf_init] from mulf_init::@8 [121] return @@ -2100,10 +2100,10 @@ VARIABLE REGISTER WEIGHTS (byte) mulf_init::x_255 (byte) mulf_init::x_255#1 5.5 (byte) mulf_init::x_255#2 11.0 -(byte[512]) mulf_sqr1_hi -(byte[512]) mulf_sqr1_lo -(byte[512]) mulf_sqr2_hi -(byte[512]) mulf_sqr2_lo +(byte[$200]) mulf_sqr1_hi +(byte[$200]) mulf_sqr1_lo +(byte[$200]) mulf_sqr2_hi +(byte[$200]) mulf_sqr2_lo (signed byte[8]) xs (signed byte[8]) ys @@ -2359,7 +2359,7 @@ anim: { jmp b4 //SEG25 anim::@4 b4: - //SEG26 [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG26 [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto anim::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -2558,7 +2558,7 @@ anim: { //SEG85 [44] (signed byte~) anim::$15 ← (signed byte)(byte~) anim::$13 -- vbsz1=vbsz2 lda _13 sta _15 - //SEG86 [45] (signed word) anim::xpos#0 ← (signed byte~) anim::$15 + (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/word/signed word/dword/signed dword) 149 -- vwsz1=vbsz2_plus_vbuc1 + //SEG86 [45] (signed word) anim::xpos#0 ← (signed byte~) anim::$15 + (byte/signed byte/word/signed word/dword/signed dword) $18+(byte/word/signed word/dword/signed dword) $95 -- vwsz1=vbsz2_plus_vbuc1 lda _15 sta xpos ora #$7f @@ -2585,7 +2585,7 @@ anim: { jmp b14 //SEG90 anim::@14 b14: - //SEG91 [49] (byte) anim::sprite_msb#2 ← (byte) anim::sprite_msb#1 | (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz1_bor_vbuc1 + //SEG91 [49] (byte) anim::sprite_msb#2 ← (byte) anim::sprite_msb#1 | (byte/word/signed word/dword/signed dword) $80 -- vbuz1=vbuz1_bor_vbuc1 lda #$80 ora sprite_msb sta sprite_msb @@ -2599,7 +2599,7 @@ anim: { //SEG95 [51] (byte~) anim::$22 ← > (signed word) anim::yr#1 -- vbuz1=_hi_vwsz2 lda yr_1+1 sta _22 - //SEG96 [52] (byte) anim::ypos#0 ← (byte~) anim::$22 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 51 -- vbuz1=vbuz2_plus_vbuc1 + //SEG96 [52] (byte) anim::ypos#0 ← (byte~) anim::$22 + (byte/signed byte/word/signed word/dword/signed dword) $59+(byte/signed byte/word/signed word/dword/signed dword) $33 -- vbuz1=vbuz2_plus_vbuc1 lda #$59+$33 clc adc _22 @@ -2796,7 +2796,7 @@ init: { jmp b3 //SEG146 init::@3 b3: - //SEG147 [87] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 -- _deref_pbuc1=vbuc2 + //SEG147 [87] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff -- _deref_pbuc1=vbuc2 lda #$ff sta SPRITES_ENABLE //SEG148 [88] phi from init::@3 to init::@1 [phi:init::@3->init::@1] @@ -2811,7 +2811,7 @@ init: { jmp b1 //SEG152 init::@1 b1: - //SEG153 [89] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG153 [89] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 -- pbuc1_derefidx_vbuz1=vbuc2 ldy i lda #$ff&SPRITE/$40 sta sprites_ptr,y @@ -2851,12 +2851,12 @@ mulf_init: { //SEG161 [95] phi (byte) mulf_init::x_2#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#0] -- vbuz1=vbuc1 lda #0 sta x_2 - //SEG162 [95] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 + //SEG162 [95] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[$200]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 lda #mulf_sqr1_hi+1 sta sqr1_hi+1 - //SEG163 [95] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 + //SEG163 [95] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[$200]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 lda #mulf_sqr1_lo+1 @@ -2940,7 +2940,7 @@ mulf_init: { bne !+ inc sqr1_lo+1 !: - //SEG190 [109] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG190 [109] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 -- pbuz1_neq_pbuc1_then_la1 lda sqr1_lo+1 cmp #>mulf_sqr1_lo+$200 bne b1_from_b2 @@ -2949,15 +2949,15 @@ mulf_init: { bne b1_from_b2 //SEG191 [110] phi from mulf_init::@2 to mulf_init::@3 [phi:mulf_init::@2->mulf_init::@3] b3_from_b2: - //SEG192 [110] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) 255 [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 + //SEG192 [110] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) $ff [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 lda #$ff sta dir - //SEG193 [110] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[512]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 + //SEG193 [110] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[$200]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 lda #mulf_sqr2_hi sta sqr2_hi+1 - //SEG194 [110] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[512]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 + //SEG194 [110] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[$200]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 lda #mulf_sqr2_lo @@ -2975,12 +2975,12 @@ mulf_init: { jmp b3 //SEG201 mulf_init::@3 b3: - //SEG202 [111] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG202 [111] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy x_255 lda mulf_sqr1_lo,y ldy #0 sta (sqr2_lo),y - //SEG203 [112] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG203 [112] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy x_255 lda mulf_sqr1_hi,y ldy #0 @@ -3012,7 +3012,7 @@ mulf_init: { bne !+ inc sqr2_lo+1 !: - //SEG211 [118] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 -- pbuz1_neq_pbuc1_then_la1 + //SEG211 [118] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 -- pbuz1_neq_pbuc1_then_la1 lda sqr2_lo+1 cmp #>mulf_sqr2_lo+$1ff bne b3_from_b4 @@ -3022,11 +3022,11 @@ mulf_init: { jmp b8 //SEG212 mulf_init::@8 b8: - //SEG213 [119] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) -- _deref_pbuc1=_deref_pbuc2 + //SEG213 [119] *((const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100) -- _deref_pbuc1=_deref_pbuc2 // Set the very last value g(511) = f(256) lda mulf_sqr1_lo+$100 sta mulf_sqr2_lo+$1ff - //SEG214 [120] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) -- _deref_pbuc1=_deref_pbuc2 + //SEG214 [120] *((const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100) -- _deref_pbuc1=_deref_pbuc2 lda mulf_sqr1_hi+$100 sta mulf_sqr2_hi+$1ff jmp breturn @@ -3080,7 +3080,7 @@ mulf_init: { REGISTER UPLIFT POTENTIAL REGISTERS Equivalence Class zp ZP_BYTE:59 [ anim::$22 ] has ALU potential. -Statement [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::angle#10 ] ( main:3::anim:8 [ anim::angle#10 ] ) always clobbers reg byte a +Statement [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto anim::@4 [ anim::angle#10 ] ( main:3::anim:8 [ anim::angle#10 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ anim::angle#10 anim::angle#1 ] Statement [17] (byte~) mulf8u_prepare::a#3 ← (byte)(signed byte)*((const byte*) COS#0 + (byte) anim::angle#10) [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8u_prepare::a#3 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8u_prepare::a#3 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ anim::i#10 anim::i#1 ] @@ -3103,10 +3103,10 @@ Statement [40] (signed word~) anim::$11 ← (signed word) mulf8s_prepared::retur Statement [41] (signed word~) anim::$12 ← (signed word~) anim::$11 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$12 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$12 ] ) always clobbers reg byte a Statement [42] (signed word) anim::yr#1 ← (signed word) anim::yr#0 + (signed word~) anim::$12 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::xr#1 anim::yr#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::xr#1 anim::yr#1 ] ) always clobbers reg byte a Statement [43] (byte~) anim::$13 ← > (signed word) anim::xr#1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$13 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$13 ] ) always clobbers reg byte a -Statement [45] (signed word) anim::xpos#0 ← (signed byte~) anim::$15 + (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/word/signed word/dword/signed dword) 149 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::xpos#0 ] ) always clobbers reg byte a +Statement [45] (signed word) anim::xpos#0 ← (signed byte~) anim::$15 + (byte/signed byte/word/signed word/dword/signed dword) $18+(byte/word/signed word/dword/signed dword) $95 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::xpos#0 ] ) always clobbers reg byte a Statement [47] (byte~) anim::$18 ← > (signed word) anim::xpos#0 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 anim::$18 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 anim::$18 ] ) always clobbers reg byte a -Statement [49] (byte) anim::sprite_msb#2 ← (byte) anim::sprite_msb#1 | (byte/word/signed word/dword/signed dword) 128 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#2 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#2 ] ) always clobbers reg byte a -Statement [52] (byte) anim::ypos#0 ← (byte~) anim::$22 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 51 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 ] ) always clobbers reg byte a +Statement [49] (byte) anim::sprite_msb#2 ← (byte) anim::sprite_msb#1 | (byte/word/signed word/dword/signed dword) $80 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#2 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#2 ] ) always clobbers reg byte a +Statement [52] (byte) anim::ypos#0 ← (byte~) anim::$22 + (byte/signed byte/word/signed word/dword/signed dword) $59+(byte/signed byte/word/signed word/dword/signed dword) $33 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 ] ) always clobbers reg byte a Statement [53] (byte) anim::i2#0 ← (byte) anim::i#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 anim::i2#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 anim::i2#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:60 [ anim::ypos#0 ] Statement [54] (byte~) anim::$25 ← < (signed word) anim::xpos#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 anim::$25 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 anim::$25 ] ) always clobbers reg byte a @@ -3130,8 +3130,8 @@ Removing always clobbered register reg byte x as potential for zp ZP_BYTE:25 [ a Removing always clobbered register reg byte x as potential for zp ZP_BYTE:5 [ mulf8s_prepared::b#4 mulf8s_prepared::b#0 mulf8s_prepared::b#2 mulf8s_prepared::b#1 mulf8s_prepared::b#3 ] Statement [79] (word) mulf8u_prepared::return#0 ← *((const byte*) mulf8u_prepared::memB#0) w= *((const byte*) mulf8u_prepared::resL#0) [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:20::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:25::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:32::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:38::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) always clobbers reg byte a Statement asm { ldamemA stamulf8u_prepared.sm1+1 stamulf8u_prepared.sm3+1 eor#$ff stamulf8u_prepared.sm2+1 stamulf8u_prepared.sm4+1 } always clobbers reg byte a -Statement [87] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:3::init:6 [ ] ) always clobbers reg byte a -Statement [89] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ init::i#2 ] ( main:3::init:6 [ init::i#2 ] ) always clobbers reg byte a +Statement [87] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff [ ] ( main:3::init:6 [ ] ) always clobbers reg byte a +Statement [89] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 [ init::i#2 ] ( main:3::init:6 [ init::i#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:9 [ init::i#2 init::i#1 ] Statement [90] *((const byte*) SPRITES_COLS#0 + (byte) init::i#2) ← (const byte) GREEN#0 [ init::i#2 ] ( main:3::init:6 [ init::i#2 ] ) always clobbers reg byte a Statement [97] (byte~) mulf_init::$2 ← (byte) mulf_init::c#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ) always clobbers reg byte a @@ -3144,18 +3144,18 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:15 [ m Statement [104] (byte~) mulf_init::$6 ← > (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ) always clobbers reg byte a Statement [105] *((byte*) mulf_init::sqr1_hi#2) ← (byte~) mulf_init::$6 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) always clobbers reg byte y Statement [107] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a -Statement [109] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a -Statement [111] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y +Statement [109] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a +Statement [111] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp ZP_BYTE:18 [ mulf_init::x_255#2 mulf_init::x_255#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:18 [ mulf_init::x_255#2 mulf_init::x_255#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:23 [ mulf_init::dir#2 mulf_init::dir#3 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:23 [ mulf_init::dir#2 mulf_init::dir#3 ] -Statement [112] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y +Statement [112] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y Statement [114] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) always clobbers reg byte a -Statement [118] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) always clobbers reg byte a -Statement [119] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) [ ] ( main:3::init:6::mulf_init:86 [ ] ) always clobbers reg byte a -Statement [120] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) [ ] ( main:3::init:6::mulf_init:86 [ ] ) always clobbers reg byte a -Statement [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 [ anim::angle#10 ] ( main:3::anim:8 [ anim::angle#10 ] ) always clobbers reg byte a +Statement [118] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) always clobbers reg byte a +Statement [119] *((const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100) [ ] ( main:3::init:6::mulf_init:86 [ ] ) always clobbers reg byte a +Statement [120] *((const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100) [ ] ( main:3::init:6::mulf_init:86 [ ] ) always clobbers reg byte a +Statement [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto anim::@4 [ anim::angle#10 ] ( main:3::anim:8 [ anim::angle#10 ] ) always clobbers reg byte a Statement [17] (byte~) mulf8u_prepare::a#3 ← (byte)(signed byte)*((const byte*) COS#0 + (byte) anim::angle#10) [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8u_prepare::a#3 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8u_prepare::a#3 ] ) always clobbers reg byte a Statement [21] (signed word) mulf8s_prepared::return#2 ← (signed word)(word) mulf8s_prepared::m#4 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::return#2 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::return#2 ] ) always clobbers reg byte a Statement [22] (signed word~) anim::$4 ← (signed word) mulf8s_prepared::return#2 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::$4 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::$4 ] ) always clobbers reg byte a @@ -3173,10 +3173,10 @@ Statement [40] (signed word~) anim::$11 ← (signed word) mulf8s_prepared::retur Statement [41] (signed word~) anim::$12 ← (signed word~) anim::$11 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$12 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 anim::$12 ] ) always clobbers reg byte a Statement [42] (signed word) anim::yr#1 ← (signed word) anim::yr#0 + (signed word~) anim::$12 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::xr#1 anim::yr#1 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::xr#1 anim::yr#1 ] ) always clobbers reg byte a Statement [43] (byte~) anim::$13 ← > (signed word) anim::xr#1 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$13 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::$13 ] ) always clobbers reg byte a -Statement [45] (signed word) anim::xpos#0 ← (signed byte~) anim::$15 + (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/word/signed word/dword/signed dword) 149 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::xpos#0 ] ) always clobbers reg byte a +Statement [45] (signed word) anim::xpos#0 ← (signed byte~) anim::$15 + (byte/signed byte/word/signed word/dword/signed dword) $18+(byte/word/signed word/dword/signed dword) $95 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::xpos#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#1 anim::xpos#0 ] ) always clobbers reg byte a Statement [47] (byte~) anim::$18 ← > (signed word) anim::xpos#0 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 anim::$18 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#1 anim::$18 ] ) always clobbers reg byte a -Statement [49] (byte) anim::sprite_msb#2 ← (byte) anim::sprite_msb#1 | (byte/word/signed word/dword/signed dword) 128 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#2 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#2 ] ) always clobbers reg byte a -Statement [52] (byte) anim::ypos#0 ← (byte~) anim::$22 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 51 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 ] ) always clobbers reg byte a +Statement [49] (byte) anim::sprite_msb#2 ← (byte) anim::sprite_msb#1 | (byte/word/signed word/dword/signed dword) $80 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#2 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::yr#1 anim::xpos#0 anim::sprite_msb#2 ] ) always clobbers reg byte a +Statement [52] (byte) anim::ypos#0 ← (byte~) anim::$22 + (byte/signed byte/word/signed word/dword/signed dword) $59+(byte/signed byte/word/signed word/dword/signed dword) $33 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 ] ) always clobbers reg byte a Statement [53] (byte) anim::i2#0 ← (byte) anim::i#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 anim::i2#0 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::xpos#0 anim::ypos#0 anim::i2#0 ] ) always clobbers reg byte a Statement [54] (byte~) anim::$25 ← < (signed word) anim::xpos#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 anim::$25 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 anim::ypos#0 anim::i2#0 anim::$25 ] ) always clobbers reg byte a Statement [56] *((const byte*) SPRITES_YPOS#0 + (byte) anim::i2#0) ← (byte) anim::ypos#0 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 ] ( main:3::anim:8 [ anim::angle#10 anim::i#10 anim::sprite_msb#5 ] ) always clobbers reg byte a @@ -3191,8 +3191,8 @@ Statement [73] (byte~) mulf8s_prepared::$16 ← (byte~) mulf8s_prepared::$11 - ( Statement asm { ldxmemB sec sm1: ldamulf_sqr1_lo,x sm2: sbcmulf_sqr2_lo,x staresL sm3: ldamulf_sqr1_hi,x sm4: sbcmulf_sqr2_hi,x stamemB } always clobbers reg byte a reg byte x Statement [79] (word) mulf8u_prepared::return#0 ← *((const byte*) mulf8u_prepared::memB#0) w= *((const byte*) mulf8u_prepared::resL#0) [ mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ( main:3::anim:8::mulf8s_prepared:20::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:25::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:32::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] main:3::anim:8::mulf8s_prepared:38::mulf8u_prepared:63 [ anim::angle#10 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] ) always clobbers reg byte a Statement asm { ldamemA stamulf8u_prepared.sm1+1 stamulf8u_prepared.sm3+1 eor#$ff stamulf8u_prepared.sm2+1 stamulf8u_prepared.sm4+1 } always clobbers reg byte a -Statement [87] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:3::init:6 [ ] ) always clobbers reg byte a -Statement [89] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ init::i#2 ] ( main:3::init:6 [ init::i#2 ] ) always clobbers reg byte a +Statement [87] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff [ ] ( main:3::init:6 [ ] ) always clobbers reg byte a +Statement [89] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 [ init::i#2 ] ( main:3::init:6 [ init::i#2 ] ) always clobbers reg byte a Statement [90] *((const byte*) SPRITES_COLS#0 + (byte) init::i#2) ← (const byte) GREEN#0 [ init::i#2 ] ( main:3::init:6 [ init::i#2 ] ) always clobbers reg byte a Statement [97] (byte~) mulf_init::$2 ← (byte) mulf_init::c#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ) always clobbers reg byte a Statement [102] (byte~) mulf_init::$5 ← < (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ) always clobbers reg byte a @@ -3200,13 +3200,13 @@ Statement [103] *((byte*) mulf_init::sqr1_lo#2) ← (byte~) mulf_init::$5 [ mulf Statement [104] (byte~) mulf_init::$6 ← > (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ) always clobbers reg byte a Statement [105] *((byte*) mulf_init::sqr1_hi#2) ← (byte~) mulf_init::$6 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) always clobbers reg byte y Statement [107] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a -Statement [109] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a -Statement [111] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y -Statement [112] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y +Statement [109] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a +Statement [111] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y +Statement [112] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y Statement [114] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:3::init:6::mulf_init:86 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) always clobbers reg byte a -Statement [118] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) always clobbers reg byte a -Statement [119] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) [ ] ( main:3::init:6::mulf_init:86 [ ] ) always clobbers reg byte a -Statement [120] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) [ ] ( main:3::init:6::mulf_init:86 [ ] ) always clobbers reg byte a +Statement [118] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:3::init:6::mulf_init:86 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) always clobbers reg byte a +Statement [119] *((const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100) [ ] ( main:3::init:6::mulf_init:86 [ ] ) always clobbers reg byte a +Statement [120] *((const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100) [ ] ( main:3::init:6::mulf_init:86 [ ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ anim::angle#10 anim::angle#1 ] : zp ZP_BYTE:2 , reg byte y , Potential registers zp ZP_BYTE:3 [ anim::i#10 anim::i#1 ] : zp ZP_BYTE:3 , reg byte y , Potential registers zp ZP_BYTE:4 [ anim::sprite_msb#10 anim::sprite_msb#5 anim::sprite_msb#2 anim::sprite_msb#1 ] : zp ZP_BYTE:4 , reg byte y , @@ -3425,7 +3425,7 @@ anim: { jmp b4 //SEG25 anim::@4 b4: - //SEG26 [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG26 [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto anim::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -3575,7 +3575,7 @@ anim: { //SEG84 [43] (byte~) anim::$13 ← > (signed word) anim::xr#1 -- vbuaa=_hi_vwsz1 lda xr+1 //SEG85 [44] (signed byte~) anim::$15 ← (signed byte)(byte~) anim::$13 - //SEG86 [45] (signed word) anim::xpos#0 ← (signed byte~) anim::$15 + (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/word/signed word/dword/signed dword) 149 -- vwsz1=vbsaa_plus_vbuc1 + //SEG86 [45] (signed word) anim::xpos#0 ← (signed byte~) anim::$15 + (byte/signed byte/word/signed word/dword/signed dword) $18+(byte/word/signed word/dword/signed dword) $95 -- vwsz1=vbsaa_plus_vbuc1 sta xpos ora #$7f bmi !+ @@ -3599,7 +3599,7 @@ anim: { jmp b14 //SEG90 anim::@14 b14: - //SEG91 [49] (byte) anim::sprite_msb#2 ← (byte) anim::sprite_msb#1 | (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz1_bor_vbuc1 + //SEG91 [49] (byte) anim::sprite_msb#2 ← (byte) anim::sprite_msb#1 | (byte/word/signed word/dword/signed dword) $80 -- vbuz1=vbuz1_bor_vbuc1 lda #$80 ora sprite_msb sta sprite_msb @@ -3612,7 +3612,7 @@ anim: { b8: //SEG95 [51] (byte~) anim::$22 ← > (signed word) anim::yr#1 -- vbuaa=_hi_vwsz1 lda yr+1 - //SEG96 [52] (byte) anim::ypos#0 ← (byte~) anim::$22 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 51 -- vbuyy=vbuaa_plus_vbuc1 + //SEG96 [52] (byte) anim::ypos#0 ← (byte~) anim::$22 + (byte/signed byte/word/signed word/dword/signed dword) $59+(byte/signed byte/word/signed word/dword/signed dword) $33 -- vbuyy=vbuaa_plus_vbuc1 clc adc #$59+$33 tay @@ -3775,7 +3775,7 @@ init: { jmp b3 //SEG146 init::@3 b3: - //SEG147 [87] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 -- _deref_pbuc1=vbuc2 + //SEG147 [87] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff -- _deref_pbuc1=vbuc2 lda #$ff sta SPRITES_ENABLE //SEG148 [88] phi from init::@3 to init::@1 [phi:init::@3->init::@1] @@ -3789,7 +3789,7 @@ init: { jmp b1 //SEG152 init::@1 b1: - //SEG153 [89] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG153 [89] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 -- pbuc1_derefidx_vbuxx=vbuc2 lda #$ff&SPRITE/$40 sta sprites_ptr,x //SEG154 [90] *((const byte*) SPRITES_COLS#0 + (byte) init::i#2) ← (const byte) GREEN#0 -- pbuc1_derefidx_vbuxx=vbuc2 @@ -3821,12 +3821,12 @@ mulf_init: { //SEG161 [95] phi (byte) mulf_init::x_2#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#0] -- vbuz1=vbuc1 lda #0 sta x_2 - //SEG162 [95] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 + //SEG162 [95] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[$200]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 lda #mulf_sqr1_hi+1 sta sqr1_hi+1 - //SEG163 [95] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 + //SEG163 [95] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[$200]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 lda #mulf_sqr1_lo+1 @@ -3903,7 +3903,7 @@ mulf_init: { bne !+ inc sqr1_lo+1 !: - //SEG190 [109] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG190 [109] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 -- pbuz1_neq_pbuc1_then_la1 lda sqr1_lo+1 cmp #>mulf_sqr1_lo+$200 bne b1_from_b2 @@ -3912,15 +3912,15 @@ mulf_init: { bne b1_from_b2 //SEG191 [110] phi from mulf_init::@2 to mulf_init::@3 [phi:mulf_init::@2->mulf_init::@3] b3_from_b2: - //SEG192 [110] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) 255 [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 + //SEG192 [110] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) $ff [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 lda #$ff sta dir - //SEG193 [110] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[512]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 + //SEG193 [110] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[$200]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 lda #mulf_sqr2_hi sta sqr2_hi+1 - //SEG194 [110] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[512]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 + //SEG194 [110] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[$200]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 lda #mulf_sqr2_lo @@ -3937,11 +3937,11 @@ mulf_init: { jmp b3 //SEG201 mulf_init::@3 b3: - //SEG202 [111] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + //SEG202 [111] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda mulf_sqr1_lo,x ldy #0 sta (sqr2_lo),y - //SEG203 [112] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + //SEG203 [112] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda mulf_sqr1_hi,x ldy #0 sta (sqr2_hi),y @@ -3971,7 +3971,7 @@ mulf_init: { bne !+ inc sqr2_lo+1 !: - //SEG211 [118] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 -- pbuz1_neq_pbuc1_then_la1 + //SEG211 [118] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 -- pbuz1_neq_pbuc1_then_la1 lda sqr2_lo+1 cmp #>mulf_sqr2_lo+$1ff bne b3_from_b4 @@ -3981,11 +3981,11 @@ mulf_init: { jmp b8 //SEG212 mulf_init::@8 b8: - //SEG213 [119] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) -- _deref_pbuc1=_deref_pbuc2 + //SEG213 [119] *((const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100) -- _deref_pbuc1=_deref_pbuc2 // Set the very last value g(511) = f(256) lda mulf_sqr1_lo+$100 sta mulf_sqr2_lo+$1ff - //SEG214 [120] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) -- _deref_pbuc1=_deref_pbuc2 + //SEG214 [120] *((const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100) -- _deref_pbuc1=_deref_pbuc2 lda mulf_sqr1_hi+$100 sta mulf_sqr2_hi+$1ff jmp breturn @@ -4191,7 +4191,7 @@ FINAL SYMBOL TABLE (byte) BLACK (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN (byte*) CIA1_INTERRUPT @@ -4207,7 +4207,7 @@ FINAL SYMBOL TABLE (byte) CIA_INTERRUPT_CLEAR (byte*) COLS (byte*) COS -(const byte*) COS#0 COS = ((byte*))(word/signed word/dword/signed dword) 8192 +(const byte*) COS#0 COS = ((byte*))(word/signed word/dword/signed dword) $2000 (byte) CYAN (byte*) D011 (byte*) D016 @@ -4227,7 +4227,7 @@ FINAL SYMBOL TABLE (byte*) LIGHTPEN_X (byte*) LIGHTPEN_Y (byte) LIGHT_BLUE -(const byte) LIGHT_BLUE#0 LIGHT_BLUE = (byte/signed byte/word/signed word/dword/signed dword) 14 +(const byte) LIGHT_BLUE#0 LIGHT_BLUE = (byte/signed byte/word/signed word/dword/signed dword) $e (byte) LIGHT_GREEN (byte) LIGHT_GREY (byte) ORANGE @@ -4242,18 +4242,18 @@ FINAL SYMBOL TABLE (byte) PROCPORT_RAM_IO (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SIN -(const byte*) SIN#0 SIN = (const byte*) COS#0+(byte/signed byte/word/signed word/dword/signed dword) 64 +(const byte*) SIN#0 SIN = (const byte*) COS#0+(byte/signed byte/word/signed word/dword/signed dword) $40 (byte*) SPRITE -(const byte*) SPRITE#0 SPRITE = ((byte*))(word/signed word/dword/signed dword) 12288 +(const byte*) SPRITE#0 SPRITE = ((byte*))(word/signed word/dword/signed dword) $3000 (byte*) SPRITES_COLS -(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) 53287 +(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) $d027 (byte*) SPRITES_ENABLE -(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) 53269 +(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) $d015 (byte*) SPRITES_EXPAND_X (byte*) SPRITES_EXPAND_Y (byte*) SPRITES_MC @@ -4261,11 +4261,11 @@ FINAL SYMBOL TABLE (byte*) SPRITES_MC2 (byte*) SPRITES_PRIORITY (byte*) SPRITES_XMSB -(const byte*) SPRITES_XMSB#0 SPRITES_XMSB = ((byte*))(word/dword/signed dword) 53264 +(const byte*) SPRITES_XMSB#0 SPRITES_XMSB = ((byte*))(word/dword/signed dword) $d010 (byte*) SPRITES_XPOS -(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) 53248 +(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) $d000 (byte*) SPRITES_YPOS -(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) 53249 +(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) $d001 (word) SPRITE_PTRS (byte) VIC_BMM (byte*) VIC_CONTROL @@ -4347,7 +4347,7 @@ FINAL SYMBOL TABLE (byte) init::i#1 reg byte x 16.5 (byte) init::i#2 reg byte x 14.666666666666666 (byte*) init::sprites_ptr -(const byte*) init::sprites_ptr#0 sprites_ptr = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1016 +(const byte*) init::sprites_ptr#0 sprites_ptr = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3f8 (void()) main() (label) main::@1 (label) main::@return @@ -4375,7 +4375,7 @@ FINAL SYMBOL TABLE (word) mulf8s_prepared::m#4 m zp ZP_WORD:5 0.6666666666666666 (word) mulf8s_prepared::m#5 m zp ZP_WORD:5 2.5 (signed byte*) mulf8s_prepared::memA -(const signed byte*) mulf8s_prepared::memA#0 memA = ((signed byte*))(byte/word/signed word/dword/signed dword) 253 +(const signed byte*) mulf8s_prepared::memA#0 memA = ((signed byte*))(byte/word/signed word/dword/signed dword) $fd (signed word) mulf8s_prepared::return (signed word) mulf8s_prepared::return#10 return zp ZP_WORD:5 202.0 (signed word) mulf8s_prepared::return#2 return zp ZP_WORD:5 202.0 @@ -4388,14 +4388,14 @@ FINAL SYMBOL TABLE (byte~) mulf8u_prepare::a#3 reg byte a 202.0 (byte~) mulf8u_prepare::a#4 reg byte a 202.0 (byte*) mulf8u_prepare::memA -(const byte*) mulf8u_prepare::memA#0 memA = ((byte*))(byte/word/signed word/dword/signed dword) 253 +(const byte*) mulf8u_prepare::memA#0 memA = ((byte*))(byte/word/signed word/dword/signed dword) $fd (word()) mulf8u_prepared((byte) mulf8u_prepared::b) (label) mulf8u_prepared::@return (byte) mulf8u_prepared::b (byte*) mulf8u_prepared::memB -(const byte*) mulf8u_prepared::memB#0 memB = ((byte*))(byte/word/signed word/dword/signed dword) 255 +(const byte*) mulf8u_prepared::memB#0 memB = ((byte*))(byte/word/signed word/dword/signed dword) $ff (byte*) mulf8u_prepared::resL -(const byte*) mulf8u_prepared::resL#0 resL = ((byte*))(byte/word/signed word/dword/signed dword) 254 +(const byte*) mulf8u_prepared::resL#0 resL = ((byte*))(byte/word/signed word/dword/signed dword) $fe (word) mulf8u_prepared::return (word) mulf8u_prepared::return#0 return zp ZP_WORD:5 1.3333333333333333 (word) mulf8u_prepared::return#2 return zp ZP_WORD:5 4.0 @@ -4441,18 +4441,18 @@ FINAL SYMBOL TABLE (byte) mulf_init::x_255 (byte) mulf_init::x_255#1 reg byte x 5.5 (byte) mulf_init::x_255#2 reg byte x 11.0 -(byte[512]) mulf_sqr1_hi -(const byte[512]) mulf_sqr1_hi#0 mulf_sqr1_hi = { fill( 512, 0) } -(byte[512]) mulf_sqr1_lo -(const byte[512]) mulf_sqr1_lo#0 mulf_sqr1_lo = { fill( 512, 0) } -(byte[512]) mulf_sqr2_hi -(const byte[512]) mulf_sqr2_hi#0 mulf_sqr2_hi = { fill( 512, 0) } -(byte[512]) mulf_sqr2_lo -(const byte[512]) mulf_sqr2_lo#0 mulf_sqr2_lo = { fill( 512, 0) } +(byte[$200]) mulf_sqr1_hi +(const byte[$200]) mulf_sqr1_hi#0 mulf_sqr1_hi = { fill( $200, 0) } +(byte[$200]) mulf_sqr1_lo +(const byte[$200]) mulf_sqr1_lo#0 mulf_sqr1_lo = { fill( $200, 0) } +(byte[$200]) mulf_sqr2_hi +(const byte[$200]) mulf_sqr2_hi#0 mulf_sqr2_hi = { fill( $200, 0) } +(byte[$200]) mulf_sqr2_lo +(const byte[$200]) mulf_sqr2_lo#0 mulf_sqr2_lo = { fill( $200, 0) } (signed byte[8]) xs -(const signed byte[8]) xs#0 xs = { -(byte/signed byte/word/signed word/dword/signed dword) 70, -(byte/signed byte/word/signed word/dword/signed dword) 70, -(byte/signed byte/word/signed word/dword/signed dword) 70, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 70, (byte/signed byte/word/signed word/dword/signed dword) 70, (byte/signed byte/word/signed word/dword/signed dword) 70 } +(const signed byte[8]) xs#0 xs = { -(byte/signed byte/word/signed word/dword/signed dword) $46, -(byte/signed byte/word/signed word/dword/signed dword) $46, -(byte/signed byte/word/signed word/dword/signed dword) $46, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $46, (byte/signed byte/word/signed word/dword/signed dword) $46, (byte/signed byte/word/signed word/dword/signed dword) $46 } (signed byte[8]) ys -(const signed byte[8]) ys#0 ys = { -(byte/signed byte/word/signed word/dword/signed dword) 70, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 70, -(byte/signed byte/word/signed word/dword/signed dword) 70, (byte/signed byte/word/signed word/dword/signed dword) 70, -(byte/signed byte/word/signed word/dword/signed dword) 70, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 70 } +(const signed byte[8]) ys#0 ys = { -(byte/signed byte/word/signed word/dword/signed dword) $46, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $46, -(byte/signed byte/word/signed word/dword/signed dword) $46, (byte/signed byte/word/signed word/dword/signed dword) $46, -(byte/signed byte/word/signed word/dword/signed dword) $46, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) $46 } zp ZP_BYTE:2 [ anim::angle#10 anim::angle#1 mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 mulf_init::dir#2 mulf_init::dir#3 ] zp ZP_BYTE:3 [ anim::i#10 anim::i#1 ] @@ -4558,7 +4558,7 @@ anim: { //SEG24 anim::@1 //SEG25 anim::@4 b4: - //SEG26 [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto anim::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG26 [12] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto anim::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -4678,7 +4678,7 @@ anim: { //SEG84 [43] (byte~) anim::$13 ← > (signed word) anim::xr#1 -- vbuaa=_hi_vwsz1 lda xr+1 //SEG85 [44] (signed byte~) anim::$15 ← (signed byte)(byte~) anim::$13 - //SEG86 [45] (signed word) anim::xpos#0 ← (signed byte~) anim::$15 + (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/word/signed word/dword/signed dword) 149 -- vwsz1=vbsaa_plus_vbuc1 + //SEG86 [45] (signed word) anim::xpos#0 ← (signed byte~) anim::$15 + (byte/signed byte/word/signed word/dword/signed dword) $18+(byte/word/signed word/dword/signed dword) $95 -- vwsz1=vbsaa_plus_vbuc1 sta xpos ora #$7f bmi !+ @@ -4699,7 +4699,7 @@ anim: { cmp #0 beq b8 //SEG90 anim::@14 - //SEG91 [49] (byte) anim::sprite_msb#2 ← (byte) anim::sprite_msb#1 | (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz1_bor_vbuc1 + //SEG91 [49] (byte) anim::sprite_msb#2 ← (byte) anim::sprite_msb#1 | (byte/word/signed word/dword/signed dword) $80 -- vbuz1=vbuz1_bor_vbuc1 lda #$80 ora sprite_msb sta sprite_msb @@ -4709,7 +4709,7 @@ anim: { b8: //SEG95 [51] (byte~) anim::$22 ← > (signed word) anim::yr#1 -- vbuaa=_hi_vwsz1 lda yr+1 - //SEG96 [52] (byte) anim::ypos#0 ← (byte~) anim::$22 + (byte/signed byte/word/signed word/dword/signed dword) 89+(byte/signed byte/word/signed word/dword/signed dword) 51 -- vbuyy=vbuaa_plus_vbuc1 + //SEG96 [52] (byte) anim::ypos#0 ← (byte~) anim::$22 + (byte/signed byte/word/signed word/dword/signed dword) $59+(byte/signed byte/word/signed word/dword/signed dword) $33 -- vbuyy=vbuaa_plus_vbuc1 clc adc #$59+$33 tay @@ -4849,7 +4849,7 @@ init: { //SEG145 [94] phi from init to mulf_init [phi:init->mulf_init] jsr mulf_init //SEG146 init::@3 - //SEG147 [87] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) 255 -- _deref_pbuc1=vbuc2 + //SEG147 [87] *((const byte*) SPRITES_ENABLE#0) ← (byte/word/signed word/dword/signed dword) $ff -- _deref_pbuc1=vbuc2 lda #$ff sta SPRITES_ENABLE //SEG148 [88] phi from init::@3 to init::@1 [phi:init::@3->init::@1] @@ -4859,7 +4859,7 @@ init: { //SEG151 [88] phi (byte) init::i#2 = (byte) init::i#1 [phi:init::@1->init::@1#0] -- register_copy //SEG152 init::@1 b1: - //SEG153 [89] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG153 [89] *((const byte*) init::sprites_ptr#0 + (byte) init::i#2) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 -- pbuc1_derefidx_vbuxx=vbuc2 lda #$ff&SPRITE/$40 sta sprites_ptr,x //SEG154 [90] *((const byte*) SPRITES_COLS#0 + (byte) init::i#2) ← (const byte) GREEN#0 -- pbuc1_derefidx_vbuxx=vbuc2 @@ -4888,12 +4888,12 @@ mulf_init: { //SEG161 [95] phi (byte) mulf_init::x_2#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#0] -- vbuz1=vbuc1 lda #0 sta x_2 - //SEG162 [95] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 + //SEG162 [95] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[$200]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 lda #mulf_sqr1_hi+1 sta sqr1_hi+1 - //SEG163 [95] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 + //SEG163 [95] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[$200]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 lda #mulf_sqr1_lo+1 @@ -4960,7 +4960,7 @@ mulf_init: { bne !+ inc sqr1_lo+1 !: - //SEG190 [109] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG190 [109] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 -- pbuz1_neq_pbuc1_then_la1 lda sqr1_lo+1 cmp #>mulf_sqr1_lo+$200 bne b1 @@ -4968,15 +4968,15 @@ mulf_init: { cmp #mulf_init::@3] - //SEG192 [110] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) 255 [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 + //SEG192 [110] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) $ff [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 lda #$ff sta dir - //SEG193 [110] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[512]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 + //SEG193 [110] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[$200]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 lda #mulf_sqr2_hi sta sqr2_hi+1 - //SEG194 [110] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[512]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 + //SEG194 [110] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[$200]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 lda #mulf_sqr2_lo @@ -4990,11 +4990,11 @@ mulf_init: { //SEG200 [110] phi (byte) mulf_init::x_255#2 = (byte) mulf_init::x_255#1 [phi:mulf_init::@4->mulf_init::@3#3] -- register_copy //SEG201 mulf_init::@3 b3: - //SEG202 [111] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + //SEG202 [111] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda mulf_sqr1_lo,x ldy #0 sta (sqr2_lo),y - //SEG203 [112] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + //SEG203 [112] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda mulf_sqr1_hi,x sta (sqr2_hi),y //SEG204 [113] (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 -- pbuz1=_inc_pbuz1 @@ -5021,7 +5021,7 @@ mulf_init: { bne !+ inc sqr2_lo+1 !: - //SEG211 [118] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 -- pbuz1_neq_pbuc1_then_la1 + //SEG211 [118] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 -- pbuz1_neq_pbuc1_then_la1 lda sqr2_lo+1 cmp #>mulf_sqr2_lo+$1ff bne b3 @@ -5029,11 +5029,11 @@ mulf_init: { cmp #SCREEN+$3e8 bcc b1_from_b1 @@ -830,20 +830,20 @@ fillscreen: { TEXT: .text "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- @" REGISTER UPLIFT POTENTIAL REGISTERS -Statement [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@2 [ main::scroll#7 main::nxt#9 ] ( main:2 [ main::scroll#7 main::nxt#9 ] ) always clobbers reg byte a +Statement [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fe) goto main::@2 [ main::scroll#7 main::nxt#9 ] ( main:2 [ main::scroll#7 main::nxt#9 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::scroll#7 main::scroll#10 main::scroll#1 ] -Statement [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@3 [ main::scroll#7 main::nxt#9 ] ( main:2 [ main::scroll#7 main::nxt#9 ] ) always clobbers reg byte a +Statement [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@3 [ main::scroll#7 main::nxt#9 ] ( main:2 [ main::scroll#7 main::nxt#9 ] ) always clobbers reg byte a Statement [13] *((const byte[]) main::line#0 + (byte) main::i#2) ← *((const byte[]) main::line#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) main::i#2) [ main::nxt#9 main::i#2 ] ( main:2 [ main::nxt#9 main::i#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ main::i#2 main::i#1 ] Statement [16] (byte) main::c#0 ← *((byte*) main::nxt#9) [ main::nxt#9 main::c#0 ] ( main:2 [ main::nxt#9 main::c#0 ] ) always clobbers reg byte a reg byte y Statement [27] *((byte*) fillscreen::cursor#2) ← (const byte) fillscreen::fill#0 [ fillscreen::cursor#2 ] ( main:2::fillscreen:5 [ fillscreen::cursor#2 ] ) always clobbers reg byte a reg byte y -Statement [29] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto fillscreen::@1 [ fillscreen::cursor#1 ] ( main:2::fillscreen:5 [ fillscreen::cursor#1 ] ) always clobbers reg byte a -Statement [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@2 [ main::scroll#7 main::nxt#9 ] ( main:2 [ main::scroll#7 main::nxt#9 ] ) always clobbers reg byte a -Statement [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@3 [ main::scroll#7 main::nxt#9 ] ( main:2 [ main::scroll#7 main::nxt#9 ] ) always clobbers reg byte a +Statement [29] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto fillscreen::@1 [ fillscreen::cursor#1 ] ( main:2::fillscreen:5 [ fillscreen::cursor#1 ] ) always clobbers reg byte a +Statement [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fe) goto main::@2 [ main::scroll#7 main::nxt#9 ] ( main:2 [ main::scroll#7 main::nxt#9 ] ) always clobbers reg byte a +Statement [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@3 [ main::scroll#7 main::nxt#9 ] ( main:2 [ main::scroll#7 main::nxt#9 ] ) always clobbers reg byte a Statement [13] *((const byte[]) main::line#0 + (byte) main::i#2) ← *((const byte[]) main::line#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) main::i#2) [ main::nxt#9 main::i#2 ] ( main:2 [ main::nxt#9 main::i#2 ] ) always clobbers reg byte a Statement [16] (byte) main::c#0 ← *((byte*) main::nxt#9) [ main::nxt#9 main::c#0 ] ( main:2 [ main::nxt#9 main::c#0 ] ) always clobbers reg byte a reg byte y Statement [27] *((byte*) fillscreen::cursor#2) ← (const byte) fillscreen::fill#0 [ fillscreen::cursor#2 ] ( main:2::fillscreen:5 [ fillscreen::cursor#2 ] ) always clobbers reg byte a reg byte y -Statement [29] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto fillscreen::@1 [ fillscreen::cursor#1 ] ( main:2::fillscreen:5 [ fillscreen::cursor#1 ] ) always clobbers reg byte a +Statement [29] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto fillscreen::@1 [ fillscreen::cursor#1 ] ( main:2::fillscreen:5 [ fillscreen::cursor#1 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ main::scroll#7 main::scroll#10 main::scroll#1 ] : zp ZP_BYTE:2 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:3 [ main::i#2 main::i#1 ] : zp ZP_BYTE:3 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:4 [ main::c#2 main::c#0 main::c#1 ] : zp ZP_BYTE:4 , reg byte a , reg byte x , reg byte y , @@ -912,14 +912,14 @@ main: { jmp b2 //SEG17 main::@2 b2: - //SEG18 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG18 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fe) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$fe bne b2_from_b2 jmp b3 //SEG19 main::@3 b3: - //SEG20 [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG20 [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b3 @@ -930,7 +930,7 @@ main: { inc BGCOL //SEG23 [10] (byte) main::scroll#1 ← -- (byte) main::scroll#7 -- vbuxx=_dec_vbuxx dex - //SEG24 [11] if((byte) main::scroll#1!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- vbuxx_neq_vbuc1_then_la1 + //SEG24 [11] if((byte) main::scroll#1!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 -- vbuxx_neq_vbuc1_then_la1 cpx #$ff bne b4_from_b8 //SEG25 [12] phi from main::@8 to main::@5 [phi:main::@8->main::@5] @@ -950,7 +950,7 @@ main: { sta line,x //SEG31 [14] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG32 [15] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 39) goto main::@5 -- vbuxx_neq_vbuc1_then_la1 + //SEG32 [15] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $27) goto main::@5 -- vbuxx_neq_vbuc1_then_la1 cpx #$27 bne b5_from_b5 jmp b10 @@ -985,7 +985,7 @@ main: { jmp b6 //SEG44 main::@6 b6: - //SEG45 [20] *((const byte[]) main::line#0+(byte/signed byte/word/signed word/dword/signed dword) 39) ← (byte) main::c#2 -- _deref_pbuc1=vbuxx + //SEG45 [20] *((const byte[]) main::line#0+(byte/signed byte/word/signed word/dword/signed dword) $27) ← (byte) main::c#2 -- _deref_pbuc1=vbuxx stx line+$27 //SEG46 [21] (byte*) main::nxt#1 ← ++ (byte*) main::nxt#4 -- pbuz1=_inc_pbuz1 inc nxt @@ -1042,7 +1042,7 @@ fillscreen: { bne !+ inc cursor+1 !: - //SEG67 [29] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto fillscreen::@1 -- pbuz1_lt_pbuc1_then_la1 + //SEG67 [29] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto fillscreen::@1 -- pbuz1_lt_pbuc1_then_la1 lda cursor+1 cmp #>SCREEN+$3e8 bcc b1_from_b1 @@ -1119,13 +1119,13 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d020 (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SCROLL -(const byte*) SCROLL#0 SCROLL = ((byte*))(word/dword/signed dword) 53270 +(const byte*) SCROLL#0 SCROLL = ((byte*))(word/dword/signed dword) $d016 (byte*) TEXT (const byte*) TEXT#0 TEXT = (string) "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- @" (void()) fillscreen((byte*) fillscreen::screen , (byte) fillscreen::fill) @@ -1135,7 +1135,7 @@ FINAL SYMBOL TABLE (byte*) fillscreen::cursor#1 cursor zp ZP_WORD:2 16.5 (byte*) fillscreen::cursor#2 cursor zp ZP_WORD:2 16.5 (byte) fillscreen::fill -(const byte) fillscreen::fill#0 fill = (byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte) fillscreen::fill#0 fill = (byte/signed byte/word/signed word/dword/signed dword) $20 (byte*) fillscreen::screen (void()) main() (label) main::@10 @@ -1154,7 +1154,7 @@ FINAL SYMBOL TABLE (byte) main::i#1 reg byte x 151.5 (byte) main::i#2 reg byte x 202.0 (byte[]) main::line -(const byte[]) main::line#0 line = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40 +(const byte[]) main::line#0 line = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) main::nxt (byte*) main::nxt#1 nxt zp ZP_WORD:2 22.0 (byte*) main::nxt#10 nxt zp ZP_WORD:2 11.0 @@ -1210,13 +1210,13 @@ main: { //SEG16 [6] phi from main::@2 to main::@2 [phi:main::@2->main::@2] //SEG17 main::@2 b2: - //SEG18 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG18 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fe) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$fe bne b2 //SEG19 main::@3 b3: - //SEG20 [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG20 [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b3 @@ -1225,7 +1225,7 @@ main: { inc BGCOL //SEG23 [10] (byte) main::scroll#1 ← -- (byte) main::scroll#7 -- vbuxx=_dec_vbuxx dex - //SEG24 [11] if((byte) main::scroll#1!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- vbuxx_neq_vbuc1_then_la1 + //SEG24 [11] if((byte) main::scroll#1!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 -- vbuxx_neq_vbuc1_then_la1 cpx #$ff bne b4 //SEG25 [12] phi from main::@8 to main::@5 [phi:main::@8->main::@5] @@ -1241,7 +1241,7 @@ main: { sta line,x //SEG31 [14] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG32 [15] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 39) goto main::@5 -- vbuxx_neq_vbuc1_then_la1 + //SEG32 [15] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $27) goto main::@5 -- vbuxx_neq_vbuc1_then_la1 cpx #$27 bne b5 //SEG33 main::@10 @@ -1268,7 +1268,7 @@ main: { //SEG43 [19] phi (byte) main::c#2 = (byte) main::c#0 [phi:main::@10->main::@6#1] -- register_copy //SEG44 main::@6 b6: - //SEG45 [20] *((const byte[]) main::line#0+(byte/signed byte/word/signed word/dword/signed dword) 39) ← (byte) main::c#2 -- _deref_pbuc1=vbuxx + //SEG45 [20] *((const byte[]) main::line#0+(byte/signed byte/word/signed word/dword/signed dword) $27) ← (byte) main::c#2 -- _deref_pbuc1=vbuxx stx line+$27 //SEG46 [21] (byte*) main::nxt#1 ← ++ (byte*) main::nxt#4 -- pbuz1=_inc_pbuz1 inc nxt @@ -1316,7 +1316,7 @@ fillscreen: { bne !+ inc cursor+1 !: - //SEG67 [29] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto fillscreen::@1 -- pbuz1_lt_pbuc1_then_la1 + //SEG67 [29] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto fillscreen::@1 -- pbuz1_lt_pbuc1_then_la1 lda cursor+1 cmp #>SCREEN+$3e8 bcc b1 diff --git a/src/test/ref/examples/scroll/scroll.sym b/src/test/ref/examples/scroll/scroll.sym index a13e99bcf..9c4e616a2 100644 --- a/src/test/ref/examples/scroll/scroll.sym +++ b/src/test/ref/examples/scroll/scroll.sym @@ -2,13 +2,13 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d020 (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SCROLL -(const byte*) SCROLL#0 SCROLL = ((byte*))(word/dword/signed dword) 53270 +(const byte*) SCROLL#0 SCROLL = ((byte*))(word/dword/signed dword) $d016 (byte*) TEXT (const byte*) TEXT#0 TEXT = (string) "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- @" (void()) fillscreen((byte*) fillscreen::screen , (byte) fillscreen::fill) @@ -18,7 +18,7 @@ (byte*) fillscreen::cursor#1 cursor zp ZP_WORD:2 16.5 (byte*) fillscreen::cursor#2 cursor zp ZP_WORD:2 16.5 (byte) fillscreen::fill -(const byte) fillscreen::fill#0 fill = (byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte) fillscreen::fill#0 fill = (byte/signed byte/word/signed word/dword/signed dword) $20 (byte*) fillscreen::screen (void()) main() (label) main::@10 @@ -37,7 +37,7 @@ (byte) main::i#1 reg byte x 151.5 (byte) main::i#2 reg byte x 202.0 (byte[]) main::line -(const byte[]) main::line#0 line = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40 +(const byte[]) main::line#0 line = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) main::nxt (byte*) main::nxt#1 nxt zp ZP_WORD:2 22.0 (byte*) main::nxt#10 nxt zp ZP_WORD:2 11.0 diff --git a/src/test/ref/examples/scrollbig/scrollbig.cfg b/src/test/ref/examples/scrollbig/scrollbig.cfg index 38d005f9c..433275a9e 100644 --- a/src/test/ref/examples/scrollbig/scrollbig.cfg +++ b/src/test/ref/examples/scrollbig/scrollbig.cfg @@ -16,10 +16,10 @@ main::@2: scope:[main] from main main::@2 main::@8 [6] (byte*) nxt#31 ← phi( main::@8/(byte*) nxt#14 main/(const byte*) TEXT#0 ) [6] (byte) current_bit#29 ← phi( main::@8/(byte) current_bit#12 main/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [6] (byte) scroll#18 ← phi( main::@8/(byte) scroll#10 main/(byte/signed byte/word/signed word/dword/signed dword) 7 ) - [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@2 + [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fe) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 main::@3 - [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@3 + [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@3 to:main::@5 main::@5: scope:[main] from main::@3 [9] *((const byte*) BGCOL#0) ← ++ *((const byte*) BGCOL#0) @@ -30,7 +30,7 @@ main::@8: scope:[main] from main::@5 to:main::@2 scroll_soft: scope:[scroll_soft] from main::@5 [12] (byte) scroll#3 ← -- (byte) scroll#18 - [13] if((byte) scroll#3!=(byte/word/signed word/dword/signed dword) 255) goto scroll_soft::@1 + [13] if((byte) scroll#3!=(byte/word/signed word/dword/signed dword) $ff) goto scroll_soft::@1 to:scroll_soft::@2 scroll_soft::@2: scope:[scroll_soft] from scroll_soft [14] phi() @@ -63,16 +63,16 @@ scroll_bit::@8: scope:[scroll_bit] from scroll_bit::@4 to:scroll_bit::@1 scroll_bit::@1: scope:[scroll_bit] from scroll_bit scroll_bit::@8 [28] (byte*) nxt#36 ← phi( scroll_bit/(byte*) nxt#31 scroll_bit::@8/(byte*) nxt#19 ) - [28] (byte) current_bit#21 ← phi( scroll_bit/(byte) current_bit#5 scroll_bit::@8/(byte/word/signed word/dword/signed dword) 128 ) + [28] (byte) current_bit#21 ← phi( scroll_bit/(byte) current_bit#5 scroll_bit::@8/(byte/word/signed word/dword/signed dword) $80 ) [28] (byte*) current_chargen#19 ← phi( scroll_bit/(byte*) current_chargen#27 scroll_bit::@8/(byte*) current_chargen#5 ) [29] call scroll_hard to:scroll_bit::@7 scroll_bit::@7: scope:[scroll_bit] from scroll_bit::@1 asm { sei } - [31] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 + [31] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 to:scroll_bit::@2 scroll_bit::@2: scope:[scroll_bit] from scroll_bit::@3 scroll_bit::@7 - [32] (byte*) scroll_bit::sc#2 ← phi( scroll_bit::@3/(byte*) scroll_bit::sc#1 scroll_bit::@7/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 39 ) + [32] (byte*) scroll_bit::sc#2 ← phi( scroll_bit::@3/(byte*) scroll_bit::sc#1 scroll_bit::@7/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $27 ) [32] (byte) scroll_bit::r#2 ← phi( scroll_bit::@3/(byte) scroll_bit::r#1 scroll_bit::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [33] (byte) scroll_bit::bits#0 ← *((byte*) current_chargen#19 + (byte) scroll_bit::r#2) [34] (byte~) scroll_bit::$9 ← (byte) scroll_bit::bits#0 & (byte) current_bit#21 @@ -82,14 +82,14 @@ scroll_bit::@5: scope:[scroll_bit] from scroll_bit::@2 [36] phi() to:scroll_bit::@3 scroll_bit::@3: scope:[scroll_bit] from scroll_bit::@2 scroll_bit::@5 - [37] (byte) scroll_bit::b#2 ← phi( scroll_bit::@2/(byte) ' ' scroll_bit::@5/(byte/word/signed word/dword/signed dword) 128+(byte) ' ' ) + [37] (byte) scroll_bit::b#2 ← phi( scroll_bit::@2/(byte) ' ' scroll_bit::@5/(byte/word/signed word/dword/signed dword) $80+(byte) ' ' ) [38] *((byte*) scroll_bit::sc#2) ← (byte) scroll_bit::b#2 - [39] (byte*) scroll_bit::sc#1 ← (byte*) scroll_bit::sc#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [39] (byte*) scroll_bit::sc#1 ← (byte*) scroll_bit::sc#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 [40] (byte) scroll_bit::r#1 ← ++ (byte) scroll_bit::r#2 [41] if((byte) scroll_bit::r#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto scroll_bit::@2 to:scroll_bit::@6 scroll_bit::@6: scope:[scroll_bit] from scroll_bit::@3 - [42] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 + [42] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 asm { cli } to:scroll_bit::@return scroll_bit::@return: scope:[scroll_bit] from scroll_bit::@6 @@ -101,15 +101,15 @@ scroll_hard: scope:[scroll_hard] from scroll_bit::@1 scroll_hard::@1: scope:[scroll_hard] from scroll_hard scroll_hard::@1 [46] (byte) scroll_hard::i#2 ← phi( scroll_hard/(byte/signed byte/word/signed word/dword/signed dword) 0 scroll_hard::@1/(byte) scroll_hard::i#1 ) [47] *((const byte*) SCREEN#0 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) - [48] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) - [49] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) - [50] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) - [51] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) - [52] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) - [53] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) - [54] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 7+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) + [48] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) + [49] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) + [50] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) + [51] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) + [52] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) + [53] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 6 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 6+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) + [54] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 7+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [55] (byte) scroll_hard::i#1 ← ++ (byte) scroll_hard::i#2 - [56] if((byte) scroll_hard::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 39) goto scroll_hard::@1 + [56] if((byte) scroll_hard::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $27) goto scroll_hard::@1 to:scroll_hard::@return scroll_hard::@return: scope:[scroll_hard] from scroll_hard::@1 [57] return @@ -136,7 +136,7 @@ fillscreen::@1: scope:[fillscreen] from fillscreen fillscreen::@1 [65] (byte*) fillscreen::cursor#2 ← phi( fillscreen/(const byte*) SCREEN#0 fillscreen::@1/(byte*) fillscreen::cursor#1 ) [66] *((byte*) fillscreen::cursor#2) ← (const byte) fillscreen::fill#0 [67] (byte*) fillscreen::cursor#1 ← ++ (byte*) fillscreen::cursor#2 - [68] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto fillscreen::@1 + [68] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto fillscreen::@1 to:fillscreen::@return fillscreen::@return: scope:[fillscreen] from fillscreen::@1 [69] return diff --git a/src/test/ref/examples/scrollbig/scrollbig.log b/src/test/ref/examples/scrollbig/scrollbig.log index 29840e7a0..ea0cc8dcb 100644 --- a/src/test/ref/examples/scrollbig/scrollbig.log +++ b/src/test/ref/examples/scrollbig/scrollbig.log @@ -2,11 +2,11 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) SCROLL#0 ← ((byte*)) (word/dword/signed dword) 53270 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) SCROLL#0 ← ((byte*)) (word/dword/signed dword) $d016 (byte*) TEXT#0 ← (const string) $0 to:@1 main: scope:[main] from @6 @@ -22,7 +22,7 @@ main: scope:[main] from @6 (byte*) RASTER#5 ← phi( @6/(byte*) RASTER#7 ) (byte*) SCREEN#1 ← phi( @6/(byte*) SCREEN#4 ) (byte*) fillscreen::screen#0 ← (byte*) SCREEN#1 - (byte) fillscreen::fill#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 + (byte) fillscreen::fill#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 call fillscreen to:main::@7 main::@7: scope:[main] from main @@ -63,7 +63,7 @@ main::@2: scope:[main] from main::@1 main::@2 main::@7 (byte) scroll#18 ← phi( main::@1/(byte) scroll#20 main::@2/(byte) scroll#18 main::@7/(byte) scroll#21 ) (byte*) BGCOL#4 ← phi( main::@1/(byte*) BGCOL#5 main::@2/(byte*) BGCOL#4 main::@7/(byte*) BGCOL#6 ) (byte*) RASTER#1 ← phi( main::@1/(byte*) RASTER#3 main::@2/(byte*) RASTER#1 main::@7/(byte*) RASTER#4 ) - (bool~) main::$1 ← *((byte*) RASTER#1) != (byte/word/signed word/dword/signed dword) 254 + (bool~) main::$1 ← *((byte*) RASTER#1) != (byte/word/signed word/dword/signed dword) $fe if((bool~) main::$1) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 main::@3 @@ -78,7 +78,7 @@ main::@3: scope:[main] from main::@2 main::@3 (byte) scroll#16 ← phi( main::@2/(byte) scroll#18 main::@3/(byte) scroll#16 ) (byte*) BGCOL#3 ← phi( main::@2/(byte*) BGCOL#4 main::@3/(byte*) BGCOL#3 ) (byte*) RASTER#2 ← phi( main::@2/(byte*) RASTER#1 main::@3/(byte*) RASTER#2 ) - (bool~) main::$2 ← *((byte*) RASTER#2) != (byte/word/signed word/dword/signed dword) 255 + (bool~) main::$2 ← *((byte*) RASTER#2) != (byte/word/signed word/dword/signed dword) $ff if((bool~) main::$2) goto main::@3 to:main::@5 main::@5: scope:[main] from main::@3 @@ -147,7 +147,7 @@ scroll_soft: scope:[scroll_soft] from main::@5 (byte*) SCROLL#2 ← phi( main::@5/(byte*) SCROLL#4 ) (byte) scroll#9 ← phi( main::@5/(byte) scroll#13 ) (byte) scroll#3 ← -- (byte) scroll#9 - (bool~) scroll_soft::$0 ← (byte) scroll#3 == (byte/word/signed word/dword/signed dword) 255 + (bool~) scroll_soft::$0 ← (byte) scroll#3 == (byte/word/signed word/dword/signed dword) $ff (bool~) scroll_soft::$1 ← ! (bool~) scroll_soft::$0 if((bool~) scroll_soft::$1) goto scroll_soft::@1 to:scroll_soft::@2 @@ -233,9 +233,9 @@ scroll_bit::@7: scope:[scroll_bit] from scroll_bit::@1 (byte*) SCREEN#2 ← phi( scroll_bit::@1/(byte*) SCREEN#5 ) (byte*) PROCPORT#1 ← phi( scroll_bit::@1/(byte*) PROCPORT#3 ) asm { sei } - *((byte*) PROCPORT#1) ← (byte/signed byte/word/signed word/dword/signed dword) 50 - (byte*~) scroll_bit::$7 ← (byte*) SCREEN#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte*~) scroll_bit::$8 ← (byte*~) scroll_bit::$7 + (byte/signed byte/word/signed word/dword/signed dword) 39 + *((byte*) PROCPORT#1) ← (byte/signed byte/word/signed word/dword/signed dword) $32 + (byte*~) scroll_bit::$7 ← (byte*) SCREEN#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 + (byte*~) scroll_bit::$8 ← (byte*~) scroll_bit::$7 + (byte/signed byte/word/signed word/dword/signed dword) $27 (byte*) scroll_bit::sc#0 ← (byte*~) scroll_bit::$8 (byte) scroll_bit::r#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:scroll_bit::@2 @@ -260,7 +260,7 @@ scroll_bit::@8: scope:[scroll_bit] from scroll_bit::@4 (word~) scroll_bit::$4 ← (word) scroll_bit::c#0 << (byte/signed byte/word/signed word/dword/signed dword) 3 (byte*~) scroll_bit::$5 ← (byte*) CHARGEN#2 + (word~) scroll_bit::$4 (byte*) current_chargen#5 ← (byte*~) scroll_bit::$5 - (byte) current_bit#6 ← (byte/word/signed word/dword/signed dword) 128 + (byte) current_bit#6 ← (byte/word/signed word/dword/signed dword) $80 to:scroll_bit::@1 scroll_bit::@2: scope:[scroll_bit] from scroll_bit::@3 scroll_bit::@7 (byte*) nxt#32 ← phi( scroll_bit::@3/(byte*) nxt#30 scroll_bit::@7/(byte*) nxt#36 ) @@ -285,7 +285,7 @@ scroll_bit::@3: scope:[scroll_bit] from scroll_bit::@2 scroll_bit::@5 (byte*) scroll_bit::sc#2 ← phi( scroll_bit::@2/(byte*) scroll_bit::sc#3 scroll_bit::@5/(byte*) scroll_bit::sc#4 ) (byte) scroll_bit::b#2 ← phi( scroll_bit::@2/(byte) scroll_bit::b#0 scroll_bit::@5/(byte) scroll_bit::b#1 ) *((byte*) scroll_bit::sc#2) ← (byte) scroll_bit::b#2 - (byte*~) scroll_bit::$13 ← (byte*) scroll_bit::sc#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) scroll_bit::$13 ← (byte*) scroll_bit::sc#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) scroll_bit::sc#1 ← (byte*~) scroll_bit::$13 (byte) scroll_bit::r#1 ← (byte) scroll_bit::r#3 + rangenext(0,7) (bool~) scroll_bit::$14 ← (byte) scroll_bit::r#1 != rangelast(0,7) @@ -298,7 +298,7 @@ scroll_bit::@5: scope:[scroll_bit] from scroll_bit::@2 (byte*) current_chargen#25 ← phi( scroll_bit::@2/(byte*) current_chargen#12 ) (byte) scroll_bit::r#4 ← phi( scroll_bit::@2/(byte) scroll_bit::r#2 ) (byte*) scroll_bit::sc#4 ← phi( scroll_bit::@2/(byte*) scroll_bit::sc#3 ) - (byte/word/signed word/dword/signed dword~) scroll_bit::$12 ← (byte/word/signed word/dword/signed dword) 128 + (byte) ' ' + (byte/word/signed word/dword/signed dword~) scroll_bit::$12 ← (byte/word/signed word/dword/signed dword) $80 + (byte) ' ' (byte) scroll_bit::b#1 ← (byte/word/signed word/dword/signed dword~) scroll_bit::$12 to:scroll_bit::@3 scroll_bit::@6: scope:[scroll_bit] from scroll_bit::@3 @@ -306,7 +306,7 @@ scroll_bit::@6: scope:[scroll_bit] from scroll_bit::@3 (byte*) nxt#25 ← phi( scroll_bit::@3/(byte*) nxt#30 ) (byte) current_bit#22 ← phi( scroll_bit::@3/(byte) current_bit#20 ) (byte*) PROCPORT#2 ← phi( scroll_bit::@3/(byte*) PROCPORT#4 ) - *((byte*) PROCPORT#2) ← (byte/signed byte/word/signed word/dword/signed dword) 55 + *((byte*) PROCPORT#2) ← (byte/signed byte/word/signed word/dword/signed dword) $37 asm { cli } to:scroll_bit::@return scroll_bit::@return: scope:[scroll_bit] from scroll_bit::@6 @@ -364,56 +364,56 @@ scroll_hard: scope:[scroll_hard] from scroll_bit::@1 scroll_hard::@1: scope:[scroll_hard] from scroll_hard scroll_hard::@1 (byte) scroll_hard::i#2 ← phi( scroll_hard/(byte) scroll_hard::i#0 scroll_hard::@1/(byte) scroll_hard::i#1 ) (byte*) SCREEN#3 ← phi( scroll_hard/(byte*) SCREEN#6 scroll_hard::@1/(byte*) SCREEN#3 ) - (byte/signed byte/word/signed word/dword/signed dword~) scroll_hard::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte/signed byte/word/signed word/dword/signed dword~) scroll_hard::$0 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*~) scroll_hard::$1 ← (byte*) SCREEN#3 + (byte/signed byte/word/signed word/dword/signed dword~) scroll_hard::$0 - (byte/signed byte/word/signed word/dword/signed dword~) scroll_hard::$2 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte/signed byte/word/signed word/dword/signed dword~) scroll_hard::$2 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*~) scroll_hard::$3 ← (byte*) SCREEN#3 + (byte/signed byte/word/signed word/dword/signed dword~) scroll_hard::$2 (byte/signed word/word/dword/signed dword~) scroll_hard::$4 ← (byte) scroll_hard::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 *((byte*~) scroll_hard::$1 + (byte) scroll_hard::i#2) ← *((byte*~) scroll_hard::$3 + (byte/signed word/word/dword/signed dword~) scroll_hard::$4) - (byte/signed byte/word/signed word/dword/signed dword~) scroll_hard::$5 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte/signed byte/word/signed word/dword/signed dword~) scroll_hard::$5 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*~) scroll_hard::$6 ← (byte*) SCREEN#3 + (byte/signed byte/word/signed word/dword/signed dword~) scroll_hard::$5 - (byte/signed byte/word/signed word/dword/signed dword~) scroll_hard::$7 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte/signed byte/word/signed word/dword/signed dword~) scroll_hard::$7 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*~) scroll_hard::$8 ← (byte*) SCREEN#3 + (byte/signed byte/word/signed word/dword/signed dword~) scroll_hard::$7 (byte/signed word/word/dword/signed dword~) scroll_hard::$9 ← (byte) scroll_hard::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 *((byte*~) scroll_hard::$6 + (byte) scroll_hard::i#2) ← *((byte*~) scroll_hard::$8 + (byte/signed word/word/dword/signed dword~) scroll_hard::$9) - (byte/signed byte/word/signed word/dword/signed dword~) scroll_hard::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte/signed byte/word/signed word/dword/signed dword~) scroll_hard::$10 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 2 (byte*~) scroll_hard::$11 ← (byte*) SCREEN#3 + (byte/signed byte/word/signed word/dword/signed dword~) scroll_hard::$10 - (byte/signed byte/word/signed word/dword/signed dword~) scroll_hard::$12 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte/signed byte/word/signed word/dword/signed dword~) scroll_hard::$12 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 2 (byte*~) scroll_hard::$13 ← (byte*) SCREEN#3 + (byte/signed byte/word/signed word/dword/signed dword~) scroll_hard::$12 (byte/signed word/word/dword/signed dword~) scroll_hard::$14 ← (byte) scroll_hard::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 *((byte*~) scroll_hard::$11 + (byte) scroll_hard::i#2) ← *((byte*~) scroll_hard::$13 + (byte/signed word/word/dword/signed dword~) scroll_hard::$14) - (byte/signed byte/word/signed word/dword/signed dword~) scroll_hard::$15 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 3 + (byte/signed byte/word/signed word/dword/signed dword~) scroll_hard::$15 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 3 (byte*~) scroll_hard::$16 ← (byte*) SCREEN#3 + (byte/signed byte/word/signed word/dword/signed dword~) scroll_hard::$15 - (byte/signed byte/word/signed word/dword/signed dword~) scroll_hard::$17 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 3 + (byte/signed byte/word/signed word/dword/signed dword~) scroll_hard::$17 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 3 (byte*~) scroll_hard::$18 ← (byte*) SCREEN#3 + (byte/signed byte/word/signed word/dword/signed dword~) scroll_hard::$17 (byte/signed word/word/dword/signed dword~) scroll_hard::$19 ← (byte) scroll_hard::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 *((byte*~) scroll_hard::$16 + (byte) scroll_hard::i#2) ← *((byte*~) scroll_hard::$18 + (byte/signed word/word/dword/signed dword~) scroll_hard::$19) - (byte/word/signed word/dword/signed dword~) scroll_hard::$20 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte/word/signed word/dword/signed dword~) scroll_hard::$20 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 4 (byte*~) scroll_hard::$21 ← (byte*) SCREEN#3 + (byte/word/signed word/dword/signed dword~) scroll_hard::$20 - (byte/word/signed word/dword/signed dword~) scroll_hard::$22 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte/word/signed word/dword/signed dword~) scroll_hard::$22 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 4 (byte*~) scroll_hard::$23 ← (byte*) SCREEN#3 + (byte/word/signed word/dword/signed dword~) scroll_hard::$22 (byte/signed word/word/dword/signed dword~) scroll_hard::$24 ← (byte) scroll_hard::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 *((byte*~) scroll_hard::$21 + (byte) scroll_hard::i#2) ← *((byte*~) scroll_hard::$23 + (byte/signed word/word/dword/signed dword~) scroll_hard::$24) - (byte/word/signed word/dword/signed dword~) scroll_hard::$25 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 5 + (byte/word/signed word/dword/signed dword~) scroll_hard::$25 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 5 (byte*~) scroll_hard::$26 ← (byte*) SCREEN#3 + (byte/word/signed word/dword/signed dword~) scroll_hard::$25 - (byte/word/signed word/dword/signed dword~) scroll_hard::$27 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 5 + (byte/word/signed word/dword/signed dword~) scroll_hard::$27 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 5 (byte*~) scroll_hard::$28 ← (byte*) SCREEN#3 + (byte/word/signed word/dword/signed dword~) scroll_hard::$27 (byte/signed word/word/dword/signed dword~) scroll_hard::$29 ← (byte) scroll_hard::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 *((byte*~) scroll_hard::$26 + (byte) scroll_hard::i#2) ← *((byte*~) scroll_hard::$28 + (byte/signed word/word/dword/signed dword~) scroll_hard::$29) - (byte/word/signed word/dword/signed dword~) scroll_hard::$30 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 6 + (byte/word/signed word/dword/signed dword~) scroll_hard::$30 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 6 (byte*~) scroll_hard::$31 ← (byte*) SCREEN#3 + (byte/word/signed word/dword/signed dword~) scroll_hard::$30 - (byte/word/signed word/dword/signed dword~) scroll_hard::$32 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 6 + (byte/word/signed word/dword/signed dword~) scroll_hard::$32 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 6 (byte*~) scroll_hard::$33 ← (byte*) SCREEN#3 + (byte/word/signed word/dword/signed dword~) scroll_hard::$32 (byte/signed word/word/dword/signed dword~) scroll_hard::$34 ← (byte) scroll_hard::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 *((byte*~) scroll_hard::$31 + (byte) scroll_hard::i#2) ← *((byte*~) scroll_hard::$33 + (byte/signed word/word/dword/signed dword~) scroll_hard::$34) - (word/signed word/dword/signed dword~) scroll_hard::$35 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 7 + (word/signed word/dword/signed dword~) scroll_hard::$35 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*~) scroll_hard::$36 ← (byte*) SCREEN#3 + (word/signed word/dword/signed dword~) scroll_hard::$35 - (word/signed word/dword/signed dword~) scroll_hard::$37 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 7 + (word/signed word/dword/signed dword~) scroll_hard::$37 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*~) scroll_hard::$38 ← (byte*) SCREEN#3 + (word/signed word/dword/signed dword~) scroll_hard::$37 (byte/signed word/word/dword/signed dword~) scroll_hard::$39 ← (byte) scroll_hard::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 *((byte*~) scroll_hard::$36 + (byte) scroll_hard::i#2) ← *((byte*~) scroll_hard::$38 + (byte/signed word/word/dword/signed dword~) scroll_hard::$39) (byte) scroll_hard::i#1 ← ++ (byte) scroll_hard::i#2 - (bool~) scroll_hard::$40 ← (byte) scroll_hard::i#1 != (byte/signed byte/word/signed word/dword/signed dword) 39 + (bool~) scroll_hard::$40 ← (byte) scroll_hard::i#1 != (byte/signed byte/word/signed word/dword/signed dword) $27 if((bool~) scroll_hard::$40) goto scroll_hard::@1 to:scroll_hard::@return scroll_hard::@return: scope:[scroll_hard] from scroll_hard::@1 @@ -430,7 +430,7 @@ fillscreen::@1: scope:[fillscreen] from fillscreen fillscreen::@1 (byte) fillscreen::fill#1 ← phi( fillscreen/(byte) fillscreen::fill#2 fillscreen::@1/(byte) fillscreen::fill#1 ) *((byte*) fillscreen::cursor#2) ← (byte) fillscreen::fill#1 (byte*) fillscreen::cursor#1 ← ++ (byte*) fillscreen::cursor#2 - (byte*~) fillscreen::$0 ← (byte*) fillscreen::screen#2 + (word/signed word/dword/signed dword) 1000 + (byte*~) fillscreen::$0 ← (byte*) fillscreen::screen#2 + (word/signed word/dword/signed dword) $3e8 (bool~) fillscreen::$1 ← (byte*) fillscreen::cursor#1 < (byte*~) fillscreen::$0 if((bool~) fillscreen::$1) goto fillscreen::@1 to:fillscreen::@return @@ -872,7 +872,7 @@ SYMBOL TABLE SSA (label) scroll_soft::@3 (label) scroll_soft::@return -Inversing boolean not [40] (bool~) scroll_soft::$1 ← (byte) scroll#3 != (byte/word/signed word/dword/signed dword) 255 from [39] (bool~) scroll_soft::$0 ← (byte) scroll#3 == (byte/word/signed word/dword/signed dword) 255 +Inversing boolean not [40] (bool~) scroll_soft::$1 ← (byte) scroll#3 != (byte/word/signed word/dword/signed dword) $ff from [39] (bool~) scroll_soft::$0 ← (byte) scroll#3 == (byte/word/signed word/dword/signed dword) $ff Inversing boolean not [64] (bool~) scroll_bit::$2 ← (byte) current_bit#5 != (byte/signed byte/word/signed word/dword/signed dword) 0 from [63] (bool~) scroll_bit::$1 ← (byte) current_bit#5 == (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not [91] (bool~) scroll_bit::$11 ← (byte~) scroll_bit::$9 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [90] (bool~) scroll_bit::$10 ← (byte~) scroll_bit::$9 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not [116] (bool~) next_char::$1 ← (byte) next_char::c#0 != (byte) '@' from [115] (bool~) next_char::$0 ← (byte) next_char::c#0 == (byte) '@' @@ -1067,52 +1067,52 @@ Redundant Phi (byte) current_bit#16 (byte) current_bit#0 Redundant Phi (byte*) nxt#10 (byte*) nxt#0 Redundant Phi (byte*) current_chargen#14 (byte*) current_chargen#0 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$1 [15] if(*((byte*) RASTER#1)!=(byte/word/signed word/dword/signed dword) 254) goto main::@2 -Simple Condition (bool~) main::$2 [18] if(*((byte*) RASTER#1)!=(byte/word/signed word/dword/signed dword) 255) goto main::@3 -Simple Condition (bool~) scroll_soft::$1 [41] if((byte) scroll#3!=(byte/word/signed word/dword/signed dword) 255) goto scroll_soft::@1 +Simple Condition (bool~) main::$1 [15] if(*((byte*) RASTER#1)!=(byte/word/signed word/dword/signed dword) $fe) goto main::@2 +Simple Condition (bool~) main::$2 [18] if(*((byte*) RASTER#1)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@3 +Simple Condition (bool~) scroll_soft::$1 [41] if((byte) scroll#3!=(byte/word/signed word/dword/signed dword) $ff) goto scroll_soft::@1 Simple Condition (bool~) scroll_bit::$2 [65] if((byte) current_bit#5!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto scroll_bit::@1 Simple Condition (bool~) scroll_bit::$11 [92] if((byte~) scroll_bit::$9==(byte/signed byte/word/signed word/dword/signed dword) 0) goto scroll_bit::@3 Simple Condition (bool~) scroll_bit::$14 [99] if((byte) scroll_bit::r#1!=rangelast(0,7)) goto scroll_bit::@2 Simple Condition (bool~) next_char::$1 [117] if((byte) next_char::c#0!=(byte) '@') goto next_char::@1 -Simple Condition (bool~) scroll_hard::$40 [181] if((byte) scroll_hard::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 39) goto scroll_hard::@1 +Simple Condition (bool~) scroll_hard::$40 [181] if((byte) scroll_hard::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $27) goto scroll_hard::@1 Simple Condition (bool~) fillscreen::$1 [190] if((byte*) fillscreen::cursor#1<(byte*~) fillscreen::$0) goto fillscreen::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const byte*) SCREEN#0 = ((byte*))1024 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) BGCOL#0 = ((byte*))53280 -Constant (const byte*) SCROLL#0 = ((byte*))53270 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const byte*) SCREEN#0 = ((byte*))$400 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) BGCOL#0 = ((byte*))$d020 +Constant (const byte*) SCROLL#0 = ((byte*))$d016 Constant (const byte*) TEXT#0 = $0 -Constant (const byte) fillscreen::fill#0 = 32 +Constant (const byte) fillscreen::fill#0 = $20 Constant (const byte) scroll#15 = 7 Constant (const byte) scroll#14 = 7 Constant (const byte) current_bit#23 = 1 Constant (const byte) scroll_bit::r#0 = 0 -Constant (const byte) current_bit#6 = 128 +Constant (const byte) current_bit#6 = $80 Constant (const byte) scroll_bit::b#0 = ' ' -Constant (const byte) scroll_bit::b#1 = 128+' ' +Constant (const byte) scroll_bit::b#1 = $80+' ' Constant (const byte) scroll_hard::i#0 = 0 -Constant (const byte/signed byte/word/signed word/dword/signed dword) scroll_hard::$0 = 40*0 -Constant (const byte/signed byte/word/signed word/dword/signed dword) scroll_hard::$2 = 40*0 -Constant (const byte/signed byte/word/signed word/dword/signed dword) scroll_hard::$5 = 40*1 -Constant (const byte/signed byte/word/signed word/dword/signed dword) scroll_hard::$7 = 40*1 -Constant (const byte/signed byte/word/signed word/dword/signed dword) scroll_hard::$10 = 40*2 -Constant (const byte/signed byte/word/signed word/dword/signed dword) scroll_hard::$12 = 40*2 -Constant (const byte/signed byte/word/signed word/dword/signed dword) scroll_hard::$15 = 40*3 -Constant (const byte/signed byte/word/signed word/dword/signed dword) scroll_hard::$17 = 40*3 -Constant (const byte/word/signed word/dword/signed dword) scroll_hard::$20 = 40*4 -Constant (const byte/word/signed word/dword/signed dword) scroll_hard::$22 = 40*4 -Constant (const byte/word/signed word/dword/signed dword) scroll_hard::$25 = 40*5 -Constant (const byte/word/signed word/dword/signed dword) scroll_hard::$27 = 40*5 -Constant (const byte/word/signed word/dword/signed dword) scroll_hard::$30 = 40*6 -Constant (const byte/word/signed word/dword/signed dword) scroll_hard::$32 = 40*6 -Constant (const word/signed word/dword/signed dword) scroll_hard::$35 = 40*7 -Constant (const word/signed word/dword/signed dword) scroll_hard::$37 = 40*7 +Constant (const byte/signed byte/word/signed word/dword/signed dword) scroll_hard::$0 = $28*0 +Constant (const byte/signed byte/word/signed word/dword/signed dword) scroll_hard::$2 = $28*0 +Constant (const byte/signed byte/word/signed word/dword/signed dword) scroll_hard::$5 = $28*1 +Constant (const byte/signed byte/word/signed word/dword/signed dword) scroll_hard::$7 = $28*1 +Constant (const byte/signed byte/word/signed word/dword/signed dword) scroll_hard::$10 = $28*2 +Constant (const byte/signed byte/word/signed word/dword/signed dword) scroll_hard::$12 = $28*2 +Constant (const byte/signed byte/word/signed word/dword/signed dword) scroll_hard::$15 = $28*3 +Constant (const byte/signed byte/word/signed word/dword/signed dword) scroll_hard::$17 = $28*3 +Constant (const byte/word/signed word/dword/signed dword) scroll_hard::$20 = $28*4 +Constant (const byte/word/signed word/dword/signed dword) scroll_hard::$22 = $28*4 +Constant (const byte/word/signed word/dword/signed dword) scroll_hard::$25 = $28*5 +Constant (const byte/word/signed word/dword/signed dword) scroll_hard::$27 = $28*5 +Constant (const byte/word/signed word/dword/signed dword) scroll_hard::$30 = $28*6 +Constant (const byte/word/signed word/dword/signed dword) scroll_hard::$32 = $28*6 +Constant (const word/signed word/dword/signed dword) scroll_hard::$35 = $28*7 +Constant (const word/signed word/dword/signed dword) scroll_hard::$37 = $28*7 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) fillscreen::screen#0 = SCREEN#0 Successful SSA optimization Pass2ConstantIdentification -Constant (const byte*) fillscreen::$0 = fillscreen::screen#0+1000 +Constant (const byte*) fillscreen::$0 = fillscreen::screen#0+$3e8 Successful SSA optimization Pass2ConstantIdentification Consolidated constant in assignment scroll_bit::sc#0 Successful SSA optimization Pass2ConstantAdditionElimination @@ -1164,7 +1164,7 @@ Constant (const byte*) scroll_hard::$33 = SCREEN#0+scroll_hard::$32 Constant (const byte*) scroll_hard::$36 = SCREEN#0+scroll_hard::$35 Constant (const byte*) scroll_hard::$38 = SCREEN#0+scroll_hard::$37 Successful SSA optimization Pass2ConstantIdentification -Constant (const byte*) scroll_bit::sc#0 = scroll_bit::$7+40+39 +Constant (const byte*) scroll_bit::sc#0 = scroll_bit::$7+$28+$27 Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in assignment *(scroll_hard::$3+1 + scroll_hard::$4) Consolidated array index constant in assignment *(scroll_hard::$8+1 + scroll_hard::$9) @@ -1194,54 +1194,54 @@ Inlining constant with var siblings (const byte) scroll#15 Inlining constant with var siblings (const byte) scroll#14 Inlining constant with var siblings (const byte) current_bit#23 Inlining constant with var siblings (const byte) current_bit#6 -Constant inlined scroll_hard::$3 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined scroll_hard::$6 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined scroll_hard::$5 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined scroll_hard::$0 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined scroll_hard::$2 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined scroll_hard::$1 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined scroll_hard::$3 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined scroll_hard::$6 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined scroll_hard::$5 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined scroll_hard::$0 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined scroll_hard::$2 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined scroll_hard::$1 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined $0 = (const byte*) TEXT#0 -Constant inlined scroll_hard::$23 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 -Constant inlined scroll_hard::$25 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 -Constant inlined scroll_hard::$26 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 -Constant inlined scroll_hard::$27 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 -Constant inlined current_bit#6 = (byte/word/signed word/dword/signed dword) 128 -Constant inlined scroll_hard::$28 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 +Constant inlined scroll_hard::$23 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 +Constant inlined scroll_hard::$25 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 +Constant inlined scroll_hard::$26 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 +Constant inlined scroll_hard::$27 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 +Constant inlined current_bit#6 = (byte/word/signed word/dword/signed dword) $80 +Constant inlined scroll_hard::$28 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 Constant inlined scroll_bit::r#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined current_bit#23 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined fillscreen::screen#0 = (const byte*) SCREEN#0 -Constant inlined scroll_hard::$8 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined scroll_hard::$7 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined scroll_hard::$20 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 -Constant inlined scroll_hard::$21 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 -Constant inlined scroll_hard::$22 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 +Constant inlined scroll_hard::$8 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined scroll_hard::$7 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined scroll_hard::$20 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 +Constant inlined scroll_hard::$21 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 +Constant inlined scroll_hard::$22 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 Constant inlined scroll_hard::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined scroll_bit::b#0 = (byte) ' ' Constant inlined scroll_bit::$7 = (const byte*) SCREEN#0 -Constant inlined fillscreen::$0 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000 -Constant inlined scroll_bit::b#1 = (byte/word/signed word/dword/signed dword) 128+(byte) ' ' -Constant inlined scroll_hard::$12 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined scroll_hard::$35 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 7 -Constant inlined scroll_hard::$13 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined scroll_hard::$36 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 7 -Constant inlined scroll_hard::$15 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 -Constant inlined scroll_hard::$37 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 7 -Constant inlined scroll_hard::$16 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 -Constant inlined scroll_hard::$38 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 7 -Constant inlined scroll_hard::$17 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 -Constant inlined scroll_hard::$18 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 -Constant inlined scroll_bit::sc#0 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 39 -Constant inlined scroll_hard::$30 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6 +Constant inlined fillscreen::$0 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8 +Constant inlined scroll_bit::b#1 = (byte/word/signed word/dword/signed dword) $80+(byte) ' ' +Constant inlined scroll_hard::$12 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined scroll_hard::$35 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 7 +Constant inlined scroll_hard::$13 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined scroll_hard::$36 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 7 +Constant inlined scroll_hard::$15 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 +Constant inlined scroll_hard::$37 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 7 +Constant inlined scroll_hard::$16 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 +Constant inlined scroll_hard::$38 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 7 +Constant inlined scroll_hard::$17 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 +Constant inlined scroll_hard::$18 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 +Constant inlined scroll_bit::sc#0 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $27 +Constant inlined scroll_hard::$30 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 6 Constant inlined scroll#15 = (byte/signed byte/word/signed word/dword/signed dword) 7 -Constant inlined scroll_hard::$31 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6 -Constant inlined scroll_hard::$10 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined scroll_hard::$32 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6 -Constant inlined scroll_hard::$11 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined scroll_hard::$33 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6 +Constant inlined scroll_hard::$31 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 6 +Constant inlined scroll_hard::$10 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined scroll_hard::$32 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 6 +Constant inlined scroll_hard::$11 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined scroll_hard::$33 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 6 Constant inlined scroll#14 = (byte/signed byte/word/signed word/dword/signed dword) 7 Successful SSA optimization Pass2ConstantInlining -Simplifying constant multiply by zero 40*0 -Simplifying constant multiply by zero 40*0 +Simplifying constant multiply by zero $28*0 +Simplifying constant multiply by zero $28*0 Simplifying constant plus zero SCREEN#0+0 Simplifying constant plus zero SCREEN#0+0 Added new block during phi lifting scroll_soft::@4(between scroll_soft and scroll_soft::@1) @@ -1325,10 +1325,10 @@ main::@2: scope:[main] from main main::@2 main::@8 [6] (byte*) nxt#31 ← phi( main::@8/(byte*) nxt#14 main/(const byte*) TEXT#0 ) [6] (byte) current_bit#29 ← phi( main::@8/(byte) current_bit#12 main/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [6] (byte) scroll#18 ← phi( main::@8/(byte) scroll#10 main/(byte/signed byte/word/signed word/dword/signed dword) 7 ) - [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@2 + [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fe) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 main::@3 - [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@3 + [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@3 to:main::@5 main::@5: scope:[main] from main::@3 [9] *((const byte*) BGCOL#0) ← ++ *((const byte*) BGCOL#0) @@ -1339,7 +1339,7 @@ main::@8: scope:[main] from main::@5 to:main::@2 scroll_soft: scope:[scroll_soft] from main::@5 [12] (byte) scroll#3 ← -- (byte) scroll#18 - [13] if((byte) scroll#3!=(byte/word/signed word/dword/signed dword) 255) goto scroll_soft::@1 + [13] if((byte) scroll#3!=(byte/word/signed word/dword/signed dword) $ff) goto scroll_soft::@1 to:scroll_soft::@2 scroll_soft::@2: scope:[scroll_soft] from scroll_soft [14] phi() @@ -1372,16 +1372,16 @@ scroll_bit::@8: scope:[scroll_bit] from scroll_bit::@4 to:scroll_bit::@1 scroll_bit::@1: scope:[scroll_bit] from scroll_bit scroll_bit::@8 [28] (byte*) nxt#36 ← phi( scroll_bit/(byte*) nxt#31 scroll_bit::@8/(byte*) nxt#19 ) - [28] (byte) current_bit#21 ← phi( scroll_bit/(byte) current_bit#5 scroll_bit::@8/(byte/word/signed word/dword/signed dword) 128 ) + [28] (byte) current_bit#21 ← phi( scroll_bit/(byte) current_bit#5 scroll_bit::@8/(byte/word/signed word/dword/signed dword) $80 ) [28] (byte*) current_chargen#19 ← phi( scroll_bit/(byte*) current_chargen#27 scroll_bit::@8/(byte*) current_chargen#5 ) [29] call scroll_hard to:scroll_bit::@7 scroll_bit::@7: scope:[scroll_bit] from scroll_bit::@1 asm { sei } - [31] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 + [31] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 to:scroll_bit::@2 scroll_bit::@2: scope:[scroll_bit] from scroll_bit::@3 scroll_bit::@7 - [32] (byte*) scroll_bit::sc#2 ← phi( scroll_bit::@3/(byte*) scroll_bit::sc#1 scroll_bit::@7/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 39 ) + [32] (byte*) scroll_bit::sc#2 ← phi( scroll_bit::@3/(byte*) scroll_bit::sc#1 scroll_bit::@7/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $27 ) [32] (byte) scroll_bit::r#2 ← phi( scroll_bit::@3/(byte) scroll_bit::r#1 scroll_bit::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [33] (byte) scroll_bit::bits#0 ← *((byte*) current_chargen#19 + (byte) scroll_bit::r#2) [34] (byte~) scroll_bit::$9 ← (byte) scroll_bit::bits#0 & (byte) current_bit#21 @@ -1391,14 +1391,14 @@ scroll_bit::@5: scope:[scroll_bit] from scroll_bit::@2 [36] phi() to:scroll_bit::@3 scroll_bit::@3: scope:[scroll_bit] from scroll_bit::@2 scroll_bit::@5 - [37] (byte) scroll_bit::b#2 ← phi( scroll_bit::@2/(byte) ' ' scroll_bit::@5/(byte/word/signed word/dword/signed dword) 128+(byte) ' ' ) + [37] (byte) scroll_bit::b#2 ← phi( scroll_bit::@2/(byte) ' ' scroll_bit::@5/(byte/word/signed word/dword/signed dword) $80+(byte) ' ' ) [38] *((byte*) scroll_bit::sc#2) ← (byte) scroll_bit::b#2 - [39] (byte*) scroll_bit::sc#1 ← (byte*) scroll_bit::sc#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [39] (byte*) scroll_bit::sc#1 ← (byte*) scroll_bit::sc#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 [40] (byte) scroll_bit::r#1 ← ++ (byte) scroll_bit::r#2 [41] if((byte) scroll_bit::r#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto scroll_bit::@2 to:scroll_bit::@6 scroll_bit::@6: scope:[scroll_bit] from scroll_bit::@3 - [42] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 + [42] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 asm { cli } to:scroll_bit::@return scroll_bit::@return: scope:[scroll_bit] from scroll_bit::@6 @@ -1410,15 +1410,15 @@ scroll_hard: scope:[scroll_hard] from scroll_bit::@1 scroll_hard::@1: scope:[scroll_hard] from scroll_hard scroll_hard::@1 [46] (byte) scroll_hard::i#2 ← phi( scroll_hard/(byte/signed byte/word/signed word/dword/signed dword) 0 scroll_hard::@1/(byte) scroll_hard::i#1 ) [47] *((const byte*) SCREEN#0 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) - [48] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) - [49] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) - [50] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) - [51] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) - [52] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) - [53] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) - [54] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 7+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) + [48] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) + [49] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) + [50] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) + [51] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) + [52] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) + [53] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 6 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 6+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) + [54] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 7+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [55] (byte) scroll_hard::i#1 ← ++ (byte) scroll_hard::i#2 - [56] if((byte) scroll_hard::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 39) goto scroll_hard::@1 + [56] if((byte) scroll_hard::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $27) goto scroll_hard::@1 to:scroll_hard::@return scroll_hard::@return: scope:[scroll_hard] from scroll_hard::@1 [57] return @@ -1445,7 +1445,7 @@ fillscreen::@1: scope:[fillscreen] from fillscreen fillscreen::@1 [65] (byte*) fillscreen::cursor#2 ← phi( fillscreen/(const byte*) SCREEN#0 fillscreen::@1/(byte*) fillscreen::cursor#1 ) [66] *((byte*) fillscreen::cursor#2) ← (const byte) fillscreen::fill#0 [67] (byte*) fillscreen::cursor#1 ← ++ (byte*) fillscreen::cursor#2 - [68] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto fillscreen::@1 + [68] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto fillscreen::@1 to:fillscreen::@return fillscreen::@return: scope:[fillscreen] from fillscreen::@1 [69] return @@ -1632,14 +1632,14 @@ main: { jmp b2 //SEG19 main::@2 b2: - //SEG20 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG20 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fe) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$fe bne b2_from_b2 jmp b3 //SEG21 main::@3 b3: - //SEG22 [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG22 [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b3 @@ -1667,7 +1667,7 @@ main: { scroll_soft: { //SEG34 [12] (byte) scroll#3 ← -- (byte) scroll#18 -- vbuz1=_dec_vbuz1 dec scroll - //SEG35 [13] if((byte) scroll#3!=(byte/word/signed word/dword/signed dword) 255) goto scroll_soft::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG35 [13] if((byte) scroll#3!=(byte/word/signed word/dword/signed dword) $ff) goto scroll_soft::@1 -- vbuz1_neq_vbuc1_then_la1 lda scroll cmp #$ff bne b1_from_scroll_soft @@ -1764,7 +1764,7 @@ scroll_bit: { //SEG65 [28] phi from scroll_bit::@8 to scroll_bit::@1 [phi:scroll_bit::@8->scroll_bit::@1] b1_from_b8: //SEG66 [28] phi (byte*) nxt#36 = (byte*) nxt#19 [phi:scroll_bit::@8->scroll_bit::@1#0] -- register_copy - //SEG67 [28] phi (byte) current_bit#21 = (byte/word/signed word/dword/signed dword) 128 [phi:scroll_bit::@8->scroll_bit::@1#1] -- vbuz1=vbuc1 + //SEG67 [28] phi (byte) current_bit#21 = (byte/word/signed word/dword/signed dword) $80 [phi:scroll_bit::@8->scroll_bit::@1#1] -- vbuz1=vbuc1 lda #$80 sta current_bit //SEG68 [28] phi (byte*) current_chargen#19 = (byte*) current_chargen#5 [phi:scroll_bit::@8->scroll_bit::@1#2] -- register_copy @@ -1786,12 +1786,12 @@ scroll_bit: { b7: //SEG77 asm { sei } sei - //SEG78 [31] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- _deref_pbuc1=vbuc2 + //SEG78 [31] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 -- _deref_pbuc1=vbuc2 lda #$32 sta PROCPORT //SEG79 [32] phi from scroll_bit::@7 to scroll_bit::@2 [phi:scroll_bit::@7->scroll_bit::@2] b2_from_b7: - //SEG80 [32] phi (byte*) scroll_bit::sc#2 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 39 [phi:scroll_bit::@7->scroll_bit::@2#0] -- pbuz1=pbuc1 + //SEG80 [32] phi (byte*) scroll_bit::sc#2 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $27 [phi:scroll_bit::@7->scroll_bit::@2#0] -- pbuz1=pbuc1 lda #SCREEN+$28+$27 @@ -1826,7 +1826,7 @@ scroll_bit: { b5: //SEG91 [37] phi from scroll_bit::@5 to scroll_bit::@3 [phi:scroll_bit::@5->scroll_bit::@3] b3_from_b5: - //SEG92 [37] phi (byte) scroll_bit::b#2 = (byte/word/signed word/dword/signed dword) 128+(byte) ' ' [phi:scroll_bit::@5->scroll_bit::@3#0] -- vbuz1=vbuc1 + //SEG92 [37] phi (byte) scroll_bit::b#2 = (byte/word/signed word/dword/signed dword) $80+(byte) ' ' [phi:scroll_bit::@5->scroll_bit::@3#0] -- vbuz1=vbuc1 lda #$80+' ' sta b jmp b3 @@ -1842,7 +1842,7 @@ scroll_bit: { lda b ldy #0 sta (sc),y - //SEG97 [39] (byte*) scroll_bit::sc#1 ← (byte*) scroll_bit::sc#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG97 [39] (byte*) scroll_bit::sc#1 ← (byte*) scroll_bit::sc#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda sc clc adc #$28 @@ -1859,7 +1859,7 @@ scroll_bit: { jmp b6 //SEG100 scroll_bit::@6 b6: - //SEG101 [42] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 -- _deref_pbuc1=vbuc2 + //SEG101 [42] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 -- _deref_pbuc1=vbuc2 lda #$37 sta PROCPORT //SEG102 asm { cli } @@ -1890,37 +1890,37 @@ scroll_hard: { ldy i lda SCREEN+1,y sta SCREEN,y - //SEG112 [48] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 + //SEG112 [48] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 ldy i lda SCREEN+$28*1+1,y sta SCREEN+$28*1,y - //SEG113 [49] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 + //SEG113 [49] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 ldy i lda SCREEN+$28*2+1,y sta SCREEN+$28*2,y - //SEG114 [50] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 + //SEG114 [50] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 ldy i lda SCREEN+$28*3+1,y sta SCREEN+$28*3,y - //SEG115 [51] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 + //SEG115 [51] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 ldy i lda SCREEN+$28*4+1,y sta SCREEN+$28*4,y - //SEG116 [52] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 + //SEG116 [52] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 ldy i lda SCREEN+$28*5+1,y sta SCREEN+$28*5,y - //SEG117 [53] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 + //SEG117 [53] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 6 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 6+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 ldy i lda SCREEN+$28*6+1,y sta SCREEN+$28*6,y - //SEG118 [54] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 7+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 + //SEG118 [54] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 7+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 ldy i lda SCREEN+$28*7+1,y sta SCREEN+$28*7,y //SEG119 [55] (byte) scroll_hard::i#1 ← ++ (byte) scroll_hard::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG120 [56] if((byte) scroll_hard::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 39) goto scroll_hard::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG120 [56] if((byte) scroll_hard::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $27) goto scroll_hard::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$27 bne b1_from_b1 @@ -2005,7 +2005,7 @@ fillscreen: { bne !+ inc cursor+1 !: - //SEG146 [68] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto fillscreen::@1 -- pbuz1_lt_pbuc1_then_la1 + //SEG146 [68] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto fillscreen::@1 -- pbuz1_lt_pbuc1_then_la1 lda cursor+1 cmp #>SCREEN+$3e8 bcc b1_from_b1 @@ -2023,56 +2023,56 @@ fillscreen: { TEXT: .text "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- @" REGISTER UPLIFT POTENTIAL REGISTERS -Statement [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@2 [ scroll#18 current_bit#29 nxt#31 current_chargen#27 ] ( main:2 [ scroll#18 current_bit#29 nxt#31 current_chargen#27 ] ) always clobbers reg byte a +Statement [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fe) goto main::@2 [ scroll#18 current_bit#29 nxt#31 current_chargen#27 ] ( main:2 [ scroll#18 current_bit#29 nxt#31 current_chargen#27 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ scroll#18 scroll#10 scroll#3 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ] -Statement [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@3 [ scroll#18 current_bit#29 nxt#31 current_chargen#27 ] ( main:2 [ scroll#18 current_bit#29 nxt#31 current_chargen#27 ] ) always clobbers reg byte a +Statement [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@3 [ scroll#18 current_bit#29 nxt#31 current_chargen#27 ] ( main:2 [ scroll#18 current_bit#29 nxt#31 current_chargen#27 ] ) always clobbers reg byte a Statement [25] (word) scroll_bit::c#0 ← ((word)) (byte~) scroll_bit::$3 [ scroll_bit::c#0 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:15 [ scroll_bit::c#0 nxt#19 ] ) always clobbers reg byte a Statement [26] (word~) scroll_bit::$4 ← (word) scroll_bit::c#0 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ scroll_bit::$4 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:15 [ scroll_bit::$4 nxt#19 ] ) always clobbers reg byte a Statement [27] (byte*) current_chargen#5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ current_chargen#5 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:15 [ current_chargen#5 nxt#19 ] ) always clobbers reg byte a -Statement [31] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ current_bit#21 nxt#36 current_chargen#19 ] ( main:2::scroll_soft:10::scroll_bit:15 [ current_bit#21 nxt#36 current_chargen#19 ] ) always clobbers reg byte a +Statement [31] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 [ current_bit#21 nxt#36 current_chargen#19 ] ( main:2::scroll_soft:10::scroll_bit:15 [ current_bit#21 nxt#36 current_chargen#19 ] ) always clobbers reg byte a Statement [33] (byte) scroll_bit::bits#0 ← *((byte*) current_chargen#19 + (byte) scroll_bit::r#2) [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::bits#0 ] ( main:2::scroll_soft:10::scroll_bit:15 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::bits#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:6 [ scroll_bit::r#2 scroll_bit::r#1 ] Statement [34] (byte~) scroll_bit::$9 ← (byte) scroll_bit::bits#0 & (byte) current_bit#21 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::$9 ] ( main:2::scroll_soft:10::scroll_bit:15 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::$9 ] ) always clobbers reg byte a Statement [38] *((byte*) scroll_bit::sc#2) ← (byte) scroll_bit::b#2 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:2::scroll_soft:10::scroll_bit:15 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:3 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:6 [ scroll_bit::r#2 scroll_bit::r#1 ] -Statement [39] (byte*) scroll_bit::sc#1 ← (byte*) scroll_bit::sc#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#1 ] ( main:2::scroll_soft:10::scroll_bit:15 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#1 ] ) always clobbers reg byte a -Statement [42] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 [ current_bit#21 nxt#36 current_chargen#19 ] ( main:2::scroll_soft:10::scroll_bit:15 [ current_bit#21 nxt#36 current_chargen#19 ] ) always clobbers reg byte a +Statement [39] (byte*) scroll_bit::sc#1 ← (byte*) scroll_bit::sc#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#1 ] ( main:2::scroll_soft:10::scroll_bit:15 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#1 ] ) always clobbers reg byte a +Statement [42] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 [ current_bit#21 nxt#36 current_chargen#19 ] ( main:2::scroll_soft:10::scroll_bit:15 [ current_bit#21 nxt#36 current_chargen#19 ] ) always clobbers reg byte a Statement [47] *((const byte*) SCREEN#0 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:10 [ scroll_hard::i#2 scroll_hard::i#1 ] -Statement [48] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a -Statement [49] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a -Statement [50] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a -Statement [51] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a -Statement [52] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a -Statement [53] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a -Statement [54] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 7+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a +Statement [48] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a +Statement [49] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a +Statement [50] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a +Statement [51] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a +Statement [52] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a +Statement [53] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 6 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 6+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a +Statement [54] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 7+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a Statement [58] (byte) next_char::c#0 ← *((byte*) nxt#31) [ nxt#31 next_char::c#0 ] ( main:2::scroll_soft:10::scroll_bit:15::next_char:22 [ nxt#31 next_char::c#0 ] ) always clobbers reg byte a reg byte y Statement [66] *((byte*) fillscreen::cursor#2) ← (const byte) fillscreen::fill#0 [ fillscreen::cursor#2 ] ( main:2::fillscreen:5 [ fillscreen::cursor#2 ] ) always clobbers reg byte a reg byte y -Statement [68] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto fillscreen::@1 [ fillscreen::cursor#1 ] ( main:2::fillscreen:5 [ fillscreen::cursor#1 ] ) always clobbers reg byte a -Statement [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@2 [ scroll#18 current_bit#29 nxt#31 current_chargen#27 ] ( main:2 [ scroll#18 current_bit#29 nxt#31 current_chargen#27 ] ) always clobbers reg byte a -Statement [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@3 [ scroll#18 current_bit#29 nxt#31 current_chargen#27 ] ( main:2 [ scroll#18 current_bit#29 nxt#31 current_chargen#27 ] ) always clobbers reg byte a +Statement [68] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto fillscreen::@1 [ fillscreen::cursor#1 ] ( main:2::fillscreen:5 [ fillscreen::cursor#1 ] ) always clobbers reg byte a +Statement [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fe) goto main::@2 [ scroll#18 current_bit#29 nxt#31 current_chargen#27 ] ( main:2 [ scroll#18 current_bit#29 nxt#31 current_chargen#27 ] ) always clobbers reg byte a +Statement [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@3 [ scroll#18 current_bit#29 nxt#31 current_chargen#27 ] ( main:2 [ scroll#18 current_bit#29 nxt#31 current_chargen#27 ] ) always clobbers reg byte a Statement [25] (word) scroll_bit::c#0 ← ((word)) (byte~) scroll_bit::$3 [ scroll_bit::c#0 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:15 [ scroll_bit::c#0 nxt#19 ] ) always clobbers reg byte a Statement [26] (word~) scroll_bit::$4 ← (word) scroll_bit::c#0 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ scroll_bit::$4 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:15 [ scroll_bit::$4 nxt#19 ] ) always clobbers reg byte a Statement [27] (byte*) current_chargen#5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ current_chargen#5 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:15 [ current_chargen#5 nxt#19 ] ) always clobbers reg byte a -Statement [31] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ current_bit#21 nxt#36 current_chargen#19 ] ( main:2::scroll_soft:10::scroll_bit:15 [ current_bit#21 nxt#36 current_chargen#19 ] ) always clobbers reg byte a +Statement [31] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 [ current_bit#21 nxt#36 current_chargen#19 ] ( main:2::scroll_soft:10::scroll_bit:15 [ current_bit#21 nxt#36 current_chargen#19 ] ) always clobbers reg byte a Statement [33] (byte) scroll_bit::bits#0 ← *((byte*) current_chargen#19 + (byte) scroll_bit::r#2) [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::bits#0 ] ( main:2::scroll_soft:10::scroll_bit:15 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::bits#0 ] ) always clobbers reg byte a reg byte y Statement [34] (byte~) scroll_bit::$9 ← (byte) scroll_bit::bits#0 & (byte) current_bit#21 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::$9 ] ( main:2::scroll_soft:10::scroll_bit:15 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::$9 ] ) always clobbers reg byte a Statement [38] *((byte*) scroll_bit::sc#2) ← (byte) scroll_bit::b#2 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:2::scroll_soft:10::scroll_bit:15 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] ) always clobbers reg byte y -Statement [39] (byte*) scroll_bit::sc#1 ← (byte*) scroll_bit::sc#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#1 ] ( main:2::scroll_soft:10::scroll_bit:15 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#1 ] ) always clobbers reg byte a -Statement [42] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 [ current_bit#21 nxt#36 current_chargen#19 ] ( main:2::scroll_soft:10::scroll_bit:15 [ current_bit#21 nxt#36 current_chargen#19 ] ) always clobbers reg byte a +Statement [39] (byte*) scroll_bit::sc#1 ← (byte*) scroll_bit::sc#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#1 ] ( main:2::scroll_soft:10::scroll_bit:15 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#1 ] ) always clobbers reg byte a +Statement [42] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 [ current_bit#21 nxt#36 current_chargen#19 ] ( main:2::scroll_soft:10::scroll_bit:15 [ current_bit#21 nxt#36 current_chargen#19 ] ) always clobbers reg byte a Statement [47] *((const byte*) SCREEN#0 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a -Statement [48] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a -Statement [49] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a -Statement [50] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a -Statement [51] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a -Statement [52] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a -Statement [53] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a -Statement [54] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 7+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a +Statement [48] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a +Statement [49] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a +Statement [50] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a +Statement [51] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a +Statement [52] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a +Statement [53] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 6 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 6+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a +Statement [54] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 7+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:15::scroll_hard:29 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] ) always clobbers reg byte a Statement [58] (byte) next_char::c#0 ← *((byte*) nxt#31) [ nxt#31 next_char::c#0 ] ( main:2::scroll_soft:10::scroll_bit:15::next_char:22 [ nxt#31 next_char::c#0 ] ) always clobbers reg byte a reg byte y Statement [66] *((byte*) fillscreen::cursor#2) ← (const byte) fillscreen::fill#0 [ fillscreen::cursor#2 ] ( main:2::fillscreen:5 [ fillscreen::cursor#2 ] ) always clobbers reg byte a reg byte y -Statement [68] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto fillscreen::@1 [ fillscreen::cursor#1 ] ( main:2::fillscreen:5 [ fillscreen::cursor#1 ] ) always clobbers reg byte a +Statement [68] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto fillscreen::@1 [ fillscreen::cursor#1 ] ( main:2::fillscreen:5 [ fillscreen::cursor#1 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ scroll#18 scroll#10 scroll#3 ] : zp ZP_BYTE:2 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:3 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ] : zp ZP_BYTE:3 , reg byte x , Potential registers zp ZP_WORD:4 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 ] : zp ZP_WORD:4 , @@ -2182,14 +2182,14 @@ main: { jmp b2 //SEG19 main::@2 b2: - //SEG20 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG20 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fe) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$fe bne b2_from_b2 jmp b3 //SEG21 main::@3 b3: - //SEG22 [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG22 [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b3 @@ -2217,7 +2217,7 @@ main: { scroll_soft: { //SEG34 [12] (byte) scroll#3 ← -- (byte) scroll#18 -- vbuxx=_dec_vbuxx dex - //SEG35 [13] if((byte) scroll#3!=(byte/word/signed word/dword/signed dword) 255) goto scroll_soft::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG35 [13] if((byte) scroll#3!=(byte/word/signed word/dword/signed dword) $ff) goto scroll_soft::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$ff bne b1_from_scroll_soft //SEG36 [14] phi from scroll_soft to scroll_soft::@2 [phi:scroll_soft->scroll_soft::@2] @@ -2297,7 +2297,7 @@ scroll_bit: { //SEG65 [28] phi from scroll_bit::@8 to scroll_bit::@1 [phi:scroll_bit::@8->scroll_bit::@1] b1_from_b8: //SEG66 [28] phi (byte*) nxt#36 = (byte*) nxt#19 [phi:scroll_bit::@8->scroll_bit::@1#0] -- register_copy - //SEG67 [28] phi (byte) current_bit#21 = (byte/word/signed word/dword/signed dword) 128 [phi:scroll_bit::@8->scroll_bit::@1#1] -- vbuz1=vbuc1 + //SEG67 [28] phi (byte) current_bit#21 = (byte/word/signed word/dword/signed dword) $80 [phi:scroll_bit::@8->scroll_bit::@1#1] -- vbuz1=vbuc1 lda #$80 sta current_bit //SEG68 [28] phi (byte*) current_chargen#19 = (byte*) current_chargen#5 [phi:scroll_bit::@8->scroll_bit::@1#2] -- register_copy @@ -2319,12 +2319,12 @@ scroll_bit: { b7: //SEG77 asm { sei } sei - //SEG78 [31] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- _deref_pbuc1=vbuc2 + //SEG78 [31] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 -- _deref_pbuc1=vbuc2 lda #$32 sta PROCPORT //SEG79 [32] phi from scroll_bit::@7 to scroll_bit::@2 [phi:scroll_bit::@7->scroll_bit::@2] b2_from_b7: - //SEG80 [32] phi (byte*) scroll_bit::sc#2 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 39 [phi:scroll_bit::@7->scroll_bit::@2#0] -- pbuz1=pbuc1 + //SEG80 [32] phi (byte*) scroll_bit::sc#2 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $27 [phi:scroll_bit::@7->scroll_bit::@2#0] -- pbuz1=pbuc1 lda #SCREEN+$28+$27 @@ -2355,7 +2355,7 @@ scroll_bit: { b5: //SEG91 [37] phi from scroll_bit::@5 to scroll_bit::@3 [phi:scroll_bit::@5->scroll_bit::@3] b3_from_b5: - //SEG92 [37] phi (byte) scroll_bit::b#2 = (byte/word/signed word/dword/signed dword) 128+(byte) ' ' [phi:scroll_bit::@5->scroll_bit::@3#0] -- vbuaa=vbuc1 + //SEG92 [37] phi (byte) scroll_bit::b#2 = (byte/word/signed word/dword/signed dword) $80+(byte) ' ' [phi:scroll_bit::@5->scroll_bit::@3#0] -- vbuaa=vbuc1 lda #$80+' ' jmp b3 //SEG93 [37] phi from scroll_bit::@2 to scroll_bit::@3 [phi:scroll_bit::@2->scroll_bit::@3] @@ -2368,7 +2368,7 @@ scroll_bit: { //SEG96 [38] *((byte*) scroll_bit::sc#2) ← (byte) scroll_bit::b#2 -- _deref_pbuz1=vbuaa ldy #0 sta (sc),y - //SEG97 [39] (byte*) scroll_bit::sc#1 ← (byte*) scroll_bit::sc#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG97 [39] (byte*) scroll_bit::sc#1 ← (byte*) scroll_bit::sc#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda sc clc adc #$28 @@ -2384,7 +2384,7 @@ scroll_bit: { jmp b6 //SEG100 scroll_bit::@6 b6: - //SEG101 [42] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 -- _deref_pbuc1=vbuc2 + //SEG101 [42] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 -- _deref_pbuc1=vbuc2 lda #$37 sta PROCPORT //SEG102 asm { cli } @@ -2412,30 +2412,30 @@ scroll_hard: { //SEG111 [47] *((const byte*) SCREEN#0 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda SCREEN+1,x sta SCREEN,x - //SEG112 [48] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG112 [48] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda SCREEN+$28*1+1,x sta SCREEN+$28*1,x - //SEG113 [49] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG113 [49] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda SCREEN+$28*2+1,x sta SCREEN+$28*2,x - //SEG114 [50] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG114 [50] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda SCREEN+$28*3+1,x sta SCREEN+$28*3,x - //SEG115 [51] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG115 [51] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda SCREEN+$28*4+1,x sta SCREEN+$28*4,x - //SEG116 [52] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG116 [52] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda SCREEN+$28*5+1,x sta SCREEN+$28*5,x - //SEG117 [53] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG117 [53] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 6 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 6+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda SCREEN+$28*6+1,x sta SCREEN+$28*6,x - //SEG118 [54] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 7+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG118 [54] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 7+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda SCREEN+$28*7+1,x sta SCREEN+$28*7,x //SEG119 [55] (byte) scroll_hard::i#1 ← ++ (byte) scroll_hard::i#2 -- vbuxx=_inc_vbuxx inx - //SEG120 [56] if((byte) scroll_hard::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 39) goto scroll_hard::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG120 [56] if((byte) scroll_hard::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $27) goto scroll_hard::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$27 bne b1_from_b1 jmp breturn @@ -2513,7 +2513,7 @@ fillscreen: { bne !+ inc cursor+1 !: - //SEG146 [68] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto fillscreen::@1 -- pbuz1_lt_pbuc1_then_la1 + //SEG146 [68] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto fillscreen::@1 -- pbuz1_lt_pbuc1_then_la1 lda cursor+1 cmp #>SCREEN+$3e8 bcc b1_from_b1 @@ -2628,17 +2628,17 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d020 (byte*) CHARGEN -(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word/dword/signed dword) 53248 +(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word/dword/signed dword) $d000 (byte*) PROCPORT (const byte*) PROCPORT#0 PROCPORT = ((byte*))(byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SCROLL -(const byte*) SCROLL#0 SCROLL = ((byte*))(word/dword/signed dword) 53270 +(const byte*) SCROLL#0 SCROLL = ((byte*))(word/dword/signed dword) $d016 (byte*) TEXT (const byte*) TEXT#0 TEXT = (string) "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- @" (byte) current_bit @@ -2658,7 +2658,7 @@ FINAL SYMBOL TABLE (byte*) fillscreen::cursor#1 cursor zp ZP_WORD:3 16.5 (byte*) fillscreen::cursor#2 cursor zp ZP_WORD:3 16.5 (byte) fillscreen::fill -(const byte) fillscreen::fill#0 fill = (byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte) fillscreen::fill#0 fill = (byte/signed byte/word/signed word/dword/signed dword) $20 (byte*) fillscreen::screen (void()) main() (label) main::@2 @@ -2787,13 +2787,13 @@ main: { //SEG18 [6] phi from main::@2 to main::@2 [phi:main::@2->main::@2] //SEG19 main::@2 b2: - //SEG20 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG20 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fe) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$fe bne b2 //SEG21 main::@3 b3: - //SEG22 [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG22 [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b3 @@ -2816,7 +2816,7 @@ main: { scroll_soft: { //SEG34 [12] (byte) scroll#3 ← -- (byte) scroll#18 -- vbuxx=_dec_vbuxx dex - //SEG35 [13] if((byte) scroll#3!=(byte/word/signed word/dword/signed dword) 255) goto scroll_soft::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG35 [13] if((byte) scroll#3!=(byte/word/signed word/dword/signed dword) $ff) goto scroll_soft::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$ff bne b1 //SEG36 [14] phi from scroll_soft to scroll_soft::@2 [phi:scroll_soft->scroll_soft::@2] @@ -2881,7 +2881,7 @@ scroll_bit: { sta current_chargen+1 //SEG65 [28] phi from scroll_bit::@8 to scroll_bit::@1 [phi:scroll_bit::@8->scroll_bit::@1] //SEG66 [28] phi (byte*) nxt#36 = (byte*) nxt#19 [phi:scroll_bit::@8->scroll_bit::@1#0] -- register_copy - //SEG67 [28] phi (byte) current_bit#21 = (byte/word/signed word/dword/signed dword) 128 [phi:scroll_bit::@8->scroll_bit::@1#1] -- vbuz1=vbuc1 + //SEG67 [28] phi (byte) current_bit#21 = (byte/word/signed word/dword/signed dword) $80 [phi:scroll_bit::@8->scroll_bit::@1#1] -- vbuz1=vbuc1 lda #$80 sta current_bit //SEG68 [28] phi (byte*) current_chargen#19 = (byte*) current_chargen#5 [phi:scroll_bit::@8->scroll_bit::@1#2] -- register_copy @@ -2897,11 +2897,11 @@ scroll_bit: { //SEG76 scroll_bit::@7 //SEG77 asm { sei } sei - //SEG78 [31] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- _deref_pbuc1=vbuc2 + //SEG78 [31] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 -- _deref_pbuc1=vbuc2 lda #$32 sta PROCPORT //SEG79 [32] phi from scroll_bit::@7 to scroll_bit::@2 [phi:scroll_bit::@7->scroll_bit::@2] - //SEG80 [32] phi (byte*) scroll_bit::sc#2 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 39 [phi:scroll_bit::@7->scroll_bit::@2#0] -- pbuz1=pbuc1 + //SEG80 [32] phi (byte*) scroll_bit::sc#2 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $27 [phi:scroll_bit::@7->scroll_bit::@2#0] -- pbuz1=pbuc1 lda #SCREEN+$28+$27 @@ -2925,7 +2925,7 @@ scroll_bit: { //SEG89 [36] phi from scroll_bit::@2 to scroll_bit::@5 [phi:scroll_bit::@2->scroll_bit::@5] //SEG90 scroll_bit::@5 //SEG91 [37] phi from scroll_bit::@5 to scroll_bit::@3 [phi:scroll_bit::@5->scroll_bit::@3] - //SEG92 [37] phi (byte) scroll_bit::b#2 = (byte/word/signed word/dword/signed dword) 128+(byte) ' ' [phi:scroll_bit::@5->scroll_bit::@3#0] -- vbuaa=vbuc1 + //SEG92 [37] phi (byte) scroll_bit::b#2 = (byte/word/signed word/dword/signed dword) $80+(byte) ' ' [phi:scroll_bit::@5->scroll_bit::@3#0] -- vbuaa=vbuc1 lda #$80+' ' jmp b3 //SEG93 [37] phi from scroll_bit::@2 to scroll_bit::@3 [phi:scroll_bit::@2->scroll_bit::@3] @@ -2937,7 +2937,7 @@ scroll_bit: { //SEG96 [38] *((byte*) scroll_bit::sc#2) ← (byte) scroll_bit::b#2 -- _deref_pbuz1=vbuaa ldy #0 sta (sc),y - //SEG97 [39] (byte*) scroll_bit::sc#1 ← (byte*) scroll_bit::sc#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG97 [39] (byte*) scroll_bit::sc#1 ← (byte*) scroll_bit::sc#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda sc clc adc #$28 @@ -2951,7 +2951,7 @@ scroll_bit: { cpx #8 bne b2 //SEG100 scroll_bit::@6 - //SEG101 [42] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 -- _deref_pbuc1=vbuc2 + //SEG101 [42] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 -- _deref_pbuc1=vbuc2 lda #$37 sta PROCPORT //SEG102 asm { cli } @@ -2973,30 +2973,30 @@ scroll_hard: { //SEG111 [47] *((const byte*) SCREEN#0 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda SCREEN+1,x sta SCREEN,x - //SEG112 [48] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG112 [48] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda SCREEN+$28*1+1,x sta SCREEN+$28*1,x - //SEG113 [49] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG113 [49] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda SCREEN+$28*2+1,x sta SCREEN+$28*2,x - //SEG114 [50] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG114 [50] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda SCREEN+$28*3+1,x sta SCREEN+$28*3,x - //SEG115 [51] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG115 [51] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda SCREEN+$28*4+1,x sta SCREEN+$28*4,x - //SEG116 [52] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG116 [52] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda SCREEN+$28*5+1,x sta SCREEN+$28*5,x - //SEG117 [53] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 6+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG117 [53] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 6 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 6+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda SCREEN+$28*6+1,x sta SCREEN+$28*6,x - //SEG118 [54] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 7+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG118 [54] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) scroll_hard::i#2) ← *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 7+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) scroll_hard::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda SCREEN+$28*7+1,x sta SCREEN+$28*7,x //SEG119 [55] (byte) scroll_hard::i#1 ← ++ (byte) scroll_hard::i#2 -- vbuxx=_inc_vbuxx inx - //SEG120 [56] if((byte) scroll_hard::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 39) goto scroll_hard::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG120 [56] if((byte) scroll_hard::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $27) goto scroll_hard::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$27 bne b1 //SEG121 scroll_hard::@return @@ -3060,7 +3060,7 @@ fillscreen: { bne !+ inc cursor+1 !: - //SEG146 [68] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto fillscreen::@1 -- pbuz1_lt_pbuc1_then_la1 + //SEG146 [68] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto fillscreen::@1 -- pbuz1_lt_pbuc1_then_la1 lda cursor+1 cmp #>SCREEN+$3e8 bcc b1 diff --git a/src/test/ref/examples/scrollbig/scrollbig.sym b/src/test/ref/examples/scrollbig/scrollbig.sym index 87b526814..0f106de57 100644 --- a/src/test/ref/examples/scrollbig/scrollbig.sym +++ b/src/test/ref/examples/scrollbig/scrollbig.sym @@ -2,17 +2,17 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d020 (byte*) CHARGEN -(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word/dword/signed dword) 53248 +(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word/dword/signed dword) $d000 (byte*) PROCPORT (const byte*) PROCPORT#0 PROCPORT = ((byte*))(byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SCROLL -(const byte*) SCROLL#0 SCROLL = ((byte*))(word/dword/signed dword) 53270 +(const byte*) SCROLL#0 SCROLL = ((byte*))(word/dword/signed dword) $d016 (byte*) TEXT (const byte*) TEXT#0 TEXT = (string) "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- @" (byte) current_bit @@ -32,7 +32,7 @@ (byte*) fillscreen::cursor#1 cursor zp ZP_WORD:3 16.5 (byte*) fillscreen::cursor#2 cursor zp ZP_WORD:3 16.5 (byte) fillscreen::fill -(const byte) fillscreen::fill#0 fill = (byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte) fillscreen::fill#0 fill = (byte/signed byte/word/signed word/dword/signed dword) $20 (byte*) fillscreen::screen (void()) main() (label) main::@2 diff --git a/src/test/ref/examples/scrolllogo/scrolllogo.cfg b/src/test/ref/examples/scrolllogo/scrolllogo.cfg index e87a8c171..c4ef9e782 100644 --- a/src/test/ref/examples/scrolllogo/scrolllogo.cfg +++ b/src/test/ref/examples/scrolllogo/scrolllogo.cfg @@ -38,7 +38,7 @@ main::@1: scope:[main] from main::@1 main::@4 [16] (byte) main::ch#2 ← phi( main::@1/(byte) main::ch#1 main::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [17] *((const byte*) SCREEN#0 + (byte) main::ch#2) ← (byte) main::ch#2 [18] (byte) main::ch#1 ← ++ (byte) main::ch#2 - [19] if((byte) main::ch#1!=(byte/word/signed word/dword/signed dword) 240) goto main::@1 + [19] if((byte) main::ch#1!=(byte/word/signed word/dword/signed dword) $f0) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 [20] phi() @@ -58,7 +58,7 @@ loop::@1: scope:[loop] from loop loop::@7 [26] (word) xsin_idx#11 ← phi( loop/(byte/signed byte/word/signed word/dword/signed dword) 0 loop::@7/(word) xsin_idx#19 ) to:loop::@4 loop::@4: scope:[loop] from loop::@1 loop::@4 - [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto loop::@4 + [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto loop::@4 to:loop::@6 loop::@6: scope:[loop] from loop::@4 [28] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) @@ -94,7 +94,7 @@ render_logo::@2: scope:[render_logo] from render_logo render_logo::@22 render_logo::@6: scope:[render_logo] from render_logo::@2 render_logo::@26 [47] (byte) render_logo::logo_idx#10 ← phi( render_logo::@26/(byte) render_logo::logo_idx#3 render_logo::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [47] (byte) render_logo::screen_idx#10 ← phi( render_logo::@26/(byte) render_logo::screen_idx#4 render_logo::@2/(byte) render_logo::screen_idx#18 ) - [48] if((byte) render_logo::screen_idx#10!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_logo::@9 + [48] if((byte) render_logo::screen_idx#10!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render_logo::@9 to:render_logo::@return render_logo::@return: scope:[render_logo] from render_logo::@15 render_logo::@6 [49] return @@ -104,24 +104,24 @@ render_logo::@9: scope:[render_logo] from render_logo::@6 [51] *((const byte*) SCREEN#0 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$15 to:render_logo::@9_1 render_logo::@9_1: scope:[render_logo] from render_logo::@9 - [52] (byte/signed word/word/dword/signed dword~) render_logo::$34 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 - [53] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$34 + [52] (byte/signed word/word/dword/signed dword~) render_logo::$34 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + [53] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$34 to:render_logo::@9_2 render_logo::@9_2: scope:[render_logo] from render_logo::@9_1 - [54] (byte/signed word/word/dword/signed dword~) render_logo::$38 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 - [55] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$38 + [54] (byte/signed word/word/dword/signed dword~) render_logo::$38 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + [55] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$38 to:render_logo::@9_3 render_logo::@9_3: scope:[render_logo] from render_logo::@9_2 - [56] (byte/signed word/word/dword/signed dword~) render_logo::$42 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 - [57] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$42 + [56] (byte/signed word/word/dword/signed dword~) render_logo::$42 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + [57] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$42 to:render_logo::@9_4 render_logo::@9_4: scope:[render_logo] from render_logo::@9_3 - [58] (byte/signed word/word/dword/signed dword~) render_logo::$46 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 - [59] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$46 + [58] (byte/signed word/word/dword/signed dword~) render_logo::$46 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + [59] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$46 to:render_logo::@9_5 render_logo::@9_5: scope:[render_logo] from render_logo::@9_4 - [60] (byte/signed word/word/dword/signed dword~) render_logo::$50 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 - [61] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$50 + [60] (byte/signed word/word/dword/signed dword~) render_logo::$50 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + [61] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$50 to:render_logo::@26 render_logo::@26: scope:[render_logo] from render_logo::@9_5 [62] (byte) render_logo::screen_idx#4 ← ++ (byte) render_logo::screen_idx#10 @@ -131,19 +131,19 @@ render_logo::@5: scope:[render_logo] from render_logo::@2 [64] *((const byte*) SCREEN#0 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_logo::@5_1 render_logo::@5_1: scope:[render_logo] from render_logo::@5 - [65] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [65] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_logo::@5_2 render_logo::@5_2: scope:[render_logo] from render_logo::@5_1 - [66] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [66] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_logo::@5_3 render_logo::@5_3: scope:[render_logo] from render_logo::@5_2 - [67] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [67] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_logo::@5_4 render_logo::@5_4: scope:[render_logo] from render_logo::@5_3 - [68] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [68] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_logo::@5_5 render_logo::@5_5: scope:[render_logo] from render_logo::@5_4 - [69] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [69] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_logo::@22 render_logo::@22: scope:[render_logo] from render_logo::@5_5 [70] (byte) render_logo::screen_idx#3 ← ++ (byte) render_logo::screen_idx#18 @@ -155,29 +155,29 @@ render_logo::@1: scope:[render_logo] from render_logo render_logo::@11: scope:[render_logo] from render_logo::@1 render_logo::@31 [73] (byte) render_logo::screen_idx#21 ← phi( render_logo::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_logo::@31/(byte) render_logo::screen_idx#5 ) [73] (byte) render_logo::logo_idx#11 ← phi( render_logo::@1/(byte~) render_logo::logo_idx#14 render_logo::@31/(byte) render_logo::logo_idx#4 ) - [74] if((byte) render_logo::logo_idx#11!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_logo::@14 + [74] if((byte) render_logo::logo_idx#11!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render_logo::@14 to:render_logo::@15 render_logo::@15: scope:[render_logo] from render_logo::@11 render_logo::@35 [75] (byte) render_logo::screen_idx#15 ← phi( render_logo::@11/(byte) render_logo::screen_idx#21 render_logo::@35/(byte) render_logo::screen_idx#6 ) - [76] if((byte) render_logo::screen_idx#15!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_logo::@18 + [76] if((byte) render_logo::screen_idx#15!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render_logo::@18 to:render_logo::@return render_logo::@18: scope:[render_logo] from render_logo::@15 [77] *((const byte*) SCREEN#0 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_logo::@18_1 render_logo::@18_1: scope:[render_logo] from render_logo::@18 - [78] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [78] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_logo::@18_2 render_logo::@18_2: scope:[render_logo] from render_logo::@18_1 - [79] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [79] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_logo::@18_3 render_logo::@18_3: scope:[render_logo] from render_logo::@18_2 - [80] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [80] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_logo::@18_4 render_logo::@18_4: scope:[render_logo] from render_logo::@18_3 - [81] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [81] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_logo::@18_5 render_logo::@18_5: scope:[render_logo] from render_logo::@18_4 - [82] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [82] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_logo::@35 render_logo::@35: scope:[render_logo] from render_logo::@18_5 [83] (byte) render_logo::screen_idx#6 ← ++ (byte) render_logo::screen_idx#15 @@ -187,24 +187,24 @@ render_logo::@14: scope:[render_logo] from render_logo::@11 [85] *((const byte*) SCREEN#0 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$23 to:render_logo::@14_1 render_logo::@14_1: scope:[render_logo] from render_logo::@14 - [86] (byte/signed word/word/dword/signed dword~) render_logo::$80 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 - [87] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$80 + [86] (byte/signed word/word/dword/signed dword~) render_logo::$80 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + [87] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$80 to:render_logo::@14_2 render_logo::@14_2: scope:[render_logo] from render_logo::@14_1 - [88] (byte/signed word/word/dword/signed dword~) render_logo::$84 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 - [89] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$84 + [88] (byte/signed word/word/dword/signed dword~) render_logo::$84 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + [89] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$84 to:render_logo::@14_3 render_logo::@14_3: scope:[render_logo] from render_logo::@14_2 - [90] (byte/signed word/word/dword/signed dword~) render_logo::$88 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 - [91] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$88 + [90] (byte/signed word/word/dword/signed dword~) render_logo::$88 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + [91] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$88 to:render_logo::@14_4 render_logo::@14_4: scope:[render_logo] from render_logo::@14_3 - [92] (byte/signed word/word/dword/signed dword~) render_logo::$92 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 - [93] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$92 + [92] (byte/signed word/word/dword/signed dword~) render_logo::$92 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + [93] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$92 to:render_logo::@14_5 render_logo::@14_5: scope:[render_logo] from render_logo::@14_4 - [94] (byte/signed word/word/dword/signed dword~) render_logo::$96 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 - [95] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$96 + [94] (byte/signed word/word/dword/signed dword~) render_logo::$96 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + [95] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$96 to:render_logo::@31 render_logo::@31: scope:[render_logo] from render_logo::@14_5 [96] (byte) render_logo::screen_idx#5 ← ++ (byte) render_logo::screen_idx#21 @@ -364,7 +364,7 @@ sin16s::@15: scope:[sin16s] from sin16s::@12 to:sin16s::@3 mulu16_sel: scope:[mulu16_sel] from sin16s::@10 sin16s::@11 sin16s::@2 sin16s::@8 sin16s::@9 [180] (byte) mulu16_sel::select#5 ← phi( sin16s::@10/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@11/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16s::@9/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [180] (word) mulu16_sel::v2#5 ← phi( sin16s::@10/(word) mulu16_sel::v2#3 sin16s::@11/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@8/(word) mulu16_sel::v2#1 sin16s::@9/(dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 ) + [180] (word) mulu16_sel::v2#5 ← phi( sin16s::@10/(word) mulu16_sel::v2#3 sin16s::@11/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@8/(word) mulu16_sel::v2#1 sin16s::@9/(dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 ) [180] (word) mulu16_sel::v1#5 ← phi( sin16s::@10/(word) mulu16_sel::v1#3 sin16s::@11/(word) mulu16_sel::v1#4 sin16s::@2/(word) mulu16_sel::v1#0 sin16s::@8/(word) mulu16_sel::v1#1 sin16s::@9/(word) mulu16_sel::v1#2 ) [181] (word) mul16u::a#2 ← (word) mulu16_sel::v1#5 [182] (word) mul16u::b#1 ← (word) mulu16_sel::v2#5 @@ -408,7 +408,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 [200] (word) divr16u::rem#5 ← phi( divr16u/(word) divr16u::rem#10 divr16u::@3/(word) divr16u::rem#11 ) [201] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [202] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 - [203] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + [203] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [204] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 to:divr16u::@4 divr16u::@4: scope:[divr16u] from divr16u::@1 @@ -428,7 +428,7 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 [212] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [212] (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) [213] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 - [214] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 + [214] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 to:divr16u::@6 divr16u::@6: scope:[divr16u] from divr16u::@3 [215] (word) rem16u#1 ← (word) divr16u::rem#11 @@ -439,7 +439,7 @@ divr16u::@return: scope:[divr16u] from divr16u::@6 fill: scope:[fill] from main::@3 main::@4 [217] (byte) fill::val#3 ← phi( main::@3/(const byte) BLACK#0 main::@4/(const byte) WHITE#0|(byte/signed byte/word/signed word/dword/signed dword) 8 ) [217] (byte*) fill::addr#0 ← phi( main::@3/(const byte*) SCREEN#0 main::@4/(const byte*) COLS#0 ) - [218] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 + [218] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) $3e8 to:fill::@1 fill::@1: scope:[fill] from fill fill::@1 [219] (byte*) fill::addr#2 ← phi( fill/(byte*) fill::addr#0 fill::@1/(byte*) fill::addr#1 ) diff --git a/src/test/ref/examples/scrolllogo/scrolllogo.log b/src/test/ref/examples/scrolllogo/scrolllogo.log index 4f4e3327c..5ca8f3192 100644 --- a/src/test/ref/examples/scrolllogo/scrolllogo.log +++ b/src/test/ref/examples/scrolllogo/scrolllogo.log @@ -6,66 +6,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -76,12 +76,12 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@4 @4: scope:[] from @begin (byte) rem8u#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -105,7 +105,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 (word~) divr16u::$0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 (word) divr16u::rem#0 ← (word~) divr16u::$0 (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 - (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 (bool~) divr16u::$3 ← (byte~) divr16u::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) divr16u::$4 ← ! (bool~) divr16u::$3 if((bool~) divr16u::$4) goto divr16u::@2 @@ -139,8 +139,8 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 (word) divr16u::dividend#6 ← phi( divr16u::@2/(word) divr16u::dividend#0 divr16u::@5/(word) divr16u::dividend#8 ) (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) (byte) divr16u::i#2 ← phi( divr16u::@2/(byte) divr16u::i#3 divr16u::@5/(byte) divr16u::i#4 ) - (byte) divr16u::i#1 ← (byte) divr16u::i#2 + rangenext(0,15) - (bool~) divr16u::$11 ← (byte) divr16u::i#1 != rangelast(0,15) + (byte) divr16u::i#1 ← (byte) divr16u::i#2 + rangenext(0,$f) + (bool~) divr16u::$11 ← (byte) divr16u::i#1 != rangelast(0,$f) if((bool~) divr16u::$11) goto divr16u::@1 to:divr16u::@6 divr16u::@5: scope:[divr16u] from divr16u::@2 @@ -323,12 +323,12 @@ mul16s::@return: scope:[mul16s] from mul16s::@2 to:@return @17: scope:[] from @10 (word) rem16u#32 ← phi( @10/(word) rem16u#34 ) - (dword) PI2_u4f28#0 ← (dword/signed dword) 1686629713 - (dword) PI_u4f28#0 ← (dword/signed dword) 843314857 - (dword) PI_HALF_u4f28#0 ← (dword/signed dword) 421657428 - (word) PI2_u4f12#0 ← (word/signed word/dword/signed dword) 25736 - (word) PI_u4f12#0 ← (word/signed word/dword/signed dword) 12868 - (word) PI_HALF_u4f12#0 ← (word/signed word/dword/signed dword) 6434 + (dword) PI2_u4f28#0 ← (dword/signed dword) $6487ed51 + (dword) PI_u4f28#0 ← (dword/signed dword) $3243f6a9 + (dword) PI_HALF_u4f28#0 ← (dword/signed dword) $1921fb54 + (word) PI2_u4f12#0 ← (word/signed word/dword/signed dword) $6488 + (word) PI_u4f12#0 ← (word/signed word/dword/signed dword) $3244 + (word) PI_HALF_u4f12#0 ← (word/signed word/dword/signed dword) $1922 to:@25 sin16s_gen2: scope:[sin16s_gen2] from main::@2 (signed word*) sin16s_gen2::sintab#6 ← phi( main::@2/(signed word*) sin16s_gen2::sintab#1 ) @@ -466,7 +466,7 @@ sin16s::@9: scope:[sin16s] from sin16s::@8 (word) mulu16_sel::return#8 ← phi( sin16s::@8/(word) mulu16_sel::return#1 ) (word~) sin16s::$9 ← (word) mulu16_sel::return#8 (word) sin16s::x3#0 ← (word~) sin16s::$9 - (word/signed word/dword/signed dword~) sin16s::$10 ← (dword/signed dword) 65536 / (byte/signed byte/word/signed word/dword/signed dword) 6 + (word/signed word/dword/signed dword~) sin16s::$10 ← (dword/signed dword) $10000 / (byte/signed byte/word/signed word/dword/signed dword) 6 (word) mulu16_sel::v1#2 ← (word) sin16s::x3#0 (word) mulu16_sel::v2#2 ← (word/signed word/dword/signed dword~) sin16s::$10 (byte) mulu16_sel::select#2 ← (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -582,9 +582,9 @@ fill::@return: scope:[fill] from fill::@1 to:@return @25: scope:[] from @17 (word) rem16u#31 ← phi( @17/(word) rem16u#32 ) - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte*) LOGO#0 ← ((byte*)) (word/signed word/dword/signed dword) 8192 - (byte/word/signed word/dword/signed dword~) $0 ← (byte/signed byte/word/signed word/dword/signed dword) 6 * (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte*) LOGO#0 ← ((byte*)) (word/signed word/dword/signed dword) $2000 + (byte/word/signed word/dword/signed dword~) $0 ← (byte/signed byte/word/signed word/dword/signed dword) 6 * (byte/signed byte/word/signed word/dword/signed dword) $28 (byte/signed word/word/dword/signed dword~) $1 ← (byte/word/signed word/dword/signed dword~) $0 * (byte/signed byte/word/signed word/dword/signed dword) 8 kickasm(location (byte*) LOGO#0) {{ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) .for (var y=0; y<6 ; y++) @@ -592,7 +592,7 @@ fill::@return: scope:[fill] from fill::@1 .for(var cp=0; cp<8; cp++) .byte logoPic.getMulticolorByte(x,cp+y*8) }} - (word) XSIN_SIZE#0 ← (word/signed word/dword/signed dword) 512 + (word) XSIN_SIZE#0 ← (word/signed word/dword/signed dword) $200 (signed word[XSIN_SIZE#0]) xsin#0 ← { fill( XSIN_SIZE#0, 0) } to:@26 main: scope:[main] from @28 @@ -615,13 +615,13 @@ main::toD0181: scope:[main] from main (byte*) main::toD0181_gfx#1 ← phi( main/(byte*) main::toD0181_gfx#0 ) (byte*) main::toD0181_screen#1 ← phi( main/(byte*) main::toD0181_screen#0 ) (word) main::toD0181_$0#0 ← ((word)) (byte*) main::toD0181_screen#1 - (word) main::toD0181_$1#0 ← (word) main::toD0181_$0#0 & (word/signed word/dword/signed dword) 16383 + (word) main::toD0181_$1#0 ← (word) main::toD0181_$0#0 & (word/signed word/dword/signed dword) $3fff (word) main::toD0181_$2#0 ← (word) main::toD0181_$1#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) main::toD0181_$3#0 ← > (word) main::toD0181_$2#0 (word) main::toD0181_$4#0 ← ((word)) (byte*) main::toD0181_gfx#1 (byte) main::toD0181_$5#0 ← > (word) main::toD0181_$4#0 (byte) main::toD0181_$6#0 ← (byte) main::toD0181_$5#0 >> (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte) main::toD0181_$7#0 ← (byte) main::toD0181_$6#0 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) main::toD0181_$7#0 ← (byte) main::toD0181_$6#0 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte) main::toD0181_$8#0 ← (byte) main::toD0181_$3#0 | (byte) main::toD0181_$7#0 (byte) main::toD0181_return#0 ← (byte) main::toD0181_$8#0 to:main::toD0181_@return @@ -641,7 +641,7 @@ main::@3: scope:[main] from main::toD0181_@return *((byte*) D018#0) ← (byte~) main::$0 *((byte*) D016#0) ← (byte) VIC_MCM#0 (byte*) fill::start#0 ← (byte*) SCREEN#2 - (word) fill::size#0 ← (word/signed word/dword/signed dword) 1000 + (word) fill::size#0 ← (word/signed word/dword/signed dword) $3e8 (byte) fill::val#0 ← (byte) BLACK#0 call fill to:main::@4 @@ -651,7 +651,7 @@ main::@4: scope:[main] from main::@3 (byte*) SCREEN#16 ← phi( main::@3/(byte*) SCREEN#2 ) (byte/word/dword~) main::$2 ← (byte) WHITE#0 | (byte/signed byte/word/signed word/dword/signed dword) 8 (byte*) fill::start#1 ← (byte*) COLS#0 - (word) fill::size#1 ← (word/signed word/dword/signed dword) 1000 + (word) fill::size#1 ← (word/signed word/dword/signed dword) $3e8 (byte) fill::val#1 ← (byte/word/dword~) main::$2 call fill to:main::@5 @@ -667,19 +667,19 @@ main::@1: scope:[main] from main::@1 main::@5 (byte*) SCREEN#3 ← phi( main::@1/(byte*) SCREEN#3 main::@5/(byte*) SCREEN#10 ) (byte) main::ch#2 ← phi( main::@1/(byte) main::ch#1 main::@5/(byte) main::ch#0 ) *((byte*) SCREEN#3 + (byte) main::ch#2) ← (byte) main::ch#2 - (byte) main::ch#1 ← (byte) main::ch#2 + rangenext(0,239) - (bool~) main::$4 ← (byte) main::ch#1 != rangelast(0,239) + (byte) main::ch#1 ← (byte) main::ch#2 + rangenext(0,$ef) + (bool~) main::$4 ← (byte) main::ch#1 != rangelast(0,$ef) if((bool~) main::$4) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 (byte*) SCREEN#40 ← phi( main::@1/(byte*) SCREEN#3 ) (word) xsin_idx#17 ← phi( main::@1/(word) xsin_idx#22 ) (word) rem16u#23 ← phi( main::@1/(word) rem16u#27 ) - (signed word/signed dword~) main::$5 ← - (word/signed word/dword/signed dword) 320 + (signed word/signed dword~) main::$5 ← - (word/signed word/dword/signed dword) $140 (signed word*) sin16s_gen2::sintab#1 ← (signed word[XSIN_SIZE#0]) xsin#0 (word) sin16s_gen2::wavelength#0 ← (word) XSIN_SIZE#0 (signed word) sin16s_gen2::min#0 ← (signed word/signed dword~) main::$5 - (signed word) sin16s_gen2::max#0 ← (word/signed word/dword/signed dword) 320 + (signed word) sin16s_gen2::max#0 ← (word/signed word/dword/signed dword) $140 call sin16s_gen2 to:main::@6 main::@6: scope:[main] from main::@2 @@ -723,7 +723,7 @@ loop::@2: scope:[loop] from loop::@1 loop::@4: scope:[loop] from loop::@2 loop::@5 (byte*) SCREEN#31 ← phi( loop::@2/(byte*) SCREEN#32 loop::@5/(byte*) SCREEN#33 ) (word) xsin_idx#14 ← phi( loop::@2/(word) xsin_idx#20 loop::@5/(word) xsin_idx#21 ) - (bool~) loop::$0 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 255 + (bool~) loop::$0 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) $ff if((bool~) loop::$0) goto loop::@5 to:loop::@6 loop::@5: scope:[loop] from loop::@4 @@ -816,7 +816,7 @@ render_logo::@5: scope:[render_logo] from render_logo::@3 render_logo::@5 (byte) render_logo::screen_idx#8 ← phi( render_logo::@3/(byte) render_logo::screen_idx#18 render_logo::@5/(byte) render_logo::screen_idx#8 ) (byte*) SCREEN#4 ← phi( render_logo::@3/(byte*) SCREEN#11 render_logo::@5/(byte*) SCREEN#4 ) (byte) render_logo::line#9 ← phi( render_logo::@3/(byte) render_logo::line#1 render_logo::@5/(byte) render_logo::line#2 ) - (byte/signed word/word/dword/signed dword~) render_logo::$8 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte) render_logo::line#9 + (byte/signed word/word/dword/signed dword~) render_logo::$8 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte) render_logo::line#9 (byte*~) render_logo::$9 ← (byte*) SCREEN#4 + (byte/signed word/word/dword/signed dword~) render_logo::$8 *((byte*~) render_logo::$9 + (byte) render_logo::screen_idx#8) ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) render_logo::line#2 ← (byte) render_logo::line#9 + rangenext(0,5) @@ -833,7 +833,7 @@ render_logo::@6: scope:[render_logo] from render_logo::@26 render_logo::@4 (byte) render_logo::logo_idx#12 ← phi( render_logo::@26/(byte) render_logo::logo_idx#3 render_logo::@4/(byte) render_logo::logo_idx#2 ) (byte*) SCREEN#18 ← phi( render_logo::@26/(byte*) SCREEN#24 render_logo::@4/(byte*) SCREEN#25 ) (byte) render_logo::screen_idx#10 ← phi( render_logo::@26/(byte) render_logo::screen_idx#4 render_logo::@4/(byte) render_logo::screen_idx#19 ) - (bool~) render_logo::$11 ← (byte) render_logo::screen_idx#10 != (byte/signed byte/word/signed word/dword/signed dword) 40 + (bool~) render_logo::$11 ← (byte) render_logo::screen_idx#10 != (byte/signed byte/word/signed word/dword/signed dword) $28 if((bool~) render_logo::$11) goto render_logo::@7 to:render_logo::@return render_logo::@7: scope:[render_logo] from render_logo::@6 @@ -847,9 +847,9 @@ render_logo::@9: scope:[render_logo] from render_logo::@7 render_logo::@9 (byte) render_logo::logo_idx#5 ← phi( render_logo::@7/(byte) render_logo::logo_idx#10 render_logo::@9/(byte) render_logo::logo_idx#5 ) (byte*) SCREEN#5 ← phi( render_logo::@7/(byte*) SCREEN#12 render_logo::@9/(byte*) SCREEN#5 ) (byte) render_logo::line#10 ← phi( render_logo::@7/(byte) render_logo::line#3 render_logo::@9/(byte) render_logo::line#4 ) - (byte/signed word/word/dword/signed dword~) render_logo::$12 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte) render_logo::line#10 + (byte/signed word/word/dword/signed dword~) render_logo::$12 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte) render_logo::line#10 (byte*~) render_logo::$13 ← (byte*) SCREEN#5 + (byte/signed word/word/dword/signed dword~) render_logo::$12 - (byte/signed word/word/dword/signed dword~) render_logo::$14 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte) render_logo::line#10 + (byte/signed word/word/dword/signed dword~) render_logo::$14 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte) render_logo::line#10 (byte/signed word/word/dword/signed dword~) render_logo::$15 ← (byte) render_logo::logo_idx#5 + (byte/signed word/word/dword/signed dword~) render_logo::$14 *((byte*~) render_logo::$13 + (byte) render_logo::screen_idx#11) ← (byte/signed word/word/dword/signed dword~) render_logo::$15 (byte) render_logo::line#4 ← (byte) render_logo::line#10 + rangenext(0,5) @@ -867,7 +867,7 @@ render_logo::@11: scope:[render_logo] from render_logo::@1 render_logo::@31 (byte*) SCREEN#19 ← phi( render_logo::@1/(byte*) SCREEN#26 render_logo::@31/(byte*) SCREEN#27 ) (byte) render_logo::screen_idx#22 ← phi( render_logo::@1/(byte) render_logo::screen_idx#1 render_logo::@31/(byte) render_logo::screen_idx#5 ) (byte) render_logo::logo_idx#7 ← phi( render_logo::@1/(byte) render_logo::logo_idx#1 render_logo::@31/(byte) render_logo::logo_idx#4 ) - (bool~) render_logo::$19 ← (byte) render_logo::logo_idx#7 != (byte/signed byte/word/signed word/dword/signed dword) 40 + (bool~) render_logo::$19 ← (byte) render_logo::logo_idx#7 != (byte/signed byte/word/signed word/dword/signed dword) $28 if((bool~) render_logo::$19) goto render_logo::@12 to:render_logo::@15 render_logo::@12: scope:[render_logo] from render_logo::@11 @@ -881,9 +881,9 @@ render_logo::@14: scope:[render_logo] from render_logo::@12 render_logo::@14 (byte) render_logo::logo_idx#8 ← phi( render_logo::@12/(byte) render_logo::logo_idx#11 render_logo::@14/(byte) render_logo::logo_idx#8 ) (byte*) SCREEN#6 ← phi( render_logo::@12/(byte*) SCREEN#13 render_logo::@14/(byte*) SCREEN#6 ) (byte) render_logo::line#11 ← phi( render_logo::@12/(byte) render_logo::line#5 render_logo::@14/(byte) render_logo::line#6 ) - (byte/signed word/word/dword/signed dword~) render_logo::$20 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte) render_logo::line#11 + (byte/signed word/word/dword/signed dword~) render_logo::$20 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte) render_logo::line#11 (byte*~) render_logo::$21 ← (byte*) SCREEN#6 + (byte/signed word/word/dword/signed dword~) render_logo::$20 - (byte/signed word/word/dword/signed dword~) render_logo::$22 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte) render_logo::line#11 + (byte/signed word/word/dword/signed dword~) render_logo::$22 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte) render_logo::line#11 (byte/signed word/word/dword/signed dword~) render_logo::$23 ← (byte) render_logo::logo_idx#8 + (byte/signed word/word/dword/signed dword~) render_logo::$22 *((byte*~) render_logo::$21 + (byte) render_logo::screen_idx#13) ← (byte/signed word/word/dword/signed dword~) render_logo::$23 (byte) render_logo::line#6 ← (byte) render_logo::line#11 + rangenext(0,5) @@ -900,7 +900,7 @@ render_logo::@31: scope:[render_logo] from render_logo::@14 render_logo::@15: scope:[render_logo] from render_logo::@11 render_logo::@35 (byte*) SCREEN#20 ← phi( render_logo::@11/(byte*) SCREEN#19 render_logo::@35/(byte*) SCREEN#28 ) (byte) render_logo::screen_idx#15 ← phi( render_logo::@11/(byte) render_logo::screen_idx#22 render_logo::@35/(byte) render_logo::screen_idx#6 ) - (bool~) render_logo::$25 ← (byte) render_logo::screen_idx#15 != (byte/signed byte/word/signed word/dword/signed dword) 40 + (bool~) render_logo::$25 ← (byte) render_logo::screen_idx#15 != (byte/signed byte/word/signed word/dword/signed dword) $28 if((bool~) render_logo::$25) goto render_logo::@16 to:render_logo::@return render_logo::@16: scope:[render_logo] from render_logo::@15 @@ -912,7 +912,7 @@ render_logo::@18: scope:[render_logo] from render_logo::@16 render_logo::@18 (byte) render_logo::screen_idx#16 ← phi( render_logo::@16/(byte) render_logo::screen_idx#23 render_logo::@18/(byte) render_logo::screen_idx#16 ) (byte*) SCREEN#7 ← phi( render_logo::@16/(byte*) SCREEN#14 render_logo::@18/(byte*) SCREEN#7 ) (byte) render_logo::line#12 ← phi( render_logo::@16/(byte) render_logo::line#7 render_logo::@18/(byte) render_logo::line#8 ) - (byte/signed word/word/dword/signed dword~) render_logo::$26 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte) render_logo::line#12 + (byte/signed word/word/dword/signed dword~) render_logo::$26 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte) render_logo::line#12 (byte*~) render_logo::$27 ← (byte*) SCREEN#7 + (byte/signed word/word/dword/signed dword~) render_logo::$26 *((byte*~) render_logo::$27 + (byte) render_logo::screen_idx#16) ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) render_logo::line#8 ← (byte) render_logo::line#12 + rangenext(0,5) @@ -2110,7 +2110,7 @@ Redundant Phi (word) xsin_idx#12 (word) xsin_idx#0 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) divr16u::$4 [91] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 Simple Condition (bool~) divr16u::$9 [99] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 -Simple Condition (bool~) divr16u::$11 [106] if((byte) divr16u::i#1!=rangelast(0,15)) goto divr16u::@1 +Simple Condition (bool~) divr16u::$11 [106] if((byte) divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1 Simple Condition (bool~) mul16u::$0 [154] if((word) mul16u::a#3!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@2 Simple Condition (bool~) mul16u::$3 [159] if((byte/word~) mul16u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@4 Simple Condition (bool~) mul16s::$4 [185] if((signed word) mul16s::a#0>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16s::@1 @@ -2120,82 +2120,82 @@ Simple Condition (bool~) sin16s::$1 [261] if((dword) sin16s::x#0<(dword) PI_u4f2 Simple Condition (bool~) sin16s::$4 [265] if((dword) sin16s::x#4<(dword) PI_HALF_u4f28#0) goto sin16s::@2 Simple Condition (bool~) sin16s::$19 [325] if((byte) sin16s::isUpper#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@3 Simple Condition (bool~) fill::$1 [359] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 -Simple Condition (bool~) main::$4 [410] if((byte) main::ch#1!=rangelast(0,239)) goto main::@1 -Simple Condition (bool~) loop::$0 [435] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto loop::@5 +Simple Condition (bool~) main::$4 [410] if((byte) main::ch#1!=rangelast(0,$ef)) goto main::@1 +Simple Condition (bool~) loop::$0 [435] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto loop::@5 Simple Condition (bool~) loop::$5 [448] if((word) xsin_idx#3!=(word/signed dword/dword~) loop::$3) goto loop::@7 Simple Condition (bool~) render_logo::$5 [468] if((signed word) render_logo::xpos#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_logo::@1 Simple Condition (bool~) render_logo::$7 [480] if((byte) render_logo::screen_idx#18!=(byte) render_logo::logo_start#1) goto render_logo::@3 Simple Condition (bool~) render_logo::$10 [491] unroll if((byte) render_logo::line#2!=rangelast(0,5)) goto render_logo::@5 -Simple Condition (bool~) render_logo::$11 [496] if((byte) render_logo::screen_idx#10!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_logo::@7 +Simple Condition (bool~) render_logo::$11 [496] if((byte) render_logo::screen_idx#10!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render_logo::@7 Simple Condition (bool~) render_logo::$16 [507] unroll if((byte) render_logo::line#4!=rangelast(0,5)) goto render_logo::@9 -Simple Condition (bool~) render_logo::$19 [513] if((byte) render_logo::logo_idx#11!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_logo::@12 +Simple Condition (bool~) render_logo::$19 [513] if((byte) render_logo::logo_idx#11!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render_logo::@12 Simple Condition (bool~) render_logo::$24 [524] unroll if((byte) render_logo::line#6!=rangelast(0,5)) goto render_logo::@14 -Simple Condition (bool~) render_logo::$25 [530] if((byte) render_logo::screen_idx#15!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_logo::@16 +Simple Condition (bool~) render_logo::$25 [530] if((byte) render_logo::screen_idx#15!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render_logo::@16 Simple Condition (bool~) render_logo::$28 [539] unroll if((byte) render_logo::line#8!=rangelast(0,5)) goto render_logo::@18 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -2206,12 +2206,12 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f Constant (const byte) rem8u#0 = 0 Constant (const word) rem16u#0 = 0 Constant (const word) divr16u::quotient#0 = 0 @@ -2220,31 +2220,31 @@ Constant (const word) divr16u::rem#3 = 0 Constant (const signed byte) rem8s#0 = 0 Constant (const signed word) rem16s#0 = 0 Constant (const dword) mul16u::res#0 = 0 -Constant (const dword) PI2_u4f28#0 = 1686629713 -Constant (const dword) PI_u4f28#0 = 843314857 -Constant (const dword) PI_HALF_u4f28#0 = 421657428 -Constant (const word) PI2_u4f12#0 = 25736 -Constant (const word) PI_u4f12#0 = 12868 -Constant (const word) PI_HALF_u4f12#0 = 6434 +Constant (const dword) PI2_u4f28#0 = $6487ed51 +Constant (const dword) PI_u4f28#0 = $3243f6a9 +Constant (const dword) PI_HALF_u4f28#0 = $1921fb54 +Constant (const word) PI2_u4f12#0 = $6488 +Constant (const word) PI_u4f12#0 = $3244 +Constant (const word) PI_HALF_u4f12#0 = $1922 Constant (const dword) sin16s_gen2::x#0 = 0 Constant (const word) sin16s_gen2::i#0 = 0 Constant (const byte) sin16s::isUpper#0 = 0 Constant (const byte) sin16s::isUpper#1 = 1 Constant (const byte) mulu16_sel::select#0 = 0 Constant (const byte) mulu16_sel::select#1 = 1 -Constant (const word) mulu16_sel::v2#2 = 65536/6 +Constant (const word) mulu16_sel::v2#2 = $10000/6 Constant (const byte) mulu16_sel::select#2 = 1 Constant (const byte) mulu16_sel::select#3 = 0 Constant (const byte) mulu16_sel::select#4 = 0 -Constant (const byte*) SCREEN#0 = ((byte*))1024 -Constant (const byte*) LOGO#0 = ((byte*))8192 -Constant (const byte/word/signed word/dword/signed dword) $0 = 6*40 -Constant (const word) XSIN_SIZE#0 = 512 -Constant (const word) fill::size#0 = 1000 -Constant (const word) fill::size#1 = 1000 +Constant (const byte*) SCREEN#0 = ((byte*))$400 +Constant (const byte*) LOGO#0 = ((byte*))$2000 +Constant (const byte/word/signed word/dword/signed dword) $0 = 6*$28 +Constant (const word) XSIN_SIZE#0 = $200 +Constant (const word) fill::size#0 = $3e8 +Constant (const word) fill::size#1 = $3e8 Constant (const byte) main::ch#0 = 0 -Constant (const signed word) sin16s_gen2::min#0 = -320 -Constant (const signed word) sin16s_gen2::max#0 = 320 +Constant (const signed word) sin16s_gen2::min#0 = -$140 +Constant (const signed word) sin16s_gen2::max#0 = $140 Constant (const word) xsin_idx#16 = 0 Constant (const word) xsin_idx#4 = 0 Constant (const byte) render_logo::logo_idx#0 = 0 @@ -2285,14 +2285,14 @@ Constant (const word) divr16u::divisor#1 = div32u16u::divisor#0 Constant (const word) mul16u::b#0 = ((word))mul16s::b#0 Constant (const word) mul16s::$7 = ((word))mul16s::b#0 Constant (const signed word) sin16s_gen2::offs#0 = sin16s_gen2::min#0+sin16s_gen2::$1 -Constant (const word) main::toD0181_$1#0 = main::toD0181_$0#0&16383 +Constant (const word) main::toD0181_$1#0 = main::toD0181_$0#0&$3fff Constant (const byte) main::toD0181_$5#0 = >main::toD0181_$4#0 Successful SSA optimization Pass2ConstantIdentification Constant (const word) main::toD0181_$2#0 = main::toD0181_$1#0<<2 Constant (const byte) main::toD0181_$6#0 = main::toD0181_$5#0>>2 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::toD0181_$3#0 = >main::toD0181_$2#0 -Constant (const byte) main::toD0181_$7#0 = main::toD0181_$6#0&15 +Constant (const byte) main::toD0181_$7#0 = main::toD0181_$6#0&$f Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::toD0181_return#0 = main::toD0181_$3#0|main::toD0181_$7#0 Successful SSA optimization Pass2ConstantIdentification @@ -2318,9 +2318,9 @@ Removing unused block mul16s::@4 Removing unused block loop::@return Successful SSA optimization Pass2EliminateUnusedBlocks Resolved ranged next value divr16u::i#1 ← ++ divr16u::i#2 to ++ -Resolved ranged comparison value if(divr16u::i#1!=rangelast(0,15)) goto divr16u::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value main::ch#1 ← ++ main::ch#2 to ++ -Resolved ranged comparison value if(main::ch#1!=rangelast(0,239)) goto main::@1 to (byte/word/signed word/dword/signed dword) 240 +Resolved ranged comparison value if(main::ch#1!=rangelast(0,$ef)) goto main::@1 to (byte/word/signed word/dword/signed dword) $f0 Resolved ranged next value render_logo::line#2 ← ++ render_logo::line#9 to ++ Resolved ranged comparison value unroll if(render_logo::line#2!=rangelast(0,5)) goto render_logo::@5 to (byte/signed byte/word/signed word/dword/signed dword) 6 Resolved ranged next value render_logo::line#4 ← ++ render_logo::line#10 to ++ @@ -2370,7 +2370,7 @@ Unrolling loop Loop head: render_logo::@5 tails: render_logo::@5 blocks: render_ Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) render_logo::line#9 (const byte) render_logo::line#1 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) render_logo::$8 = 40*render_logo::line#1 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$8 = $28*render_logo::line#1 Constant (const byte) render_logo::line#2 = ++render_logo::line#1 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) render_logo::$9 = SCREEN#0+render_logo::$8 @@ -2381,8 +2381,8 @@ Unrolling loop Loop head: render_logo::@9 tails: render_logo::@9 blocks: render_ Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) render_logo::line#10 (const byte) render_logo::line#3 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) render_logo::$12 = 40*render_logo::line#3 -Constant (const byte/signed word/word/dword/signed dword) render_logo::$14 = 40*render_logo::line#3 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$12 = $28*render_logo::line#3 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$14 = $28*render_logo::line#3 Constant (const byte) render_logo::line#4 = ++render_logo::line#3 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) render_logo::$13 = SCREEN#0+render_logo::$12 @@ -2393,8 +2393,8 @@ Unrolling loop Loop head: render_logo::@9_1 tails: render_logo::@9_1 blocks: ren Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) render_logo::line#15 (const byte) render_logo::line#4 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) render_logo::$31 = 40*render_logo::line#4 -Constant (const byte/signed word/word/dword/signed dword) render_logo::$33 = 40*render_logo::line#4 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$31 = $28*render_logo::line#4 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$33 = $28*render_logo::line#4 Constant (const byte) render_logo::line#16 = ++render_logo::line#4 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) render_logo::$32 = SCREEN#0+render_logo::$31 @@ -2405,8 +2405,8 @@ Unrolling loop Loop head: render_logo::@9_2 tails: render_logo::@9_2 blocks: ren Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) render_logo::line#17 (const byte) render_logo::line#16 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) render_logo::$35 = 40*render_logo::line#16 -Constant (const byte/signed word/word/dword/signed dword) render_logo::$37 = 40*render_logo::line#16 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$35 = $28*render_logo::line#16 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$37 = $28*render_logo::line#16 Constant (const byte) render_logo::line#18 = ++render_logo::line#16 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) render_logo::$36 = SCREEN#0+render_logo::$35 @@ -2417,8 +2417,8 @@ Unrolling loop Loop head: render_logo::@9_3 tails: render_logo::@9_3 blocks: ren Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) render_logo::line#19 (const byte) render_logo::line#18 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) render_logo::$39 = 40*render_logo::line#18 -Constant (const byte/signed word/word/dword/signed dword) render_logo::$41 = 40*render_logo::line#18 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$39 = $28*render_logo::line#18 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$41 = $28*render_logo::line#18 Constant (const byte) render_logo::line#20 = ++render_logo::line#18 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) render_logo::$40 = SCREEN#0+render_logo::$39 @@ -2429,8 +2429,8 @@ Unrolling loop Loop head: render_logo::@9_4 tails: render_logo::@9_4 blocks: ren Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) render_logo::line#21 (const byte) render_logo::line#20 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) render_logo::$43 = 40*render_logo::line#20 -Constant (const byte/signed word/word/dword/signed dword) render_logo::$45 = 40*render_logo::line#20 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$43 = $28*render_logo::line#20 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$45 = $28*render_logo::line#20 Constant (const byte) render_logo::line#22 = ++render_logo::line#20 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) render_logo::$44 = SCREEN#0+render_logo::$43 @@ -2441,8 +2441,8 @@ Unrolling loop Loop head: render_logo::@9_5 tails: render_logo::@9_5 blocks: ren Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) render_logo::line#23 (const byte) render_logo::line#22 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) render_logo::$47 = 40*render_logo::line#22 -Constant (const byte/signed word/word/dword/signed dword) render_logo::$49 = 40*render_logo::line#22 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$47 = $28*render_logo::line#22 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$49 = $28*render_logo::line#22 Constant (const byte) render_logo::line#24 = ++render_logo::line#22 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) render_logo::$48 = SCREEN#0+render_logo::$47 @@ -2463,7 +2463,7 @@ Unrolling loop Loop head: render_logo::@5_1 tails: render_logo::@5_1 blocks: ren Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) render_logo::line#13 (const byte) render_logo::line#2 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) render_logo::$29 = 40*render_logo::line#2 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$29 = $28*render_logo::line#2 Constant (const byte) render_logo::line#14 = ++render_logo::line#2 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) render_logo::$30 = SCREEN#0+render_logo::$29 @@ -2474,7 +2474,7 @@ Unrolling loop Loop head: render_logo::@5_2 tails: render_logo::@5_2 blocks: ren Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) render_logo::line#27 (const byte) render_logo::line#14 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) render_logo::$55 = 40*render_logo::line#14 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$55 = $28*render_logo::line#14 Constant (const byte) render_logo::line#28 = ++render_logo::line#14 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) render_logo::$56 = SCREEN#0+render_logo::$55 @@ -2485,7 +2485,7 @@ Unrolling loop Loop head: render_logo::@5_3 tails: render_logo::@5_3 blocks: ren Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) render_logo::line#29 (const byte) render_logo::line#28 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) render_logo::$57 = 40*render_logo::line#28 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$57 = $28*render_logo::line#28 Constant (const byte) render_logo::line#30 = ++render_logo::line#28 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) render_logo::$58 = SCREEN#0+render_logo::$57 @@ -2496,7 +2496,7 @@ Unrolling loop Loop head: render_logo::@5_4 tails: render_logo::@5_4 blocks: ren Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) render_logo::line#31 (const byte) render_logo::line#30 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) render_logo::$59 = 40*render_logo::line#30 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$59 = $28*render_logo::line#30 Constant (const byte) render_logo::line#32 = ++render_logo::line#30 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) render_logo::$60 = SCREEN#0+render_logo::$59 @@ -2507,7 +2507,7 @@ Unrolling loop Loop head: render_logo::@5_5 tails: render_logo::@5_5 blocks: ren Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) render_logo::line#33 (const byte) render_logo::line#32 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) render_logo::$61 = 40*render_logo::line#32 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$61 = $28*render_logo::line#32 Constant (const byte) render_logo::line#34 = ++render_logo::line#32 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) render_logo::$62 = SCREEN#0+render_logo::$61 @@ -2526,7 +2526,7 @@ Unrolling loop Loop head: render_logo::@18 tails: render_logo::@18 blocks: rende Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) render_logo::line#12 (const byte) render_logo::line#7 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) render_logo::$26 = 40*render_logo::line#7 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$26 = $28*render_logo::line#7 Constant (const byte) render_logo::line#8 = ++render_logo::line#7 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) render_logo::$27 = SCREEN#0+render_logo::$26 @@ -2537,7 +2537,7 @@ Unrolling loop Loop head: render_logo::@18_1 tails: render_logo::@18_1 blocks: r Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) render_logo::line#37 (const byte) render_logo::line#8 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) render_logo::$65 = 40*render_logo::line#8 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$65 = $28*render_logo::line#8 Constant (const byte) render_logo::line#38 = ++render_logo::line#8 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) render_logo::$66 = SCREEN#0+render_logo::$65 @@ -2548,7 +2548,7 @@ Unrolling loop Loop head: render_logo::@18_2 tails: render_logo::@18_2 blocks: r Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) render_logo::line#39 (const byte) render_logo::line#38 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) render_logo::$67 = 40*render_logo::line#38 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$67 = $28*render_logo::line#38 Constant (const byte) render_logo::line#40 = ++render_logo::line#38 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) render_logo::$68 = SCREEN#0+render_logo::$67 @@ -2559,7 +2559,7 @@ Unrolling loop Loop head: render_logo::@18_3 tails: render_logo::@18_3 blocks: r Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) render_logo::line#41 (const byte) render_logo::line#40 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) render_logo::$69 = 40*render_logo::line#40 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$69 = $28*render_logo::line#40 Constant (const byte) render_logo::line#42 = ++render_logo::line#40 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) render_logo::$70 = SCREEN#0+render_logo::$69 @@ -2570,7 +2570,7 @@ Unrolling loop Loop head: render_logo::@18_4 tails: render_logo::@18_4 blocks: r Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) render_logo::line#43 (const byte) render_logo::line#42 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) render_logo::$71 = 40*render_logo::line#42 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$71 = $28*render_logo::line#42 Constant (const byte) render_logo::line#44 = ++render_logo::line#42 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) render_logo::$72 = SCREEN#0+render_logo::$71 @@ -2581,7 +2581,7 @@ Unrolling loop Loop head: render_logo::@18_5 tails: render_logo::@18_5 blocks: r Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) render_logo::line#45 (const byte) render_logo::line#44 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) render_logo::$73 = 40*render_logo::line#44 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$73 = $28*render_logo::line#44 Constant (const byte) render_logo::line#46 = ++render_logo::line#44 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) render_logo::$74 = SCREEN#0+render_logo::$73 @@ -2600,8 +2600,8 @@ Unrolling loop Loop head: render_logo::@14 tails: render_logo::@14 blocks: rende Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) render_logo::line#11 (const byte) render_logo::line#5 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) render_logo::$20 = 40*render_logo::line#5 -Constant (const byte/signed word/word/dword/signed dword) render_logo::$22 = 40*render_logo::line#5 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$20 = $28*render_logo::line#5 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$22 = $28*render_logo::line#5 Constant (const byte) render_logo::line#6 = ++render_logo::line#5 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) render_logo::$21 = SCREEN#0+render_logo::$20 @@ -2612,8 +2612,8 @@ Unrolling loop Loop head: render_logo::@14_1 tails: render_logo::@14_1 blocks: r Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) render_logo::line#49 (const byte) render_logo::line#6 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) render_logo::$77 = 40*render_logo::line#6 -Constant (const byte/signed word/word/dword/signed dword) render_logo::$79 = 40*render_logo::line#6 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$77 = $28*render_logo::line#6 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$79 = $28*render_logo::line#6 Constant (const byte) render_logo::line#50 = ++render_logo::line#6 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) render_logo::$78 = SCREEN#0+render_logo::$77 @@ -2624,8 +2624,8 @@ Unrolling loop Loop head: render_logo::@14_2 tails: render_logo::@14_2 blocks: r Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) render_logo::line#51 (const byte) render_logo::line#50 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) render_logo::$81 = 40*render_logo::line#50 -Constant (const byte/signed word/word/dword/signed dword) render_logo::$83 = 40*render_logo::line#50 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$81 = $28*render_logo::line#50 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$83 = $28*render_logo::line#50 Constant (const byte) render_logo::line#52 = ++render_logo::line#50 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) render_logo::$82 = SCREEN#0+render_logo::$81 @@ -2636,8 +2636,8 @@ Unrolling loop Loop head: render_logo::@14_3 tails: render_logo::@14_3 blocks: r Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) render_logo::line#53 (const byte) render_logo::line#52 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) render_logo::$85 = 40*render_logo::line#52 -Constant (const byte/signed word/word/dword/signed dword) render_logo::$87 = 40*render_logo::line#52 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$85 = $28*render_logo::line#52 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$87 = $28*render_logo::line#52 Constant (const byte) render_logo::line#54 = ++render_logo::line#52 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) render_logo::$86 = SCREEN#0+render_logo::$85 @@ -2648,8 +2648,8 @@ Unrolling loop Loop head: render_logo::@14_4 tails: render_logo::@14_4 blocks: r Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) render_logo::line#55 (const byte) render_logo::line#54 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) render_logo::$89 = 40*render_logo::line#54 -Constant (const byte/signed word/word/dword/signed dword) render_logo::$91 = 40*render_logo::line#54 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$89 = $28*render_logo::line#54 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$91 = $28*render_logo::line#54 Constant (const byte) render_logo::line#56 = ++render_logo::line#54 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) render_logo::$90 = SCREEN#0+render_logo::$89 @@ -2660,8 +2660,8 @@ Unrolling loop Loop head: render_logo::@14_5 tails: render_logo::@14_5 blocks: r Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) render_logo::line#57 (const byte) render_logo::line#56 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) render_logo::$93 = 40*render_logo::line#56 -Constant (const byte/signed word/word/dword/signed dword) render_logo::$95 = 40*render_logo::line#56 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$93 = $28*render_logo::line#56 +Constant (const byte/signed word/word/dword/signed dword) render_logo::$95 = $28*render_logo::line#56 Constant (const byte) render_logo::line#58 = ++render_logo::line#56 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) render_logo::$94 = SCREEN#0+render_logo::$93 @@ -2734,11 +2734,11 @@ Inlining constant with var siblings (const word) xsin_idx#16 Inlining constant with var siblings (const word) xsin_idx#4 Constant inlined render_logo::line#56 = ++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined divr16u::rem#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$30 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$30 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_logo::line#52 = ++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$32 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$32 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_logo::line#54 = ++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$31 = (byte/signed byte/word/signed word/dword/signed dword) 40*++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$31 = (byte/signed byte/word/signed word/dword/signed dword) $28*++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined sin16s::isUpper#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_logo::line#50 = ++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mulu16_sel::select#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -2749,130 +2749,130 @@ Constant inlined mulu16_sel::select#0 = (byte/signed byte/word/signed word/dword Constant inlined fill::start#0 = (const byte*) SCREEN#0 Constant inlined sin16s::isUpper#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined mulu16_sel::select#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined render_logo::$33 = (byte/signed byte/word/signed word/dword/signed dword) 40*++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$36 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$35 = (byte/signed byte/word/signed word/dword/signed dword) 40*++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$37 = (byte/signed byte/word/signed word/dword/signed dword) 40*++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$33 = (byte/signed byte/word/signed word/dword/signed dword) $28*++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$36 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$35 = (byte/signed byte/word/signed word/dword/signed dword) $28*++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$37 = (byte/signed byte/word/signed word/dword/signed dword) $28*++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::ch#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$39 = (byte/signed byte/word/signed word/dword/signed dword) 40*++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$41 = (byte/signed byte/word/signed word/dword/signed dword) 40*++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$40 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$43 = (byte/signed byte/word/signed word/dword/signed dword) 40*++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$39 = (byte/signed byte/word/signed word/dword/signed dword) $28*++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$41 = (byte/signed byte/word/signed word/dword/signed dword) $28*++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$40 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$43 = (byte/signed byte/word/signed word/dword/signed dword) $28*++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined sin16s_gen2::wavelength#0 = (const word) XSIN_SIZE#0 -Constant inlined fill::size#1 = (word/signed word/dword/signed dword) 1000 -Constant inlined fill::size#0 = (word/signed word/dword/signed dword) 1000 -Constant inlined main::toD0181_$7#0 = >((word))(const byte*) LOGO#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 +Constant inlined fill::size#1 = (word/signed word/dword/signed dword) $3e8 +Constant inlined fill::size#0 = (word/signed word/dword/signed dword) $3e8 +Constant inlined main::toD0181_$7#0 = >((word))(const byte*) LOGO#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) $f Constant inlined xsin_idx#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::toD0181_$3#0 = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined render_logo::$45 = (byte/signed byte/word/signed word/dword/signed dword) 40*++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined main::toD0181_$3#0 = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined render_logo::$45 = (byte/signed byte/word/signed word/dword/signed dword) $28*++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined sin16s_gen2::sintab#1 = (const signed word[XSIN_SIZE#0]) xsin#0 -Constant inlined render_logo::$44 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$47 = (byte/signed byte/word/signed word/dword/signed dword) 40*++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$49 = (byte/signed byte/word/signed word/dword/signed dword) 40*++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$48 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$44 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$47 = (byte/signed byte/word/signed word/dword/signed dword) $28*++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$49 = (byte/signed byte/word/signed word/dword/signed dword) $28*++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$48 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::toD0181_screen#0 = (const byte*) SCREEN#0 Constant inlined divr16u::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mul16s::$7 = ((word))(const signed word) sin16s_gen2::ampl#0 Constant inlined sin16s_gen2::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$56 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$55 = (byte/signed byte/word/signed word/dword/signed dword) 40*++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$58 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$57 = (byte/signed byte/word/signed word/dword/signed dword) 40*++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$56 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$55 = (byte/signed byte/word/signed word/dword/signed dword) $28*++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$58 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$57 = (byte/signed byte/word/signed word/dword/signed dword) $28*++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_logo::screen_idx#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$59 = (byte/signed byte/word/signed word/dword/signed dword) 40*++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$59 = (byte/signed byte/word/signed word/dword/signed dword) $28*++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_logo::screen_idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$61 = (byte/signed byte/word/signed word/dword/signed dword) 40*++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$60 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$62 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$65 = (byte/signed byte/word/signed word/dword/signed dword) 40*++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$61 = (byte/signed byte/word/signed word/dword/signed dword) $28*++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$60 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$62 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$65 = (byte/signed byte/word/signed word/dword/signed dword) $28*++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::toD0181_$0#0 = ((word))(const byte*) SCREEN#0 Constant inlined divr16u::dividend#1 = >(const dword) PI2_u4f28#0 Constant inlined divr16u::dividend#2 = <(const dword) PI2_u4f28#0 Constant inlined main::toD0181_$4#0 = ((word))(const byte*) LOGO#0 Constant inlined render_logo::line#2 = ++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mulu16_sel::v2#2 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 +Constant inlined mulu16_sel::v2#2 = (dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 Constant inlined render_logo::line#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$67 = (byte/signed byte/word/signed word/dword/signed dword) 40*++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$67 = (byte/signed byte/word/signed word/dword/signed dword) $28*++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_logo::line#4 = ++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$66 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$66 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_logo::line#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$69 = (byte/signed byte/word/signed word/dword/signed dword) 40*++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$69 = (byte/signed byte/word/signed word/dword/signed dword) $28*++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_logo::line#6 = ++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$68 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$68 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_logo::line#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_logo::line#8 = ++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_logo::line#7 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$8 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$70 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$9 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$72 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$8 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$70 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$9 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$72 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_logo::line#14 = ++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$71 = (byte/signed byte/word/signed word/dword/signed dword) 40*++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$71 = (byte/signed byte/word/signed word/dword/signed dword) $28*++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined sin16s_gen2::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$74 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$73 = (byte/signed byte/word/signed word/dword/signed dword) 40*++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined $0 = (byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined $1 = (byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 +Constant inlined render_logo::$74 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$73 = (byte/signed byte/word/signed word/dword/signed dword) $28*++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined $0 = (byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined $1 = (byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 Constant inlined mul16u::b#0 = ((word))(const signed word) sin16s_gen2::ampl#0 -Constant inlined render_logo::$78 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$77 = (byte/signed byte/word/signed word/dword/signed dword) 40*++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$79 = (byte/signed byte/word/signed word/dword/signed dword) 40*++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$81 = (byte/signed byte/word/signed word/dword/signed dword) 40*++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$78 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$77 = (byte/signed byte/word/signed word/dword/signed dword) $28*++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$79 = (byte/signed byte/word/signed word/dword/signed dword) $28*++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$81 = (byte/signed byte/word/signed word/dword/signed dword) $28*++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mul16s::b#0 = (const signed word) sin16s_gen2::ampl#0 -Constant inlined render_logo::$83 = (byte/signed byte/word/signed word/dword/signed dword) 40*++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$82 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$85 = (byte/signed byte/word/signed word/dword/signed dword) 40*++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$83 = (byte/signed byte/word/signed word/dword/signed dword) $28*++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$82 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$85 = (byte/signed byte/word/signed word/dword/signed dword) $28*++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_logo::line#20 = ++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$87 = (byte/signed byte/word/signed word/dword/signed dword) 40*++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$86 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$87 = (byte/signed byte/word/signed word/dword/signed dword) $28*++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$86 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_logo::line#22 = ++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::toD0181_$1#0 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383 +Constant inlined main::toD0181_$1#0 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff Constant inlined main::toD0181_$5#0 = >((word))(const byte*) LOGO#0 -Constant inlined render_logo::$89 = (byte/signed byte/word/signed word/dword/signed dword) 40*++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$89 = (byte/signed byte/word/signed word/dword/signed dword) $28*++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_logo::line#16 = ++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_logo::line#18 = ++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_logo::logo_idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined fill::val#0 = (const byte) BLACK#0 -Constant inlined render_logo::$91 = (byte/signed byte/word/signed word/dword/signed dword) 40*++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$91 = (byte/signed byte/word/signed word/dword/signed dword) $28*++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::toD0181_gfx#0 = (const byte*) LOGO#0 -Constant inlined render_logo::$94 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$93 = (byte/signed byte/word/signed word/dword/signed dword) 40*++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$94 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$93 = (byte/signed byte/word/signed word/dword/signed dword) $28*++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_logo::line#30 = ++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$95 = (byte/signed byte/word/signed word/dword/signed dword) 40*++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$95 = (byte/signed byte/word/signed word/dword/signed dword) $28*++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_logo::line#32 = ++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined fill::val#1 = (const byte) WHITE#0|(byte/signed byte/word/signed word/dword/signed dword) 8 Constant inlined xsin_idx#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined div32u16u::dividend#0 = (const dword) PI2_u4f28#0 Constant inlined sin16s_gen2::$1 = (const signed word) sin16s_gen2::ampl#0>>(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined render_logo::$90 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$90 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined divr16u::quotient#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mul16u::res#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$12 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$14 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$13 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$12 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$14 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$13 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined divr16u::divisor#1 = (const word) XSIN_SIZE#0 Constant inlined divr16u::divisor#0 = (const word) XSIN_SIZE#0 Constant inlined render_logo::line#28 = ++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_logo::line#42 = ++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$21 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$20 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$21 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$20 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_logo::line#44 = ++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_logo::line#40 = ++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::toD0181_$6#0 = >((word))(const byte*) LOGO#0>>(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined loop::$3 = (const word) XSIN_SIZE#0*(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined main::toD0181_$2#0 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined render_logo::$22 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined main::toD0181_$2#0 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined render_logo::$22 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined div32u16u::divisor#0 = (const word) XSIN_SIZE#0 -Constant inlined render_logo::$27 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$27 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_logo::line#38 = ++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$26 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_logo::$29 = (byte/signed byte/word/signed word/dword/signed dword) 40*++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$26 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_logo::$29 = (byte/signed byte/word/signed word/dword/signed dword) $28*++(byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining Identical Phi Values (word) divr16u::divisor#6 (const word) XSIN_SIZE#0 -Identical Phi Values (word) fill::size#2 (word/signed word/dword/signed dword) 1000 +Identical Phi Values (word) fill::size#2 (word/signed word/dword/signed dword) $3e8 Successful SSA optimization Pass2IdenticalPhiElimination -Simplifying constant multiply by zero 40*0 -Simplifying constant multiply by zero 40*0 +Simplifying constant multiply by zero $28*0 +Simplifying constant multiply by zero $28*0 Simplifying constant integer increment ++0 Simplifying constant integer increment ++0 Simplifying constant integer increment ++0 @@ -2883,20 +2883,20 @@ Simplifying constant integer increment ++2 Simplifying constant integer increment ++3 Simplifying constant integer increment ++3 Simplifying constant integer increment ++4 -Simplifying constant multiply by zero 40*0 +Simplifying constant multiply by zero $28*0 Simplifying constant integer increment ++0 Simplifying constant integer increment ++0 Simplifying constant integer increment ++1 Simplifying constant integer increment ++2 Simplifying constant integer increment ++3 -Simplifying constant multiply by zero 40*0 +Simplifying constant multiply by zero $28*0 Simplifying constant integer increment ++0 Simplifying constant integer increment ++0 Simplifying constant integer increment ++1 Simplifying constant integer increment ++2 Simplifying constant integer increment ++3 -Simplifying constant multiply by zero 40*0 -Simplifying constant multiply by zero 40*0 +Simplifying constant multiply by zero $28*0 +Simplifying constant multiply by zero $28*0 Simplifying constant integer increment ++0 Simplifying constant integer increment ++0 Simplifying constant integer increment ++0 @@ -3088,7 +3088,7 @@ main::@1: scope:[main] from main::@1 main::@4 [16] (byte) main::ch#2 ← phi( main::@1/(byte) main::ch#1 main::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [17] *((const byte*) SCREEN#0 + (byte) main::ch#2) ← (byte) main::ch#2 [18] (byte) main::ch#1 ← ++ (byte) main::ch#2 - [19] if((byte) main::ch#1!=(byte/word/signed word/dword/signed dword) 240) goto main::@1 + [19] if((byte) main::ch#1!=(byte/word/signed word/dword/signed dword) $f0) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 [20] phi() @@ -3108,7 +3108,7 @@ loop::@1: scope:[loop] from loop loop::@7 [26] (word) xsin_idx#11 ← phi( loop/(byte/signed byte/word/signed word/dword/signed dword) 0 loop::@7/(word) xsin_idx#19 ) to:loop::@4 loop::@4: scope:[loop] from loop::@1 loop::@4 - [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto loop::@4 + [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto loop::@4 to:loop::@6 loop::@6: scope:[loop] from loop::@4 [28] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) @@ -3144,7 +3144,7 @@ render_logo::@2: scope:[render_logo] from render_logo render_logo::@22 render_logo::@6: scope:[render_logo] from render_logo::@2 render_logo::@26 [47] (byte) render_logo::logo_idx#10 ← phi( render_logo::@26/(byte) render_logo::logo_idx#3 render_logo::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [47] (byte) render_logo::screen_idx#10 ← phi( render_logo::@26/(byte) render_logo::screen_idx#4 render_logo::@2/(byte) render_logo::screen_idx#18 ) - [48] if((byte) render_logo::screen_idx#10!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_logo::@9 + [48] if((byte) render_logo::screen_idx#10!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render_logo::@9 to:render_logo::@return render_logo::@return: scope:[render_logo] from render_logo::@15 render_logo::@6 [49] return @@ -3154,24 +3154,24 @@ render_logo::@9: scope:[render_logo] from render_logo::@6 [51] *((const byte*) SCREEN#0 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$15 to:render_logo::@9_1 render_logo::@9_1: scope:[render_logo] from render_logo::@9 - [52] (byte/signed word/word/dword/signed dword~) render_logo::$34 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 - [53] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$34 + [52] (byte/signed word/word/dword/signed dword~) render_logo::$34 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + [53] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$34 to:render_logo::@9_2 render_logo::@9_2: scope:[render_logo] from render_logo::@9_1 - [54] (byte/signed word/word/dword/signed dword~) render_logo::$38 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 - [55] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$38 + [54] (byte/signed word/word/dword/signed dword~) render_logo::$38 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + [55] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$38 to:render_logo::@9_3 render_logo::@9_3: scope:[render_logo] from render_logo::@9_2 - [56] (byte/signed word/word/dword/signed dword~) render_logo::$42 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 - [57] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$42 + [56] (byte/signed word/word/dword/signed dword~) render_logo::$42 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + [57] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$42 to:render_logo::@9_4 render_logo::@9_4: scope:[render_logo] from render_logo::@9_3 - [58] (byte/signed word/word/dword/signed dword~) render_logo::$46 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 - [59] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$46 + [58] (byte/signed word/word/dword/signed dword~) render_logo::$46 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + [59] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$46 to:render_logo::@9_5 render_logo::@9_5: scope:[render_logo] from render_logo::@9_4 - [60] (byte/signed word/word/dword/signed dword~) render_logo::$50 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 - [61] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$50 + [60] (byte/signed word/word/dword/signed dword~) render_logo::$50 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + [61] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$50 to:render_logo::@26 render_logo::@26: scope:[render_logo] from render_logo::@9_5 [62] (byte) render_logo::screen_idx#4 ← ++ (byte) render_logo::screen_idx#10 @@ -3181,19 +3181,19 @@ render_logo::@5: scope:[render_logo] from render_logo::@2 [64] *((const byte*) SCREEN#0 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_logo::@5_1 render_logo::@5_1: scope:[render_logo] from render_logo::@5 - [65] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [65] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_logo::@5_2 render_logo::@5_2: scope:[render_logo] from render_logo::@5_1 - [66] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [66] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_logo::@5_3 render_logo::@5_3: scope:[render_logo] from render_logo::@5_2 - [67] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [67] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_logo::@5_4 render_logo::@5_4: scope:[render_logo] from render_logo::@5_3 - [68] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [68] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_logo::@5_5 render_logo::@5_5: scope:[render_logo] from render_logo::@5_4 - [69] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [69] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_logo::@22 render_logo::@22: scope:[render_logo] from render_logo::@5_5 [70] (byte) render_logo::screen_idx#3 ← ++ (byte) render_logo::screen_idx#18 @@ -3205,29 +3205,29 @@ render_logo::@1: scope:[render_logo] from render_logo render_logo::@11: scope:[render_logo] from render_logo::@1 render_logo::@31 [73] (byte) render_logo::screen_idx#21 ← phi( render_logo::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_logo::@31/(byte) render_logo::screen_idx#5 ) [73] (byte) render_logo::logo_idx#11 ← phi( render_logo::@1/(byte~) render_logo::logo_idx#14 render_logo::@31/(byte) render_logo::logo_idx#4 ) - [74] if((byte) render_logo::logo_idx#11!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_logo::@14 + [74] if((byte) render_logo::logo_idx#11!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render_logo::@14 to:render_logo::@15 render_logo::@15: scope:[render_logo] from render_logo::@11 render_logo::@35 [75] (byte) render_logo::screen_idx#15 ← phi( render_logo::@11/(byte) render_logo::screen_idx#21 render_logo::@35/(byte) render_logo::screen_idx#6 ) - [76] if((byte) render_logo::screen_idx#15!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_logo::@18 + [76] if((byte) render_logo::screen_idx#15!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render_logo::@18 to:render_logo::@return render_logo::@18: scope:[render_logo] from render_logo::@15 [77] *((const byte*) SCREEN#0 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_logo::@18_1 render_logo::@18_1: scope:[render_logo] from render_logo::@18 - [78] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [78] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_logo::@18_2 render_logo::@18_2: scope:[render_logo] from render_logo::@18_1 - [79] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [79] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_logo::@18_3 render_logo::@18_3: scope:[render_logo] from render_logo::@18_2 - [80] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [80] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_logo::@18_4 render_logo::@18_4: scope:[render_logo] from render_logo::@18_3 - [81] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [81] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_logo::@18_5 render_logo::@18_5: scope:[render_logo] from render_logo::@18_4 - [82] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [82] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_logo::@35 render_logo::@35: scope:[render_logo] from render_logo::@18_5 [83] (byte) render_logo::screen_idx#6 ← ++ (byte) render_logo::screen_idx#15 @@ -3237,24 +3237,24 @@ render_logo::@14: scope:[render_logo] from render_logo::@11 [85] *((const byte*) SCREEN#0 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$23 to:render_logo::@14_1 render_logo::@14_1: scope:[render_logo] from render_logo::@14 - [86] (byte/signed word/word/dword/signed dword~) render_logo::$80 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 - [87] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$80 + [86] (byte/signed word/word/dword/signed dword~) render_logo::$80 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + [87] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$80 to:render_logo::@14_2 render_logo::@14_2: scope:[render_logo] from render_logo::@14_1 - [88] (byte/signed word/word/dword/signed dword~) render_logo::$84 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 - [89] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$84 + [88] (byte/signed word/word/dword/signed dword~) render_logo::$84 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + [89] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$84 to:render_logo::@14_3 render_logo::@14_3: scope:[render_logo] from render_logo::@14_2 - [90] (byte/signed word/word/dword/signed dword~) render_logo::$88 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 - [91] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$88 + [90] (byte/signed word/word/dword/signed dword~) render_logo::$88 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + [91] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$88 to:render_logo::@14_4 render_logo::@14_4: scope:[render_logo] from render_logo::@14_3 - [92] (byte/signed word/word/dword/signed dword~) render_logo::$92 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 - [93] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$92 + [92] (byte/signed word/word/dword/signed dword~) render_logo::$92 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + [93] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$92 to:render_logo::@14_5 render_logo::@14_5: scope:[render_logo] from render_logo::@14_4 - [94] (byte/signed word/word/dword/signed dword~) render_logo::$96 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 - [95] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$96 + [94] (byte/signed word/word/dword/signed dword~) render_logo::$96 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + [95] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$96 to:render_logo::@31 render_logo::@31: scope:[render_logo] from render_logo::@14_5 [96] (byte) render_logo::screen_idx#5 ← ++ (byte) render_logo::screen_idx#21 @@ -3414,7 +3414,7 @@ sin16s::@15: scope:[sin16s] from sin16s::@12 to:sin16s::@3 mulu16_sel: scope:[mulu16_sel] from sin16s::@10 sin16s::@11 sin16s::@2 sin16s::@8 sin16s::@9 [180] (byte) mulu16_sel::select#5 ← phi( sin16s::@10/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@11/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16s::@9/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [180] (word) mulu16_sel::v2#5 ← phi( sin16s::@10/(word) mulu16_sel::v2#3 sin16s::@11/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@8/(word) mulu16_sel::v2#1 sin16s::@9/(dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 ) + [180] (word) mulu16_sel::v2#5 ← phi( sin16s::@10/(word) mulu16_sel::v2#3 sin16s::@11/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@8/(word) mulu16_sel::v2#1 sin16s::@9/(dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 ) [180] (word) mulu16_sel::v1#5 ← phi( sin16s::@10/(word) mulu16_sel::v1#3 sin16s::@11/(word) mulu16_sel::v1#4 sin16s::@2/(word) mulu16_sel::v1#0 sin16s::@8/(word) mulu16_sel::v1#1 sin16s::@9/(word) mulu16_sel::v1#2 ) [181] (word) mul16u::a#2 ← (word) mulu16_sel::v1#5 [182] (word) mul16u::b#1 ← (word) mulu16_sel::v2#5 @@ -3458,7 +3458,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 [200] (word) divr16u::rem#5 ← phi( divr16u/(word) divr16u::rem#10 divr16u::@3/(word) divr16u::rem#11 ) [201] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [202] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 - [203] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + [203] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [204] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 to:divr16u::@4 divr16u::@4: scope:[divr16u] from divr16u::@1 @@ -3478,7 +3478,7 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 [212] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [212] (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) [213] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 - [214] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 + [214] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 to:divr16u::@6 divr16u::@6: scope:[divr16u] from divr16u::@3 [215] (word) rem16u#1 ← (word) divr16u::rem#11 @@ -3489,7 +3489,7 @@ divr16u::@return: scope:[divr16u] from divr16u::@6 fill: scope:[fill] from main::@3 main::@4 [217] (byte) fill::val#3 ← phi( main::@3/(const byte) BLACK#0 main::@4/(const byte) WHITE#0|(byte/signed byte/word/signed word/dword/signed dword) 8 ) [217] (byte*) fill::addr#0 ← phi( main::@3/(const byte*) SCREEN#0 main::@4/(const byte*) COLS#0 ) - [218] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 + [218] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) $3e8 to:fill::@1 fill::@1: scope:[fill] from fill fill::@1 [219] (byte*) fill::addr#2 ← phi( fill/(byte*) fill::addr#0 fill::@1/(byte*) fill::addr#1 ) @@ -4220,7 +4220,7 @@ main: { sta SCREEN,y //SEG38 [18] (byte) main::ch#1 ← ++ (byte) main::ch#2 -- vbuz1=_inc_vbuz1 inc ch - //SEG39 [19] if((byte) main::ch#1!=(byte/word/signed word/dword/signed dword) 240) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG39 [19] if((byte) main::ch#1!=(byte/word/signed word/dword/signed dword) $f0) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda ch cmp #$f0 bne b1_from_b1 @@ -4266,7 +4266,7 @@ loop: { // Wait for the raster to reach the bottom of the screen //SEG54 loop::@4 b4: - //SEG55 [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto loop::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG55 [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto loop::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -4429,7 +4429,7 @@ render_logo: { jmp b6 //SEG90 render_logo::@6 b6: - //SEG91 [48] if((byte) render_logo::screen_idx#10!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_logo::@9 -- vbuz1_neq_vbuc1_then_la1 + //SEG91 [48] if((byte) render_logo::screen_idx#10!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render_logo::@9 -- vbuz1_neq_vbuc1_then_la1 lda screen_idx cmp #$28 bne b9 @@ -4450,60 +4450,60 @@ render_logo: { jmp b9_1 //SEG97 render_logo::@9_1 b9_1: - //SEG98 [52] (byte/signed word/word/dword/signed dword~) render_logo::$34 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_vbuc1 + //SEG98 [52] (byte/signed word/word/dword/signed dword~) render_logo::$34 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_vbuc1 lda #$28*1 clc adc logo_idx sta _34 - //SEG99 [53] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$34 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG99 [53] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$34 -- pbuc1_derefidx_vbuz1=vbuz2 lda _34 ldy screen_idx sta SCREEN+$28*1,y jmp b9_2 //SEG100 render_logo::@9_2 b9_2: - //SEG101 [54] (byte/signed word/word/dword/signed dword~) render_logo::$38 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz2_plus_vbuc1 + //SEG101 [54] (byte/signed word/word/dword/signed dword~) render_logo::$38 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz2_plus_vbuc1 lda #$28*2 clc adc logo_idx sta _38 - //SEG102 [55] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$38 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG102 [55] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$38 -- pbuc1_derefidx_vbuz1=vbuz2 lda _38 ldy screen_idx sta SCREEN+$28*2,y jmp b9_3 //SEG103 render_logo::@9_3 b9_3: - //SEG104 [56] (byte/signed word/word/dword/signed dword~) render_logo::$42 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz2_plus_vbuc1 + //SEG104 [56] (byte/signed word/word/dword/signed dword~) render_logo::$42 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz2_plus_vbuc1 lda #$28*3 clc adc logo_idx sta _42 - //SEG105 [57] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$42 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG105 [57] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$42 -- pbuc1_derefidx_vbuz1=vbuz2 lda _42 ldy screen_idx sta SCREEN+$28*3,y jmp b9_4 //SEG106 render_logo::@9_4 b9_4: - //SEG107 [58] (byte/signed word/word/dword/signed dword~) render_logo::$46 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz2_plus_vbuc1 + //SEG107 [58] (byte/signed word/word/dword/signed dword~) render_logo::$46 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz2_plus_vbuc1 lda #$28*4 clc adc logo_idx sta _46 - //SEG108 [59] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$46 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG108 [59] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$46 -- pbuc1_derefidx_vbuz1=vbuz2 lda _46 ldy screen_idx sta SCREEN+$28*4,y jmp b9_5 //SEG109 render_logo::@9_5 b9_5: - //SEG110 [60] (byte/signed word/word/dword/signed dword~) render_logo::$50 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 -- vbuz1=vbuz2_plus_vbuc1 + //SEG110 [60] (byte/signed word/word/dword/signed dword~) render_logo::$50 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 -- vbuz1=vbuz2_plus_vbuc1 lda #$28*5 clc adc logo_idx sta _50 - //SEG111 [61] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$50 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG111 [61] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$50 -- pbuc1_derefidx_vbuz1=vbuz2 lda _50 ldy screen_idx sta SCREEN+$28*5,y @@ -4528,35 +4528,35 @@ render_logo: { jmp b5_1 //SEG120 render_logo::@5_1 b5_1: - //SEG121 [65] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG121 [65] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 ldy screen_idx lda #0 sta SCREEN+$28*1,y jmp b5_2 //SEG122 render_logo::@5_2 b5_2: - //SEG123 [66] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG123 [66] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 ldy screen_idx lda #0 sta SCREEN+$28*2,y jmp b5_3 //SEG124 render_logo::@5_3 b5_3: - //SEG125 [67] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG125 [67] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 ldy screen_idx lda #0 sta SCREEN+$28*3,y jmp b5_4 //SEG126 render_logo::@5_4 b5_4: - //SEG127 [68] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG127 [68] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 ldy screen_idx lda #0 sta SCREEN+$28*4,y jmp b5_5 //SEG128 render_logo::@5_5 b5_5: - //SEG129 [69] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG129 [69] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 ldy screen_idx lda #0 sta SCREEN+$28*5,y @@ -4589,7 +4589,7 @@ render_logo: { jmp b11 //SEG140 render_logo::@11 b11: - //SEG141 [74] if((byte) render_logo::logo_idx#11!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_logo::@14 -- vbuz1_neq_vbuc1_then_la1 + //SEG141 [74] if((byte) render_logo::logo_idx#11!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render_logo::@14 -- vbuz1_neq_vbuc1_then_la1 lda logo_idx_11 cmp #$28 bne b14 @@ -4600,7 +4600,7 @@ render_logo: { jmp b15 //SEG144 render_logo::@15 b15: - //SEG145 [76] if((byte) render_logo::screen_idx#15!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_logo::@18 -- vbuz1_neq_vbuc1_then_la1 + //SEG145 [76] if((byte) render_logo::screen_idx#15!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render_logo::@18 -- vbuz1_neq_vbuc1_then_la1 lda screen_idx_15 cmp #$28 bne b18 @@ -4614,35 +4614,35 @@ render_logo: { jmp b18_1 //SEG148 render_logo::@18_1 b18_1: - //SEG149 [78] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG149 [78] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 ldy screen_idx_15 lda #0 sta SCREEN+$28*1,y jmp b18_2 //SEG150 render_logo::@18_2 b18_2: - //SEG151 [79] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG151 [79] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 ldy screen_idx_15 lda #0 sta SCREEN+$28*2,y jmp b18_3 //SEG152 render_logo::@18_3 b18_3: - //SEG153 [80] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG153 [80] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 ldy screen_idx_15 lda #0 sta SCREEN+$28*3,y jmp b18_4 //SEG154 render_logo::@18_4 b18_4: - //SEG155 [81] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG155 [81] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 ldy screen_idx_15 lda #0 sta SCREEN+$28*4,y jmp b18_5 //SEG156 render_logo::@18_5 b18_5: - //SEG157 [82] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG157 [82] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 ldy screen_idx_15 lda #0 sta SCREEN+$28*5,y @@ -4664,60 +4664,60 @@ render_logo: { jmp b14_1 //SEG163 render_logo::@14_1 b14_1: - //SEG164 [86] (byte/signed word/word/dword/signed dword~) render_logo::$80 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_vbuc1 + //SEG164 [86] (byte/signed word/word/dword/signed dword~) render_logo::$80 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_vbuc1 lda #$28*1 clc adc logo_idx_11 sta _80 - //SEG165 [87] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$80 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG165 [87] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$80 -- pbuc1_derefidx_vbuz1=vbuz2 lda _80 ldy screen_idx_21 sta SCREEN+$28*1,y jmp b14_2 //SEG166 render_logo::@14_2 b14_2: - //SEG167 [88] (byte/signed word/word/dword/signed dword~) render_logo::$84 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz2_plus_vbuc1 + //SEG167 [88] (byte/signed word/word/dword/signed dword~) render_logo::$84 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz2_plus_vbuc1 lda #$28*2 clc adc logo_idx_11 sta _84 - //SEG168 [89] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$84 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG168 [89] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$84 -- pbuc1_derefidx_vbuz1=vbuz2 lda _84 ldy screen_idx_21 sta SCREEN+$28*2,y jmp b14_3 //SEG169 render_logo::@14_3 b14_3: - //SEG170 [90] (byte/signed word/word/dword/signed dword~) render_logo::$88 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz2_plus_vbuc1 + //SEG170 [90] (byte/signed word/word/dword/signed dword~) render_logo::$88 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz2_plus_vbuc1 lda #$28*3 clc adc logo_idx_11 sta _88 - //SEG171 [91] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$88 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG171 [91] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$88 -- pbuc1_derefidx_vbuz1=vbuz2 lda _88 ldy screen_idx_21 sta SCREEN+$28*3,y jmp b14_4 //SEG172 render_logo::@14_4 b14_4: - //SEG173 [92] (byte/signed word/word/dword/signed dword~) render_logo::$92 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz2_plus_vbuc1 + //SEG173 [92] (byte/signed word/word/dword/signed dword~) render_logo::$92 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz2_plus_vbuc1 lda #$28*4 clc adc logo_idx_11 sta _92 - //SEG174 [93] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$92 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG174 [93] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$92 -- pbuc1_derefidx_vbuz1=vbuz2 lda _92 ldy screen_idx_21 sta SCREEN+$28*4,y jmp b14_5 //SEG175 render_logo::@14_5 b14_5: - //SEG176 [94] (byte/signed word/word/dword/signed dword~) render_logo::$96 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 -- vbuz1=vbuz2_plus_vbuc1 + //SEG176 [94] (byte/signed word/word/dword/signed dword~) render_logo::$96 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 -- vbuz1=vbuz2_plus_vbuc1 lda #$28*5 clc adc logo_idx_11 sta _96 - //SEG177 [95] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$96 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG177 [95] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$96 -- pbuc1_derefidx_vbuz1=vbuz2 lda _96 ldy screen_idx_21 sta SCREEN+$28*5,y @@ -5313,7 +5313,7 @@ sin16s: { //SEG304 [180] phi (byte) mulu16_sel::select#5 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@9->mulu16_sel#0] -- vbuz1=vbuc1 lda #1 sta mulu16_sel.select - //SEG305 [180] phi (word) mulu16_sel::v2#5 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 + //SEG305 [180] phi (word) mulu16_sel::v2#5 = (dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 lda #<$10000/6 sta mulu16_sel.v2 lda #>$10000/6 @@ -5667,7 +5667,7 @@ divr16u: { //SEG389 [202] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 -- vbuz1=_hi_vwuz2 lda dividend+1 sta _1 - //SEG390 [203] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG390 [203] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuz1=vbuz2_band_vbuc1 lda #$80 and _1 sta _2 @@ -5730,7 +5730,7 @@ divr16u: { b3: //SEG407 [213] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG408 [214] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG408 [214] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b3 @@ -5755,7 +5755,7 @@ fill: { .label end = $b3 .label addr = $35 .label val = $34 - //SEG414 [218] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 -- pbuz1=pbuz2_plus_vwuc1 + //SEG414 [218] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) $3e8 -- pbuz1=pbuz2_plus_vwuc1 lda addr clc adc #<$3e8 @@ -5809,7 +5809,7 @@ Statement [8] *((const byte*) BGCOL#0) ← *((const byte*) BGCOL2#0) [ ] ( main: Statement [9] *((const byte*) BGCOL3#0) ← (const byte) BLACK#0 [ ] ( main:3 [ ] ) always clobbers reg byte a Statement [11] *((const byte*) D018#0) ← (const byte) main::toD0181_return#0 [ ] ( main:3 [ ] ) always clobbers reg byte a Statement [12] *((const byte*) D016#0) ← (const byte) VIC_MCM#0 [ ] ( main:3 [ ] ) always clobbers reg byte a -Statement [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto loop::@4 [ xsin_idx#11 ] ( main:3::loop:23 [ xsin_idx#11 ] ) always clobbers reg byte a +Statement [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto loop::@4 [ xsin_idx#11 ] ( main:3::loop:23 [ xsin_idx#11 ] ) always clobbers reg byte a Statement [29] (signed word*~) loop::$1 ← (const signed word[XSIN_SIZE#0]) xsin#0 + (word) xsin_idx#11 [ xsin_idx#11 loop::$1 ] ( main:3::loop:23 [ xsin_idx#11 loop::$1 ] ) always clobbers reg byte a Statement [30] (signed word) loop::xpos#0 ← *((signed word*~) loop::$1) [ xsin_idx#11 loop::xpos#0 ] ( main:3::loop:23 [ xsin_idx#11 loop::xpos#0 ] ) always clobbers reg byte a reg byte y Statement [31] (signed word) render_logo::xpos#0 ← (signed word) loop::xpos#0 [ xsin_idx#11 render_logo::xpos#0 ] ( main:3::loop:23 [ xsin_idx#11 render_logo::xpos#0 ] ) always clobbers reg byte a @@ -5822,33 +5822,33 @@ Statement [42] (signed word~) render_logo::$3 ← (signed word) render_logo::xpo Statement [43] (signed byte) render_logo::x_char#0 ← ((signed byte)) (signed word~) render_logo::$3 [ render_logo::xpos#0 render_logo::x_char#0 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::xpos#0 render_logo::x_char#0 ] ) always clobbers reg byte a Statement [44] if((signed word) render_logo::xpos#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_logo::@1 [ render_logo::x_char#0 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::x_char#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:66 [ render_logo::x_char#0 ] -Statement [52] (byte/signed word/word/dword/signed dword~) render_logo::$34 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 [ render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$34 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$34 ] ) always clobbers reg byte a +Statement [52] (byte/signed word/word/dword/signed dword~) render_logo::$34 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 [ render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$34 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$34 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ render_logo::screen_idx#10 render_logo::screen_idx#4 render_logo::screen_idx#18 render_logo::screen_idx#3 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:6 [ render_logo::logo_idx#10 render_logo::logo_idx#3 ] -Statement [54] (byte/signed word/word/dword/signed dword~) render_logo::$38 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 [ render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$38 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$38 ] ) always clobbers reg byte a -Statement [56] (byte/signed word/word/dword/signed dword~) render_logo::$42 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 [ render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$42 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$42 ] ) always clobbers reg byte a -Statement [58] (byte/signed word/word/dword/signed dword~) render_logo::$46 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 [ render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$46 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$46 ] ) always clobbers reg byte a -Statement [60] (byte/signed word/word/dword/signed dword~) render_logo::$50 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 [ render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$50 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$50 ] ) always clobbers reg byte a +Statement [54] (byte/signed word/word/dword/signed dword~) render_logo::$38 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 [ render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$38 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$38 ] ) always clobbers reg byte a +Statement [56] (byte/signed word/word/dword/signed dword~) render_logo::$42 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 [ render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$42 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$42 ] ) always clobbers reg byte a +Statement [58] (byte/signed word/word/dword/signed dword~) render_logo::$46 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 [ render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$46 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$46 ] ) always clobbers reg byte a +Statement [60] (byte/signed word/word/dword/signed dword~) render_logo::$50 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 [ render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$50 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$50 ] ) always clobbers reg byte a Statement [64] *((const byte*) SCREEN#0 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#18 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#18 ] ) always clobbers reg byte a -Statement [65] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#18 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#18 ] ) always clobbers reg byte a -Statement [66] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#18 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#18 ] ) always clobbers reg byte a -Statement [67] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#18 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#18 ] ) always clobbers reg byte a -Statement [68] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#18 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#18 ] ) always clobbers reg byte a -Statement [69] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#18 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#18 ] ) always clobbers reg byte a +Statement [65] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#18 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#18 ] ) always clobbers reg byte a +Statement [66] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#18 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#18 ] ) always clobbers reg byte a +Statement [67] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#18 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#18 ] ) always clobbers reg byte a +Statement [68] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#18 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#18 ] ) always clobbers reg byte a +Statement [69] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#18 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#18 ] ) always clobbers reg byte a Statement [71] (signed byte~) render_logo::$17 ← - (signed byte) render_logo::x_char#0 [ render_logo::$17 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::$17 ] ) always clobbers reg byte a Statement [77] *((const byte*) SCREEN#0 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#15 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#15 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:8 [ render_logo::screen_idx#15 render_logo::screen_idx#21 render_logo::screen_idx#5 render_logo::screen_idx#6 ] -Statement [78] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#15 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#15 ] ) always clobbers reg byte a -Statement [79] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#15 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#15 ] ) always clobbers reg byte a -Statement [80] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#15 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#15 ] ) always clobbers reg byte a -Statement [81] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#15 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#15 ] ) always clobbers reg byte a -Statement [82] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#15 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#15 ] ) always clobbers reg byte a -Statement [86] (byte/signed word/word/dword/signed dword~) render_logo::$80 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 [ render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$80 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$80 ] ) always clobbers reg byte a +Statement [78] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#15 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#15 ] ) always clobbers reg byte a +Statement [79] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#15 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#15 ] ) always clobbers reg byte a +Statement [80] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#15 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#15 ] ) always clobbers reg byte a +Statement [81] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#15 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#15 ] ) always clobbers reg byte a +Statement [82] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#15 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#15 ] ) always clobbers reg byte a +Statement [86] (byte/signed word/word/dword/signed dword~) render_logo::$80 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 [ render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$80 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$80 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:7 [ render_logo::logo_idx#11 render_logo::logo_idx#14 render_logo::logo_idx#4 ] -Statement [88] (byte/signed word/word/dword/signed dword~) render_logo::$84 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 [ render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$84 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$84 ] ) always clobbers reg byte a -Statement [90] (byte/signed word/word/dword/signed dword~) render_logo::$88 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 [ render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$88 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$88 ] ) always clobbers reg byte a -Statement [92] (byte/signed word/word/dword/signed dword~) render_logo::$92 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 [ render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$92 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$92 ] ) always clobbers reg byte a -Statement [94] (byte/signed word/word/dword/signed dword~) render_logo::$96 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 [ render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$96 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$96 ] ) always clobbers reg byte a +Statement [88] (byte/signed word/word/dword/signed dword~) render_logo::$84 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 [ render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$84 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$84 ] ) always clobbers reg byte a +Statement [90] (byte/signed word/word/dword/signed dword~) render_logo::$88 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 [ render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$88 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$88 ] ) always clobbers reg byte a +Statement [92] (byte/signed word/word/dword/signed dword~) render_logo::$92 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 [ render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$92 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$92 ] ) always clobbers reg byte a +Statement [94] (byte/signed word/word/dword/signed dword~) render_logo::$96 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 [ render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$96 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$96 ] ) always clobbers reg byte a Statement [100] (dword) div32u16u::return#2 ← (dword) div32u16u::return#0 [ div32u16u::return#2 ] ( main:3::sin16s_gen2:21 [ div32u16u::return#2 ] ) always clobbers reg byte a Statement [101] (dword) sin16s_gen2::step#0 ← (dword) div32u16u::return#2 [ sin16s_gen2::step#0 ] ( main:3::sin16s_gen2:21 [ sin16s_gen2::step#0 ] ) always clobbers reg byte a Statement [103] (dword) sin16s::x#0 ← (dword) sin16s_gen2::x#2 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::x#0 ] ( main:3::sin16s_gen2:21 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::x#0 ] ) always clobbers reg byte a @@ -5921,12 +5921,12 @@ Statement [196] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ d Statement [197] (dword) div32u16u::return#0 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#0 ] ( main:3::sin16s_gen2:21::div32u16u:99 [ div32u16u::return#0 ] ) always clobbers reg byte a Statement [202] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:3::sin16s_gen2:21::div32u16u:99::divr16u:190 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:3::sin16s_gen2:21::div32u16u:99::divr16u:194 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:51 [ divr16u::i#2 divr16u::i#1 ] -Statement [203] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:3::sin16s_gen2:21::div32u16u:99::divr16u:190 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:3::sin16s_gen2:21::div32u16u:99::divr16u:194 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a +Statement [203] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:3::sin16s_gen2:21::div32u16u:99::divr16u:190 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:3::sin16s_gen2:21::div32u16u:99::divr16u:194 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a Statement [205] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:3::sin16s_gen2:21::div32u16u:99::divr16u:190 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:3::sin16s_gen2:21::div32u16u:99::divr16u:194 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a Statement [209] if((word) divr16u::rem#6<(const word) XSIN_SIZE#0) goto divr16u::@3 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:3::sin16s_gen2:21::div32u16u:99::divr16u:190 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:3::sin16s_gen2:21::div32u16u:99::divr16u:194 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) always clobbers reg byte a Statement [211] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (const word) XSIN_SIZE#0 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:3::sin16s_gen2:21::div32u16u:99::divr16u:190 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:3::sin16s_gen2:21::div32u16u:99::divr16u:194 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a Statement [215] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:3::sin16s_gen2:21::div32u16u:99::divr16u:190 [ divr16u::return#0 rem16u#1 ] main:3::sin16s_gen2:21::div32u16u:99::divr16u:194 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) always clobbers reg byte a -Statement [218] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 [ fill::addr#0 fill::val#3 fill::end#0 ] ( main:3::fill:13 [ fill::addr#0 fill::val#3 fill::end#0 ] main:3::fill:15 [ fill::addr#0 fill::val#3 fill::end#0 ] ) always clobbers reg byte a +Statement [218] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) $3e8 [ fill::addr#0 fill::val#3 fill::end#0 ] ( main:3::fill:13 [ fill::addr#0 fill::val#3 fill::end#0 ] main:3::fill:15 [ fill::addr#0 fill::val#3 fill::end#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:52 [ fill::val#3 ] Statement [220] *((byte*) fill::addr#2) ← (byte) fill::val#3 [ fill::val#3 fill::end#0 fill::addr#2 ] ( main:3::fill:13 [ fill::val#3 fill::end#0 fill::addr#2 ] main:3::fill:15 [ fill::val#3 fill::end#0 fill::addr#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:52 [ fill::val#3 ] @@ -5937,7 +5937,7 @@ Statement [8] *((const byte*) BGCOL#0) ← *((const byte*) BGCOL2#0) [ ] ( main: Statement [9] *((const byte*) BGCOL3#0) ← (const byte) BLACK#0 [ ] ( main:3 [ ] ) always clobbers reg byte a Statement [11] *((const byte*) D018#0) ← (const byte) main::toD0181_return#0 [ ] ( main:3 [ ] ) always clobbers reg byte a Statement [12] *((const byte*) D016#0) ← (const byte) VIC_MCM#0 [ ] ( main:3 [ ] ) always clobbers reg byte a -Statement [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto loop::@4 [ xsin_idx#11 ] ( main:3::loop:23 [ xsin_idx#11 ] ) always clobbers reg byte a +Statement [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto loop::@4 [ xsin_idx#11 ] ( main:3::loop:23 [ xsin_idx#11 ] ) always clobbers reg byte a Statement [29] (signed word*~) loop::$1 ← (const signed word[XSIN_SIZE#0]) xsin#0 + (word) xsin_idx#11 [ xsin_idx#11 loop::$1 ] ( main:3::loop:23 [ xsin_idx#11 loop::$1 ] ) always clobbers reg byte a Statement [30] (signed word) loop::xpos#0 ← *((signed word*~) loop::$1) [ xsin_idx#11 loop::xpos#0 ] ( main:3::loop:23 [ xsin_idx#11 loop::xpos#0 ] ) always clobbers reg byte a reg byte y Statement [31] (signed word) render_logo::xpos#0 ← (signed word) loop::xpos#0 [ xsin_idx#11 render_logo::xpos#0 ] ( main:3::loop:23 [ xsin_idx#11 render_logo::xpos#0 ] ) always clobbers reg byte a @@ -5950,30 +5950,30 @@ Statement [42] (signed word~) render_logo::$3 ← (signed word) render_logo::xpo Statement [43] (signed byte) render_logo::x_char#0 ← ((signed byte)) (signed word~) render_logo::$3 [ render_logo::xpos#0 render_logo::x_char#0 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::xpos#0 render_logo::x_char#0 ] ) always clobbers reg byte a Statement [44] if((signed word) render_logo::xpos#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_logo::@1 [ render_logo::x_char#0 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::x_char#0 ] ) always clobbers reg byte a Statement [50] (byte/signed word/word/dword/signed dword~) render_logo::$15 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$15 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$15 ] ) always clobbers reg byte a -Statement [52] (byte/signed word/word/dword/signed dword~) render_logo::$34 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 [ render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$34 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$34 ] ) always clobbers reg byte a -Statement [54] (byte/signed word/word/dword/signed dword~) render_logo::$38 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 [ render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$38 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$38 ] ) always clobbers reg byte a -Statement [56] (byte/signed word/word/dword/signed dword~) render_logo::$42 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 [ render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$42 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$42 ] ) always clobbers reg byte a -Statement [58] (byte/signed word/word/dword/signed dword~) render_logo::$46 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 [ render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$46 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$46 ] ) always clobbers reg byte a -Statement [60] (byte/signed word/word/dword/signed dword~) render_logo::$50 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 [ render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$50 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$50 ] ) always clobbers reg byte a +Statement [52] (byte/signed word/word/dword/signed dword~) render_logo::$34 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 [ render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$34 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$34 ] ) always clobbers reg byte a +Statement [54] (byte/signed word/word/dword/signed dword~) render_logo::$38 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 [ render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$38 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$38 ] ) always clobbers reg byte a +Statement [56] (byte/signed word/word/dword/signed dword~) render_logo::$42 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 [ render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$42 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$42 ] ) always clobbers reg byte a +Statement [58] (byte/signed word/word/dword/signed dword~) render_logo::$46 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 [ render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$46 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$46 ] ) always clobbers reg byte a +Statement [60] (byte/signed word/word/dword/signed dword~) render_logo::$50 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 [ render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$50 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#10 render_logo::logo_idx#10 render_logo::$50 ] ) always clobbers reg byte a Statement [64] *((const byte*) SCREEN#0 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#18 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#18 ] ) always clobbers reg byte a -Statement [65] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#18 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#18 ] ) always clobbers reg byte a -Statement [66] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#18 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#18 ] ) always clobbers reg byte a -Statement [67] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#18 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#18 ] ) always clobbers reg byte a -Statement [68] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#18 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#18 ] ) always clobbers reg byte a -Statement [69] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#18 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#18 ] ) always clobbers reg byte a +Statement [65] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#18 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#18 ] ) always clobbers reg byte a +Statement [66] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#18 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#18 ] ) always clobbers reg byte a +Statement [67] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#18 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#18 ] ) always clobbers reg byte a +Statement [68] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#18 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#18 ] ) always clobbers reg byte a +Statement [69] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#18 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#18 ] ) always clobbers reg byte a Statement [71] (signed byte~) render_logo::$17 ← - (signed byte) render_logo::x_char#0 [ render_logo::$17 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::$17 ] ) always clobbers reg byte a Statement [77] *((const byte*) SCREEN#0 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#15 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#15 ] ) always clobbers reg byte a -Statement [78] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#15 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#15 ] ) always clobbers reg byte a -Statement [79] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#15 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#15 ] ) always clobbers reg byte a -Statement [80] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#15 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#15 ] ) always clobbers reg byte a -Statement [81] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#15 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#15 ] ) always clobbers reg byte a -Statement [82] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#15 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#15 ] ) always clobbers reg byte a +Statement [78] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#15 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#15 ] ) always clobbers reg byte a +Statement [79] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#15 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#15 ] ) always clobbers reg byte a +Statement [80] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#15 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#15 ] ) always clobbers reg byte a +Statement [81] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#15 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#15 ] ) always clobbers reg byte a +Statement [82] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#15 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::screen_idx#15 ] ) always clobbers reg byte a Statement [84] (byte/signed word/word/dword/signed dword~) render_logo::$23 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$23 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$23 ] ) always clobbers reg byte a -Statement [86] (byte/signed word/word/dword/signed dword~) render_logo::$80 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 [ render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$80 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$80 ] ) always clobbers reg byte a -Statement [88] (byte/signed word/word/dword/signed dword~) render_logo::$84 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 [ render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$84 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$84 ] ) always clobbers reg byte a -Statement [90] (byte/signed word/word/dword/signed dword~) render_logo::$88 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 [ render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$88 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$88 ] ) always clobbers reg byte a -Statement [92] (byte/signed word/word/dword/signed dword~) render_logo::$92 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 [ render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$92 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$92 ] ) always clobbers reg byte a -Statement [94] (byte/signed word/word/dword/signed dword~) render_logo::$96 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 [ render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$96 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$96 ] ) always clobbers reg byte a +Statement [86] (byte/signed word/word/dword/signed dword~) render_logo::$80 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 [ render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$80 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$80 ] ) always clobbers reg byte a +Statement [88] (byte/signed word/word/dword/signed dword~) render_logo::$84 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 [ render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$84 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$84 ] ) always clobbers reg byte a +Statement [90] (byte/signed word/word/dword/signed dword~) render_logo::$88 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 [ render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$88 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$88 ] ) always clobbers reg byte a +Statement [92] (byte/signed word/word/dword/signed dword~) render_logo::$92 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 [ render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$92 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$92 ] ) always clobbers reg byte a +Statement [94] (byte/signed word/word/dword/signed dword~) render_logo::$96 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 [ render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$96 ] ( main:3::loop:23::render_logo:32 [ xsin_idx#11 render_logo::logo_idx#11 render_logo::screen_idx#21 render_logo::$96 ] ) always clobbers reg byte a Statement [100] (dword) div32u16u::return#2 ← (dword) div32u16u::return#0 [ div32u16u::return#2 ] ( main:3::sin16s_gen2:21 [ div32u16u::return#2 ] ) always clobbers reg byte a Statement [101] (dword) sin16s_gen2::step#0 ← (dword) div32u16u::return#2 [ sin16s_gen2::step#0 ] ( main:3::sin16s_gen2:21 [ sin16s_gen2::step#0 ] ) always clobbers reg byte a Statement [103] (dword) sin16s::x#0 ← (dword) sin16s_gen2::x#2 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::x#0 ] ( main:3::sin16s_gen2:21 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::x#0 ] ) always clobbers reg byte a @@ -6042,12 +6042,12 @@ Statement [195] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16 Statement [196] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:3::sin16s_gen2:21::div32u16u:99 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ) always clobbers reg byte a Statement [197] (dword) div32u16u::return#0 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#0 ] ( main:3::sin16s_gen2:21::div32u16u:99 [ div32u16u::return#0 ] ) always clobbers reg byte a Statement [202] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:3::sin16s_gen2:21::div32u16u:99::divr16u:190 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:3::sin16s_gen2:21::div32u16u:99::divr16u:194 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a -Statement [203] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:3::sin16s_gen2:21::div32u16u:99::divr16u:190 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:3::sin16s_gen2:21::div32u16u:99::divr16u:194 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a +Statement [203] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:3::sin16s_gen2:21::div32u16u:99::divr16u:190 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:3::sin16s_gen2:21::div32u16u:99::divr16u:194 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a Statement [205] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:3::sin16s_gen2:21::div32u16u:99::divr16u:190 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:3::sin16s_gen2:21::div32u16u:99::divr16u:194 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a Statement [209] if((word) divr16u::rem#6<(const word) XSIN_SIZE#0) goto divr16u::@3 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:3::sin16s_gen2:21::div32u16u:99::divr16u:190 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:3::sin16s_gen2:21::div32u16u:99::divr16u:194 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) always clobbers reg byte a Statement [211] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (const word) XSIN_SIZE#0 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:3::sin16s_gen2:21::div32u16u:99::divr16u:190 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:3::sin16s_gen2:21::div32u16u:99::divr16u:194 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a Statement [215] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:3::sin16s_gen2:21::div32u16u:99::divr16u:190 [ divr16u::return#0 rem16u#1 ] main:3::sin16s_gen2:21::div32u16u:99::divr16u:194 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) always clobbers reg byte a -Statement [218] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 [ fill::addr#0 fill::val#3 fill::end#0 ] ( main:3::fill:13 [ fill::addr#0 fill::val#3 fill::end#0 ] main:3::fill:15 [ fill::addr#0 fill::val#3 fill::end#0 ] ) always clobbers reg byte a +Statement [218] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) $3e8 [ fill::addr#0 fill::val#3 fill::end#0 ] ( main:3::fill:13 [ fill::addr#0 fill::val#3 fill::end#0 ] main:3::fill:15 [ fill::addr#0 fill::val#3 fill::end#0 ] ) always clobbers reg byte a Statement [220] *((byte*) fill::addr#2) ← (byte) fill::val#3 [ fill::val#3 fill::end#0 fill::addr#2 ] ( main:3::fill:13 [ fill::val#3 fill::end#0 fill::addr#2 ] main:3::fill:15 [ fill::val#3 fill::end#0 fill::addr#2 ] ) always clobbers reg byte a reg byte y Statement [222] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 [ fill::val#3 fill::end#0 fill::addr#1 ] ( main:3::fill:13 [ fill::val#3 fill::end#0 fill::addr#1 ] main:3::fill:15 [ fill::val#3 fill::end#0 fill::addr#1 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ main::ch#2 main::ch#1 ] : zp ZP_BYTE:2 , reg byte a , reg byte x , reg byte y , @@ -6394,7 +6394,7 @@ main: { sta SCREEN,x //SEG38 [18] (byte) main::ch#1 ← ++ (byte) main::ch#2 -- vbuxx=_inc_vbuxx inx - //SEG39 [19] if((byte) main::ch#1!=(byte/word/signed word/dword/signed dword) 240) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG39 [19] if((byte) main::ch#1!=(byte/word/signed word/dword/signed dword) $f0) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$f0 bne b1_from_b1 //SEG40 [20] phi from main::@1 to main::@2 [phi:main::@1->main::@2] @@ -6439,7 +6439,7 @@ loop: { // Wait for the raster to reach the bottom of the screen //SEG54 loop::@4 b4: - //SEG55 [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto loop::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG55 [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto loop::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -6565,7 +6565,7 @@ render_logo: { jmp b6 //SEG90 render_logo::@6 b6: - //SEG91 [48] if((byte) render_logo::screen_idx#10!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_logo::@9 -- vbuxx_neq_vbuc1_then_la1 + //SEG91 [48] if((byte) render_logo::screen_idx#10!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render_logo::@9 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b9 jmp breturn @@ -6582,47 +6582,47 @@ render_logo: { jmp b9_1 //SEG97 render_logo::@9_1 b9_1: - //SEG98 [52] (byte/signed word/word/dword/signed dword~) render_logo::$34 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuyy_plus_vbuc1 + //SEG98 [52] (byte/signed word/word/dword/signed dword~) render_logo::$34 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuyy_plus_vbuc1 tya clc adc #$28*1 - //SEG99 [53] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$34 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG99 [53] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$34 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$28*1,x jmp b9_2 //SEG100 render_logo::@9_2 b9_2: - //SEG101 [54] (byte/signed word/word/dword/signed dword~) render_logo::$38 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuyy_plus_vbuc1 + //SEG101 [54] (byte/signed word/word/dword/signed dword~) render_logo::$38 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuyy_plus_vbuc1 tya clc adc #$28*2 - //SEG102 [55] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$38 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG102 [55] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$38 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$28*2,x jmp b9_3 //SEG103 render_logo::@9_3 b9_3: - //SEG104 [56] (byte/signed word/word/dword/signed dword~) render_logo::$42 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuaa=vbuyy_plus_vbuc1 + //SEG104 [56] (byte/signed word/word/dword/signed dword~) render_logo::$42 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuaa=vbuyy_plus_vbuc1 tya clc adc #$28*3 - //SEG105 [57] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$42 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG105 [57] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$42 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$28*3,x jmp b9_4 //SEG106 render_logo::@9_4 b9_4: - //SEG107 [58] (byte/signed word/word/dword/signed dword~) render_logo::$46 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuaa=vbuyy_plus_vbuc1 + //SEG107 [58] (byte/signed word/word/dword/signed dword~) render_logo::$46 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuaa=vbuyy_plus_vbuc1 tya clc adc #$28*4 - //SEG108 [59] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$46 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG108 [59] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$46 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$28*4,x jmp b9_5 //SEG109 render_logo::@9_5 b9_5: - //SEG110 [60] (byte/signed word/word/dword/signed dword~) render_logo::$50 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 -- vbuaa=vbuyy_plus_vbuc1 + //SEG110 [60] (byte/signed word/word/dword/signed dword~) render_logo::$50 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 -- vbuaa=vbuyy_plus_vbuc1 tya clc adc #$28*5 - //SEG111 [61] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$50 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG111 [61] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$50 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$28*5,x jmp b26 //SEG112 render_logo::@26 @@ -6644,31 +6644,31 @@ render_logo: { jmp b5_1 //SEG120 render_logo::@5_1 b5_1: - //SEG121 [65] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG121 [65] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #0 sta SCREEN+$28*1,x jmp b5_2 //SEG122 render_logo::@5_2 b5_2: - //SEG123 [66] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG123 [66] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #0 sta SCREEN+$28*2,x jmp b5_3 //SEG124 render_logo::@5_3 b5_3: - //SEG125 [67] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG125 [67] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #0 sta SCREEN+$28*3,x jmp b5_4 //SEG126 render_logo::@5_4 b5_4: - //SEG127 [68] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG127 [68] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #0 sta SCREEN+$28*4,x jmp b5_5 //SEG128 render_logo::@5_5 b5_5: - //SEG129 [69] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG129 [69] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #0 sta SCREEN+$28*5,x jmp b22 @@ -6697,7 +6697,7 @@ render_logo: { jmp b11 //SEG140 render_logo::@11 b11: - //SEG141 [74] if((byte) render_logo::logo_idx#11!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_logo::@14 -- vbuyy_neq_vbuc1_then_la1 + //SEG141 [74] if((byte) render_logo::logo_idx#11!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render_logo::@14 -- vbuyy_neq_vbuc1_then_la1 cpy #$28 bne b14 //SEG142 [75] phi from render_logo::@11 render_logo::@35 to render_logo::@15 [phi:render_logo::@11/render_logo::@35->render_logo::@15] @@ -6707,7 +6707,7 @@ render_logo: { jmp b15 //SEG144 render_logo::@15 b15: - //SEG145 [76] if((byte) render_logo::screen_idx#15!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_logo::@18 -- vbuxx_neq_vbuc1_then_la1 + //SEG145 [76] if((byte) render_logo::screen_idx#15!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render_logo::@18 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b18 jmp breturn @@ -6719,31 +6719,31 @@ render_logo: { jmp b18_1 //SEG148 render_logo::@18_1 b18_1: - //SEG149 [78] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG149 [78] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #0 sta SCREEN+$28*1,x jmp b18_2 //SEG150 render_logo::@18_2 b18_2: - //SEG151 [79] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG151 [79] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #0 sta SCREEN+$28*2,x jmp b18_3 //SEG152 render_logo::@18_3 b18_3: - //SEG153 [80] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG153 [80] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #0 sta SCREEN+$28*3,x jmp b18_4 //SEG154 render_logo::@18_4 b18_4: - //SEG155 [81] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG155 [81] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #0 sta SCREEN+$28*4,x jmp b18_5 //SEG156 render_logo::@18_5 b18_5: - //SEG157 [82] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG157 [82] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #0 sta SCREEN+$28*5,x jmp b35 @@ -6761,47 +6761,47 @@ render_logo: { jmp b14_1 //SEG163 render_logo::@14_1 b14_1: - //SEG164 [86] (byte/signed word/word/dword/signed dword~) render_logo::$80 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuyy_plus_vbuc1 + //SEG164 [86] (byte/signed word/word/dword/signed dword~) render_logo::$80 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuyy_plus_vbuc1 tya clc adc #$28*1 - //SEG165 [87] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$80 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG165 [87] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$80 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$28*1,x jmp b14_2 //SEG166 render_logo::@14_2 b14_2: - //SEG167 [88] (byte/signed word/word/dword/signed dword~) render_logo::$84 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuyy_plus_vbuc1 + //SEG167 [88] (byte/signed word/word/dword/signed dword~) render_logo::$84 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuyy_plus_vbuc1 tya clc adc #$28*2 - //SEG168 [89] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$84 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG168 [89] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$84 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$28*2,x jmp b14_3 //SEG169 render_logo::@14_3 b14_3: - //SEG170 [90] (byte/signed word/word/dword/signed dword~) render_logo::$88 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuaa=vbuyy_plus_vbuc1 + //SEG170 [90] (byte/signed word/word/dword/signed dword~) render_logo::$88 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuaa=vbuyy_plus_vbuc1 tya clc adc #$28*3 - //SEG171 [91] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$88 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG171 [91] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$88 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$28*3,x jmp b14_4 //SEG172 render_logo::@14_4 b14_4: - //SEG173 [92] (byte/signed word/word/dword/signed dword~) render_logo::$92 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuaa=vbuyy_plus_vbuc1 + //SEG173 [92] (byte/signed word/word/dword/signed dword~) render_logo::$92 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuaa=vbuyy_plus_vbuc1 tya clc adc #$28*4 - //SEG174 [93] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$92 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG174 [93] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$92 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$28*4,x jmp b14_5 //SEG175 render_logo::@14_5 b14_5: - //SEG176 [94] (byte/signed word/word/dword/signed dword~) render_logo::$96 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 -- vbuaa=vbuyy_plus_vbuc1 + //SEG176 [94] (byte/signed word/word/dword/signed dword~) render_logo::$96 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 -- vbuaa=vbuyy_plus_vbuc1 tya clc adc #$28*5 - //SEG177 [95] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$96 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG177 [95] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$96 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$28*5,x jmp b31 //SEG178 render_logo::@31 @@ -7296,7 +7296,7 @@ sin16s: { mulu16_sel_from_b9: //SEG304 [180] phi (byte) mulu16_sel::select#5 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@9->mulu16_sel#0] -- vbuxx=vbuc1 ldx #1 - //SEG305 [180] phi (word) mulu16_sel::v2#5 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 + //SEG305 [180] phi (word) mulu16_sel::v2#5 = (dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 lda #<$10000/6 sta mulu16_sel.v2 lda #>$10000/6 @@ -7556,7 +7556,7 @@ divr16u: { rol rem+1 //SEG389 [202] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 -- vbuaa=_hi_vwuz1 lda dividend+1 - //SEG390 [203] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuaa_band_vbuc1 + //SEG390 [203] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 //SEG391 [204] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuaa_eq_0_then_la1 cmp #0 @@ -7616,7 +7616,7 @@ divr16u: { b3: //SEG407 [213] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuxx=_inc_vbuxx inx - //SEG408 [214] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG408 [214] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1_from_b3 jmp b6 @@ -7635,7 +7635,7 @@ divr16u: { fill: { .label end = 8 .label addr = 2 - //SEG414 [218] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 -- pbuz1=pbuz2_plus_vwuc1 + //SEG414 [218] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) $3e8 -- pbuz1=pbuz2_plus_vwuc1 lda addr clc adc #<$3e8 @@ -7959,18 +7959,18 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL1 (byte*) BGCOL2 -(const byte*) BGCOL2#0 BGCOL2 = ((byte*))(word/dword/signed dword) 53282 +(const byte*) BGCOL2#0 BGCOL2 = ((byte*))(word/dword/signed dword) $d022 (byte*) BGCOL3 -(const byte*) BGCOL3#0 BGCOL3 = ((byte*))(word/dword/signed dword) 53283 +(const byte*) BGCOL3#0 BGCOL3 = ((byte*))(word/dword/signed dword) $d023 (byte*) BGCOL4 (byte) BLACK (const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN (byte*) CIA1_INTERRUPT @@ -7985,15 +7985,15 @@ FINAL SYMBOL TABLE (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR (byte*) COLS -(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) 55296 +(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) $d800 (byte) CYAN (byte*) D011 (byte*) D016 -(const byte*) D016#0 D016 = ((byte*))(word/dword/signed dword) 53270 +(const byte*) D016#0 D016 = ((byte*))(word/dword/signed dword) $d016 (byte*) D018 -(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) 53272 +(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) $d018 (byte) DARK_GREY -(const byte) DARK_GREY#0 DARK_GREY = (byte/signed byte/word/signed word/dword/signed dword) 11 +(const byte) DARK_GREY#0 DARK_GREY = (byte/signed byte/word/signed word/dword/signed dword) $b (byte) GREEN (byte) GREY (void()**) HARDWARE_IRQ @@ -8010,18 +8010,18 @@ FINAL SYMBOL TABLE (byte) LIGHT_GREEN (byte) LIGHT_GREY (byte*) LOGO -(const byte*) LOGO#0 LOGO = ((byte*))(word/signed word/dword/signed dword) 8192 +(const byte*) LOGO#0 LOGO = ((byte*))(word/signed word/dword/signed dword) $2000 (byte) ORANGE (word) PI2_u4f12 (dword) PI2_u4f28 -(const dword) PI2_u4f28#0 PI2_u4f28 = (dword/signed dword) 1686629713 +(const dword) PI2_u4f28#0 PI2_u4f28 = (dword/signed dword) $6487ed51 (byte) PINK (word) PI_HALF_u4f12 (dword) PI_HALF_u4f28 -(const dword) PI_HALF_u4f28#0 PI_HALF_u4f28 = (dword/signed dword) 421657428 +(const dword) PI_HALF_u4f28#0 PI_HALF_u4f28 = (dword/signed dword) $1921fb54 (word) PI_u4f12 (dword) PI_u4f28 -(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) 843314857 +(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) $3243f6a9 (byte*) PROCPORT (byte) PROCPORT_BASIC_KERNEL_IO (byte*) PROCPORT_DDR @@ -8032,10 +8032,10 @@ FINAL SYMBOL TABLE (byte) PROCPORT_RAM_IO (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE (byte*) SPRITES_EXPAND_X @@ -8055,14 +8055,14 @@ FINAL SYMBOL TABLE (byte) VIC_DEN (byte) VIC_ECM (byte) VIC_MCM -(const byte) VIC_MCM#0 VIC_MCM = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_MCM#0 VIC_MCM = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte*) VIC_MEMORY (byte) VIC_RSEL (byte) VIC_RST8 (byte) WHITE (const byte) WHITE#0 WHITE = (byte/signed byte/word/signed word/dword/signed dword) 1 (word) XSIN_SIZE -(const word) XSIN_SIZE#0 XSIN_SIZE = (word/signed word/dword/signed dword) 512 +(const word) XSIN_SIZE#0 XSIN_SIZE = (word/signed word/dword/signed dword) $200 (byte) YELLOW (dword()) div32u16u((dword) div32u16u::dividend , (word) div32u16u::divisor) (label) div32u16u::@2 @@ -8158,7 +8158,7 @@ FINAL SYMBOL TABLE (byte~) main::toD0181_$8 (byte*) main::toD0181_gfx (byte) main::toD0181_return -(const byte) main::toD0181_return#0 toD0181_return = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) LOGO#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte) main::toD0181_return#0 toD0181_return = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) LOGO#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) $f (byte*) main::toD0181_screen (signed dword()) mul16s((signed word) mul16s::a , (signed word) mul16s::b) (word~) mul16s::$16 $16 zp ZP_WORD:14 4.0 @@ -8371,9 +8371,9 @@ FINAL SYMBOL TABLE (word) sin16s_gen2::i#1 i zp ZP_WORD:8 16.5 (word) sin16s_gen2::i#2 i zp ZP_WORD:8 1.6923076923076923 (signed word) sin16s_gen2::max -(const signed word) sin16s_gen2::max#0 max = (word/signed word/dword/signed dword) 320 +(const signed word) sin16s_gen2::max#0 max = (word/signed word/dword/signed dword) $140 (signed word) sin16s_gen2::min -(const signed word) sin16s_gen2::min#0 min = -(word/signed word/dword/signed dword) 320 +(const signed word) sin16s_gen2::min#0 min = -(word/signed word/dword/signed dword) $140 (signed word) sin16s_gen2::offs (const signed word) sin16s_gen2::offs#0 offs = (const signed word) sin16s_gen2::min#0+(const signed word) sin16s_gen2::ampl#0>>(byte/signed byte/word/signed word/dword/signed dword) 1 (signed word*) sin16s_gen2::sintab @@ -8534,7 +8534,7 @@ main: { sta SCREEN,x //SEG38 [18] (byte) main::ch#1 ← ++ (byte) main::ch#2 -- vbuxx=_inc_vbuxx inx - //SEG39 [19] if((byte) main::ch#1!=(byte/word/signed word/dword/signed dword) 240) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG39 [19] if((byte) main::ch#1!=(byte/word/signed word/dword/signed dword) $f0) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$f0 bne b1 //SEG40 [20] phi from main::@1 to main::@2 [phi:main::@1->main::@2] @@ -8565,7 +8565,7 @@ loop: { // Wait for the raster to reach the bottom of the screen //SEG54 loop::@4 b4: - //SEG55 [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto loop::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG55 [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto loop::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -8674,7 +8674,7 @@ render_logo: { //SEG89 [47] phi (byte) render_logo::screen_idx#10 = (byte) render_logo::screen_idx#18 [phi:render_logo::@2->render_logo::@6#1] -- register_copy //SEG90 render_logo::@6 b6: - //SEG91 [48] if((byte) render_logo::screen_idx#10!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_logo::@9 -- vbuxx_neq_vbuc1_then_la1 + //SEG91 [48] if((byte) render_logo::screen_idx#10!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render_logo::@9 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b9 //SEG92 render_logo::@return @@ -8688,39 +8688,39 @@ render_logo: { //SEG96 [51] *((const byte*) SCREEN#0 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$15 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN,x //SEG97 render_logo::@9_1 - //SEG98 [52] (byte/signed word/word/dword/signed dword~) render_logo::$34 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuyy_plus_vbuc1 + //SEG98 [52] (byte/signed word/word/dword/signed dword~) render_logo::$34 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuyy_plus_vbuc1 tya clc adc #$28*1 - //SEG99 [53] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$34 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG99 [53] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$34 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$28*1,x //SEG100 render_logo::@9_2 - //SEG101 [54] (byte/signed word/word/dword/signed dword~) render_logo::$38 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuyy_plus_vbuc1 + //SEG101 [54] (byte/signed word/word/dword/signed dword~) render_logo::$38 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuyy_plus_vbuc1 tya clc adc #$28*2 - //SEG102 [55] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$38 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG102 [55] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$38 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$28*2,x //SEG103 render_logo::@9_3 - //SEG104 [56] (byte/signed word/word/dword/signed dword~) render_logo::$42 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuaa=vbuyy_plus_vbuc1 + //SEG104 [56] (byte/signed word/word/dword/signed dword~) render_logo::$42 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuaa=vbuyy_plus_vbuc1 tya clc adc #$28*3 - //SEG105 [57] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$42 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG105 [57] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$42 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$28*3,x //SEG106 render_logo::@9_4 - //SEG107 [58] (byte/signed word/word/dword/signed dword~) render_logo::$46 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuaa=vbuyy_plus_vbuc1 + //SEG107 [58] (byte/signed word/word/dword/signed dword~) render_logo::$46 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuaa=vbuyy_plus_vbuc1 tya clc adc #$28*4 - //SEG108 [59] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$46 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG108 [59] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$46 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$28*4,x //SEG109 render_logo::@9_5 - //SEG110 [60] (byte/signed word/word/dword/signed dword~) render_logo::$50 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 -- vbuaa=vbuyy_plus_vbuc1 + //SEG110 [60] (byte/signed word/word/dword/signed dword~) render_logo::$50 ← (byte) render_logo::logo_idx#10 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 -- vbuaa=vbuyy_plus_vbuc1 tya clc adc #$28*5 - //SEG111 [61] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$50 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG111 [61] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$50 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$28*5,x //SEG112 render_logo::@26 //SEG113 [62] (byte) render_logo::screen_idx#4 ← ++ (byte) render_logo::screen_idx#10 -- vbuxx=_inc_vbuxx @@ -8737,19 +8737,19 @@ render_logo: { lda #0 sta SCREEN,x //SEG120 render_logo::@5_1 - //SEG121 [65] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG121 [65] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 sta SCREEN+$28*1,x //SEG122 render_logo::@5_2 - //SEG123 [66] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG123 [66] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 sta SCREEN+$28*2,x //SEG124 render_logo::@5_3 - //SEG125 [67] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG125 [67] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 sta SCREEN+$28*3,x //SEG126 render_logo::@5_4 - //SEG127 [68] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG127 [68] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 sta SCREEN+$28*4,x //SEG128 render_logo::@5_5 - //SEG129 [69] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG129 [69] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#18) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 sta SCREEN+$28*5,x //SEG130 render_logo::@22 //SEG131 [70] (byte) render_logo::screen_idx#3 ← ++ (byte) render_logo::screen_idx#18 -- vbuxx=_inc_vbuxx @@ -8772,14 +8772,14 @@ render_logo: { //SEG139 [73] phi (byte) render_logo::logo_idx#11 = (byte~) render_logo::logo_idx#14 [phi:render_logo::@1->render_logo::@11#1] -- register_copy //SEG140 render_logo::@11 b11: - //SEG141 [74] if((byte) render_logo::logo_idx#11!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_logo::@14 -- vbuyy_neq_vbuc1_then_la1 + //SEG141 [74] if((byte) render_logo::logo_idx#11!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render_logo::@14 -- vbuyy_neq_vbuc1_then_la1 cpy #$28 bne b14 //SEG142 [75] phi from render_logo::@11 render_logo::@35 to render_logo::@15 [phi:render_logo::@11/render_logo::@35->render_logo::@15] //SEG143 [75] phi (byte) render_logo::screen_idx#15 = (byte) render_logo::screen_idx#21 [phi:render_logo::@11/render_logo::@35->render_logo::@15#0] -- register_copy //SEG144 render_logo::@15 b15: - //SEG145 [76] if((byte) render_logo::screen_idx#15!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_logo::@18 -- vbuxx_neq_vbuc1_then_la1 + //SEG145 [76] if((byte) render_logo::screen_idx#15!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render_logo::@18 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b18 jmp breturn @@ -8789,19 +8789,19 @@ render_logo: { lda #0 sta SCREEN,x //SEG148 render_logo::@18_1 - //SEG149 [78] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG149 [78] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 sta SCREEN+$28*1,x //SEG150 render_logo::@18_2 - //SEG151 [79] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG151 [79] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 sta SCREEN+$28*2,x //SEG152 render_logo::@18_3 - //SEG153 [80] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG153 [80] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 sta SCREEN+$28*3,x //SEG154 render_logo::@18_4 - //SEG155 [81] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG155 [81] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 sta SCREEN+$28*4,x //SEG156 render_logo::@18_5 - //SEG157 [82] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG157 [82] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 sta SCREEN+$28*5,x //SEG158 render_logo::@35 //SEG159 [83] (byte) render_logo::screen_idx#6 ← ++ (byte) render_logo::screen_idx#15 -- vbuxx=_inc_vbuxx @@ -8814,39 +8814,39 @@ render_logo: { //SEG162 [85] *((const byte*) SCREEN#0 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$23 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN,x //SEG163 render_logo::@14_1 - //SEG164 [86] (byte/signed word/word/dword/signed dword~) render_logo::$80 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuyy_plus_vbuc1 + //SEG164 [86] (byte/signed word/word/dword/signed dword~) render_logo::$80 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuyy_plus_vbuc1 tya clc adc #$28*1 - //SEG165 [87] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$80 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG165 [87] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$80 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$28*1,x //SEG166 render_logo::@14_2 - //SEG167 [88] (byte/signed word/word/dword/signed dword~) render_logo::$84 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuyy_plus_vbuc1 + //SEG167 [88] (byte/signed word/word/dword/signed dword~) render_logo::$84 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuyy_plus_vbuc1 tya clc adc #$28*2 - //SEG168 [89] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$84 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG168 [89] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$84 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$28*2,x //SEG169 render_logo::@14_3 - //SEG170 [90] (byte/signed word/word/dword/signed dword~) render_logo::$88 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuaa=vbuyy_plus_vbuc1 + //SEG170 [90] (byte/signed word/word/dword/signed dword~) render_logo::$88 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuaa=vbuyy_plus_vbuc1 tya clc adc #$28*3 - //SEG171 [91] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$88 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG171 [91] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$88 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$28*3,x //SEG172 render_logo::@14_4 - //SEG173 [92] (byte/signed word/word/dword/signed dword~) render_logo::$92 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuaa=vbuyy_plus_vbuc1 + //SEG173 [92] (byte/signed word/word/dword/signed dword~) render_logo::$92 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuaa=vbuyy_plus_vbuc1 tya clc adc #$28*4 - //SEG174 [93] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$92 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG174 [93] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$92 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$28*4,x //SEG175 render_logo::@14_5 - //SEG176 [94] (byte/signed word/word/dword/signed dword~) render_logo::$96 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 -- vbuaa=vbuyy_plus_vbuc1 + //SEG176 [94] (byte/signed word/word/dword/signed dword~) render_logo::$96 ← (byte) render_logo::logo_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 -- vbuaa=vbuyy_plus_vbuc1 tya clc adc #$28*5 - //SEG177 [95] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$96 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG177 [95] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#21) ← (byte/signed word/word/dword/signed dword~) render_logo::$96 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$28*5,x //SEG178 render_logo::@31 //SEG179 [96] (byte) render_logo::screen_idx#5 ← ++ (byte) render_logo::screen_idx#21 -- vbuxx=_inc_vbuxx @@ -9283,7 +9283,7 @@ sin16s: { //SEG303 [180] phi from sin16s::@9 to mulu16_sel [phi:sin16s::@9->mulu16_sel] //SEG304 [180] phi (byte) mulu16_sel::select#5 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@9->mulu16_sel#0] -- vbuxx=vbuc1 ldx #1 - //SEG305 [180] phi (word) mulu16_sel::v2#5 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 + //SEG305 [180] phi (word) mulu16_sel::v2#5 = (dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 lda #<$10000/6 sta mulu16_sel.v2 lda #>$10000/6 @@ -9507,7 +9507,7 @@ divr16u: { rol rem+1 //SEG389 [202] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 -- vbuaa=_hi_vwuz1 lda dividend+1 - //SEG390 [203] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuaa_band_vbuc1 + //SEG390 [203] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 //SEG391 [204] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuaa_eq_0_then_la1 cmp #0 @@ -9557,7 +9557,7 @@ divr16u: { b3: //SEG407 [213] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuxx=_inc_vbuxx inx - //SEG408 [214] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG408 [214] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1 //SEG409 divr16u::@6 @@ -9572,7 +9572,7 @@ divr16u: { fill: { .label end = 8 .label addr = 2 - //SEG414 [218] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 -- pbuz1=pbuz2_plus_vwuc1 + //SEG414 [218] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) $3e8 -- pbuz1=pbuz2_plus_vwuc1 lda addr clc adc #<$3e8 diff --git a/src/test/ref/examples/scrolllogo/scrolllogo.sym b/src/test/ref/examples/scrolllogo/scrolllogo.sym index d3547b749..4e156ca8e 100644 --- a/src/test/ref/examples/scrolllogo/scrolllogo.sym +++ b/src/test/ref/examples/scrolllogo/scrolllogo.sym @@ -3,18 +3,18 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL1 (byte*) BGCOL2 -(const byte*) BGCOL2#0 BGCOL2 = ((byte*))(word/dword/signed dword) 53282 +(const byte*) BGCOL2#0 BGCOL2 = ((byte*))(word/dword/signed dword) $d022 (byte*) BGCOL3 -(const byte*) BGCOL3#0 BGCOL3 = ((byte*))(word/dword/signed dword) 53283 +(const byte*) BGCOL3#0 BGCOL3 = ((byte*))(word/dword/signed dword) $d023 (byte*) BGCOL4 (byte) BLACK (const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN (byte*) CIA1_INTERRUPT @@ -29,15 +29,15 @@ (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR (byte*) COLS -(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) 55296 +(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) $d800 (byte) CYAN (byte*) D011 (byte*) D016 -(const byte*) D016#0 D016 = ((byte*))(word/dword/signed dword) 53270 +(const byte*) D016#0 D016 = ((byte*))(word/dword/signed dword) $d016 (byte*) D018 -(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) 53272 +(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) $d018 (byte) DARK_GREY -(const byte) DARK_GREY#0 DARK_GREY = (byte/signed byte/word/signed word/dword/signed dword) 11 +(const byte) DARK_GREY#0 DARK_GREY = (byte/signed byte/word/signed word/dword/signed dword) $b (byte) GREEN (byte) GREY (void()**) HARDWARE_IRQ @@ -54,18 +54,18 @@ (byte) LIGHT_GREEN (byte) LIGHT_GREY (byte*) LOGO -(const byte*) LOGO#0 LOGO = ((byte*))(word/signed word/dword/signed dword) 8192 +(const byte*) LOGO#0 LOGO = ((byte*))(word/signed word/dword/signed dword) $2000 (byte) ORANGE (word) PI2_u4f12 (dword) PI2_u4f28 -(const dword) PI2_u4f28#0 PI2_u4f28 = (dword/signed dword) 1686629713 +(const dword) PI2_u4f28#0 PI2_u4f28 = (dword/signed dword) $6487ed51 (byte) PINK (word) PI_HALF_u4f12 (dword) PI_HALF_u4f28 -(const dword) PI_HALF_u4f28#0 PI_HALF_u4f28 = (dword/signed dword) 421657428 +(const dword) PI_HALF_u4f28#0 PI_HALF_u4f28 = (dword/signed dword) $1921fb54 (word) PI_u4f12 (dword) PI_u4f28 -(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) 843314857 +(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) $3243f6a9 (byte*) PROCPORT (byte) PROCPORT_BASIC_KERNEL_IO (byte*) PROCPORT_DDR @@ -76,10 +76,10 @@ (byte) PROCPORT_RAM_IO (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE (byte*) SPRITES_EXPAND_X @@ -99,14 +99,14 @@ (byte) VIC_DEN (byte) VIC_ECM (byte) VIC_MCM -(const byte) VIC_MCM#0 VIC_MCM = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_MCM#0 VIC_MCM = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte*) VIC_MEMORY (byte) VIC_RSEL (byte) VIC_RST8 (byte) WHITE (const byte) WHITE#0 WHITE = (byte/signed byte/word/signed word/dword/signed dword) 1 (word) XSIN_SIZE -(const word) XSIN_SIZE#0 XSIN_SIZE = (word/signed word/dword/signed dword) 512 +(const word) XSIN_SIZE#0 XSIN_SIZE = (word/signed word/dword/signed dword) $200 (byte) YELLOW (dword()) div32u16u((dword) div32u16u::dividend , (word) div32u16u::divisor) (label) div32u16u::@2 @@ -202,7 +202,7 @@ (byte~) main::toD0181_$8 (byte*) main::toD0181_gfx (byte) main::toD0181_return -(const byte) main::toD0181_return#0 toD0181_return = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) LOGO#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte) main::toD0181_return#0 toD0181_return = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) LOGO#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) $f (byte*) main::toD0181_screen (signed dword()) mul16s((signed word) mul16s::a , (signed word) mul16s::b) (word~) mul16s::$16 $16 zp ZP_WORD:14 4.0 @@ -415,9 +415,9 @@ (word) sin16s_gen2::i#1 i zp ZP_WORD:8 16.5 (word) sin16s_gen2::i#2 i zp ZP_WORD:8 1.6923076923076923 (signed word) sin16s_gen2::max -(const signed word) sin16s_gen2::max#0 max = (word/signed word/dword/signed dword) 320 +(const signed word) sin16s_gen2::max#0 max = (word/signed word/dword/signed dword) $140 (signed word) sin16s_gen2::min -(const signed word) sin16s_gen2::min#0 min = -(word/signed word/dword/signed dword) 320 +(const signed word) sin16s_gen2::min#0 min = -(word/signed word/dword/signed dword) $140 (signed word) sin16s_gen2::offs (const signed word) sin16s_gen2::offs#0 offs = (const signed word) sin16s_gen2::min#0+(const signed word) sin16s_gen2::ampl#0>>(byte/signed byte/word/signed word/dword/signed dword) 1 (signed word*) sin16s_gen2::sintab diff --git a/src/test/ref/examples/showlogo/showlogo.cfg b/src/test/ref/examples/showlogo/showlogo.cfg index 51643441a..e113357f4 100644 --- a/src/test/ref/examples/showlogo/showlogo.cfg +++ b/src/test/ref/examples/showlogo/showlogo.cfg @@ -37,15 +37,15 @@ main::@1: scope:[main] from main::@1 main::@10 [15] (byte) main::ch#2 ← phi( main::@1/(byte) main::ch#1 main::@10/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [16] *((const byte*) SCREEN#0 + (byte) main::ch#2) ← (byte) main::ch#2 [17] (byte) main::ch#1 ← ++ (byte) main::ch#2 - [18] if((byte) main::ch#1!=(byte/word/signed word/dword/signed dword) 240) goto main::@1 + [18] if((byte) main::ch#1!=(byte/word/signed word/dword/signed dword) $f0) goto main::@1 to:main::@3 main::@3: scope:[main] from main::@1 main::@3 - [19] *((const byte*) SCREEN#0+(word/signed word/dword/signed dword) 999) ← ++ *((const byte*) SCREEN#0+(word/signed word/dword/signed dword) 999) + [19] *((const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e7) ← ++ *((const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e7) kickasm {{ inc $d020 }} to:main::@3 fill: scope:[fill] from main::@10 main::@9 [21] (byte) fill::val#3 ← phi( main::@10/(const byte) WHITE#0|(byte/signed byte/word/signed word/dword/signed dword) 8 main::@9/(const byte) BLACK#0 ) - [21] (word) fill::size#2 ← phi( main::@10/(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 25 main::@9/(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 25 ) + [21] (word) fill::size#2 ← phi( main::@10/(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $19 main::@9/(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $19 ) [21] (byte*) fill::addr#0 ← phi( main::@10/(const byte*) COLS#0 main::@9/(const byte*) SCREEN#0 ) [22] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word) fill::size#2 to:fill::@1 diff --git a/src/test/ref/examples/showlogo/showlogo.log b/src/test/ref/examples/showlogo/showlogo.log index 3a5490fff..983dd64ea 100644 --- a/src/test/ref/examples/showlogo/showlogo.log +++ b/src/test/ref/examples/showlogo/showlogo.log @@ -6,66 +6,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -76,17 +76,17 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@4 @4: scope:[] from @begin - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte*) LOGO#0 ← ((byte*)) (word/signed word/dword/signed dword) 8192 - (byte/word/signed word/dword/signed dword~) $0 ← (byte/signed byte/word/signed word/dword/signed dword) 6 * (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte*) LOGO#0 ← ((byte*)) (word/signed word/dword/signed dword) $2000 + (byte/word/signed word/dword/signed dword~) $0 ← (byte/signed byte/word/signed word/dword/signed dword) 6 * (byte/signed byte/word/signed word/dword/signed dword) $28 (byte/signed word/word/dword/signed dword~) $1 ← (byte/word/signed word/dword/signed dword~) $0 * (byte/signed byte/word/signed word/dword/signed dword) 8 kickasm(location (byte*) LOGO#0) {{ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) .for (var y=0; y<6 ; y++) @@ -110,13 +110,13 @@ main::toD0181: scope:[main] from main (byte*) main::toD0181_gfx#1 ← phi( main/(byte*) main::toD0181_gfx#0 ) (byte*) main::toD0181_screen#1 ← phi( main/(byte*) main::toD0181_screen#0 ) (word) main::toD0181_$0#0 ← ((word)) (byte*) main::toD0181_screen#1 - (word) main::toD0181_$1#0 ← (word) main::toD0181_$0#0 & (word/signed word/dword/signed dword) 16383 + (word) main::toD0181_$1#0 ← (word) main::toD0181_$0#0 & (word/signed word/dword/signed dword) $3fff (word) main::toD0181_$2#0 ← (word) main::toD0181_$1#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) main::toD0181_$3#0 ← > (word) main::toD0181_$2#0 (word) main::toD0181_$4#0 ← ((word)) (byte*) main::toD0181_gfx#1 (byte) main::toD0181_$5#0 ← > (word) main::toD0181_$4#0 (byte) main::toD0181_$6#0 ← (byte) main::toD0181_$5#0 >> (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte) main::toD0181_$7#0 ← (byte) main::toD0181_$6#0 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) main::toD0181_$7#0 ← (byte) main::toD0181_$6#0 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte) main::toD0181_$8#0 ← (byte) main::toD0181_$3#0 | (byte) main::toD0181_$7#0 (byte) main::toD0181_return#0 ← (byte) main::toD0181_$8#0 to:main::toD0181_@return @@ -132,7 +132,7 @@ main::@9: scope:[main] from main::toD0181_@return *((byte*) D018#0) ← (byte~) main::$0 (byte~) main::$1 ← (byte) VIC_MCM#0 | (byte) VIC_CSEL#0 *((byte*) D016#0) ← (byte~) main::$1 - (word/signed word/dword/signed dword~) main::$2 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 25 + (word/signed word/dword/signed dword~) main::$2 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) $19 (byte*) fill::start#0 ← (byte*) SCREEN#2 (word) fill::size#0 ← (word/signed word/dword/signed dword~) main::$2 (byte) fill::val#0 ← (byte) BLACK#0 @@ -140,7 +140,7 @@ main::@9: scope:[main] from main::toD0181_@return to:main::@10 main::@10: scope:[main] from main::@9 (byte*) SCREEN#10 ← phi( main::@9/(byte*) SCREEN#2 ) - (word/signed word/dword/signed dword~) main::$4 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 25 + (word/signed word/dword/signed dword~) main::$4 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) $19 (byte/word/dword~) main::$5 ← (byte) WHITE#0 | (byte/signed byte/word/signed word/dword/signed dword) 8 (byte*) fill::start#1 ← (byte*) COLS#0 (word) fill::size#1 ← (word/signed word/dword/signed dword~) main::$4 @@ -155,8 +155,8 @@ main::@1: scope:[main] from main::@1 main::@11 (byte*) SCREEN#3 ← phi( main::@1/(byte*) SCREEN#3 main::@11/(byte*) SCREEN#7 ) (byte) main::ch#2 ← phi( main::@1/(byte) main::ch#1 main::@11/(byte) main::ch#0 ) *((byte*) SCREEN#3 + (byte) main::ch#2) ← (byte) main::ch#2 - (byte) main::ch#1 ← (byte) main::ch#2 + rangenext(0,239) - (bool~) main::$7 ← (byte) main::ch#1 != rangelast(0,239) + (byte) main::ch#1 ← (byte) main::ch#2 + rangenext(0,$ef) + (bool~) main::$7 ← (byte) main::ch#1 != rangelast(0,$ef) if((bool~) main::$7) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@3 @@ -165,9 +165,9 @@ main::@2: scope:[main] from main::@1 main::@3 to:main::@return main::@3: scope:[main] from main::@2 (byte*) SCREEN#4 ← phi( main::@2/(byte*) SCREEN#8 ) - (byte*~) main::$8 ← (byte*) SCREEN#4 + (word/signed word/dword/signed dword) 999 - (byte*~) main::$9 ← (byte*) SCREEN#4 + (word/signed word/dword/signed dword) 999 - (byte*~) main::$10 ← (byte*) SCREEN#4 + (word/signed word/dword/signed dword) 999 + (byte*~) main::$8 ← (byte*) SCREEN#4 + (word/signed word/dword/signed dword) $3e7 + (byte*~) main::$9 ← (byte*) SCREEN#4 + (word/signed word/dword/signed dword) $3e7 + (byte*~) main::$10 ← (byte*) SCREEN#4 + (word/signed word/dword/signed dword) $3e7 *((byte*~) main::$10) ← ++ *((byte*~) main::$10) kickasm {{ inc $d020 }} to:main::@2 @@ -490,72 +490,72 @@ Redundant Phi (byte*) SCREEN#4 (byte*) SCREEN#3 Redundant Phi (byte) fill::val#2 (byte) fill::val#3 Redundant Phi (byte*) fill::end#1 (byte*) fill::end#0 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$7 [127] if((byte) main::ch#1!=rangelast(0,239)) goto main::@1 +Simple Condition (bool~) main::$7 [127] if((byte) main::ch#1!=rangelast(0,$ef)) goto main::@1 Simple Condition (bool~) fill::$1 [145] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -566,17 +566,17 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 -Constant (const byte*) SCREEN#0 = ((byte*))1024 -Constant (const byte*) LOGO#0 = ((byte*))8192 -Constant (const byte/word/signed word/dword/signed dword) $0 = 6*40 -Constant (const word) fill::size#0 = 40*25 -Constant (const word) fill::size#1 = 40*25 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f +Constant (const byte*) SCREEN#0 = ((byte*))$400 +Constant (const byte*) LOGO#0 = ((byte*))$2000 +Constant (const byte/word/signed word/dword/signed dword) $0 = 6*$28 +Constant (const word) fill::size#0 = $28*$19 +Constant (const word) fill::size#1 = $28*$19 Constant (const byte) main::ch#0 = 0 Successful SSA optimization Pass2ConstantIdentification Constant (const word/signed word/dword/signed dword) $1 = $0*8 @@ -587,21 +587,21 @@ Constant (const byte*) fill::start#0 = SCREEN#0 Constant (const byte) fill::val#0 = BLACK#0 Constant (const byte) fill::val#1 = WHITE#0|8 Constant (const byte*) fill::start#1 = COLS#0 -Constant (const byte*) main::$8 = SCREEN#0+999 -Constant (const byte*) main::$9 = SCREEN#0+999 -Constant (const byte*) main::$10 = SCREEN#0+999 +Constant (const byte*) main::$8 = SCREEN#0+$3e7 +Constant (const byte*) main::$9 = SCREEN#0+$3e7 +Constant (const byte*) main::$10 = SCREEN#0+$3e7 Successful SSA optimization Pass2ConstantIdentification Constant (const word) main::toD0181_$0#0 = ((word))main::toD0181_screen#0 Constant (const word) main::toD0181_$4#0 = ((word))main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantIdentification -Constant (const word) main::toD0181_$1#0 = main::toD0181_$0#0&16383 +Constant (const word) main::toD0181_$1#0 = main::toD0181_$0#0&$3fff Constant (const byte) main::toD0181_$5#0 = >main::toD0181_$4#0 Successful SSA optimization Pass2ConstantIdentification Constant (const word) main::toD0181_$2#0 = main::toD0181_$1#0<<2 Constant (const byte) main::toD0181_$6#0 = main::toD0181_$5#0>>2 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::toD0181_$3#0 = >main::toD0181_$2#0 -Constant (const byte) main::toD0181_$7#0 = main::toD0181_$6#0&15 +Constant (const byte) main::toD0181_$7#0 = main::toD0181_$6#0&$f Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::toD0181_return#0 = main::toD0181_$3#0|main::toD0181_$7#0 Successful SSA optimization Pass2ConstantIdentification @@ -611,7 +611,7 @@ Successful SSA optimization PassNEliminateUnusedVars Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks Resolved ranged next value main::ch#1 ← ++ main::ch#2 to ++ -Resolved ranged comparison value if(main::ch#1!=rangelast(0,239)) goto main::@1 to (byte/word/signed word/dword/signed dword) 240 +Resolved ranged comparison value if(main::ch#1!=rangelast(0,$ef)) goto main::@1 to (byte/word/signed word/dword/signed dword) $f0 Culled Empty Block (label) main::toD0181_@return Culled Empty Block (label) main::@11 Culled Empty Block (label) main::@2 @@ -625,19 +625,19 @@ Constant inlined fill::val#0 = (const byte) BLACK#0 Constant inlined main::toD0181_screen#0 = (const byte*) SCREEN#0 Constant inlined main::toD0181_gfx#0 = (const byte*) LOGO#0 Constant inlined fill::val#1 = (const byte) WHITE#0|(byte/signed byte/word/signed word/dword/signed dword) 8 -Constant inlined fill::size#1 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 25 +Constant inlined fill::size#1 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $19 Constant inlined main::toD0181_$0#0 = ((word))(const byte*) SCREEN#0 -Constant inlined fill::size#0 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 25 -Constant inlined main::toD0181_$1#0 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383 -Constant inlined $0 = (byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined $1 = (byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 -Constant inlined main::$10 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 999 +Constant inlined fill::size#0 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $19 +Constant inlined main::toD0181_$1#0 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff +Constant inlined $0 = (byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined $1 = (byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 +Constant inlined main::$10 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e7 Constant inlined main::toD0181_$6#0 = >((word))(const byte*) LOGO#0>>(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined main::toD0181_$7#0 = >((word))(const byte*) LOGO#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 +Constant inlined main::toD0181_$7#0 = >((word))(const byte*) LOGO#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) $f Constant inlined main::$1 = (const byte) VIC_MCM#0|(const byte) VIC_CSEL#0 -Constant inlined main::toD0181_$2#0 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined main::toD0181_$2#0 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined fill::start#1 = (const byte*) COLS#0 -Constant inlined main::toD0181_$3#0 = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined main::toD0181_$3#0 = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined fill::start#0 = (const byte*) SCREEN#0 Constant inlined main::toD0181_$4#0 = ((word))(const byte*) LOGO#0 Constant inlined main::toD0181_$5#0 = >((word))(const byte*) LOGO#0 @@ -707,15 +707,15 @@ main::@1: scope:[main] from main::@1 main::@10 [15] (byte) main::ch#2 ← phi( main::@1/(byte) main::ch#1 main::@10/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [16] *((const byte*) SCREEN#0 + (byte) main::ch#2) ← (byte) main::ch#2 [17] (byte) main::ch#1 ← ++ (byte) main::ch#2 - [18] if((byte) main::ch#1!=(byte/word/signed word/dword/signed dword) 240) goto main::@1 + [18] if((byte) main::ch#1!=(byte/word/signed word/dword/signed dword) $f0) goto main::@1 to:main::@3 main::@3: scope:[main] from main::@1 main::@3 - [19] *((const byte*) SCREEN#0+(word/signed word/dword/signed dword) 999) ← ++ *((const byte*) SCREEN#0+(word/signed word/dword/signed dword) 999) + [19] *((const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e7) ← ++ *((const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e7) kickasm {{ inc $d020 }} to:main::@3 fill: scope:[fill] from main::@10 main::@9 [21] (byte) fill::val#3 ← phi( main::@10/(const byte) WHITE#0|(byte/signed byte/word/signed word/dword/signed dword) 8 main::@9/(const byte) BLACK#0 ) - [21] (word) fill::size#2 ← phi( main::@10/(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 25 main::@9/(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 25 ) + [21] (word) fill::size#2 ← phi( main::@10/(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $19 main::@9/(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $19 ) [21] (byte*) fill::addr#0 ← phi( main::@10/(const byte*) COLS#0 main::@9/(const byte*) SCREEN#0 ) [22] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word) fill::size#2 to:fill::@1 @@ -936,7 +936,7 @@ main: { //SEG23 [21] phi (byte) fill::val#3 = (const byte) BLACK#0 [phi:main::@9->fill#0] -- vbuz1=vbuc1 lda #BLACK sta fill.val - //SEG24 [21] phi (word) fill::size#2 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 25 [phi:main::@9->fill#1] -- vwuz1=vwuc1 + //SEG24 [21] phi (word) fill::size#2 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $19 [phi:main::@9->fill#1] -- vwuz1=vwuc1 lda #<$28*$19 sta fill.size lda #>$28*$19 @@ -958,7 +958,7 @@ main: { //SEG30 [21] phi (byte) fill::val#3 = (const byte) WHITE#0|(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:main::@10->fill#0] -- vbuz1=vbuc1 lda #WHITE|8 sta fill.val - //SEG31 [21] phi (word) fill::size#2 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 25 [phi:main::@10->fill#1] -- vwuz1=vwuc1 + //SEG31 [21] phi (word) fill::size#2 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $19 [phi:main::@10->fill#1] -- vwuz1=vwuc1 lda #<$28*$19 sta fill.size lda #>$28*$19 @@ -987,14 +987,14 @@ main: { sta SCREEN,y //SEG39 [17] (byte) main::ch#1 ← ++ (byte) main::ch#2 -- vbuz1=_inc_vbuz1 inc ch - //SEG40 [18] if((byte) main::ch#1!=(byte/word/signed word/dword/signed dword) 240) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG40 [18] if((byte) main::ch#1!=(byte/word/signed word/dword/signed dword) $f0) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda ch cmp #$f0 bne b1_from_b1 jmp b3 //SEG41 main::@3 b3: - //SEG42 [19] *((const byte*) SCREEN#0+(word/signed word/dword/signed dword) 999) ← ++ *((const byte*) SCREEN#0+(word/signed word/dword/signed dword) 999) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG42 [19] *((const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e7) ← ++ *((const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e7) -- _deref_pbuc1=_inc__deref_pbuc1 inc SCREEN+$3e7 //SEG43 kickasm {{ inc $d020 }} inc $d020 @@ -1167,7 +1167,7 @@ main: { fill_from_b9: //SEG23 [21] phi (byte) fill::val#3 = (const byte) BLACK#0 [phi:main::@9->fill#0] -- vbuxx=vbuc1 ldx #BLACK - //SEG24 [21] phi (word) fill::size#2 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 25 [phi:main::@9->fill#1] -- vwuz1=vwuc1 + //SEG24 [21] phi (word) fill::size#2 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $19 [phi:main::@9->fill#1] -- vwuz1=vwuc1 lda #<$28*$19 sta fill.size lda #>$28*$19 @@ -1188,7 +1188,7 @@ main: { fill_from_b10: //SEG30 [21] phi (byte) fill::val#3 = (const byte) WHITE#0|(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:main::@10->fill#0] -- vbuxx=vbuc1 ldx #WHITE|8 - //SEG31 [21] phi (word) fill::size#2 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 25 [phi:main::@10->fill#1] -- vwuz1=vwuc1 + //SEG31 [21] phi (word) fill::size#2 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $19 [phi:main::@10->fill#1] -- vwuz1=vwuc1 lda #<$28*$19 sta fill.size lda #>$28*$19 @@ -1215,13 +1215,13 @@ main: { sta SCREEN,x //SEG39 [17] (byte) main::ch#1 ← ++ (byte) main::ch#2 -- vbuxx=_inc_vbuxx inx - //SEG40 [18] if((byte) main::ch#1!=(byte/word/signed word/dword/signed dword) 240) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG40 [18] if((byte) main::ch#1!=(byte/word/signed word/dword/signed dword) $f0) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$f0 bne b1_from_b1 jmp b3 //SEG41 main::@3 b3: - //SEG42 [19] *((const byte*) SCREEN#0+(word/signed word/dword/signed dword) 999) ← ++ *((const byte*) SCREEN#0+(word/signed word/dword/signed dword) 999) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG42 [19] *((const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e7) ← ++ *((const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e7) -- _deref_pbuc1=_inc__deref_pbuc1 inc SCREEN+$3e7 //SEG43 kickasm {{ inc $d020 }} inc $d020 @@ -1329,18 +1329,18 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL1 (byte*) BGCOL2 -(const byte*) BGCOL2#0 BGCOL2 = ((byte*))(word/dword/signed dword) 53282 +(const byte*) BGCOL2#0 BGCOL2 = ((byte*))(word/dword/signed dword) $d022 (byte*) BGCOL3 -(const byte*) BGCOL3#0 BGCOL3 = ((byte*))(word/dword/signed dword) 53283 +(const byte*) BGCOL3#0 BGCOL3 = ((byte*))(word/dword/signed dword) $d023 (byte*) BGCOL4 (byte) BLACK (const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN (byte*) CIA1_INTERRUPT @@ -1355,15 +1355,15 @@ FINAL SYMBOL TABLE (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR (byte*) COLS -(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) 55296 +(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) $d800 (byte) CYAN (byte*) D011 (byte*) D016 -(const byte*) D016#0 D016 = ((byte*))(word/dword/signed dword) 53270 +(const byte*) D016#0 D016 = ((byte*))(word/dword/signed dword) $d016 (byte*) D018 -(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) 53272 +(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) $d018 (byte) DARK_GREY -(const byte) DARK_GREY#0 DARK_GREY = (byte/signed byte/word/signed word/dword/signed dword) 11 +(const byte) DARK_GREY#0 DARK_GREY = (byte/signed byte/word/signed word/dword/signed dword) $b (byte) GREEN (byte) GREY (void()**) HARDWARE_IRQ @@ -1380,7 +1380,7 @@ FINAL SYMBOL TABLE (byte) LIGHT_GREEN (byte) LIGHT_GREY (byte*) LOGO -(const byte*) LOGO#0 LOGO = ((byte*))(word/signed word/dword/signed dword) 8192 +(const byte*) LOGO#0 LOGO = ((byte*))(word/signed word/dword/signed dword) $2000 (byte) ORANGE (byte) PINK (byte*) PROCPORT @@ -1395,7 +1395,7 @@ FINAL SYMBOL TABLE (byte*) RASTER (byte) RED (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE (byte*) SPRITES_EXPAND_X @@ -1416,7 +1416,7 @@ FINAL SYMBOL TABLE (byte) VIC_DEN (byte) VIC_ECM (byte) VIC_MCM -(const byte) VIC_MCM#0 VIC_MCM = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_MCM#0 VIC_MCM = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte*) VIC_MEMORY (byte) VIC_RSEL (byte) VIC_RST8 @@ -1457,7 +1457,7 @@ FINAL SYMBOL TABLE (byte~) main::toD0181_$8 (byte*) main::toD0181_gfx (byte) main::toD0181_return -(const byte) main::toD0181_return#0 toD0181_return = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) LOGO#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte) main::toD0181_return#0 toD0181_return = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) LOGO#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) $f (byte*) main::toD0181_screen reg byte x [ main::ch#2 main::ch#1 ] @@ -1526,7 +1526,7 @@ main: { //SEG22 [21] phi from main::@9 to fill [phi:main::@9->fill] //SEG23 [21] phi (byte) fill::val#3 = (const byte) BLACK#0 [phi:main::@9->fill#0] -- vbuxx=vbuc1 ldx #BLACK - //SEG24 [21] phi (word) fill::size#2 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 25 [phi:main::@9->fill#1] -- vwuz1=vwuc1 + //SEG24 [21] phi (word) fill::size#2 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $19 [phi:main::@9->fill#1] -- vwuz1=vwuc1 lda #<$28*$19 sta fill.size lda #>$28*$19 @@ -1543,7 +1543,7 @@ main: { //SEG29 [21] phi from main::@10 to fill [phi:main::@10->fill] //SEG30 [21] phi (byte) fill::val#3 = (const byte) WHITE#0|(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:main::@10->fill#0] -- vbuxx=vbuc1 ldx #WHITE|8 - //SEG31 [21] phi (word) fill::size#2 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 25 [phi:main::@10->fill#1] -- vwuz1=vwuc1 + //SEG31 [21] phi (word) fill::size#2 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $19 [phi:main::@10->fill#1] -- vwuz1=vwuc1 lda #<$28*$19 sta fill.size lda #>$28*$19 @@ -1566,12 +1566,12 @@ main: { sta SCREEN,x //SEG39 [17] (byte) main::ch#1 ← ++ (byte) main::ch#2 -- vbuxx=_inc_vbuxx inx - //SEG40 [18] if((byte) main::ch#1!=(byte/word/signed word/dword/signed dword) 240) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG40 [18] if((byte) main::ch#1!=(byte/word/signed word/dword/signed dword) $f0) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$f0 bne b1 //SEG41 main::@3 b3: - //SEG42 [19] *((const byte*) SCREEN#0+(word/signed word/dword/signed dword) 999) ← ++ *((const byte*) SCREEN#0+(word/signed word/dword/signed dword) 999) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG42 [19] *((const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e7) ← ++ *((const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e7) -- _deref_pbuc1=_inc__deref_pbuc1 inc SCREEN+$3e7 //SEG43 kickasm {{ inc $d020 }} inc $d020 diff --git a/src/test/ref/examples/showlogo/showlogo.sym b/src/test/ref/examples/showlogo/showlogo.sym index 20313db49..653118c7f 100644 --- a/src/test/ref/examples/showlogo/showlogo.sym +++ b/src/test/ref/examples/showlogo/showlogo.sym @@ -3,18 +3,18 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL1 (byte*) BGCOL2 -(const byte*) BGCOL2#0 BGCOL2 = ((byte*))(word/dword/signed dword) 53282 +(const byte*) BGCOL2#0 BGCOL2 = ((byte*))(word/dword/signed dword) $d022 (byte*) BGCOL3 -(const byte*) BGCOL3#0 BGCOL3 = ((byte*))(word/dword/signed dword) 53283 +(const byte*) BGCOL3#0 BGCOL3 = ((byte*))(word/dword/signed dword) $d023 (byte*) BGCOL4 (byte) BLACK (const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN (byte*) CIA1_INTERRUPT @@ -29,15 +29,15 @@ (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR (byte*) COLS -(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) 55296 +(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) $d800 (byte) CYAN (byte*) D011 (byte*) D016 -(const byte*) D016#0 D016 = ((byte*))(word/dword/signed dword) 53270 +(const byte*) D016#0 D016 = ((byte*))(word/dword/signed dword) $d016 (byte*) D018 -(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) 53272 +(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) $d018 (byte) DARK_GREY -(const byte) DARK_GREY#0 DARK_GREY = (byte/signed byte/word/signed word/dword/signed dword) 11 +(const byte) DARK_GREY#0 DARK_GREY = (byte/signed byte/word/signed word/dword/signed dword) $b (byte) GREEN (byte) GREY (void()**) HARDWARE_IRQ @@ -54,7 +54,7 @@ (byte) LIGHT_GREEN (byte) LIGHT_GREY (byte*) LOGO -(const byte*) LOGO#0 LOGO = ((byte*))(word/signed word/dword/signed dword) 8192 +(const byte*) LOGO#0 LOGO = ((byte*))(word/signed word/dword/signed dword) $2000 (byte) ORANGE (byte) PINK (byte*) PROCPORT @@ -69,7 +69,7 @@ (byte*) RASTER (byte) RED (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE (byte*) SPRITES_EXPAND_X @@ -90,7 +90,7 @@ (byte) VIC_DEN (byte) VIC_ECM (byte) VIC_MCM -(const byte) VIC_MCM#0 VIC_MCM = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_MCM#0 VIC_MCM = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte*) VIC_MEMORY (byte) VIC_RSEL (byte) VIC_RST8 @@ -131,7 +131,7 @@ (byte~) main::toD0181_$8 (byte*) main::toD0181_gfx (byte) main::toD0181_return -(const byte) main::toD0181_return#0 toD0181_return = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) LOGO#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte) main::toD0181_return#0 toD0181_return = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) LOGO#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) $f (byte*) main::toD0181_screen reg byte x [ main::ch#2 main::ch#1 ] diff --git a/src/test/ref/examples/sinplotter/sine-plotter.cfg b/src/test/ref/examples/sinplotter/sine-plotter.cfg index 4f19afc16..835a83fe9 100644 --- a/src/test/ref/examples/sinplotter/sine-plotter.cfg +++ b/src/test/ref/examples/sinplotter/sine-plotter.cfg @@ -64,7 +64,7 @@ render_sine::@1: scope:[render_sine] from render_sine render_sine::@2 [26] (word) render_sine::xpos#3 ← phi( render_sine/(byte/signed byte/word/signed word/dword/signed dword) 0 render_sine::@2/(word) render_sine::xpos#8 ) [26] (word) render_sine::sin_idx#2 ← phi( render_sine/(byte/signed byte/word/signed word/dword/signed dword) 0 render_sine::@2/(word) render_sine::sin_idx#1 ) [27] (word~) render_sine::$0 ← (word) render_sine::sin_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [28] (signed word*~) render_sine::$1 ← (const signed word[512]) sin#0 + (word~) render_sine::$0 + [28] (signed word*~) render_sine::$1 ← (const signed word[$200]) sin#0 + (word~) render_sine::$0 [29] (signed word) render_sine::sin_val#0 ← *((signed word*~) render_sine::$1) [30] (signed word) wrap_y::y#0 ← (signed word) render_sine::sin_val#0 [31] call wrap_y @@ -80,7 +80,7 @@ render_sine::@6: scope:[render_sine] from render_sine::@5 [37] (word~) render_sine::$4 ← (word) render_sine::sin_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [38] (signed word*~) render_sine::$5 ← (const signed word*) sin2#0 + (word~) render_sine::$4 [39] (signed word) render_sine::sin2_val#0 ← *((signed word*~) render_sine::$5) - [40] (signed word) wrap_y::y#1 ← (signed word) render_sine::sin2_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 10 + [40] (signed word) wrap_y::y#1 ← (signed word) render_sine::sin2_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $a [41] call wrap_y [42] (byte) wrap_y::return#1 ← (byte) wrap_y::return#2 to:render_sine::@7 @@ -92,7 +92,7 @@ render_sine::@7: scope:[render_sine] from render_sine::@6 to:render_sine::@8 render_sine::@8: scope:[render_sine] from render_sine::@7 [47] (word) render_sine::xpos#1 ← ++ (word) render_sine::xpos#3 - [48] if((word) render_sine::xpos#1!=(word/signed word/dword/signed dword) 320) goto render_sine::@10 + [48] if((word) render_sine::xpos#1!=(word/signed word/dword/signed dword) $140) goto render_sine::@10 to:render_sine::@2 render_sine::@2: scope:[render_sine] from render_sine::@10 render_sine::@8 [49] (word) render_sine::xpos#8 ← phi( render_sine::@8/(byte/signed byte/word/signed word/dword/signed dword) 0 render_sine::@10/(word) render_sine::xpos#1 ) @@ -108,11 +108,11 @@ render_sine::@10: scope:[render_sine] from render_sine::@8 bitmap_plot: scope:[bitmap_plot] from render_sine::@5 render_sine::@7 [54] (word) bitmap_plot::x#2 ← phi( render_sine::@5/(word) bitmap_plot::x#0 render_sine::@7/(word) bitmap_plot::x#1 ) [54] (byte) bitmap_plot::y#2 ← phi( render_sine::@5/(byte) bitmap_plot::y#0 render_sine::@7/(byte) bitmap_plot::y#1 ) - [55] (word~) bitmap_plot::$3 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#2) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#2) - [56] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#2 & (word/dword/signed dword) 65528 + [55] (word~) bitmap_plot::$3 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#2) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#2) + [56] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#2 & (word/dword/signed dword) $fff8 [57] (byte*) bitmap_plot::plotter#1 ← (byte*)(word~) bitmap_plot::$3 + (word~) bitmap_plot::$1 [58] (byte~) bitmap_plot::$2 ← < (word) bitmap_plot::x#2 - [59] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[256]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) + [59] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[$100]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) to:bitmap_plot::@return bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot [60] return @@ -122,7 +122,7 @@ wrap_y: scope:[wrap_y] from render_sine::@1 render_sine::@6 to:wrap_y::@1 wrap_y::@1: scope:[wrap_y] from wrap_y wrap_y::@2 [62] (signed word) wrap_y::y#4 ← phi( wrap_y/(signed word) wrap_y::y#9 wrap_y::@2/(signed word) wrap_y::y#2 ) - [63] if((signed word) wrap_y::y#4>=(byte/word/signed word/dword/signed dword) 200) goto wrap_y::@2 + [63] if((signed word) wrap_y::y#4>=(byte/word/signed word/dword/signed dword) $c8) goto wrap_y::@2 to:wrap_y::@4 wrap_y::@4: scope:[wrap_y] from wrap_y::@1 wrap_y::@5 [64] (signed word) wrap_y::y#6 ← phi( wrap_y::@1/(signed word) wrap_y::y#4 wrap_y::@5/(signed word) wrap_y::y#3 ) @@ -135,10 +135,10 @@ wrap_y::@return: scope:[wrap_y] from wrap_y::@6 [67] return to:@return wrap_y::@5: scope:[wrap_y] from wrap_y::@4 - [68] (signed word) wrap_y::y#3 ← (signed word) wrap_y::y#6 + (byte/word/signed word/dword/signed dword) 200 + [68] (signed word) wrap_y::y#3 ← (signed word) wrap_y::y#6 + (byte/word/signed word/dword/signed dword) $c8 to:wrap_y::@4 wrap_y::@2: scope:[wrap_y] from wrap_y::@1 - [69] (signed word) wrap_y::y#2 ← (signed word) wrap_y::y#4 - (byte/word/signed word/dword/signed dword) 200 + [69] (signed word) wrap_y::y#2 ← (signed word) wrap_y::y#4 - (byte/word/signed word/dword/signed dword) $c8 to:wrap_y::@1 sin16s_gen2: scope:[sin16s_gen2] from main::@11 [70] phi() @@ -150,7 +150,7 @@ sin16s_gen2::@3: scope:[sin16s_gen2] from sin16s_gen2 to:sin16s_gen2::@1 sin16s_gen2::@1: scope:[sin16s_gen2] from sin16s_gen2::@3 sin16s_gen2::@5 [74] (word) sin16s_gen2::i#2 ← phi( sin16s_gen2::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen2::@5/(word) sin16s_gen2::i#1 ) - [74] (signed word*) sin16s_gen2::sintab#2 ← phi( sin16s_gen2::@3/(const signed word[512]) sin#0 sin16s_gen2::@5/(signed word*) sin16s_gen2::sintab#0 ) + [74] (signed word*) sin16s_gen2::sintab#2 ← phi( sin16s_gen2::@3/(const signed word[$200]) sin#0 sin16s_gen2::@5/(signed word*) sin16s_gen2::sintab#0 ) [74] (dword) sin16s_gen2::x#2 ← phi( sin16s_gen2::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen2::@5/(dword) sin16s_gen2::x#1 ) [75] (dword) sin16s::x#0 ← (dword) sin16s_gen2::x#2 [76] call sin16s @@ -294,7 +294,7 @@ sin16s::@15: scope:[sin16s] from sin16s::@12 to:sin16s::@3 mulu16_sel: scope:[mulu16_sel] from sin16s::@10 sin16s::@11 sin16s::@2 sin16s::@8 sin16s::@9 [152] (byte) mulu16_sel::select#5 ← phi( sin16s::@10/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@11/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16s::@9/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [152] (word) mulu16_sel::v2#5 ← phi( sin16s::@10/(word) mulu16_sel::v2#3 sin16s::@11/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@8/(word) mulu16_sel::v2#1 sin16s::@9/(dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 ) + [152] (word) mulu16_sel::v2#5 ← phi( sin16s::@10/(word) mulu16_sel::v2#3 sin16s::@11/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@8/(word) mulu16_sel::v2#1 sin16s::@9/(dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 ) [152] (word) mulu16_sel::v1#5 ← phi( sin16s::@10/(word) mulu16_sel::v1#3 sin16s::@11/(word) mulu16_sel::v1#4 sin16s::@2/(word) mulu16_sel::v1#0 sin16s::@8/(word) mulu16_sel::v1#1 sin16s::@9/(word) mulu16_sel::v1#2 ) [153] (word) mul16u::a#2 ← (word) mulu16_sel::v1#5 [154] (word) mul16u::b#1 ← (word) mulu16_sel::v2#5 @@ -338,7 +338,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 [172] (word) divr16u::rem#5 ← phi( divr16u/(word) divr16u::rem#10 divr16u::@3/(word) divr16u::rem#11 ) [173] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [174] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 - [175] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + [175] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [176] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 to:divr16u::@4 divr16u::@4: scope:[divr16u] from divr16u::@1 @@ -358,7 +358,7 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 [184] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [184] (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) [185] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 - [186] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 + [186] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 to:divr16u::@6 divr16u::@6: scope:[divr16u] from divr16u::@3 [187] (word) rem16u#1 ← (word) divr16u::rem#11 @@ -367,7 +367,7 @@ divr16u::@return: scope:[divr16u] from divr16u::@6 [188] return to:@return bitmap_clear: scope:[bitmap_clear] from main::@10 - [189] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_yhi#0) w= *((const byte[256]) bitmap_plot_ylo#0) + [189] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_yhi#0) w= *((const byte[$100]) bitmap_plot_ylo#0) [190] (byte*~) bitmap_clear::bitmap#5 ← (byte*)(word~) bitmap_clear::$3 to:bitmap_clear::@1 bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear bitmap_clear::@3 @@ -380,11 +380,11 @@ bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1 bitmap_clear::@2 [193] *((byte*) bitmap_clear::bitmap#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [194] (byte*) bitmap_clear::bitmap#1 ← ++ (byte*) bitmap_clear::bitmap#2 [195] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 - [196] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) 200) goto bitmap_clear::@2 + [196] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) $c8) goto bitmap_clear::@2 to:bitmap_clear::@3 bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2 [197] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 - [198] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto bitmap_clear::@1 + [198] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto bitmap_clear::@1 to:bitmap_clear::@return bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3 [199] return @@ -394,13 +394,13 @@ bitmap_init: scope:[bitmap_init] from main::@9 to:bitmap_init::@1 bitmap_init::@1: scope:[bitmap_init] from bitmap_init bitmap_init::@2 [201] (byte) bitmap_init::x#2 ← phi( bitmap_init/(byte/signed byte/word/signed word/dword/signed dword) 0 bitmap_init::@2/(byte) bitmap_init::x#1 ) - [201] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte/word/signed word/dword/signed dword) 128 bitmap_init::@2/(byte) bitmap_init::bits#4 ) - [202] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 + [201] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte/word/signed word/dword/signed dword) $80 bitmap_init::@2/(byte) bitmap_init::bits#4 ) + [202] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [203] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [204] if((byte) bitmap_init::bits#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@10 to:bitmap_init::@2 bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@10 - [205] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@10/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte/word/signed word/dword/signed dword) 128 ) + [205] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@10/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte/word/signed word/dword/signed dword) $80 ) [206] (byte) bitmap_init::x#1 ← ++ (byte) bitmap_init::x#2 [207] if((byte) bitmap_init::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@1 to:bitmap_init::@3 @@ -410,14 +410,14 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4 [209] (byte~) bitmap_init::$3 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [210] (byte~) bitmap_init::$4 ← < (byte*) bitmap_init::yoffs#2 [211] (byte~) bitmap_init::$5 ← (byte~) bitmap_init::$3 | (byte~) bitmap_init::$4 - [212] *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5 + [212] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5 [213] (byte~) bitmap_init::$6 ← > (byte*) bitmap_init::yoffs#2 - [214] *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6 + [214] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6 [215] (byte~) bitmap_init::$7 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [216] if((byte~) bitmap_init::$7!=(byte/signed byte/word/signed word/dword/signed dword) 7) goto bitmap_init::@4 to:bitmap_init::@7 bitmap_init::@7: scope:[bitmap_init] from bitmap_init::@3 - [217] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 + [217] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 to:bitmap_init::@4 bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@7 [218] (byte*) bitmap_init::yoffs#4 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 bitmap_init::@7/(byte*) bitmap_init::yoffs#1 ) diff --git a/src/test/ref/examples/sinplotter/sine-plotter.log b/src/test/ref/examples/sinplotter/sine-plotter.log index 3af924083..dd93f9d65 100644 --- a/src/test/ref/examples/sinplotter/sine-plotter.log +++ b/src/test/ref/examples/sinplotter/sine-plotter.log @@ -7,66 +7,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -77,12 +77,12 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@4 @4: scope:[] from @begin (byte) rem8u#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -106,7 +106,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 (word~) divr16u::$0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 (word) divr16u::rem#0 ← (word~) divr16u::$0 (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 - (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 (bool~) divr16u::$3 ← (byte~) divr16u::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) divr16u::$4 ← ! (bool~) divr16u::$3 if((bool~) divr16u::$4) goto divr16u::@2 @@ -140,8 +140,8 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 (word) divr16u::dividend#6 ← phi( divr16u::@2/(word) divr16u::dividend#0 divr16u::@5/(word) divr16u::dividend#8 ) (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) (byte) divr16u::i#2 ← phi( divr16u::@2/(byte) divr16u::i#3 divr16u::@5/(byte) divr16u::i#4 ) - (byte) divr16u::i#1 ← (byte) divr16u::i#2 + rangenext(0,15) - (bool~) divr16u::$11 ← (byte) divr16u::i#1 != rangelast(0,15) + (byte) divr16u::i#1 ← (byte) divr16u::i#2 + rangenext(0,$f) + (bool~) divr16u::$11 ← (byte) divr16u::i#1 != rangelast(0,$f) if((bool~) divr16u::$11) goto divr16u::@1 to:divr16u::@6 divr16u::@5: scope:[divr16u] from divr16u::@2 @@ -324,12 +324,12 @@ mul16s::@return: scope:[mul16s] from mul16s::@2 to:@return @17: scope:[] from @10 (word) rem16u#34 ← phi( @10/(word) rem16u#36 ) - (dword) PI2_u4f28#0 ← (dword/signed dword) 1686629713 - (dword) PI_u4f28#0 ← (dword/signed dword) 843314857 - (dword) PI_HALF_u4f28#0 ← (dword/signed dword) 421657428 - (word) PI2_u4f12#0 ← (word/signed word/dword/signed dword) 25736 - (word) PI_u4f12#0 ← (word/signed word/dword/signed dword) 12868 - (word) PI_HALF_u4f12#0 ← (word/signed word/dword/signed dword) 6434 + (dword) PI2_u4f28#0 ← (dword/signed dword) $6487ed51 + (dword) PI_u4f28#0 ← (dword/signed dword) $3243f6a9 + (dword) PI_HALF_u4f28#0 ← (dword/signed dword) $1921fb54 + (word) PI2_u4f12#0 ← (word/signed word/dword/signed dword) $6488 + (word) PI_u4f12#0 ← (word/signed word/dword/signed dword) $3244 + (word) PI_HALF_u4f12#0 ← (word/signed word/dword/signed dword) $1922 to:@26 sin16s_gen2: scope:[sin16s_gen2] from main::@11 (signed word*) sin16s_gen2::sintab#6 ← phi( main::@11/(signed word*) sin16s_gen2::sintab#1 ) @@ -467,7 +467,7 @@ sin16s::@9: scope:[sin16s] from sin16s::@8 (word) mulu16_sel::return#8 ← phi( sin16s::@8/(word) mulu16_sel::return#1 ) (word~) sin16s::$9 ← (word) mulu16_sel::return#8 (word) sin16s::x3#0 ← (word~) sin16s::$9 - (word/signed word/dword/signed dword~) sin16s::$10 ← (dword/signed dword) 65536 / (byte/signed byte/word/signed word/dword/signed dword) 6 + (word/signed word/dword/signed dword~) sin16s::$10 ← (dword/signed dword) $10000 / (byte/signed byte/word/signed word/dword/signed dword) 6 (word) mulu16_sel::v1#2 ← (word) sin16s::x3#0 (word) mulu16_sel::v2#2 ← (word/signed word/dword/signed dword~) sin16s::$10 (byte) mulu16_sel::select#2 ← (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -583,20 +583,20 @@ fill::@return: scope:[fill] from fill::@1 to:@return @26: scope:[] from @17 (word) rem16u#32 ← phi( @17/(word) rem16u#34 ) - (byte[256]) bitmap_plot_ylo#0 ← { fill( 256, 0) } - (byte[256]) bitmap_plot_yhi#0 ← { fill( 256, 0) } - (byte[256]) bitmap_plot_bit#0 ← { fill( 256, 0) } + (byte[$100]) bitmap_plot_ylo#0 ← { fill( $100, 0) } + (byte[$100]) bitmap_plot_yhi#0 ← { fill( $100, 0) } + (byte[$100]) bitmap_plot_bit#0 ← { fill( $100, 0) } to:@29 bitmap_init: scope:[bitmap_init] from main::@9 (byte*) bitmap_init::bitmap#5 ← phi( main::@9/(byte*) bitmap_init::bitmap#0 ) - (byte) bitmap_init::bits#0 ← (byte/word/signed word/dword/signed dword) 128 + (byte) bitmap_init::bits#0 ← (byte/word/signed word/dword/signed dword) $80 (byte) bitmap_init::x#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:bitmap_init::@1 bitmap_init::@1: scope:[bitmap_init] from bitmap_init bitmap_init::@2 (byte*) bitmap_init::bitmap#3 ← phi( bitmap_init/(byte*) bitmap_init::bitmap#5 bitmap_init::@2/(byte*) bitmap_init::bitmap#2 ) (byte) bitmap_init::x#2 ← phi( bitmap_init/(byte) bitmap_init::x#0 bitmap_init::@2/(byte) bitmap_init::x#1 ) (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte) bitmap_init::bits#0 bitmap_init::@2/(byte) bitmap_init::bits#4 ) - *((byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 + *((byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 (bool~) bitmap_init::$0 ← (byte) bitmap_init::bits#1 == (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) bitmap_init::$1 ← ! (bool~) bitmap_init::$0 @@ -606,14 +606,14 @@ bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@5 (byte*) bitmap_init::bitmap#2 ← phi( bitmap_init::@1/(byte*) bitmap_init::bitmap#3 bitmap_init::@5/(byte*) bitmap_init::bitmap#4 ) (byte) bitmap_init::bits#4 ← phi( bitmap_init::@1/(byte) bitmap_init::bits#1 bitmap_init::@5/(byte) bitmap_init::bits#2 ) (byte) bitmap_init::x#3 ← phi( bitmap_init::@1/(byte) bitmap_init::x#2 bitmap_init::@5/(byte) bitmap_init::x#4 ) - (byte) bitmap_init::x#1 ← (byte) bitmap_init::x#3 + rangenext(0,255) - (bool~) bitmap_init::$2 ← (byte) bitmap_init::x#1 != rangelast(0,255) + (byte) bitmap_init::x#1 ← (byte) bitmap_init::x#3 + rangenext(0,$ff) + (bool~) bitmap_init::$2 ← (byte) bitmap_init::x#1 != rangelast(0,$ff) if((bool~) bitmap_init::$2) goto bitmap_init::@1 to:bitmap_init::@6 bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@1 (byte*) bitmap_init::bitmap#4 ← phi( bitmap_init::@1/(byte*) bitmap_init::bitmap#3 ) (byte) bitmap_init::x#4 ← phi( bitmap_init::@1/(byte) bitmap_init::x#2 ) - (byte) bitmap_init::bits#2 ← (byte/word/signed word/dword/signed dword) 128 + (byte) bitmap_init::bits#2 ← (byte/word/signed word/dword/signed dword) $80 to:bitmap_init::@2 bitmap_init::@6: scope:[bitmap_init] from bitmap_init::@2 (byte*) bitmap_init::bitmap#1 ← phi( bitmap_init::@2/(byte*) bitmap_init::bitmap#2 ) @@ -626,9 +626,9 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@4 bitmap_init::@6 (byte~) bitmap_init::$3 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 (byte~) bitmap_init::$4 ← < (byte*) bitmap_init::yoffs#2 (byte~) bitmap_init::$5 ← (byte~) bitmap_init::$3 | (byte~) bitmap_init::$4 - *((byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5 + *((byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5 (byte~) bitmap_init::$6 ← > (byte*) bitmap_init::yoffs#2 - *((byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6 + *((byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6 (byte~) bitmap_init::$7 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 (bool~) bitmap_init::$8 ← (byte~) bitmap_init::$7 == (byte/signed byte/word/signed word/dword/signed dword) 7 (bool~) bitmap_init::$9 ← ! (bool~) bitmap_init::$8 @@ -637,14 +637,14 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@4 bitmap_init::@6 bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@7 (byte*) bitmap_init::yoffs#4 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 bitmap_init::@7/(byte*) bitmap_init::yoffs#1 ) (byte) bitmap_init::y#3 ← phi( bitmap_init::@3/(byte) bitmap_init::y#2 bitmap_init::@7/(byte) bitmap_init::y#4 ) - (byte) bitmap_init::y#1 ← (byte) bitmap_init::y#3 + rangenext(0,255) - (bool~) bitmap_init::$12 ← (byte) bitmap_init::y#1 != rangelast(0,255) + (byte) bitmap_init::y#1 ← (byte) bitmap_init::y#3 + rangenext(0,$ff) + (bool~) bitmap_init::$12 ← (byte) bitmap_init::y#1 != rangelast(0,$ff) if((bool~) bitmap_init::$12) goto bitmap_init::@3 to:bitmap_init::@return bitmap_init::@7: scope:[bitmap_init] from bitmap_init::@3 (byte) bitmap_init::y#4 ← phi( bitmap_init::@3/(byte) bitmap_init::y#2 ) (byte*) bitmap_init::yoffs#3 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 ) - (word/signed word/dword/signed dword~) bitmap_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 8 + (word/signed word/dword/signed dword~) bitmap_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 8 (byte*~) bitmap_init::$11 ← (byte*) bitmap_init::yoffs#3 + (word/signed word/dword/signed dword~) bitmap_init::$10 (byte*) bitmap_init::yoffs#1 ← (byte*~) bitmap_init::$11 to:bitmap_init::@4 @@ -652,7 +652,7 @@ bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4 return to:@return bitmap_clear: scope:[bitmap_clear] from main::@10 - (byte*~) bitmap_clear::$0 ← ((byte*)) { *((byte[256]) bitmap_plot_yhi#0 + (byte/signed byte/word/signed word/dword/signed dword) 0), *((byte[256]) bitmap_plot_ylo#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) } + (byte*~) bitmap_clear::$0 ← ((byte*)) { *((byte[$100]) bitmap_plot_yhi#0 + (byte/signed byte/word/signed word/dword/signed dword) 0), *((byte[$100]) bitmap_plot_ylo#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) } (byte*) bitmap_clear::bitmap#0 ← (byte*~) bitmap_clear::$0 (byte) bitmap_clear::y#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:bitmap_clear::@1 @@ -667,15 +667,15 @@ bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1 bitmap_clear::@2 (byte*) bitmap_clear::bitmap#2 ← phi( bitmap_clear::@1/(byte*) bitmap_clear::bitmap#3 bitmap_clear::@2/(byte*) bitmap_clear::bitmap#1 ) *((byte*) bitmap_clear::bitmap#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) bitmap_clear::bitmap#1 ← ++ (byte*) bitmap_clear::bitmap#2 - (byte) bitmap_clear::x#1 ← (byte) bitmap_clear::x#2 + rangenext(0,199) - (bool~) bitmap_clear::$1 ← (byte) bitmap_clear::x#1 != rangelast(0,199) + (byte) bitmap_clear::x#1 ← (byte) bitmap_clear::x#2 + rangenext(0,$c7) + (bool~) bitmap_clear::$1 ← (byte) bitmap_clear::x#1 != rangelast(0,$c7) if((bool~) bitmap_clear::$1) goto bitmap_clear::@2 to:bitmap_clear::@3 bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2 (byte*) bitmap_clear::bitmap#4 ← phi( bitmap_clear::@2/(byte*) bitmap_clear::bitmap#1 ) (byte) bitmap_clear::y#2 ← phi( bitmap_clear::@2/(byte) bitmap_clear::y#3 ) - (byte) bitmap_clear::y#1 ← (byte) bitmap_clear::y#2 + rangenext(0,39) - (bool~) bitmap_clear::$2 ← (byte) bitmap_clear::y#1 != rangelast(0,39) + (byte) bitmap_clear::y#1 ← (byte) bitmap_clear::y#2 + rangenext(0,$27) + (bool~) bitmap_clear::$2 ← (byte) bitmap_clear::y#1 != rangelast(0,$27) if((bool~) bitmap_clear::$2) goto bitmap_clear::@1 to:bitmap_clear::@return bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3 @@ -684,23 +684,23 @@ bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3 bitmap_plot: scope:[bitmap_plot] from render_sine::@5 render_sine::@7 (word) bitmap_plot::x#2 ← phi( render_sine::@5/(word) bitmap_plot::x#0 render_sine::@7/(word) bitmap_plot::x#1 ) (byte) bitmap_plot::y#2 ← phi( render_sine::@5/(byte) bitmap_plot::y#0 render_sine::@7/(byte) bitmap_plot::y#1 ) - (byte*~) bitmap_plot::$0 ← ((byte*)) { *((byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#2), *((byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#2) } + (byte*~) bitmap_plot::$0 ← ((byte*)) { *((byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#2), *((byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#2) } (byte*) bitmap_plot::plotter#0 ← (byte*~) bitmap_plot::$0 - (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#2 & (word/dword/signed dword) 65528 + (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#2 & (word/dword/signed dword) $fff8 (byte*) bitmap_plot::plotter#1 ← (byte*) bitmap_plot::plotter#0 + (word~) bitmap_plot::$1 (byte~) bitmap_plot::$2 ← < (word) bitmap_plot::x#2 - *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((byte[256]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) + *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((byte[$100]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) to:bitmap_plot::@return bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot return to:@return @29: scope:[] from @26 (word) rem16u#30 ← phi( @26/(word) rem16u#32 ) - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte*) BITMAP#0 ← ((byte*)) (word/signed word/dword/signed dword) 8192 - (word) SIN_SIZE#0 ← (word/signed word/dword/signed dword) 512 - (signed word[512]) sin#0 ← { fill( 512, 0) } - (signed word*) sin2#0 ← ((signed word*)) (word/signed word/dword/signed dword) 5120 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte*) BITMAP#0 ← ((byte*)) (word/signed word/dword/signed dword) $2000 + (word) SIN_SIZE#0 ← (word/signed word/dword/signed dword) $200 + (signed word[$200]) sin#0 ← { fill( $200, 0) } + (signed word*) sin2#0 ← ((signed word*)) (word/signed word/dword/signed dword) $1400 kickasm(location (signed word*) sin2#0) {{ .for(var i=0; i<512; i++) { .word sin(toRadians([i*360]/512))*320 } @@ -775,13 +775,13 @@ main::toD0181: scope:[main] from main::@7 (byte*) main::toD0181_gfx#1 ← phi( main::@7/(byte*) main::toD0181_gfx#0 ) (byte*) main::toD0181_screen#1 ← phi( main::@7/(byte*) main::toD0181_screen#0 ) (word) main::toD0181_$0#0 ← ((word)) (byte*) main::toD0181_screen#1 - (word) main::toD0181_$1#0 ← (word) main::toD0181_$0#0 & (word/signed word/dword/signed dword) 16383 + (word) main::toD0181_$1#0 ← (word) main::toD0181_$0#0 & (word/signed word/dword/signed dword) $3fff (word) main::toD0181_$2#0 ← (word) main::toD0181_$1#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) main::toD0181_$3#0 ← > (word) main::toD0181_$2#0 (word) main::toD0181_$4#0 ← ((word)) (byte*) main::toD0181_gfx#1 (byte) main::toD0181_$5#0 ← > (word) main::toD0181_$4#0 (byte) main::toD0181_$6#0 ← (byte) main::toD0181_$5#0 >> (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte) main::toD0181_$7#0 ← (byte) main::toD0181_$6#0 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) main::toD0181_$7#0 ← (byte) main::toD0181_$6#0 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte) main::toD0181_$8#0 ← (byte) main::toD0181_$3#0 | (byte) main::toD0181_$7#0 (byte) main::toD0181_return#0 ← (byte) main::toD0181_$8#0 to:main::toD0181_@return @@ -802,7 +802,7 @@ main::@8: scope:[main] from main::toD0181_@return (byte~) main::$4 ← (byte) main::toD0181_return#3 *((byte*) D018#0) ← (byte~) main::$4 (byte*) fill::start#0 ← (byte*) SCREEN#3 - (word) fill::size#0 ← (word/signed word/dword/signed dword) 1000 + (word) fill::size#0 ← (word/signed word/dword/signed dword) $3e8 (byte) fill::val#0 ← (byte) WHITE#0 call fill to:main::@9 @@ -821,11 +821,11 @@ main::@10: scope:[main] from main::@9 main::@11: scope:[main] from main::@10 (signed word*) sin2#9 ← phi( main::@10/(signed word*) sin2#11 ) (word) rem16u#23 ← phi( main::@10/(word) rem16u#27 ) - (signed word/signed dword~) main::$8 ← - (word/signed word/dword/signed dword) 320 - (signed word*) sin16s_gen2::sintab#1 ← (signed word[512]) sin#0 + (signed word/signed dword~) main::$8 ← - (word/signed word/dword/signed dword) $140 + (signed word*) sin16s_gen2::sintab#1 ← (signed word[$200]) sin#0 (word) sin16s_gen2::wavelength#0 ← (word) SIN_SIZE#0 (signed word) sin16s_gen2::min#0 ← (signed word/signed dword~) main::$8 - (signed word) sin16s_gen2::max#0 ← (word/signed word/dword/signed dword) 320 + (signed word) sin16s_gen2::max#0 ← (word/signed word/dword/signed dword) $140 call sin16s_gen2 to:main::@12 main::@12: scope:[main] from main::@11 @@ -860,7 +860,7 @@ render_sine::@1: scope:[render_sine] from render_sine render_sine::@2 (word) render_sine::xpos#6 ← phi( render_sine/(word) render_sine::xpos#0 render_sine::@2/(word) render_sine::xpos#8 ) (word) render_sine::sin_idx#2 ← phi( render_sine/(word) render_sine::sin_idx#0 render_sine::@2/(word) render_sine::sin_idx#1 ) (word~) render_sine::$0 ← (word) render_sine::sin_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - (signed word*~) render_sine::$1 ← (signed word[512]) sin#0 + (word~) render_sine::$0 + (signed word*~) render_sine::$1 ← (signed word[$200]) sin#0 + (word~) render_sine::$0 (signed word) render_sine::sin_val#0 ← *((signed word*~) render_sine::$1) (signed word) wrap_y::y#0 ← (signed word) render_sine::sin_val#0 call wrap_y @@ -884,7 +884,7 @@ render_sine::@6: scope:[render_sine] from render_sine::@5 (word~) render_sine::$4 ← (word) render_sine::sin_idx#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 (signed word*~) render_sine::$5 ← (signed word*) sin2#1 + (word~) render_sine::$4 (signed word) render_sine::sin2_val#0 ← *((signed word*~) render_sine::$5) - (signed word/signed dword~) render_sine::$6 ← (signed word) render_sine::sin2_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 10 + (signed word/signed dword~) render_sine::$6 ← (signed word) render_sine::sin2_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $a (signed word) wrap_y::y#1 ← (signed word/signed dword~) render_sine::$6 call wrap_y (byte) wrap_y::return#1 ← (byte) wrap_y::return#3 @@ -905,7 +905,7 @@ render_sine::@8: scope:[render_sine] from render_sine::@7 (word) render_sine::sin_idx#7 ← phi( render_sine::@7/(word) render_sine::sin_idx#8 ) (word) render_sine::xpos#5 ← phi( render_sine::@7/(word) render_sine::xpos#4 ) (word) render_sine::xpos#1 ← ++ (word) render_sine::xpos#5 - (bool~) render_sine::$9 ← (word) render_sine::xpos#1 == (word/signed word/dword/signed dword) 320 + (bool~) render_sine::$9 ← (word) render_sine::xpos#1 == (word/signed word/dword/signed dword) $140 (bool~) render_sine::$10 ← ! (bool~) render_sine::$9 if((bool~) render_sine::$10) goto render_sine::@2 to:render_sine::@3 @@ -930,12 +930,12 @@ wrap_y: scope:[wrap_y] from render_sine::@1 render_sine::@6 to:wrap_y::@1 wrap_y::@1: scope:[wrap_y] from wrap_y wrap_y::@2 (signed word) wrap_y::y#4 ← phi( wrap_y/(signed word) wrap_y::y#9 wrap_y::@2/(signed word) wrap_y::y#2 ) - (bool~) wrap_y::$0 ← (signed word) wrap_y::y#4 >= (byte/word/signed word/dword/signed dword) 200 + (bool~) wrap_y::$0 ← (signed word) wrap_y::y#4 >= (byte/word/signed word/dword/signed dword) $c8 if((bool~) wrap_y::$0) goto wrap_y::@2 to:wrap_y::@4 wrap_y::@2: scope:[wrap_y] from wrap_y::@1 (signed word) wrap_y::y#5 ← phi( wrap_y::@1/(signed word) wrap_y::y#4 ) - (signed word) wrap_y::y#2 ← (signed word) wrap_y::y#5 - (byte/word/signed word/dword/signed dword) 200 + (signed word) wrap_y::y#2 ← (signed word) wrap_y::y#5 - (byte/word/signed word/dword/signed dword) $c8 to:wrap_y::@1 wrap_y::@4: scope:[wrap_y] from wrap_y::@1 wrap_y::@5 (signed word) wrap_y::y#6 ← phi( wrap_y::@1/(signed word) wrap_y::y#4 wrap_y::@5/(signed word) wrap_y::y#3 ) @@ -944,7 +944,7 @@ wrap_y::@4: scope:[wrap_y] from wrap_y::@1 wrap_y::@5 to:wrap_y::@6 wrap_y::@5: scope:[wrap_y] from wrap_y::@4 (signed word) wrap_y::y#7 ← phi( wrap_y::@4/(signed word) wrap_y::y#6 ) - (signed word) wrap_y::y#3 ← (signed word) wrap_y::y#7 + (byte/word/signed word/dword/signed dword) 200 + (signed word) wrap_y::y#3 ← (signed word) wrap_y::y#7 + (byte/word/signed word/dword/signed dword) $c8 to:wrap_y::@4 wrap_y::@6: scope:[wrap_y] from wrap_y::@4 (signed word) wrap_y::y#8 ← phi( wrap_y::@4/(signed word) wrap_y::y#6 ) @@ -1271,12 +1271,12 @@ SYMBOL TABLE SSA (byte) bitmap_plot::y#0 (byte) bitmap_plot::y#1 (byte) bitmap_plot::y#2 -(byte[256]) bitmap_plot_bit -(byte[256]) bitmap_plot_bit#0 -(byte[256]) bitmap_plot_yhi -(byte[256]) bitmap_plot_yhi#0 -(byte[256]) bitmap_plot_ylo -(byte[256]) bitmap_plot_ylo#0 +(byte[$100]) bitmap_plot_bit +(byte[$100]) bitmap_plot_bit#0 +(byte[$100]) bitmap_plot_yhi +(byte[$100]) bitmap_plot_yhi#0 +(byte[$100]) bitmap_plot_ylo +(byte[$100]) bitmap_plot_ylo#0 (dword()) div32u16u((dword) div32u16u::dividend , (word) div32u16u::divisor) (word~) div32u16u::$0 (word~) div32u16u::$1 @@ -1720,8 +1720,8 @@ SYMBOL TABLE SSA (byte) render_sine::ypos#0 (byte) render_sine::ypos2 (byte) render_sine::ypos2#0 -(signed word[512]) sin -(signed word[512]) sin#0 +(signed word[$200]) sin +(signed word[$200]) sin#0 (signed word()) sin16s((dword) sin16s::x) (bool~) sin16s::$0 (bool~) sin16s::$1 @@ -1944,7 +1944,7 @@ Inversing boolean not [264] (bool~) sin16s::$4 ← (dword) sin16s::x#4 < (dword) Inversing boolean not [324] (bool~) sin16s::$19 ← (byte) sin16s::isUpper#2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [323] (bool~) sin16s::$18 ← (byte) sin16s::isUpper#2 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not [372] (bool~) bitmap_init::$1 ← (byte) bitmap_init::bits#1 != (byte/signed byte/word/signed word/dword/signed dword) 0 from [371] (bool~) bitmap_init::$0 ← (byte) bitmap_init::bits#1 == (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not [392] (bool~) bitmap_init::$9 ← (byte~) bitmap_init::$7 != (byte/signed byte/word/signed word/dword/signed dword) 7 from [391] (bool~) bitmap_init::$8 ← (byte~) bitmap_init::$7 == (byte/signed byte/word/signed word/dword/signed dword) 7 -Inversing boolean not [537] (bool~) render_sine::$10 ← (word) render_sine::xpos#1 != (word/signed word/dword/signed dword) 320 from [536] (bool~) render_sine::$9 ← (word) render_sine::xpos#1 == (word/signed word/dword/signed dword) 320 +Inversing boolean not [537] (bool~) render_sine::$10 ← (word) render_sine::xpos#1 != (word/signed word/dword/signed dword) $140 from [536] (bool~) render_sine::$9 ← (word) render_sine::xpos#1 == (word/signed word/dword/signed dword) $140 Successful SSA optimization Pass2UnaryNotSimplification Alias (word) divr16u::rem#0 = (word~) divr16u::$0 (word) divr16u::rem#7 Alias (word) divr16u::dividend#0 = (word~) divr16u::$6 (word) divr16u::dividend#8 @@ -2146,7 +2146,7 @@ Redundant Phi (word) rem16u#10 (word) rem16u#18 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) divr16u::$4 [91] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 Simple Condition (bool~) divr16u::$9 [99] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 -Simple Condition (bool~) divr16u::$11 [106] if((byte) divr16u::i#1!=rangelast(0,15)) goto divr16u::@1 +Simple Condition (bool~) divr16u::$11 [106] if((byte) divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1 Simple Condition (bool~) mul16u::$0 [154] if((word) mul16u::a#3!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@2 Simple Condition (bool~) mul16u::$3 [159] if((byte/word~) mul16u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@4 Simple Condition (bool~) mul16s::$4 [185] if((signed word) mul16s::a#0>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16s::@1 @@ -2157,79 +2157,79 @@ Simple Condition (bool~) sin16s::$4 [265] if((dword) sin16s::x#4<(dword) PI_HALF Simple Condition (bool~) sin16s::$19 [325] if((byte) sin16s::isUpper#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@3 Simple Condition (bool~) fill::$1 [359] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 Simple Condition (bool~) bitmap_init::$1 [373] if((byte) bitmap_init::bits#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@2 -Simple Condition (bool~) bitmap_init::$2 [377] if((byte) bitmap_init::x#1!=rangelast(0,255)) goto bitmap_init::@1 +Simple Condition (bool~) bitmap_init::$2 [377] if((byte) bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 Simple Condition (bool~) bitmap_init::$9 [393] if((byte~) bitmap_init::$7!=(byte/signed byte/word/signed word/dword/signed dword) 7) goto bitmap_init::@4 -Simple Condition (bool~) bitmap_init::$12 [397] if((byte) bitmap_init::y#1!=rangelast(0,255)) goto bitmap_init::@3 -Simple Condition (bool~) bitmap_clear::$1 [413] if((byte) bitmap_clear::x#1!=rangelast(0,199)) goto bitmap_clear::@2 -Simple Condition (bool~) bitmap_clear::$2 [417] if((byte) bitmap_clear::y#1!=rangelast(0,39)) goto bitmap_clear::@1 -Simple Condition (bool~) render_sine::$10 [538] if((word) render_sine::xpos#1!=(word/signed word/dword/signed dword) 320) goto render_sine::@2 +Simple Condition (bool~) bitmap_init::$12 [397] if((byte) bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@3 +Simple Condition (bool~) bitmap_clear::$1 [413] if((byte) bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2 +Simple Condition (bool~) bitmap_clear::$2 [417] if((byte) bitmap_clear::y#1!=rangelast(0,$27)) goto bitmap_clear::@1 +Simple Condition (bool~) render_sine::$10 [538] if((word) render_sine::xpos#1!=(word/signed word/dword/signed dword) $140) goto render_sine::@2 Simple Condition (bool~) render_sine::$11 [542] if((word) render_sine::sin_idx#1<(word) SIN_SIZE#0) goto render_sine::@1 -Simple Condition (bool~) wrap_y::$0 [549] if((signed word) wrap_y::y#4>=(byte/word/signed word/dword/signed dword) 200) goto wrap_y::@2 +Simple Condition (bool~) wrap_y::$0 [549] if((signed word) wrap_y::y#4>=(byte/word/signed word/dword/signed dword) $c8) goto wrap_y::@2 Simple Condition (bool~) wrap_y::$1 [554] if((signed word) wrap_y::y#6<(byte/signed byte/word/signed word/dword/signed dword) 0) goto wrap_y::@5 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -2240,12 +2240,12 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f Constant (const byte) rem8u#0 = 0 Constant (const word) rem16u#0 = 0 Constant (const word) divr16u::quotient#0 = 0 @@ -2254,40 +2254,40 @@ Constant (const word) divr16u::rem#3 = 0 Constant (const signed byte) rem8s#0 = 0 Constant (const signed word) rem16s#0 = 0 Constant (const dword) mul16u::res#0 = 0 -Constant (const dword) PI2_u4f28#0 = 1686629713 -Constant (const dword) PI_u4f28#0 = 843314857 -Constant (const dword) PI_HALF_u4f28#0 = 421657428 -Constant (const word) PI2_u4f12#0 = 25736 -Constant (const word) PI_u4f12#0 = 12868 -Constant (const word) PI_HALF_u4f12#0 = 6434 +Constant (const dword) PI2_u4f28#0 = $6487ed51 +Constant (const dword) PI_u4f28#0 = $3243f6a9 +Constant (const dword) PI_HALF_u4f28#0 = $1921fb54 +Constant (const word) PI2_u4f12#0 = $6488 +Constant (const word) PI_u4f12#0 = $3244 +Constant (const word) PI_HALF_u4f12#0 = $1922 Constant (const dword) sin16s_gen2::x#0 = 0 Constant (const word) sin16s_gen2::i#0 = 0 Constant (const byte) sin16s::isUpper#0 = 0 Constant (const byte) sin16s::isUpper#1 = 1 Constant (const byte) mulu16_sel::select#0 = 0 Constant (const byte) mulu16_sel::select#1 = 1 -Constant (const word) mulu16_sel::v2#2 = 65536/6 +Constant (const word) mulu16_sel::v2#2 = $10000/6 Constant (const byte) mulu16_sel::select#2 = 1 Constant (const byte) mulu16_sel::select#3 = 0 Constant (const byte) mulu16_sel::select#4 = 0 -Constant (const byte[256]) bitmap_plot_ylo#0 = { fill( 256, 0) } -Constant (const byte[256]) bitmap_plot_yhi#0 = { fill( 256, 0) } -Constant (const byte[256]) bitmap_plot_bit#0 = { fill( 256, 0) } -Constant (const byte) bitmap_init::bits#0 = 128 +Constant (const byte[$100]) bitmap_plot_ylo#0 = { fill( $100, 0) } +Constant (const byte[$100]) bitmap_plot_yhi#0 = { fill( $100, 0) } +Constant (const byte[$100]) bitmap_plot_bit#0 = { fill( $100, 0) } +Constant (const byte) bitmap_init::bits#0 = $80 Constant (const byte) bitmap_init::x#0 = 0 -Constant (const byte) bitmap_init::bits#2 = 128 +Constant (const byte) bitmap_init::bits#2 = $80 Constant (const byte) bitmap_init::y#0 = 0 -Constant (const word/signed word/dword/signed dword) bitmap_init::$10 = 40*8 +Constant (const word/signed word/dword/signed dword) bitmap_init::$10 = $28*8 Constant (const byte) bitmap_clear::y#0 = 0 Constant (const byte) bitmap_clear::x#0 = 0 -Constant (const byte*) SCREEN#0 = ((byte*))1024 -Constant (const byte*) BITMAP#0 = ((byte*))8192 -Constant (const word) SIN_SIZE#0 = 512 -Constant (const signed word[512]) sin#0 = { fill( 512, 0) } -Constant (const signed word*) sin2#0 = ((signed word*))5120 -Constant (const word) fill::size#0 = 1000 -Constant (const signed word) sin16s_gen2::min#0 = -320 -Constant (const signed word) sin16s_gen2::max#0 = 320 +Constant (const byte*) SCREEN#0 = ((byte*))$400 +Constant (const byte*) BITMAP#0 = ((byte*))$2000 +Constant (const word) SIN_SIZE#0 = $200 +Constant (const signed word[$200]) sin#0 = { fill( $200, 0) } +Constant (const signed word*) sin2#0 = ((signed word*))$1400 +Constant (const word) fill::size#0 = $3e8 +Constant (const signed word) sin16s_gen2::min#0 = -$140 +Constant (const signed word) sin16s_gen2::max#0 = $140 Constant (const word) render_sine::xpos#0 = 0 Constant (const word) render_sine::sin_idx#0 = 0 Constant (const word) render_sine::xpos#2 = 0 @@ -2322,7 +2322,7 @@ Constant (const word) mul16s::$7 = ((word))mul16s::b#0 Constant (const signed word) sin16s_gen2::offs#0 = sin16s_gen2::min#0+sin16s_gen2::$1 Constant (const byte/word/dword) main::$2 = main::$1|3 Constant (const byte) main::vicSelectGfxBank1_toDd001_$1#0 = >main::vicSelectGfxBank1_toDd001_$0#0 -Constant (const word) main::toD0181_$1#0 = main::toD0181_$0#0&16383 +Constant (const word) main::toD0181_$1#0 = main::toD0181_$0#0&$3fff Constant (const byte) main::toD0181_$5#0 = >main::toD0181_$4#0 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::vicSelectGfxBank1_toDd001_$2#0 = main::vicSelectGfxBank1_toDd001_$1#0>>6 @@ -2331,7 +2331,7 @@ Constant (const byte) main::toD0181_$6#0 = main::toD0181_$5#0>>2 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::vicSelectGfxBank1_toDd001_return#0 = 3^main::vicSelectGfxBank1_toDd001_$2#0 Constant (const byte) main::toD0181_$3#0 = >main::toD0181_$2#0 -Constant (const byte) main::toD0181_$7#0 = main::toD0181_$6#0&15 +Constant (const byte) main::toD0181_$7#0 = main::toD0181_$6#0&$f Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::toD0181_return#0 = main::toD0181_$3#0|main::toD0181_$7#0 Successful SSA optimization Pass2ConstantIdentification @@ -2359,15 +2359,15 @@ Removing unused block mul16s::@4 Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks Resolved ranged next value divr16u::i#1 ← ++ divr16u::i#2 to ++ -Resolved ranged comparison value if(divr16u::i#1!=rangelast(0,15)) goto divr16u::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value bitmap_init::x#1 ← ++ bitmap_init::x#2 to ++ -Resolved ranged comparison value if(bitmap_init::x#1!=rangelast(0,255)) goto bitmap_init::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 Resolved ranged next value bitmap_init::y#1 ← ++ bitmap_init::y#2 to ++ -Resolved ranged comparison value if(bitmap_init::y#1!=rangelast(0,255)) goto bitmap_init::@3 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@3 to (byte/signed byte/word/signed word/dword/signed dword) 0 Resolved ranged next value bitmap_clear::x#1 ← ++ bitmap_clear::x#2 to ++ -Resolved ranged comparison value if(bitmap_clear::x#1!=rangelast(0,199)) goto bitmap_clear::@2 to (byte/word/signed word/dword/signed dword) 200 +Resolved ranged comparison value if(bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2 to (byte/word/signed word/dword/signed dword) $c8 Resolved ranged next value bitmap_clear::y#1 ← ++ bitmap_clear::y#4 to ++ -Resolved ranged comparison value if(bitmap_clear::y#1!=rangelast(0,39)) goto bitmap_clear::@1 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(bitmap_clear::y#1!=rangelast(0,$27)) goto bitmap_clear::@1 to (byte/signed byte/word/signed word/dword/signed dword) $28 Culled Empty Block (label) @4 Culled Empty Block (label) @6 Culled Empty Block (label) @9 @@ -2432,11 +2432,11 @@ Constant inlined mul16s::b#0 = (const signed word) sin16s_gen2::ampl#0 Constant inlined main::vicSelectGfxBank1_toDd001_$1#0 = >((word))(const byte*) SCREEN#0 Constant inlined bitmap_clear::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined sin16s_gen2::wavelength#0 = (const word) SIN_SIZE#0 -Constant inlined main::toD0181_$1#0 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383 -Constant inlined main::toD0181_$7#0 = >((word))(const byte*) BITMAP#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 -Constant inlined main::toD0181_$3#0 = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined main::toD0181_$1#0 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff +Constant inlined main::toD0181_$7#0 = >((word))(const byte*) BITMAP#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) $f +Constant inlined main::toD0181_$3#0 = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined main::toD0181_$5#0 = >((word))(const byte*) BITMAP#0 -Constant inlined sin16s_gen2::sintab#1 = (const signed word[512]) sin#0 +Constant inlined sin16s_gen2::sintab#1 = (const signed word[$200]) sin#0 Constant inlined bitmap_init::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined bitmap_init::bitmap#0 = (const byte*) BITMAP#0 Constant inlined fill::val#0 = (const byte) WHITE#0 @@ -2444,17 +2444,17 @@ Constant inlined main::toD0181_screen#0 = (const byte*) SCREEN#0 Constant inlined main::toD0181_gfx#0 = (const byte*) BITMAP#0 Constant inlined divr16u::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined div32u16u::dividend#0 = (const dword) PI2_u4f28#0 -Constant inlined bitmap_init::bits#0 = (byte/word/signed word/dword/signed dword) 128 +Constant inlined bitmap_init::bits#0 = (byte/word/signed word/dword/signed dword) $80 Constant inlined render_sine::xpos#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mul16s::$7 = ((word))(const signed word) sin16s_gen2::ampl#0 Constant inlined sin16s_gen2::$1 = (const signed word) sin16s_gen2::ampl#0>>(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined bitmap_init::bits#2 = (byte/word/signed word/dword/signed dword) 128 +Constant inlined bitmap_init::bits#2 = (byte/word/signed word/dword/signed dword) $80 Constant inlined divr16u::quotient#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined sin16s_gen2::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mul16u::res#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined divr16u::divisor#1 = (const word) SIN_SIZE#0 Constant inlined divr16u::divisor#0 = (const word) SIN_SIZE#0 -Constant inlined bitmap_init::$10 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 +Constant inlined bitmap_init::$10 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 Constant inlined main::vicSelectGfxBank1_toDd001_$2#0 = >((word))(const byte*) SCREEN#0>>(byte/signed byte/word/signed word/dword/signed dword) 6 Constant inlined render_sine::sin_idx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::vicSelectGfxBank1_toDd001_$0#0 = ((word))(const byte*) SCREEN#0 @@ -2464,12 +2464,12 @@ Constant inlined divr16u::dividend#1 = >(const dword) PI2_u4f28#0 Constant inlined divr16u::dividend#2 = <(const dword) PI2_u4f28#0 Constant inlined main::toD0181_$6#0 = >((word))(const byte*) BITMAP#0>>(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined main::$1 = (const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0 -Constant inlined main::toD0181_$2#0 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined main::toD0181_$2#0 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined main::$2 = (const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 Constant inlined render_sine::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::toD0181_$4#0 = ((word))(const byte*) BITMAP#0 Constant inlined main::$0 = (const byte) VIC_BMM#0|(const byte) VIC_DEN#0 -Constant inlined mulu16_sel::v2#2 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 +Constant inlined mulu16_sel::v2#2 = (dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 Constant inlined main::vicSelectGfxBank1_gfx#0 = (const byte*) SCREEN#0 Constant inlined bitmap_init::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined div32u16u::divisor#0 = (const word) SIN_SIZE#0 @@ -2695,7 +2695,7 @@ render_sine::@1: scope:[render_sine] from render_sine render_sine::@2 [26] (word) render_sine::xpos#3 ← phi( render_sine/(byte/signed byte/word/signed word/dword/signed dword) 0 render_sine::@2/(word) render_sine::xpos#8 ) [26] (word) render_sine::sin_idx#2 ← phi( render_sine/(byte/signed byte/word/signed word/dword/signed dword) 0 render_sine::@2/(word) render_sine::sin_idx#1 ) [27] (word~) render_sine::$0 ← (word) render_sine::sin_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [28] (signed word*~) render_sine::$1 ← (const signed word[512]) sin#0 + (word~) render_sine::$0 + [28] (signed word*~) render_sine::$1 ← (const signed word[$200]) sin#0 + (word~) render_sine::$0 [29] (signed word) render_sine::sin_val#0 ← *((signed word*~) render_sine::$1) [30] (signed word) wrap_y::y#0 ← (signed word) render_sine::sin_val#0 [31] call wrap_y @@ -2711,7 +2711,7 @@ render_sine::@6: scope:[render_sine] from render_sine::@5 [37] (word~) render_sine::$4 ← (word) render_sine::sin_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [38] (signed word*~) render_sine::$5 ← (const signed word*) sin2#0 + (word~) render_sine::$4 [39] (signed word) render_sine::sin2_val#0 ← *((signed word*~) render_sine::$5) - [40] (signed word) wrap_y::y#1 ← (signed word) render_sine::sin2_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 10 + [40] (signed word) wrap_y::y#1 ← (signed word) render_sine::sin2_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $a [41] call wrap_y [42] (byte) wrap_y::return#1 ← (byte) wrap_y::return#2 to:render_sine::@7 @@ -2723,7 +2723,7 @@ render_sine::@7: scope:[render_sine] from render_sine::@6 to:render_sine::@8 render_sine::@8: scope:[render_sine] from render_sine::@7 [47] (word) render_sine::xpos#1 ← ++ (word) render_sine::xpos#3 - [48] if((word) render_sine::xpos#1!=(word/signed word/dword/signed dword) 320) goto render_sine::@10 + [48] if((word) render_sine::xpos#1!=(word/signed word/dword/signed dword) $140) goto render_sine::@10 to:render_sine::@2 render_sine::@2: scope:[render_sine] from render_sine::@10 render_sine::@8 [49] (word) render_sine::xpos#8 ← phi( render_sine::@8/(byte/signed byte/word/signed word/dword/signed dword) 0 render_sine::@10/(word) render_sine::xpos#1 ) @@ -2739,11 +2739,11 @@ render_sine::@10: scope:[render_sine] from render_sine::@8 bitmap_plot: scope:[bitmap_plot] from render_sine::@5 render_sine::@7 [54] (word) bitmap_plot::x#2 ← phi( render_sine::@5/(word) bitmap_plot::x#0 render_sine::@7/(word) bitmap_plot::x#1 ) [54] (byte) bitmap_plot::y#2 ← phi( render_sine::@5/(byte) bitmap_plot::y#0 render_sine::@7/(byte) bitmap_plot::y#1 ) - [55] (word~) bitmap_plot::$3 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#2) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#2) - [56] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#2 & (word/dword/signed dword) 65528 + [55] (word~) bitmap_plot::$3 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#2) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#2) + [56] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#2 & (word/dword/signed dword) $fff8 [57] (byte*) bitmap_plot::plotter#1 ← (byte*)(word~) bitmap_plot::$3 + (word~) bitmap_plot::$1 [58] (byte~) bitmap_plot::$2 ← < (word) bitmap_plot::x#2 - [59] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[256]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) + [59] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[$100]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) to:bitmap_plot::@return bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot [60] return @@ -2753,7 +2753,7 @@ wrap_y: scope:[wrap_y] from render_sine::@1 render_sine::@6 to:wrap_y::@1 wrap_y::@1: scope:[wrap_y] from wrap_y wrap_y::@2 [62] (signed word) wrap_y::y#4 ← phi( wrap_y/(signed word) wrap_y::y#9 wrap_y::@2/(signed word) wrap_y::y#2 ) - [63] if((signed word) wrap_y::y#4>=(byte/word/signed word/dword/signed dword) 200) goto wrap_y::@2 + [63] if((signed word) wrap_y::y#4>=(byte/word/signed word/dword/signed dword) $c8) goto wrap_y::@2 to:wrap_y::@4 wrap_y::@4: scope:[wrap_y] from wrap_y::@1 wrap_y::@5 [64] (signed word) wrap_y::y#6 ← phi( wrap_y::@1/(signed word) wrap_y::y#4 wrap_y::@5/(signed word) wrap_y::y#3 ) @@ -2766,10 +2766,10 @@ wrap_y::@return: scope:[wrap_y] from wrap_y::@6 [67] return to:@return wrap_y::@5: scope:[wrap_y] from wrap_y::@4 - [68] (signed word) wrap_y::y#3 ← (signed word) wrap_y::y#6 + (byte/word/signed word/dword/signed dword) 200 + [68] (signed word) wrap_y::y#3 ← (signed word) wrap_y::y#6 + (byte/word/signed word/dword/signed dword) $c8 to:wrap_y::@4 wrap_y::@2: scope:[wrap_y] from wrap_y::@1 - [69] (signed word) wrap_y::y#2 ← (signed word) wrap_y::y#4 - (byte/word/signed word/dword/signed dword) 200 + [69] (signed word) wrap_y::y#2 ← (signed word) wrap_y::y#4 - (byte/word/signed word/dword/signed dword) $c8 to:wrap_y::@1 sin16s_gen2: scope:[sin16s_gen2] from main::@11 [70] phi() @@ -2781,7 +2781,7 @@ sin16s_gen2::@3: scope:[sin16s_gen2] from sin16s_gen2 to:sin16s_gen2::@1 sin16s_gen2::@1: scope:[sin16s_gen2] from sin16s_gen2::@3 sin16s_gen2::@5 [74] (word) sin16s_gen2::i#2 ← phi( sin16s_gen2::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen2::@5/(word) sin16s_gen2::i#1 ) - [74] (signed word*) sin16s_gen2::sintab#2 ← phi( sin16s_gen2::@3/(const signed word[512]) sin#0 sin16s_gen2::@5/(signed word*) sin16s_gen2::sintab#0 ) + [74] (signed word*) sin16s_gen2::sintab#2 ← phi( sin16s_gen2::@3/(const signed word[$200]) sin#0 sin16s_gen2::@5/(signed word*) sin16s_gen2::sintab#0 ) [74] (dword) sin16s_gen2::x#2 ← phi( sin16s_gen2::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen2::@5/(dword) sin16s_gen2::x#1 ) [75] (dword) sin16s::x#0 ← (dword) sin16s_gen2::x#2 [76] call sin16s @@ -2925,7 +2925,7 @@ sin16s::@15: scope:[sin16s] from sin16s::@12 to:sin16s::@3 mulu16_sel: scope:[mulu16_sel] from sin16s::@10 sin16s::@11 sin16s::@2 sin16s::@8 sin16s::@9 [152] (byte) mulu16_sel::select#5 ← phi( sin16s::@10/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@11/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16s::@9/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [152] (word) mulu16_sel::v2#5 ← phi( sin16s::@10/(word) mulu16_sel::v2#3 sin16s::@11/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@8/(word) mulu16_sel::v2#1 sin16s::@9/(dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 ) + [152] (word) mulu16_sel::v2#5 ← phi( sin16s::@10/(word) mulu16_sel::v2#3 sin16s::@11/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@8/(word) mulu16_sel::v2#1 sin16s::@9/(dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 ) [152] (word) mulu16_sel::v1#5 ← phi( sin16s::@10/(word) mulu16_sel::v1#3 sin16s::@11/(word) mulu16_sel::v1#4 sin16s::@2/(word) mulu16_sel::v1#0 sin16s::@8/(word) mulu16_sel::v1#1 sin16s::@9/(word) mulu16_sel::v1#2 ) [153] (word) mul16u::a#2 ← (word) mulu16_sel::v1#5 [154] (word) mul16u::b#1 ← (word) mulu16_sel::v2#5 @@ -2969,7 +2969,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 [172] (word) divr16u::rem#5 ← phi( divr16u/(word) divr16u::rem#10 divr16u::@3/(word) divr16u::rem#11 ) [173] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [174] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 - [175] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + [175] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [176] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 to:divr16u::@4 divr16u::@4: scope:[divr16u] from divr16u::@1 @@ -2989,7 +2989,7 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 [184] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [184] (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) [185] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 - [186] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 + [186] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 to:divr16u::@6 divr16u::@6: scope:[divr16u] from divr16u::@3 [187] (word) rem16u#1 ← (word) divr16u::rem#11 @@ -2998,7 +2998,7 @@ divr16u::@return: scope:[divr16u] from divr16u::@6 [188] return to:@return bitmap_clear: scope:[bitmap_clear] from main::@10 - [189] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_yhi#0) w= *((const byte[256]) bitmap_plot_ylo#0) + [189] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_yhi#0) w= *((const byte[$100]) bitmap_plot_ylo#0) [190] (byte*~) bitmap_clear::bitmap#5 ← (byte*)(word~) bitmap_clear::$3 to:bitmap_clear::@1 bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear bitmap_clear::@3 @@ -3011,11 +3011,11 @@ bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1 bitmap_clear::@2 [193] *((byte*) bitmap_clear::bitmap#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [194] (byte*) bitmap_clear::bitmap#1 ← ++ (byte*) bitmap_clear::bitmap#2 [195] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 - [196] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) 200) goto bitmap_clear::@2 + [196] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) $c8) goto bitmap_clear::@2 to:bitmap_clear::@3 bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2 [197] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 - [198] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto bitmap_clear::@1 + [198] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto bitmap_clear::@1 to:bitmap_clear::@return bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3 [199] return @@ -3025,13 +3025,13 @@ bitmap_init: scope:[bitmap_init] from main::@9 to:bitmap_init::@1 bitmap_init::@1: scope:[bitmap_init] from bitmap_init bitmap_init::@2 [201] (byte) bitmap_init::x#2 ← phi( bitmap_init/(byte/signed byte/word/signed word/dword/signed dword) 0 bitmap_init::@2/(byte) bitmap_init::x#1 ) - [201] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte/word/signed word/dword/signed dword) 128 bitmap_init::@2/(byte) bitmap_init::bits#4 ) - [202] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 + [201] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte/word/signed word/dword/signed dword) $80 bitmap_init::@2/(byte) bitmap_init::bits#4 ) + [202] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [203] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [204] if((byte) bitmap_init::bits#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@10 to:bitmap_init::@2 bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@10 - [205] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@10/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte/word/signed word/dword/signed dword) 128 ) + [205] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@10/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte/word/signed word/dword/signed dword) $80 ) [206] (byte) bitmap_init::x#1 ← ++ (byte) bitmap_init::x#2 [207] if((byte) bitmap_init::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@1 to:bitmap_init::@3 @@ -3041,14 +3041,14 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4 [209] (byte~) bitmap_init::$3 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [210] (byte~) bitmap_init::$4 ← < (byte*) bitmap_init::yoffs#2 [211] (byte~) bitmap_init::$5 ← (byte~) bitmap_init::$3 | (byte~) bitmap_init::$4 - [212] *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5 + [212] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5 [213] (byte~) bitmap_init::$6 ← > (byte*) bitmap_init::yoffs#2 - [214] *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6 + [214] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6 [215] (byte~) bitmap_init::$7 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [216] if((byte~) bitmap_init::$7!=(byte/signed byte/word/signed word/dword/signed dword) 7) goto bitmap_init::@4 to:bitmap_init::@7 bitmap_init::@7: scope:[bitmap_init] from bitmap_init::@3 - [217] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 + [217] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 to:bitmap_init::@4 bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@7 [218] (byte*) bitmap_init::yoffs#4 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 bitmap_init::@7/(byte*) bitmap_init::yoffs#1 ) @@ -3212,9 +3212,9 @@ VARIABLE REGISTER WEIGHTS (byte) bitmap_plot::y#0 22.0 (byte) bitmap_plot::y#1 22.0 (byte) bitmap_plot::y#2 26.0 -(byte[256]) bitmap_plot_bit -(byte[256]) bitmap_plot_yhi -(byte[256]) bitmap_plot_ylo +(byte[$100]) bitmap_plot_bit +(byte[$100]) bitmap_plot_yhi +(byte[$100]) bitmap_plot_ylo (dword()) div32u16u((dword) div32u16u::dividend , (word) div32u16u::divisor) (dword) div32u16u::dividend (word) div32u16u::divisor @@ -3368,7 +3368,7 @@ VARIABLE REGISTER WEIGHTS (byte) render_sine::ypos#0 11.0 (byte) render_sine::ypos2 (byte) render_sine::ypos2#0 11.0 -(signed word[512]) sin +(signed word[$200]) sin (signed word()) sin16s((dword) sin16s::x) (dword~) sin16s::$6 4.0 (byte) sin16s::isUpper @@ -3909,7 +3909,7 @@ render_sine: { lda sin_idx+1 rol sta _0+1 - //SEG56 [28] (signed word*~) render_sine::$1 ← (const signed word[512]) sin#0 + (word~) render_sine::$0 -- pwsz1=pwsc1_plus_vwuz2 + //SEG56 [28] (signed word*~) render_sine::$1 ← (const signed word[$200]) sin#0 + (word~) render_sine::$0 -- pwsz1=pwsc1_plus_vwuz2 lda _0 clc adc #$140 bne b10_from_b8 @@ -4082,13 +4082,13 @@ bitmap_plot: { .label x = 7 .label y = 6 .label _3 = $51 - //SEG103 [55] (word~) bitmap_plot::$3 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#2) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#2) -- vwuz1=pbuc1_derefidx_vbuz2_word_pbuc2_derefidx_vbuz2 + //SEG103 [55] (word~) bitmap_plot::$3 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#2) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#2) -- vwuz1=pbuc1_derefidx_vbuz2_word_pbuc2_derefidx_vbuz2 ldy y lda bitmap_plot_yhi,y sta _3+1 lda bitmap_plot_ylo,y sta _3 - //SEG104 [56] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#2 & (word/dword/signed dword) 65528 -- vwuz1=vwuz2_band_vwuc1 + //SEG104 [56] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#2 & (word/dword/signed dword) $fff8 -- vwuz1=vwuz2_band_vwuc1 lda x and #<$fff8 sta _1 @@ -4106,7 +4106,7 @@ bitmap_plot: { //SEG106 [58] (byte~) bitmap_plot::$2 ← < (word) bitmap_plot::x#2 -- vbuz1=_lo_vwuz2 lda x sta _2 - //SEG107 [59] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[256]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2 + //SEG107 [59] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[$100]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2 ldy #0 lda (plotter),y ldy _2 @@ -4133,7 +4133,7 @@ wrap_y: { jmp b1 //SEG113 wrap_y::@1 b1: - //SEG114 [63] if((signed word) wrap_y::y#4>=(byte/word/signed word/dword/signed dword) 200) goto wrap_y::@2 -- vwsz1_ge_vbuc1_then_la1 + //SEG114 [63] if((signed word) wrap_y::y#4>=(byte/word/signed word/dword/signed dword) $c8) goto wrap_y::@2 -- vwsz1_ge_vbuc1_then_la1 lda y cmp #$c8 lda y+1 @@ -4165,7 +4165,7 @@ wrap_y: { rts //SEG123 wrap_y::@5 b5: - //SEG124 [68] (signed word) wrap_y::y#3 ← (signed word) wrap_y::y#6 + (byte/word/signed word/dword/signed dword) 200 -- vwsz1=vwsz1_plus_vbuc1 + //SEG124 [68] (signed word) wrap_y::y#3 ← (signed word) wrap_y::y#6 + (byte/word/signed word/dword/signed dword) $c8 -- vwsz1=vwsz1_plus_vbuc1 clc lda y adc #<$c8 @@ -4176,7 +4176,7 @@ wrap_y: { jmp b4_from_b5 //SEG125 wrap_y::@2 b2: - //SEG126 [69] (signed word) wrap_y::y#2 ← (signed word) wrap_y::y#4 - (byte/word/signed word/dword/signed dword) 200 -- vwsz1=vwsz1_minus_vbuc1 + //SEG126 [69] (signed word) wrap_y::y#2 ← (signed word) wrap_y::y#4 - (byte/word/signed word/dword/signed dword) $c8 -- vwsz1=vwsz1_minus_vbuc1 lda y sec sbc #<$c8 @@ -4235,7 +4235,7 @@ sin16s_gen2: { sta i lda #>0 sta i+1 - //SEG135 [74] phi (signed word*) sin16s_gen2::sintab#2 = (const signed word[512]) sin#0 [phi:sin16s_gen2::@3->sin16s_gen2::@1#1] -- pwsz1=pwsc1 + //SEG135 [74] phi (signed word*) sin16s_gen2::sintab#2 = (const signed word[$200]) sin#0 [phi:sin16s_gen2::@3->sin16s_gen2::@1#1] -- pwsz1=pwsc1 lda #sin @@ -4765,7 +4765,7 @@ sin16s: { //SEG247 [152] phi (byte) mulu16_sel::select#5 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@9->mulu16_sel#0] -- vbuz1=vbuc1 lda #1 sta mulu16_sel.select - //SEG248 [152] phi (word) mulu16_sel::v2#5 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 + //SEG248 [152] phi (word) mulu16_sel::v2#5 = (dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 lda #<$10000/6 sta mulu16_sel.v2 lda #>$10000/6 @@ -5119,7 +5119,7 @@ divr16u: { //SEG332 [174] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 -- vbuz1=_hi_vwuz2 lda dividend+1 sta _1 - //SEG333 [175] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG333 [175] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuz1=vbuz2_band_vbuc1 lda #$80 and _1 sta _2 @@ -5182,7 +5182,7 @@ divr16u: { b3: //SEG350 [185] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG351 [186] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG351 [186] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b3 @@ -5207,7 +5207,7 @@ bitmap_clear: { .label x = $39 .label y = $36 .label _3 = $bc - //SEG357 [189] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_yhi#0) w= *((const byte[256]) bitmap_plot_ylo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 + //SEG357 [189] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_yhi#0) w= *((const byte[$100]) bitmap_plot_ylo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 lda bitmap_plot_ylo sta _3 lda bitmap_plot_yhi @@ -5256,7 +5256,7 @@ bitmap_clear: { !: //SEG375 [195] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG376 [196] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) 200) goto bitmap_clear::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG376 [196] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) $c8) goto bitmap_clear::@2 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #$c8 bne b2_from_b2 @@ -5265,7 +5265,7 @@ bitmap_clear: { b3: //SEG378 [197] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 -- vbuz1=_inc_vbuz1 inc y - //SEG379 [198] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG379 [198] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$28 bne b1_from_b3 @@ -5292,7 +5292,7 @@ bitmap_init: { //SEG384 [201] phi (byte) bitmap_init::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:bitmap_init->bitmap_init::@1#0] -- vbuz1=vbuc1 lda #0 sta x - //SEG385 [201] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init->bitmap_init::@1#1] -- vbuz1=vbuc1 + //SEG385 [201] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init->bitmap_init::@1#1] -- vbuz1=vbuc1 lda #$80 sta bits jmp b1 @@ -5303,7 +5303,7 @@ bitmap_init: { jmp b1 //SEG389 bitmap_init::@1 b1: - //SEG390 [202] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG390 [202] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuz1=vbuz2 lda bits ldy x sta bitmap_plot_bit,y @@ -5315,7 +5315,7 @@ bitmap_init: { bne b10_from_b1 //SEG393 [205] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2] b2_from_b1: - //SEG394 [205] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuz1=vbuc1 + //SEG394 [205] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuz1=vbuc1 lda #$80 sta bits jmp b2 @@ -5356,14 +5356,14 @@ bitmap_init: { lda _3 ora _4 sta _5 - //SEG408 [212] *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG408 [212] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5 -- pbuc1_derefidx_vbuz1=vbuz2 lda _5 ldy y sta bitmap_plot_ylo,y //SEG409 [213] (byte~) bitmap_init::$6 ← > (byte*) bitmap_init::yoffs#2 -- vbuz1=_hi_pbuz2 lda yoffs+1 sta _6 - //SEG410 [214] *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG410 [214] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6 -- pbuc1_derefidx_vbuz1=vbuz2 lda _6 ldy y sta bitmap_plot_yhi,y @@ -5378,7 +5378,7 @@ bitmap_init: { jmp b7 //SEG413 bitmap_init::@7 b7: - //SEG414 [217] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 + //SEG414 [217] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 clc lda yoffs adc #<$28*8 @@ -5478,7 +5478,7 @@ Statement [11] *((const byte*) CIA2_PORT_A#0) ← (const byte) main::vicSelectGf Statement [12] *((const byte*) D016#0) ← (const byte) VIC_CSEL#0 [ ] ( main:3 [ ] ) always clobbers reg byte a Statement [14] *((const byte*) D018#0) ← (const byte) main::toD0181_return#0 [ ] ( main:3 [ ] ) always clobbers reg byte a Statement [27] (word~) render_sine::$0 ← (word) render_sine::sin_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::$0 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::$0 ] ) always clobbers reg byte a -Statement [28] (signed word*~) render_sine::$1 ← (const signed word[512]) sin#0 + (word~) render_sine::$0 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::$1 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::$1 ] ) always clobbers reg byte a +Statement [28] (signed word*~) render_sine::$1 ← (const signed word[$200]) sin#0 + (word~) render_sine::$0 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::$1 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::$1 ] ) always clobbers reg byte a Statement [29] (signed word) render_sine::sin_val#0 ← *((signed word*~) render_sine::$1) [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::sin_val#0 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::sin_val#0 ] ) always clobbers reg byte a reg byte y Statement [30] (signed word) wrap_y::y#0 ← (signed word) render_sine::sin_val#0 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#0 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#0 ] ) always clobbers reg byte a Statement [34] (word) bitmap_plot::x#0 ← (word) render_sine::xpos#3 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::ypos#0 bitmap_plot::x#0 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::ypos#0 bitmap_plot::x#0 ] ) always clobbers reg byte a @@ -5486,21 +5486,21 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:72 [ r Statement [37] (word~) render_sine::$4 ← (word) render_sine::sin_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::$4 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::$4 ] ) always clobbers reg byte a Statement [38] (signed word*~) render_sine::$5 ← (const signed word*) sin2#0 + (word~) render_sine::$4 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::$5 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::$5 ] ) always clobbers reg byte a Statement [39] (signed word) render_sine::sin2_val#0 ← *((signed word*~) render_sine::$5) [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::sin2_val#0 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::sin2_val#0 ] ) always clobbers reg byte a reg byte y -Statement [40] (signed word) wrap_y::y#1 ← (signed word) render_sine::sin2_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 10 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#1 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#1 ] ) always clobbers reg byte a +Statement [40] (signed word) wrap_y::y#1 ← (signed word) render_sine::sin2_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $a [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#1 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#1 ] ) always clobbers reg byte a Statement [44] (word) bitmap_plot::x#1 ← (word) render_sine::xpos#3 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::ypos2#0 bitmap_plot::x#1 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::ypos2#0 bitmap_plot::x#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:80 [ render_sine::ypos2#0 ] -Statement [48] if((word) render_sine::xpos#1!=(word/signed word/dword/signed dword) 320) goto render_sine::@10 [ render_sine::sin_idx#2 render_sine::xpos#1 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#1 ] ) always clobbers reg byte a +Statement [48] if((word) render_sine::xpos#1!=(word/signed word/dword/signed dword) $140) goto render_sine::@10 [ render_sine::sin_idx#2 render_sine::xpos#1 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#1 ] ) always clobbers reg byte a Statement [51] if((word) render_sine::sin_idx#1<(const word) SIN_SIZE#0) goto render_sine::@1 [ render_sine::sin_idx#1 render_sine::xpos#8 ] ( main:3::render_sine:23 [ render_sine::sin_idx#1 render_sine::xpos#8 ] ) always clobbers reg byte a -Statement [55] (word~) bitmap_plot::$3 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#2) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#2) [ bitmap_plot::x#2 bitmap_plot::$3 ] ( main:3::render_sine:23::bitmap_plot:36 [ render_sine::sin_idx#2 render_sine::xpos#3 bitmap_plot::x#2 bitmap_plot::$3 ] main:3::render_sine:23::bitmap_plot:46 [ render_sine::sin_idx#2 render_sine::xpos#3 bitmap_plot::x#2 bitmap_plot::$3 ] ) always clobbers reg byte a -Statement [56] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#2 & (word/dword/signed dword) 65528 [ bitmap_plot::x#2 bitmap_plot::$3 bitmap_plot::$1 ] ( main:3::render_sine:23::bitmap_plot:36 [ render_sine::sin_idx#2 render_sine::xpos#3 bitmap_plot::x#2 bitmap_plot::$3 bitmap_plot::$1 ] main:3::render_sine:23::bitmap_plot:46 [ render_sine::sin_idx#2 render_sine::xpos#3 bitmap_plot::x#2 bitmap_plot::$3 bitmap_plot::$1 ] ) always clobbers reg byte a +Statement [55] (word~) bitmap_plot::$3 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#2) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#2) [ bitmap_plot::x#2 bitmap_plot::$3 ] ( main:3::render_sine:23::bitmap_plot:36 [ render_sine::sin_idx#2 render_sine::xpos#3 bitmap_plot::x#2 bitmap_plot::$3 ] main:3::render_sine:23::bitmap_plot:46 [ render_sine::sin_idx#2 render_sine::xpos#3 bitmap_plot::x#2 bitmap_plot::$3 ] ) always clobbers reg byte a +Statement [56] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#2 & (word/dword/signed dword) $fff8 [ bitmap_plot::x#2 bitmap_plot::$3 bitmap_plot::$1 ] ( main:3::render_sine:23::bitmap_plot:36 [ render_sine::sin_idx#2 render_sine::xpos#3 bitmap_plot::x#2 bitmap_plot::$3 bitmap_plot::$1 ] main:3::render_sine:23::bitmap_plot:46 [ render_sine::sin_idx#2 render_sine::xpos#3 bitmap_plot::x#2 bitmap_plot::$3 bitmap_plot::$1 ] ) always clobbers reg byte a Statement [57] (byte*) bitmap_plot::plotter#1 ← (byte*)(word~) bitmap_plot::$3 + (word~) bitmap_plot::$1 [ bitmap_plot::x#2 bitmap_plot::plotter#1 ] ( main:3::render_sine:23::bitmap_plot:36 [ render_sine::sin_idx#2 render_sine::xpos#3 bitmap_plot::x#2 bitmap_plot::plotter#1 ] main:3::render_sine:23::bitmap_plot:46 [ render_sine::sin_idx#2 render_sine::xpos#3 bitmap_plot::x#2 bitmap_plot::plotter#1 ] ) always clobbers reg byte a Statement [58] (byte~) bitmap_plot::$2 ← < (word) bitmap_plot::x#2 [ bitmap_plot::plotter#1 bitmap_plot::$2 ] ( main:3::render_sine:23::bitmap_plot:36 [ render_sine::sin_idx#2 render_sine::xpos#3 bitmap_plot::plotter#1 bitmap_plot::$2 ] main:3::render_sine:23::bitmap_plot:46 [ render_sine::sin_idx#2 render_sine::xpos#3 bitmap_plot::plotter#1 bitmap_plot::$2 ] ) always clobbers reg byte a -Statement [59] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[256]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) [ ] ( main:3::render_sine:23::bitmap_plot:36 [ render_sine::sin_idx#2 render_sine::xpos#3 ] main:3::render_sine:23::bitmap_plot:46 [ render_sine::sin_idx#2 render_sine::xpos#3 ] ) always clobbers reg byte a reg byte y -Statement [63] if((signed word) wrap_y::y#4>=(byte/word/signed word/dword/signed dword) 200) goto wrap_y::@2 [ wrap_y::y#4 ] ( main:3::render_sine:23::wrap_y:31 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#4 ] main:3::render_sine:23::wrap_y:41 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#4 ] ) always clobbers reg byte a +Statement [59] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[$100]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) [ ] ( main:3::render_sine:23::bitmap_plot:36 [ render_sine::sin_idx#2 render_sine::xpos#3 ] main:3::render_sine:23::bitmap_plot:46 [ render_sine::sin_idx#2 render_sine::xpos#3 ] ) always clobbers reg byte a reg byte y +Statement [63] if((signed word) wrap_y::y#4>=(byte/word/signed word/dword/signed dword) $c8) goto wrap_y::@2 [ wrap_y::y#4 ] ( main:3::render_sine:23::wrap_y:31 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#4 ] main:3::render_sine:23::wrap_y:41 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#4 ] ) always clobbers reg byte a Statement [65] if((signed word) wrap_y::y#6<(byte/signed byte/word/signed word/dword/signed dword) 0) goto wrap_y::@5 [ wrap_y::y#6 ] ( main:3::render_sine:23::wrap_y:31 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#6 ] main:3::render_sine:23::wrap_y:41 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#6 ] ) always clobbers reg byte a Statement [66] (byte) wrap_y::return#2 ← ((byte)) (signed word) wrap_y::y#6 [ wrap_y::return#2 ] ( main:3::render_sine:23::wrap_y:31 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::return#2 ] main:3::render_sine:23::wrap_y:41 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::return#2 ] ) always clobbers reg byte a -Statement [68] (signed word) wrap_y::y#3 ← (signed word) wrap_y::y#6 + (byte/word/signed word/dword/signed dword) 200 [ wrap_y::y#3 ] ( main:3::render_sine:23::wrap_y:31 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#3 ] main:3::render_sine:23::wrap_y:41 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#3 ] ) always clobbers reg byte a -Statement [69] (signed word) wrap_y::y#2 ← (signed word) wrap_y::y#4 - (byte/word/signed word/dword/signed dword) 200 [ wrap_y::y#2 ] ( main:3::render_sine:23::wrap_y:31 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#2 ] main:3::render_sine:23::wrap_y:41 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#2 ] ) always clobbers reg byte a +Statement [68] (signed word) wrap_y::y#3 ← (signed word) wrap_y::y#6 + (byte/word/signed word/dword/signed dword) $c8 [ wrap_y::y#3 ] ( main:3::render_sine:23::wrap_y:31 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#3 ] main:3::render_sine:23::wrap_y:41 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#3 ] ) always clobbers reg byte a +Statement [69] (signed word) wrap_y::y#2 ← (signed word) wrap_y::y#4 - (byte/word/signed word/dword/signed dword) $c8 [ wrap_y::y#2 ] ( main:3::render_sine:23::wrap_y:31 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#2 ] main:3::render_sine:23::wrap_y:41 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#2 ] ) always clobbers reg byte a Statement [72] (dword) div32u16u::return#2 ← (dword) div32u16u::return#0 [ div32u16u::return#2 ] ( main:3::sin16s_gen2:21 [ div32u16u::return#2 ] ) always clobbers reg byte a Statement [73] (dword) sin16s_gen2::step#0 ← (dword) div32u16u::return#2 [ sin16s_gen2::step#0 ] ( main:3::sin16s_gen2:21 [ sin16s_gen2::step#0 ] ) always clobbers reg byte a Statement [75] (dword) sin16s::x#0 ← (dword) sin16s_gen2::x#2 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::x#0 ] ( main:3::sin16s_gen2:21 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::x#0 ] ) always clobbers reg byte a @@ -5573,12 +5573,12 @@ Statement [168] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ d Statement [169] (dword) div32u16u::return#0 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#0 ] ( main:3::sin16s_gen2:21::div32u16u:71 [ div32u16u::return#0 ] ) always clobbers reg byte a Statement [174] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:3::sin16s_gen2:21::div32u16u:71::divr16u:162 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:3::sin16s_gen2:21::div32u16u:71::divr16u:166 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:53 [ divr16u::i#2 divr16u::i#1 ] -Statement [175] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:3::sin16s_gen2:21::div32u16u:71::divr16u:162 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:3::sin16s_gen2:21::div32u16u:71::divr16u:166 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a +Statement [175] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:3::sin16s_gen2:21::div32u16u:71::divr16u:162 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:3::sin16s_gen2:21::div32u16u:71::divr16u:166 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a Statement [177] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:3::sin16s_gen2:21::div32u16u:71::divr16u:162 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:3::sin16s_gen2:21::div32u16u:71::divr16u:166 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a Statement [181] if((word) divr16u::rem#6<(const word) SIN_SIZE#0) goto divr16u::@3 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:3::sin16s_gen2:21::div32u16u:71::divr16u:162 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:3::sin16s_gen2:21::div32u16u:71::divr16u:166 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) always clobbers reg byte a Statement [183] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (const word) SIN_SIZE#0 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:3::sin16s_gen2:21::div32u16u:71::divr16u:162 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:3::sin16s_gen2:21::div32u16u:71::divr16u:166 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a Statement [187] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:3::sin16s_gen2:21::div32u16u:71::divr16u:162 [ divr16u::return#0 rem16u#1 ] main:3::sin16s_gen2:21::div32u16u:71::divr16u:166 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) always clobbers reg byte a -Statement [189] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_yhi#0) w= *((const byte[256]) bitmap_plot_ylo#0) [ bitmap_clear::$3 ] ( main:3::bitmap_clear:19 [ bitmap_clear::$3 ] ) always clobbers reg byte a +Statement [189] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_yhi#0) w= *((const byte[$100]) bitmap_plot_ylo#0) [ bitmap_clear::$3 ] ( main:3::bitmap_clear:19 [ bitmap_clear::$3 ] ) always clobbers reg byte a Statement [190] (byte*~) bitmap_clear::bitmap#5 ← (byte*)(word~) bitmap_clear::$3 [ bitmap_clear::bitmap#5 ] ( main:3::bitmap_clear:19 [ bitmap_clear::bitmap#5 ] ) always clobbers reg byte a Statement [193] *((byte*) bitmap_clear::bitmap#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ( main:3::bitmap_clear:19 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp ZP_BYTE:54 [ bitmap_clear::y#4 bitmap_clear::y#1 ] @@ -5588,7 +5588,7 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:57 [ b Statement [209] (byte~) bitmap_init::$3 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$3 ] ( main:3::bitmap_init:17 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$3 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:60 [ bitmap_init::y#2 bitmap_init::y#1 ] Statement [215] (byte~) bitmap_init::$7 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$7 ] ( main:3::bitmap_init:17 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$7 ] ) always clobbers reg byte a -Statement [217] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:3::bitmap_init:17 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ) always clobbers reg byte a +Statement [217] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:3::bitmap_init:17 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ) always clobbers reg byte a Statement [225] *((byte*) fill::addr#2) ← (const byte) WHITE#0 [ fill::addr#2 ] ( main:3::fill:15 [ fill::addr#2 ] ) always clobbers reg byte a reg byte y Statement [227] if((byte*) fill::addr#1!=(const byte*) fill::end#0) goto fill::@1 [ fill::addr#1 ] ( main:3::fill:15 [ fill::addr#1 ] ) always clobbers reg byte a Statement [6] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:3 [ ] ) always clobbers reg byte a @@ -5599,27 +5599,27 @@ Statement [11] *((const byte*) CIA2_PORT_A#0) ← (const byte) main::vicSelectGf Statement [12] *((const byte*) D016#0) ← (const byte) VIC_CSEL#0 [ ] ( main:3 [ ] ) always clobbers reg byte a Statement [14] *((const byte*) D018#0) ← (const byte) main::toD0181_return#0 [ ] ( main:3 [ ] ) always clobbers reg byte a Statement [27] (word~) render_sine::$0 ← (word) render_sine::sin_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::$0 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::$0 ] ) always clobbers reg byte a -Statement [28] (signed word*~) render_sine::$1 ← (const signed word[512]) sin#0 + (word~) render_sine::$0 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::$1 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::$1 ] ) always clobbers reg byte a +Statement [28] (signed word*~) render_sine::$1 ← (const signed word[$200]) sin#0 + (word~) render_sine::$0 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::$1 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::$1 ] ) always clobbers reg byte a Statement [29] (signed word) render_sine::sin_val#0 ← *((signed word*~) render_sine::$1) [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::sin_val#0 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::sin_val#0 ] ) always clobbers reg byte a reg byte y Statement [30] (signed word) wrap_y::y#0 ← (signed word) render_sine::sin_val#0 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#0 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#0 ] ) always clobbers reg byte a Statement [34] (word) bitmap_plot::x#0 ← (word) render_sine::xpos#3 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::ypos#0 bitmap_plot::x#0 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::ypos#0 bitmap_plot::x#0 ] ) always clobbers reg byte a Statement [37] (word~) render_sine::$4 ← (word) render_sine::sin_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::$4 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::$4 ] ) always clobbers reg byte a Statement [38] (signed word*~) render_sine::$5 ← (const signed word*) sin2#0 + (word~) render_sine::$4 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::$5 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::$5 ] ) always clobbers reg byte a Statement [39] (signed word) render_sine::sin2_val#0 ← *((signed word*~) render_sine::$5) [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::sin2_val#0 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::sin2_val#0 ] ) always clobbers reg byte a reg byte y -Statement [40] (signed word) wrap_y::y#1 ← (signed word) render_sine::sin2_val#0 + (byte/signed byte/word/signed word/dword/signed dword) 10 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#1 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#1 ] ) always clobbers reg byte a +Statement [40] (signed word) wrap_y::y#1 ← (signed word) render_sine::sin2_val#0 + (byte/signed byte/word/signed word/dword/signed dword) $a [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#1 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#1 ] ) always clobbers reg byte a Statement [44] (word) bitmap_plot::x#1 ← (word) render_sine::xpos#3 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::ypos2#0 bitmap_plot::x#1 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#3 render_sine::ypos2#0 bitmap_plot::x#1 ] ) always clobbers reg byte a -Statement [48] if((word) render_sine::xpos#1!=(word/signed word/dword/signed dword) 320) goto render_sine::@10 [ render_sine::sin_idx#2 render_sine::xpos#1 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#1 ] ) always clobbers reg byte a +Statement [48] if((word) render_sine::xpos#1!=(word/signed word/dword/signed dword) $140) goto render_sine::@10 [ render_sine::sin_idx#2 render_sine::xpos#1 ] ( main:3::render_sine:23 [ render_sine::sin_idx#2 render_sine::xpos#1 ] ) always clobbers reg byte a Statement [51] if((word) render_sine::sin_idx#1<(const word) SIN_SIZE#0) goto render_sine::@1 [ render_sine::sin_idx#1 render_sine::xpos#8 ] ( main:3::render_sine:23 [ render_sine::sin_idx#1 render_sine::xpos#8 ] ) always clobbers reg byte a -Statement [55] (word~) bitmap_plot::$3 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#2) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#2) [ bitmap_plot::x#2 bitmap_plot::$3 ] ( main:3::render_sine:23::bitmap_plot:36 [ render_sine::sin_idx#2 render_sine::xpos#3 bitmap_plot::x#2 bitmap_plot::$3 ] main:3::render_sine:23::bitmap_plot:46 [ render_sine::sin_idx#2 render_sine::xpos#3 bitmap_plot::x#2 bitmap_plot::$3 ] ) always clobbers reg byte a -Statement [56] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#2 & (word/dword/signed dword) 65528 [ bitmap_plot::x#2 bitmap_plot::$3 bitmap_plot::$1 ] ( main:3::render_sine:23::bitmap_plot:36 [ render_sine::sin_idx#2 render_sine::xpos#3 bitmap_plot::x#2 bitmap_plot::$3 bitmap_plot::$1 ] main:3::render_sine:23::bitmap_plot:46 [ render_sine::sin_idx#2 render_sine::xpos#3 bitmap_plot::x#2 bitmap_plot::$3 bitmap_plot::$1 ] ) always clobbers reg byte a +Statement [55] (word~) bitmap_plot::$3 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#2) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#2) [ bitmap_plot::x#2 bitmap_plot::$3 ] ( main:3::render_sine:23::bitmap_plot:36 [ render_sine::sin_idx#2 render_sine::xpos#3 bitmap_plot::x#2 bitmap_plot::$3 ] main:3::render_sine:23::bitmap_plot:46 [ render_sine::sin_idx#2 render_sine::xpos#3 bitmap_plot::x#2 bitmap_plot::$3 ] ) always clobbers reg byte a +Statement [56] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#2 & (word/dword/signed dword) $fff8 [ bitmap_plot::x#2 bitmap_plot::$3 bitmap_plot::$1 ] ( main:3::render_sine:23::bitmap_plot:36 [ render_sine::sin_idx#2 render_sine::xpos#3 bitmap_plot::x#2 bitmap_plot::$3 bitmap_plot::$1 ] main:3::render_sine:23::bitmap_plot:46 [ render_sine::sin_idx#2 render_sine::xpos#3 bitmap_plot::x#2 bitmap_plot::$3 bitmap_plot::$1 ] ) always clobbers reg byte a Statement [57] (byte*) bitmap_plot::plotter#1 ← (byte*)(word~) bitmap_plot::$3 + (word~) bitmap_plot::$1 [ bitmap_plot::x#2 bitmap_plot::plotter#1 ] ( main:3::render_sine:23::bitmap_plot:36 [ render_sine::sin_idx#2 render_sine::xpos#3 bitmap_plot::x#2 bitmap_plot::plotter#1 ] main:3::render_sine:23::bitmap_plot:46 [ render_sine::sin_idx#2 render_sine::xpos#3 bitmap_plot::x#2 bitmap_plot::plotter#1 ] ) always clobbers reg byte a Statement [58] (byte~) bitmap_plot::$2 ← < (word) bitmap_plot::x#2 [ bitmap_plot::plotter#1 bitmap_plot::$2 ] ( main:3::render_sine:23::bitmap_plot:36 [ render_sine::sin_idx#2 render_sine::xpos#3 bitmap_plot::plotter#1 bitmap_plot::$2 ] main:3::render_sine:23::bitmap_plot:46 [ render_sine::sin_idx#2 render_sine::xpos#3 bitmap_plot::plotter#1 bitmap_plot::$2 ] ) always clobbers reg byte a -Statement [59] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[256]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) [ ] ( main:3::render_sine:23::bitmap_plot:36 [ render_sine::sin_idx#2 render_sine::xpos#3 ] main:3::render_sine:23::bitmap_plot:46 [ render_sine::sin_idx#2 render_sine::xpos#3 ] ) always clobbers reg byte a reg byte y -Statement [63] if((signed word) wrap_y::y#4>=(byte/word/signed word/dword/signed dword) 200) goto wrap_y::@2 [ wrap_y::y#4 ] ( main:3::render_sine:23::wrap_y:31 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#4 ] main:3::render_sine:23::wrap_y:41 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#4 ] ) always clobbers reg byte a +Statement [59] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[$100]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) [ ] ( main:3::render_sine:23::bitmap_plot:36 [ render_sine::sin_idx#2 render_sine::xpos#3 ] main:3::render_sine:23::bitmap_plot:46 [ render_sine::sin_idx#2 render_sine::xpos#3 ] ) always clobbers reg byte a reg byte y +Statement [63] if((signed word) wrap_y::y#4>=(byte/word/signed word/dword/signed dword) $c8) goto wrap_y::@2 [ wrap_y::y#4 ] ( main:3::render_sine:23::wrap_y:31 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#4 ] main:3::render_sine:23::wrap_y:41 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#4 ] ) always clobbers reg byte a Statement [65] if((signed word) wrap_y::y#6<(byte/signed byte/word/signed word/dword/signed dword) 0) goto wrap_y::@5 [ wrap_y::y#6 ] ( main:3::render_sine:23::wrap_y:31 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#6 ] main:3::render_sine:23::wrap_y:41 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#6 ] ) always clobbers reg byte a Statement [66] (byte) wrap_y::return#2 ← ((byte)) (signed word) wrap_y::y#6 [ wrap_y::return#2 ] ( main:3::render_sine:23::wrap_y:31 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::return#2 ] main:3::render_sine:23::wrap_y:41 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::return#2 ] ) always clobbers reg byte a -Statement [68] (signed word) wrap_y::y#3 ← (signed word) wrap_y::y#6 + (byte/word/signed word/dword/signed dword) 200 [ wrap_y::y#3 ] ( main:3::render_sine:23::wrap_y:31 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#3 ] main:3::render_sine:23::wrap_y:41 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#3 ] ) always clobbers reg byte a -Statement [69] (signed word) wrap_y::y#2 ← (signed word) wrap_y::y#4 - (byte/word/signed word/dword/signed dword) 200 [ wrap_y::y#2 ] ( main:3::render_sine:23::wrap_y:31 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#2 ] main:3::render_sine:23::wrap_y:41 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#2 ] ) always clobbers reg byte a +Statement [68] (signed word) wrap_y::y#3 ← (signed word) wrap_y::y#6 + (byte/word/signed word/dword/signed dword) $c8 [ wrap_y::y#3 ] ( main:3::render_sine:23::wrap_y:31 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#3 ] main:3::render_sine:23::wrap_y:41 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#3 ] ) always clobbers reg byte a +Statement [69] (signed word) wrap_y::y#2 ← (signed word) wrap_y::y#4 - (byte/word/signed word/dword/signed dword) $c8 [ wrap_y::y#2 ] ( main:3::render_sine:23::wrap_y:31 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#2 ] main:3::render_sine:23::wrap_y:41 [ render_sine::sin_idx#2 render_sine::xpos#3 wrap_y::y#2 ] ) always clobbers reg byte a Statement [72] (dword) div32u16u::return#2 ← (dword) div32u16u::return#0 [ div32u16u::return#2 ] ( main:3::sin16s_gen2:21 [ div32u16u::return#2 ] ) always clobbers reg byte a Statement [73] (dword) sin16s_gen2::step#0 ← (dword) div32u16u::return#2 [ sin16s_gen2::step#0 ] ( main:3::sin16s_gen2:21 [ sin16s_gen2::step#0 ] ) always clobbers reg byte a Statement [75] (dword) sin16s::x#0 ← (dword) sin16s_gen2::x#2 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::x#0 ] ( main:3::sin16s_gen2:21 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::x#0 ] ) always clobbers reg byte a @@ -5688,17 +5688,17 @@ Statement [167] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16 Statement [168] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:3::sin16s_gen2:21::div32u16u:71 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ) always clobbers reg byte a Statement [169] (dword) div32u16u::return#0 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#0 ] ( main:3::sin16s_gen2:21::div32u16u:71 [ div32u16u::return#0 ] ) always clobbers reg byte a Statement [174] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:3::sin16s_gen2:21::div32u16u:71::divr16u:162 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:3::sin16s_gen2:21::div32u16u:71::divr16u:166 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a -Statement [175] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:3::sin16s_gen2:21::div32u16u:71::divr16u:162 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:3::sin16s_gen2:21::div32u16u:71::divr16u:166 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a +Statement [175] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:3::sin16s_gen2:21::div32u16u:71::divr16u:162 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:3::sin16s_gen2:21::div32u16u:71::divr16u:166 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a Statement [177] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:3::sin16s_gen2:21::div32u16u:71::divr16u:162 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:3::sin16s_gen2:21::div32u16u:71::divr16u:166 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a Statement [181] if((word) divr16u::rem#6<(const word) SIN_SIZE#0) goto divr16u::@3 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:3::sin16s_gen2:21::div32u16u:71::divr16u:162 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:3::sin16s_gen2:21::div32u16u:71::divr16u:166 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) always clobbers reg byte a Statement [183] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (const word) SIN_SIZE#0 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:3::sin16s_gen2:21::div32u16u:71::divr16u:162 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:3::sin16s_gen2:21::div32u16u:71::divr16u:166 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a Statement [187] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:3::sin16s_gen2:21::div32u16u:71::divr16u:162 [ divr16u::return#0 rem16u#1 ] main:3::sin16s_gen2:21::div32u16u:71::divr16u:166 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) always clobbers reg byte a -Statement [189] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_yhi#0) w= *((const byte[256]) bitmap_plot_ylo#0) [ bitmap_clear::$3 ] ( main:3::bitmap_clear:19 [ bitmap_clear::$3 ] ) always clobbers reg byte a +Statement [189] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_yhi#0) w= *((const byte[$100]) bitmap_plot_ylo#0) [ bitmap_clear::$3 ] ( main:3::bitmap_clear:19 [ bitmap_clear::$3 ] ) always clobbers reg byte a Statement [190] (byte*~) bitmap_clear::bitmap#5 ← (byte*)(word~) bitmap_clear::$3 [ bitmap_clear::bitmap#5 ] ( main:3::bitmap_clear:19 [ bitmap_clear::bitmap#5 ] ) always clobbers reg byte a Statement [193] *((byte*) bitmap_clear::bitmap#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ( main:3::bitmap_clear:19 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ) always clobbers reg byte a reg byte y Statement [209] (byte~) bitmap_init::$3 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$3 ] ( main:3::bitmap_init:17 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$3 ] ) always clobbers reg byte a Statement [215] (byte~) bitmap_init::$7 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$7 ] ( main:3::bitmap_init:17 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$7 ] ) always clobbers reg byte a -Statement [217] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:3::bitmap_init:17 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ) always clobbers reg byte a +Statement [217] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:3::bitmap_init:17 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ) always clobbers reg byte a Statement [225] *((byte*) fill::addr#2) ← (const byte) WHITE#0 [ fill::addr#2 ] ( main:3::fill:15 [ fill::addr#2 ] ) always clobbers reg byte a reg byte y Statement [227] if((byte*) fill::addr#1!=(const byte*) fill::end#0) goto fill::@1 [ fill::addr#1 ] ( main:3::fill:15 [ fill::addr#1 ] ) always clobbers reg byte a Potential registers zp ZP_WORD:2 [ render_sine::sin_idx#2 render_sine::sin_idx#1 ] : zp ZP_WORD:2 , @@ -6101,7 +6101,7 @@ render_sine: { lda sin_idx+1 rol sta _0+1 - //SEG56 [28] (signed word*~) render_sine::$1 ← (const signed word[512]) sin#0 + (word~) render_sine::$0 -- pwsz1=pwsc1_plus_vwuz1 + //SEG56 [28] (signed word*~) render_sine::$1 ← (const signed word[$200]) sin#0 + (word~) render_sine::$0 -- pwsz1=pwsc1_plus_vwuz1 clc lda _1 adc #$140 bne b10_from_b8 @@ -6252,12 +6252,12 @@ bitmap_plot: { .label plotter = 6 .label x = 4 .label _3 = 6 - //SEG103 [55] (word~) bitmap_plot::$3 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#2) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#2) -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx + //SEG103 [55] (word~) bitmap_plot::$3 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#2) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#2) -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx lda bitmap_plot_yhi,x sta _3+1 lda bitmap_plot_ylo,x sta _3 - //SEG104 [56] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#2 & (word/dword/signed dword) 65528 -- vwuz1=vwuz2_band_vwuc1 + //SEG104 [56] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#2 & (word/dword/signed dword) $fff8 -- vwuz1=vwuz2_band_vwuc1 lda x and #<$fff8 sta _1 @@ -6274,7 +6274,7 @@ bitmap_plot: { sta plotter+1 //SEG106 [58] (byte~) bitmap_plot::$2 ← < (word) bitmap_plot::x#2 -- vbuaa=_lo_vwuz1 lda x - //SEG107 [59] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[256]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuaa + //SEG107 [59] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[$100]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuaa tay lda bitmap_plot_bit,y ldy #0 @@ -6298,7 +6298,7 @@ wrap_y: { jmp b1 //SEG113 wrap_y::@1 b1: - //SEG114 [63] if((signed word) wrap_y::y#4>=(byte/word/signed word/dword/signed dword) 200) goto wrap_y::@2 -- vwsz1_ge_vbuc1_then_la1 + //SEG114 [63] if((signed word) wrap_y::y#4>=(byte/word/signed word/dword/signed dword) $c8) goto wrap_y::@2 -- vwsz1_ge_vbuc1_then_la1 lda y cmp #$c8 lda y+1 @@ -6329,7 +6329,7 @@ wrap_y: { rts //SEG123 wrap_y::@5 b5: - //SEG124 [68] (signed word) wrap_y::y#3 ← (signed word) wrap_y::y#6 + (byte/word/signed word/dword/signed dword) 200 -- vwsz1=vwsz1_plus_vbuc1 + //SEG124 [68] (signed word) wrap_y::y#3 ← (signed word) wrap_y::y#6 + (byte/word/signed word/dword/signed dword) $c8 -- vwsz1=vwsz1_plus_vbuc1 clc lda y adc #<$c8 @@ -6340,7 +6340,7 @@ wrap_y: { jmp b4_from_b5 //SEG125 wrap_y::@2 b2: - //SEG126 [69] (signed word) wrap_y::y#2 ← (signed word) wrap_y::y#4 - (byte/word/signed word/dword/signed dword) 200 -- vwsz1=vwsz1_minus_vbuc1 + //SEG126 [69] (signed word) wrap_y::y#2 ← (signed word) wrap_y::y#4 - (byte/word/signed word/dword/signed dword) $c8 -- vwsz1=vwsz1_minus_vbuc1 lda y sec sbc #<$c8 @@ -6383,7 +6383,7 @@ sin16s_gen2: { sta i lda #>0 sta i+1 - //SEG135 [74] phi (signed word*) sin16s_gen2::sintab#2 = (const signed word[512]) sin#0 [phi:sin16s_gen2::@3->sin16s_gen2::@1#1] -- pwsz1=pwsc1 + //SEG135 [74] phi (signed word*) sin16s_gen2::sintab#2 = (const signed word[$200]) sin#0 [phi:sin16s_gen2::@3->sin16s_gen2::@1#1] -- pwsz1=pwsc1 lda #sin @@ -6830,7 +6830,7 @@ sin16s: { mulu16_sel_from_b9: //SEG247 [152] phi (byte) mulu16_sel::select#5 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@9->mulu16_sel#0] -- vbuxx=vbuc1 ldx #1 - //SEG248 [152] phi (word) mulu16_sel::v2#5 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 + //SEG248 [152] phi (word) mulu16_sel::v2#5 = (dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 lda #<$10000/6 sta mulu16_sel.v2 lda #>$10000/6 @@ -7090,7 +7090,7 @@ divr16u: { rol rem+1 //SEG332 [174] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 -- vbuaa=_hi_vwuz1 lda dividend+1 - //SEG333 [175] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuaa_band_vbuc1 + //SEG333 [175] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 //SEG334 [176] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuaa_eq_0_then_la1 cmp #0 @@ -7150,7 +7150,7 @@ divr16u: { b3: //SEG350 [185] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuxx=_inc_vbuxx inx - //SEG351 [186] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG351 [186] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1_from_b3 jmp b6 @@ -7169,7 +7169,7 @@ bitmap_clear: { .label bitmap = 2 .label y = $16 .label _3 = 2 - //SEG357 [189] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_yhi#0) w= *((const byte[256]) bitmap_plot_ylo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 + //SEG357 [189] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_yhi#0) w= *((const byte[$100]) bitmap_plot_ylo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 lda bitmap_plot_ylo sta _3 lda bitmap_plot_yhi @@ -7213,7 +7213,7 @@ bitmap_clear: { !: //SEG375 [195] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 -- vbuxx=_inc_vbuxx inx - //SEG376 [196] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) 200) goto bitmap_clear::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG376 [196] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) $c8) goto bitmap_clear::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$c8 bne b2_from_b2 jmp b3 @@ -7221,7 +7221,7 @@ bitmap_clear: { b3: //SEG378 [197] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 -- vbuz1=_inc_vbuz1 inc y - //SEG379 [198] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG379 [198] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$28 bne b1_from_b3 @@ -7240,7 +7240,7 @@ bitmap_init: { b1_from_bitmap_init: //SEG384 [201] phi (byte) bitmap_init::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:bitmap_init->bitmap_init::@1#0] -- vbuxx=vbuc1 ldx #0 - //SEG385 [201] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init->bitmap_init::@1#1] -- vbuaa=vbuc1 + //SEG385 [201] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init->bitmap_init::@1#1] -- vbuaa=vbuc1 lda #$80 jmp b1 //SEG386 [201] phi from bitmap_init::@2 to bitmap_init::@1 [phi:bitmap_init::@2->bitmap_init::@1] @@ -7250,7 +7250,7 @@ bitmap_init: { jmp b1 //SEG389 bitmap_init::@1 b1: - //SEG390 [202] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG390 [202] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_bit,x //SEG391 [203] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuaa_ror_1 lsr @@ -7259,7 +7259,7 @@ bitmap_init: { bne b10_from_b1 //SEG393 [205] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2] b2_from_b1: - //SEG394 [205] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuaa=vbuc1 + //SEG394 [205] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuaa=vbuc1 lda #$80 jmp b2 //SEG395 bitmap_init::@2 @@ -7294,11 +7294,11 @@ bitmap_init: { lda yoffs //SEG407 [211] (byte~) bitmap_init::$5 ← (byte~) bitmap_init::$3 | (byte~) bitmap_init::$4 -- vbuaa=vbuz1_bor_vbuaa ora _3 - //SEG408 [212] *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG408 [212] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_ylo,x //SEG409 [213] (byte~) bitmap_init::$6 ← > (byte*) bitmap_init::yoffs#2 -- vbuaa=_hi_pbuz1 lda yoffs+1 - //SEG410 [214] *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG410 [214] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_yhi,x //SEG411 [215] (byte~) bitmap_init::$7 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuxx_band_vbuc1 txa @@ -7309,7 +7309,7 @@ bitmap_init: { jmp b7 //SEG413 bitmap_init::@7 b7: - //SEG414 [217] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 + //SEG414 [217] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 clc lda yoffs adc #<$28*8 @@ -7682,13 +7682,13 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL1 (byte*) BGCOL2 (byte*) BGCOL3 (byte*) BGCOL4 (byte*) BITMAP -(const byte*) BITMAP#0 BITMAP = ((byte*))(word/signed word/dword/signed dword) 8192 +(const byte*) BITMAP#0 BITMAP = ((byte*))(word/signed word/dword/signed dword) $2000 (byte) BLACK (byte) BLUE (byte*) BORDERCOL @@ -7701,20 +7701,20 @@ FINAL SYMBOL TABLE (byte*) CIA1_PORT_B_DDR (byte*) CIA2_INTERRUPT (byte*) CIA2_PORT_A -(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) 56576 +(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) $dd00 (byte*) CIA2_PORT_A_DDR -(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56578 +(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) $dd02 (byte*) CIA2_PORT_B (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR (byte*) COLS (byte) CYAN (byte*) D011 -(const byte*) D011#0 D011 = ((byte*))(word/dword/signed dword) 53265 +(const byte*) D011#0 D011 = ((byte*))(word/dword/signed dword) $d011 (byte*) D016 -(const byte*) D016#0 D016 = ((byte*))(word/dword/signed dword) 53270 +(const byte*) D016#0 D016 = ((byte*))(word/dword/signed dword) $d016 (byte*) D018 -(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) 53272 +(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) $d018 (byte) DARK_GREY (byte) GREEN (byte) GREY @@ -7734,14 +7734,14 @@ FINAL SYMBOL TABLE (byte) ORANGE (word) PI2_u4f12 (dword) PI2_u4f28 -(const dword) PI2_u4f28#0 PI2_u4f28 = (dword/signed dword) 1686629713 +(const dword) PI2_u4f28#0 PI2_u4f28 = (dword/signed dword) $6487ed51 (byte) PINK (word) PI_HALF_u4f12 (dword) PI_HALF_u4f28 -(const dword) PI_HALF_u4f28#0 PI_HALF_u4f28 = (dword/signed dword) 421657428 +(const dword) PI_HALF_u4f28#0 PI_HALF_u4f28 = (dword/signed dword) $1921fb54 (word) PI_u4f12 (dword) PI_u4f28 -(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) 843314857 +(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) $3243f6a9 (byte*) PROCPORT (const byte*) PROCPORT#0 PROCPORT = ((byte*))(byte/signed byte/word/signed word/dword/signed dword) 1 (byte) PROCPORT_BASIC_KERNEL_IO @@ -7753,14 +7753,14 @@ FINAL SYMBOL TABLE (byte) PROCPORT_RAM_ALL (byte) PROCPORT_RAM_CHARROM (byte) PROCPORT_RAM_IO -(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) 53 +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) $35 (byte) PURPLE (byte*) RASTER (byte) RED (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (word) SIN_SIZE -(const word) SIN_SIZE#0 SIN_SIZE = (word/signed word/dword/signed dword) 512 +(const word) SIN_SIZE#0 SIN_SIZE = (word/signed word/dword/signed dword) $200 (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE (byte*) SPRITES_EXPAND_X @@ -7774,13 +7774,13 @@ FINAL SYMBOL TABLE (byte*) SPRITES_YPOS (word) SPRITE_PTRS (byte) VIC_BMM -(const byte) VIC_BMM#0 VIC_BMM = (byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte) VIC_BMM#0 VIC_BMM = (byte/signed byte/word/signed word/dword/signed dword) $20 (byte*) VIC_CONTROL (byte*) VIC_CONTROL2 (byte) VIC_CSEL (const byte) VIC_CSEL#0 VIC_CSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) VIC_DEN -(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_ECM (byte) VIC_MCM (byte*) VIC_MEMORY @@ -7850,12 +7850,12 @@ FINAL SYMBOL TABLE (byte) bitmap_plot::y#0 reg byte x 22.0 (byte) bitmap_plot::y#1 reg byte x 22.0 (byte) bitmap_plot::y#2 reg byte x 26.0 -(byte[256]) bitmap_plot_bit -(const byte[256]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( 256, 0) } -(byte[256]) bitmap_plot_yhi -(const byte[256]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( 256, 0) } -(byte[256]) bitmap_plot_ylo -(const byte[256]) bitmap_plot_ylo#0 bitmap_plot_ylo = { fill( 256, 0) } +(byte[$100]) bitmap_plot_bit +(const byte[$100]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( $100, 0) } +(byte[$100]) bitmap_plot_yhi +(const byte[$100]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( $100, 0) } +(byte[$100]) bitmap_plot_ylo +(const byte[$100]) bitmap_plot_ylo#0 bitmap_plot_ylo = { fill( $100, 0) } (dword()) div32u16u((dword) div32u16u::dividend , (word) div32u16u::divisor) (label) div32u16u::@2 (label) div32u16u::@3 @@ -7914,7 +7914,7 @@ FINAL SYMBOL TABLE (byte*) fill::end (const byte*) fill::end#0 end = (const byte*) SCREEN#0+(const word) fill::size#0 (word) fill::size -(const word) fill::size#0 size = (word/signed word/dword/signed dword) 1000 +(const word) fill::size#0 size = (word/signed word/dword/signed dword) $3e8 (byte*) fill::start (byte) fill::val (void()) main() @@ -7937,7 +7937,7 @@ FINAL SYMBOL TABLE (byte~) main::toD0181_$8 (byte*) main::toD0181_gfx (byte) main::toD0181_return -(const byte) main::toD0181_return#0 toD0181_return = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) BITMAP#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte) main::toD0181_return#0 toD0181_return = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) BITMAP#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) $f (byte*) main::toD0181_screen (label) main::vicSelectGfxBank1 (byte~) main::vicSelectGfxBank1_$0 @@ -8056,8 +8056,8 @@ FINAL SYMBOL TABLE (byte) render_sine::ypos#0 reg byte x 11.0 (byte) render_sine::ypos2 (byte) render_sine::ypos2#0 reg byte x 11.0 -(signed word[512]) sin -(const signed word[512]) sin#0 sin = { fill( 512, 0) } +(signed word[$200]) sin +(const signed word[$200]) sin#0 sin = { fill( $200, 0) } (signed word()) sin16s((dword) sin16s::x) (dword~) sin16s::$6 $6 zp ZP_DWORD:12 4.0 (label) sin16s::@1 @@ -8119,9 +8119,9 @@ FINAL SYMBOL TABLE (word) sin16s_gen2::i#1 i zp ZP_WORD:4 16.5 (word) sin16s_gen2::i#2 i zp ZP_WORD:4 1.6923076923076923 (signed word) sin16s_gen2::max -(const signed word) sin16s_gen2::max#0 max = (word/signed word/dword/signed dword) 320 +(const signed word) sin16s_gen2::max#0 max = (word/signed word/dword/signed dword) $140 (signed word) sin16s_gen2::min -(const signed word) sin16s_gen2::min#0 min = -(word/signed word/dword/signed dword) 320 +(const signed word) sin16s_gen2::min#0 min = -(word/signed word/dword/signed dword) $140 (signed word) sin16s_gen2::offs (const signed word) sin16s_gen2::offs#0 offs = (const signed word) sin16s_gen2::min#0+(const signed word) sin16s_gen2::ampl#0>>(byte/signed byte/word/signed word/dword/signed dword) 1 (signed word*) sin16s_gen2::sintab @@ -8134,7 +8134,7 @@ FINAL SYMBOL TABLE (dword) sin16s_gen2::x#1 x zp ZP_DWORD:8 7.333333333333333 (dword) sin16s_gen2::x#2 x zp ZP_DWORD:8 2.75 (signed word*) sin2 -(const signed word*) sin2#0 sin2 = ((signed word*))(word/signed word/dword/signed dword) 5120 +(const signed word*) sin2#0 sin2 = ((signed word*))(word/signed word/dword/signed dword) $1400 (byte()) wrap_y((signed word) wrap_y::y) (label) wrap_y::@1 (label) wrap_y::@2 @@ -8334,7 +8334,7 @@ render_sine: { lda sin_idx+1 rol sta _0+1 - //SEG56 [28] (signed word*~) render_sine::$1 ← (const signed word[512]) sin#0 + (word~) render_sine::$0 -- pwsz1=pwsc1_plus_vwuz1 + //SEG56 [28] (signed word*~) render_sine::$1 ← (const signed word[$200]) sin#0 + (word~) render_sine::$0 -- pwsz1=pwsc1_plus_vwuz1 clc lda _1 adc #$140 bne b2 @@ -8467,12 +8467,12 @@ bitmap_plot: { .label plotter = 6 .label x = 4 .label _3 = 6 - //SEG103 [55] (word~) bitmap_plot::$3 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#2) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#2) -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx + //SEG103 [55] (word~) bitmap_plot::$3 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#2) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#2) -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx lda bitmap_plot_yhi,x sta _3+1 lda bitmap_plot_ylo,x sta _3 - //SEG104 [56] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#2 & (word/dword/signed dword) 65528 -- vwuz1=vwuz2_band_vwuc1 + //SEG104 [56] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#2 & (word/dword/signed dword) $fff8 -- vwuz1=vwuz2_band_vwuc1 lda x and #<$fff8 sta _1 @@ -8489,7 +8489,7 @@ bitmap_plot: { sta plotter+1 //SEG106 [58] (byte~) bitmap_plot::$2 ← < (word) bitmap_plot::x#2 -- vbuaa=_lo_vwuz1 lda x - //SEG107 [59] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[256]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuaa + //SEG107 [59] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[$100]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuaa tay lda bitmap_plot_bit,y ldy #0 @@ -8507,7 +8507,7 @@ wrap_y: { //SEG112 [62] phi (signed word) wrap_y::y#4 = (signed word) wrap_y::y#9 [phi:wrap_y/wrap_y::@2->wrap_y::@1#0] -- register_copy //SEG113 wrap_y::@1 b1: - //SEG114 [63] if((signed word) wrap_y::y#4>=(byte/word/signed word/dword/signed dword) 200) goto wrap_y::@2 -- vwsz1_ge_vbuc1_then_la1 + //SEG114 [63] if((signed word) wrap_y::y#4>=(byte/word/signed word/dword/signed dword) $c8) goto wrap_y::@2 -- vwsz1_ge_vbuc1_then_la1 lda y cmp #$c8 lda y+1 @@ -8531,7 +8531,7 @@ wrap_y: { rts //SEG123 wrap_y::@5 b5: - //SEG124 [68] (signed word) wrap_y::y#3 ← (signed word) wrap_y::y#6 + (byte/word/signed word/dword/signed dword) 200 -- vwsz1=vwsz1_plus_vbuc1 + //SEG124 [68] (signed word) wrap_y::y#3 ← (signed word) wrap_y::y#6 + (byte/word/signed word/dword/signed dword) $c8 -- vwsz1=vwsz1_plus_vbuc1 clc lda y adc #<$c8 @@ -8542,7 +8542,7 @@ wrap_y: { jmp b4 //SEG125 wrap_y::@2 b2: - //SEG126 [69] (signed word) wrap_y::y#2 ← (signed word) wrap_y::y#4 - (byte/word/signed word/dword/signed dword) 200 -- vwsz1=vwsz1_minus_vbuc1 + //SEG126 [69] (signed word) wrap_y::y#2 ← (signed word) wrap_y::y#4 - (byte/word/signed word/dword/signed dword) $c8 -- vwsz1=vwsz1_minus_vbuc1 lda y sec sbc #<$c8 @@ -8580,7 +8580,7 @@ sin16s_gen2: { lda #<0 sta i sta i+1 - //SEG135 [74] phi (signed word*) sin16s_gen2::sintab#2 = (const signed word[512]) sin#0 [phi:sin16s_gen2::@3->sin16s_gen2::@1#1] -- pwsz1=pwsc1 + //SEG135 [74] phi (signed word*) sin16s_gen2::sintab#2 = (const signed word[$200]) sin#0 [phi:sin16s_gen2::@3->sin16s_gen2::@1#1] -- pwsz1=pwsc1 lda #sin @@ -8977,7 +8977,7 @@ sin16s: { //SEG246 [152] phi from sin16s::@9 to mulu16_sel [phi:sin16s::@9->mulu16_sel] //SEG247 [152] phi (byte) mulu16_sel::select#5 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@9->mulu16_sel#0] -- vbuxx=vbuc1 ldx #1 - //SEG248 [152] phi (word) mulu16_sel::v2#5 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 + //SEG248 [152] phi (word) mulu16_sel::v2#5 = (dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 lda #<$10000/6 sta mulu16_sel.v2 lda #>$10000/6 @@ -9201,7 +9201,7 @@ divr16u: { rol rem+1 //SEG332 [174] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 -- vbuaa=_hi_vwuz1 lda dividend+1 - //SEG333 [175] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuaa_band_vbuc1 + //SEG333 [175] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 //SEG334 [176] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuaa_eq_0_then_la1 cmp #0 @@ -9251,7 +9251,7 @@ divr16u: { b3: //SEG350 [185] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuxx=_inc_vbuxx inx - //SEG351 [186] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG351 [186] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1 //SEG352 divr16u::@6 @@ -9266,7 +9266,7 @@ bitmap_clear: { .label bitmap = 2 .label y = $16 .label _3 = 2 - //SEG357 [189] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_yhi#0) w= *((const byte[256]) bitmap_plot_ylo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 + //SEG357 [189] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_yhi#0) w= *((const byte[$100]) bitmap_plot_ylo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 lda bitmap_plot_ylo sta _3 lda bitmap_plot_yhi @@ -9302,13 +9302,13 @@ bitmap_clear: { !: //SEG375 [195] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 -- vbuxx=_inc_vbuxx inx - //SEG376 [196] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) 200) goto bitmap_clear::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG376 [196] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) $c8) goto bitmap_clear::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$c8 bne b2 //SEG377 bitmap_clear::@3 //SEG378 [197] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 -- vbuz1=_inc_vbuz1 inc y - //SEG379 [198] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG379 [198] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$28 bne b1 @@ -9324,14 +9324,14 @@ bitmap_init: { //SEG383 [201] phi from bitmap_init to bitmap_init::@1 [phi:bitmap_init->bitmap_init::@1] //SEG384 [201] phi (byte) bitmap_init::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:bitmap_init->bitmap_init::@1#0] -- vbuxx=vbuc1 ldx #0 - //SEG385 [201] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init->bitmap_init::@1#1] -- vbuaa=vbuc1 + //SEG385 [201] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init->bitmap_init::@1#1] -- vbuaa=vbuc1 lda #$80 //SEG386 [201] phi from bitmap_init::@2 to bitmap_init::@1 [phi:bitmap_init::@2->bitmap_init::@1] //SEG387 [201] phi (byte) bitmap_init::x#2 = (byte) bitmap_init::x#1 [phi:bitmap_init::@2->bitmap_init::@1#0] -- register_copy //SEG388 [201] phi (byte) bitmap_init::bits#3 = (byte) bitmap_init::bits#4 [phi:bitmap_init::@2->bitmap_init::@1#1] -- register_copy //SEG389 bitmap_init::@1 b1: - //SEG390 [202] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG390 [202] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_bit,x //SEG391 [203] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuaa_ror_1 lsr @@ -9339,7 +9339,7 @@ bitmap_init: { cmp #0 bne b2 //SEG393 [205] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2] - //SEG394 [205] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuaa=vbuc1 + //SEG394 [205] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuaa=vbuc1 lda #$80 //SEG395 bitmap_init::@2 b2: @@ -9369,11 +9369,11 @@ bitmap_init: { lda yoffs //SEG407 [211] (byte~) bitmap_init::$5 ← (byte~) bitmap_init::$3 | (byte~) bitmap_init::$4 -- vbuaa=vbuz1_bor_vbuaa ora _3 - //SEG408 [212] *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG408 [212] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_ylo,x //SEG409 [213] (byte~) bitmap_init::$6 ← > (byte*) bitmap_init::yoffs#2 -- vbuaa=_hi_pbuz1 lda yoffs+1 - //SEG410 [214] *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG410 [214] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_yhi,x //SEG411 [215] (byte~) bitmap_init::$7 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuxx_band_vbuc1 txa @@ -9382,7 +9382,7 @@ bitmap_init: { cmp #7 bne b4 //SEG413 bitmap_init::@7 - //SEG414 [217] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 + //SEG414 [217] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 clc lda yoffs adc #<$28*8 diff --git a/src/test/ref/examples/sinplotter/sine-plotter.sym b/src/test/ref/examples/sinplotter/sine-plotter.sym index b99bdd374..7bf5e6c88 100644 --- a/src/test/ref/examples/sinplotter/sine-plotter.sym +++ b/src/test/ref/examples/sinplotter/sine-plotter.sym @@ -3,13 +3,13 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL1 (byte*) BGCOL2 (byte*) BGCOL3 (byte*) BGCOL4 (byte*) BITMAP -(const byte*) BITMAP#0 BITMAP = ((byte*))(word/signed word/dword/signed dword) 8192 +(const byte*) BITMAP#0 BITMAP = ((byte*))(word/signed word/dword/signed dword) $2000 (byte) BLACK (byte) BLUE (byte*) BORDERCOL @@ -22,20 +22,20 @@ (byte*) CIA1_PORT_B_DDR (byte*) CIA2_INTERRUPT (byte*) CIA2_PORT_A -(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) 56576 +(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) $dd00 (byte*) CIA2_PORT_A_DDR -(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56578 +(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) $dd02 (byte*) CIA2_PORT_B (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR (byte*) COLS (byte) CYAN (byte*) D011 -(const byte*) D011#0 D011 = ((byte*))(word/dword/signed dword) 53265 +(const byte*) D011#0 D011 = ((byte*))(word/dword/signed dword) $d011 (byte*) D016 -(const byte*) D016#0 D016 = ((byte*))(word/dword/signed dword) 53270 +(const byte*) D016#0 D016 = ((byte*))(word/dword/signed dword) $d016 (byte*) D018 -(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) 53272 +(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) $d018 (byte) DARK_GREY (byte) GREEN (byte) GREY @@ -55,14 +55,14 @@ (byte) ORANGE (word) PI2_u4f12 (dword) PI2_u4f28 -(const dword) PI2_u4f28#0 PI2_u4f28 = (dword/signed dword) 1686629713 +(const dword) PI2_u4f28#0 PI2_u4f28 = (dword/signed dword) $6487ed51 (byte) PINK (word) PI_HALF_u4f12 (dword) PI_HALF_u4f28 -(const dword) PI_HALF_u4f28#0 PI_HALF_u4f28 = (dword/signed dword) 421657428 +(const dword) PI_HALF_u4f28#0 PI_HALF_u4f28 = (dword/signed dword) $1921fb54 (word) PI_u4f12 (dword) PI_u4f28 -(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) 843314857 +(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) $3243f6a9 (byte*) PROCPORT (const byte*) PROCPORT#0 PROCPORT = ((byte*))(byte/signed byte/word/signed word/dword/signed dword) 1 (byte) PROCPORT_BASIC_KERNEL_IO @@ -74,14 +74,14 @@ (byte) PROCPORT_RAM_ALL (byte) PROCPORT_RAM_CHARROM (byte) PROCPORT_RAM_IO -(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) 53 +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) $35 (byte) PURPLE (byte*) RASTER (byte) RED (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (word) SIN_SIZE -(const word) SIN_SIZE#0 SIN_SIZE = (word/signed word/dword/signed dword) 512 +(const word) SIN_SIZE#0 SIN_SIZE = (word/signed word/dword/signed dword) $200 (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE (byte*) SPRITES_EXPAND_X @@ -95,13 +95,13 @@ (byte*) SPRITES_YPOS (word) SPRITE_PTRS (byte) VIC_BMM -(const byte) VIC_BMM#0 VIC_BMM = (byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte) VIC_BMM#0 VIC_BMM = (byte/signed byte/word/signed word/dword/signed dword) $20 (byte*) VIC_CONTROL (byte*) VIC_CONTROL2 (byte) VIC_CSEL (const byte) VIC_CSEL#0 VIC_CSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) VIC_DEN -(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_ECM (byte) VIC_MCM (byte*) VIC_MEMORY @@ -171,12 +171,12 @@ (byte) bitmap_plot::y#0 reg byte x 22.0 (byte) bitmap_plot::y#1 reg byte x 22.0 (byte) bitmap_plot::y#2 reg byte x 26.0 -(byte[256]) bitmap_plot_bit -(const byte[256]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( 256, 0) } -(byte[256]) bitmap_plot_yhi -(const byte[256]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( 256, 0) } -(byte[256]) bitmap_plot_ylo -(const byte[256]) bitmap_plot_ylo#0 bitmap_plot_ylo = { fill( 256, 0) } +(byte[$100]) bitmap_plot_bit +(const byte[$100]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( $100, 0) } +(byte[$100]) bitmap_plot_yhi +(const byte[$100]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( $100, 0) } +(byte[$100]) bitmap_plot_ylo +(const byte[$100]) bitmap_plot_ylo#0 bitmap_plot_ylo = { fill( $100, 0) } (dword()) div32u16u((dword) div32u16u::dividend , (word) div32u16u::divisor) (label) div32u16u::@2 (label) div32u16u::@3 @@ -235,7 +235,7 @@ (byte*) fill::end (const byte*) fill::end#0 end = (const byte*) SCREEN#0+(const word) fill::size#0 (word) fill::size -(const word) fill::size#0 size = (word/signed word/dword/signed dword) 1000 +(const word) fill::size#0 size = (word/signed word/dword/signed dword) $3e8 (byte*) fill::start (byte) fill::val (void()) main() @@ -258,7 +258,7 @@ (byte~) main::toD0181_$8 (byte*) main::toD0181_gfx (byte) main::toD0181_return -(const byte) main::toD0181_return#0 toD0181_return = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) BITMAP#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte) main::toD0181_return#0 toD0181_return = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) BITMAP#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) $f (byte*) main::toD0181_screen (label) main::vicSelectGfxBank1 (byte~) main::vicSelectGfxBank1_$0 @@ -377,8 +377,8 @@ (byte) render_sine::ypos#0 reg byte x 11.0 (byte) render_sine::ypos2 (byte) render_sine::ypos2#0 reg byte x 11.0 -(signed word[512]) sin -(const signed word[512]) sin#0 sin = { fill( 512, 0) } +(signed word[$200]) sin +(const signed word[$200]) sin#0 sin = { fill( $200, 0) } (signed word()) sin16s((dword) sin16s::x) (dword~) sin16s::$6 $6 zp ZP_DWORD:12 4.0 (label) sin16s::@1 @@ -440,9 +440,9 @@ (word) sin16s_gen2::i#1 i zp ZP_WORD:4 16.5 (word) sin16s_gen2::i#2 i zp ZP_WORD:4 1.6923076923076923 (signed word) sin16s_gen2::max -(const signed word) sin16s_gen2::max#0 max = (word/signed word/dword/signed dword) 320 +(const signed word) sin16s_gen2::max#0 max = (word/signed word/dword/signed dword) $140 (signed word) sin16s_gen2::min -(const signed word) sin16s_gen2::min#0 min = -(word/signed word/dword/signed dword) 320 +(const signed word) sin16s_gen2::min#0 min = -(word/signed word/dword/signed dword) $140 (signed word) sin16s_gen2::offs (const signed word) sin16s_gen2::offs#0 offs = (const signed word) sin16s_gen2::min#0+(const signed word) sin16s_gen2::ampl#0>>(byte/signed byte/word/signed word/dword/signed dword) 1 (signed word*) sin16s_gen2::sintab @@ -455,7 +455,7 @@ (dword) sin16s_gen2::x#1 x zp ZP_DWORD:8 7.333333333333333 (dword) sin16s_gen2::x#2 x zp ZP_DWORD:8 2.75 (signed word*) sin2 -(const signed word*) sin2#0 sin2 = ((signed word*))(word/signed word/dword/signed dword) 5120 +(const signed word*) sin2#0 sin2 = ((signed word*))(word/signed word/dword/signed dword) $1400 (byte()) wrap_y((signed word) wrap_y::y) (label) wrap_y::@1 (label) wrap_y::@2 diff --git a/src/test/ref/examples/sinsprites/sinus-sprites.cfg b/src/test/ref/examples/sinsprites/sinus-sprites.cfg index 4d36a0769..23dca6dd7 100644 --- a/src/test/ref/examples/sinsprites/sinus-sprites.cfg +++ b/src/test/ref/examples/sinsprites/sinus-sprites.cfg @@ -14,7 +14,7 @@ main: scope:[main] from @60 main::@2: scope:[main] from main main::@2 main::@3 [6] (byte) sin_idx_y#13 ← phi( main::@3/(byte) sin_idx_y#11 main/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [6] (byte) sin_idx_x#13 ← phi( main::@3/(byte) sin_idx_x#11 main/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 + [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 [8] phi() @@ -28,17 +28,17 @@ anim: scope:[anim] from main::@3 anim::@1: scope:[anim] from anim anim::@3 [13] (byte) anim::j#2 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@3/(byte) anim::j#1 ) [13] (byte) anim::yidx#3 ← phi( anim/(byte) anim::yidx#0 anim::@3/(byte) anim::yidx#6 ) - [13] (byte) anim::j2#2 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) 12 anim::@3/(byte) anim::j2#1 ) + [13] (byte) anim::j2#2 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) $c anim::@3/(byte) anim::j2#1 ) [13] (byte) anim::x_msb#2 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@3/(byte) anim::x_msb#1 ) [13] (byte) anim::xidx#3 ← phi( anim/(byte) anim::xidx#0 anim::@3/(byte) anim::xidx#5 ) - [14] (word) anim::x#0 ← ((word))(byte/signed byte/word/signed word/dword/signed dword) 30 + *((const byte[221]) sintab_x#0 + (byte) anim::xidx#3) + [14] (word) anim::x#0 ← ((word))(byte/signed byte/word/signed word/dword/signed dword) $1e + *((const byte[$dd]) sintab_x#0 + (byte) anim::xidx#3) [15] (byte~) anim::$2 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [16] (byte~) anim::$3 ← > (word) anim::x#0 [17] (byte) anim::x_msb#1 ← (byte~) anim::$2 | (byte~) anim::$3 [18] (byte~) anim::$5 ← < (word) anim::x#0 [19] *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#2) ← (byte~) anim::$5 - [20] *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#2) ← *((const byte[197]) sintab_y#0 + (byte) anim::yidx#3) - [21] (byte) anim::xidx#1 ← (byte) anim::xidx#3 + (byte/signed byte/word/signed word/dword/signed dword) 10 + [20] *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#2) ← *((const byte[$c5]) sintab_y#0 + (byte) anim::yidx#3) + [21] (byte) anim::xidx#1 ← (byte) anim::xidx#3 + (byte/signed byte/word/signed word/dword/signed dword) $a [22] if((byte) anim::xidx#1<(const byte) sinlen_x#0) goto anim::@2 to:anim::@6 anim::@6: scope:[anim] from anim::@1 @@ -88,9 +88,9 @@ init: scope:[init] from main init::@1: scope:[init] from init init::@1 [45] (byte) init::i#2 ← phi( init::@1/(byte) init::i#1 init/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [46] *((const byte*) COLS#0 + (byte) init::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [47] *((const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) init::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 11 + [47] *((const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) init::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) $b [48] (byte) init::i#1 ← ++ (byte) init::i#2 - [49] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto init::@1 + [49] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto init::@1 to:init::@2 init::@2: scope:[init] from init::@1 [50] phi() @@ -130,16 +130,16 @@ clear_screen::@1: scope:[clear_screen] from clear_screen clear_screen::@1 [66] (byte*) clear_screen::sc#2 ← phi( clear_screen/(const byte*) SCREEN#0 clear_screen::@1/(byte*) clear_screen::sc#1 ) [67] *((byte*) clear_screen::sc#2) ← (byte) ' ' [68] (byte*) clear_screen::sc#1 ← ++ (byte*) clear_screen::sc#2 - [69] if((byte*) clear_screen::sc#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto clear_screen::@1 + [69] if((byte*) clear_screen::sc#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto clear_screen::@1 to:clear_screen::@return clear_screen::@return: scope:[clear_screen] from clear_screen::@1 [70] return to:@return gen_sintab: scope:[gen_sintab] from init::@6 init::@8 - [71] (byte*) gen_sintab::sintab#12 ← phi( init::@6/(const byte[221]) sintab_x#0 init::@8/(const byte[197]) sintab_y#0 ) + [71] (byte*) gen_sintab::sintab#12 ← phi( init::@6/(const byte[$dd]) sintab_x#0 init::@8/(const byte[$c5]) sintab_y#0 ) [71] (byte) gen_sintab::length#10 ← phi( init::@6/(const byte) sinlen_x#0 init::@8/(const byte) sinlen_y#0 ) - [71] (byte) gen_sintab::min#2 ← phi( init::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 init::@8/(byte/signed byte/word/signed word/dword/signed dword) 50 ) - [71] (byte) gen_sintab::max#2 ← phi( init::@6/(byte/word/signed word/dword/signed dword) 255 init::@8/(byte/word/signed word/dword/signed dword) 208 ) + [71] (byte) gen_sintab::min#2 ← phi( init::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 init::@8/(byte/signed byte/word/signed word/dword/signed dword) $32 ) + [71] (byte) gen_sintab::max#2 ← phi( init::@6/(byte/word/signed word/dword/signed dword) $ff init::@8/(byte/word/signed word/dword/signed dword) $d0 ) [72] (word) setFAC::w#0 ← ((word)) (byte) gen_sintab::max#2 [73] call setFAC to:gen_sintab::@3 @@ -343,7 +343,7 @@ setARGtoFAC::@return: scope:[setARGtoFAC] from setARGtoFAC [167] return to:@return progress_init: scope:[progress_init] from init::@5 init::@7 - [168] (byte*) progress_init::line#2 ← phi( init::@5/(const byte*) SCREEN#0 init::@7/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40 ) + [168] (byte*) progress_init::line#2 ← phi( init::@5/(const byte*) SCREEN#0 init::@7/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28 ) to:progress_init::@return progress_init::@return: scope:[progress_init] from progress_init [169] return @@ -359,7 +359,7 @@ gen_sprites::@1: scope:[gen_sprites] from gen_sprites gen_sprites::@3 [174] call gen_chargen_sprite to:gen_sprites::@3 gen_sprites::@3: scope:[gen_sprites] from gen_sprites::@1 - [175] (byte*) gen_sprites::spr#1 ← (byte*) gen_sprites::spr#2 + (byte/signed byte/word/signed word/dword/signed dword) 64 + [175] (byte*) gen_sprites::spr#1 ← (byte*) gen_sprites::spr#2 + (byte/signed byte/word/signed word/dword/signed dword) $40 [176] (byte) gen_sprites::i#1 ← ++ (byte) gen_sprites::i#2 [177] if((byte) gen_sprites::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 7) goto gen_sprites::@1 to:gen_sprites::@return @@ -371,7 +371,7 @@ gen_chargen_sprite: scope:[gen_chargen_sprite] from gen_sprites::@1 [180] (word~) gen_chargen_sprite::$1 ← (word~) gen_chargen_sprite::$0 << (byte/signed byte/word/signed word/dword/signed dword) 3 [181] (byte*) gen_chargen_sprite::chargen#0 ← (const byte*) CHARGEN#0 + (word~) gen_chargen_sprite::$1 asm { sei } - [183] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 + [183] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 to:gen_chargen_sprite::@1 gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_chargen_sprite::@9 [184] (byte*) gen_chargen_sprite::sprite#11 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::sprite#0 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::sprite#2 ) @@ -384,7 +384,7 @@ gen_chargen_sprite::@2: scope:[gen_chargen_sprite] from gen_chargen_sprite::@1 [186] (byte) gen_chargen_sprite::s_gen_cnt#4 ← phi( gen_chargen_sprite::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::s_gen_cnt#5 ) [186] (byte) gen_chargen_sprite::s_gen#5 ← phi( gen_chargen_sprite::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::s_gen#6 ) [186] (byte) gen_chargen_sprite::bits#2 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::bits#0 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::bits#1 ) - [187] (byte~) gen_chargen_sprite::$3 ← (byte) gen_chargen_sprite::bits#2 & (byte/word/signed word/dword/signed dword) 128 + [187] (byte~) gen_chargen_sprite::$3 ← (byte) gen_chargen_sprite::bits#2 & (byte/word/signed word/dword/signed dword) $80 [188] if((byte~) gen_chargen_sprite::$3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gen_chargen_sprite::@3 to:gen_chargen_sprite::@6 gen_chargen_sprite::@6: scope:[gen_chargen_sprite] from gen_chargen_sprite::@2 @@ -427,29 +427,29 @@ gen_chargen_sprite::@9: scope:[gen_chargen_sprite] from gen_chargen_sprite::@8 [208] if((byte) gen_chargen_sprite::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto gen_chargen_sprite::@1 to:gen_chargen_sprite::@10 gen_chargen_sprite::@10: scope:[gen_chargen_sprite] from gen_chargen_sprite::@9 - [209] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 + [209] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 asm { cli } to:gen_chargen_sprite::@return gen_chargen_sprite::@return: scope:[gen_chargen_sprite] from gen_chargen_sprite::@10 [211] return to:@return place_sprites: scope:[place_sprites] from init::@2 - [212] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 127 - [213] *((const byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word/dword/signed dword) 127 - [214] *((const byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word/dword/signed dword) 127 + [212] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) $7f + [213] *((const byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word/dword/signed dword) $7f + [214] *((const byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word/dword/signed dword) $7f to:place_sprites::@1 place_sprites::@1: scope:[place_sprites] from place_sprites place_sprites::@1 [215] (byte) place_sprites::col#2 ← phi( place_sprites/(byte/signed byte/word/signed word/dword/signed dword) 5 place_sprites::@1/(byte) place_sprites::col#1 ) [215] (byte) place_sprites::j2#3 ← phi( place_sprites/(byte/signed byte/word/signed word/dword/signed dword) 0 place_sprites::@1/(byte) place_sprites::j2#2 ) - [215] (byte) place_sprites::spr_x#2 ← phi( place_sprites/(byte/signed byte/word/signed word/dword/signed dword) 60 place_sprites::@1/(byte) place_sprites::spr_x#1 ) + [215] (byte) place_sprites::spr_x#2 ← phi( place_sprites/(byte/signed byte/word/signed word/dword/signed dword) $3c place_sprites::@1/(byte) place_sprites::spr_x#1 ) [215] (byte) place_sprites::j#2 ← phi( place_sprites/(byte/signed byte/word/signed word/dword/signed dword) 0 place_sprites::@1/(byte) place_sprites::j#1 ) - [215] (byte) place_sprites::spr_id#2 ← phi( place_sprites/((byte))(const byte*) sprites#0/(byte/signed byte/word/signed word/dword/signed dword) 64 place_sprites::@1/(byte) place_sprites::spr_id#1 ) + [215] (byte) place_sprites::spr_id#2 ← phi( place_sprites/((byte))(const byte*) sprites#0/(byte/signed byte/word/signed word/dword/signed dword) $40 place_sprites::@1/(byte) place_sprites::spr_id#1 ) [216] *((const byte*) place_sprites::sprites_ptr#0 + (byte) place_sprites::j#2) ← (byte) place_sprites::spr_id#2 [217] (byte) place_sprites::spr_id#1 ← ++ (byte) place_sprites::spr_id#2 [218] *((const byte*) SPRITES_XPOS#0 + (byte) place_sprites::j2#3) ← (byte) place_sprites::spr_x#2 - [219] *((const byte*) SPRITES_YPOS#0 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word/dword/signed dword) 80 + [219] *((const byte*) SPRITES_YPOS#0 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word/dword/signed dword) $50 [220] *((const byte*) SPRITES_COLS#0 + (byte) place_sprites::j#2) ← (byte) place_sprites::col#2 - [221] (byte) place_sprites::spr_x#1 ← (byte) place_sprites::spr_x#2 + (byte/signed byte/word/signed word/dword/signed dword) 32 + [221] (byte) place_sprites::spr_x#1 ← (byte) place_sprites::spr_x#2 + (byte/signed byte/word/signed word/dword/signed dword) $20 [222] (byte) place_sprites::col#1 ← (byte) place_sprites::col#2 ^ (byte/signed byte/word/signed word/dword/signed dword) 7^(byte/signed byte/word/signed word/dword/signed dword) 5 [223] (byte) place_sprites::j2#1 ← ++ (byte) place_sprites::j2#3 [224] (byte) place_sprites::j2#2 ← ++ (byte) place_sprites::j2#1 diff --git a/src/test/ref/examples/sinsprites/sinus-sprites.log b/src/test/ref/examples/sinsprites/sinus-sprites.log index 13d185b4b..243a5feae 100644 --- a/src/test/ref/examples/sinsprites/sinus-sprites.log +++ b/src/test/ref/examples/sinsprites/sinus-sprites.log @@ -5,66 +5,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -75,16 +75,16 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@4 @4: scope:[] from @begin - (byte*) memLo#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) 254 - (byte*) memHi#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) 255 + (byte*) memLo#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) $fe + (byte*) memHi#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) $ff to:@31 prepareMEM: scope:[prepareMEM] from addMEMtoFAC divMEMbyFAC mulFACbyMEM setFAC setMEMtoFAC (byte*) prepareMEM::mem#5 ← phi( addMEMtoFAC/(byte*) prepareMEM::mem#2 divMEMbyFAC/(byte*) prepareMEM::mem#3 mulFACbyMEM/(byte*) prepareMEM::mem#4 setFAC/(byte*) prepareMEM::mem#0 setMEMtoFAC/(byte*) prepareMEM::mem#1 ) @@ -181,7 +181,7 @@ sinFAC::@return: scope:[sinFAC] from sinFAC return to:@return @31: scope:[] from @4 - (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 to:@43 @@ -189,12 +189,12 @@ sinFAC::@return: scope:[sinFAC] from sinFAC (byte[]) print_hextab#0 ← (const string) $0 to:@50 @50: scope:[] from @43 - (byte) sinlen_x#0 ← (byte/word/signed word/dword/signed dword) 221 - (byte[221]) sintab_x#0 ← { fill( 221, 0) } - (byte) sinlen_y#0 ← (byte/word/signed word/dword/signed dword) 197 - (byte[197]) sintab_y#0 ← { fill( 197, 0) } - (byte*) sprites#0 ← ((byte*)) (word/signed word/dword/signed dword) 8192 - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte) sinlen_x#0 ← (byte/word/signed word/dword/signed dword) $dd + (byte[$dd]) sintab_x#0 ← { fill( $dd, 0) } + (byte) sinlen_y#0 ← (byte/word/signed word/dword/signed dword) $c5 + (byte[$c5]) sintab_y#0 ← { fill( $c5, 0) } + (byte*) sprites#0 ← ((byte*)) (word/signed word/dword/signed dword) $2000 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@53 main: scope:[main] from @60 (byte) sin_idx_y#24 ← phi( @60/(byte) sin_idx_y#17 ) @@ -222,7 +222,7 @@ main::@2: scope:[main] from main::@1 main::@2 main::@5 (byte*) progress_cursor#40 ← phi( main::@1/(byte*) progress_cursor#43 main::@2/(byte*) progress_cursor#40 main::@5/(byte*) progress_cursor#0 ) (byte) sin_idx_y#18 ← phi( main::@1/(byte) sin_idx_y#20 main::@2/(byte) sin_idx_y#18 main::@5/(byte) sin_idx_y#21 ) (byte) sin_idx_x#17 ← phi( main::@1/(byte) sin_idx_x#22 main::@2/(byte) sin_idx_x#17 main::@5/(byte) sin_idx_x#23 ) - (bool~) main::$1 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 255 + (bool~) main::$1 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) $ff if((bool~) main::$1) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 @@ -267,10 +267,10 @@ init::@1: scope:[init] from init::@1 init::@3 (byte*) progress_cursor#44 ← phi( init::@1/(byte*) progress_cursor#44 init::@3/(byte*) progress_cursor#46 ) (byte) init::i#2 ← phi( init::@1/(byte) init::i#1 init::@3/(byte) init::i#0 ) *((byte*) COLS#0 + (byte) init::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte/signed word/word/dword/signed dword~) init::$1 ← (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) init::i#2 - *((byte*) COLS#0 + (byte/signed word/word/dword/signed dword~) init::$1) ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) init::i#1 ← (byte) init::i#2 + rangenext(0,39) - (bool~) init::$2 ← (byte) init::i#1 != rangelast(0,39) + (byte/signed word/word/dword/signed dword~) init::$1 ← (byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) init::i#2 + *((byte*) COLS#0 + (byte/signed word/word/dword/signed dword~) init::$1) ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) init::i#1 ← (byte) init::i#2 + rangenext(0,$27) + (bool~) init::$2 ← (byte) init::i#1 != rangelast(0,$27) if((bool~) init::$2) goto init::@1 to:init::@2 init::@2: scope:[init] from init::@1 @@ -294,10 +294,10 @@ init::@6: scope:[init] from init::@5 (byte*) progress_cursor#17 ← phi( init::@5/(byte*) progress_cursor#9 ) (byte*) progress_cursor#2 ← (byte*) progress_cursor#17 (byte) progress_idx#2 ← (byte) progress_idx#18 - (byte*) gen_sintab::sintab#0 ← (byte[221]) sintab_x#0 + (byte*) gen_sintab::sintab#0 ← (byte[$dd]) sintab_x#0 (byte) gen_sintab::length#0 ← (byte) sinlen_x#0 (byte) gen_sintab::min#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte) gen_sintab::max#0 ← (byte/word/signed word/dword/signed dword) 255 + (byte) gen_sintab::max#0 ← (byte/word/signed word/dword/signed dword) $ff call gen_sintab to:init::@7 init::@7: scope:[init] from init::@6 @@ -305,7 +305,7 @@ init::@7: scope:[init] from init::@6 (byte) progress_idx#19 ← phi( init::@6/(byte) progress_idx#14 ) (byte) progress_idx#3 ← (byte) progress_idx#19 (byte*) progress_cursor#3 ← (byte*) progress_cursor#18 - (byte*~) init::$7 ← (byte*) SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) init::$7 ← (byte*) SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) progress_init::line#1 ← (byte*~) init::$7 call progress_init to:init::@8 @@ -314,10 +314,10 @@ init::@8: scope:[init] from init::@7 (byte*) progress_cursor#19 ← phi( init::@7/(byte*) progress_cursor#9 ) (byte*) progress_cursor#4 ← (byte*) progress_cursor#19 (byte) progress_idx#4 ← (byte) progress_idx#20 - (byte*) gen_sintab::sintab#1 ← (byte[197]) sintab_y#0 + (byte*) gen_sintab::sintab#1 ← (byte[$c5]) sintab_y#0 (byte) gen_sintab::length#1 ← (byte) sinlen_y#0 - (byte) gen_sintab::min#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 - (byte) gen_sintab::max#1 ← (byte/word/signed word/dword/signed dword) 208 + (byte) gen_sintab::min#1 ← (byte/signed byte/word/signed word/dword/signed dword) $32 + (byte) gen_sintab::max#1 ← (byte/word/signed word/dword/signed dword) $d0 call gen_sintab to:init::@9 init::@9: scope:[init] from init::@8 @@ -345,7 +345,7 @@ clear_screen::@1: scope:[clear_screen] from clear_screen clear_screen::@1 (byte*) clear_screen::sc#2 ← phi( clear_screen/(byte*) clear_screen::sc#0 clear_screen::@1/(byte*) clear_screen::sc#1 ) *((byte*) clear_screen::sc#2) ← (byte) ' ' (byte*) clear_screen::sc#1 ← ++ (byte*) clear_screen::sc#2 - (byte*~) clear_screen::$0 ← (byte*) SCREEN#0 + (word/signed word/dword/signed dword) 1000 + (byte*~) clear_screen::$0 ← (byte*) SCREEN#0 + (word/signed word/dword/signed dword) $3e8 (bool~) clear_screen::$1 ← (byte*) clear_screen::sc#1 < (byte*~) clear_screen::$0 if((bool~) clear_screen::$1) goto clear_screen::@1 to:clear_screen::@return @@ -371,7 +371,7 @@ progress_init::@return: scope:[progress_init] from progress_init progress_inc: scope:[progress_inc] from gen_sintab::@22 (byte*) progress_cursor#33 ← phi( gen_sintab::@22/(byte*) progress_cursor#34 ) (byte) progress_idx#24 ← phi( gen_sintab::@22/(byte) progress_idx#34 ) - (byte[]) progress_inc::progress_chars#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 116, (byte/signed byte/word/signed word/dword/signed dword) 117, (byte/signed byte/word/signed word/dword/signed dword) 97, (byte/word/signed word/dword/signed dword) 246, (byte/word/signed word/dword/signed dword) 231, (byte/word/signed word/dword/signed dword) 234, (byte/word/signed word/dword/signed dword) 224 } + (byte[]) progress_inc::progress_chars#0 ← { (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $65, (byte/signed byte/word/signed word/dword/signed dword) $74, (byte/signed byte/word/signed word/dword/signed dword) $75, (byte/signed byte/word/signed word/dword/signed dword) $61, (byte/word/signed word/dword/signed dword) $f6, (byte/word/signed word/dword/signed dword) $e7, (byte/word/signed word/dword/signed dword) $ea, (byte/word/signed word/dword/signed dword) $e0 } (byte) progress_idx#10 ← ++ (byte) progress_idx#24 (bool~) progress_inc::$0 ← (byte) progress_idx#10 == (byte/signed byte/word/signed word/dword/signed dword) 8 (bool~) progress_inc::$1 ← ! (bool~) progress_inc::$0 @@ -407,7 +407,7 @@ anim: scope:[anim] from main::@3 *((byte*) BORDERCOL#0) ← ++ *((byte*) BORDERCOL#0) (byte) anim::xidx#0 ← (byte) sin_idx_x#9 (byte) anim::yidx#0 ← (byte) sin_idx_y#9 - (byte) anim::j2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 + (byte) anim::j2#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c (byte) anim::x_msb#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) anim::j#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:anim::@1 @@ -419,8 +419,8 @@ anim::@1: scope:[anim] from anim anim::@3 (byte) anim::j2#2 ← phi( anim/(byte) anim::j2#0 anim::@3/(byte) anim::j2#1 ) (byte) anim::x_msb#2 ← phi( anim/(byte) anim::x_msb#0 anim::@3/(byte) anim::x_msb#4 ) (byte) anim::xidx#3 ← phi( anim/(byte) anim::xidx#0 anim::@3/(byte) anim::xidx#5 ) - (byte/signed byte/word/signed word/dword/signed dword~) anim::$0 ← ((word)) (byte/signed byte/word/signed word/dword/signed dword) 30 - (byte/signed word/word/dword/signed dword~) anim::$1 ← (byte/signed byte/word/signed word/dword/signed dword~) anim::$0 + *((byte[221]) sintab_x#0 + (byte) anim::xidx#3) + (byte/signed byte/word/signed word/dword/signed dword~) anim::$0 ← ((word)) (byte/signed byte/word/signed word/dword/signed dword) $1e + (byte/signed word/word/dword/signed dword~) anim::$1 ← (byte/signed byte/word/signed word/dword/signed dword~) anim::$0 + *((byte[$dd]) sintab_x#0 + (byte) anim::xidx#3) (word) anim::x#0 ← (byte/signed word/word/dword/signed dword~) anim::$1 (byte~) anim::$2 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 (byte~) anim::$3 ← > (word) anim::x#0 @@ -428,8 +428,8 @@ anim::@1: scope:[anim] from anim anim::@3 (byte) anim::x_msb#1 ← (byte~) anim::$4 (byte~) anim::$5 ← < (word) anim::x#0 *((byte*) SPRITES_XPOS#0 + (byte) anim::j2#2) ← (byte~) anim::$5 - *((byte*) SPRITES_YPOS#0 + (byte) anim::j2#2) ← *((byte[197]) sintab_y#0 + (byte) anim::yidx#3) - (byte/signed word/word/dword/signed dword~) anim::$6 ← (byte) anim::xidx#3 + (byte/signed byte/word/signed word/dword/signed dword) 10 + *((byte*) SPRITES_YPOS#0 + (byte) anim::j2#2) ← *((byte[$c5]) sintab_y#0 + (byte) anim::yidx#3) + (byte/signed word/word/dword/signed dword~) anim::$6 ← (byte) anim::xidx#3 + (byte/signed byte/word/signed word/dword/signed dword) $a (byte) anim::xidx#1 ← (byte/signed word/word/dword/signed dword~) anim::$6 (bool~) anim::$7 ← (byte) anim::xidx#1 >= (byte) sinlen_x#0 (bool~) anim::$8 ← ! (bool~) anim::$7 @@ -524,15 +524,15 @@ anim::@return: scope:[anim] from anim::@5 return to:@return place_sprites: scope:[place_sprites] from init::@2 - *((byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 127 - *((byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word/dword/signed dword) 127 - *((byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*~) place_sprites::$0 ← (byte*) SCREEN#0 + (word/signed word/dword/signed dword) 1016 + *((byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) $7f + *((byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word/dword/signed dword) $7f + *((byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*~) place_sprites::$0 ← (byte*) SCREEN#0 + (word/signed word/dword/signed dword) $3f8 (byte*) place_sprites::sprites_ptr#0 ← (byte*~) place_sprites::$0 - (byte*~) place_sprites::$1 ← (byte*) sprites#0 / (byte/signed byte/word/signed word/dword/signed dword) 64 + (byte*~) place_sprites::$1 ← (byte*) sprites#0 / (byte/signed byte/word/signed word/dword/signed dword) $40 (byte~) place_sprites::$2 ← ((byte)) (byte*~) place_sprites::$1 (byte) place_sprites::spr_id#0 ← (byte~) place_sprites::$2 - (byte) place_sprites::spr_x#0 ← (byte/signed byte/word/signed word/dword/signed dword) 60 + (byte) place_sprites::spr_x#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3c (byte) place_sprites::j2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) place_sprites::col#0 ← (byte/signed byte/word/signed word/dword/signed dword) 5 (byte) place_sprites::j#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -547,9 +547,9 @@ place_sprites::@1: scope:[place_sprites] from place_sprites place_sprites::@1 *((byte*) place_sprites::sprites_ptr#1 + (byte) place_sprites::j#2) ← (byte) place_sprites::spr_id#2 (byte) place_sprites::spr_id#1 ← ++ (byte) place_sprites::spr_id#2 *((byte*) SPRITES_XPOS#0 + (byte) place_sprites::j2#3) ← (byte) place_sprites::spr_x#2 - *((byte*) SPRITES_YPOS#0 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word/dword/signed dword) 80 + *((byte*) SPRITES_YPOS#0 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word/dword/signed dword) $50 *((byte*) SPRITES_COLS#0 + (byte) place_sprites::j#2) ← (byte) place_sprites::col#2 - (byte/signed word/word/dword/signed dword~) place_sprites::$3 ← (byte) place_sprites::spr_x#2 + (byte/signed byte/word/signed word/dword/signed dword) 32 + (byte/signed word/word/dword/signed dword~) place_sprites::$3 ← (byte) place_sprites::spr_x#2 + (byte/signed byte/word/signed word/dword/signed dword) $20 (byte) place_sprites::spr_x#1 ← (byte/signed word/word/dword/signed dword~) place_sprites::$3 (byte/signed byte/word/signed word/dword/signed dword~) place_sprites::$4 ← (byte/signed byte/word/signed word/dword/signed dword) 7 ^ (byte/signed byte/word/signed word/dword/signed dword) 5 (byte/word/dword~) place_sprites::$5 ← (byte) place_sprites::col#2 ^ (byte/signed byte/word/signed word/dword/signed dword~) place_sprites::$4 @@ -578,7 +578,7 @@ gen_sprites::@1: scope:[gen_sprites] from gen_sprites gen_sprites::@3 gen_sprites::@3: scope:[gen_sprites] from gen_sprites::@1 (byte) gen_sprites::i#3 ← phi( gen_sprites::@1/(byte) gen_sprites::i#2 ) (byte*) gen_sprites::spr#3 ← phi( gen_sprites::@1/(byte*) gen_sprites::spr#2 ) - (byte*~) gen_sprites::$1 ← (byte*) gen_sprites::spr#3 + (byte/signed byte/word/signed word/dword/signed dword) 64 + (byte*~) gen_sprites::$1 ← (byte*) gen_sprites::spr#3 + (byte/signed byte/word/signed word/dword/signed dword) $40 (byte*) gen_sprites::spr#1 ← (byte*~) gen_sprites::$1 (byte) gen_sprites::i#1 ← (byte) gen_sprites::i#3 + rangenext(0,6) (bool~) gen_sprites::$2 ← (byte) gen_sprites::i#1 != rangelast(0,6) @@ -595,7 +595,7 @@ gen_chargen_sprite: scope:[gen_chargen_sprite] from gen_sprites::@1 (byte*~) gen_chargen_sprite::$2 ← (byte*) CHARGEN#0 + (word~) gen_chargen_sprite::$1 (byte*) gen_chargen_sprite::chargen#0 ← (byte*~) gen_chargen_sprite::$2 asm { sei } - *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 + *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 (byte) gen_chargen_sprite::y#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:gen_chargen_sprite::@1 gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_chargen_sprite::@9 @@ -616,7 +616,7 @@ gen_chargen_sprite::@2: scope:[gen_chargen_sprite] from gen_chargen_sprite::@1 (byte) gen_chargen_sprite::s_gen#7 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::s_gen#0 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::s_gen#9 ) (byte) gen_chargen_sprite::bits#2 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::bits#0 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::bits#1 ) (byte) gen_chargen_sprite::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte~) gen_chargen_sprite::$3 ← (byte) gen_chargen_sprite::bits#2 & (byte/word/signed word/dword/signed dword) 128 + (byte~) gen_chargen_sprite::$3 ← (byte) gen_chargen_sprite::bits#2 & (byte/word/signed word/dword/signed dword) $80 (bool~) gen_chargen_sprite::$4 ← (byte~) gen_chargen_sprite::$3 != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) gen_chargen_sprite::$5 ← ! (bool~) gen_chargen_sprite::$4 if((bool~) gen_chargen_sprite::$5) goto gen_chargen_sprite::@3 @@ -715,7 +715,7 @@ gen_chargen_sprite::@9: scope:[gen_chargen_sprite] from gen_chargen_sprite::@8 if((bool~) gen_chargen_sprite::$14) goto gen_chargen_sprite::@1 to:gen_chargen_sprite::@10 gen_chargen_sprite::@10: scope:[gen_chargen_sprite] from gen_chargen_sprite::@9 - *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 + *((byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 asm { cli } to:gen_chargen_sprite::@return gen_chargen_sprite::@return: scope:[gen_chargen_sprite] from gen_chargen_sprite::@10 @@ -731,7 +731,7 @@ gen_sintab: scope:[gen_sintab] from init::@6 init::@8 (byte[]) gen_sintab::f_i#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) gen_sintab::f_min#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) gen_sintab::f_amp#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } - (byte*) gen_sintab::f_2pi#0 ← ((byte*)) (word/dword/signed dword) 58085 + (byte*) gen_sintab::f_2pi#0 ← ((byte*)) (word/dword/signed dword) $e2e5 (word~) gen_sintab::$0 ← ((word)) (byte) gen_sintab::max#2 (word) setFAC::w#0 ← (word~) gen_sintab::$0 call setFAC @@ -1862,10 +1862,10 @@ SYMBOL TABLE SSA (byte) sinlen_x#0 (byte) sinlen_y (byte) sinlen_y#0 -(byte[221]) sintab_x -(byte[221]) sintab_x#0 -(byte[197]) sintab_y -(byte[197]) sintab_y#0 +(byte[$dd]) sintab_x +(byte[$dd]) sintab_x#0 +(byte[$c5]) sintab_y +(byte[$c5]) sintab_y#0 (byte*) sprites (byte*) sprites#0 (void()) subFACfromARG() @@ -2085,8 +2085,8 @@ Successful SSA optimization Pass2RedundantPhiElimination Redundant Phi (byte) progress_idx#54 (byte) progress_idx#23 Redundant Phi (byte*) progress_cursor#54 (byte*) progress_cursor#22 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$1 [143] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 -Simple Condition (bool~) init::$2 [166] if((byte) init::i#1!=rangelast(0,39)) goto init::@1 +Simple Condition (bool~) main::$1 [143] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 +Simple Condition (bool~) init::$2 [166] if((byte) init::i#1!=rangelast(0,$27)) goto init::@1 Simple Condition (bool~) clear_screen::$1 [211] if((byte*) clear_screen::sc#1<(byte*~) clear_screen::$0) goto clear_screen::@1 Simple Condition (bool~) progress_inc::$1 [227] if((byte) progress_idx#10!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto progress_inc::@1 Simple Condition (bool~) anim::$8 [263] if((byte) anim::xidx#1<(byte) sinlen_x#0) goto anim::@2 @@ -2106,66 +2106,66 @@ Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -2176,40 +2176,40 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 -Constant (const byte*) memLo#0 = ((byte*))254 -Constant (const byte*) memHi#0 = ((byte*))255 -Constant (const byte*) print_line_cursor#0 = ((byte*))1024 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f +Constant (const byte*) memLo#0 = ((byte*))$fe +Constant (const byte*) memHi#0 = ((byte*))$ff +Constant (const byte*) print_line_cursor#0 = ((byte*))$400 Constant (const byte[]) print_hextab#0 = $0 -Constant (const byte) sinlen_x#0 = 221 -Constant (const byte[221]) sintab_x#0 = { fill( 221, 0) } -Constant (const byte) sinlen_y#0 = 197 -Constant (const byte[197]) sintab_y#0 = { fill( 197, 0) } -Constant (const byte*) sprites#0 = ((byte*))8192 -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte) sinlen_x#0 = $dd +Constant (const byte[$dd]) sintab_x#0 = { fill( $dd, 0) } +Constant (const byte) sinlen_y#0 = $c5 +Constant (const byte[$c5]) sintab_y#0 = { fill( $c5, 0) } +Constant (const byte*) sprites#0 = ((byte*))$2000 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Constant (const byte) init::i#0 = 0 Constant (const byte) gen_sintab::min#0 = 0 -Constant (const byte) gen_sintab::max#0 = 255 -Constant (const byte) gen_sintab::min#1 = 50 -Constant (const byte) gen_sintab::max#1 = 208 +Constant (const byte) gen_sintab::max#0 = $ff +Constant (const byte) gen_sintab::min#1 = $32 +Constant (const byte) gen_sintab::max#1 = $d0 Constant (const byte) progress_idx#35 = 0 Constant (const byte) progress_idx#23 = 0 -Constant (const byte[]) progress_inc::progress_chars#0 = { 32, 101, 116, 117, 97, 246, 231, 234, 224 } +Constant (const byte[]) progress_inc::progress_chars#0 = { $20, $65, $74, $75, $61, $f6, $e7, $ea, $e0 } Constant (const byte) progress_idx#11 = 0 Constant (const byte) sin_idx_x#16 = 0 Constant (const byte) sin_idx_y#17 = 0 -Constant (const byte) anim::j2#0 = 12 +Constant (const byte) anim::j2#0 = $c Constant (const byte) anim::x_msb#0 = 0 Constant (const byte) anim::j#0 = 0 -Constant (const byte/signed byte/word/signed word/dword/signed dword) anim::$0 = ((word))30 +Constant (const byte/signed byte/word/signed word/dword/signed dword) anim::$0 = ((word))$1e Constant (const byte) sin_idx_x#4 = 0 Constant (const byte) sin_idx_y#4 = 0 -Constant (const byte) place_sprites::spr_x#0 = 60 +Constant (const byte) place_sprites::spr_x#0 = $3c Constant (const byte) place_sprites::j2#0 = 0 Constant (const byte) place_sprites::col#0 = 5 Constant (const byte) place_sprites::j#0 = 0 @@ -2228,20 +2228,20 @@ Constant (const byte) gen_chargen_sprite::s_gen_cnt#2 = 0 Constant (const byte[]) gen_sintab::f_i#0 = { 0, 0, 0, 0, 0 } Constant (const byte[]) gen_sintab::f_min#0 = { 0, 0, 0, 0, 0 } Constant (const byte[]) gen_sintab::f_amp#0 = { 0, 0, 0, 0, 0 } -Constant (const byte*) gen_sintab::f_2pi#0 = ((byte*))58085 +Constant (const byte*) gen_sintab::f_2pi#0 = ((byte*))$e2e5 Constant (const word) setFAC::w#2 = 2 Constant (const byte) gen_sintab::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) progress_init::line#0 = SCREEN#0 Constant (const byte*) gen_sintab::sintab#0 = sintab_x#0 Constant (const byte) gen_sintab::length#0 = sinlen_x#0 -Constant (const byte*) progress_init::line#1 = SCREEN#0+40 +Constant (const byte*) progress_init::line#1 = SCREEN#0+$28 Constant (const byte*) gen_sintab::sintab#1 = sintab_y#0 Constant (const byte) gen_sintab::length#1 = sinlen_y#0 Constant (const byte*) clear_screen::sc#0 = SCREEN#0 -Constant (const byte*) clear_screen::$0 = SCREEN#0+1000 -Constant (const byte*) place_sprites::sprites_ptr#0 = SCREEN#0+1016 -Constant (const byte*) place_sprites::$1 = sprites#0/64 +Constant (const byte*) clear_screen::$0 = SCREEN#0+$3e8 +Constant (const byte*) place_sprites::sprites_ptr#0 = SCREEN#0+$3f8 +Constant (const byte*) place_sprites::$1 = sprites#0/$40 Constant (const byte*) gen_sprites::spr#0 = sprites#0 Constant (const byte*) setMEMtoFAC::mem#0 = gen_sintab::f_min#0 Constant (const byte*) setMEMtoFAC::mem#1 = gen_sintab::f_amp#0 @@ -2257,7 +2257,7 @@ Constant (const byte*) addMEMtoFAC::mem#1 = gen_sintab::f_min#0 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) place_sprites::spr_id#0 = ((byte))place_sprites::$1 Successful SSA optimization Pass2ConstantIdentification -Consolidated array index constant in assignment *(COLS#0+40 + init::$1) +Consolidated array index constant in assignment *(COLS#0+$28 + init::$1) Consolidated array index constant in *(progress_inc::progress_chars#0+8) Successful SSA optimization Pass2ConstantAdditionElimination if() condition always true - replacing block destination [44] if(true) goto main::@1 @@ -2272,7 +2272,7 @@ Successful SSA optimization Pass2NopCastElimination Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks Resolved ranged next value init::i#1 ← ++ init::i#2 to ++ -Resolved ranged comparison value if(init::i#1!=rangelast(0,39)) goto init::@1 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(init::i#1!=rangelast(0,$27)) goto init::@1 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value anim::j#1 ← ++ anim::j#2 to ++ Resolved ranged comparison value if(anim::j#1!=rangelast(0,6)) goto anim::@1 to (byte/signed byte/word/signed word/dword/signed dword) 7 Resolved ranged next value place_sprites::j#1 ← ++ place_sprites::j#2 to ++ @@ -2367,7 +2367,7 @@ Constant inlined place_sprites::j#0 = (byte/signed byte/word/signed word/dword/s Constant inlined gen_sintab::length#1 = (const byte) sinlen_y#0 Constant inlined progress_idx#23 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined gen_chargen_sprite::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined place_sprites::spr_id#0 = ((byte))(const byte*) sprites#0/(byte/signed byte/word/signed word/dword/signed dword) 64 +Constant inlined place_sprites::spr_id#0 = ((byte))(const byte*) sprites#0/(byte/signed byte/word/signed word/dword/signed dword) $40 Constant inlined divMEMbyFAC::mem#1 = (const byte[]) gen_sintab::f_i#0 Constant inlined divMEMbyFAC::mem#0 = (const byte[]) gen_sintab::f_amp#0 Constant inlined setMEMtoFAC::mem#3 = (const byte[]) gen_sintab::f_min#0 @@ -2382,32 +2382,32 @@ Constant inlined gen_sprites::spr#0 = (const byte*) sprites#0 Constant inlined clear_screen::sc#0 = (const byte*) SCREEN#0 Constant inlined sin_idx_y#17 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined gen_chargen_sprite::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined gen_sintab::sintab#0 = (const byte[221]) sintab_x#0 +Constant inlined gen_sintab::sintab#0 = (const byte[$dd]) sintab_x#0 Constant inlined place_sprites::j2#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined gen_sintab::sintab#1 = (const byte[197]) sintab_y#0 +Constant inlined gen_sintab::sintab#1 = (const byte[$c5]) sintab_y#0 Constant inlined sin_idx_x#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined gen_sintab::length#0 = (const byte) sinlen_x#0 -Constant inlined gen_sintab::max#0 = (byte/word/signed word/dword/signed dword) 255 -Constant inlined gen_sintab::max#1 = (byte/word/signed word/dword/signed dword) 208 +Constant inlined gen_sintab::max#0 = (byte/word/signed word/dword/signed dword) $ff +Constant inlined gen_sintab::max#1 = (byte/word/signed word/dword/signed dword) $d0 Constant inlined mulFACbyMEM::mem#0 = (const byte*) gen_sintab::f_2pi#0 Constant inlined mulFACbyMEM::mem#1 = (const byte[]) gen_sintab::f_amp#0 -Constant inlined gen_sintab::min#1 = (byte/signed byte/word/signed word/dword/signed dword) 50 -Constant inlined clear_screen::$0 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000 +Constant inlined gen_sintab::min#1 = (byte/signed byte/word/signed word/dword/signed dword) $32 +Constant inlined clear_screen::$0 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8 Constant inlined init::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined gen_sintab::min#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined place_sprites::$4 = (byte/signed byte/word/signed word/dword/signed dword) 7^(byte/signed byte/word/signed word/dword/signed dword) 5 Constant inlined sin_idx_x#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined progress_init::line#0 = (const byte*) SCREEN#0 Constant inlined gen_chargen_sprite::s_gen_cnt#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined place_sprites::$1 = (const byte*) sprites#0/(byte/signed byte/word/signed word/dword/signed dword) 64 +Constant inlined place_sprites::$1 = (const byte*) sprites#0/(byte/signed byte/word/signed word/dword/signed dword) $40 Constant inlined gen_chargen_sprite::s_gen_cnt#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined progress_init::line#1 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined progress_init::line#1 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined anim::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined gen_chargen_sprite::b#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined anim::$0 = ((word))(byte/signed byte/word/signed word/dword/signed dword) 30 +Constant inlined anim::$0 = ((word))(byte/signed byte/word/signed word/dword/signed dword) $1e Constant inlined gen_sintab::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined gen_chargen_sprite::s_gen#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined place_sprites::spr_x#0 = (byte/signed byte/word/signed word/dword/signed dword) 60 +Constant inlined place_sprites::spr_x#0 = (byte/signed byte/word/signed word/dword/signed dword) $3c Constant inlined gen_chargen_sprite::s_gen#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined anim::x_msb#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined gen_sprites::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -2416,7 +2416,7 @@ Constant inlined gen_chargen_sprite::y#0 = (byte/signed byte/word/signed word/dw Constant inlined sin_idx_y#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined progress_idx#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined gen_sprites::$3 = (const byte[]) gen_sprites::cml#0 -Constant inlined anim::j2#0 = (byte/signed byte/word/signed word/dword/signed dword) 12 +Constant inlined anim::j2#0 = (byte/signed byte/word/signed word/dword/signed dword) $c Successful SSA optimization Pass2ConstantInlining Identical Phi Values (byte*) addMEMtoFAC::mem#2 (const byte[]) gen_sintab::f_min#0 Successful SSA optimization Pass2IdenticalPhiElimination @@ -2617,7 +2617,7 @@ main: scope:[main] from @60 main::@2: scope:[main] from main main::@2 main::@3 [6] (byte) sin_idx_y#13 ← phi( main::@3/(byte) sin_idx_y#11 main/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [6] (byte) sin_idx_x#13 ← phi( main::@3/(byte) sin_idx_x#11 main/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 + [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 [8] phi() @@ -2631,17 +2631,17 @@ anim: scope:[anim] from main::@3 anim::@1: scope:[anim] from anim anim::@3 [13] (byte) anim::j#2 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@3/(byte) anim::j#1 ) [13] (byte) anim::yidx#3 ← phi( anim/(byte) anim::yidx#0 anim::@3/(byte) anim::yidx#6 ) - [13] (byte) anim::j2#2 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) 12 anim::@3/(byte) anim::j2#1 ) + [13] (byte) anim::j2#2 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) $c anim::@3/(byte) anim::j2#1 ) [13] (byte) anim::x_msb#2 ← phi( anim/(byte/signed byte/word/signed word/dword/signed dword) 0 anim::@3/(byte) anim::x_msb#1 ) [13] (byte) anim::xidx#3 ← phi( anim/(byte) anim::xidx#0 anim::@3/(byte) anim::xidx#5 ) - [14] (word) anim::x#0 ← ((word))(byte/signed byte/word/signed word/dword/signed dword) 30 + *((const byte[221]) sintab_x#0 + (byte) anim::xidx#3) + [14] (word) anim::x#0 ← ((word))(byte/signed byte/word/signed word/dword/signed dword) $1e + *((const byte[$dd]) sintab_x#0 + (byte) anim::xidx#3) [15] (byte~) anim::$2 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [16] (byte~) anim::$3 ← > (word) anim::x#0 [17] (byte) anim::x_msb#1 ← (byte~) anim::$2 | (byte~) anim::$3 [18] (byte~) anim::$5 ← < (word) anim::x#0 [19] *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#2) ← (byte~) anim::$5 - [20] *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#2) ← *((const byte[197]) sintab_y#0 + (byte) anim::yidx#3) - [21] (byte) anim::xidx#1 ← (byte) anim::xidx#3 + (byte/signed byte/word/signed word/dword/signed dword) 10 + [20] *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#2) ← *((const byte[$c5]) sintab_y#0 + (byte) anim::yidx#3) + [21] (byte) anim::xidx#1 ← (byte) anim::xidx#3 + (byte/signed byte/word/signed word/dword/signed dword) $a [22] if((byte) anim::xidx#1<(const byte) sinlen_x#0) goto anim::@2 to:anim::@6 anim::@6: scope:[anim] from anim::@1 @@ -2691,9 +2691,9 @@ init: scope:[init] from main init::@1: scope:[init] from init init::@1 [45] (byte) init::i#2 ← phi( init::@1/(byte) init::i#1 init/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [46] *((const byte*) COLS#0 + (byte) init::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [47] *((const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) init::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 11 + [47] *((const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) init::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) $b [48] (byte) init::i#1 ← ++ (byte) init::i#2 - [49] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto init::@1 + [49] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto init::@1 to:init::@2 init::@2: scope:[init] from init::@1 [50] phi() @@ -2733,16 +2733,16 @@ clear_screen::@1: scope:[clear_screen] from clear_screen clear_screen::@1 [66] (byte*) clear_screen::sc#2 ← phi( clear_screen/(const byte*) SCREEN#0 clear_screen::@1/(byte*) clear_screen::sc#1 ) [67] *((byte*) clear_screen::sc#2) ← (byte) ' ' [68] (byte*) clear_screen::sc#1 ← ++ (byte*) clear_screen::sc#2 - [69] if((byte*) clear_screen::sc#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto clear_screen::@1 + [69] if((byte*) clear_screen::sc#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto clear_screen::@1 to:clear_screen::@return clear_screen::@return: scope:[clear_screen] from clear_screen::@1 [70] return to:@return gen_sintab: scope:[gen_sintab] from init::@6 init::@8 - [71] (byte*) gen_sintab::sintab#12 ← phi( init::@6/(const byte[221]) sintab_x#0 init::@8/(const byte[197]) sintab_y#0 ) + [71] (byte*) gen_sintab::sintab#12 ← phi( init::@6/(const byte[$dd]) sintab_x#0 init::@8/(const byte[$c5]) sintab_y#0 ) [71] (byte) gen_sintab::length#10 ← phi( init::@6/(const byte) sinlen_x#0 init::@8/(const byte) sinlen_y#0 ) - [71] (byte) gen_sintab::min#2 ← phi( init::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 init::@8/(byte/signed byte/word/signed word/dword/signed dword) 50 ) - [71] (byte) gen_sintab::max#2 ← phi( init::@6/(byte/word/signed word/dword/signed dword) 255 init::@8/(byte/word/signed word/dword/signed dword) 208 ) + [71] (byte) gen_sintab::min#2 ← phi( init::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 init::@8/(byte/signed byte/word/signed word/dword/signed dword) $32 ) + [71] (byte) gen_sintab::max#2 ← phi( init::@6/(byte/word/signed word/dword/signed dword) $ff init::@8/(byte/word/signed word/dword/signed dword) $d0 ) [72] (word) setFAC::w#0 ← ((word)) (byte) gen_sintab::max#2 [73] call setFAC to:gen_sintab::@3 @@ -2946,7 +2946,7 @@ setARGtoFAC::@return: scope:[setARGtoFAC] from setARGtoFAC [167] return to:@return progress_init: scope:[progress_init] from init::@5 init::@7 - [168] (byte*) progress_init::line#2 ← phi( init::@5/(const byte*) SCREEN#0 init::@7/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40 ) + [168] (byte*) progress_init::line#2 ← phi( init::@5/(const byte*) SCREEN#0 init::@7/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28 ) to:progress_init::@return progress_init::@return: scope:[progress_init] from progress_init [169] return @@ -2962,7 +2962,7 @@ gen_sprites::@1: scope:[gen_sprites] from gen_sprites gen_sprites::@3 [174] call gen_chargen_sprite to:gen_sprites::@3 gen_sprites::@3: scope:[gen_sprites] from gen_sprites::@1 - [175] (byte*) gen_sprites::spr#1 ← (byte*) gen_sprites::spr#2 + (byte/signed byte/word/signed word/dword/signed dword) 64 + [175] (byte*) gen_sprites::spr#1 ← (byte*) gen_sprites::spr#2 + (byte/signed byte/word/signed word/dword/signed dword) $40 [176] (byte) gen_sprites::i#1 ← ++ (byte) gen_sprites::i#2 [177] if((byte) gen_sprites::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 7) goto gen_sprites::@1 to:gen_sprites::@return @@ -2974,7 +2974,7 @@ gen_chargen_sprite: scope:[gen_chargen_sprite] from gen_sprites::@1 [180] (word~) gen_chargen_sprite::$1 ← (word~) gen_chargen_sprite::$0 << (byte/signed byte/word/signed word/dword/signed dword) 3 [181] (byte*) gen_chargen_sprite::chargen#0 ← (const byte*) CHARGEN#0 + (word~) gen_chargen_sprite::$1 asm { sei } - [183] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 + [183] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 to:gen_chargen_sprite::@1 gen_chargen_sprite::@1: scope:[gen_chargen_sprite] from gen_chargen_sprite gen_chargen_sprite::@9 [184] (byte*) gen_chargen_sprite::sprite#11 ← phi( gen_chargen_sprite/(byte*) gen_chargen_sprite::sprite#0 gen_chargen_sprite::@9/(byte*) gen_chargen_sprite::sprite#2 ) @@ -2987,7 +2987,7 @@ gen_chargen_sprite::@2: scope:[gen_chargen_sprite] from gen_chargen_sprite::@1 [186] (byte) gen_chargen_sprite::s_gen_cnt#4 ← phi( gen_chargen_sprite::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::s_gen_cnt#5 ) [186] (byte) gen_chargen_sprite::s_gen#5 ← phi( gen_chargen_sprite::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::s_gen#6 ) [186] (byte) gen_chargen_sprite::bits#2 ← phi( gen_chargen_sprite::@1/(byte) gen_chargen_sprite::bits#0 gen_chargen_sprite::@8/(byte) gen_chargen_sprite::bits#1 ) - [187] (byte~) gen_chargen_sprite::$3 ← (byte) gen_chargen_sprite::bits#2 & (byte/word/signed word/dword/signed dword) 128 + [187] (byte~) gen_chargen_sprite::$3 ← (byte) gen_chargen_sprite::bits#2 & (byte/word/signed word/dword/signed dword) $80 [188] if((byte~) gen_chargen_sprite::$3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gen_chargen_sprite::@3 to:gen_chargen_sprite::@6 gen_chargen_sprite::@6: scope:[gen_chargen_sprite] from gen_chargen_sprite::@2 @@ -3030,29 +3030,29 @@ gen_chargen_sprite::@9: scope:[gen_chargen_sprite] from gen_chargen_sprite::@8 [208] if((byte) gen_chargen_sprite::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto gen_chargen_sprite::@1 to:gen_chargen_sprite::@10 gen_chargen_sprite::@10: scope:[gen_chargen_sprite] from gen_chargen_sprite::@9 - [209] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 + [209] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 asm { cli } to:gen_chargen_sprite::@return gen_chargen_sprite::@return: scope:[gen_chargen_sprite] from gen_chargen_sprite::@10 [211] return to:@return place_sprites: scope:[place_sprites] from init::@2 - [212] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 127 - [213] *((const byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word/dword/signed dword) 127 - [214] *((const byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word/dword/signed dword) 127 + [212] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) $7f + [213] *((const byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word/dword/signed dword) $7f + [214] *((const byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word/dword/signed dword) $7f to:place_sprites::@1 place_sprites::@1: scope:[place_sprites] from place_sprites place_sprites::@1 [215] (byte) place_sprites::col#2 ← phi( place_sprites/(byte/signed byte/word/signed word/dword/signed dword) 5 place_sprites::@1/(byte) place_sprites::col#1 ) [215] (byte) place_sprites::j2#3 ← phi( place_sprites/(byte/signed byte/word/signed word/dword/signed dword) 0 place_sprites::@1/(byte) place_sprites::j2#2 ) - [215] (byte) place_sprites::spr_x#2 ← phi( place_sprites/(byte/signed byte/word/signed word/dword/signed dword) 60 place_sprites::@1/(byte) place_sprites::spr_x#1 ) + [215] (byte) place_sprites::spr_x#2 ← phi( place_sprites/(byte/signed byte/word/signed word/dword/signed dword) $3c place_sprites::@1/(byte) place_sprites::spr_x#1 ) [215] (byte) place_sprites::j#2 ← phi( place_sprites/(byte/signed byte/word/signed word/dword/signed dword) 0 place_sprites::@1/(byte) place_sprites::j#1 ) - [215] (byte) place_sprites::spr_id#2 ← phi( place_sprites/((byte))(const byte*) sprites#0/(byte/signed byte/word/signed word/dword/signed dword) 64 place_sprites::@1/(byte) place_sprites::spr_id#1 ) + [215] (byte) place_sprites::spr_id#2 ← phi( place_sprites/((byte))(const byte*) sprites#0/(byte/signed byte/word/signed word/dword/signed dword) $40 place_sprites::@1/(byte) place_sprites::spr_id#1 ) [216] *((const byte*) place_sprites::sprites_ptr#0 + (byte) place_sprites::j#2) ← (byte) place_sprites::spr_id#2 [217] (byte) place_sprites::spr_id#1 ← ++ (byte) place_sprites::spr_id#2 [218] *((const byte*) SPRITES_XPOS#0 + (byte) place_sprites::j2#3) ← (byte) place_sprites::spr_x#2 - [219] *((const byte*) SPRITES_YPOS#0 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word/dword/signed dword) 80 + [219] *((const byte*) SPRITES_YPOS#0 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word/dword/signed dword) $50 [220] *((const byte*) SPRITES_COLS#0 + (byte) place_sprites::j#2) ← (byte) place_sprites::col#2 - [221] (byte) place_sprites::spr_x#1 ← (byte) place_sprites::spr_x#2 + (byte/signed byte/word/signed word/dword/signed dword) 32 + [221] (byte) place_sprites::spr_x#1 ← (byte) place_sprites::spr_x#2 + (byte/signed byte/word/signed word/dword/signed dword) $20 [222] (byte) place_sprites::col#1 ← (byte) place_sprites::col#2 ^ (byte/signed byte/word/signed word/dword/signed dword) 7^(byte/signed byte/word/signed word/dword/signed dword) 5 [223] (byte) place_sprites::j2#1 ← ++ (byte) place_sprites::j2#3 [224] (byte) place_sprites::j2#2 ← ++ (byte) place_sprites::j2#1 @@ -3330,8 +3330,8 @@ VARIABLE REGISTER WEIGHTS (byte) sin_idx_y#3 2.0 (byte) sinlen_x (byte) sinlen_y -(byte[221]) sintab_x -(byte[197]) sintab_y +(byte[$dd]) sintab_x +(byte[$c5]) sintab_y (byte*) sprites (void()) subFACfromARG() @@ -3566,7 +3566,7 @@ main: { jmp b2 //SEG17 main::@2 b2: - //SEG18 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG18 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b2_from_b2 @@ -3608,7 +3608,7 @@ anim: { lda #0 sta j //SEG31 [13] phi (byte) anim::yidx#3 = (byte) anim::yidx#0 [phi:anim->anim::@1#1] -- register_copy - //SEG32 [13] phi (byte) anim::j2#2 = (byte/signed byte/word/signed word/dword/signed dword) 12 [phi:anim->anim::@1#2] -- vbuz1=vbuc1 + //SEG32 [13] phi (byte) anim::j2#2 = (byte/signed byte/word/signed word/dword/signed dword) $c [phi:anim->anim::@1#2] -- vbuz1=vbuc1 lda #$c sta j2 //SEG33 [13] phi (byte) anim::x_msb#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim->anim::@1#3] -- vbuz1=vbuc1 @@ -3626,7 +3626,7 @@ anim: { jmp b1 //SEG41 anim::@1 b1: - //SEG42 [14] (word) anim::x#0 ← ((word))(byte/signed byte/word/signed word/dword/signed dword) 30 + *((const byte[221]) sintab_x#0 + (byte) anim::xidx#3) -- vwuz1=vbuc1_plus_pbuc2_derefidx_vbuz2 + //SEG42 [14] (word) anim::x#0 ← ((word))(byte/signed byte/word/signed word/dword/signed dword) $1e + *((const byte[$dd]) sintab_x#0 + (byte) anim::xidx#3) -- vwuz1=vbuc1_plus_pbuc2_derefidx_vbuz2 ldy xidx lda sintab_x,y clc @@ -3653,12 +3653,12 @@ anim: { lda _5 ldy j2 sta SPRITES_XPOS,y - //SEG48 [20] *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#2) ← *((const byte[197]) sintab_y#0 + (byte) anim::yidx#3) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2 + //SEG48 [20] *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#2) ← *((const byte[$c5]) sintab_y#0 + (byte) anim::yidx#3) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2 ldy yidx lda sintab_y,y ldy j2 sta SPRITES_YPOS,y - //SEG49 [21] (byte) anim::xidx#1 ← (byte) anim::xidx#3 + (byte/signed byte/word/signed word/dword/signed dword) 10 -- vbuz1=vbuz1_plus_vbuc1 + //SEG49 [21] (byte) anim::xidx#1 ← (byte) anim::xidx#3 + (byte/signed byte/word/signed word/dword/signed dword) $a -- vbuz1=vbuz1_plus_vbuc1 lda #$a clc adc xidx @@ -3798,13 +3798,13 @@ init: { ldy i lda #0 sta COLS,y - //SEG98 [47] *((const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) init::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 11 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG98 [47] *((const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) init::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) $b -- pbuc1_derefidx_vbuz1=vbuc2 ldy i lda #$b sta COLS+$28,y //SEG99 [48] (byte) init::i#1 ← ++ (byte) init::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG100 [49] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto init::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG100 [49] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto init::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$28 bne b1_from_b1 @@ -3846,7 +3846,7 @@ init: { //SEG115 [57] call gen_sintab //SEG116 [71] phi from init::@6 to gen_sintab [phi:init::@6->gen_sintab] gen_sintab_from_b6: - //SEG117 [71] phi (byte*) gen_sintab::sintab#12 = (const byte[221]) sintab_x#0 [phi:init::@6->gen_sintab#0] -- pbuz1=pbuc1 + //SEG117 [71] phi (byte*) gen_sintab::sintab#12 = (const byte[$dd]) sintab_x#0 [phi:init::@6->gen_sintab#0] -- pbuz1=pbuc1 lda #sintab_x @@ -3857,7 +3857,7 @@ init: { //SEG119 [71] phi (byte) gen_sintab::min#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init::@6->gen_sintab#2] -- vbuz1=vbuc1 lda #0 sta gen_sintab.min - //SEG120 [71] phi (byte) gen_sintab::max#2 = (byte/word/signed word/dword/signed dword) 255 [phi:init::@6->gen_sintab#3] -- vbuz1=vbuc1 + //SEG120 [71] phi (byte) gen_sintab::max#2 = (byte/word/signed word/dword/signed dword) $ff [phi:init::@6->gen_sintab#3] -- vbuz1=vbuc1 lda #$ff sta gen_sintab.max jsr gen_sintab @@ -3869,7 +3869,7 @@ init: { //SEG123 [59] call progress_init //SEG124 [168] phi from init::@7 to progress_init [phi:init::@7->progress_init] progress_init_from_b7: - //SEG125 [168] phi (byte*) progress_init::line#2 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40 [phi:init::@7->progress_init#0] -- pbuz1=pbuc1 + //SEG125 [168] phi (byte*) progress_init::line#2 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28 [phi:init::@7->progress_init#0] -- pbuz1=pbuc1 lda #SCREEN+$28 @@ -3883,7 +3883,7 @@ init: { //SEG128 [61] call gen_sintab //SEG129 [71] phi from init::@8 to gen_sintab [phi:init::@8->gen_sintab] gen_sintab_from_b8: - //SEG130 [71] phi (byte*) gen_sintab::sintab#12 = (const byte[197]) sintab_y#0 [phi:init::@8->gen_sintab#0] -- pbuz1=pbuc1 + //SEG130 [71] phi (byte*) gen_sintab::sintab#12 = (const byte[$c5]) sintab_y#0 [phi:init::@8->gen_sintab#0] -- pbuz1=pbuc1 lda #sintab_y @@ -3891,10 +3891,10 @@ init: { //SEG131 [71] phi (byte) gen_sintab::length#10 = (const byte) sinlen_y#0 [phi:init::@8->gen_sintab#1] -- vbuz1=vbuc1 lda #sinlen_y sta gen_sintab.length - //SEG132 [71] phi (byte) gen_sintab::min#2 = (byte/signed byte/word/signed word/dword/signed dword) 50 [phi:init::@8->gen_sintab#2] -- vbuz1=vbuc1 + //SEG132 [71] phi (byte) gen_sintab::min#2 = (byte/signed byte/word/signed word/dword/signed dword) $32 [phi:init::@8->gen_sintab#2] -- vbuz1=vbuc1 lda #$32 sta gen_sintab.min - //SEG133 [71] phi (byte) gen_sintab::max#2 = (byte/word/signed word/dword/signed dword) 208 [phi:init::@8->gen_sintab#3] -- vbuz1=vbuc1 + //SEG133 [71] phi (byte) gen_sintab::max#2 = (byte/word/signed word/dword/signed dword) $d0 [phi:init::@8->gen_sintab#3] -- vbuz1=vbuc1 lda #$d0 sta gen_sintab.max jsr gen_sintab @@ -3939,7 +3939,7 @@ clear_screen: { bne !+ inc sc+1 !: - //SEG148 [69] if((byte*) clear_screen::sc#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto clear_screen::@1 -- pbuz1_lt_pbuc1_then_la1 + //SEG148 [69] if((byte*) clear_screen::sc#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto clear_screen::@1 -- pbuz1_lt_pbuc1_then_la1 lda sc+1 cmp #>SCREEN+$3e8 bcc b1_from_b1 @@ -4599,7 +4599,7 @@ gen_sprites: { jmp b3 //SEG359 gen_sprites::@3 b3: - //SEG360 [175] (byte*) gen_sprites::spr#1 ← (byte*) gen_sprites::spr#2 + (byte/signed byte/word/signed word/dword/signed dword) 64 -- pbuz1=pbuz1_plus_vbuc1 + //SEG360 [175] (byte*) gen_sprites::spr#1 ← (byte*) gen_sprites::spr#2 + (byte/signed byte/word/signed word/dword/signed dword) $40 -- pbuz1=pbuz1_plus_vbuc1 lda spr clc adc #$40 @@ -4666,7 +4666,7 @@ gen_chargen_sprite: { sta chargen+1 //SEG369 asm { sei } sei - //SEG370 [183] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- _deref_pbuc1=vbuc2 + //SEG370 [183] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 -- _deref_pbuc1=vbuc2 lda #$32 sta PROCPORT //SEG371 [184] phi from gen_chargen_sprite to gen_chargen_sprite::@1 [phi:gen_chargen_sprite->gen_chargen_sprite::@1] @@ -4712,7 +4712,7 @@ gen_chargen_sprite: { jmp b2 //SEG391 gen_chargen_sprite::@2 b2: - //SEG392 [187] (byte~) gen_chargen_sprite::$3 ← (byte) gen_chargen_sprite::bits#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG392 [187] (byte~) gen_chargen_sprite::$3 ← (byte) gen_chargen_sprite::bits#2 & (byte/word/signed word/dword/signed dword) $80 -- vbuz1=vbuz2_band_vbuc1 lda #$80 and bits sta _3 @@ -4848,7 +4848,7 @@ gen_chargen_sprite: { jmp b10 //SEG440 gen_chargen_sprite::@10 b10: - //SEG441 [209] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 -- _deref_pbuc1=vbuc2 + //SEG441 [209] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 -- _deref_pbuc1=vbuc2 lda #$37 sta PROCPORT //SEG442 asm { cli } @@ -4869,13 +4869,13 @@ place_sprites: { .label j2_2 = $2e .label j = $2c .label j2_3 = $2e - //SEG446 [212] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=vbuc2 + //SEG446 [212] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) $7f -- _deref_pbuc1=vbuc2 lda #$7f sta SPRITES_ENABLE - //SEG447 [213] *((const byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=vbuc2 + //SEG447 [213] *((const byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word/dword/signed dword) $7f -- _deref_pbuc1=vbuc2 lda #$7f sta SPRITES_EXPAND_X - //SEG448 [214] *((const byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=vbuc2 + //SEG448 [214] *((const byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word/dword/signed dword) $7f -- _deref_pbuc1=vbuc2 lda #$7f sta SPRITES_EXPAND_Y //SEG449 [215] phi from place_sprites to place_sprites::@1 [phi:place_sprites->place_sprites::@1] @@ -4886,13 +4886,13 @@ place_sprites: { //SEG451 [215] phi (byte) place_sprites::j2#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:place_sprites->place_sprites::@1#1] -- vbuz1=vbuc1 lda #0 sta j2_3 - //SEG452 [215] phi (byte) place_sprites::spr_x#2 = (byte/signed byte/word/signed word/dword/signed dword) 60 [phi:place_sprites->place_sprites::@1#2] -- vbuz1=vbuc1 + //SEG452 [215] phi (byte) place_sprites::spr_x#2 = (byte/signed byte/word/signed word/dword/signed dword) $3c [phi:place_sprites->place_sprites::@1#2] -- vbuz1=vbuc1 lda #$3c sta spr_x //SEG453 [215] phi (byte) place_sprites::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:place_sprites->place_sprites::@1#3] -- vbuz1=vbuc1 lda #0 sta j - //SEG454 [215] phi (byte) place_sprites::spr_id#2 = ((byte))(const byte*) sprites#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [phi:place_sprites->place_sprites::@1#4] -- vbuz1=vbuc1 + //SEG454 [215] phi (byte) place_sprites::spr_id#2 = ((byte))(const byte*) sprites#0/(byte/signed byte/word/signed word/dword/signed dword) $40 [phi:place_sprites->place_sprites::@1#4] -- vbuz1=vbuc1 lda #$ff&sprites/$40 sta spr_id jmp b1 @@ -4916,7 +4916,7 @@ place_sprites: { lda spr_x ldy j2_3 sta SPRITES_XPOS,y - //SEG465 [219] *((const byte*) SPRITES_YPOS#0 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word/dword/signed dword) 80 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG465 [219] *((const byte*) SPRITES_YPOS#0 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word/dword/signed dword) $50 -- pbuc1_derefidx_vbuz1=vbuc2 ldy j2_3 lda #$50 sta SPRITES_YPOS,y @@ -4924,7 +4924,7 @@ place_sprites: { lda col ldy j sta SPRITES_COLS,y - //SEG467 [221] (byte) place_sprites::spr_x#1 ← (byte) place_sprites::spr_x#2 + (byte/signed byte/word/signed word/dword/signed dword) 32 -- vbuz1=vbuz1_plus_vbuc1 + //SEG467 [221] (byte) place_sprites::spr_x#1 ← (byte) place_sprites::spr_x#2 + (byte/signed byte/word/signed word/dword/signed dword) $20 -- vbuz1=vbuz1_plus_vbuc1 lda #$20 clc adc spr_x @@ -4958,10 +4958,10 @@ place_sprites: { REGISTER UPLIFT POTENTIAL REGISTERS Equivalence Class zp ZP_BYTE:51 [ anim::$3 ] has ALU potential. -Statement [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 [ sin_idx_x#13 sin_idx_y#13 ] ( main:2 [ sin_idx_x#13 sin_idx_y#13 ] ) always clobbers reg byte a +Statement [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 [ sin_idx_x#13 sin_idx_y#13 ] ( main:2 [ sin_idx_x#13 sin_idx_y#13 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ sin_idx_x#13 sin_idx_x#11 sin_idx_x#3 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ sin_idx_y#13 sin_idx_y#11 sin_idx_y#3 ] -Statement [14] (word) anim::x#0 ← ((word))(byte/signed byte/word/signed word/dword/signed dword) 30 + *((const byte[221]) sintab_x#0 + (byte) anim::xidx#3) [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::x_msb#2 anim::j2#2 anim::yidx#3 anim::j#2 anim::x#0 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::x_msb#2 anim::j2#2 anim::yidx#3 anim::j#2 anim::x#0 ] ) always clobbers reg byte a +Statement [14] (word) anim::x#0 ← ((word))(byte/signed byte/word/signed word/dword/signed dword) $1e + *((const byte[$dd]) sintab_x#0 + (byte) anim::xidx#3) [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::x_msb#2 anim::j2#2 anim::yidx#3 anim::j#2 anim::x#0 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::x_msb#2 anim::j2#2 anim::yidx#3 anim::j#2 anim::x#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ anim::xidx#3 anim::xidx#0 anim::xidx#5 anim::xidx#1 anim::xidx#2 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ anim::x_msb#2 anim::x_msb#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:6 [ anim::j2#2 anim::j2#1 ] @@ -4969,16 +4969,16 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:7 [ an Removing always clobbered register reg byte a as potential for zp ZP_BYTE:8 [ anim::j#2 anim::j#1 ] Statement [15] (byte~) anim::$2 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#2 anim::yidx#3 anim::j#2 anim::x#0 anim::$2 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#2 anim::yidx#3 anim::j#2 anim::x#0 anim::$2 ] ) always clobbers reg byte a Statement [18] (byte~) anim::$5 ← < (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#2 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$5 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#2 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$5 ] ) always clobbers reg byte a -Statement [20] *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#2) ← *((const byte[197]) sintab_y#0 + (byte) anim::yidx#3) [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#2 anim::yidx#3 anim::j#2 anim::x_msb#1 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#2 anim::yidx#3 anim::j#2 anim::x_msb#1 ] ) always clobbers reg byte a -Statement [21] (byte) anim::xidx#1 ← (byte) anim::xidx#3 + (byte/signed byte/word/signed word/dword/signed dword) 10 [ sin_idx_x#13 sin_idx_y#13 anim::j2#2 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::xidx#1 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::j2#2 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::xidx#1 ] ) always clobbers reg byte a +Statement [20] *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#2) ← *((const byte[$c5]) sintab_y#0 + (byte) anim::yidx#3) [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#2 anim::yidx#3 anim::j#2 anim::x_msb#1 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#2 anim::yidx#3 anim::j#2 anim::x_msb#1 ] ) always clobbers reg byte a +Statement [21] (byte) anim::xidx#1 ← (byte) anim::xidx#3 + (byte/signed byte/word/signed word/dword/signed dword) $a [ sin_idx_x#13 sin_idx_y#13 anim::j2#2 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::xidx#1 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::j2#2 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::xidx#1 ] ) always clobbers reg byte a Statement [23] (byte) anim::xidx#2 ← (byte) anim::xidx#1 - (const byte) sinlen_x#0 [ sin_idx_x#13 sin_idx_y#13 anim::j2#2 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::xidx#2 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::j2#2 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::xidx#2 ] ) always clobbers reg byte a Statement [25] (byte) anim::yidx#1 ← (byte) anim::yidx#3 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ sin_idx_x#13 sin_idx_y#13 anim::j2#2 anim::j#2 anim::xidx#5 anim::x_msb#1 anim::yidx#1 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::j2#2 anim::j#2 anim::xidx#5 anim::x_msb#1 anim::yidx#1 ] ) always clobbers reg byte a Statement [27] (byte) anim::yidx#2 ← (byte) anim::yidx#1 - (const byte) sinlen_y#0 [ sin_idx_x#13 sin_idx_y#13 anim::j2#2 anim::j#2 anim::xidx#5 anim::x_msb#1 anim::yidx#2 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::j2#2 anim::j#2 anim::xidx#5 anim::x_msb#1 anim::yidx#2 ] ) always clobbers reg byte a Statement [46] *((const byte*) COLS#0 + (byte) init::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ init::i#2 ] ( main:2::init:5 [ init::i#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:9 [ init::i#2 init::i#1 ] -Statement [47] *((const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) init::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 11 [ init::i#2 ] ( main:2::init:5 [ init::i#2 ] ) always clobbers reg byte a +Statement [47] *((const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) init::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) $b [ init::i#2 ] ( main:2::init:5 [ init::i#2 ] ) always clobbers reg byte a Statement [67] *((byte*) clear_screen::sc#2) ← (byte) ' ' [ clear_screen::sc#2 ] ( main:2::init:5::clear_screen:44 [ clear_screen::sc#2 ] main:2::init:5::clear_screen:63 [ clear_screen::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [69] if((byte*) clear_screen::sc#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto clear_screen::@1 [ clear_screen::sc#1 ] ( main:2::init:5::clear_screen:44 [ clear_screen::sc#1 ] main:2::init:5::clear_screen:63 [ clear_screen::sc#1 ] ) always clobbers reg byte a +Statement [69] if((byte*) clear_screen::sc#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto clear_screen::@1 [ clear_screen::sc#1 ] ( main:2::init:5::clear_screen:44 [ clear_screen::sc#1 ] main:2::init:5::clear_screen:63 [ clear_screen::sc#1 ] ) always clobbers reg byte a Statement [72] (word) setFAC::w#0 ← ((word)) (byte) gen_sintab::max#2 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 setFAC::w#0 progress_init::line#2 ] ( main:2::init:5::gen_sintab:57 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 setFAC::w#0 progress_init::line#2 ] main:2::init:5::gen_sintab:61 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 setFAC::w#0 progress_init::line#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:13 [ gen_sintab::min#2 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:14 [ gen_sintab::length#10 ] @@ -5014,14 +5014,14 @@ Removing always clobbered register reg byte x as potential for zp ZP_BYTE:18 [ p Statement [173] (byte*) gen_chargen_sprite::sprite#0 ← (byte*) gen_sprites::spr#2 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::ch#0 gen_chargen_sprite::sprite#0 ] ( main:2::init:5::gen_sprites:53 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::ch#0 gen_chargen_sprite::sprite#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:31 [ gen_sprites::i#2 gen_sprites::i#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:62 [ gen_chargen_sprite::ch#0 ] -Statement [175] (byte*) gen_sprites::spr#1 ← (byte*) gen_sprites::spr#2 + (byte/signed byte/word/signed word/dword/signed dword) 64 [ gen_sprites::i#2 gen_sprites::spr#1 ] ( main:2::init:5::gen_sprites:53 [ gen_sprites::i#2 gen_sprites::spr#1 ] ) always clobbers reg byte a +Statement [175] (byte*) gen_sprites::spr#1 ← (byte*) gen_sprites::spr#2 + (byte/signed byte/word/signed word/dword/signed dword) $40 [ gen_sprites::i#2 gen_sprites::spr#1 ] ( main:2::init:5::gen_sprites:53 [ gen_sprites::i#2 gen_sprites::spr#1 ] ) always clobbers reg byte a Statement [179] (word~) gen_chargen_sprite::$0 ← ((word)) (byte) gen_chargen_sprite::ch#0 [ gen_chargen_sprite::sprite#0 gen_chargen_sprite::$0 ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::sprite#0 gen_chargen_sprite::$0 ] ) always clobbers reg byte a Statement [180] (word~) gen_chargen_sprite::$1 ← (word~) gen_chargen_sprite::$0 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ gen_chargen_sprite::sprite#0 gen_chargen_sprite::$1 ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::sprite#0 gen_chargen_sprite::$1 ] ) always clobbers reg byte a Statement [181] (byte*) gen_chargen_sprite::chargen#0 ← (const byte*) CHARGEN#0 + (word~) gen_chargen_sprite::$1 [ gen_chargen_sprite::sprite#0 gen_chargen_sprite::chargen#0 ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::sprite#0 gen_chargen_sprite::chargen#0 ] ) always clobbers reg byte a -Statement [183] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ gen_chargen_sprite::sprite#0 gen_chargen_sprite::chargen#0 ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::sprite#0 gen_chargen_sprite::chargen#0 ] ) always clobbers reg byte a +Statement [183] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 [ gen_chargen_sprite::sprite#0 gen_chargen_sprite::chargen#0 ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::sprite#0 gen_chargen_sprite::chargen#0 ] ) always clobbers reg byte a Statement [185] (byte) gen_chargen_sprite::bits#0 ← *((byte*) gen_chargen_sprite::chargen#0 + (byte) gen_chargen_sprite::y#2) [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::sprite#11 gen_chargen_sprite::bits#0 ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::sprite#11 gen_chargen_sprite::bits#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:34 [ gen_chargen_sprite::y#2 gen_chargen_sprite::y#1 ] -Statement [187] (byte~) gen_chargen_sprite::$3 ← (byte) gen_chargen_sprite::bits#2 & (byte/word/signed word/dword/signed dword) 128 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::sprite#10 gen_chargen_sprite::x#6 gen_chargen_sprite::$3 ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::sprite#10 gen_chargen_sprite::x#6 gen_chargen_sprite::$3 ] ) always clobbers reg byte a +Statement [187] (byte~) gen_chargen_sprite::$3 ← (byte) gen_chargen_sprite::bits#2 & (byte/word/signed word/dword/signed dword) $80 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::sprite#10 gen_chargen_sprite::x#6 gen_chargen_sprite::$3 ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::sprite#10 gen_chargen_sprite::x#6 gen_chargen_sprite::$3 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:35 [ gen_chargen_sprite::bits#2 gen_chargen_sprite::bits#0 gen_chargen_sprite::bits#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:38 [ gen_chargen_sprite::s_gen#3 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen#6 gen_chargen_sprite::s_gen#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:39 [ gen_chargen_sprite::s_gen_cnt#3 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::s_gen_cnt#5 gen_chargen_sprite::s_gen_cnt#1 ] @@ -5040,32 +5040,32 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:38 [ g Statement [197] *((byte*) gen_chargen_sprite::sprite#3 + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) gen_chargen_sprite::s_gen#1 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 gen_chargen_sprite::s_gen#1 ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 gen_chargen_sprite::s_gen#1 ] ) always clobbers reg byte a reg byte y Statement [198] *((byte*) gen_chargen_sprite::sprite#3 + (byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) gen_chargen_sprite::s_gen#1 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 ] ) always clobbers reg byte a reg byte y Statement [206] (byte*) gen_chargen_sprite::sprite#2 ← (byte*) gen_chargen_sprite::sprite#4 + (byte/signed byte/word/signed word/dword/signed dword) 6 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::sprite#2 ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::sprite#2 ] ) always clobbers reg byte a -Statement [209] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 [ ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 ] ) always clobbers reg byte a -Statement [212] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 127 [ ] ( main:2::init:5::place_sprites:51 [ ] ) always clobbers reg byte a -Statement [213] *((const byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word/dword/signed dword) 127 [ ] ( main:2::init:5::place_sprites:51 [ ] ) always clobbers reg byte a -Statement [214] *((const byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word/dword/signed dword) 127 [ ] ( main:2::init:5::place_sprites:51 [ ] ) always clobbers reg byte a -Statement [219] *((const byte*) SPRITES_YPOS#0 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word/dword/signed dword) 80 [ place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 ] ( main:2::init:5::place_sprites:51 [ place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 ] ) always clobbers reg byte a +Statement [209] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 [ ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 ] ) always clobbers reg byte a +Statement [212] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) $7f [ ] ( main:2::init:5::place_sprites:51 [ ] ) always clobbers reg byte a +Statement [213] *((const byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word/dword/signed dword) $7f [ ] ( main:2::init:5::place_sprites:51 [ ] ) always clobbers reg byte a +Statement [214] *((const byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word/dword/signed dword) $7f [ ] ( main:2::init:5::place_sprites:51 [ ] ) always clobbers reg byte a +Statement [219] *((const byte*) SPRITES_YPOS#0 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word/dword/signed dword) $50 [ place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 ] ( main:2::init:5::place_sprites:51 [ place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:44 [ place_sprites::j#2 place_sprites::j#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:45 [ place_sprites::spr_x#2 place_sprites::spr_x#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:46 [ place_sprites::j2#3 place_sprites::j2#2 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:47 [ place_sprites::col#2 place_sprites::col#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:43 [ place_sprites::spr_id#2 place_sprites::spr_id#1 ] Statement [220] *((const byte*) SPRITES_COLS#0 + (byte) place_sprites::j#2) ← (byte) place_sprites::col#2 [ place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 ] ( main:2::init:5::place_sprites:51 [ place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 ] ) always clobbers reg byte a -Statement [221] (byte) place_sprites::spr_x#1 ← (byte) place_sprites::spr_x#2 + (byte/signed byte/word/signed word/dword/signed dword) 32 [ place_sprites::j#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 place_sprites::spr_x#1 ] ( main:2::init:5::place_sprites:51 [ place_sprites::j#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 place_sprites::spr_x#1 ] ) always clobbers reg byte a +Statement [221] (byte) place_sprites::spr_x#1 ← (byte) place_sprites::spr_x#2 + (byte/signed byte/word/signed word/dword/signed dword) $20 [ place_sprites::j#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 place_sprites::spr_x#1 ] ( main:2::init:5::place_sprites:51 [ place_sprites::j#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 place_sprites::spr_x#1 ] ) always clobbers reg byte a Statement [222] (byte) place_sprites::col#1 ← (byte) place_sprites::col#2 ^ (byte/signed byte/word/signed word/dword/signed dword) 7^(byte/signed byte/word/signed word/dword/signed dword) 5 [ place_sprites::j#2 place_sprites::j2#3 place_sprites::spr_id#1 place_sprites::spr_x#1 place_sprites::col#1 ] ( main:2::init:5::place_sprites:51 [ place_sprites::j#2 place_sprites::j2#3 place_sprites::spr_id#1 place_sprites::spr_x#1 place_sprites::col#1 ] ) always clobbers reg byte a -Statement [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 [ sin_idx_x#13 sin_idx_y#13 ] ( main:2 [ sin_idx_x#13 sin_idx_y#13 ] ) always clobbers reg byte a -Statement [14] (word) anim::x#0 ← ((word))(byte/signed byte/word/signed word/dword/signed dword) 30 + *((const byte[221]) sintab_x#0 + (byte) anim::xidx#3) [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::x_msb#2 anim::j2#2 anim::yidx#3 anim::j#2 anim::x#0 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::x_msb#2 anim::j2#2 anim::yidx#3 anim::j#2 anim::x#0 ] ) always clobbers reg byte a +Statement [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 [ sin_idx_x#13 sin_idx_y#13 ] ( main:2 [ sin_idx_x#13 sin_idx_y#13 ] ) always clobbers reg byte a +Statement [14] (word) anim::x#0 ← ((word))(byte/signed byte/word/signed word/dword/signed dword) $1e + *((const byte[$dd]) sintab_x#0 + (byte) anim::xidx#3) [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::x_msb#2 anim::j2#2 anim::yidx#3 anim::j#2 anim::x#0 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::x_msb#2 anim::j2#2 anim::yidx#3 anim::j#2 anim::x#0 ] ) always clobbers reg byte a Statement [15] (byte~) anim::$2 ← (byte) anim::x_msb#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#2 anim::yidx#3 anim::j#2 anim::x#0 anim::$2 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#2 anim::yidx#3 anim::j#2 anim::x#0 anim::$2 ] ) always clobbers reg byte a Statement [18] (byte~) anim::$5 ← < (word) anim::x#0 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#2 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$5 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#2 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::$5 ] ) always clobbers reg byte a -Statement [20] *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#2) ← *((const byte[197]) sintab_y#0 + (byte) anim::yidx#3) [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#2 anim::yidx#3 anim::j#2 anim::x_msb#1 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#2 anim::yidx#3 anim::j#2 anim::x_msb#1 ] ) always clobbers reg byte a -Statement [21] (byte) anim::xidx#1 ← (byte) anim::xidx#3 + (byte/signed byte/word/signed word/dword/signed dword) 10 [ sin_idx_x#13 sin_idx_y#13 anim::j2#2 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::xidx#1 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::j2#2 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::xidx#1 ] ) always clobbers reg byte a +Statement [20] *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#2) ← *((const byte[$c5]) sintab_y#0 + (byte) anim::yidx#3) [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#2 anim::yidx#3 anim::j#2 anim::x_msb#1 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::xidx#3 anim::j2#2 anim::yidx#3 anim::j#2 anim::x_msb#1 ] ) always clobbers reg byte a +Statement [21] (byte) anim::xidx#1 ← (byte) anim::xidx#3 + (byte/signed byte/word/signed word/dword/signed dword) $a [ sin_idx_x#13 sin_idx_y#13 anim::j2#2 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::xidx#1 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::j2#2 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::xidx#1 ] ) always clobbers reg byte a Statement [23] (byte) anim::xidx#2 ← (byte) anim::xidx#1 - (const byte) sinlen_x#0 [ sin_idx_x#13 sin_idx_y#13 anim::j2#2 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::xidx#2 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::j2#2 anim::yidx#3 anim::j#2 anim::x_msb#1 anim::xidx#2 ] ) always clobbers reg byte a Statement [25] (byte) anim::yidx#1 ← (byte) anim::yidx#3 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ sin_idx_x#13 sin_idx_y#13 anim::j2#2 anim::j#2 anim::xidx#5 anim::x_msb#1 anim::yidx#1 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::j2#2 anim::j#2 anim::xidx#5 anim::x_msb#1 anim::yidx#1 ] ) always clobbers reg byte a Statement [27] (byte) anim::yidx#2 ← (byte) anim::yidx#1 - (const byte) sinlen_y#0 [ sin_idx_x#13 sin_idx_y#13 anim::j2#2 anim::j#2 anim::xidx#5 anim::x_msb#1 anim::yidx#2 ] ( main:2::anim:9 [ sin_idx_x#13 sin_idx_y#13 anim::j2#2 anim::j#2 anim::xidx#5 anim::x_msb#1 anim::yidx#2 ] ) always clobbers reg byte a Statement [46] *((const byte*) COLS#0 + (byte) init::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ init::i#2 ] ( main:2::init:5 [ init::i#2 ] ) always clobbers reg byte a -Statement [47] *((const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) init::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 11 [ init::i#2 ] ( main:2::init:5 [ init::i#2 ] ) always clobbers reg byte a +Statement [47] *((const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) init::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) $b [ init::i#2 ] ( main:2::init:5 [ init::i#2 ] ) always clobbers reg byte a Statement [67] *((byte*) clear_screen::sc#2) ← (byte) ' ' [ clear_screen::sc#2 ] ( main:2::init:5::clear_screen:44 [ clear_screen::sc#2 ] main:2::init:5::clear_screen:63 [ clear_screen::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [69] if((byte*) clear_screen::sc#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto clear_screen::@1 [ clear_screen::sc#1 ] ( main:2::init:5::clear_screen:44 [ clear_screen::sc#1 ] main:2::init:5::clear_screen:63 [ clear_screen::sc#1 ] ) always clobbers reg byte a +Statement [69] if((byte*) clear_screen::sc#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto clear_screen::@1 [ clear_screen::sc#1 ] ( main:2::init:5::clear_screen:44 [ clear_screen::sc#1 ] main:2::init:5::clear_screen:63 [ clear_screen::sc#1 ] ) always clobbers reg byte a Statement [72] (word) setFAC::w#0 ← ((word)) (byte) gen_sintab::max#2 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 setFAC::w#0 progress_init::line#2 ] ( main:2::init:5::gen_sintab:57 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 setFAC::w#0 progress_init::line#2 ] main:2::init:5::gen_sintab:61 [ gen_sintab::min#2 gen_sintab::length#10 gen_sintab::sintab#12 setFAC::w#0 progress_init::line#2 ] ) always clobbers reg byte a Statement asm { lda#0 ldx#0 ldy#0 } always clobbers reg byte a reg byte x reg byte y Statement [77] (word) setFAC::w#1 ← ((word)) (byte) gen_sintab::min#2 [ gen_sintab::length#10 gen_sintab::sintab#12 setFAC::w#1 progress_init::line#2 ] ( main:2::init:5::gen_sintab:57 [ gen_sintab::length#10 gen_sintab::sintab#12 setFAC::w#1 progress_init::line#2 ] main:2::init:5::gen_sintab:61 [ gen_sintab::length#10 gen_sintab::sintab#12 setFAC::w#1 progress_init::line#2 ] ) always clobbers reg byte a @@ -5090,27 +5090,27 @@ Statement asm { ldy$fe lda$ff jsr$b391 } always clobbers reg byte a reg byte y Statement [160] (byte*) prepareMEM::mem#1 ← (byte*) setMEMtoFAC::mem#5 [ prepareMEM::mem#1 ] ( main:2::init:5::gen_sintab:57::setMEMtoFAC:80 [ gen_sintab::length#10 gen_sintab::sintab#12 progress_init::line#2 prepareMEM::mem#1 ] main:2::init:5::gen_sintab:61::setMEMtoFAC:80 [ gen_sintab::length#10 gen_sintab::sintab#12 progress_init::line#2 prepareMEM::mem#1 ] main:2::init:5::gen_sintab:57::setMEMtoFAC:84 [ gen_sintab::length#10 gen_sintab::sintab#12 progress_init::line#2 prepareMEM::mem#1 ] main:2::init:5::gen_sintab:61::setMEMtoFAC:84 [ gen_sintab::length#10 gen_sintab::sintab#12 progress_init::line#2 prepareMEM::mem#1 ] main:2::init:5::gen_sintab:57::setMEMtoFAC:90 [ gen_sintab::length#10 gen_sintab::sintab#12 progress_init::line#2 prepareMEM::mem#1 ] main:2::init:5::gen_sintab:61::setMEMtoFAC:90 [ gen_sintab::length#10 gen_sintab::sintab#12 progress_init::line#2 prepareMEM::mem#1 ] main:2::init:5::gen_sintab:57::setMEMtoFAC:94 [ gen_sintab::length#10 gen_sintab::sintab#12 progress_init::line#2 prepareMEM::mem#1 ] main:2::init:5::gen_sintab:61::setMEMtoFAC:94 [ gen_sintab::length#10 gen_sintab::sintab#12 progress_init::line#2 prepareMEM::mem#1 ] main:2::init:5::gen_sintab:57::setMEMtoFAC:101 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 progress_idx#34 progress_cursor#34 prepareMEM::mem#1 ] main:2::init:5::gen_sintab:61::setMEMtoFAC:101 [ gen_sintab::length#10 gen_sintab::sintab#12 gen_sintab::i#10 progress_idx#34 progress_cursor#34 prepareMEM::mem#1 ] ) always clobbers reg byte a Statement asm { ldx$fe ldy$ff jsr$bbd4 } always clobbers reg byte x reg byte y Statement [173] (byte*) gen_chargen_sprite::sprite#0 ← (byte*) gen_sprites::spr#2 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::ch#0 gen_chargen_sprite::sprite#0 ] ( main:2::init:5::gen_sprites:53 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::ch#0 gen_chargen_sprite::sprite#0 ] ) always clobbers reg byte a -Statement [175] (byte*) gen_sprites::spr#1 ← (byte*) gen_sprites::spr#2 + (byte/signed byte/word/signed word/dword/signed dword) 64 [ gen_sprites::i#2 gen_sprites::spr#1 ] ( main:2::init:5::gen_sprites:53 [ gen_sprites::i#2 gen_sprites::spr#1 ] ) always clobbers reg byte a +Statement [175] (byte*) gen_sprites::spr#1 ← (byte*) gen_sprites::spr#2 + (byte/signed byte/word/signed word/dword/signed dword) $40 [ gen_sprites::i#2 gen_sprites::spr#1 ] ( main:2::init:5::gen_sprites:53 [ gen_sprites::i#2 gen_sprites::spr#1 ] ) always clobbers reg byte a Statement [179] (word~) gen_chargen_sprite::$0 ← ((word)) (byte) gen_chargen_sprite::ch#0 [ gen_chargen_sprite::sprite#0 gen_chargen_sprite::$0 ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::sprite#0 gen_chargen_sprite::$0 ] ) always clobbers reg byte a Statement [180] (word~) gen_chargen_sprite::$1 ← (word~) gen_chargen_sprite::$0 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ gen_chargen_sprite::sprite#0 gen_chargen_sprite::$1 ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::sprite#0 gen_chargen_sprite::$1 ] ) always clobbers reg byte a Statement [181] (byte*) gen_chargen_sprite::chargen#0 ← (const byte*) CHARGEN#0 + (word~) gen_chargen_sprite::$1 [ gen_chargen_sprite::sprite#0 gen_chargen_sprite::chargen#0 ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::sprite#0 gen_chargen_sprite::chargen#0 ] ) always clobbers reg byte a -Statement [183] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ gen_chargen_sprite::sprite#0 gen_chargen_sprite::chargen#0 ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::sprite#0 gen_chargen_sprite::chargen#0 ] ) always clobbers reg byte a +Statement [183] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 [ gen_chargen_sprite::sprite#0 gen_chargen_sprite::chargen#0 ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::sprite#0 gen_chargen_sprite::chargen#0 ] ) always clobbers reg byte a Statement [185] (byte) gen_chargen_sprite::bits#0 ← *((byte*) gen_chargen_sprite::chargen#0 + (byte) gen_chargen_sprite::y#2) [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::sprite#11 gen_chargen_sprite::bits#0 ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::sprite#11 gen_chargen_sprite::bits#0 ] ) always clobbers reg byte a reg byte y -Statement [187] (byte~) gen_chargen_sprite::$3 ← (byte) gen_chargen_sprite::bits#2 & (byte/word/signed word/dword/signed dword) 128 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::sprite#10 gen_chargen_sprite::x#6 gen_chargen_sprite::$3 ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::sprite#10 gen_chargen_sprite::x#6 gen_chargen_sprite::$3 ] ) always clobbers reg byte a +Statement [187] (byte~) gen_chargen_sprite::$3 ← (byte) gen_chargen_sprite::bits#2 & (byte/word/signed word/dword/signed dword) $80 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::sprite#10 gen_chargen_sprite::x#6 gen_chargen_sprite::$3 ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::sprite#10 gen_chargen_sprite::x#6 gen_chargen_sprite::$3 ] ) always clobbers reg byte a Statement [192] (byte~) gen_chargen_sprite::$6 ← (byte) gen_chargen_sprite::s_gen#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::s_gen_cnt#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 gen_chargen_sprite::$6 ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::s_gen_cnt#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 gen_chargen_sprite::$6 ] ) always clobbers reg byte a Statement [196] *((byte*) gen_chargen_sprite::sprite#3 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) gen_chargen_sprite::s_gen#1 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 gen_chargen_sprite::s_gen#1 ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 gen_chargen_sprite::s_gen#1 ] ) always clobbers reg byte a reg byte y Statement [197] *((byte*) gen_chargen_sprite::sprite#3 + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) gen_chargen_sprite::s_gen#1 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 gen_chargen_sprite::s_gen#1 ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 gen_chargen_sprite::s_gen#1 ] ) always clobbers reg byte a reg byte y Statement [198] *((byte*) gen_chargen_sprite::sprite#3 + (byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) gen_chargen_sprite::s_gen#1 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::bits#2 gen_chargen_sprite::x#6 gen_chargen_sprite::c#3 gen_chargen_sprite::b#2 gen_chargen_sprite::sprite#3 ] ) always clobbers reg byte a reg byte y Statement [206] (byte*) gen_chargen_sprite::sprite#2 ← (byte*) gen_chargen_sprite::sprite#4 + (byte/signed byte/word/signed word/dword/signed dword) 6 [ gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::sprite#2 ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::chargen#0 gen_chargen_sprite::y#2 gen_chargen_sprite::sprite#2 ] ) always clobbers reg byte a -Statement [209] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 [ ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 ] ) always clobbers reg byte a -Statement [212] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 127 [ ] ( main:2::init:5::place_sprites:51 [ ] ) always clobbers reg byte a -Statement [213] *((const byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word/dword/signed dword) 127 [ ] ( main:2::init:5::place_sprites:51 [ ] ) always clobbers reg byte a -Statement [214] *((const byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word/dword/signed dword) 127 [ ] ( main:2::init:5::place_sprites:51 [ ] ) always clobbers reg byte a +Statement [209] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 [ ] ( main:2::init:5::gen_sprites:53::gen_chargen_sprite:174 [ gen_sprites::i#2 gen_sprites::spr#2 ] ) always clobbers reg byte a +Statement [212] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) $7f [ ] ( main:2::init:5::place_sprites:51 [ ] ) always clobbers reg byte a +Statement [213] *((const byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word/dword/signed dword) $7f [ ] ( main:2::init:5::place_sprites:51 [ ] ) always clobbers reg byte a +Statement [214] *((const byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word/dword/signed dword) $7f [ ] ( main:2::init:5::place_sprites:51 [ ] ) always clobbers reg byte a Statement [216] *((const byte*) place_sprites::sprites_ptr#0 + (byte) place_sprites::j#2) ← (byte) place_sprites::spr_id#2 [ place_sprites::spr_id#2 place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 ] ( main:2::init:5::place_sprites:51 [ place_sprites::spr_id#2 place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 ] ) always clobbers reg byte a Statement [218] *((const byte*) SPRITES_XPOS#0 + (byte) place_sprites::j2#3) ← (byte) place_sprites::spr_x#2 [ place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 ] ( main:2::init:5::place_sprites:51 [ place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 ] ) always clobbers reg byte a -Statement [219] *((const byte*) SPRITES_YPOS#0 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word/dword/signed dword) 80 [ place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 ] ( main:2::init:5::place_sprites:51 [ place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 ] ) always clobbers reg byte a +Statement [219] *((const byte*) SPRITES_YPOS#0 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word/dword/signed dword) $50 [ place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 ] ( main:2::init:5::place_sprites:51 [ place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 ] ) always clobbers reg byte a Statement [220] *((const byte*) SPRITES_COLS#0 + (byte) place_sprites::j#2) ← (byte) place_sprites::col#2 [ place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 ] ( main:2::init:5::place_sprites:51 [ place_sprites::j#2 place_sprites::spr_x#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 ] ) always clobbers reg byte a -Statement [221] (byte) place_sprites::spr_x#1 ← (byte) place_sprites::spr_x#2 + (byte/signed byte/word/signed word/dword/signed dword) 32 [ place_sprites::j#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 place_sprites::spr_x#1 ] ( main:2::init:5::place_sprites:51 [ place_sprites::j#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 place_sprites::spr_x#1 ] ) always clobbers reg byte a +Statement [221] (byte) place_sprites::spr_x#1 ← (byte) place_sprites::spr_x#2 + (byte/signed byte/word/signed word/dword/signed dword) $20 [ place_sprites::j#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 place_sprites::spr_x#1 ] ( main:2::init:5::place_sprites:51 [ place_sprites::j#2 place_sprites::j2#3 place_sprites::col#2 place_sprites::spr_id#1 place_sprites::spr_x#1 ] ) always clobbers reg byte a Statement [222] (byte) place_sprites::col#1 ← (byte) place_sprites::col#2 ^ (byte/signed byte/word/signed word/dword/signed dword) 7^(byte/signed byte/word/signed word/dword/signed dword) 5 [ place_sprites::j#2 place_sprites::j2#3 place_sprites::spr_id#1 place_sprites::spr_x#1 place_sprites::col#1 ] ( main:2::init:5::place_sprites:51 [ place_sprites::j#2 place_sprites::j2#3 place_sprites::spr_id#1 place_sprites::spr_x#1 place_sprites::col#1 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ sin_idx_x#13 sin_idx_x#11 sin_idx_x#3 ] : zp ZP_BYTE:2 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:3 [ sin_idx_y#13 sin_idx_y#11 sin_idx_y#3 ] : zp ZP_BYTE:3 , reg byte x , reg byte y , @@ -5357,7 +5357,7 @@ main: { jmp b2 //SEG17 main::@2 b2: - //SEG18 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG18 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b2_from_b2 @@ -5395,7 +5395,7 @@ anim: { lda #0 sta j //SEG31 [13] phi (byte) anim::yidx#3 = (byte) anim::yidx#0 [phi:anim->anim::@1#1] -- register_copy - //SEG32 [13] phi (byte) anim::j2#2 = (byte/signed byte/word/signed word/dword/signed dword) 12 [phi:anim->anim::@1#2] -- vbuz1=vbuc1 + //SEG32 [13] phi (byte) anim::j2#2 = (byte/signed byte/word/signed word/dword/signed dword) $c [phi:anim->anim::@1#2] -- vbuz1=vbuc1 lda #$c sta j2 //SEG33 [13] phi (byte) anim::x_msb#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim->anim::@1#3] -- vbuz1=vbuc1 @@ -5413,7 +5413,7 @@ anim: { jmp b1 //SEG41 anim::@1 b1: - //SEG42 [14] (word) anim::x#0 ← ((word))(byte/signed byte/word/signed word/dword/signed dword) 30 + *((const byte[221]) sintab_x#0 + (byte) anim::xidx#3) -- vwuz1=vbuc1_plus_pbuc2_derefidx_vbuz2 + //SEG42 [14] (word) anim::x#0 ← ((word))(byte/signed byte/word/signed word/dword/signed dword) $1e + *((const byte[$dd]) sintab_x#0 + (byte) anim::xidx#3) -- vwuz1=vbuc1_plus_pbuc2_derefidx_vbuz2 ldy xidx lda sintab_x,y clc @@ -5434,11 +5434,11 @@ anim: { //SEG47 [19] *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#2) ← (byte~) anim::$5 -- pbuc1_derefidx_vbuz1=vbuaa ldy j2 sta SPRITES_XPOS,y - //SEG48 [20] *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#2) ← *((const byte[197]) sintab_y#0 + (byte) anim::yidx#3) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuxx + //SEG48 [20] *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#2) ← *((const byte[$c5]) sintab_y#0 + (byte) anim::yidx#3) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuxx lda sintab_y,x ldy j2 sta SPRITES_YPOS,y - //SEG49 [21] (byte) anim::xidx#1 ← (byte) anim::xidx#3 + (byte/signed byte/word/signed word/dword/signed dword) 10 -- vbuz1=vbuz1_plus_vbuc1 + //SEG49 [21] (byte) anim::xidx#1 ← (byte) anim::xidx#3 + (byte/signed byte/word/signed word/dword/signed dword) $a -- vbuz1=vbuz1_plus_vbuc1 lda #$a clc adc xidx @@ -5574,12 +5574,12 @@ init: { //SEG97 [46] *((const byte*) COLS#0 + (byte) init::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #0 sta COLS,x - //SEG98 [47] *((const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) init::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 11 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG98 [47] *((const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) init::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) $b -- pbuc1_derefidx_vbuxx=vbuc2 lda #$b sta COLS+$28,x //SEG99 [48] (byte) init::i#1 ← ++ (byte) init::i#2 -- vbuxx=_inc_vbuxx inx - //SEG100 [49] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto init::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG100 [49] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto init::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b1_from_b1 //SEG101 [50] phi from init::@1 to init::@2 [phi:init::@1->init::@2] @@ -5620,7 +5620,7 @@ init: { //SEG115 [57] call gen_sintab //SEG116 [71] phi from init::@6 to gen_sintab [phi:init::@6->gen_sintab] gen_sintab_from_b6: - //SEG117 [71] phi (byte*) gen_sintab::sintab#12 = (const byte[221]) sintab_x#0 [phi:init::@6->gen_sintab#0] -- pbuz1=pbuc1 + //SEG117 [71] phi (byte*) gen_sintab::sintab#12 = (const byte[$dd]) sintab_x#0 [phi:init::@6->gen_sintab#0] -- pbuz1=pbuc1 lda #sintab_x @@ -5631,7 +5631,7 @@ init: { //SEG119 [71] phi (byte) gen_sintab::min#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init::@6->gen_sintab#2] -- vbuz1=vbuc1 lda #0 sta gen_sintab.min - //SEG120 [71] phi (byte) gen_sintab::max#2 = (byte/word/signed word/dword/signed dword) 255 [phi:init::@6->gen_sintab#3] -- vbuxx=vbuc1 + //SEG120 [71] phi (byte) gen_sintab::max#2 = (byte/word/signed word/dword/signed dword) $ff [phi:init::@6->gen_sintab#3] -- vbuxx=vbuc1 ldx #$ff jsr gen_sintab //SEG121 [58] phi from init::@6 to init::@7 [phi:init::@6->init::@7] @@ -5642,7 +5642,7 @@ init: { //SEG123 [59] call progress_init //SEG124 [168] phi from init::@7 to progress_init [phi:init::@7->progress_init] progress_init_from_b7: - //SEG125 [168] phi (byte*) progress_init::line#2 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40 [phi:init::@7->progress_init#0] -- pbuz1=pbuc1 + //SEG125 [168] phi (byte*) progress_init::line#2 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28 [phi:init::@7->progress_init#0] -- pbuz1=pbuc1 lda #SCREEN+$28 @@ -5656,7 +5656,7 @@ init: { //SEG128 [61] call gen_sintab //SEG129 [71] phi from init::@8 to gen_sintab [phi:init::@8->gen_sintab] gen_sintab_from_b8: - //SEG130 [71] phi (byte*) gen_sintab::sintab#12 = (const byte[197]) sintab_y#0 [phi:init::@8->gen_sintab#0] -- pbuz1=pbuc1 + //SEG130 [71] phi (byte*) gen_sintab::sintab#12 = (const byte[$c5]) sintab_y#0 [phi:init::@8->gen_sintab#0] -- pbuz1=pbuc1 lda #sintab_y @@ -5664,10 +5664,10 @@ init: { //SEG131 [71] phi (byte) gen_sintab::length#10 = (const byte) sinlen_y#0 [phi:init::@8->gen_sintab#1] -- vbuz1=vbuc1 lda #sinlen_y sta gen_sintab.length - //SEG132 [71] phi (byte) gen_sintab::min#2 = (byte/signed byte/word/signed word/dword/signed dword) 50 [phi:init::@8->gen_sintab#2] -- vbuz1=vbuc1 + //SEG132 [71] phi (byte) gen_sintab::min#2 = (byte/signed byte/word/signed word/dword/signed dword) $32 [phi:init::@8->gen_sintab#2] -- vbuz1=vbuc1 lda #$32 sta gen_sintab.min - //SEG133 [71] phi (byte) gen_sintab::max#2 = (byte/word/signed word/dword/signed dword) 208 [phi:init::@8->gen_sintab#3] -- vbuxx=vbuc1 + //SEG133 [71] phi (byte) gen_sintab::max#2 = (byte/word/signed word/dword/signed dword) $d0 [phi:init::@8->gen_sintab#3] -- vbuxx=vbuc1 ldx #$d0 jsr gen_sintab //SEG134 [62] phi from init::@8 to init::@9 [phi:init::@8->init::@9] @@ -5711,7 +5711,7 @@ clear_screen: { bne !+ inc sc+1 !: - //SEG148 [69] if((byte*) clear_screen::sc#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto clear_screen::@1 -- pbuz1_lt_pbuc1_then_la1 + //SEG148 [69] if((byte*) clear_screen::sc#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto clear_screen::@1 -- pbuz1_lt_pbuc1_then_la1 lda sc+1 cmp #>SCREEN+$3e8 bcc b1_from_b1 @@ -6335,7 +6335,7 @@ gen_sprites: { jmp b3 //SEG359 gen_sprites::@3 b3: - //SEG360 [175] (byte*) gen_sprites::spr#1 ← (byte*) gen_sprites::spr#2 + (byte/signed byte/word/signed word/dword/signed dword) 64 -- pbuz1=pbuz1_plus_vbuc1 + //SEG360 [175] (byte*) gen_sprites::spr#1 ← (byte*) gen_sprites::spr#2 + (byte/signed byte/word/signed word/dword/signed dword) $40 -- pbuz1=pbuz1_plus_vbuc1 lda spr clc adc #$40 @@ -6393,7 +6393,7 @@ gen_chargen_sprite: { sta chargen+1 //SEG369 asm { sei } sei - //SEG370 [183] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- _deref_pbuc1=vbuc2 + //SEG370 [183] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 -- _deref_pbuc1=vbuc2 lda #$32 sta PROCPORT //SEG371 [184] phi from gen_chargen_sprite to gen_chargen_sprite::@1 [phi:gen_chargen_sprite->gen_chargen_sprite::@1] @@ -6438,7 +6438,7 @@ gen_chargen_sprite: { jmp b2 //SEG391 gen_chargen_sprite::@2 b2: - //SEG392 [187] (byte~) gen_chargen_sprite::$3 ← (byte) gen_chargen_sprite::bits#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG392 [187] (byte~) gen_chargen_sprite::$3 ← (byte) gen_chargen_sprite::bits#2 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuz1_band_vbuc1 lda #$80 and bits //SEG393 [188] if((byte~) gen_chargen_sprite::$3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gen_chargen_sprite::@3 -- vbuaa_eq_0_then_la1 @@ -6566,7 +6566,7 @@ gen_chargen_sprite: { jmp b10 //SEG440 gen_chargen_sprite::@10 b10: - //SEG441 [209] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 -- _deref_pbuc1=vbuc2 + //SEG441 [209] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 -- _deref_pbuc1=vbuc2 lda #$37 sta PROCPORT //SEG442 asm { cli } @@ -6583,13 +6583,13 @@ place_sprites: { .label spr_id = 2 .label spr_x = 3 .label col = 4 - //SEG446 [212] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=vbuc2 + //SEG446 [212] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) $7f -- _deref_pbuc1=vbuc2 lda #$7f sta SPRITES_ENABLE - //SEG447 [213] *((const byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=vbuc2 + //SEG447 [213] *((const byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word/dword/signed dword) $7f -- _deref_pbuc1=vbuc2 lda #$7f sta SPRITES_EXPAND_X - //SEG448 [214] *((const byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=vbuc2 + //SEG448 [214] *((const byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word/dword/signed dword) $7f -- _deref_pbuc1=vbuc2 lda #$7f sta SPRITES_EXPAND_Y //SEG449 [215] phi from place_sprites to place_sprites::@1 [phi:place_sprites->place_sprites::@1] @@ -6599,12 +6599,12 @@ place_sprites: { sta col //SEG451 [215] phi (byte) place_sprites::j2#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:place_sprites->place_sprites::@1#1] -- vbuxx=vbuc1 ldx #0 - //SEG452 [215] phi (byte) place_sprites::spr_x#2 = (byte/signed byte/word/signed word/dword/signed dword) 60 [phi:place_sprites->place_sprites::@1#2] -- vbuz1=vbuc1 + //SEG452 [215] phi (byte) place_sprites::spr_x#2 = (byte/signed byte/word/signed word/dword/signed dword) $3c [phi:place_sprites->place_sprites::@1#2] -- vbuz1=vbuc1 lda #$3c sta spr_x //SEG453 [215] phi (byte) place_sprites::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:place_sprites->place_sprites::@1#3] -- vbuyy=vbuc1 ldy #0 - //SEG454 [215] phi (byte) place_sprites::spr_id#2 = ((byte))(const byte*) sprites#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [phi:place_sprites->place_sprites::@1#4] -- vbuz1=vbuc1 + //SEG454 [215] phi (byte) place_sprites::spr_id#2 = ((byte))(const byte*) sprites#0/(byte/signed byte/word/signed word/dword/signed dword) $40 [phi:place_sprites->place_sprites::@1#4] -- vbuz1=vbuc1 lda #$ff&sprites/$40 sta spr_id jmp b1 @@ -6626,13 +6626,13 @@ place_sprites: { //SEG464 [218] *((const byte*) SPRITES_XPOS#0 + (byte) place_sprites::j2#3) ← (byte) place_sprites::spr_x#2 -- pbuc1_derefidx_vbuxx=vbuz1 lda spr_x sta SPRITES_XPOS,x - //SEG465 [219] *((const byte*) SPRITES_YPOS#0 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word/dword/signed dword) 80 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG465 [219] *((const byte*) SPRITES_YPOS#0 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word/dword/signed dword) $50 -- pbuc1_derefidx_vbuxx=vbuc2 lda #$50 sta SPRITES_YPOS,x //SEG466 [220] *((const byte*) SPRITES_COLS#0 + (byte) place_sprites::j#2) ← (byte) place_sprites::col#2 -- pbuc1_derefidx_vbuyy=vbuz1 lda col sta SPRITES_COLS,y - //SEG467 [221] (byte) place_sprites::spr_x#1 ← (byte) place_sprites::spr_x#2 + (byte/signed byte/word/signed word/dword/signed dword) 32 -- vbuz1=vbuz1_plus_vbuc1 + //SEG467 [221] (byte) place_sprites::spr_x#1 ← (byte) place_sprites::spr_x#2 + (byte/signed byte/word/signed word/dword/signed dword) $20 -- vbuz1=vbuz1_plus_vbuc1 lda #$20 clc adc spr_x @@ -6980,10 +6980,10 @@ FINAL SYMBOL TABLE (byte) BLACK (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN -(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word/dword/signed dword) 53248 +(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word/dword/signed dword) $d000 (byte*) CIA1_INTERRUPT (byte*) CIA1_PORT_A (byte*) CIA1_PORT_A_DDR @@ -6996,7 +6996,7 @@ FINAL SYMBOL TABLE (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR (byte*) COLS -(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) 55296 +(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) $d800 (byte) CYAN (byte*) D011 (byte*) D016 @@ -7030,28 +7030,28 @@ FINAL SYMBOL TABLE (byte) PROCPORT_RAM_IO (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SPRITES_COLS -(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) 53287 +(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) $d027 (byte*) SPRITES_ENABLE -(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) 53269 +(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) $d015 (byte*) SPRITES_EXPAND_X -(const byte*) SPRITES_EXPAND_X#0 SPRITES_EXPAND_X = ((byte*))(word/dword/signed dword) 53277 +(const byte*) SPRITES_EXPAND_X#0 SPRITES_EXPAND_X = ((byte*))(word/dword/signed dword) $d01d (byte*) SPRITES_EXPAND_Y -(const byte*) SPRITES_EXPAND_Y#0 SPRITES_EXPAND_Y = ((byte*))(word/dword/signed dword) 53271 +(const byte*) SPRITES_EXPAND_Y#0 SPRITES_EXPAND_Y = ((byte*))(word/dword/signed dword) $d017 (byte*) SPRITES_MC (byte*) SPRITES_MC1 (byte*) SPRITES_MC2 (byte*) SPRITES_PRIORITY (byte*) SPRITES_XMSB -(const byte*) SPRITES_XMSB#0 SPRITES_XMSB = ((byte*))(word/dword/signed dword) 53264 +(const byte*) SPRITES_XMSB#0 SPRITES_XMSB = ((byte*))(word/dword/signed dword) $d010 (byte*) SPRITES_XPOS -(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) 53248 +(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) $d000 (byte*) SPRITES_YPOS -(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) 53249 +(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) $d001 (word) SPRITE_PTRS (byte) VIC_BMM (byte*) VIC_CONTROL @@ -7197,7 +7197,7 @@ FINAL SYMBOL TABLE (label) gen_sintab::@9 (label) gen_sintab::@return (byte*) gen_sintab::f_2pi -(const byte*) gen_sintab::f_2pi#0 f_2pi = ((byte*))(word/dword/signed dword) 58085 +(const byte*) gen_sintab::f_2pi#0 f_2pi = ((byte*))(word/dword/signed dword) $e2e5 (byte[]) gen_sintab::f_amp (const byte[]) gen_sintab::f_amp#0 f_amp = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) gen_sintab::f_i @@ -7250,9 +7250,9 @@ FINAL SYMBOL TABLE (label) main::@2 (label) main::@3 (byte*) memHi -(const byte*) memHi#0 memHi = ((byte*))(byte/word/signed word/dword/signed dword) 255 +(const byte*) memHi#0 memHi = ((byte*))(byte/word/signed word/dword/signed dword) $ff (byte*) memLo -(const byte*) memLo#0 memLo = ((byte*))(byte/word/signed word/dword/signed dword) 254 +(const byte*) memLo#0 memLo = ((byte*))(byte/word/signed word/dword/signed dword) $fe (void()) mulFACbyMEM((byte*) mulFACbyMEM::mem) (label) mulFACbyMEM::@1 (label) mulFACbyMEM::@return @@ -7278,7 +7278,7 @@ FINAL SYMBOL TABLE (byte) place_sprites::spr_x#1 spr_x zp ZP_BYTE:3 3.6666666666666665 (byte) place_sprites::spr_x#2 spr_x zp ZP_BYTE:3 5.5 (byte*) place_sprites::sprites_ptr -(const byte*) place_sprites::sprites_ptr#0 sprites_ptr = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1016 +(const byte*) place_sprites::sprites_ptr#0 sprites_ptr = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3f8 (void()) prepareMEM((byte*) prepareMEM::mem) (byte~) prepareMEM::$0 reg byte a 4.0 (byte~) prepareMEM::$1 reg byte a 4.0 @@ -7306,7 +7306,7 @@ FINAL SYMBOL TABLE (label) progress_inc::@2 (label) progress_inc::@return (byte[]) progress_inc::progress_chars -(const byte[]) progress_inc::progress_chars#0 progress_chars = { (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 116, (byte/signed byte/word/signed word/dword/signed dword) 117, (byte/signed byte/word/signed word/dword/signed dword) 97, (byte/word/signed word/dword/signed dword) 246, (byte/word/signed word/dword/signed dword) 231, (byte/word/signed word/dword/signed dword) 234, (byte/word/signed word/dword/signed dword) 224 } +(const byte[]) progress_inc::progress_chars#0 progress_chars = { (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $65, (byte/signed byte/word/signed word/dword/signed dword) $74, (byte/signed byte/word/signed word/dword/signed dword) $75, (byte/signed byte/word/signed word/dword/signed dword) $61, (byte/word/signed word/dword/signed dword) $f6, (byte/word/signed word/dword/signed dword) $e7, (byte/word/signed word/dword/signed dword) $ea, (byte/word/signed word/dword/signed dword) $e0 } (void()) progress_init((byte*) progress_init::line) (label) progress_init::@return (byte*) progress_init::line @@ -7338,15 +7338,15 @@ FINAL SYMBOL TABLE (byte) sin_idx_y#13 sin_idx_y zp ZP_BYTE:3 0.49999999999999994 (byte) sin_idx_y#3 sin_idx_y zp ZP_BYTE:3 2.0 (byte) sinlen_x -(const byte) sinlen_x#0 sinlen_x = (byte/word/signed word/dword/signed dword) 221 +(const byte) sinlen_x#0 sinlen_x = (byte/word/signed word/dword/signed dword) $dd (byte) sinlen_y -(const byte) sinlen_y#0 sinlen_y = (byte/word/signed word/dword/signed dword) 197 -(byte[221]) sintab_x -(const byte[221]) sintab_x#0 sintab_x = { fill( 221, 0) } -(byte[197]) sintab_y -(const byte[197]) sintab_y#0 sintab_y = { fill( 197, 0) } +(const byte) sinlen_y#0 sinlen_y = (byte/word/signed word/dword/signed dword) $c5 +(byte[$dd]) sintab_x +(const byte[$dd]) sintab_x#0 sintab_x = { fill( $dd, 0) } +(byte[$c5]) sintab_y +(const byte[$c5]) sintab_y#0 sintab_y = { fill( $c5, 0) } (byte*) sprites -(const byte*) sprites#0 sprites = ((byte*))(word/signed word/dword/signed dword) 8192 +(const byte*) sprites#0 sprites = ((byte*))(word/signed word/dword/signed dword) $2000 (void()) subFACfromARG() (label) subFACfromARG::@return @@ -7433,7 +7433,7 @@ main: { //SEG16 [6] phi from main::@2 to main::@2 [phi:main::@2->main::@2] //SEG17 main::@2 b2: - //SEG18 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG18 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b2 @@ -7466,7 +7466,7 @@ anim: { lda #0 sta j //SEG31 [13] phi (byte) anim::yidx#3 = (byte) anim::yidx#0 [phi:anim->anim::@1#1] -- register_copy - //SEG32 [13] phi (byte) anim::j2#2 = (byte/signed byte/word/signed word/dword/signed dword) 12 [phi:anim->anim::@1#2] -- vbuz1=vbuc1 + //SEG32 [13] phi (byte) anim::j2#2 = (byte/signed byte/word/signed word/dword/signed dword) $c [phi:anim->anim::@1#2] -- vbuz1=vbuc1 lda #$c sta j2 //SEG33 [13] phi (byte) anim::x_msb#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:anim->anim::@1#3] -- vbuz1=vbuc1 @@ -7481,7 +7481,7 @@ anim: { //SEG40 [13] phi (byte) anim::xidx#3 = (byte) anim::xidx#5 [phi:anim::@3->anim::@1#4] -- register_copy //SEG41 anim::@1 b1: - //SEG42 [14] (word) anim::x#0 ← ((word))(byte/signed byte/word/signed word/dword/signed dword) 30 + *((const byte[221]) sintab_x#0 + (byte) anim::xidx#3) -- vwuz1=vbuc1_plus_pbuc2_derefidx_vbuz2 + //SEG42 [14] (word) anim::x#0 ← ((word))(byte/signed byte/word/signed word/dword/signed dword) $1e + *((const byte[$dd]) sintab_x#0 + (byte) anim::xidx#3) -- vwuz1=vbuc1_plus_pbuc2_derefidx_vbuz2 ldy xidx lda sintab_x,y clc @@ -7501,10 +7501,10 @@ anim: { //SEG47 [19] *((const byte*) SPRITES_XPOS#0 + (byte) anim::j2#2) ← (byte~) anim::$5 -- pbuc1_derefidx_vbuz1=vbuaa ldy j2 sta SPRITES_XPOS,y - //SEG48 [20] *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#2) ← *((const byte[197]) sintab_y#0 + (byte) anim::yidx#3) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuxx + //SEG48 [20] *((const byte*) SPRITES_YPOS#0 + (byte) anim::j2#2) ← *((const byte[$c5]) sintab_y#0 + (byte) anim::yidx#3) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuxx lda sintab_y,x sta SPRITES_YPOS,y - //SEG49 [21] (byte) anim::xidx#1 ← (byte) anim::xidx#3 + (byte/signed byte/word/signed word/dword/signed dword) 10 -- vbuz1=vbuz1_plus_vbuc1 + //SEG49 [21] (byte) anim::xidx#1 ← (byte) anim::xidx#3 + (byte/signed byte/word/signed word/dword/signed dword) $a -- vbuz1=vbuz1_plus_vbuc1 lda #$a clc adc xidx @@ -7605,12 +7605,12 @@ init: { //SEG97 [46] *((const byte*) COLS#0 + (byte) init::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #0 sta COLS,x - //SEG98 [47] *((const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) init::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 11 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG98 [47] *((const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) init::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) $b -- pbuc1_derefidx_vbuxx=vbuc2 lda #$b sta COLS+$28,x //SEG99 [48] (byte) init::i#1 ← ++ (byte) init::i#2 -- vbuxx=_inc_vbuxx inx - //SEG100 [49] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto init::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG100 [49] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto init::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b1 //SEG101 [50] phi from init::@1 to init::@2 [phi:init::@1->init::@2] @@ -7636,7 +7636,7 @@ init: { //SEG114 init::@6 //SEG115 [57] call gen_sintab //SEG116 [71] phi from init::@6 to gen_sintab [phi:init::@6->gen_sintab] - //SEG117 [71] phi (byte*) gen_sintab::sintab#12 = (const byte[221]) sintab_x#0 [phi:init::@6->gen_sintab#0] -- pbuz1=pbuc1 + //SEG117 [71] phi (byte*) gen_sintab::sintab#12 = (const byte[$dd]) sintab_x#0 [phi:init::@6->gen_sintab#0] -- pbuz1=pbuc1 lda #sintab_x @@ -7647,14 +7647,14 @@ init: { //SEG119 [71] phi (byte) gen_sintab::min#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init::@6->gen_sintab#2] -- vbuz1=vbuc1 lda #0 sta gen_sintab.min - //SEG120 [71] phi (byte) gen_sintab::max#2 = (byte/word/signed word/dword/signed dword) 255 [phi:init::@6->gen_sintab#3] -- vbuxx=vbuc1 + //SEG120 [71] phi (byte) gen_sintab::max#2 = (byte/word/signed word/dword/signed dword) $ff [phi:init::@6->gen_sintab#3] -- vbuxx=vbuc1 ldx #$ff jsr gen_sintab //SEG121 [58] phi from init::@6 to init::@7 [phi:init::@6->init::@7] //SEG122 init::@7 //SEG123 [59] call progress_init //SEG124 [168] phi from init::@7 to progress_init [phi:init::@7->progress_init] - //SEG125 [168] phi (byte*) progress_init::line#2 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40 [phi:init::@7->progress_init#0] -- pbuz1=pbuc1 + //SEG125 [168] phi (byte*) progress_init::line#2 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28 [phi:init::@7->progress_init#0] -- pbuz1=pbuc1 lda #SCREEN+$28 @@ -7664,7 +7664,7 @@ init: { //SEG127 init::@8 //SEG128 [61] call gen_sintab //SEG129 [71] phi from init::@8 to gen_sintab [phi:init::@8->gen_sintab] - //SEG130 [71] phi (byte*) gen_sintab::sintab#12 = (const byte[197]) sintab_y#0 [phi:init::@8->gen_sintab#0] -- pbuz1=pbuc1 + //SEG130 [71] phi (byte*) gen_sintab::sintab#12 = (const byte[$c5]) sintab_y#0 [phi:init::@8->gen_sintab#0] -- pbuz1=pbuc1 lda #sintab_y @@ -7672,10 +7672,10 @@ init: { //SEG131 [71] phi (byte) gen_sintab::length#10 = (const byte) sinlen_y#0 [phi:init::@8->gen_sintab#1] -- vbuz1=vbuc1 lda #sinlen_y sta gen_sintab.length - //SEG132 [71] phi (byte) gen_sintab::min#2 = (byte/signed byte/word/signed word/dword/signed dword) 50 [phi:init::@8->gen_sintab#2] -- vbuz1=vbuc1 + //SEG132 [71] phi (byte) gen_sintab::min#2 = (byte/signed byte/word/signed word/dword/signed dword) $32 [phi:init::@8->gen_sintab#2] -- vbuz1=vbuc1 lda #$32 sta gen_sintab.min - //SEG133 [71] phi (byte) gen_sintab::max#2 = (byte/word/signed word/dword/signed dword) 208 [phi:init::@8->gen_sintab#3] -- vbuxx=vbuc1 + //SEG133 [71] phi (byte) gen_sintab::max#2 = (byte/word/signed word/dword/signed dword) $d0 [phi:init::@8->gen_sintab#3] -- vbuxx=vbuc1 ldx #$d0 jsr gen_sintab //SEG134 [62] phi from init::@8 to init::@9 [phi:init::@8->init::@9] @@ -7709,7 +7709,7 @@ clear_screen: { bne !+ inc sc+1 !: - //SEG148 [69] if((byte*) clear_screen::sc#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto clear_screen::@1 -- pbuz1_lt_pbuc1_then_la1 + //SEG148 [69] if((byte*) clear_screen::sc#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto clear_screen::@1 -- pbuz1_lt_pbuc1_then_la1 lda sc+1 cmp #>SCREEN+$3e8 bcc b1 @@ -8201,7 +8201,7 @@ gen_sprites: { //SEG358 [174] call gen_chargen_sprite jsr gen_chargen_sprite //SEG359 gen_sprites::@3 - //SEG360 [175] (byte*) gen_sprites::spr#1 ← (byte*) gen_sprites::spr#2 + (byte/signed byte/word/signed word/dword/signed dword) 64 -- pbuz1=pbuz1_plus_vbuc1 + //SEG360 [175] (byte*) gen_sprites::spr#1 ← (byte*) gen_sprites::spr#2 + (byte/signed byte/word/signed word/dword/signed dword) $40 -- pbuz1=pbuz1_plus_vbuc1 lda spr clc adc #$40 @@ -8257,7 +8257,7 @@ gen_chargen_sprite: { sta chargen+1 //SEG369 asm { sei } sei - //SEG370 [183] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- _deref_pbuc1=vbuc2 + //SEG370 [183] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 -- _deref_pbuc1=vbuc2 lda #$32 sta PROCPORT //SEG371 [184] phi from gen_chargen_sprite to gen_chargen_sprite::@1 [phi:gen_chargen_sprite->gen_chargen_sprite::@1] @@ -8293,7 +8293,7 @@ gen_chargen_sprite: { //SEG390 [186] phi (byte) gen_chargen_sprite::bits#2 = (byte) gen_chargen_sprite::bits#1 [phi:gen_chargen_sprite::@8->gen_chargen_sprite::@2#4] -- register_copy //SEG391 gen_chargen_sprite::@2 b2: - //SEG392 [187] (byte~) gen_chargen_sprite::$3 ← (byte) gen_chargen_sprite::bits#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG392 [187] (byte~) gen_chargen_sprite::$3 ← (byte) gen_chargen_sprite::bits#2 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuz1_band_vbuc1 lda #$80 and bits //SEG393 [188] if((byte~) gen_chargen_sprite::$3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gen_chargen_sprite::@3 -- vbuaa_eq_0_then_la1 @@ -8397,7 +8397,7 @@ gen_chargen_sprite: { cmp #8 bne b1 //SEG440 gen_chargen_sprite::@10 - //SEG441 [209] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 -- _deref_pbuc1=vbuc2 + //SEG441 [209] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 -- _deref_pbuc1=vbuc2 lda #$37 sta PROCPORT //SEG442 asm { cli } @@ -8412,12 +8412,12 @@ place_sprites: { .label spr_id = 2 .label spr_x = 3 .label col = 4 - //SEG446 [212] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=vbuc2 + //SEG446 [212] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) $7f -- _deref_pbuc1=vbuc2 lda #$7f sta SPRITES_ENABLE - //SEG447 [213] *((const byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=vbuc2 + //SEG447 [213] *((const byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word/dword/signed dword) $7f -- _deref_pbuc1=vbuc2 sta SPRITES_EXPAND_X - //SEG448 [214] *((const byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=vbuc2 + //SEG448 [214] *((const byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word/dword/signed dword) $7f -- _deref_pbuc1=vbuc2 sta SPRITES_EXPAND_Y //SEG449 [215] phi from place_sprites to place_sprites::@1 [phi:place_sprites->place_sprites::@1] //SEG450 [215] phi (byte) place_sprites::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 5 [phi:place_sprites->place_sprites::@1#0] -- vbuz1=vbuc1 @@ -8425,12 +8425,12 @@ place_sprites: { sta col //SEG451 [215] phi (byte) place_sprites::j2#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:place_sprites->place_sprites::@1#1] -- vbuxx=vbuc1 ldx #0 - //SEG452 [215] phi (byte) place_sprites::spr_x#2 = (byte/signed byte/word/signed word/dword/signed dword) 60 [phi:place_sprites->place_sprites::@1#2] -- vbuz1=vbuc1 + //SEG452 [215] phi (byte) place_sprites::spr_x#2 = (byte/signed byte/word/signed word/dword/signed dword) $3c [phi:place_sprites->place_sprites::@1#2] -- vbuz1=vbuc1 lda #$3c sta spr_x //SEG453 [215] phi (byte) place_sprites::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:place_sprites->place_sprites::@1#3] -- vbuyy=vbuc1 ldy #0 - //SEG454 [215] phi (byte) place_sprites::spr_id#2 = ((byte))(const byte*) sprites#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [phi:place_sprites->place_sprites::@1#4] -- vbuz1=vbuc1 + //SEG454 [215] phi (byte) place_sprites::spr_id#2 = ((byte))(const byte*) sprites#0/(byte/signed byte/word/signed word/dword/signed dword) $40 [phi:place_sprites->place_sprites::@1#4] -- vbuz1=vbuc1 lda #$ff&sprites/$40 sta spr_id //SEG455 [215] phi from place_sprites::@1 to place_sprites::@1 [phi:place_sprites::@1->place_sprites::@1] @@ -8449,13 +8449,13 @@ place_sprites: { //SEG464 [218] *((const byte*) SPRITES_XPOS#0 + (byte) place_sprites::j2#3) ← (byte) place_sprites::spr_x#2 -- pbuc1_derefidx_vbuxx=vbuz1 lda spr_x sta SPRITES_XPOS,x - //SEG465 [219] *((const byte*) SPRITES_YPOS#0 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word/dword/signed dword) 80 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG465 [219] *((const byte*) SPRITES_YPOS#0 + (byte) place_sprites::j2#3) ← (byte/signed byte/word/signed word/dword/signed dword) $50 -- pbuc1_derefidx_vbuxx=vbuc2 lda #$50 sta SPRITES_YPOS,x //SEG466 [220] *((const byte*) SPRITES_COLS#0 + (byte) place_sprites::j#2) ← (byte) place_sprites::col#2 -- pbuc1_derefidx_vbuyy=vbuz1 lda col sta SPRITES_COLS,y - //SEG467 [221] (byte) place_sprites::spr_x#1 ← (byte) place_sprites::spr_x#2 + (byte/signed byte/word/signed word/dword/signed dword) 32 -- vbuz1=vbuz1_plus_vbuc1 + //SEG467 [221] (byte) place_sprites::spr_x#1 ← (byte) place_sprites::spr_x#2 + (byte/signed byte/word/signed word/dword/signed dword) $20 -- vbuz1=vbuz1_plus_vbuc1 lda #$20 clc adc spr_x diff --git a/src/test/ref/examples/sinsprites/sinus-sprites.sym b/src/test/ref/examples/sinsprites/sinus-sprites.sym index 1771c011f..82cfc596b 100644 --- a/src/test/ref/examples/sinsprites/sinus-sprites.sym +++ b/src/test/ref/examples/sinsprites/sinus-sprites.sym @@ -9,10 +9,10 @@ (byte) BLACK (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN -(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word/dword/signed dword) 53248 +(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word/dword/signed dword) $d000 (byte*) CIA1_INTERRUPT (byte*) CIA1_PORT_A (byte*) CIA1_PORT_A_DDR @@ -25,7 +25,7 @@ (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR (byte*) COLS -(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) 55296 +(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) $d800 (byte) CYAN (byte*) D011 (byte*) D016 @@ -59,28 +59,28 @@ (byte) PROCPORT_RAM_IO (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SPRITES_COLS -(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) 53287 +(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) $d027 (byte*) SPRITES_ENABLE -(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) 53269 +(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) $d015 (byte*) SPRITES_EXPAND_X -(const byte*) SPRITES_EXPAND_X#0 SPRITES_EXPAND_X = ((byte*))(word/dword/signed dword) 53277 +(const byte*) SPRITES_EXPAND_X#0 SPRITES_EXPAND_X = ((byte*))(word/dword/signed dword) $d01d (byte*) SPRITES_EXPAND_Y -(const byte*) SPRITES_EXPAND_Y#0 SPRITES_EXPAND_Y = ((byte*))(word/dword/signed dword) 53271 +(const byte*) SPRITES_EXPAND_Y#0 SPRITES_EXPAND_Y = ((byte*))(word/dword/signed dword) $d017 (byte*) SPRITES_MC (byte*) SPRITES_MC1 (byte*) SPRITES_MC2 (byte*) SPRITES_PRIORITY (byte*) SPRITES_XMSB -(const byte*) SPRITES_XMSB#0 SPRITES_XMSB = ((byte*))(word/dword/signed dword) 53264 +(const byte*) SPRITES_XMSB#0 SPRITES_XMSB = ((byte*))(word/dword/signed dword) $d010 (byte*) SPRITES_XPOS -(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) 53248 +(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) $d000 (byte*) SPRITES_YPOS -(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) 53249 +(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) $d001 (word) SPRITE_PTRS (byte) VIC_BMM (byte*) VIC_CONTROL @@ -226,7 +226,7 @@ (label) gen_sintab::@9 (label) gen_sintab::@return (byte*) gen_sintab::f_2pi -(const byte*) gen_sintab::f_2pi#0 f_2pi = ((byte*))(word/dword/signed dword) 58085 +(const byte*) gen_sintab::f_2pi#0 f_2pi = ((byte*))(word/dword/signed dword) $e2e5 (byte[]) gen_sintab::f_amp (const byte[]) gen_sintab::f_amp#0 f_amp = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) gen_sintab::f_i @@ -279,9 +279,9 @@ (label) main::@2 (label) main::@3 (byte*) memHi -(const byte*) memHi#0 memHi = ((byte*))(byte/word/signed word/dword/signed dword) 255 +(const byte*) memHi#0 memHi = ((byte*))(byte/word/signed word/dword/signed dword) $ff (byte*) memLo -(const byte*) memLo#0 memLo = ((byte*))(byte/word/signed word/dword/signed dword) 254 +(const byte*) memLo#0 memLo = ((byte*))(byte/word/signed word/dword/signed dword) $fe (void()) mulFACbyMEM((byte*) mulFACbyMEM::mem) (label) mulFACbyMEM::@1 (label) mulFACbyMEM::@return @@ -307,7 +307,7 @@ (byte) place_sprites::spr_x#1 spr_x zp ZP_BYTE:3 3.6666666666666665 (byte) place_sprites::spr_x#2 spr_x zp ZP_BYTE:3 5.5 (byte*) place_sprites::sprites_ptr -(const byte*) place_sprites::sprites_ptr#0 sprites_ptr = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1016 +(const byte*) place_sprites::sprites_ptr#0 sprites_ptr = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3f8 (void()) prepareMEM((byte*) prepareMEM::mem) (byte~) prepareMEM::$0 reg byte a 4.0 (byte~) prepareMEM::$1 reg byte a 4.0 @@ -335,7 +335,7 @@ (label) progress_inc::@2 (label) progress_inc::@return (byte[]) progress_inc::progress_chars -(const byte[]) progress_inc::progress_chars#0 progress_chars = { (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 116, (byte/signed byte/word/signed word/dword/signed dword) 117, (byte/signed byte/word/signed word/dword/signed dword) 97, (byte/word/signed word/dword/signed dword) 246, (byte/word/signed word/dword/signed dword) 231, (byte/word/signed word/dword/signed dword) 234, (byte/word/signed word/dword/signed dword) 224 } +(const byte[]) progress_inc::progress_chars#0 progress_chars = { (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $65, (byte/signed byte/word/signed word/dword/signed dword) $74, (byte/signed byte/word/signed word/dword/signed dword) $75, (byte/signed byte/word/signed word/dword/signed dword) $61, (byte/word/signed word/dword/signed dword) $f6, (byte/word/signed word/dword/signed dword) $e7, (byte/word/signed word/dword/signed dword) $ea, (byte/word/signed word/dword/signed dword) $e0 } (void()) progress_init((byte*) progress_init::line) (label) progress_init::@return (byte*) progress_init::line @@ -367,15 +367,15 @@ (byte) sin_idx_y#13 sin_idx_y zp ZP_BYTE:3 0.49999999999999994 (byte) sin_idx_y#3 sin_idx_y zp ZP_BYTE:3 2.0 (byte) sinlen_x -(const byte) sinlen_x#0 sinlen_x = (byte/word/signed word/dword/signed dword) 221 +(const byte) sinlen_x#0 sinlen_x = (byte/word/signed word/dword/signed dword) $dd (byte) sinlen_y -(const byte) sinlen_y#0 sinlen_y = (byte/word/signed word/dword/signed dword) 197 -(byte[221]) sintab_x -(const byte[221]) sintab_x#0 sintab_x = { fill( 221, 0) } -(byte[197]) sintab_y -(const byte[197]) sintab_y#0 sintab_y = { fill( 197, 0) } +(const byte) sinlen_y#0 sinlen_y = (byte/word/signed word/dword/signed dword) $c5 +(byte[$dd]) sintab_x +(const byte[$dd]) sintab_x#0 sintab_x = { fill( $dd, 0) } +(byte[$c5]) sintab_y +(const byte[$c5]) sintab_y#0 sintab_y = { fill( $c5, 0) } (byte*) sprites -(const byte*) sprites#0 sprites = ((byte*))(word/signed word/dword/signed dword) 8192 +(const byte*) sprites#0 sprites = ((byte*))(word/signed word/dword/signed dword) $2000 (void()) subFACfromARG() (label) subFACfromARG::@return diff --git a/src/test/ref/fibmem.cfg b/src/test/ref/fibmem.cfg index b72427b60..b69b3f75c 100644 --- a/src/test/ref/fibmem.cfg +++ b/src/test/ref/fibmem.cfg @@ -8,15 +8,15 @@ @end: scope:[] from @1 [3] phi() main: scope:[main] from @1 - [4] *((const byte[15]) fibs#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [5] *((const byte[15]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 + [4] *((const byte[$f]) fibs#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [5] *((const byte[$f]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:main::@1 main::@1: scope:[main] from main main::@1 [6] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::i#1 ) - [7] (byte~) main::$2 ← *((const byte[15]) fibs#0 + (byte) main::i#2) + *((const byte[15]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) main::i#2) - [8] *((const byte[15]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) main::i#2) ← (byte~) main::$2 + [7] (byte~) main::$2 ← *((const byte[$f]) fibs#0 + (byte) main::i#2) + *((const byte[$f]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) main::i#2) + [8] *((const byte[$f]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) main::i#2) ← (byte~) main::$2 [9] (byte) main::i#1 ← ++ (byte) main::i#2 - [10] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 15) goto main::@1 + [10] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $f) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [11] return diff --git a/src/test/ref/fibmem.log b/src/test/ref/fibmem.log index 5084f7e27..477edebf3 100644 --- a/src/test/ref/fibmem.log +++ b/src/test/ref/fibmem.log @@ -1,21 +1,21 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte[15]) fibs#0 ← ((byte*)) (word/signed word/dword/signed dword) 4352 + (byte[$f]) fibs#0 ← ((byte*)) (word/signed word/dword/signed dword) $1100 to:@1 main: scope:[main] from @1 - *((byte[15]) fibs#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - *((byte[15]) fibs#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 + *((byte[$f]) fibs#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + *((byte[$f]) fibs#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main main::@1 (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) (byte/signed word/word/dword/signed dword~) main::$0 ← (byte) main::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 (byte/signed word/word/dword/signed dword~) main::$1 ← (byte) main::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte~) main::$2 ← *((byte[15]) fibs#0 + (byte) main::i#2) + *((byte[15]) fibs#0 + (byte/signed word/word/dword/signed dword~) main::$1) - *((byte[15]) fibs#0 + (byte/signed word/word/dword/signed dword~) main::$0) ← (byte~) main::$2 + (byte~) main::$2 ← *((byte[$f]) fibs#0 + (byte) main::i#2) + *((byte[$f]) fibs#0 + (byte/signed word/word/dword/signed dword~) main::$1) + *((byte[$f]) fibs#0 + (byte/signed word/word/dword/signed dword~) main::$0) ← (byte~) main::$2 (byte) main::i#1 ← ++ (byte) main::i#2 - (bool~) main::$3 ← (byte) main::i#1 < (byte/signed byte/word/signed word/dword/signed dword) 15 + (bool~) main::$3 ← (byte) main::i#1 < (byte/signed byte/word/signed word/dword/signed dword) $f if((bool~) main::$3) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 @@ -33,8 +33,8 @@ SYMBOL TABLE SSA (label) @2 (label) @begin (label) @end -(byte[15]) fibs -(byte[15]) fibs#0 +(byte[$f]) fibs +(byte[$f]) fibs#0 (void()) main() (byte/signed word/word/dword/signed dword~) main::$0 (byte/signed word/word/dword/signed dword~) main::$1 @@ -49,9 +49,9 @@ SYMBOL TABLE SSA Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks -Simple Condition (bool~) main::$3 [11] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 15) goto main::@1 +Simple Condition (bool~) main::$3 [11] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $f) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte[15]) fibs#0 = ((byte*))4352 +Constant (const byte[$f]) fibs#0 = ((byte*))$1100 Constant (const byte) main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(fibs#0+0) @@ -93,15 +93,15 @@ FINAL CONTROL FLOW GRAPH @end: scope:[] from @1 [3] phi() main: scope:[main] from @1 - [4] *((const byte[15]) fibs#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [5] *((const byte[15]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 + [4] *((const byte[$f]) fibs#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [5] *((const byte[$f]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:main::@1 main::@1: scope:[main] from main main::@1 [6] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::i#1 ) - [7] (byte~) main::$2 ← *((const byte[15]) fibs#0 + (byte) main::i#2) + *((const byte[15]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) main::i#2) - [8] *((const byte[15]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) main::i#2) ← (byte~) main::$2 + [7] (byte~) main::$2 ← *((const byte[$f]) fibs#0 + (byte) main::i#2) + *((const byte[$f]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) main::i#2) + [8] *((const byte[$f]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) main::i#2) ← (byte~) main::$2 [9] (byte) main::i#1 ← ++ (byte) main::i#2 - [10] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 15) goto main::@1 + [10] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $f) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [11] return @@ -109,7 +109,7 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS -(byte[15]) fibs +(byte[$f]) fibs (void()) main() (byte~) main::$2 22.0 (byte) main::i @@ -151,10 +151,10 @@ bend: main: { .label _2 = 3 .label i = 2 - //SEG10 [4] *((const byte[15]) fibs#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG10 [4] *((const byte[$f]) fibs#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta fibs - //SEG11 [5] *((const byte[15]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG11 [5] *((const byte[$f]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 lda #1 sta fibs+1 //SEG12 [6] phi from main to main::@1 [phi:main->main::@1] @@ -169,19 +169,19 @@ main: { jmp b1 //SEG16 main::@1 b1: - //SEG17 [7] (byte~) main::$2 ← *((const byte[15]) fibs#0 + (byte) main::i#2) + *((const byte[15]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) main::i#2) -- vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc2_derefidx_vbuz2 + //SEG17 [7] (byte~) main::$2 ← *((const byte[$f]) fibs#0 + (byte) main::i#2) + *((const byte[$f]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) main::i#2) -- vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc2_derefidx_vbuz2 ldy i lda fibs,y clc adc fibs+1,y sta _2 - //SEG18 [8] *((const byte[15]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) main::i#2) ← (byte~) main::$2 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG18 [8] *((const byte[$f]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) main::i#2) ← (byte~) main::$2 -- pbuc1_derefidx_vbuz1=vbuz2 lda _2 ldy i sta fibs+2,y //SEG19 [9] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG20 [10] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 15) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 + //SEG20 [10] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $f) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 lda i cmp #$f bcc b1_from_b1 @@ -193,13 +193,13 @@ main: { } REGISTER UPLIFT POTENTIAL REGISTERS -Statement [4] *((const byte[15]) fibs#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [5] *((const byte[15]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [7] (byte~) main::$2 ← *((const byte[15]) fibs#0 + (byte) main::i#2) + *((const byte[15]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) main::i#2) [ main::i#2 main::$2 ] ( main:2 [ main::i#2 main::$2 ] ) always clobbers reg byte a +Statement [4] *((const byte[$f]) fibs#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [5] *((const byte[$f]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [7] (byte~) main::$2 ← *((const byte[$f]) fibs#0 + (byte) main::i#2) + *((const byte[$f]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) main::i#2) [ main::i#2 main::$2 ] ( main:2 [ main::i#2 main::$2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::i#2 main::i#1 ] -Statement [4] *((const byte[15]) fibs#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [5] *((const byte[15]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [7] (byte~) main::$2 ← *((const byte[15]) fibs#0 + (byte) main::i#2) + *((const byte[15]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) main::i#2) [ main::i#2 main::$2 ] ( main:2 [ main::i#2 main::$2 ] ) always clobbers reg byte a +Statement [4] *((const byte[$f]) fibs#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [5] *((const byte[$f]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [7] (byte~) main::$2 ← *((const byte[$f]) fibs#0 + (byte) main::i#2) + *((const byte[$f]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) main::i#2) [ main::i#2 main::$2 ] ( main:2 [ main::i#2 main::$2 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ main::i#2 main::i#1 ] : zp ZP_BYTE:2 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:3 [ main::$2 ] : zp ZP_BYTE:3 , reg byte a , reg byte x , reg byte y , @@ -234,10 +234,10 @@ bend_from_b1: bend: //SEG9 main main: { - //SEG10 [4] *((const byte[15]) fibs#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG10 [4] *((const byte[$f]) fibs#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta fibs - //SEG11 [5] *((const byte[15]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG11 [5] *((const byte[$f]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 lda #1 sta fibs+1 //SEG12 [6] phi from main to main::@1 [phi:main->main::@1] @@ -251,15 +251,15 @@ main: { jmp b1 //SEG16 main::@1 b1: - //SEG17 [7] (byte~) main::$2 ← *((const byte[15]) fibs#0 + (byte) main::i#2) + *((const byte[15]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) main::i#2) -- vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuxx + //SEG17 [7] (byte~) main::$2 ← *((const byte[$f]) fibs#0 + (byte) main::i#2) + *((const byte[$f]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) main::i#2) -- vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuxx lda fibs,x clc adc fibs+1,x - //SEG18 [8] *((const byte[15]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) main::i#2) ← (byte~) main::$2 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG18 [8] *((const byte[$f]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) main::i#2) ← (byte~) main::$2 -- pbuc1_derefidx_vbuxx=vbuaa sta fibs+2,x //SEG19 [9] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG20 [10] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 15) goto main::@1 -- vbuxx_lt_vbuc1_then_la1 + //SEG20 [10] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $f) goto main::@1 -- vbuxx_lt_vbuc1_then_la1 cpx #$f bcc b1_from_b1 jmp breturn @@ -297,8 +297,8 @@ FINAL SYMBOL TABLE (label) @1 (label) @begin (label) @end -(byte[15]) fibs -(const byte[15]) fibs#0 fibs = ((byte*))(word/signed word/dword/signed dword) 4352 +(byte[$f]) fibs +(const byte[$f]) fibs#0 fibs = ((byte*))(word/signed word/dword/signed dword) $1100 (void()) main() (byte~) main::$2 reg byte a 22.0 (label) main::@1 @@ -329,10 +329,10 @@ Score: 263 //SEG8 @end //SEG9 main main: { - //SEG10 [4] *((const byte[15]) fibs#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG10 [4] *((const byte[$f]) fibs#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta fibs - //SEG11 [5] *((const byte[15]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG11 [5] *((const byte[$f]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 lda #1 sta fibs+1 //SEG12 [6] phi from main to main::@1 [phi:main->main::@1] @@ -342,15 +342,15 @@ main: { //SEG15 [6] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@1->main::@1#0] -- register_copy //SEG16 main::@1 b1: - //SEG17 [7] (byte~) main::$2 ← *((const byte[15]) fibs#0 + (byte) main::i#2) + *((const byte[15]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) main::i#2) -- vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuxx + //SEG17 [7] (byte~) main::$2 ← *((const byte[$f]) fibs#0 + (byte) main::i#2) + *((const byte[$f]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) main::i#2) -- vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuxx lda fibs,x clc adc fibs+1,x - //SEG18 [8] *((const byte[15]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) main::i#2) ← (byte~) main::$2 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG18 [8] *((const byte[$f]) fibs#0+(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) main::i#2) ← (byte~) main::$2 -- pbuc1_derefidx_vbuxx=vbuaa sta fibs+2,x //SEG19 [9] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG20 [10] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 15) goto main::@1 -- vbuxx_lt_vbuc1_then_la1 + //SEG20 [10] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $f) goto main::@1 -- vbuxx_lt_vbuc1_then_la1 cpx #$f bcc b1 //SEG21 main::@return diff --git a/src/test/ref/fibmem.sym b/src/test/ref/fibmem.sym index 77b89d7c7..34d3a3113 100644 --- a/src/test/ref/fibmem.sym +++ b/src/test/ref/fibmem.sym @@ -1,8 +1,8 @@ (label) @1 (label) @begin (label) @end -(byte[15]) fibs -(const byte[15]) fibs#0 fibs = ((byte*))(word/signed word/dword/signed dword) 4352 +(byte[$f]) fibs +(const byte[$f]) fibs#0 fibs = ((byte*))(word/signed word/dword/signed dword) $1100 (void()) main() (byte~) main::$2 reg byte a 22.0 (label) main::@1 diff --git a/src/test/ref/fillscreen.log b/src/test/ref/fillscreen.log index c478c4851..2ee601be2 100644 --- a/src/test/ref/fillscreen.log +++ b/src/test/ref/fillscreen.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@2 main: scope:[main] from @2 (byte*) SCREEN#1 ← phi( @2/(byte*) SCREEN#3 ) @@ -23,18 +23,18 @@ fillscreen::@1: scope:[fillscreen] from fillscreen fillscreen::@1 (byte) fillscreen::j#2 ← phi( fillscreen/(byte) fillscreen::j#0 fillscreen::@1/(byte) fillscreen::j#1 ) (byte) fillscreen::c#1 ← phi( fillscreen/(byte) fillscreen::c#2 fillscreen::@1/(byte) fillscreen::c#1 ) (byte*) SCREEN#2 ← phi( fillscreen/(byte*) SCREEN#4 fillscreen::@1/(byte*) SCREEN#2 ) - (byte*~) fillscreen::$0 ← (byte*) SCREEN#2 + (word/signed word/dword/signed dword) 256 + (byte*~) fillscreen::$0 ← (byte*) SCREEN#2 + (word/signed word/dword/signed dword) $100 (byte*) fillscreen::SCREEN2#0 ← (byte*~) fillscreen::$0 - (byte*~) fillscreen::$1 ← (byte*) SCREEN#2 + (word/signed word/dword/signed dword) 512 + (byte*~) fillscreen::$1 ← (byte*) SCREEN#2 + (word/signed word/dword/signed dword) $200 (byte*) fillscreen::SCREEN3#0 ← (byte*~) fillscreen::$1 - (byte*~) fillscreen::$2 ← (byte*) SCREEN#2 + (word/signed word/dword/signed dword) 1000 + (byte*~) fillscreen::$2 ← (byte*) SCREEN#2 + (word/signed word/dword/signed dword) $3e8 (byte*) fillscreen::SCREEN4#0 ← (byte*~) fillscreen::$2 *((byte*) SCREEN#2 + (byte) fillscreen::j#2) ← (byte) fillscreen::c#1 *((byte*) fillscreen::SCREEN2#0 + (byte) fillscreen::j#2) ← (byte) fillscreen::c#1 *((byte*) fillscreen::SCREEN3#0 + (byte) fillscreen::j#2) ← (byte) fillscreen::c#1 *((byte*) fillscreen::SCREEN4#0 + (byte) fillscreen::j#2) ← (byte) fillscreen::c#1 - (byte) fillscreen::j#1 ← (byte) fillscreen::j#2 + rangenext(0,255) - (bool~) fillscreen::$3 ← (byte) fillscreen::j#1 != rangelast(0,255) + (byte) fillscreen::j#1 ← (byte) fillscreen::j#2 + rangenext(0,$ff) + (bool~) fillscreen::$3 ← (byte) fillscreen::j#1 != rangelast(0,$ff) if((bool~) fillscreen::$3) goto fillscreen::@1 to:fillscreen::@return fillscreen::@return: scope:[fillscreen] from fillscreen::@1 @@ -103,17 +103,17 @@ Redundant Phi (byte) fillscreen::c#2 (byte) fillscreen::c#0 Redundant Phi (byte*) SCREEN#2 (byte*) SCREEN#4 Redundant Phi (byte) fillscreen::c#1 (byte) fillscreen::c#2 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) fillscreen::$3 [21] if((byte) fillscreen::j#1!=rangelast(0,255)) goto fillscreen::@1 +Simple Condition (bool~) fillscreen::$3 [21] if((byte) fillscreen::j#1!=rangelast(0,$ff)) goto fillscreen::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Constant (const byte) fillscreen::j#0 = 0 Successful SSA optimization Pass2ConstantIdentification -Constant (const byte*) fillscreen::SCREEN2#0 = SCREEN#0+256 -Constant (const byte*) fillscreen::SCREEN3#0 = SCREEN#0+512 -Constant (const byte*) fillscreen::SCREEN4#0 = SCREEN#0+1000 +Constant (const byte*) fillscreen::SCREEN2#0 = SCREEN#0+$100 +Constant (const byte*) fillscreen::SCREEN3#0 = SCREEN#0+$200 +Constant (const byte*) fillscreen::SCREEN4#0 = SCREEN#0+$3e8 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value fillscreen::j#1 ← ++ fillscreen::j#2 to ++ -Resolved ranged comparison value if(fillscreen::j#1!=rangelast(0,255)) goto fillscreen::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(fillscreen::j#1!=rangelast(0,$ff)) goto fillscreen::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 Inlining constant with var siblings (const byte) fillscreen::j#0 Constant inlined fillscreen::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining @@ -407,16 +407,16 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) fillscreen((byte) fillscreen::c) (label) fillscreen::@1 (label) fillscreen::@return (byte*) fillscreen::SCREEN2 -(const byte*) fillscreen::SCREEN2#0 SCREEN2 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 256 +(const byte*) fillscreen::SCREEN2#0 SCREEN2 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) $100 (byte*) fillscreen::SCREEN3 -(const byte*) fillscreen::SCREEN3#0 SCREEN3 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 512 +(const byte*) fillscreen::SCREEN3#0 SCREEN3 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) $200 (byte*) fillscreen::SCREEN4 -(const byte*) fillscreen::SCREEN4#0 SCREEN4 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000 +(const byte*) fillscreen::SCREEN4#0 SCREEN4 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8 (byte) fillscreen::c (byte) fillscreen::c#0 reg byte a 5.111111111111112 (byte) fillscreen::j diff --git a/src/test/ref/fillscreen.sym b/src/test/ref/fillscreen.sym index 1e1f62bb6..73668d23f 100644 --- a/src/test/ref/fillscreen.sym +++ b/src/test/ref/fillscreen.sym @@ -2,16 +2,16 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) fillscreen((byte) fillscreen::c) (label) fillscreen::@1 (label) fillscreen::@return (byte*) fillscreen::SCREEN2 -(const byte*) fillscreen::SCREEN2#0 SCREEN2 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 256 +(const byte*) fillscreen::SCREEN2#0 SCREEN2 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) $100 (byte*) fillscreen::SCREEN3 -(const byte*) fillscreen::SCREEN3#0 SCREEN3 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 512 +(const byte*) fillscreen::SCREEN3#0 SCREEN3 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) $200 (byte*) fillscreen::SCREEN4 -(const byte*) fillscreen::SCREEN4#0 SCREEN4 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000 +(const byte*) fillscreen::SCREEN4#0 SCREEN4 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8 (byte) fillscreen::c (byte) fillscreen::c#0 reg byte a 5.111111111111112 (byte) fillscreen::j diff --git a/src/test/ref/flipper-rex2.cfg b/src/test/ref/flipper-rex2.cfg index 94931d6c3..1e02ed754 100644 --- a/src/test/ref/flipper-rex2.cfg +++ b/src/test/ref/flipper-rex2.cfg @@ -12,11 +12,11 @@ main: scope:[main] from @4 [5] call prepare to:main::@3 main::@3: scope:[main] from main main::@10 main::@3 main::@6 - [6] (byte) main::c#4 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 25 main::@6/(byte) main::c#1 main::@10/(byte/signed byte/word/signed word/dword/signed dword) 25 ) - [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@3 + [6] (byte) main::c#4 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) $19 main::@6/(byte) main::c#1 main::@10/(byte/signed byte/word/signed word/dword/signed dword) $19 ) + [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fe) goto main::@3 to:main::@4 main::@4: scope:[main] from main::@3 main::@4 - [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 + [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 to:main::@6 main::@6: scope:[main] from main::@4 [9] (byte) main::c#1 ← -- (byte) main::c#4 @@ -34,20 +34,20 @@ plot: scope:[plot] from main::@10 [15] phi() to:plot::@1 plot::@1: scope:[plot] from plot plot::@3 - [16] (byte) plot::y#4 ← phi( plot/(byte/signed byte/word/signed word/dword/signed dword) 16 plot::@3/(byte) plot::y#1 ) - [16] (byte*) plot::line#4 ← phi( plot/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 12 plot::@3/(byte*) plot::line#1 ) + [16] (byte) plot::y#4 ← phi( plot/(byte/signed byte/word/signed word/dword/signed dword) $10 plot::@3/(byte) plot::y#1 ) + [16] (byte*) plot::line#4 ← phi( plot/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $c plot::@3/(byte*) plot::line#1 ) [16] (byte) plot::i#3 ← phi( plot/(byte/signed byte/word/signed word/dword/signed dword) 0 plot::@3/(byte) plot::i#1 ) to:plot::@2 plot::@2: scope:[plot] from plot::@1 plot::@2 [17] (byte) plot::x#2 ← phi( plot::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 plot::@2/(byte) plot::x#1 ) [17] (byte) plot::i#2 ← phi( plot::@1/(byte) plot::i#3 plot::@2/(byte) plot::i#1 ) - [18] *((byte*) plot::line#4 + (byte) plot::x#2) ← *((const byte[16*16]) buffer1#0 + (byte) plot::i#2) + [18] *((byte*) plot::line#4 + (byte) plot::x#2) ← *((const byte[$10*$10]) buffer1#0 + (byte) plot::i#2) [19] (byte) plot::i#1 ← ++ (byte) plot::i#2 [20] (byte) plot::x#1 ← ++ (byte) plot::x#2 - [21] if((byte) plot::x#1<(byte/signed byte/word/signed word/dword/signed dword) 16) goto plot::@2 + [21] if((byte) plot::x#1<(byte/signed byte/word/signed word/dword/signed dword) $10) goto plot::@2 to:plot::@3 plot::@3: scope:[plot] from plot::@2 - [22] (byte*) plot::line#1 ← (byte*) plot::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [22] (byte*) plot::line#1 ← (byte*) plot::line#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 [23] (byte) plot::y#1 ← -- (byte) plot::y#4 [24] if((byte) plot::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto plot::@1 to:plot::@return @@ -58,17 +58,17 @@ flip: scope:[flip] from main::@7 [26] phi() to:flip::@1 flip::@1: scope:[flip] from flip flip::@4 - [27] (byte) flip::r#4 ← phi( flip/(byte/signed byte/word/signed word/dword/signed dword) 16 flip::@4/(byte) flip::r#1 ) - [27] (byte) flip::dstIdx#5 ← phi( flip/(byte/signed byte/word/signed word/dword/signed dword) 15 flip::@4/(byte) flip::dstIdx#2 ) + [27] (byte) flip::r#4 ← phi( flip/(byte/signed byte/word/signed word/dword/signed dword) $10 flip::@4/(byte) flip::r#1 ) + [27] (byte) flip::dstIdx#5 ← phi( flip/(byte/signed byte/word/signed word/dword/signed dword) $f flip::@4/(byte) flip::dstIdx#2 ) [27] (byte) flip::srcIdx#3 ← phi( flip/(byte/signed byte/word/signed word/dword/signed dword) 0 flip::@4/(byte) flip::srcIdx#1 ) to:flip::@2 flip::@2: scope:[flip] from flip::@1 flip::@2 - [28] (byte) flip::c#2 ← phi( flip::@1/(byte/signed byte/word/signed word/dword/signed dword) 16 flip::@2/(byte) flip::c#1 ) + [28] (byte) flip::c#2 ← phi( flip::@1/(byte/signed byte/word/signed word/dword/signed dword) $10 flip::@2/(byte) flip::c#1 ) [28] (byte) flip::dstIdx#3 ← phi( flip::@1/(byte) flip::dstIdx#5 flip::@2/(byte) flip::dstIdx#1 ) [28] (byte) flip::srcIdx#2 ← phi( flip::@1/(byte) flip::srcIdx#3 flip::@2/(byte) flip::srcIdx#1 ) - [29] *((const byte[16*16]) buffer2#0 + (byte) flip::dstIdx#3) ← *((const byte[16*16]) buffer1#0 + (byte) flip::srcIdx#2) + [29] *((const byte[$10*$10]) buffer2#0 + (byte) flip::dstIdx#3) ← *((const byte[$10*$10]) buffer1#0 + (byte) flip::srcIdx#2) [30] (byte) flip::srcIdx#1 ← ++ (byte) flip::srcIdx#2 - [31] (byte) flip::dstIdx#1 ← (byte) flip::dstIdx#3 + (byte/signed byte/word/signed word/dword/signed dword) 16 + [31] (byte) flip::dstIdx#1 ← (byte) flip::dstIdx#3 + (byte/signed byte/word/signed word/dword/signed dword) $10 [32] (byte) flip::c#1 ← -- (byte) flip::c#2 [33] if((byte) flip::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto flip::@2 to:flip::@4 @@ -79,7 +79,7 @@ flip::@4: scope:[flip] from flip::@2 to:flip::@3 flip::@3: scope:[flip] from flip::@3 flip::@4 [37] (byte) flip::i#2 ← phi( flip::@3/(byte) flip::i#1 flip::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [38] *((const byte[16*16]) buffer1#0 + (byte) flip::i#2) ← *((const byte[16*16]) buffer2#0 + (byte) flip::i#2) + [38] *((const byte[$10*$10]) buffer1#0 + (byte) flip::i#2) ← *((const byte[$10*$10]) buffer2#0 + (byte) flip::i#2) [39] (byte) flip::i#1 ← ++ (byte) flip::i#2 [40] if((byte) flip::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto flip::@3 to:flip::@return @@ -91,7 +91,7 @@ prepare: scope:[prepare] from main to:prepare::@1 prepare::@1: scope:[prepare] from prepare prepare::@1 [43] (byte) prepare::i#2 ← phi( prepare/(byte/signed byte/word/signed word/dword/signed dword) 0 prepare::@1/(byte) prepare::i#1 ) - [44] *((const byte[16*16]) buffer1#0 + (byte) prepare::i#2) ← (byte) prepare::i#2 + [44] *((const byte[$10*$10]) buffer1#0 + (byte) prepare::i#2) ← (byte) prepare::i#2 [45] (byte) prepare::i#1 ← ++ (byte) prepare::i#2 [46] if((byte) prepare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto prepare::@1 to:prepare::@return diff --git a/src/test/ref/flipper-rex2.log b/src/test/ref/flipper-rex2.log index a984b6acc..9a6314071 100644 --- a/src/test/ref/flipper-rex2.log +++ b/src/test/ref/flipper-rex2.log @@ -1,12 +1,12 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (word/signed word/dword/signed dword~) $0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 * (byte/signed byte/word/signed word/dword/signed dword) 16 + (word/signed word/dword/signed dword~) $0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 * (byte/signed byte/word/signed word/dword/signed dword) $10 (byte[$0]) buffer1#0 ← { fill( $0, 0) } - (word/signed word/dword/signed dword~) $1 ← (byte/signed byte/word/signed word/dword/signed dword) 16 * (byte/signed byte/word/signed word/dword/signed dword) 16 + (word/signed word/dword/signed dword~) $1 ← (byte/signed byte/word/signed word/dword/signed dword) $10 * (byte/signed byte/word/signed word/dword/signed dword) $10 (byte[$1]) buffer2#0 ← { fill( $1, 0) } - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@4 main: scope:[main] from @4 (byte*) SCREEN#11 ← phi( @4/(byte*) SCREEN#12 ) @@ -20,7 +20,7 @@ main::@9: scope:[main] from main main::@1: scope:[main] from main::@11 main::@9 (byte*) SCREEN#7 ← phi( main::@11/(byte*) SCREEN#9 main::@9/(byte*) SCREEN#10 ) (byte*) RASTER#3 ← phi( main::@11/(byte*) RASTER#5 main::@9/(byte*) RASTER#6 ) - (byte) main::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 25 + (byte) main::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) $19 to:main::@3 main::@2: scope:[main] from main::@6 (byte*) SCREEN#8 ← phi( main::@6/(byte*) SCREEN#4 ) @@ -31,22 +31,22 @@ main::@3: scope:[main] from main::@1 main::@2 main::@3 (byte*) SCREEN#6 ← phi( main::@1/(byte*) SCREEN#7 main::@2/(byte*) SCREEN#8 main::@3/(byte*) SCREEN#6 ) (byte) main::c#4 ← phi( main::@1/(byte) main::c#0 main::@2/(byte) main::c#5 main::@3/(byte) main::c#4 ) (byte*) RASTER#1 ← phi( main::@1/(byte*) RASTER#3 main::@2/(byte*) RASTER#4 main::@3/(byte*) RASTER#1 ) - (bool~) main::$1 ← *((byte*) RASTER#1) != (byte/word/signed word/dword/signed dword) 254 + (bool~) main::$1 ← *((byte*) RASTER#1) != (byte/word/signed word/dword/signed dword) $fe if((bool~) main::$1) goto main::@3 to:main::@4 main::@4: scope:[main] from main::@3 main::@4 (byte*) SCREEN#5 ← phi( main::@3/(byte*) SCREEN#6 main::@4/(byte*) SCREEN#5 ) (byte) main::c#3 ← phi( main::@3/(byte) main::c#4 main::@4/(byte) main::c#3 ) (byte*) RASTER#2 ← phi( main::@3/(byte*) RASTER#1 main::@4/(byte*) RASTER#2 ) - (bool~) main::$2 ← *((byte*) RASTER#2) != (byte/word/signed word/dword/signed dword) 255 + (bool~) main::$2 ← *((byte*) RASTER#2) != (byte/word/signed word/dword/signed dword) $ff if((bool~) main::$2) goto main::@4 to:main::@6 main::@6: scope:[main] from main::@4 (byte*) SCREEN#4 ← phi( main::@4/(byte*) SCREEN#5 ) (byte*) RASTER#7 ← phi( main::@4/(byte*) RASTER#2 ) (byte) main::c#2 ← phi( main::@4/(byte) main::c#3 ) - (byte) main::c#1 ← (byte) main::c#2 + rangenext(25,1) - (bool~) main::$3 ← (byte) main::c#1 != rangelast(25,1) + (byte) main::c#1 ← (byte) main::c#2 + rangenext($19,1) + (bool~) main::$3 ← (byte) main::c#1 != rangelast($19,1) if((bool~) main::$3) goto main::@2 to:main::@7 main::@7: scope:[main] from main::@6 @@ -73,8 +73,8 @@ prepare: scope:[prepare] from main prepare::@1: scope:[prepare] from prepare prepare::@1 (byte) prepare::i#2 ← phi( prepare/(byte) prepare::i#0 prepare::@1/(byte) prepare::i#1 ) *((byte[$0]) buffer1#0 + (byte) prepare::i#2) ← (byte) prepare::i#2 - (byte) prepare::i#1 ← (byte) prepare::i#2 + rangenext(0,255) - (bool~) prepare::$0 ← (byte) prepare::i#1 != rangelast(0,255) + (byte) prepare::i#1 ← (byte) prepare::i#2 + rangenext(0,$ff) + (bool~) prepare::$0 ← (byte) prepare::i#1 != rangelast(0,$ff) if((bool~) prepare::$0) goto prepare::@1 to:prepare::@return prepare::@return: scope:[prepare] from prepare::@1 @@ -82,14 +82,14 @@ prepare::@return: scope:[prepare] from prepare::@1 to:@return flip: scope:[flip] from main::@7 (byte) flip::srcIdx#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte) flip::dstIdx#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) flip::r#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) flip::dstIdx#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f + (byte) flip::r#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 to:flip::@1 flip::@1: scope:[flip] from flip flip::@4 (byte) flip::r#4 ← phi( flip/(byte) flip::r#0 flip::@4/(byte) flip::r#1 ) (byte) flip::dstIdx#5 ← phi( flip/(byte) flip::dstIdx#0 flip::@4/(byte) flip::dstIdx#2 ) (byte) flip::srcIdx#3 ← phi( flip/(byte) flip::srcIdx#0 flip::@4/(byte) flip::srcIdx#4 ) - (byte) flip::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) flip::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 to:flip::@2 flip::@2: scope:[flip] from flip::@1 flip::@2 (byte) flip::r#3 ← phi( flip::@1/(byte) flip::r#4 flip::@2/(byte) flip::r#3 ) @@ -98,10 +98,10 @@ flip::@2: scope:[flip] from flip::@1 flip::@2 (byte) flip::srcIdx#2 ← phi( flip::@1/(byte) flip::srcIdx#3 flip::@2/(byte) flip::srcIdx#1 ) *((byte[$1]) buffer2#0 + (byte) flip::dstIdx#3) ← *((byte[$0]) buffer1#0 + (byte) flip::srcIdx#2) (byte) flip::srcIdx#1 ← ++ (byte) flip::srcIdx#2 - (byte/signed word/word/dword/signed dword~) flip::$0 ← (byte) flip::dstIdx#3 + (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte/signed word/word/dword/signed dword~) flip::$0 ← (byte) flip::dstIdx#3 + (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) flip::dstIdx#1 ← (byte/signed word/word/dword/signed dword~) flip::$0 - (byte) flip::c#1 ← (byte) flip::c#2 + rangenext(16,1) - (bool~) flip::$1 ← (byte) flip::c#1 != rangelast(16,1) + (byte) flip::c#1 ← (byte) flip::c#2 + rangenext($10,1) + (bool~) flip::$1 ← (byte) flip::c#1 != rangelast($10,1) if((bool~) flip::$1) goto flip::@2 to:flip::@4 flip::@4: scope:[flip] from flip::@2 @@ -109,8 +109,8 @@ flip::@4: scope:[flip] from flip::@2 (byte) flip::r#2 ← phi( flip::@2/(byte) flip::r#3 ) (byte) flip::dstIdx#4 ← phi( flip::@2/(byte) flip::dstIdx#1 ) (byte) flip::dstIdx#2 ← -- (byte) flip::dstIdx#4 - (byte) flip::r#1 ← (byte) flip::r#2 + rangenext(16,1) - (bool~) flip::$2 ← (byte) flip::r#1 != rangelast(16,1) + (byte) flip::r#1 ← (byte) flip::r#2 + rangenext($10,1) + (bool~) flip::$2 ← (byte) flip::r#1 != rangelast($10,1) if((bool~) flip::$2) goto flip::@1 to:flip::@5 flip::@5: scope:[flip] from flip::@4 @@ -119,8 +119,8 @@ flip::@5: scope:[flip] from flip::@4 flip::@3: scope:[flip] from flip::@3 flip::@5 (byte) flip::i#2 ← phi( flip::@3/(byte) flip::i#1 flip::@5/(byte) flip::i#0 ) *((byte[$0]) buffer1#0 + (byte) flip::i#2) ← *((byte[$1]) buffer2#0 + (byte) flip::i#2) - (byte) flip::i#1 ← (byte) flip::i#2 + rangenext(0,255) - (bool~) flip::$3 ← (byte) flip::i#1 != rangelast(0,255) + (byte) flip::i#1 ← (byte) flip::i#2 + rangenext(0,$ff) + (bool~) flip::$3 ← (byte) flip::i#1 != rangelast(0,$ff) if((bool~) flip::$3) goto flip::@3 to:flip::@return flip::@return: scope:[flip] from flip::@3 @@ -128,12 +128,12 @@ flip::@return: scope:[flip] from flip::@3 to:@return plot: scope:[plot] from main::@10 (byte*) SCREEN#1 ← phi( main::@10/(byte*) SCREEN#2 ) - (byte/word/signed word/dword/signed dword~) plot::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 5 * (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte/word/signed word/dword/signed dword~) plot::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 5 * (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*~) plot::$1 ← (byte*) SCREEN#1 + (byte/word/signed word/dword/signed dword~) plot::$0 - (byte*~) plot::$2 ← (byte*~) plot::$1 + (byte/signed byte/word/signed word/dword/signed dword) 12 + (byte*~) plot::$2 ← (byte*~) plot::$1 + (byte/signed byte/word/signed word/dword/signed dword) $c (byte*) plot::line#0 ← (byte*~) plot::$2 (byte) plot::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte) plot::y#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) plot::y#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 to:plot::@1 plot::@1: scope:[plot] from plot plot::@3 (byte) plot::y#4 ← phi( plot/(byte) plot::y#0 plot::@3/(byte) plot::y#1 ) @@ -149,17 +149,17 @@ plot::@2: scope:[plot] from plot::@1 plot::@2 *((byte*) plot::line#2 + (byte) plot::x#2) ← *((byte[$0]) buffer1#0 + (byte) plot::i#2) (byte) plot::i#1 ← ++ (byte) plot::i#2 (byte) plot::x#1 ← ++ (byte) plot::x#2 - (bool~) plot::$3 ← (byte) plot::x#1 < (byte/signed byte/word/signed word/dword/signed dword) 16 + (bool~) plot::$3 ← (byte) plot::x#1 < (byte/signed byte/word/signed word/dword/signed dword) $10 if((bool~) plot::$3) goto plot::@2 to:plot::@3 plot::@3: scope:[plot] from plot::@2 (byte) plot::i#4 ← phi( plot::@2/(byte) plot::i#1 ) (byte) plot::y#2 ← phi( plot::@2/(byte) plot::y#3 ) (byte*) plot::line#3 ← phi( plot::@2/(byte*) plot::line#2 ) - (byte*~) plot::$4 ← (byte*) plot::line#3 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) plot::$4 ← (byte*) plot::line#3 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) plot::line#1 ← (byte*~) plot::$4 - (byte) plot::y#1 ← (byte) plot::y#2 + rangenext(16,1) - (bool~) plot::$5 ← (byte) plot::y#1 != rangelast(16,1) + (byte) plot::y#1 ← (byte) plot::y#2 + rangenext($10,1) + (bool~) plot::$5 ← (byte) plot::y#1 != rangelast($10,1) if((bool~) plot::$5) goto plot::@1 to:plot::@return plot::@return: scope:[plot] from plot::@3 @@ -352,30 +352,30 @@ Redundant Phi (byte*) SCREEN#1 (byte*) SCREEN#2 Redundant Phi (byte*) plot::line#2 (byte*) plot::line#4 Redundant Phi (byte) plot::y#2 (byte) plot::y#4 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$1 [14] if(*((byte*) RASTER#1)!=(byte/word/signed word/dword/signed dword) 254) goto main::@3 -Simple Condition (bool~) main::$2 [17] if(*((byte*) RASTER#1)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -Simple Condition (bool~) main::$3 [21] if((byte) main::c#1!=rangelast(25,1)) goto main::@2 -Simple Condition (bool~) prepare::$0 [34] if((byte) prepare::i#1!=rangelast(0,255)) goto prepare::@1 -Simple Condition (bool~) flip::$1 [48] if((byte) flip::c#1!=rangelast(16,1)) goto flip::@2 -Simple Condition (bool~) flip::$2 [53] if((byte) flip::r#1!=rangelast(16,1)) goto flip::@1 -Simple Condition (bool~) flip::$3 [59] if((byte) flip::i#1!=rangelast(0,255)) goto flip::@3 -Simple Condition (bool~) plot::$3 [75] if((byte) plot::x#1<(byte/signed byte/word/signed word/dword/signed dword) 16) goto plot::@2 -Simple Condition (bool~) plot::$5 [81] if((byte) plot::y#1!=rangelast(16,1)) goto plot::@1 +Simple Condition (bool~) main::$1 [14] if(*((byte*) RASTER#1)!=(byte/word/signed word/dword/signed dword) $fe) goto main::@3 +Simple Condition (bool~) main::$2 [17] if(*((byte*) RASTER#1)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 +Simple Condition (bool~) main::$3 [21] if((byte) main::c#1!=rangelast($19,1)) goto main::@2 +Simple Condition (bool~) prepare::$0 [34] if((byte) prepare::i#1!=rangelast(0,$ff)) goto prepare::@1 +Simple Condition (bool~) flip::$1 [48] if((byte) flip::c#1!=rangelast($10,1)) goto flip::@2 +Simple Condition (bool~) flip::$2 [53] if((byte) flip::r#1!=rangelast($10,1)) goto flip::@1 +Simple Condition (bool~) flip::$3 [59] if((byte) flip::i#1!=rangelast(0,$ff)) goto flip::@3 +Simple Condition (bool~) plot::$3 [75] if((byte) plot::x#1<(byte/signed byte/word/signed word/dword/signed dword) $10) goto plot::@2 +Simple Condition (bool~) plot::$5 [81] if((byte) plot::y#1!=rangelast($10,1)) goto plot::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const word/signed word/dword/signed dword) $0 = 16*16 -Constant (const word/signed word/dword/signed dword) $1 = 16*16 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SCREEN#0 = ((byte*))1024 -Constant (const byte) main::c#0 = 25 +Constant (const word/signed word/dword/signed dword) $0 = $10*$10 +Constant (const word/signed word/dword/signed dword) $1 = $10*$10 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SCREEN#0 = ((byte*))$400 +Constant (const byte) main::c#0 = $19 Constant (const byte) prepare::i#0 = 0 Constant (const byte) flip::srcIdx#0 = 0 -Constant (const byte) flip::dstIdx#0 = 15 -Constant (const byte) flip::r#0 = 16 -Constant (const byte) flip::c#0 = 16 +Constant (const byte) flip::dstIdx#0 = $f +Constant (const byte) flip::r#0 = $10 +Constant (const byte) flip::c#0 = $10 Constant (const byte) flip::i#0 = 0 -Constant (const byte/word/signed word/dword/signed dword) plot::$0 = 5*40 +Constant (const byte/word/signed word/dword/signed dword) plot::$0 = 5*$28 Constant (const byte) plot::i#0 = 0 -Constant (const byte) plot::y#0 = 16 +Constant (const byte) plot::y#0 = $10 Constant (const byte) plot::x#0 = 0 Successful SSA optimization Pass2ConstantIdentification Constant (const byte[$0]) buffer1#0 = { fill( $0, 0) } @@ -388,17 +388,17 @@ Successful SSA optimization Pass2ConstantIfs Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks Resolved ranged next value main::c#1 ← -- main::c#4 to -- -Resolved ranged comparison value if(main::c#1!=rangelast(25,1)) goto main::@2 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(main::c#1!=rangelast($19,1)) goto main::@2 to (byte/signed byte/word/signed word/dword/signed dword) 0 Resolved ranged next value prepare::i#1 ← ++ prepare::i#2 to ++ -Resolved ranged comparison value if(prepare::i#1!=rangelast(0,255)) goto prepare::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(prepare::i#1!=rangelast(0,$ff)) goto prepare::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 Resolved ranged next value flip::c#1 ← -- flip::c#2 to -- -Resolved ranged comparison value if(flip::c#1!=rangelast(16,1)) goto flip::@2 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(flip::c#1!=rangelast($10,1)) goto flip::@2 to (byte/signed byte/word/signed word/dword/signed dword) 0 Resolved ranged next value flip::r#1 ← -- flip::r#4 to -- -Resolved ranged comparison value if(flip::r#1!=rangelast(16,1)) goto flip::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(flip::r#1!=rangelast($10,1)) goto flip::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 Resolved ranged next value flip::i#1 ← ++ flip::i#2 to ++ -Resolved ranged comparison value if(flip::i#1!=rangelast(0,255)) goto flip::@3 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(flip::i#1!=rangelast(0,$ff)) goto flip::@3 to (byte/signed byte/word/signed word/dword/signed dword) 0 Resolved ranged next value plot::y#1 ← -- plot::y#4 to -- -Resolved ranged comparison value if(plot::y#1!=rangelast(16,1)) goto plot::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(plot::y#1!=rangelast($10,1)) goto plot::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 Culled Empty Block (label) main::@9 Culled Empty Block (label) main::@2 Culled Empty Block (label) main::@11 @@ -418,7 +418,7 @@ Redundant Phi (byte*) SCREEN#7 (const byte*) SCREEN#0 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte*) plot::$1 = SCREEN#0 Successful SSA optimization Pass2ConstantIdentification -Constant (const byte*) plot::line#0 = plot::$1+plot::$0+12 +Constant (const byte*) plot::line#0 = plot::$1+plot::$0+$c Successful SSA optimization Pass2ConstantIdentification Culled Empty Block (label) main::@1 Successful SSA optimization Pass2CullEmptyBlocks @@ -433,21 +433,21 @@ Inlining constant with var siblings (const byte) plot::i#0 Inlining constant with var siblings (const byte) plot::y#0 Inlining constant with var siblings (const byte) plot::x#0 Inlining constant with var siblings (const byte*) plot::line#0 -Constant inlined plot::line#0 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 12 -Constant inlined plot::$0 = (byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined plot::line#0 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $c +Constant inlined plot::$0 = (byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined plot::$1 = (const byte*) SCREEN#0 Constant inlined plot::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined plot::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 16 -Constant inlined $0 = (byte/signed byte/word/signed word/dword/signed dword) 16*(byte/signed byte/word/signed word/dword/signed dword) 16 -Constant inlined $1 = (byte/signed byte/word/signed word/dword/signed dword) 16*(byte/signed byte/word/signed word/dword/signed dword) 16 -Constant inlined flip::dstIdx#0 = (byte/signed byte/word/signed word/dword/signed dword) 15 -Constant inlined flip::r#0 = (byte/signed byte/word/signed word/dword/signed dword) 16 -Constant inlined main::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 25 +Constant inlined plot::y#0 = (byte/signed byte/word/signed word/dword/signed dword) $10 +Constant inlined $0 = (byte/signed byte/word/signed word/dword/signed dword) $10*(byte/signed byte/word/signed word/dword/signed dword) $10 +Constant inlined $1 = (byte/signed byte/word/signed word/dword/signed dword) $10*(byte/signed byte/word/signed word/dword/signed dword) $10 +Constant inlined flip::dstIdx#0 = (byte/signed byte/word/signed word/dword/signed dword) $f +Constant inlined flip::r#0 = (byte/signed byte/word/signed word/dword/signed dword) $10 +Constant inlined main::c#0 = (byte/signed byte/word/signed word/dword/signed dword) $19 Constant inlined flip::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined flip::srcIdx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined prepare::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined plot::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined flip::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 16 +Constant inlined flip::c#0 = (byte/signed byte/word/signed word/dword/signed dword) $10 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@12(between main::@6 and main::@3) Added new block during phi lifting plot::@5(between plot::@3 and plot::@1) @@ -520,11 +520,11 @@ main: scope:[main] from @4 [5] call prepare to:main::@3 main::@3: scope:[main] from main main::@10 main::@3 main::@6 - [6] (byte) main::c#4 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 25 main::@6/(byte) main::c#1 main::@10/(byte/signed byte/word/signed word/dword/signed dword) 25 ) - [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@3 + [6] (byte) main::c#4 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) $19 main::@6/(byte) main::c#1 main::@10/(byte/signed byte/word/signed word/dword/signed dword) $19 ) + [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fe) goto main::@3 to:main::@4 main::@4: scope:[main] from main::@3 main::@4 - [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 + [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 to:main::@6 main::@6: scope:[main] from main::@4 [9] (byte) main::c#1 ← -- (byte) main::c#4 @@ -542,20 +542,20 @@ plot: scope:[plot] from main::@10 [15] phi() to:plot::@1 plot::@1: scope:[plot] from plot plot::@3 - [16] (byte) plot::y#4 ← phi( plot/(byte/signed byte/word/signed word/dword/signed dword) 16 plot::@3/(byte) plot::y#1 ) - [16] (byte*) plot::line#4 ← phi( plot/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 12 plot::@3/(byte*) plot::line#1 ) + [16] (byte) plot::y#4 ← phi( plot/(byte/signed byte/word/signed word/dword/signed dword) $10 plot::@3/(byte) plot::y#1 ) + [16] (byte*) plot::line#4 ← phi( plot/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $c plot::@3/(byte*) plot::line#1 ) [16] (byte) plot::i#3 ← phi( plot/(byte/signed byte/word/signed word/dword/signed dword) 0 plot::@3/(byte) plot::i#1 ) to:plot::@2 plot::@2: scope:[plot] from plot::@1 plot::@2 [17] (byte) plot::x#2 ← phi( plot::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 plot::@2/(byte) plot::x#1 ) [17] (byte) plot::i#2 ← phi( plot::@1/(byte) plot::i#3 plot::@2/(byte) plot::i#1 ) - [18] *((byte*) plot::line#4 + (byte) plot::x#2) ← *((const byte[16*16]) buffer1#0 + (byte) plot::i#2) + [18] *((byte*) plot::line#4 + (byte) plot::x#2) ← *((const byte[$10*$10]) buffer1#0 + (byte) plot::i#2) [19] (byte) plot::i#1 ← ++ (byte) plot::i#2 [20] (byte) plot::x#1 ← ++ (byte) plot::x#2 - [21] if((byte) plot::x#1<(byte/signed byte/word/signed word/dword/signed dword) 16) goto plot::@2 + [21] if((byte) plot::x#1<(byte/signed byte/word/signed word/dword/signed dword) $10) goto plot::@2 to:plot::@3 plot::@3: scope:[plot] from plot::@2 - [22] (byte*) plot::line#1 ← (byte*) plot::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [22] (byte*) plot::line#1 ← (byte*) plot::line#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 [23] (byte) plot::y#1 ← -- (byte) plot::y#4 [24] if((byte) plot::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto plot::@1 to:plot::@return @@ -566,17 +566,17 @@ flip: scope:[flip] from main::@7 [26] phi() to:flip::@1 flip::@1: scope:[flip] from flip flip::@4 - [27] (byte) flip::r#4 ← phi( flip/(byte/signed byte/word/signed word/dword/signed dword) 16 flip::@4/(byte) flip::r#1 ) - [27] (byte) flip::dstIdx#5 ← phi( flip/(byte/signed byte/word/signed word/dword/signed dword) 15 flip::@4/(byte) flip::dstIdx#2 ) + [27] (byte) flip::r#4 ← phi( flip/(byte/signed byte/word/signed word/dword/signed dword) $10 flip::@4/(byte) flip::r#1 ) + [27] (byte) flip::dstIdx#5 ← phi( flip/(byte/signed byte/word/signed word/dword/signed dword) $f flip::@4/(byte) flip::dstIdx#2 ) [27] (byte) flip::srcIdx#3 ← phi( flip/(byte/signed byte/word/signed word/dword/signed dword) 0 flip::@4/(byte) flip::srcIdx#1 ) to:flip::@2 flip::@2: scope:[flip] from flip::@1 flip::@2 - [28] (byte) flip::c#2 ← phi( flip::@1/(byte/signed byte/word/signed word/dword/signed dword) 16 flip::@2/(byte) flip::c#1 ) + [28] (byte) flip::c#2 ← phi( flip::@1/(byte/signed byte/word/signed word/dword/signed dword) $10 flip::@2/(byte) flip::c#1 ) [28] (byte) flip::dstIdx#3 ← phi( flip::@1/(byte) flip::dstIdx#5 flip::@2/(byte) flip::dstIdx#1 ) [28] (byte) flip::srcIdx#2 ← phi( flip::@1/(byte) flip::srcIdx#3 flip::@2/(byte) flip::srcIdx#1 ) - [29] *((const byte[16*16]) buffer2#0 + (byte) flip::dstIdx#3) ← *((const byte[16*16]) buffer1#0 + (byte) flip::srcIdx#2) + [29] *((const byte[$10*$10]) buffer2#0 + (byte) flip::dstIdx#3) ← *((const byte[$10*$10]) buffer1#0 + (byte) flip::srcIdx#2) [30] (byte) flip::srcIdx#1 ← ++ (byte) flip::srcIdx#2 - [31] (byte) flip::dstIdx#1 ← (byte) flip::dstIdx#3 + (byte/signed byte/word/signed word/dword/signed dword) 16 + [31] (byte) flip::dstIdx#1 ← (byte) flip::dstIdx#3 + (byte/signed byte/word/signed word/dword/signed dword) $10 [32] (byte) flip::c#1 ← -- (byte) flip::c#2 [33] if((byte) flip::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto flip::@2 to:flip::@4 @@ -587,7 +587,7 @@ flip::@4: scope:[flip] from flip::@2 to:flip::@3 flip::@3: scope:[flip] from flip::@3 flip::@4 [37] (byte) flip::i#2 ← phi( flip::@3/(byte) flip::i#1 flip::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [38] *((const byte[16*16]) buffer1#0 + (byte) flip::i#2) ← *((const byte[16*16]) buffer2#0 + (byte) flip::i#2) + [38] *((const byte[$10*$10]) buffer1#0 + (byte) flip::i#2) ← *((const byte[$10*$10]) buffer2#0 + (byte) flip::i#2) [39] (byte) flip::i#1 ← ++ (byte) flip::i#2 [40] if((byte) flip::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto flip::@3 to:flip::@return @@ -599,7 +599,7 @@ prepare: scope:[prepare] from main to:prepare::@1 prepare::@1: scope:[prepare] from prepare prepare::@1 [43] (byte) prepare::i#2 ← phi( prepare/(byte/signed byte/word/signed word/dword/signed dword) 0 prepare::@1/(byte) prepare::i#1 ) - [44] *((const byte[16*16]) buffer1#0 + (byte) prepare::i#2) ← (byte) prepare::i#2 + [44] *((const byte[$10*$10]) buffer1#0 + (byte) prepare::i#2) ← (byte) prepare::i#2 [45] (byte) prepare::i#1 ← ++ (byte) prepare::i#2 [46] if((byte) prepare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto prepare::@1 to:prepare::@return @@ -611,8 +611,8 @@ prepare::@return: scope:[prepare] from prepare::@1 VARIABLE REGISTER WEIGHTS (byte*) RASTER (byte*) SCREEN -(byte[16*16]) buffer1 -(byte[16*16]) buffer2 +(byte[$10*$10]) buffer1 +(byte[$10*$10]) buffer2 (void()) flip() (byte) flip::c (byte) flip::c#1 1501.5 @@ -726,7 +726,7 @@ main: { //SEG13 [6] phi from main main::@10 to main::@3 [phi:main/main::@10->main::@3] b3_from_main: b3_from_b10: - //SEG14 [6] phi (byte) main::c#4 = (byte/signed byte/word/signed word/dword/signed dword) 25 [phi:main/main::@10->main::@3#0] -- vbuz1=vbuc1 + //SEG14 [6] phi (byte) main::c#4 = (byte/signed byte/word/signed word/dword/signed dword) $19 [phi:main/main::@10->main::@3#0] -- vbuz1=vbuc1 lda #$19 sta c jmp b3 @@ -739,14 +739,14 @@ main: { jmp b3 //SEG18 main::@3 b3: - //SEG19 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG19 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fe) goto main::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$fe bne b3_from_b3 jmp b4 //SEG20 main::@4 b4: - //SEG21 [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG21 [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -788,10 +788,10 @@ plot: { .label y = 5 //SEG34 [16] phi from plot to plot::@1 [phi:plot->plot::@1] b1_from_plot: - //SEG35 [16] phi (byte) plot::y#4 = (byte/signed byte/word/signed word/dword/signed dword) 16 [phi:plot->plot::@1#0] -- vbuz1=vbuc1 + //SEG35 [16] phi (byte) plot::y#4 = (byte/signed byte/word/signed word/dword/signed dword) $10 [phi:plot->plot::@1#0] -- vbuz1=vbuc1 lda #$10 sta y - //SEG36 [16] phi (byte*) plot::line#4 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 12 [phi:plot->plot::@1#1] -- pbuz1=pbuc1 + //SEG36 [16] phi (byte*) plot::line#4 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $c [phi:plot->plot::@1#1] -- pbuz1=pbuc1 lda #SCREEN+5*$28+$c @@ -822,7 +822,7 @@ plot: { jmp b2 //SEG49 plot::@2 b2: - //SEG50 [18] *((byte*) plot::line#4 + (byte) plot::x#2) ← *((const byte[16*16]) buffer1#0 + (byte) plot::i#2) -- pbuz1_derefidx_vbuz2=pbuc1_derefidx_vbuz3 + //SEG50 [18] *((byte*) plot::line#4 + (byte) plot::x#2) ← *((const byte[$10*$10]) buffer1#0 + (byte) plot::i#2) -- pbuz1_derefidx_vbuz2=pbuc1_derefidx_vbuz3 ldy i lda buffer1,y ldy x @@ -831,14 +831,14 @@ plot: { inc i //SEG52 [20] (byte) plot::x#1 ← ++ (byte) plot::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG53 [21] if((byte) plot::x#1<(byte/signed byte/word/signed word/dword/signed dword) 16) goto plot::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG53 [21] if((byte) plot::x#1<(byte/signed byte/word/signed word/dword/signed dword) $10) goto plot::@2 -- vbuz1_lt_vbuc1_then_la1 lda x cmp #$10 bcc b2_from_b2 jmp b3 //SEG54 plot::@3 b3: - //SEG55 [22] (byte*) plot::line#1 ← (byte*) plot::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG55 [22] (byte*) plot::line#1 ← (byte*) plot::line#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda line clc adc #$28 @@ -868,10 +868,10 @@ flip: { .label i = $c //SEG61 [27] phi from flip to flip::@1 [phi:flip->flip::@1] b1_from_flip: - //SEG62 [27] phi (byte) flip::r#4 = (byte/signed byte/word/signed word/dword/signed dword) 16 [phi:flip->flip::@1#0] -- vbuz1=vbuc1 + //SEG62 [27] phi (byte) flip::r#4 = (byte/signed byte/word/signed word/dword/signed dword) $10 [phi:flip->flip::@1#0] -- vbuz1=vbuc1 lda #$10 sta r - //SEG63 [27] phi (byte) flip::dstIdx#5 = (byte/signed byte/word/signed word/dword/signed dword) 15 [phi:flip->flip::@1#1] -- vbuz1=vbuc1 + //SEG63 [27] phi (byte) flip::dstIdx#5 = (byte/signed byte/word/signed word/dword/signed dword) $f [phi:flip->flip::@1#1] -- vbuz1=vbuc1 lda #$f sta dstIdx //SEG64 [27] phi (byte) flip::srcIdx#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:flip->flip::@1#2] -- vbuz1=vbuc1 @@ -888,7 +888,7 @@ flip: { b1: //SEG70 [28] phi from flip::@1 to flip::@2 [phi:flip::@1->flip::@2] b2_from_b1: - //SEG71 [28] phi (byte) flip::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 16 [phi:flip::@1->flip::@2#0] -- vbuz1=vbuc1 + //SEG71 [28] phi (byte) flip::c#2 = (byte/signed byte/word/signed word/dword/signed dword) $10 [phi:flip::@1->flip::@2#0] -- vbuz1=vbuc1 lda #$10 sta c //SEG72 [28] phi (byte) flip::dstIdx#3 = (byte) flip::dstIdx#5 [phi:flip::@1->flip::@2#1] -- register_copy @@ -902,14 +902,14 @@ flip: { jmp b2 //SEG78 flip::@2 b2: - //SEG79 [29] *((const byte[16*16]) buffer2#0 + (byte) flip::dstIdx#3) ← *((const byte[16*16]) buffer1#0 + (byte) flip::srcIdx#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2 + //SEG79 [29] *((const byte[$10*$10]) buffer2#0 + (byte) flip::dstIdx#3) ← *((const byte[$10*$10]) buffer1#0 + (byte) flip::srcIdx#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2 ldy srcIdx lda buffer1,y ldy dstIdx sta buffer2,y //SEG80 [30] (byte) flip::srcIdx#1 ← ++ (byte) flip::srcIdx#2 -- vbuz1=_inc_vbuz1 inc srcIdx - //SEG81 [31] (byte) flip::dstIdx#1 ← (byte) flip::dstIdx#3 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz1_plus_vbuc1 + //SEG81 [31] (byte) flip::dstIdx#1 ← (byte) flip::dstIdx#3 + (byte/signed byte/word/signed word/dword/signed dword) $10 -- vbuz1=vbuz1_plus_vbuc1 lda #$10 clc adc dstIdx @@ -943,7 +943,7 @@ flip: { jmp b3 //SEG92 flip::@3 b3: - //SEG93 [38] *((const byte[16*16]) buffer1#0 + (byte) flip::i#2) ← *((const byte[16*16]) buffer2#0 + (byte) flip::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 + //SEG93 [38] *((const byte[$10*$10]) buffer1#0 + (byte) flip::i#2) ← *((const byte[$10*$10]) buffer2#0 + (byte) flip::i#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 ldy i lda buffer2,y sta buffer1,y @@ -975,7 +975,7 @@ prepare: { jmp b1 //SEG103 prepare::@1 b1: - //SEG104 [44] *((const byte[16*16]) buffer1#0 + (byte) prepare::i#2) ← (byte) prepare::i#2 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG104 [44] *((const byte[$10*$10]) buffer1#0 + (byte) prepare::i#2) ← (byte) prepare::i#2 -- pbuc1_derefidx_vbuz1=vbuz1 ldy i tya sta buffer1,y @@ -995,29 +995,29 @@ prepare: { buffer2: .fill $10*$10, 0 REGISTER UPLIFT POTENTIAL REGISTERS -Statement [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@3 [ main::c#4 ] ( main:2 [ main::c#4 ] ) always clobbers reg byte a +Statement [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fe) goto main::@3 [ main::c#4 ] ( main:2 [ main::c#4 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::c#4 main::c#1 ] -Statement [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ main::c#4 ] ( main:2 [ main::c#4 ] ) always clobbers reg byte a -Statement [18] *((byte*) plot::line#4 + (byte) plot::x#2) ← *((const byte[16*16]) buffer1#0 + (byte) plot::i#2) [ plot::line#4 plot::y#4 plot::i#2 plot::x#2 ] ( main:2::plot:14 [ plot::line#4 plot::y#4 plot::i#2 plot::x#2 ] ) always clobbers reg byte a +Statement [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 [ main::c#4 ] ( main:2 [ main::c#4 ] ) always clobbers reg byte a +Statement [18] *((byte*) plot::line#4 + (byte) plot::x#2) ← *((const byte[$10*$10]) buffer1#0 + (byte) plot::i#2) [ plot::line#4 plot::y#4 plot::i#2 plot::x#2 ] ( main:2::plot:14 [ plot::line#4 plot::y#4 plot::i#2 plot::x#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ plot::y#4 plot::y#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:6 [ plot::i#2 plot::i#3 plot::i#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:7 [ plot::x#2 plot::x#1 ] -Statement [22] (byte*) plot::line#1 ← (byte*) plot::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ plot::y#4 plot::i#1 plot::line#1 ] ( main:2::plot:14 [ plot::y#4 plot::i#1 plot::line#1 ] ) always clobbers reg byte a -Statement [29] *((const byte[16*16]) buffer2#0 + (byte) flip::dstIdx#3) ← *((const byte[16*16]) buffer1#0 + (byte) flip::srcIdx#2) [ flip::r#4 flip::srcIdx#2 flip::dstIdx#3 flip::c#2 ] ( main:2::flip:12 [ flip::r#4 flip::srcIdx#2 flip::dstIdx#3 flip::c#2 ] ) always clobbers reg byte a +Statement [22] (byte*) plot::line#1 ← (byte*) plot::line#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ plot::y#4 plot::i#1 plot::line#1 ] ( main:2::plot:14 [ plot::y#4 plot::i#1 plot::line#1 ] ) always clobbers reg byte a +Statement [29] *((const byte[$10*$10]) buffer2#0 + (byte) flip::dstIdx#3) ← *((const byte[$10*$10]) buffer1#0 + (byte) flip::srcIdx#2) [ flip::r#4 flip::srcIdx#2 flip::dstIdx#3 flip::c#2 ] ( main:2::flip:12 [ flip::r#4 flip::srcIdx#2 flip::dstIdx#3 flip::c#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:8 [ flip::r#4 flip::r#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:9 [ flip::srcIdx#2 flip::srcIdx#3 flip::srcIdx#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:10 [ flip::dstIdx#3 flip::dstIdx#5 flip::dstIdx#2 flip::dstIdx#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:11 [ flip::c#2 flip::c#1 ] -Statement [31] (byte) flip::dstIdx#1 ← (byte) flip::dstIdx#3 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ flip::r#4 flip::srcIdx#1 flip::c#2 flip::dstIdx#1 ] ( main:2::flip:12 [ flip::r#4 flip::srcIdx#1 flip::c#2 flip::dstIdx#1 ] ) always clobbers reg byte a -Statement [38] *((const byte[16*16]) buffer1#0 + (byte) flip::i#2) ← *((const byte[16*16]) buffer2#0 + (byte) flip::i#2) [ flip::i#2 ] ( main:2::flip:12 [ flip::i#2 ] ) always clobbers reg byte a +Statement [31] (byte) flip::dstIdx#1 ← (byte) flip::dstIdx#3 + (byte/signed byte/word/signed word/dword/signed dword) $10 [ flip::r#4 flip::srcIdx#1 flip::c#2 flip::dstIdx#1 ] ( main:2::flip:12 [ flip::r#4 flip::srcIdx#1 flip::c#2 flip::dstIdx#1 ] ) always clobbers reg byte a +Statement [38] *((const byte[$10*$10]) buffer1#0 + (byte) flip::i#2) ← *((const byte[$10*$10]) buffer2#0 + (byte) flip::i#2) [ flip::i#2 ] ( main:2::flip:12 [ flip::i#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:12 [ flip::i#2 flip::i#1 ] -Statement [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@3 [ main::c#4 ] ( main:2 [ main::c#4 ] ) always clobbers reg byte a -Statement [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ main::c#4 ] ( main:2 [ main::c#4 ] ) always clobbers reg byte a -Statement [18] *((byte*) plot::line#4 + (byte) plot::x#2) ← *((const byte[16*16]) buffer1#0 + (byte) plot::i#2) [ plot::line#4 plot::y#4 plot::i#2 plot::x#2 ] ( main:2::plot:14 [ plot::line#4 plot::y#4 plot::i#2 plot::x#2 ] ) always clobbers reg byte a -Statement [22] (byte*) plot::line#1 ← (byte*) plot::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ plot::y#4 plot::i#1 plot::line#1 ] ( main:2::plot:14 [ plot::y#4 plot::i#1 plot::line#1 ] ) always clobbers reg byte a -Statement [29] *((const byte[16*16]) buffer2#0 + (byte) flip::dstIdx#3) ← *((const byte[16*16]) buffer1#0 + (byte) flip::srcIdx#2) [ flip::r#4 flip::srcIdx#2 flip::dstIdx#3 flip::c#2 ] ( main:2::flip:12 [ flip::r#4 flip::srcIdx#2 flip::dstIdx#3 flip::c#2 ] ) always clobbers reg byte a -Statement [31] (byte) flip::dstIdx#1 ← (byte) flip::dstIdx#3 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ flip::r#4 flip::srcIdx#1 flip::c#2 flip::dstIdx#1 ] ( main:2::flip:12 [ flip::r#4 flip::srcIdx#1 flip::c#2 flip::dstIdx#1 ] ) always clobbers reg byte a -Statement [38] *((const byte[16*16]) buffer1#0 + (byte) flip::i#2) ← *((const byte[16*16]) buffer2#0 + (byte) flip::i#2) [ flip::i#2 ] ( main:2::flip:12 [ flip::i#2 ] ) always clobbers reg byte a +Statement [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fe) goto main::@3 [ main::c#4 ] ( main:2 [ main::c#4 ] ) always clobbers reg byte a +Statement [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 [ main::c#4 ] ( main:2 [ main::c#4 ] ) always clobbers reg byte a +Statement [18] *((byte*) plot::line#4 + (byte) plot::x#2) ← *((const byte[$10*$10]) buffer1#0 + (byte) plot::i#2) [ plot::line#4 plot::y#4 plot::i#2 plot::x#2 ] ( main:2::plot:14 [ plot::line#4 plot::y#4 plot::i#2 plot::x#2 ] ) always clobbers reg byte a +Statement [22] (byte*) plot::line#1 ← (byte*) plot::line#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ plot::y#4 plot::i#1 plot::line#1 ] ( main:2::plot:14 [ plot::y#4 plot::i#1 plot::line#1 ] ) always clobbers reg byte a +Statement [29] *((const byte[$10*$10]) buffer2#0 + (byte) flip::dstIdx#3) ← *((const byte[$10*$10]) buffer1#0 + (byte) flip::srcIdx#2) [ flip::r#4 flip::srcIdx#2 flip::dstIdx#3 flip::c#2 ] ( main:2::flip:12 [ flip::r#4 flip::srcIdx#2 flip::dstIdx#3 flip::c#2 ] ) always clobbers reg byte a +Statement [31] (byte) flip::dstIdx#1 ← (byte) flip::dstIdx#3 + (byte/signed byte/word/signed word/dword/signed dword) $10 [ flip::r#4 flip::srcIdx#1 flip::c#2 flip::dstIdx#1 ] ( main:2::flip:12 [ flip::r#4 flip::srcIdx#1 flip::c#2 flip::dstIdx#1 ] ) always clobbers reg byte a +Statement [38] *((const byte[$10*$10]) buffer1#0 + (byte) flip::i#2) ← *((const byte[$10*$10]) buffer2#0 + (byte) flip::i#2) [ flip::i#2 ] ( main:2::flip:12 [ flip::i#2 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ main::c#4 main::c#1 ] : zp ZP_BYTE:2 , reg byte x , reg byte y , Potential registers zp ZP_WORD:3 [ plot::line#4 plot::line#1 ] : zp ZP_WORD:3 , Potential registers zp ZP_BYTE:5 [ plot::y#4 plot::y#1 ] : zp ZP_BYTE:5 , reg byte x , reg byte y , @@ -1088,7 +1088,7 @@ main: { //SEG13 [6] phi from main main::@10 to main::@3 [phi:main/main::@10->main::@3] b3_from_main: b3_from_b10: - //SEG14 [6] phi (byte) main::c#4 = (byte/signed byte/word/signed word/dword/signed dword) 25 [phi:main/main::@10->main::@3#0] -- vbuxx=vbuc1 + //SEG14 [6] phi (byte) main::c#4 = (byte/signed byte/word/signed word/dword/signed dword) $19 [phi:main/main::@10->main::@3#0] -- vbuxx=vbuc1 ldx #$19 jmp b3 //SEG15 [6] phi from main::@3 to main::@3 [phi:main::@3->main::@3] @@ -1100,14 +1100,14 @@ main: { jmp b3 //SEG18 main::@3 b3: - //SEG19 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG19 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fe) goto main::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$fe bne b3_from_b3 jmp b4 //SEG20 main::@4 b4: - //SEG21 [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG21 [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -1146,10 +1146,10 @@ plot: { .label y = 4 //SEG34 [16] phi from plot to plot::@1 [phi:plot->plot::@1] b1_from_plot: - //SEG35 [16] phi (byte) plot::y#4 = (byte/signed byte/word/signed word/dword/signed dword) 16 [phi:plot->plot::@1#0] -- vbuz1=vbuc1 + //SEG35 [16] phi (byte) plot::y#4 = (byte/signed byte/word/signed word/dword/signed dword) $10 [phi:plot->plot::@1#0] -- vbuz1=vbuc1 lda #$10 sta y - //SEG36 [16] phi (byte*) plot::line#4 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 12 [phi:plot->plot::@1#1] -- pbuz1=pbuc1 + //SEG36 [16] phi (byte*) plot::line#4 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $c [phi:plot->plot::@1#1] -- pbuz1=pbuc1 lda #SCREEN+5*$28+$c @@ -1178,20 +1178,20 @@ plot: { jmp b2 //SEG49 plot::@2 b2: - //SEG50 [18] *((byte*) plot::line#4 + (byte) plot::x#2) ← *((const byte[16*16]) buffer1#0 + (byte) plot::i#2) -- pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuxx + //SEG50 [18] *((byte*) plot::line#4 + (byte) plot::x#2) ← *((const byte[$10*$10]) buffer1#0 + (byte) plot::i#2) -- pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuxx lda buffer1,x sta (line),y //SEG51 [19] (byte) plot::i#1 ← ++ (byte) plot::i#2 -- vbuxx=_inc_vbuxx inx //SEG52 [20] (byte) plot::x#1 ← ++ (byte) plot::x#2 -- vbuyy=_inc_vbuyy iny - //SEG53 [21] if((byte) plot::x#1<(byte/signed byte/word/signed word/dword/signed dword) 16) goto plot::@2 -- vbuyy_lt_vbuc1_then_la1 + //SEG53 [21] if((byte) plot::x#1<(byte/signed byte/word/signed word/dword/signed dword) $10) goto plot::@2 -- vbuyy_lt_vbuc1_then_la1 cpy #$10 bcc b2_from_b2 jmp b3 //SEG54 plot::@3 b3: - //SEG55 [22] (byte*) plot::line#1 ← (byte*) plot::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG55 [22] (byte*) plot::line#1 ← (byte*) plot::line#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda line clc adc #$28 @@ -1218,10 +1218,10 @@ flip: { .label r = 4 //SEG61 [27] phi from flip to flip::@1 [phi:flip->flip::@1] b1_from_flip: - //SEG62 [27] phi (byte) flip::r#4 = (byte/signed byte/word/signed word/dword/signed dword) 16 [phi:flip->flip::@1#0] -- vbuz1=vbuc1 + //SEG62 [27] phi (byte) flip::r#4 = (byte/signed byte/word/signed word/dword/signed dword) $10 [phi:flip->flip::@1#0] -- vbuz1=vbuc1 lda #$10 sta r - //SEG63 [27] phi (byte) flip::dstIdx#5 = (byte/signed byte/word/signed word/dword/signed dword) 15 [phi:flip->flip::@1#1] -- vbuxx=vbuc1 + //SEG63 [27] phi (byte) flip::dstIdx#5 = (byte/signed byte/word/signed word/dword/signed dword) $f [phi:flip->flip::@1#1] -- vbuxx=vbuc1 ldx #$f //SEG64 [27] phi (byte) flip::srcIdx#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:flip->flip::@1#2] -- vbuyy=vbuc1 ldy #0 @@ -1236,7 +1236,7 @@ flip: { b1: //SEG70 [28] phi from flip::@1 to flip::@2 [phi:flip::@1->flip::@2] b2_from_b1: - //SEG71 [28] phi (byte) flip::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 16 [phi:flip::@1->flip::@2#0] -- vbuz1=vbuc1 + //SEG71 [28] phi (byte) flip::c#2 = (byte/signed byte/word/signed word/dword/signed dword) $10 [phi:flip::@1->flip::@2#0] -- vbuz1=vbuc1 lda #$10 sta c //SEG72 [28] phi (byte) flip::dstIdx#3 = (byte) flip::dstIdx#5 [phi:flip::@1->flip::@2#1] -- register_copy @@ -1250,12 +1250,12 @@ flip: { jmp b2 //SEG78 flip::@2 b2: - //SEG79 [29] *((const byte[16*16]) buffer2#0 + (byte) flip::dstIdx#3) ← *((const byte[16*16]) buffer1#0 + (byte) flip::srcIdx#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy + //SEG79 [29] *((const byte[$10*$10]) buffer2#0 + (byte) flip::dstIdx#3) ← *((const byte[$10*$10]) buffer1#0 + (byte) flip::srcIdx#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy lda buffer1,y sta buffer2,x //SEG80 [30] (byte) flip::srcIdx#1 ← ++ (byte) flip::srcIdx#2 -- vbuyy=_inc_vbuyy iny - //SEG81 [31] (byte) flip::dstIdx#1 ← (byte) flip::dstIdx#3 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuxx=vbuxx_plus_vbuc1 + //SEG81 [31] (byte) flip::dstIdx#1 ← (byte) flip::dstIdx#3 + (byte/signed byte/word/signed word/dword/signed dword) $10 -- vbuxx=vbuxx_plus_vbuc1 txa clc adc #$10 @@ -1288,7 +1288,7 @@ flip: { jmp b3 //SEG92 flip::@3 b3: - //SEG93 [38] *((const byte[16*16]) buffer1#0 + (byte) flip::i#2) ← *((const byte[16*16]) buffer2#0 + (byte) flip::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG93 [38] *((const byte[$10*$10]) buffer1#0 + (byte) flip::i#2) ← *((const byte[$10*$10]) buffer2#0 + (byte) flip::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda buffer2,x sta buffer1,x //SEG94 [39] (byte) flip::i#1 ← ++ (byte) flip::i#2 -- vbuxx=_inc_vbuxx @@ -1316,7 +1316,7 @@ prepare: { jmp b1 //SEG103 prepare::@1 b1: - //SEG104 [44] *((const byte[16*16]) buffer1#0 + (byte) prepare::i#2) ← (byte) prepare::i#2 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG104 [44] *((const byte[$10*$10]) buffer1#0 + (byte) prepare::i#2) ← (byte) prepare::i#2 -- pbuc1_derefidx_vbuxx=vbuxx txa sta buffer1,x //SEG105 [45] (byte) prepare::i#1 ← ++ (byte) prepare::i#2 -- vbuxx=_inc_vbuxx @@ -1422,13 +1422,13 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 -(byte[16*16]) buffer1 -(const byte[16*16]) buffer1#0 buffer1 = { fill( 16*16, 0) } -(byte[16*16]) buffer2 -(const byte[16*16]) buffer2#0 buffer2 = { fill( 16*16, 0) } +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 +(byte[$10*$10]) buffer1 +(const byte[$10*$10]) buffer1#0 buffer1 = { fill( $10*$10, 0) } +(byte[$10*$10]) buffer2 +(const byte[$10*$10]) buffer2#0 buffer2 = { fill( $10*$10, 0) } (void()) flip() (label) flip::@1 (label) flip::@2 @@ -1524,20 +1524,20 @@ main: { jsr prepare //SEG13 [6] phi from main main::@10 to main::@3 [phi:main/main::@10->main::@3] b1: - //SEG14 [6] phi (byte) main::c#4 = (byte/signed byte/word/signed word/dword/signed dword) 25 [phi:main/main::@10->main::@3#0] -- vbuxx=vbuc1 + //SEG14 [6] phi (byte) main::c#4 = (byte/signed byte/word/signed word/dword/signed dword) $19 [phi:main/main::@10->main::@3#0] -- vbuxx=vbuc1 ldx #$19 //SEG15 [6] phi from main::@3 to main::@3 [phi:main::@3->main::@3] //SEG16 [6] phi from main::@6 to main::@3 [phi:main::@6->main::@3] //SEG17 [6] phi (byte) main::c#4 = (byte) main::c#1 [phi:main::@6->main::@3#0] -- register_copy //SEG18 main::@3 b3: - //SEG19 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG19 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $fe) goto main::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$fe bne b3 //SEG20 main::@4 b4: - //SEG21 [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG21 [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -1565,10 +1565,10 @@ plot: { .label line = 2 .label y = 4 //SEG34 [16] phi from plot to plot::@1 [phi:plot->plot::@1] - //SEG35 [16] phi (byte) plot::y#4 = (byte/signed byte/word/signed word/dword/signed dword) 16 [phi:plot->plot::@1#0] -- vbuz1=vbuc1 + //SEG35 [16] phi (byte) plot::y#4 = (byte/signed byte/word/signed word/dword/signed dword) $10 [phi:plot->plot::@1#0] -- vbuz1=vbuc1 lda #$10 sta y - //SEG36 [16] phi (byte*) plot::line#4 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 12 [phi:plot->plot::@1#1] -- pbuz1=pbuc1 + //SEG36 [16] phi (byte*) plot::line#4 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $c [phi:plot->plot::@1#1] -- pbuz1=pbuc1 lda #SCREEN+5*$28+$c @@ -1590,18 +1590,18 @@ plot: { //SEG48 [17] phi (byte) plot::i#2 = (byte) plot::i#1 [phi:plot::@2->plot::@2#1] -- register_copy //SEG49 plot::@2 b2: - //SEG50 [18] *((byte*) plot::line#4 + (byte) plot::x#2) ← *((const byte[16*16]) buffer1#0 + (byte) plot::i#2) -- pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuxx + //SEG50 [18] *((byte*) plot::line#4 + (byte) plot::x#2) ← *((const byte[$10*$10]) buffer1#0 + (byte) plot::i#2) -- pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuxx lda buffer1,x sta (line),y //SEG51 [19] (byte) plot::i#1 ← ++ (byte) plot::i#2 -- vbuxx=_inc_vbuxx inx //SEG52 [20] (byte) plot::x#1 ← ++ (byte) plot::x#2 -- vbuyy=_inc_vbuyy iny - //SEG53 [21] if((byte) plot::x#1<(byte/signed byte/word/signed word/dword/signed dword) 16) goto plot::@2 -- vbuyy_lt_vbuc1_then_la1 + //SEG53 [21] if((byte) plot::x#1<(byte/signed byte/word/signed word/dword/signed dword) $10) goto plot::@2 -- vbuyy_lt_vbuc1_then_la1 cpy #$10 bcc b2 //SEG54 plot::@3 - //SEG55 [22] (byte*) plot::line#1 ← (byte*) plot::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG55 [22] (byte*) plot::line#1 ← (byte*) plot::line#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda line clc adc #$28 @@ -1625,10 +1625,10 @@ flip: { .label c = 5 .label r = 4 //SEG61 [27] phi from flip to flip::@1 [phi:flip->flip::@1] - //SEG62 [27] phi (byte) flip::r#4 = (byte/signed byte/word/signed word/dword/signed dword) 16 [phi:flip->flip::@1#0] -- vbuz1=vbuc1 + //SEG62 [27] phi (byte) flip::r#4 = (byte/signed byte/word/signed word/dword/signed dword) $10 [phi:flip->flip::@1#0] -- vbuz1=vbuc1 lda #$10 sta r - //SEG63 [27] phi (byte) flip::dstIdx#5 = (byte/signed byte/word/signed word/dword/signed dword) 15 [phi:flip->flip::@1#1] -- vbuxx=vbuc1 + //SEG63 [27] phi (byte) flip::dstIdx#5 = (byte/signed byte/word/signed word/dword/signed dword) $f [phi:flip->flip::@1#1] -- vbuxx=vbuc1 ldx #$f //SEG64 [27] phi (byte) flip::srcIdx#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:flip->flip::@1#2] -- vbuyy=vbuc1 ldy #0 @@ -1639,7 +1639,7 @@ flip: { //SEG69 flip::@1 b1: //SEG70 [28] phi from flip::@1 to flip::@2 [phi:flip::@1->flip::@2] - //SEG71 [28] phi (byte) flip::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 16 [phi:flip::@1->flip::@2#0] -- vbuz1=vbuc1 + //SEG71 [28] phi (byte) flip::c#2 = (byte/signed byte/word/signed word/dword/signed dword) $10 [phi:flip::@1->flip::@2#0] -- vbuz1=vbuc1 lda #$10 sta c //SEG72 [28] phi (byte) flip::dstIdx#3 = (byte) flip::dstIdx#5 [phi:flip::@1->flip::@2#1] -- register_copy @@ -1650,12 +1650,12 @@ flip: { //SEG77 [28] phi (byte) flip::srcIdx#2 = (byte) flip::srcIdx#1 [phi:flip::@2->flip::@2#2] -- register_copy //SEG78 flip::@2 b2: - //SEG79 [29] *((const byte[16*16]) buffer2#0 + (byte) flip::dstIdx#3) ← *((const byte[16*16]) buffer1#0 + (byte) flip::srcIdx#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy + //SEG79 [29] *((const byte[$10*$10]) buffer2#0 + (byte) flip::dstIdx#3) ← *((const byte[$10*$10]) buffer1#0 + (byte) flip::srcIdx#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy lda buffer1,y sta buffer2,x //SEG80 [30] (byte) flip::srcIdx#1 ← ++ (byte) flip::srcIdx#2 -- vbuyy=_inc_vbuyy iny - //SEG81 [31] (byte) flip::dstIdx#1 ← (byte) flip::dstIdx#3 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuxx=vbuxx_plus_vbuc1 + //SEG81 [31] (byte) flip::dstIdx#1 ← (byte) flip::dstIdx#3 + (byte/signed byte/word/signed word/dword/signed dword) $10 -- vbuxx=vbuxx_plus_vbuc1 txa clc adc #$10 @@ -1682,7 +1682,7 @@ flip: { //SEG91 [37] phi (byte) flip::i#2 = (byte) flip::i#1 [phi:flip::@3->flip::@3#0] -- register_copy //SEG92 flip::@3 b3: - //SEG93 [38] *((const byte[16*16]) buffer1#0 + (byte) flip::i#2) ← *((const byte[16*16]) buffer2#0 + (byte) flip::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + //SEG93 [38] *((const byte[$10*$10]) buffer1#0 + (byte) flip::i#2) ← *((const byte[$10*$10]) buffer2#0 + (byte) flip::i#2) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda buffer2,x sta buffer1,x //SEG94 [39] (byte) flip::i#1 ← ++ (byte) flip::i#2 -- vbuxx=_inc_vbuxx @@ -1704,7 +1704,7 @@ prepare: { //SEG102 [43] phi (byte) prepare::i#2 = (byte) prepare::i#1 [phi:prepare::@1->prepare::@1#0] -- register_copy //SEG103 prepare::@1 b1: - //SEG104 [44] *((const byte[16*16]) buffer1#0 + (byte) prepare::i#2) ← (byte) prepare::i#2 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG104 [44] *((const byte[$10*$10]) buffer1#0 + (byte) prepare::i#2) ← (byte) prepare::i#2 -- pbuc1_derefidx_vbuxx=vbuxx txa sta buffer1,x //SEG105 [45] (byte) prepare::i#1 ← ++ (byte) prepare::i#2 -- vbuxx=_inc_vbuxx diff --git a/src/test/ref/flipper-rex2.sym b/src/test/ref/flipper-rex2.sym index d57fa8ea7..39e7baacf 100644 --- a/src/test/ref/flipper-rex2.sym +++ b/src/test/ref/flipper-rex2.sym @@ -2,13 +2,13 @@ (label) @begin (label) @end (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 -(byte[16*16]) buffer1 -(const byte[16*16]) buffer1#0 buffer1 = { fill( 16*16, 0) } -(byte[16*16]) buffer2 -(const byte[16*16]) buffer2#0 buffer2 = { fill( 16*16, 0) } +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 +(byte[$10*$10]) buffer1 +(const byte[$10*$10]) buffer1#0 buffer1 = { fill( $10*$10, 0) } +(byte[$10*$10]) buffer2 +(const byte[$10*$10]) buffer2#0 buffer2 = { fill( $10*$10, 0) } (void()) flip() (label) flip::@1 (label) flip::@2 diff --git a/src/test/ref/forclassicmin.cfg b/src/test/ref/forclassicmin.cfg index 475e020ea..bc45eca2f 100644 --- a/src/test/ref/forclassicmin.cfg +++ b/src/test/ref/forclassicmin.cfg @@ -14,7 +14,7 @@ main::@1: scope:[main] from main main::@1 [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::i#1 ) [6] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte) main::i#2 [7] (byte) main::i#1 ← ++ (byte) main::i#2 - [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 100) goto main::@1 + [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $64) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [9] return diff --git a/src/test/ref/forclassicmin.log b/src/test/ref/forclassicmin.log index b03cd2146..eaf01171e 100644 --- a/src/test/ref/forclassicmin.log +++ b/src/test/ref/forclassicmin.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*~) $0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*~) $0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*) SCREEN#0 ← (byte*~) $0 to:@1 main: scope:[main] from @1 @@ -13,7 +13,7 @@ main::@1: scope:[main] from main main::@1 (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) *((byte*) SCREEN#1 + (byte) main::i#2) ← (byte) main::i#2 (byte) main::i#1 ← ++ (byte) main::i#2 - (bool~) main::$0 ← (byte) main::i#1 != (byte/signed byte/word/signed word/dword/signed dword) 100 + (bool~) main::$0 ← (byte) main::i#1 != (byte/signed byte/word/signed word/dword/signed dword) $64 if((bool~) main::$0) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 @@ -56,9 +56,9 @@ Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) SCREEN#2 (byte*) SCREEN#0 Redundant Phi (byte*) SCREEN#1 (byte*) SCREEN#2 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$0 [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 100) goto main::@1 +Simple Condition (bool~) main::$0 [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $64) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Constant (const byte) main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Inlining constant with var siblings (const byte) main::i#0 @@ -98,7 +98,7 @@ main::@1: scope:[main] from main main::@1 [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::i#1 ) [6] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte) main::i#2 [7] (byte) main::i#1 ← ++ (byte) main::i#2 - [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 100) goto main::@1 + [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $64) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [9] return @@ -164,7 +164,7 @@ main: { sta SCREEN,y //SEG17 [7] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG18 [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 100) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG18 [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $64) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$64 bne b1_from_b1 @@ -228,7 +228,7 @@ main: { sta SCREEN,x //SEG17 [7] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG18 [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 100) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG18 [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $64) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$64 bne b1_from_b1 jmp breturn @@ -268,7 +268,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@1 (label) main::@return @@ -311,7 +311,7 @@ main: { sta SCREEN,x //SEG17 [7] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG18 [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 100) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG18 [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $64) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$64 bne b1 //SEG19 main::@return diff --git a/src/test/ref/forclassicmin.sym b/src/test/ref/forclassicmin.sym index 55f6a84ca..21fde4b9c 100644 --- a/src/test/ref/forclassicmin.sym +++ b/src/test/ref/forclassicmin.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@1 (label) main::@return diff --git a/src/test/ref/forincrementassign.cfg b/src/test/ref/forincrementassign.cfg index 723dc1c0e..be68edec3 100644 --- a/src/test/ref/forincrementassign.cfg +++ b/src/test/ref/forincrementassign.cfg @@ -14,7 +14,7 @@ main::@1: scope:[main] from main main::@1 [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::i#1 ) [6] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte) main::i#2 [7] (byte) main::i#1 ← (byte) main::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [8] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 + [8] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [9] return diff --git a/src/test/ref/forincrementassign.log b/src/test/ref/forincrementassign.log index fd1b627b1..1400cf819 100644 --- a/src/test/ref/forincrementassign.log +++ b/src/test/ref/forincrementassign.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@1 main: scope:[main] from @1 (byte*) SCREEN#2 ← phi( @1/(byte*) SCREEN#3 ) @@ -13,7 +13,7 @@ main::@1: scope:[main] from main main::@1 *((byte*) SCREEN#1 + (byte) main::i#2) ← (byte) main::i#2 (byte/signed word/word/dword/signed dword~) main::$0 ← (byte) main::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) main::i#1 ← (byte/signed word/word/dword/signed dword~) main::$0 - (bool~) main::$1 ← (byte) main::i#1 < (byte/signed byte/word/signed word/dword/signed dword) 40 + (bool~) main::$1 ← (byte) main::i#1 < (byte/signed byte/word/signed word/dword/signed dword) $28 if((bool~) main::$1) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 @@ -57,9 +57,9 @@ Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) SCREEN#2 (byte*) SCREEN#0 Redundant Phi (byte*) SCREEN#1 (byte*) SCREEN#2 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$1 [8] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 +Simple Condition (bool~) main::$1 [8] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Constant (const byte) main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Inlining constant with var siblings (const byte) main::i#0 @@ -99,7 +99,7 @@ main::@1: scope:[main] from main main::@1 [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::i#1 ) [6] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte) main::i#2 [7] (byte) main::i#1 ← (byte) main::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [8] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 + [8] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [9] return @@ -169,7 +169,7 @@ main: { clc adc #2 sta i - //SEG18 [8] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 + //SEG18 [8] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 lda i cmp #$28 bcc b1_from_b1 @@ -235,7 +235,7 @@ main: { //SEG17 [7] (byte) main::i#1 ← (byte) main::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuaa_plus_2 clc adc #2 - //SEG18 [8] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 -- vbuaa_lt_vbuc1_then_la1 + //SEG18 [8] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 -- vbuaa_lt_vbuc1_then_la1 cmp #$28 bcc b1_from_b1 jmp breturn @@ -275,7 +275,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@1 (label) main::@return @@ -320,7 +320,7 @@ main: { //SEG17 [7] (byte) main::i#1 ← (byte) main::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuaa_plus_2 clc adc #2 - //SEG18 [8] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 -- vbuaa_lt_vbuc1_then_la1 + //SEG18 [8] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 -- vbuaa_lt_vbuc1_then_la1 cmp #$28 bcc b1 //SEG19 main::@return diff --git a/src/test/ref/forincrementassign.sym b/src/test/ref/forincrementassign.sym index ed36fec4c..9bd498ab7 100644 --- a/src/test/ref/forincrementassign.sym +++ b/src/test/ref/forincrementassign.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@1 (label) main::@return diff --git a/src/test/ref/forrangedwords.cfg b/src/test/ref/forrangedwords.cfg index 6b38e519a..ad75f550c 100644 --- a/src/test/ref/forrangedwords.cfg +++ b/src/test/ref/forrangedwords.cfg @@ -20,13 +20,13 @@ main::@1: scope:[main] from main main::@1 [11] if((word) main::w#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 - [12] (signed word) main::sw#2 ← phi( main::@2/(signed word) main::sw#1 main::@1/-(word/signed word/dword/signed dword) 32767 ) + [12] (signed word) main::sw#2 ← phi( main::@2/(signed word) main::sw#1 main::@1/-(word/signed word/dword/signed dword) $7fff ) [13] (byte~) main::$4 ← < (signed word) main::sw#2 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte~) main::$4 [15] (byte~) main::$5 ← > (signed word) main::sw#2 [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte~) main::$5 [17] (signed word) main::sw#1 ← ++ (signed word) main::sw#2 - [18] if((signed word) main::sw#1!=(word/signed word/dword/signed dword) 32767) goto main::@2 + [18] if((signed word) main::sw#1!=(word/signed word/dword/signed dword) $7fff) goto main::@2 to:main::@return main::@return: scope:[main] from main::@2 [19] return diff --git a/src/test/ref/forrangedwords.log b/src/test/ref/forrangedwords.log index bfcc920ca..4d2359079 100644 --- a/src/test/ref/forrangedwords.log +++ b/src/test/ref/forrangedwords.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (word) main::w#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main main::@1 @@ -13,13 +13,13 @@ main::@1: scope:[main] from main main::@1 *((byte*) main::SCREEN#1 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte~) main::$0 (byte~) main::$1 ← > (word) main::w#2 *((byte*) main::SCREEN#1 + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte~) main::$1 - (word) main::w#1 ← (word) main::w#2 + rangenext(0,65535) - (bool~) main::$2 ← (word) main::w#1 != rangelast(0,65535) + (word) main::w#1 ← (word) main::w#2 + rangenext(0,$ffff) + (bool~) main::$2 ← (word) main::w#1 != rangelast(0,$ffff) if((bool~) main::$2) goto main::@1 to:main::@3 main::@3: scope:[main] from main::@1 (byte*) main::SCREEN#3 ← phi( main::@1/(byte*) main::SCREEN#1 ) - (signed word/signed dword~) main::$3 ← - (word/signed word/dword/signed dword) 32767 + (signed word/signed dword~) main::$3 ← - (word/signed word/dword/signed dword) $7fff (signed word) main::sw#0 ← (signed word/signed dword~) main::$3 to:main::@2 main::@2: scope:[main] from main::@2 main::@3 @@ -29,8 +29,8 @@ main::@2: scope:[main] from main::@2 main::@3 *((byte*) main::SCREEN#2 + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte~) main::$4 (byte~) main::$5 ← > (signed word) main::sw#2 *((byte*) main::SCREEN#2 + (byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte~) main::$5 - (signed word) main::sw#1 ← (signed word) main::sw#2 + rangenext(main::$3,32766) - (bool~) main::$6 ← (signed word) main::sw#1 != rangelast(main::$3,32766) + (signed word) main::sw#1 ← (signed word) main::sw#2 + rangenext(main::$3,$7ffe) + (bool~) main::$6 ← (signed word) main::sw#1 != rangelast(main::$3,$7ffe) if((bool~) main::$6) goto main::@2 to:main::@return main::@return: scope:[main] from main::@2 @@ -85,12 +85,12 @@ Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) main::SCREEN#1 (byte*) main::SCREEN#0 Redundant Phi (byte*) main::SCREEN#2 (byte*) main::SCREEN#1 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$2 [9] if((word) main::w#1!=rangelast(0,65535)) goto main::@1 -Simple Condition (bool~) main::$6 [20] if((signed word) main::sw#1!=rangelast(main::sw#0,32766)) goto main::@2 +Simple Condition (bool~) main::$2 [9] if((word) main::w#1!=rangelast(0,$ffff)) goto main::@1 +Simple Condition (bool~) main::$6 [20] if((signed word) main::sw#1!=rangelast(main::sw#0,$7ffe)) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) main::SCREEN#0 = ((byte*))1024 +Constant (const byte*) main::SCREEN#0 = ((byte*))$400 Constant (const word) main::w#0 = 0 -Constant (const signed word) main::sw#0 = -32767 +Constant (const signed word) main::sw#0 = -$7fff Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(main::SCREEN#0+0) Consolidated array index constant in *(main::SCREEN#0+1) @@ -98,15 +98,15 @@ Consolidated array index constant in *(main::SCREEN#0+3) Consolidated array index constant in *(main::SCREEN#0+4) Successful SSA optimization Pass2ConstantAdditionElimination Resolved ranged next value main::w#1 ← ++ main::w#2 to ++ -Resolved ranged comparison value if(main::w#1!=rangelast(0,65535)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(main::w#1!=rangelast(0,$ffff)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 Resolved ranged next value main::sw#1 ← ++ main::sw#2 to ++ -Resolved ranged comparison value if(main::sw#1!=rangelast(main::sw#0,32766)) goto main::@2 to (word/signed word/dword/signed dword) 32767 +Resolved ranged comparison value if(main::sw#1!=rangelast(main::sw#0,$7ffe)) goto main::@2 to (word/signed word/dword/signed dword) $7fff Culled Empty Block (label) main::@3 Successful SSA optimization Pass2CullEmptyBlocks Inlining constant with var siblings (const word) main::w#0 Inlining constant with var siblings (const signed word) main::sw#0 Constant inlined main::w#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::sw#0 = -(word/signed word/dword/signed dword) 32767 +Constant inlined main::sw#0 = -(word/signed word/dword/signed dword) $7fff Successful SSA optimization Pass2ConstantInlining Simplifying constant plus zero main::SCREEN#0+0 Added new block during phi lifting main::@5(between main::@1 and main::@1) @@ -152,13 +152,13 @@ main::@1: scope:[main] from main main::@1 [11] if((word) main::w#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 - [12] (signed word) main::sw#2 ← phi( main::@2/(signed word) main::sw#1 main::@1/-(word/signed word/dword/signed dword) 32767 ) + [12] (signed word) main::sw#2 ← phi( main::@2/(signed word) main::sw#1 main::@1/-(word/signed word/dword/signed dword) $7fff ) [13] (byte~) main::$4 ← < (signed word) main::sw#2 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte~) main::$4 [15] (byte~) main::$5 ← > (signed word) main::sw#2 [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte~) main::$5 [17] (signed word) main::sw#1 ← ++ (signed word) main::sw#2 - [18] if((signed word) main::sw#1!=(word/signed word/dword/signed dword) 32767) goto main::@2 + [18] if((signed word) main::sw#1!=(word/signed word/dword/signed dword) $7fff) goto main::@2 to:main::@return main::@return: scope:[main] from main::@2 [19] return @@ -270,7 +270,7 @@ main: { bne b1_from_b1 //SEG22 [12] phi from main::@1 to main::@2 [phi:main::@1->main::@2] b2_from_b1: - //SEG23 [12] phi (signed word) main::sw#2 = -(word/signed word/dword/signed dword) 32767 [phi:main::@1->main::@2#0] -- vwsz1=vwsc1 + //SEG23 [12] phi (signed word) main::sw#2 = -(word/signed word/dword/signed dword) $7fff [phi:main::@1->main::@2#0] -- vwsz1=vwsc1 lda #<-$7fff sta sw lda #>-$7fff @@ -299,7 +299,7 @@ main: { bne !+ inc sw+1 !: - //SEG32 [18] if((signed word) main::sw#1!=(word/signed word/dword/signed dword) 32767) goto main::@2 -- vwsz1_neq_vwuc1_then_la1 + //SEG32 [18] if((signed word) main::sw#1!=(word/signed word/dword/signed dword) $7fff) goto main::@2 -- vwsz1_neq_vwuc1_then_la1 lda sw+1 cmp #>$7fff bne b2_from_b2 @@ -319,7 +319,7 @@ Statement [8] (byte~) main::$1 ← > (word) main::w#2 [ main::w#2 main::$1 ] ( m Statement [11] if((word) main::w#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 [ main::w#1 ] ( main:2 [ main::w#1 ] ) always clobbers reg byte a Statement [13] (byte~) main::$4 ← < (signed word) main::sw#2 [ main::sw#2 main::$4 ] ( main:2 [ main::sw#2 main::$4 ] ) always clobbers reg byte a Statement [15] (byte~) main::$5 ← > (signed word) main::sw#2 [ main::sw#2 main::$5 ] ( main:2 [ main::sw#2 main::$5 ] ) always clobbers reg byte a -Statement [18] if((signed word) main::sw#1!=(word/signed word/dword/signed dword) 32767) goto main::@2 [ main::sw#1 ] ( main:2 [ main::sw#1 ] ) always clobbers reg byte a +Statement [18] if((signed word) main::sw#1!=(word/signed word/dword/signed dword) $7fff) goto main::@2 [ main::sw#1 ] ( main:2 [ main::sw#1 ] ) always clobbers reg byte a Potential registers zp ZP_WORD:2 [ main::w#2 main::w#1 ] : zp ZP_WORD:2 , Potential registers zp ZP_WORD:4 [ main::sw#2 main::sw#1 ] : zp ZP_WORD:4 , Potential registers zp ZP_BYTE:6 [ main::$0 ] : zp ZP_BYTE:6 , reg byte a , reg byte x , reg byte y , @@ -398,7 +398,7 @@ main: { bne b1_from_b1 //SEG22 [12] phi from main::@1 to main::@2 [phi:main::@1->main::@2] b2_from_b1: - //SEG23 [12] phi (signed word) main::sw#2 = -(word/signed word/dword/signed dword) 32767 [phi:main::@1->main::@2#0] -- vwsz1=vwsc1 + //SEG23 [12] phi (signed word) main::sw#2 = -(word/signed word/dword/signed dword) $7fff [phi:main::@1->main::@2#0] -- vwsz1=vwsc1 lda #<-$7fff sta sw lda #>-$7fff @@ -423,7 +423,7 @@ main: { bne !+ inc sw+1 !: - //SEG32 [18] if((signed word) main::sw#1!=(word/signed word/dword/signed dword) 32767) goto main::@2 -- vwsz1_neq_vwuc1_then_la1 + //SEG32 [18] if((signed word) main::sw#1!=(word/signed word/dword/signed dword) $7fff) goto main::@2 -- vwsz1_neq_vwuc1_then_la1 lda sw+1 cmp #>$7fff bne b2_from_b2 @@ -484,7 +484,7 @@ FINAL SYMBOL TABLE (label) main::@2 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (signed word) main::sw (signed word) main::sw#1 sw zp ZP_WORD:2 16.5 (signed word) main::sw#2 sw zp ZP_WORD:2 8.8 @@ -548,7 +548,7 @@ main: { lda w+1 bne b1 //SEG22 [12] phi from main::@1 to main::@2 [phi:main::@1->main::@2] - //SEG23 [12] phi (signed word) main::sw#2 = -(word/signed word/dword/signed dword) 32767 [phi:main::@1->main::@2#0] -- vwsz1=vwsc1 + //SEG23 [12] phi (signed word) main::sw#2 = -(word/signed word/dword/signed dword) $7fff [phi:main::@1->main::@2#0] -- vwsz1=vwsc1 lda #<-$7fff sta sw lda #>-$7fff @@ -570,7 +570,7 @@ main: { bne !+ inc sw+1 !: - //SEG32 [18] if((signed word) main::sw#1!=(word/signed word/dword/signed dword) 32767) goto main::@2 -- vwsz1_neq_vwuc1_then_la1 + //SEG32 [18] if((signed word) main::sw#1!=(word/signed word/dword/signed dword) $7fff) goto main::@2 -- vwsz1_neq_vwuc1_then_la1 lda sw+1 cmp #>$7fff bne b2 diff --git a/src/test/ref/forrangedwords.sym b/src/test/ref/forrangedwords.sym index 240bb7cc7..60c6cd9ab 100644 --- a/src/test/ref/forrangedwords.sym +++ b/src/test/ref/forrangedwords.sym @@ -10,7 +10,7 @@ (label) main::@2 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (signed word) main::sw (signed word) main::sw#1 sw zp ZP_WORD:2 16.5 (signed word) main::sw#2 sw zp ZP_WORD:2 8.8 diff --git a/src/test/ref/forrangemin.cfg b/src/test/ref/forrangemin.cfg index eabf4ca1b..894a5f124 100644 --- a/src/test/ref/forrangemin.cfg +++ b/src/test/ref/forrangemin.cfg @@ -17,10 +17,10 @@ main::@1: scope:[main] from main main::@1 [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 - [9] (byte) main::j#3 ← phi( main::@2/(byte) main::j#2 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 100 ) + [9] (byte) main::j#3 ← phi( main::@2/(byte) main::j#2 main::@1/(byte/signed byte/word/signed word/dword/signed dword) $64 ) [10] *((const byte*) SCREEN2#0 + (byte) main::j#3) ← (byte) main::j#3 [11] (byte) main::j#2 ← -- (byte) main::j#3 - [12] if((byte) main::j#2!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 + [12] if((byte) main::j#2!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 to:main::@return main::@return: scope:[main] from main::@2 [13] return diff --git a/src/test/ref/forrangemin.log b/src/test/ref/forrangemin.log index 0eaa19569..c18ebb7d1 100644 --- a/src/test/ref/forrangemin.log +++ b/src/test/ref/forrangemin.log @@ -1,8 +1,8 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN1#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte*) SCREEN2#0 ← ((byte*)) (word/signed word/dword/signed dword) 1280 + (byte*) SCREEN1#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte*) SCREEN2#0 ← ((byte*)) (word/signed word/dword/signed dword) $500 to:@1 main: scope:[main] from @1 (byte*) SCREEN2#4 ← phi( @1/(byte*) SCREEN2#5 ) @@ -14,21 +14,21 @@ main::@1: scope:[main] from main main::@1 (byte*) SCREEN1#1 ← phi( main/(byte*) SCREEN1#2 main::@1/(byte*) SCREEN1#1 ) (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) *((byte*) SCREEN1#1 + (byte) main::i#2) ← (byte) main::i#2 - (byte) main::i#1 ← (byte) main::i#2 + rangenext(0,255) - (bool~) main::$0 ← (byte) main::i#1 != rangelast(0,255) + (byte) main::i#1 ← (byte) main::i#2 + rangenext(0,$ff) + (bool~) main::$0 ← (byte) main::i#1 != rangelast(0,$ff) if((bool~) main::$0) goto main::@1 to:main::@3 main::@3: scope:[main] from main::@1 (byte*) SCREEN2#2 ← phi( main::@1/(byte*) SCREEN2#3 ) (byte) main::j#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte) main::j#1 ← (byte/signed byte/word/signed word/dword/signed dword) 100 + (byte) main::j#1 ← (byte/signed byte/word/signed word/dword/signed dword) $64 to:main::@2 main::@2: scope:[main] from main::@2 main::@3 (byte*) SCREEN2#1 ← phi( main::@2/(byte*) SCREEN2#1 main::@3/(byte*) SCREEN2#2 ) (byte) main::j#3 ← phi( main::@2/(byte) main::j#2 main::@3/(byte) main::j#1 ) *((byte*) SCREEN2#1 + (byte) main::j#3) ← (byte) main::j#3 - (byte) main::j#2 ← (byte) main::j#3 + rangenext(100,0) - (bool~) main::$1 ← (byte) main::j#2 != rangelast(100,0) + (byte) main::j#2 ← (byte) main::j#3 + rangenext($64,0) + (bool~) main::$1 ← (byte) main::j#2 != rangelast($64,0) if((bool~) main::$1) goto main::@2 to:main::@return main::@return: scope:[main] from main::@2 @@ -93,26 +93,26 @@ Redundant Phi (byte*) SCREEN1#1 (byte*) SCREEN1#2 Redundant Phi (byte*) SCREEN2#2 (byte*) SCREEN2#4 Redundant Phi (byte*) SCREEN2#1 (byte*) SCREEN2#2 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$0 [8] if((byte) main::i#1!=rangelast(0,255)) goto main::@1 -Simple Condition (bool~) main::$1 [16] if((byte) main::j#2!=rangelast(100,0)) goto main::@2 +Simple Condition (bool~) main::$0 [8] if((byte) main::i#1!=rangelast(0,$ff)) goto main::@1 +Simple Condition (bool~) main::$1 [16] if((byte) main::j#2!=rangelast($64,0)) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) SCREEN1#0 = ((byte*))1024 -Constant (const byte*) SCREEN2#0 = ((byte*))1280 +Constant (const byte*) SCREEN1#0 = ((byte*))$400 +Constant (const byte*) SCREEN2#0 = ((byte*))$500 Constant (const byte) main::i#0 = 0 Constant (const byte) main::j#0 = 0 -Constant (const byte) main::j#1 = 100 +Constant (const byte) main::j#1 = $64 Successful SSA optimization Pass2ConstantIdentification Successful SSA optimization PassNEliminateUnusedVars Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ -Resolved ranged comparison value if(main::i#1!=rangelast(0,255)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(main::i#1!=rangelast(0,$ff)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 Resolved ranged next value main::j#2 ← -- main::j#3 to -- -Resolved ranged comparison value if(main::j#2!=rangelast(100,0)) goto main::@2 to (byte/word/signed word/dword/signed dword) 255 +Resolved ranged comparison value if(main::j#2!=rangelast($64,0)) goto main::@2 to (byte/word/signed word/dword/signed dword) $ff Culled Empty Block (label) main::@3 Successful SSA optimization Pass2CullEmptyBlocks Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte) main::j#1 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::j#1 = (byte/signed byte/word/signed word/dword/signed dword) 100 +Constant inlined main::j#1 = (byte/signed byte/word/signed word/dword/signed dword) $64 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@5(between main::@1 and main::@1) Added new block during phi lifting main::@6(between main::@2 and main::@2) @@ -154,10 +154,10 @@ main::@1: scope:[main] from main main::@1 [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 - [9] (byte) main::j#3 ← phi( main::@2/(byte) main::j#2 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 100 ) + [9] (byte) main::j#3 ← phi( main::@2/(byte) main::j#2 main::@1/(byte/signed byte/word/signed word/dword/signed dword) $64 ) [10] *((const byte*) SCREEN2#0 + (byte) main::j#3) ← (byte) main::j#3 [11] (byte) main::j#2 ← -- (byte) main::j#3 - [12] if((byte) main::j#2!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 + [12] if((byte) main::j#2!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 to:main::@return main::@return: scope:[main] from main::@2 [13] return @@ -238,7 +238,7 @@ main: { bne b1_from_b1 //SEG19 [9] phi from main::@1 to main::@2 [phi:main::@1->main::@2] b2_from_b1: - //SEG20 [9] phi (byte) main::j#3 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:main::@1->main::@2#0] -- vbuz1=vbuc1 + //SEG20 [9] phi (byte) main::j#3 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:main::@1->main::@2#0] -- vbuz1=vbuc1 lda #$64 sta j jmp b2 @@ -254,7 +254,7 @@ main: { sta SCREEN2,y //SEG25 [11] (byte) main::j#2 ← -- (byte) main::j#3 -- vbuz1=_dec_vbuz1 dec j - //SEG26 [12] if((byte) main::j#2!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG26 [12] if((byte) main::j#2!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 -- vbuz1_neq_vbuc1_then_la1 lda j cmp #$ff bne b2_from_b2 @@ -325,7 +325,7 @@ main: { bne b1_from_b1 //SEG19 [9] phi from main::@1 to main::@2 [phi:main::@1->main::@2] b2_from_b1: - //SEG20 [9] phi (byte) main::j#3 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:main::@1->main::@2#0] -- vbuxx=vbuc1 + //SEG20 [9] phi (byte) main::j#3 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:main::@1->main::@2#0] -- vbuxx=vbuc1 ldx #$64 jmp b2 //SEG21 [9] phi from main::@2 to main::@2 [phi:main::@2->main::@2] @@ -339,7 +339,7 @@ main: { sta SCREEN2,x //SEG25 [11] (byte) main::j#2 ← -- (byte) main::j#3 -- vbuxx=_dec_vbuxx dex - //SEG26 [12] if((byte) main::j#2!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG26 [12] if((byte) main::j#2!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$ff bne b2_from_b2 jmp breturn @@ -384,9 +384,9 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN1 -(const byte*) SCREEN1#0 SCREEN1 = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN1#0 SCREEN1 = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SCREEN2 -(const byte*) SCREEN2#0 SCREEN2 = ((byte*))(word/signed word/dword/signed dword) 1280 +(const byte*) SCREEN2#0 SCREEN2 = ((byte*))(word/signed word/dword/signed dword) $500 (void()) main() (label) main::@1 (label) main::@2 @@ -439,7 +439,7 @@ main: { cpx #0 bne b1 //SEG19 [9] phi from main::@1 to main::@2 [phi:main::@1->main::@2] - //SEG20 [9] phi (byte) main::j#3 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:main::@1->main::@2#0] -- vbuxx=vbuc1 + //SEG20 [9] phi (byte) main::j#3 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:main::@1->main::@2#0] -- vbuxx=vbuc1 ldx #$64 //SEG21 [9] phi from main::@2 to main::@2 [phi:main::@2->main::@2] //SEG22 [9] phi (byte) main::j#3 = (byte) main::j#2 [phi:main::@2->main::@2#0] -- register_copy @@ -450,7 +450,7 @@ main: { sta SCREEN2,x //SEG25 [11] (byte) main::j#2 ← -- (byte) main::j#3 -- vbuxx=_dec_vbuxx dex - //SEG26 [12] if((byte) main::j#2!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG26 [12] if((byte) main::j#2!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$ff bne b2 //SEG27 main::@return diff --git a/src/test/ref/forrangemin.sym b/src/test/ref/forrangemin.sym index abef9b914..c75ee15eb 100644 --- a/src/test/ref/forrangemin.sym +++ b/src/test/ref/forrangemin.sym @@ -2,9 +2,9 @@ (label) @begin (label) @end (byte*) SCREEN1 -(const byte*) SCREEN1#0 SCREEN1 = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN1#0 SCREEN1 = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SCREEN2 -(const byte*) SCREEN2#0 SCREEN2 = ((byte*))(word/signed word/dword/signed dword) 1280 +(const byte*) SCREEN2#0 SCREEN2 = ((byte*))(word/signed word/dword/signed dword) $500 (void()) main() (label) main::@1 (label) main::@2 diff --git a/src/test/ref/forrangesymbolic.cfg b/src/test/ref/forrangesymbolic.cfg index 663c92624..8103c2eec 100644 --- a/src/test/ref/forrangesymbolic.cfg +++ b/src/test/ref/forrangesymbolic.cfg @@ -11,8 +11,8 @@ main: scope:[main] from @1 [4] phi() to:main::@1 main::@1: scope:[main] from main main::@1 - [5] (byte*) main::b#2 ← phi( main/(const byte*) main::BITMAP#0+(word/signed word/dword/signed dword) 8191 main::@1/(byte*) main::b#1 ) - [6] *((byte*) main::b#2) ← (byte/signed byte/word/signed word/dword/signed dword) 90 + [5] (byte*) main::b#2 ← phi( main/(const byte*) main::BITMAP#0+(word/signed word/dword/signed dword) $1fff main::@1/(byte*) main::b#1 ) + [6] *((byte*) main::b#2) ← (byte/signed byte/word/signed word/dword/signed dword) $5a [7] (byte*) main::b#1 ← -- (byte*) main::b#2 [8] if((byte*) main::b#1!=(byte*)(const byte*) main::BITMAP#0-(byte/signed byte/word/signed word/dword/signed dword) 1) goto main::@1 to:main::@return diff --git a/src/test/ref/forrangesymbolic.log b/src/test/ref/forrangesymbolic.log index 51dc6ae16..e621d259e 100644 --- a/src/test/ref/forrangesymbolic.log +++ b/src/test/ref/forrangesymbolic.log @@ -3,13 +3,13 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte*) main::BITMAP#0 ← ((byte*)) (word/signed word/dword/signed dword) 8192 - (byte*~) main::$0 ← (byte*) main::BITMAP#0 + (word/signed word/dword/signed dword) 8191 + (byte*) main::BITMAP#0 ← ((byte*)) (word/signed word/dword/signed dword) $2000 + (byte*~) main::$0 ← (byte*) main::BITMAP#0 + (word/signed word/dword/signed dword) $1fff (byte*) main::b#0 ← (byte*~) main::$0 to:main::@1 main::@1: scope:[main] from main main::@1 (byte*) main::b#2 ← phi( main/(byte*) main::b#0 main::@1/(byte*) main::b#1 ) - *((byte*) main::b#2) ← (byte/signed byte/word/signed word/dword/signed dword) 90 + *((byte*) main::b#2) ← (byte/signed byte/word/signed word/dword/signed dword) $5a (byte*) main::b#1 ← (byte*) main::b#2 + rangenext(main::$0,main::BITMAP#0) (bool~) main::$1 ← (byte*) main::b#1 != rangelast(main::$0,main::BITMAP#0) if((bool~) main::$1) goto main::@1 @@ -47,14 +47,14 @@ Alias (byte*) main::b#0 = (byte*~) main::$0 Successful SSA optimization Pass2AliasElimination Simple Condition (bool~) main::$1 [7] if((byte*) main::b#1!=rangelast(main::b#0,main::BITMAP#0)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) main::BITMAP#0 = ((byte*))8192 +Constant (const byte*) main::BITMAP#0 = ((byte*))$2000 Successful SSA optimization Pass2ConstantIdentification -Constant (const byte*) main::b#0 = main::BITMAP#0+8191 +Constant (const byte*) main::b#0 = main::BITMAP#0+$1fff Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::b#1 ← -- main::b#2 to -- Resolved ranged comparison value if(main::b#1!=rangelast(main::b#0,main::BITMAP#0)) goto main::@1 to (byte*)(const byte*) main::BITMAP#0-(byte/signed byte/word/signed word/dword/signed dword) 1 Inlining constant with var siblings (const byte*) main::b#0 -Constant inlined main::b#0 = (const byte*) main::BITMAP#0+(word/signed word/dword/signed dword) 8191 +Constant inlined main::b#0 = (const byte*) main::BITMAP#0+(word/signed word/dword/signed dword) $1fff Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@3(between main::@1 and main::@1) Adding NOP phi() at start of @begin @@ -87,8 +87,8 @@ main: scope:[main] from @1 [4] phi() to:main::@1 main::@1: scope:[main] from main main::@1 - [5] (byte*) main::b#2 ← phi( main/(const byte*) main::BITMAP#0+(word/signed word/dword/signed dword) 8191 main::@1/(byte*) main::b#1 ) - [6] *((byte*) main::b#2) ← (byte/signed byte/word/signed word/dword/signed dword) 90 + [5] (byte*) main::b#2 ← phi( main/(const byte*) main::BITMAP#0+(word/signed word/dword/signed dword) $1fff main::@1/(byte*) main::b#1 ) + [6] *((byte*) main::b#2) ← (byte/signed byte/word/signed word/dword/signed dword) $5a [7] (byte*) main::b#1 ← -- (byte*) main::b#2 [8] if((byte*) main::b#1!=(byte*)(const byte*) main::BITMAP#0-(byte/signed byte/word/signed word/dword/signed dword) 1) goto main::@1 to:main::@return @@ -141,7 +141,7 @@ main: { .label b = 2 //SEG11 [5] phi from main to main::@1 [phi:main->main::@1] b1_from_main: - //SEG12 [5] phi (byte*) main::b#2 = (const byte*) main::BITMAP#0+(word/signed word/dword/signed dword) 8191 [phi:main->main::@1#0] -- pbuz1=pbuc1 + //SEG12 [5] phi (byte*) main::b#2 = (const byte*) main::BITMAP#0+(word/signed word/dword/signed dword) $1fff [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #BITMAP+$1fff @@ -153,7 +153,7 @@ main: { jmp b1 //SEG15 main::@1 b1: - //SEG16 [6] *((byte*) main::b#2) ← (byte/signed byte/word/signed word/dword/signed dword) 90 -- _deref_pbuz1=vbuc1 + //SEG16 [6] *((byte*) main::b#2) ← (byte/signed byte/word/signed word/dword/signed dword) $5a -- _deref_pbuz1=vbuc1 lda #$5a ldy #0 sta (b),y @@ -178,7 +178,7 @@ main: { } REGISTER UPLIFT POTENTIAL REGISTERS -Statement [6] *((byte*) main::b#2) ← (byte/signed byte/word/signed word/dword/signed dword) 90 [ main::b#2 ] ( main:2 [ main::b#2 ] ) always clobbers reg byte a reg byte y +Statement [6] *((byte*) main::b#2) ← (byte/signed byte/word/signed word/dword/signed dword) $5a [ main::b#2 ] ( main:2 [ main::b#2 ] ) always clobbers reg byte a reg byte y Statement [7] (byte*) main::b#1 ← -- (byte*) main::b#2 [ main::b#1 ] ( main:2 [ main::b#1 ] ) always clobbers reg byte a Statement [8] if((byte*) main::b#1!=(byte*)(const byte*) main::BITMAP#0-(byte/signed byte/word/signed word/dword/signed dword) 1) goto main::@1 [ main::b#1 ] ( main:2 [ main::b#1 ] ) always clobbers reg byte a Potential registers zp ZP_WORD:2 [ main::b#2 main::b#1 ] : zp ZP_WORD:2 , @@ -221,7 +221,7 @@ main: { .label b = 2 //SEG11 [5] phi from main to main::@1 [phi:main->main::@1] b1_from_main: - //SEG12 [5] phi (byte*) main::b#2 = (const byte*) main::BITMAP#0+(word/signed word/dword/signed dword) 8191 [phi:main->main::@1#0] -- pbuz1=pbuc1 + //SEG12 [5] phi (byte*) main::b#2 = (const byte*) main::BITMAP#0+(word/signed word/dword/signed dword) $1fff [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #BITMAP+$1fff @@ -233,7 +233,7 @@ main: { jmp b1 //SEG15 main::@1 b1: - //SEG16 [6] *((byte*) main::b#2) ← (byte/signed byte/word/signed word/dword/signed dword) 90 -- _deref_pbuz1=vbuc1 + //SEG16 [6] *((byte*) main::b#2) ← (byte/signed byte/word/signed word/dword/signed dword) $5a -- _deref_pbuz1=vbuc1 lda #$5a ldy #0 sta (b),y @@ -291,7 +291,7 @@ FINAL SYMBOL TABLE (label) main::@1 (label) main::@return (byte*) main::BITMAP -(const byte*) main::BITMAP#0 BITMAP = ((byte*))(word/signed word/dword/signed dword) 8192 +(const byte*) main::BITMAP#0 BITMAP = ((byte*))(word/signed word/dword/signed dword) $2000 (byte*) main::b (byte*) main::b#1 b zp ZP_WORD:2 16.5 (byte*) main::b#2 b zp ZP_WORD:2 16.5 @@ -322,7 +322,7 @@ main: { .label BITMAP = $2000 .label b = 2 //SEG11 [5] phi from main to main::@1 [phi:main->main::@1] - //SEG12 [5] phi (byte*) main::b#2 = (const byte*) main::BITMAP#0+(word/signed word/dword/signed dword) 8191 [phi:main->main::@1#0] -- pbuz1=pbuc1 + //SEG12 [5] phi (byte*) main::b#2 = (const byte*) main::BITMAP#0+(word/signed word/dword/signed dword) $1fff [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #BITMAP+$1fff @@ -331,7 +331,7 @@ main: { //SEG14 [5] phi (byte*) main::b#2 = (byte*) main::b#1 [phi:main::@1->main::@1#0] -- register_copy //SEG15 main::@1 b1: - //SEG16 [6] *((byte*) main::b#2) ← (byte/signed byte/word/signed word/dword/signed dword) 90 -- _deref_pbuz1=vbuc1 + //SEG16 [6] *((byte*) main::b#2) ← (byte/signed byte/word/signed word/dword/signed dword) $5a -- _deref_pbuz1=vbuc1 lda #$5a ldy #0 sta (b),y diff --git a/src/test/ref/forrangesymbolic.sym b/src/test/ref/forrangesymbolic.sym index 1ec9aefe4..80f8e0a43 100644 --- a/src/test/ref/forrangesymbolic.sym +++ b/src/test/ref/forrangesymbolic.sym @@ -5,7 +5,7 @@ (label) main::@1 (label) main::@return (byte*) main::BITMAP -(const byte*) main::BITMAP#0 BITMAP = ((byte*))(word/signed word/dword/signed dword) 8192 +(const byte*) main::BITMAP#0 BITMAP = ((byte*))(word/signed word/dword/signed dword) $2000 (byte*) main::b (byte*) main::b#1 b zp ZP_WORD:2 16.5 (byte*) main::b#2 b zp ZP_WORD:2 16.5 diff --git a/src/test/ref/fragment-synth.cfg b/src/test/ref/fragment-synth.cfg index 531f37682..4d0fd4faa 100644 --- a/src/test/ref/fragment-synth.cfg +++ b/src/test/ref/fragment-synth.cfg @@ -8,8 +8,8 @@ @end: scope:[] from @2 [3] phi() main: scope:[main] from @2 - [4] *(((byte*))(word/signed word/dword/signed dword) 1104+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/word/signed word/dword/signed dword) 240 - [5] *(((byte*))(word/signed word/dword/signed dword) 1104+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 15 + [4] *(((byte*))(word/signed word/dword/signed dword) $450+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/word/signed word/dword/signed dword) $f0 + [5] *(((byte*))(word/signed word/dword/signed dword) $450+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) $f [6] call fct [7] (byte) fct::return#0 ← (byte) fct::return#2 to:main::@1 @@ -27,8 +27,8 @@ main::@return: scope:[main] from main::@2 [14] return to:@return fct: scope:[fct] from main main::@1 - [15] (byte*) fct::z#2 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1104 main::@1/++((byte*))(word/signed word/dword/signed dword) 1104 ) - [15] (byte) fct::x#2 ← phi( main/(byte/word/signed word/dword/signed dword) 170 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 85 ) + [15] (byte*) fct::z#2 ← phi( main/((byte*))(word/signed word/dword/signed dword) $450 main::@1/++((byte*))(word/signed word/dword/signed dword) $450 ) + [15] (byte) fct::x#2 ← phi( main/(byte/word/signed word/dword/signed dword) $aa main::@1/(byte/signed byte/word/signed word/dword/signed dword) $55 ) [16] (byte) fct::return#2 ← (byte) fct::x#2 & *((byte*) fct::z#2 + (byte/signed byte/word/signed word/dword/signed dword) 2) to:fct::@return fct::@return: scope:[fct] from fct diff --git a/src/test/ref/fragment-synth.log b/src/test/ref/fragment-synth.log index 171be236f..8e5d1bc6d 100644 --- a/src/test/ref/fragment-synth.log +++ b/src/test/ref/fragment-synth.log @@ -3,11 +3,11 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@2 main: scope:[main] from @2 - (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte*) main::z#0 ← ((byte*)) (word/signed word/dword/signed dword) 1104 - *((byte*) main::z#0 + (byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/word/signed word/dword/signed dword) 240 - *((byte*) main::z#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) main::x#0 ← (byte/word/signed word/dword/signed dword) 170 + (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte*) main::z#0 ← ((byte*)) (word/signed word/dword/signed dword) $450 + *((byte*) main::z#0 + (byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/word/signed word/dword/signed dword) $f0 + *((byte*) main::z#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) $f + (byte) main::x#0 ← (byte/word/signed word/dword/signed dword) $aa (byte) fct::x#0 ← (byte) main::x#0 (byte*) fct::z#0 ← (byte*) main::z#0 call fct @@ -21,7 +21,7 @@ main::@1: scope:[main] from main (byte) main::a1#0 ← (byte~) main::$0 *((byte*) main::screen#1 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) main::a1#0 (byte*) main::z#1 ← ++ (byte*) main::z#2 - (byte) main::x#1 ← (byte/signed byte/word/signed word/dword/signed dword) 85 + (byte) main::x#1 ← (byte/signed byte/word/signed word/dword/signed dword) $55 (byte) fct::x#1 ← (byte) main::x#1 (byte*) fct::z#1 ← (byte*) main::z#1 call fct @@ -114,10 +114,10 @@ Alias (byte) fct::return#1 = (byte) fct::return#5 Alias (byte) main::a2#0 = (byte~) main::$1 Alias (byte) fct::return#2 = (byte) fct::a#0 (byte~) fct::$0 (byte) fct::return#6 (byte) fct::return#3 Successful SSA optimization Pass2AliasElimination -Constant (const byte*) main::screen#0 = ((byte*))1024 -Constant (const byte*) main::z#0 = ((byte*))1104 -Constant (const byte) main::x#0 = 170 -Constant (const byte) main::x#1 = 85 +Constant (const byte*) main::screen#0 = ((byte*))$400 +Constant (const byte*) main::z#0 = ((byte*))$450 +Constant (const byte) main::x#0 = $aa +Constant (const byte) main::x#1 = $55 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) fct::x#0 = main::x#0 Constant (const byte*) fct::z#0 = main::z#0 @@ -139,14 +139,14 @@ Inlining constant with var siblings (const byte) fct::x#0 Inlining constant with var siblings (const byte*) fct::z#0 Inlining constant with var siblings (const byte) fct::x#1 Inlining constant with var siblings (const byte*) fct::z#1 -Constant inlined fct::z#0 = ((byte*))(word/signed word/dword/signed dword) 1104 -Constant inlined fct::z#1 = ++((byte*))(word/signed word/dword/signed dword) 1104 -Constant inlined main::z#0 = ((byte*))(word/signed word/dword/signed dword) 1104 -Constant inlined main::z#1 = ++((byte*))(word/signed word/dword/signed dword) 1104 -Constant inlined main::x#0 = (byte/word/signed word/dword/signed dword) 170 -Constant inlined main::x#1 = (byte/signed byte/word/signed word/dword/signed dword) 85 -Constant inlined fct::x#0 = (byte/word/signed word/dword/signed dword) 170 -Constant inlined fct::x#1 = (byte/signed byte/word/signed word/dword/signed dword) 85 +Constant inlined fct::z#0 = ((byte*))(word/signed word/dword/signed dword) $450 +Constant inlined fct::z#1 = ++((byte*))(word/signed word/dword/signed dword) $450 +Constant inlined main::z#0 = ((byte*))(word/signed word/dword/signed dword) $450 +Constant inlined main::z#1 = ++((byte*))(word/signed word/dword/signed dword) $450 +Constant inlined main::x#0 = (byte/word/signed word/dword/signed dword) $aa +Constant inlined main::x#1 = (byte/signed byte/word/signed word/dword/signed dword) $55 +Constant inlined fct::x#0 = (byte/word/signed word/dword/signed dword) $aa +Constant inlined fct::x#1 = (byte/signed byte/word/signed word/dword/signed dword) $55 Successful SSA optimization Pass2ConstantInlining Simplifying constant plus zero main::screen#0+0 Adding NOP phi() at start of @begin @@ -173,8 +173,8 @@ FINAL CONTROL FLOW GRAPH @end: scope:[] from @2 [3] phi() main: scope:[main] from @2 - [4] *(((byte*))(word/signed word/dword/signed dword) 1104+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/word/signed word/dword/signed dword) 240 - [5] *(((byte*))(word/signed word/dword/signed dword) 1104+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 15 + [4] *(((byte*))(word/signed word/dword/signed dword) $450+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/word/signed word/dword/signed dword) $f0 + [5] *(((byte*))(word/signed word/dword/signed dword) $450+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) $f [6] call fct [7] (byte) fct::return#0 ← (byte) fct::return#2 to:main::@1 @@ -192,8 +192,8 @@ main::@return: scope:[main] from main::@2 [14] return to:@return fct: scope:[fct] from main main::@1 - [15] (byte*) fct::z#2 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1104 main::@1/++((byte*))(word/signed word/dword/signed dword) 1104 ) - [15] (byte) fct::x#2 ← phi( main/(byte/word/signed word/dword/signed dword) 170 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 85 ) + [15] (byte*) fct::z#2 ← phi( main/((byte*))(word/signed word/dword/signed dword) $450 main::@1/++((byte*))(word/signed word/dword/signed dword) $450 ) + [15] (byte) fct::x#2 ← phi( main/(byte/word/signed word/dword/signed dword) $aa main::@1/(byte/signed byte/word/signed word/dword/signed dword) $55 ) [16] (byte) fct::return#2 ← (byte) fct::x#2 & *((byte*) fct::z#2 + (byte/signed byte/word/signed word/dword/signed dword) 2) to:fct::@return fct::@return: scope:[fct] from fct @@ -272,21 +272,21 @@ main: { .label screen = $400 .label a1 = 5 .label a2 = 7 - //SEG10 [4] *(((byte*))(word/signed word/dword/signed dword) 1104+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/word/signed word/dword/signed dword) 240 -- _deref_pbuc1=vbuc2 + //SEG10 [4] *(((byte*))(word/signed word/dword/signed dword) $450+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/word/signed word/dword/signed dword) $f0 -- _deref_pbuc1=vbuc2 lda #$f0 sta $450+2 - //SEG11 [5] *(((byte*))(word/signed word/dword/signed dword) 1104+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 + //SEG11 [5] *(((byte*))(word/signed word/dword/signed dword) $450+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) $f -- _deref_pbuc1=vbuc2 lda #$f sta $450+3 //SEG12 [6] call fct //SEG13 [15] phi from main to fct [phi:main->fct] fct_from_main: - //SEG14 [15] phi (byte*) fct::z#2 = ((byte*))(word/signed word/dword/signed dword) 1104 [phi:main->fct#0] -- pbuz1=pbuc1 + //SEG14 [15] phi (byte*) fct::z#2 = ((byte*))(word/signed word/dword/signed dword) $450 [phi:main->fct#0] -- pbuz1=pbuc1 lda #<$450 sta fct.z lda #>$450 sta fct.z+1 - //SEG15 [15] phi (byte) fct::x#2 = (byte/word/signed word/dword/signed dword) 170 [phi:main->fct#1] -- vbuxx=vbuc1 + //SEG15 [15] phi (byte) fct::x#2 = (byte/word/signed word/dword/signed dword) $aa [phi:main->fct#1] -- vbuxx=vbuc1 ldx #$aa jsr fct //SEG16 [7] (byte) fct::return#0 ← (byte) fct::return#2 -- vbuz1=vbuz2 @@ -304,12 +304,12 @@ main: { //SEG20 [10] call fct //SEG21 [15] phi from main::@1 to fct [phi:main::@1->fct] fct_from_b1: - //SEG22 [15] phi (byte*) fct::z#2 = ++((byte*))(word/signed word/dword/signed dword) 1104 [phi:main::@1->fct#0] -- pbuz1=pbuc1 + //SEG22 [15] phi (byte*) fct::z#2 = ++((byte*))(word/signed word/dword/signed dword) $450 [phi:main::@1->fct#0] -- pbuz1=pbuc1 lda #<$450+1 sta fct.z lda #>$450+1 sta fct.z+1 - //SEG23 [15] phi (byte) fct::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 85 [phi:main::@1->fct#1] -- vbuxx=vbuc1 + //SEG23 [15] phi (byte) fct::x#2 = (byte/signed byte/word/signed word/dword/signed dword) $55 [phi:main::@1->fct#1] -- vbuxx=vbuc1 ldx #$55 jsr fct //SEG24 [11] (byte) fct::return#1 ← (byte) fct::return#2 -- vbuz1=vbuz2 @@ -350,8 +350,8 @@ fct: { } REGISTER UPLIFT POTENTIAL REGISTERS -Statement [4] *(((byte*))(word/signed word/dword/signed dword) 1104+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/word/signed word/dword/signed dword) 240 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [5] *(((byte*))(word/signed word/dword/signed dword) 1104+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 15 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [4] *(((byte*))(word/signed word/dword/signed dword) $450+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/word/signed word/dword/signed dword) $f0 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [5] *(((byte*))(word/signed word/dword/signed dword) $450+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) $f [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [16] (byte) fct::return#2 ← (byte) fct::x#2 & *((byte*) fct::z#2 + (byte/signed byte/word/signed word/dword/signed dword) 2) [ fct::return#2 ] ( main:2::fct:6 [ fct::return#2 ] main:2::fct:10 [ fct::return#2 ] ) always clobbers reg byte a reg byte y Potential registers reg byte x [ fct::x#2 ] : reg byte x , Potential registers zp ZP_WORD:2 [ fct::z#2 ] : zp ZP_WORD:2 , @@ -396,21 +396,21 @@ bend: //SEG9 main main: { .label screen = $400 - //SEG10 [4] *(((byte*))(word/signed word/dword/signed dword) 1104+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/word/signed word/dword/signed dword) 240 -- _deref_pbuc1=vbuc2 + //SEG10 [4] *(((byte*))(word/signed word/dword/signed dword) $450+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/word/signed word/dword/signed dword) $f0 -- _deref_pbuc1=vbuc2 lda #$f0 sta $450+2 - //SEG11 [5] *(((byte*))(word/signed word/dword/signed dword) 1104+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 + //SEG11 [5] *(((byte*))(word/signed word/dword/signed dword) $450+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) $f -- _deref_pbuc1=vbuc2 lda #$f sta $450+3 //SEG12 [6] call fct //SEG13 [15] phi from main to fct [phi:main->fct] fct_from_main: - //SEG14 [15] phi (byte*) fct::z#2 = ((byte*))(word/signed word/dword/signed dword) 1104 [phi:main->fct#0] -- pbuz1=pbuc1 + //SEG14 [15] phi (byte*) fct::z#2 = ((byte*))(word/signed word/dword/signed dword) $450 [phi:main->fct#0] -- pbuz1=pbuc1 lda #<$450 sta fct.z lda #>$450 sta fct.z+1 - //SEG15 [15] phi (byte) fct::x#2 = (byte/word/signed word/dword/signed dword) 170 [phi:main->fct#1] -- vbuxx=vbuc1 + //SEG15 [15] phi (byte) fct::x#2 = (byte/word/signed word/dword/signed dword) $aa [phi:main->fct#1] -- vbuxx=vbuc1 ldx #$aa jsr fct //SEG16 [7] (byte) fct::return#0 ← (byte) fct::return#2 @@ -423,12 +423,12 @@ main: { //SEG20 [10] call fct //SEG21 [15] phi from main::@1 to fct [phi:main::@1->fct] fct_from_b1: - //SEG22 [15] phi (byte*) fct::z#2 = ++((byte*))(word/signed word/dword/signed dword) 1104 [phi:main::@1->fct#0] -- pbuz1=pbuc1 + //SEG22 [15] phi (byte*) fct::z#2 = ++((byte*))(word/signed word/dword/signed dword) $450 [phi:main::@1->fct#0] -- pbuz1=pbuc1 lda #<$450+1 sta fct.z lda #>$450+1 sta fct.z+1 - //SEG23 [15] phi (byte) fct::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 85 [phi:main::@1->fct#1] -- vbuxx=vbuc1 + //SEG23 [15] phi (byte) fct::x#2 = (byte/signed byte/word/signed word/dword/signed dword) $55 [phi:main::@1->fct#1] -- vbuxx=vbuc1 ldx #$55 jsr fct //SEG24 [11] (byte) fct::return#1 ← (byte) fct::return#2 @@ -509,7 +509,7 @@ FINAL SYMBOL TABLE (byte) main::a2 (byte) main::a2#0 reg byte a 4.0 (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::x (byte*) main::z @@ -542,20 +542,20 @@ Score: 77 //SEG9 main main: { .label screen = $400 - //SEG10 [4] *(((byte*))(word/signed word/dword/signed dword) 1104+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/word/signed word/dword/signed dword) 240 -- _deref_pbuc1=vbuc2 + //SEG10 [4] *(((byte*))(word/signed word/dword/signed dword) $450+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/word/signed word/dword/signed dword) $f0 -- _deref_pbuc1=vbuc2 lda #$f0 sta $450+2 - //SEG11 [5] *(((byte*))(word/signed word/dword/signed dword) 1104+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 + //SEG11 [5] *(((byte*))(word/signed word/dword/signed dword) $450+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) $f -- _deref_pbuc1=vbuc2 lda #$f sta $450+3 //SEG12 [6] call fct //SEG13 [15] phi from main to fct [phi:main->fct] - //SEG14 [15] phi (byte*) fct::z#2 = ((byte*))(word/signed word/dword/signed dword) 1104 [phi:main->fct#0] -- pbuz1=pbuc1 + //SEG14 [15] phi (byte*) fct::z#2 = ((byte*))(word/signed word/dword/signed dword) $450 [phi:main->fct#0] -- pbuz1=pbuc1 lda #<$450 sta fct.z lda #>$450 sta fct.z+1 - //SEG15 [15] phi (byte) fct::x#2 = (byte/word/signed word/dword/signed dword) 170 [phi:main->fct#1] -- vbuxx=vbuc1 + //SEG15 [15] phi (byte) fct::x#2 = (byte/word/signed word/dword/signed dword) $aa [phi:main->fct#1] -- vbuxx=vbuc1 ldx #$aa jsr fct //SEG16 [7] (byte) fct::return#0 ← (byte) fct::return#2 @@ -565,12 +565,12 @@ main: { sta screen //SEG20 [10] call fct //SEG21 [15] phi from main::@1 to fct [phi:main::@1->fct] - //SEG22 [15] phi (byte*) fct::z#2 = ++((byte*))(word/signed word/dword/signed dword) 1104 [phi:main::@1->fct#0] -- pbuz1=pbuc1 + //SEG22 [15] phi (byte*) fct::z#2 = ++((byte*))(word/signed word/dword/signed dword) $450 [phi:main::@1->fct#0] -- pbuz1=pbuc1 lda #<$450+1 sta fct.z lda #>$450+1 sta fct.z+1 - //SEG23 [15] phi (byte) fct::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 85 [phi:main::@1->fct#1] -- vbuxx=vbuc1 + //SEG23 [15] phi (byte) fct::x#2 = (byte/signed byte/word/signed word/dword/signed dword) $55 [phi:main::@1->fct#1] -- vbuxx=vbuc1 ldx #$55 jsr fct //SEG24 [11] (byte) fct::return#1 ← (byte) fct::return#2 diff --git a/src/test/ref/fragment-synth.sym b/src/test/ref/fragment-synth.sym index 5f65fd8fa..f72045951 100644 --- a/src/test/ref/fragment-synth.sym +++ b/src/test/ref/fragment-synth.sym @@ -21,7 +21,7 @@ (byte) main::a2 (byte) main::a2#0 reg byte a 4.0 (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::x (byte*) main::z diff --git a/src/test/ref/halfscii.cfg b/src/test/ref/halfscii.cfg index 14efb8e23..d45472eed 100644 --- a/src/test/ref/halfscii.cfg +++ b/src/test/ref/halfscii.cfg @@ -9,14 +9,14 @@ [3] phi() main: scope:[main] from @1 asm { sei } - [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 + [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 to:main::@1 main::@1: scope:[main] from main main::@5 [6] (byte*) main::charset4#10 ← phi( main/(const byte*) CHARSET4#0 main::@5/(byte*) main::charset4#1 ) [6] (byte*) main::chargen#10 ← phi( main/(const byte*) CHARGEN#0 main::@5/(byte*) main::chargen#1 ) [7] (byte*) main::chargen1#0 ← (byte*) main::chargen#10 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [8] (byte~) main::$1 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) 96 - [9] (byte~) main::$2 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) 96 + [8] (byte~) main::$1 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) $60 + [9] (byte~) main::$2 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) $60 [10] (byte~) main::$3 ← (byte~) main::$2 >> (byte/signed byte/word/signed word/dword/signed dword) 2 [11] (byte~) main::$4 ← (byte~) main::$1 | (byte~) main::$3 [12] (byte~) main::$5 ← (byte~) main::$4 >> (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -30,8 +30,8 @@ main::@7: scope:[main] from main::@1 main::@2: scope:[main] from main::@1 main::@7 [17] (byte) main::bits_gen#9 ← phi( main::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [18] (byte) main::bits_gen#1 ← (byte) main::bits_gen#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [19] (byte~) main::$11 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) 24 - [20] (byte~) main::$12 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) 24 + [19] (byte~) main::$11 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) $18 + [20] (byte~) main::$12 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) $18 [21] (byte~) main::$13 ← (byte~) main::$12 >> (byte/signed byte/word/signed word/dword/signed dword) 2 [22] (byte~) main::$14 ← (byte~) main::$11 | (byte~) main::$13 [23] (byte~) main::$15 ← (byte~) main::$14 >> (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -74,10 +74,10 @@ main::@5: scope:[main] from main::@10 main::@4 [48] *((byte*) main::charset4#10) ← (byte) main::bits_gen#7 [49] (byte*) main::charset4#1 ← ++ (byte*) main::charset4#10 [50] (byte*) main::chargen#1 ← (byte*) main::chargen#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [51] if((byte*) main::chargen#1<(const byte*) CHARGEN#0+(word/signed word/dword/signed dword) 2048) goto main::@1 + [51] if((byte*) main::chargen#1<(const byte*) CHARGEN#0+(word/signed word/dword/signed dword) $800) goto main::@1 to:main::@11 main::@11: scope:[main] from main::@5 - [52] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 + [52] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 asm { cli } to:main::@6 main::@6: scope:[main] from main::@11 main::@6 @@ -87,7 +87,7 @@ main::@6: scope:[main] from main::@11 main::@6 [57] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@6 to:main::@12 main::@12: scope:[main] from main::@6 - [58] *((const byte*) D018#0) ← (byte/signed byte/word/signed word/dword/signed dword) 25 + [58] *((const byte*) D018#0) ← (byte/signed byte/word/signed word/dword/signed dword) $19 to:main::@return main::@return: scope:[main] from main::@12 [59] return diff --git a/src/test/ref/halfscii.log b/src/test/ref/halfscii.log index d9988fea3..9586177a7 100644 --- a/src/test/ref/halfscii.log +++ b/src/test/ref/halfscii.log @@ -1,12 +1,12 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte*) CHARSET#0 ← ((byte*)) (word/signed word/dword/signed dword) 8192 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte*) CHARSET#0 ← ((byte*)) (word/signed word/dword/signed dword) $2000 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) CHARSET4#0 ← ((byte*)) (word/signed word/dword/signed dword) 10240 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) CHARSET4#0 ← ((byte*)) (word/signed word/dword/signed dword) $2800 (byte[]) bits_count#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (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) 2, (byte/signed byte/word/signed word/dword/signed dword) 3, (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) 2, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4 } to:@1 main: scope:[main] from @1 @@ -16,7 +16,7 @@ main: scope:[main] from @1 (byte*) CHARGEN#1 ← phi( @1/(byte*) CHARGEN#3 ) (byte*) PROCPORT#1 ← phi( @1/(byte*) PROCPORT#3 ) asm { sei } - *((byte*) PROCPORT#1) ← (byte/signed byte/word/signed word/dword/signed dword) 50 + *((byte*) PROCPORT#1) ← (byte/signed byte/word/signed word/dword/signed dword) $32 (byte*) main::chargen#0 ← (byte*) CHARGEN#1 (byte*) main::charset4#0 ← (byte*) CHARSET4#1 to:main::@1 @@ -30,8 +30,8 @@ main::@1: scope:[main] from main main::@5 (byte) main::bits_gen#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*~) main::$0 ← (byte*) main::chargen#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) main::chargen1#0 ← (byte*~) main::$0 - (byte~) main::$1 ← *((byte*) main::chargen#2) & (byte/signed byte/word/signed word/dword/signed dword) 96 - (byte~) main::$2 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) 96 + (byte~) main::$1 ← *((byte*) main::chargen#2) & (byte/signed byte/word/signed word/dword/signed dword) $60 + (byte~) main::$2 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) $60 (byte~) main::$3 ← (byte~) main::$2 >> (byte/signed byte/word/signed word/dword/signed dword) 2 (byte~) main::$4 ← (byte~) main::$1 | (byte~) main::$3 (byte~) main::$5 ← (byte~) main::$4 >> (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -52,8 +52,8 @@ main::@2: scope:[main] from main::@1 main::@7 (byte) main::bits_gen#9 ← phi( main::@1/(byte) main::bits_gen#0 main::@7/(byte) main::bits_gen#2 ) (byte~) main::$10 ← (byte) main::bits_gen#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) main::bits_gen#1 ← (byte~) main::$10 - (byte~) main::$11 ← *((byte*) main::chargen#3) & (byte/signed byte/word/signed word/dword/signed dword) 24 - (byte~) main::$12 ← *((byte*) main::chargen1#1) & (byte/signed byte/word/signed word/dword/signed dword) 24 + (byte~) main::$11 ← *((byte*) main::chargen#3) & (byte/signed byte/word/signed word/dword/signed dword) $18 + (byte~) main::$12 ← *((byte*) main::chargen1#1) & (byte/signed byte/word/signed word/dword/signed dword) $18 (byte~) main::$13 ← (byte~) main::$12 >> (byte/signed byte/word/signed word/dword/signed dword) 2 (byte~) main::$14 ← (byte~) main::$11 | (byte~) main::$13 (byte~) main::$15 ← (byte~) main::$14 >> (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -153,7 +153,7 @@ main::@5: scope:[main] from main::@10 main::@4 (byte*) main::charset4#1 ← ++ (byte*) main::charset4#2 (byte*~) main::$37 ← (byte*) main::chargen#6 + (byte/signed byte/word/signed word/dword/signed dword) 2 (byte*) main::chargen#1 ← (byte*~) main::$37 - (byte*~) main::$38 ← (byte*) CHARGEN#2 + (word/signed word/dword/signed dword) 2048 + (byte*~) main::$38 ← (byte*) CHARGEN#2 + (word/signed word/dword/signed dword) $800 (bool~) main::$39 ← (byte*) main::chargen#1 < (byte*~) main::$38 if((bool~) main::$39) goto main::@1 to:main::@11 @@ -172,7 +172,7 @@ main::@11: scope:[main] from main::@5 (byte*) D018#3 ← phi( main::@5/(byte*) D018#4 ) (byte*) SCREEN#2 ← phi( main::@5/(byte*) SCREEN#3 ) (byte*) PROCPORT#2 ← phi( main::@5/(byte*) PROCPORT#4 ) - *((byte*) PROCPORT#2) ← (byte/signed byte/word/signed word/dword/signed dword) 55 + *((byte*) PROCPORT#2) ← (byte/signed byte/word/signed word/dword/signed dword) $37 asm { cli } (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@6 @@ -181,13 +181,13 @@ main::@6: scope:[main] from main::@11 main::@6 (byte*) SCREEN#1 ← phi( main::@11/(byte*) SCREEN#2 main::@6/(byte*) SCREEN#1 ) (byte) main::i#2 ← phi( main::@11/(byte) main::i#0 main::@6/(byte) main::i#1 ) *((byte*) SCREEN#1 + (byte) main::i#2) ← (byte) main::i#2 - (byte) main::i#1 ← (byte) main::i#2 + rangenext(0,255) - (bool~) main::$40 ← (byte) main::i#1 != rangelast(0,255) + (byte) main::i#1 ← (byte) main::i#2 + rangenext(0,$ff) + (bool~) main::$40 ← (byte) main::i#1 != rangelast(0,$ff) if((bool~) main::$40) goto main::@6 to:main::@12 main::@12: scope:[main] from main::@6 (byte*) D018#1 ← phi( main::@6/(byte*) D018#2 ) - *((byte*) D018#1) ← (byte/signed byte/word/signed word/dword/signed dword) 25 + *((byte*) D018#1) ← (byte/signed byte/word/signed word/dword/signed dword) $19 to:main::@return main::@return: scope:[main] from main::@12 return @@ -476,14 +476,14 @@ Simple Condition (bool~) main::$17 [37] if((byte) main::bits#1<(byte/signed byte Simple Condition (bool~) main::$26 [52] if((byte) main::bits#2<(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@4 Simple Condition (bool~) main::$34 [66] if((byte) main::bits#3<(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@5 Simple Condition (bool~) main::$39 [79] if((byte*) main::chargen#1<(byte*~) main::$38) goto main::@1 -Simple Condition (bool~) main::$40 [91] if((byte) main::i#1!=rangelast(0,255)) goto main::@6 +Simple Condition (bool~) main::$40 [91] if((byte) main::i#1!=rangelast(0,$ff)) goto main::@6 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) SCREEN#0 = ((byte*))1024 -Constant (const byte*) CHARSET#0 = ((byte*))8192 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 +Constant (const byte*) SCREEN#0 = ((byte*))$400 +Constant (const byte*) CHARSET#0 = ((byte*))$2000 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) CHARSET4#0 = ((byte*))10240 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) CHARSET4#0 = ((byte*))$2800 Constant (const byte[]) bits_count#0 = { 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 } Constant (const byte) main::bits_gen#0 = 0 Constant (const byte) main::i#0 = 0 @@ -491,11 +491,11 @@ Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::chargen#0 = CHARGEN#0 Constant (const byte*) main::charset4#0 = CHARSET4#0 Constant (const byte) main::bits_gen#2 = main::bits_gen#0+1 -Constant (const byte*) main::$38 = CHARGEN#0+2048 +Constant (const byte*) main::$38 = CHARGEN#0+$800 Successful SSA optimization Pass2ConstantIdentification Successful SSA optimization PassNEliminateUnusedVars Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ -Resolved ranged comparison value if(main::i#1!=rangelast(0,255)) goto main::@6 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(main::i#1!=rangelast(0,$ff)) goto main::@6 to (byte/signed byte/word/signed word/dword/signed dword) 0 Inlining constant with var siblings (const byte) main::bits_gen#0 Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte*) main::chargen#0 @@ -505,7 +505,7 @@ Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dwo Constant inlined main::bits_gen#2 = (byte/signed byte/word/signed word/dword/signed dword) 0+(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined main::chargen#0 = (const byte*) CHARGEN#0 Constant inlined main::bits_gen#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$38 = (const byte*) CHARGEN#0+(word/signed word/dword/signed dword) 2048 +Constant inlined main::$38 = (const byte*) CHARGEN#0+(word/signed word/dword/signed dword) $800 Constant inlined main::charset4#0 = (const byte*) CHARSET4#0 Successful SSA optimization Pass2ConstantInlining Simplifying constant plus zero 0+1 @@ -554,14 +554,14 @@ FINAL CONTROL FLOW GRAPH [3] phi() main: scope:[main] from @1 asm { sei } - [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 + [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 to:main::@1 main::@1: scope:[main] from main main::@5 [6] (byte*) main::charset4#10 ← phi( main/(const byte*) CHARSET4#0 main::@5/(byte*) main::charset4#1 ) [6] (byte*) main::chargen#10 ← phi( main/(const byte*) CHARGEN#0 main::@5/(byte*) main::chargen#1 ) [7] (byte*) main::chargen1#0 ← (byte*) main::chargen#10 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [8] (byte~) main::$1 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) 96 - [9] (byte~) main::$2 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) 96 + [8] (byte~) main::$1 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) $60 + [9] (byte~) main::$2 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) $60 [10] (byte~) main::$3 ← (byte~) main::$2 >> (byte/signed byte/word/signed word/dword/signed dword) 2 [11] (byte~) main::$4 ← (byte~) main::$1 | (byte~) main::$3 [12] (byte~) main::$5 ← (byte~) main::$4 >> (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -575,8 +575,8 @@ main::@7: scope:[main] from main::@1 main::@2: scope:[main] from main::@1 main::@7 [17] (byte) main::bits_gen#9 ← phi( main::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [18] (byte) main::bits_gen#1 ← (byte) main::bits_gen#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [19] (byte~) main::$11 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) 24 - [20] (byte~) main::$12 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) 24 + [19] (byte~) main::$11 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) $18 + [20] (byte~) main::$12 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) $18 [21] (byte~) main::$13 ← (byte~) main::$12 >> (byte/signed byte/word/signed word/dword/signed dword) 2 [22] (byte~) main::$14 ← (byte~) main::$11 | (byte~) main::$13 [23] (byte~) main::$15 ← (byte~) main::$14 >> (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -619,10 +619,10 @@ main::@5: scope:[main] from main::@10 main::@4 [48] *((byte*) main::charset4#10) ← (byte) main::bits_gen#7 [49] (byte*) main::charset4#1 ← ++ (byte*) main::charset4#10 [50] (byte*) main::chargen#1 ← (byte*) main::chargen#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [51] if((byte*) main::chargen#1<(const byte*) CHARGEN#0+(word/signed word/dword/signed dword) 2048) goto main::@1 + [51] if((byte*) main::chargen#1<(const byte*) CHARGEN#0+(word/signed word/dword/signed dword) $800) goto main::@1 to:main::@11 main::@11: scope:[main] from main::@5 - [52] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 + [52] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 asm { cli } to:main::@6 main::@6: scope:[main] from main::@11 main::@6 @@ -632,7 +632,7 @@ main::@6: scope:[main] from main::@11 main::@6 [57] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@6 to:main::@12 main::@12: scope:[main] from main::@6 - [58] *((const byte*) D018#0) ← (byte/signed byte/word/signed word/dword/signed dword) 25 + [58] *((const byte*) D018#0) ← (byte/signed byte/word/signed word/dword/signed dword) $19 to:main::@return main::@return: scope:[main] from main::@12 [59] return @@ -866,7 +866,7 @@ main: { .label bits_gen_16 = 9 //SEG10 asm { sei } sei - //SEG11 [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- _deref_pbuc1=vbuc2 + //SEG11 [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 -- _deref_pbuc1=vbuc2 lda #$32 sta PROCPORT //SEG12 [6] phi from main to main::@1 [phi:main->main::@1] @@ -897,12 +897,12 @@ main: { lda chargen+1 adc #0 sta chargen1+1 - //SEG20 [8] (byte~) main::$1 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) 96 -- vbuz1=_deref_pbuz2_band_vbuc1 + //SEG20 [8] (byte~) main::$1 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) $60 -- vbuz1=_deref_pbuz2_band_vbuc1 lda #$60 ldy #0 and (chargen),y sta _1 - //SEG21 [9] (byte~) main::$2 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) 96 -- vbuz1=_deref_pbuz2_band_vbuc1 + //SEG21 [9] (byte~) main::$2 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) $60 -- vbuz1=_deref_pbuz2_band_vbuc1 lda #$60 ldy #0 and (chargen1),y @@ -956,12 +956,12 @@ main: { lda bits_gen_9 asl sta bits_gen - //SEG36 [19] (byte~) main::$11 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=_deref_pbuz2_band_vbuc1 + //SEG36 [19] (byte~) main::$11 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) $18 -- vbuz1=_deref_pbuz2_band_vbuc1 lda #$18 ldy #0 and (chargen),y sta _11 - //SEG37 [20] (byte~) main::$12 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=_deref_pbuz2_band_vbuc1 + //SEG37 [20] (byte~) main::$12 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) $18 -- vbuz1=_deref_pbuz2_band_vbuc1 lda #$18 ldy #0 and (chargen1),y @@ -1109,7 +1109,7 @@ main: { bcc !+ inc chargen+1 !: - //SEG77 [51] if((byte*) main::chargen#1<(const byte*) CHARGEN#0+(word/signed word/dword/signed dword) 2048) goto main::@1 -- pbuz1_lt_pbuc1_then_la1 + //SEG77 [51] if((byte*) main::chargen#1<(const byte*) CHARGEN#0+(word/signed word/dword/signed dword) $800) goto main::@1 -- pbuz1_lt_pbuc1_then_la1 lda chargen+1 cmp #>CHARGEN+$800 bcc b1_from_b5 @@ -1121,7 +1121,7 @@ main: { jmp b11 //SEG78 main::@11 b11: - //SEG79 [52] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 -- _deref_pbuc1=vbuc2 + //SEG79 [52] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 -- _deref_pbuc1=vbuc2 lda #$37 sta PROCPORT //SEG80 asm { cli } @@ -1151,7 +1151,7 @@ main: { jmp b12 //SEG89 main::@12 b12: - //SEG90 [58] *((const byte*) D018#0) ← (byte/signed byte/word/signed word/dword/signed dword) 25 -- _deref_pbuc1=vbuc2 + //SEG90 [58] *((const byte*) D018#0) ← (byte/signed byte/word/signed word/dword/signed dword) $19 -- _deref_pbuc1=vbuc2 lda #$19 sta D018 jmp breturn @@ -1163,20 +1163,20 @@ main: { bits_count: .byte 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 REGISTER UPLIFT POTENTIAL REGISTERS -Statement [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [7] (byte*) main::chargen1#0 ← (byte*) main::chargen#10 + (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::chargen#10 main::charset4#10 main::chargen1#0 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 ] ) always clobbers reg byte a -Statement [8] (byte~) main::$1 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) 96 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$1 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$1 ] ) always clobbers reg byte a reg byte y -Statement [9] (byte~) main::$2 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) 96 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$1 main::$2 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$1 main::$2 ] ) always clobbers reg byte a reg byte y +Statement [8] (byte~) main::$1 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) $60 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$1 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$1 ] ) always clobbers reg byte a reg byte y +Statement [9] (byte~) main::$2 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) $60 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$1 main::$2 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$1 main::$2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp ZP_BYTE:13 [ main::$1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:13 [ main::$1 ] Statement [10] (byte~) main::$3 ← (byte~) main::$2 >> (byte/signed byte/word/signed word/dword/signed dword) 2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$1 main::$3 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$1 main::$3 ] ) always clobbers reg byte a Statement [12] (byte~) main::$5 ← (byte~) main::$4 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$5 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$5 ] ) always clobbers reg byte a Statement [13] (byte~) main::$6 ← (byte~) main::$5 >> (byte/signed byte/word/signed word/dword/signed dword) 2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$6 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$6 ] ) always clobbers reg byte a Statement [18] (byte) main::bits_gen#1 ← (byte) main::bits_gen#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#1 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#1 ] ) always clobbers reg byte a -Statement [19] (byte~) main::$11 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) 24 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$11 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$11 ] ) always clobbers reg byte a reg byte y +Statement [19] (byte~) main::$11 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) $18 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$11 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$11 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp ZP_BYTE:7 [ main::bits_gen#11 main::bits_gen#1 main::bits_gen#4 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:7 [ main::bits_gen#11 main::bits_gen#1 main::bits_gen#4 ] -Statement [20] (byte~) main::$12 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) 24 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$11 main::$12 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$11 main::$12 ] ) always clobbers reg byte a reg byte y +Statement [20] (byte~) main::$12 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) $18 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$11 main::$12 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$11 main::$12 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp ZP_BYTE:20 [ main::$11 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:20 [ main::$11 ] Statement [21] (byte~) main::$13 ← (byte~) main::$12 >> (byte/signed byte/word/signed word/dword/signed dword) 2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$11 main::$13 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$11 main::$13 ] ) always clobbers reg byte a @@ -1201,19 +1201,19 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:33 [ m Statement [47] (byte) main::bits_gen#7 ← (byte) main::bits_gen#15 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::chargen#10 main::charset4#10 main::bits_gen#7 ] ( main:2 [ main::chargen#10 main::charset4#10 main::bits_gen#7 ] ) always clobbers reg byte a Statement [48] *((byte*) main::charset4#10) ← (byte) main::bits_gen#7 [ main::chargen#10 main::charset4#10 ] ( main:2 [ main::chargen#10 main::charset4#10 ] ) always clobbers reg byte y Statement [50] (byte*) main::chargen#1 ← (byte*) main::chargen#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ main::chargen#1 main::charset4#1 ] ( main:2 [ main::chargen#1 main::charset4#1 ] ) always clobbers reg byte a -Statement [51] if((byte*) main::chargen#1<(const byte*) CHARGEN#0+(word/signed word/dword/signed dword) 2048) goto main::@1 [ main::chargen#1 main::charset4#1 ] ( main:2 [ main::chargen#1 main::charset4#1 ] ) always clobbers reg byte a -Statement [52] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [58] *((const byte*) D018#0) ← (byte/signed byte/word/signed word/dword/signed dword) 25 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [51] if((byte*) main::chargen#1<(const byte*) CHARGEN#0+(word/signed word/dword/signed dword) $800) goto main::@1 [ main::chargen#1 main::charset4#1 ] ( main:2 [ main::chargen#1 main::charset4#1 ] ) always clobbers reg byte a +Statement [52] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [58] *((const byte*) D018#0) ← (byte/signed byte/word/signed word/dword/signed dword) $19 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [7] (byte*) main::chargen1#0 ← (byte*) main::chargen#10 + (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::chargen#10 main::charset4#10 main::chargen1#0 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 ] ) always clobbers reg byte a -Statement [8] (byte~) main::$1 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) 96 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$1 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$1 ] ) always clobbers reg byte a reg byte y -Statement [9] (byte~) main::$2 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) 96 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$1 main::$2 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$1 main::$2 ] ) always clobbers reg byte a reg byte y +Statement [8] (byte~) main::$1 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) $60 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$1 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$1 ] ) always clobbers reg byte a reg byte y +Statement [9] (byte~) main::$2 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) $60 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$1 main::$2 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$1 main::$2 ] ) always clobbers reg byte a reg byte y Statement [10] (byte~) main::$3 ← (byte~) main::$2 >> (byte/signed byte/word/signed word/dword/signed dword) 2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$1 main::$3 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$1 main::$3 ] ) always clobbers reg byte a Statement [12] (byte~) main::$5 ← (byte~) main::$4 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$5 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$5 ] ) always clobbers reg byte a Statement [13] (byte~) main::$6 ← (byte~) main::$5 >> (byte/signed byte/word/signed word/dword/signed dword) 2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$6 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::$6 ] ) always clobbers reg byte a Statement [18] (byte) main::bits_gen#1 ← (byte) main::bits_gen#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#1 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#1 ] ) always clobbers reg byte a -Statement [19] (byte~) main::$11 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) 24 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$11 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$11 ] ) always clobbers reg byte a reg byte y -Statement [20] (byte~) main::$12 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) 24 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$11 main::$12 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$11 main::$12 ] ) always clobbers reg byte a reg byte y +Statement [19] (byte~) main::$11 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) $18 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$11 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$11 ] ) always clobbers reg byte a reg byte y +Statement [20] (byte~) main::$12 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) $18 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$11 main::$12 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$11 main::$12 ] ) always clobbers reg byte a reg byte y Statement [21] (byte~) main::$13 ← (byte~) main::$12 >> (byte/signed byte/word/signed word/dword/signed dword) 2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$11 main::$13 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$11 main::$13 ] ) always clobbers reg byte a Statement [23] (byte~) main::$15 ← (byte~) main::$14 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#1 main::$15 ] ) always clobbers reg byte a Statement [28] (byte) main::bits_gen#14 ← (byte) main::bits_gen#11 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#14 ] ( main:2 [ main::chargen#10 main::charset4#10 main::chargen1#0 main::bits_gen#14 ] ) always clobbers reg byte a @@ -1228,9 +1228,9 @@ Statement [41] (byte~) main::$31 ← *((byte*) main::chargen1#0) & (byte/signed Statement [47] (byte) main::bits_gen#7 ← (byte) main::bits_gen#15 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::chargen#10 main::charset4#10 main::bits_gen#7 ] ( main:2 [ main::chargen#10 main::charset4#10 main::bits_gen#7 ] ) always clobbers reg byte a Statement [48] *((byte*) main::charset4#10) ← (byte) main::bits_gen#7 [ main::chargen#10 main::charset4#10 ] ( main:2 [ main::chargen#10 main::charset4#10 ] ) always clobbers reg byte y Statement [50] (byte*) main::chargen#1 ← (byte*) main::chargen#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ main::chargen#1 main::charset4#1 ] ( main:2 [ main::chargen#1 main::charset4#1 ] ) always clobbers reg byte a -Statement [51] if((byte*) main::chargen#1<(const byte*) CHARGEN#0+(word/signed word/dword/signed dword) 2048) goto main::@1 [ main::chargen#1 main::charset4#1 ] ( main:2 [ main::chargen#1 main::charset4#1 ] ) always clobbers reg byte a -Statement [52] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [58] *((const byte*) D018#0) ← (byte/signed byte/word/signed word/dword/signed dword) 25 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [51] if((byte*) main::chargen#1<(const byte*) CHARGEN#0+(word/signed word/dword/signed dword) $800) goto main::@1 [ main::chargen#1 main::charset4#1 ] ( main:2 [ main::chargen#1 main::charset4#1 ] ) always clobbers reg byte a +Statement [52] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [58] *((const byte*) D018#0) ← (byte/signed byte/word/signed word/dword/signed dword) $19 [ ] ( main:2 [ ] ) always clobbers reg byte a Potential registers zp ZP_WORD:2 [ main::chargen#10 main::chargen#1 ] : zp ZP_WORD:2 , Potential registers zp ZP_WORD:4 [ main::charset4#10 main::charset4#1 ] : zp ZP_WORD:4 , Potential registers zp ZP_BYTE:6 [ main::bits_gen#9 ] : zp ZP_BYTE:6 , reg byte a , reg byte x , reg byte y , @@ -1373,7 +1373,7 @@ main: { .label chargen = 2 //SEG10 asm { sei } sei - //SEG11 [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- _deref_pbuc1=vbuc2 + //SEG11 [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 -- _deref_pbuc1=vbuc2 lda #$32 sta PROCPORT //SEG12 [6] phi from main to main::@1 [phi:main->main::@1] @@ -1404,12 +1404,12 @@ main: { lda chargen+1 adc #0 sta chargen1+1 - //SEG20 [8] (byte~) main::$1 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) 96 -- vbuz1=_deref_pbuz2_band_vbuc1 + //SEG20 [8] (byte~) main::$1 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) $60 -- vbuz1=_deref_pbuz2_band_vbuc1 lda #$60 ldy #0 and (chargen),y sta _1 - //SEG21 [9] (byte~) main::$2 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) 96 -- vbuaa=_deref_pbuz1_band_vbuc1 + //SEG21 [9] (byte~) main::$2 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) $60 -- vbuaa=_deref_pbuz1_band_vbuc1 lda #$60 ldy #0 and (chargen1),y @@ -1449,12 +1449,12 @@ main: { //SEG35 [18] (byte) main::bits_gen#1 ← (byte) main::bits_gen#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=vbuaa_rol_1 asl tax - //SEG36 [19] (byte~) main::$11 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=_deref_pbuz2_band_vbuc1 + //SEG36 [19] (byte~) main::$11 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) $18 -- vbuz1=_deref_pbuz2_band_vbuc1 lda #$18 ldy #0 and (chargen),y sta _11 - //SEG37 [20] (byte~) main::$12 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuaa=_deref_pbuz1_band_vbuc1 + //SEG37 [20] (byte~) main::$12 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) $18 -- vbuaa=_deref_pbuz1_band_vbuc1 lda #$18 ldy #0 and (chargen1),y @@ -1575,7 +1575,7 @@ main: { bcc !+ inc chargen+1 !: - //SEG77 [51] if((byte*) main::chargen#1<(const byte*) CHARGEN#0+(word/signed word/dword/signed dword) 2048) goto main::@1 -- pbuz1_lt_pbuc1_then_la1 + //SEG77 [51] if((byte*) main::chargen#1<(const byte*) CHARGEN#0+(word/signed word/dword/signed dword) $800) goto main::@1 -- pbuz1_lt_pbuc1_then_la1 lda chargen+1 cmp #>CHARGEN+$800 bcc b1_from_b5 @@ -1587,7 +1587,7 @@ main: { jmp b11 //SEG78 main::@11 b11: - //SEG79 [52] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 -- _deref_pbuc1=vbuc2 + //SEG79 [52] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 -- _deref_pbuc1=vbuc2 lda #$37 sta PROCPORT //SEG80 asm { cli } @@ -1614,7 +1614,7 @@ main: { jmp b12 //SEG89 main::@12 b12: - //SEG90 [58] *((const byte*) D018#0) ← (byte/signed byte/word/signed word/dword/signed dword) 25 -- _deref_pbuc1=vbuc2 + //SEG90 [58] *((const byte*) D018#0) ← (byte/signed byte/word/signed word/dword/signed dword) $19 -- _deref_pbuc1=vbuc2 lda #$19 sta D018 jmp breturn @@ -1696,16 +1696,16 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) CHARGEN -(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word/dword/signed dword) 53248 +(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word/dword/signed dword) $d000 (byte*) CHARSET (byte*) CHARSET4 -(const byte*) CHARSET4#0 CHARSET4 = ((byte*))(word/signed word/dword/signed dword) 10240 +(const byte*) CHARSET4#0 CHARSET4 = ((byte*))(word/signed word/dword/signed dword) $2800 (byte*) D018 -(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) 53272 +(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) $d018 (byte*) PROCPORT (const byte*) PROCPORT#0 PROCPORT = ((byte*))(byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte[]) bits_count (const byte[]) bits_count#0 bits_count = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (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) 2, (byte/signed byte/word/signed word/dword/signed dword) 3, (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) 2, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4 } (void()) main() @@ -1834,7 +1834,7 @@ main: { .label chargen = 2 //SEG10 asm { sei } sei - //SEG11 [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- _deref_pbuc1=vbuc2 + //SEG11 [5] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $32 -- _deref_pbuc1=vbuc2 lda #$32 sta PROCPORT //SEG12 [6] phi from main to main::@1 [phi:main->main::@1] @@ -1861,12 +1861,12 @@ main: { lda chargen+1 adc #0 sta chargen1+1 - //SEG20 [8] (byte~) main::$1 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) 96 -- vbuz1=_deref_pbuz2_band_vbuc1 + //SEG20 [8] (byte~) main::$1 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) $60 -- vbuz1=_deref_pbuz2_band_vbuc1 lda #$60 ldy #0 and (chargen),y sta _1 - //SEG21 [9] (byte~) main::$2 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) 96 -- vbuaa=_deref_pbuz1_band_vbuc1 + //SEG21 [9] (byte~) main::$2 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) $60 -- vbuaa=_deref_pbuz1_band_vbuc1 lda #$60 and (chargen1),y //SEG22 [10] (byte~) main::$3 ← (byte~) main::$2 >> (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuaa_ror_2 @@ -1900,12 +1900,12 @@ main: { //SEG35 [18] (byte) main::bits_gen#1 ← (byte) main::bits_gen#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=vbuaa_rol_1 asl tax - //SEG36 [19] (byte~) main::$11 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=_deref_pbuz2_band_vbuc1 + //SEG36 [19] (byte~) main::$11 ← *((byte*) main::chargen#10) & (byte/signed byte/word/signed word/dword/signed dword) $18 -- vbuz1=_deref_pbuz2_band_vbuc1 lda #$18 ldy #0 and (chargen),y sta _11 - //SEG37 [20] (byte~) main::$12 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuaa=_deref_pbuz1_band_vbuc1 + //SEG37 [20] (byte~) main::$12 ← *((byte*) main::chargen1#0) & (byte/signed byte/word/signed word/dword/signed dword) $18 -- vbuaa=_deref_pbuz1_band_vbuc1 lda #$18 and (chargen1),y //SEG38 [21] (byte~) main::$13 ← (byte~) main::$12 >> (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuaa_ror_2 @@ -2008,7 +2008,7 @@ main: { bcc !+ inc chargen+1 !: - //SEG77 [51] if((byte*) main::chargen#1<(const byte*) CHARGEN#0+(word/signed word/dword/signed dword) 2048) goto main::@1 -- pbuz1_lt_pbuc1_then_la1 + //SEG77 [51] if((byte*) main::chargen#1<(const byte*) CHARGEN#0+(word/signed word/dword/signed dword) $800) goto main::@1 -- pbuz1_lt_pbuc1_then_la1 lda chargen+1 cmp #>CHARGEN+$800 bcs !b1+ @@ -2022,7 +2022,7 @@ main: { !b1: !: //SEG78 main::@11 - //SEG79 [52] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 -- _deref_pbuc1=vbuc2 + //SEG79 [52] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) $37 -- _deref_pbuc1=vbuc2 lda #$37 sta PROCPORT //SEG80 asm { cli } @@ -2043,7 +2043,7 @@ main: { cpx #0 bne b6 //SEG89 main::@12 - //SEG90 [58] *((const byte*) D018#0) ← (byte/signed byte/word/signed word/dword/signed dword) 25 -- _deref_pbuc1=vbuc2 + //SEG90 [58] *((const byte*) D018#0) ← (byte/signed byte/word/signed word/dword/signed dword) $19 -- _deref_pbuc1=vbuc2 lda #$19 sta D018 //SEG91 main::@return diff --git a/src/test/ref/halfscii.sym b/src/test/ref/halfscii.sym index 0e82de07a..b7b8ea0e0 100644 --- a/src/test/ref/halfscii.sym +++ b/src/test/ref/halfscii.sym @@ -2,16 +2,16 @@ (label) @begin (label) @end (byte*) CHARGEN -(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word/dword/signed dword) 53248 +(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word/dword/signed dword) $d000 (byte*) CHARSET (byte*) CHARSET4 -(const byte*) CHARSET4#0 CHARSET4 = ((byte*))(word/signed word/dword/signed dword) 10240 +(const byte*) CHARSET4#0 CHARSET4 = ((byte*))(word/signed word/dword/signed dword) $2800 (byte*) D018 -(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) 53272 +(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) $d018 (byte*) PROCPORT (const byte*) PROCPORT#0 PROCPORT = ((byte*))(byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte[]) bits_count (const byte[]) bits_count#0 bits_count = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (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) 2, (byte/signed byte/word/signed word/dword/signed dword) 3, (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) 2, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4 } (void()) main() diff --git a/src/test/ref/helloworld2-inline.log b/src/test/ref/helloworld2-inline.log index b475ae567..42836f25f 100644 --- a/src/test/ref/helloworld2-inline.log +++ b/src/test/ref/helloworld2-inline.log @@ -3,7 +3,7 @@ Inlined call call print2 (byte*~) main::$1 (byte*) main::hello CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@2 main: scope:[main] from @2 (byte*) screen#1 ← phi( @2/(byte*) screen#3 ) @@ -35,7 +35,7 @@ main::print21_@1: scope:[main] from main::print21 main::print21_@1 main::@1: scope:[main] from main::print21_@1 (byte*) main::hello#1 ← phi( main::print21_@1/(byte*) main::hello#2 ) (byte*) screen#2 ← phi( main::print21_@1/(byte*) screen#4 ) - (byte*~) main::$1 ← (byte*) screen#2 + (byte/signed byte/word/signed word/dword/signed dword) 80 + (byte*~) main::$1 ← (byte*) screen#2 + (byte/signed byte/word/signed word/dword/signed dword) $50 (byte*) main::print22_at#0 ← (byte*~) main::$1 (byte*) main::print22_msg#0 ← (byte*) main::hello#1 to:main::print22 @@ -158,7 +158,7 @@ Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool) main::print21_$0#0 [13] if(*((byte*) main::print21_msg#0 + (byte) main::print21_i#1)!=(byte) '@') goto main::print21_@1 Simple Condition (bool) main::print22_$0#0 [26] if(*((byte*) main::print21_msg#0 + (byte) main::print22_i#1)!=(byte) '@') goto main::print22_@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) screen#0 = ((byte*))1024 +Constant (const byte*) screen#0 = ((byte*))$400 Constant (const byte*) main::print21_msg#0 = main::$3 Constant (const byte) main::print21_j#0 = 0 Constant (const byte) main::print21_i#0 = 0 @@ -166,7 +166,7 @@ Constant (const byte) main::print22_j#0 = 0 Constant (const byte) main::print22_i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::print21_at#0 = screen#0 -Constant (const byte*) main::print22_at#0 = screen#0+80 +Constant (const byte*) main::print22_at#0 = screen#0+$50 Successful SSA optimization Pass2ConstantIdentification Culled Empty Block (label) main::@1 Successful SSA optimization Pass2CullEmptyBlocks @@ -581,7 +581,7 @@ FINAL SYMBOL TABLE (bool~) main::print22_$0 (label) main::print22_@1 (byte*) main::print22_at -(const byte*) main::print22_at#0 print22_at = (const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 80 +(const byte*) main::print22_at#0 print22_at = (const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $50 (byte) main::print22_i (byte) main::print22_i#1 reg byte y 16.5 (byte) main::print22_i#2 reg byte y 11.0 @@ -590,7 +590,7 @@ FINAL SYMBOL TABLE (byte) main::print22_j#2 reg byte x 16.5 (byte*) main::print22_msg (byte*) screen -(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 reg byte y [ main::print21_i#2 main::print21_i#1 ] reg byte x [ main::print21_j#2 main::print21_j#1 ] diff --git a/src/test/ref/helloworld2-inline.sym b/src/test/ref/helloworld2-inline.sym index dc3ab069e..dae26b932 100644 --- a/src/test/ref/helloworld2-inline.sym +++ b/src/test/ref/helloworld2-inline.sym @@ -20,7 +20,7 @@ (bool~) main::print22_$0 (label) main::print22_@1 (byte*) main::print22_at -(const byte*) main::print22_at#0 print22_at = (const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 80 +(const byte*) main::print22_at#0 print22_at = (const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $50 (byte) main::print22_i (byte) main::print22_i#1 reg byte y 16.5 (byte) main::print22_i#2 reg byte y 11.0 @@ -29,7 +29,7 @@ (byte) main::print22_j#2 reg byte x 16.5 (byte*) main::print22_msg (byte*) screen -(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 reg byte y [ main::print21_i#2 main::print21_i#1 ] reg byte x [ main::print21_j#2 main::print21_j#1 ] diff --git a/src/test/ref/helloworld2.cfg b/src/test/ref/helloworld2.cfg index cff38c620..d056d0c62 100644 --- a/src/test/ref/helloworld2.cfg +++ b/src/test/ref/helloworld2.cfg @@ -19,7 +19,7 @@ main::@return: scope:[main] from main::@1 [8] return to:@return print2: scope:[print2] from main main::@1 - [9] (byte*) print2::at#3 ← phi( main/(const byte*) screen#0 main::@1/(const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 80 ) + [9] (byte*) print2::at#3 ← phi( main/(const byte*) screen#0 main::@1/(const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $50 ) to:print2::@1 print2::@1: scope:[print2] from print2 print2::@1 [10] (byte) print2::j#2 ← phi( print2/(byte/signed byte/word/signed word/dword/signed dword) 0 print2::@1/(byte) print2::j#1 ) diff --git a/src/test/ref/helloworld2.log b/src/test/ref/helloworld2.log index 29a878ef9..2c6b26c28 100644 --- a/src/test/ref/helloworld2.log +++ b/src/test/ref/helloworld2.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@2 main: scope:[main] from @2 (byte*) screen#1 ← phi( @2/(byte*) screen#3 ) @@ -13,7 +13,7 @@ main: scope:[main] from @2 main::@1: scope:[main] from main (byte*) main::hello#1 ← phi( main/(byte*) main::hello#0 ) (byte*) screen#2 ← phi( main/(byte*) screen#1 ) - (byte*~) main::$1 ← (byte*) screen#2 + (byte/signed byte/word/signed word/dword/signed dword) 80 + (byte*~) main::$1 ← (byte*) screen#2 + (byte/signed byte/word/signed word/dword/signed dword) $50 (byte*) print2::at#1 ← (byte*~) main::$1 (byte*) print2::msg#1 ← (byte*) main::hello#1 call print2 @@ -110,14 +110,14 @@ Redundant Phi (byte*) print2::at#2 (byte*) print2::at#3 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) print2::$0 [20] if(*((byte*) print2::msg#3 + (byte) print2::i#1)!=(byte) '@') goto print2::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) screen#0 = ((byte*))1024 +Constant (const byte*) screen#0 = ((byte*))$400 Constant (const byte*) main::hello#0 = main::$3 Constant (const byte) print2::j#0 = 0 Constant (const byte) print2::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) print2::at#0 = screen#0 Constant (const byte*) print2::msg#0 = main::hello#0 -Constant (const byte*) print2::at#1 = screen#0+80 +Constant (const byte*) print2::at#1 = screen#0+$50 Constant (const byte*) print2::msg#1 = main::hello#0 Successful SSA optimization Pass2ConstantIdentification Inlining constant with var siblings (const byte) print2::j#0 @@ -130,7 +130,7 @@ Constant inlined print2::msg#1 = (const byte*) main::hello#0 Constant inlined print2::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined print2::msg#0 = (const byte*) main::hello#0 Constant inlined print2::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined print2::at#1 = (const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 80 +Constant inlined print2::at#1 = (const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $50 Constant inlined main::$3 = (const byte*) main::hello#0 Constant inlined print2::at#0 = (const byte*) screen#0 Successful SSA optimization Pass2ConstantInlining @@ -179,7 +179,7 @@ main::@return: scope:[main] from main::@1 [8] return to:@return print2: scope:[print2] from main main::@1 - [9] (byte*) print2::at#3 ← phi( main/(const byte*) screen#0 main::@1/(const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 80 ) + [9] (byte*) print2::at#3 ← phi( main/(const byte*) screen#0 main::@1/(const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $50 ) to:print2::@1 print2::@1: scope:[print2] from print2 print2::@1 [10] (byte) print2::j#2 ← phi( print2/(byte/signed byte/word/signed word/dword/signed dword) 0 print2::@1/(byte) print2::j#1 ) @@ -264,7 +264,7 @@ main: { //SEG16 [7] call print2 //SEG17 [9] phi from main::@1 to print2 [phi:main::@1->print2] print2_from_b1: - //SEG18 [9] phi (byte*) print2::at#3 = (const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 80 [phi:main::@1->print2#0] -- pbuz1=pbuc1 + //SEG18 [9] phi (byte*) print2::at#3 = (const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $50 [phi:main::@1->print2#0] -- pbuz1=pbuc1 lda #screen+$50 @@ -386,7 +386,7 @@ main: { //SEG16 [7] call print2 //SEG17 [9] phi from main::@1 to print2 [phi:main::@1->print2] print2_from_b1: - //SEG18 [9] phi (byte*) print2::at#3 = (const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 80 [phi:main::@1->print2#0] -- pbuz1=pbuc1 + //SEG18 [9] phi (byte*) print2::at#3 = (const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $50 [phi:main::@1->print2#0] -- pbuz1=pbuc1 lda #screen+$50 @@ -490,7 +490,7 @@ FINAL SYMBOL TABLE (byte) print2::j#2 reg byte y 16.5 (byte*) print2::msg (byte*) screen -(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 zp ZP_WORD:2 [ print2::at#3 ] reg byte x [ print2::i#2 print2::i#1 ] @@ -528,7 +528,7 @@ main: { //SEG15 main::@1 //SEG16 [7] call print2 //SEG17 [9] phi from main::@1 to print2 [phi:main::@1->print2] - //SEG18 [9] phi (byte*) print2::at#3 = (const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 80 [phi:main::@1->print2#0] -- pbuz1=pbuc1 + //SEG18 [9] phi (byte*) print2::at#3 = (const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $50 [phi:main::@1->print2#0] -- pbuz1=pbuc1 lda #screen+$50 diff --git a/src/test/ref/helloworld2.sym b/src/test/ref/helloworld2.sym index bab1805d7..1a82247f3 100644 --- a/src/test/ref/helloworld2.sym +++ b/src/test/ref/helloworld2.sym @@ -19,7 +19,7 @@ (byte) print2::j#2 reg byte y 16.5 (byte*) print2::msg (byte*) screen -(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 zp ZP_WORD:2 [ print2::at#3 ] reg byte x [ print2::i#2 print2::i#1 ] diff --git a/src/test/ref/ifmin.cfg b/src/test/ref/ifmin.cfg index cfac8a27e..9aad90695 100644 --- a/src/test/ref/ifmin.cfg +++ b/src/test/ref/ifmin.cfg @@ -12,14 +12,14 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@2 [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@2/(byte) main::i#1 ) - [6] if((byte) main::i#2>=(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@2 + [6] if((byte) main::i#2>=(byte/signed byte/word/signed word/dword/signed dword) $32) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@1 [7] *((const byte*) SCREEN#0) ← (byte) main::i#2 to:main::@2 main::@2: scope:[main] from main::@1 main::@3 [8] (byte) main::i#1 ← ++ (byte) main::i#2 - [9] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 100) goto main::@1 + [9] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $64) goto main::@1 to:main::@return main::@return: scope:[main] from main::@2 [10] return diff --git a/src/test/ref/ifmin.log b/src/test/ref/ifmin.log index daf71d0e0..d77f1d21f 100644 --- a/src/test/ref/ifmin.log +++ b/src/test/ref/ifmin.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@1 main: scope:[main] from @1 (byte*) SCREEN#3 ← phi( @1/(byte*) SCREEN#5 ) @@ -10,7 +10,7 @@ main: scope:[main] from @1 main::@1: scope:[main] from main main::@2 (byte*) SCREEN#2 ← phi( main/(byte*) SCREEN#3 main::@2/(byte*) SCREEN#4 ) (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@2/(byte) main::i#1 ) - (bool~) main::$0 ← (byte) main::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 50 + (bool~) main::$0 ← (byte) main::i#2 < (byte/signed byte/word/signed word/dword/signed dword) $32 (bool~) main::$1 ← ! (bool~) main::$0 if((bool~) main::$1) goto main::@2 to:main::@3 @@ -18,7 +18,7 @@ main::@2: scope:[main] from main::@1 main::@3 (byte*) SCREEN#4 ← phi( main::@1/(byte*) SCREEN#2 main::@3/(byte*) SCREEN#1 ) (byte) main::i#3 ← phi( main::@1/(byte) main::i#2 main::@3/(byte) main::i#4 ) (byte) main::i#1 ← ++ (byte) main::i#3 - (bool~) main::$2 ← (byte) main::i#1 < (byte/signed byte/word/signed word/dword/signed dword) 100 + (bool~) main::$2 ← (byte) main::i#1 < (byte/signed byte/word/signed word/dword/signed dword) $64 if((bool~) main::$2) goto main::@1 to:main::@return main::@3: scope:[main] from main::@1 @@ -66,7 +66,7 @@ SYMBOL TABLE SSA Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks -Inversing boolean not [5] (bool~) main::$1 ← (byte) main::i#2 >= (byte/signed byte/word/signed word/dword/signed dword) 50 from [4] (bool~) main::$0 ← (byte) main::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 50 +Inversing boolean not [5] (bool~) main::$1 ← (byte) main::i#2 >= (byte/signed byte/word/signed word/dword/signed dword) $32 from [4] (bool~) main::$0 ← (byte) main::i#2 < (byte/signed byte/word/signed word/dword/signed dword) $32 Successful SSA optimization Pass2UnaryNotSimplification Alias (byte) main::i#2 = (byte) main::i#4 Alias (byte*) SCREEN#1 = (byte*) SCREEN#2 @@ -80,10 +80,10 @@ Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) SCREEN#3 (byte*) SCREEN#0 Redundant Phi (byte*) SCREEN#1 (byte*) SCREEN#3 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$1 [6] if((byte) main::i#2>=(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@2 -Simple Condition (bool~) main::$2 [10] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 100) goto main::@1 +Simple Condition (bool~) main::$1 [6] if((byte) main::i#2>=(byte/signed byte/word/signed word/dword/signed dword) $32) goto main::@2 +Simple Condition (bool~) main::$2 [10] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $64) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Constant (const byte) main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Inlining constant with var siblings (const byte) main::i#0 @@ -121,14 +121,14 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@2 [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@2/(byte) main::i#1 ) - [6] if((byte) main::i#2>=(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@2 + [6] if((byte) main::i#2>=(byte/signed byte/word/signed word/dword/signed dword) $32) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@1 [7] *((const byte*) SCREEN#0) ← (byte) main::i#2 to:main::@2 main::@2: scope:[main] from main::@1 main::@3 [8] (byte) main::i#1 ← ++ (byte) main::i#2 - [9] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 100) goto main::@1 + [9] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $64) goto main::@1 to:main::@return main::@return: scope:[main] from main::@2 [10] return @@ -188,7 +188,7 @@ main: { jmp b1 //SEG15 main::@1 b1: - //SEG16 [6] if((byte) main::i#2>=(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@2 -- vbuz1_ge_vbuc1_then_la1 + //SEG16 [6] if((byte) main::i#2>=(byte/signed byte/word/signed word/dword/signed dword) $32) goto main::@2 -- vbuz1_ge_vbuc1_then_la1 lda i cmp #$32 bcs b2 @@ -203,7 +203,7 @@ main: { b2: //SEG20 [8] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG21 [9] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 100) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 + //SEG21 [9] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $64) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 lda i cmp #$64 bcc b1_from_b2 @@ -262,7 +262,7 @@ main: { jmp b1 //SEG15 main::@1 b1: - //SEG16 [6] if((byte) main::i#2>=(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@2 -- vbuxx_ge_vbuc1_then_la1 + //SEG16 [6] if((byte) main::i#2>=(byte/signed byte/word/signed word/dword/signed dword) $32) goto main::@2 -- vbuxx_ge_vbuc1_then_la1 cpx #$32 bcs b2 jmp b3 @@ -275,7 +275,7 @@ main: { b2: //SEG20 [8] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG21 [9] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 100) goto main::@1 -- vbuxx_lt_vbuc1_then_la1 + //SEG21 [9] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $64) goto main::@1 -- vbuxx_lt_vbuc1_then_la1 cpx #$64 bcc b1_from_b2 jmp breturn @@ -318,7 +318,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@1 (label) main::@2 @@ -358,7 +358,7 @@ main: { //SEG14 [5] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@2->main::@1#0] -- register_copy //SEG15 main::@1 b1: - //SEG16 [6] if((byte) main::i#2>=(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@2 -- vbuxx_ge_vbuc1_then_la1 + //SEG16 [6] if((byte) main::i#2>=(byte/signed byte/word/signed word/dword/signed dword) $32) goto main::@2 -- vbuxx_ge_vbuc1_then_la1 cpx #$32 bcs b2 //SEG17 main::@3 @@ -368,7 +368,7 @@ main: { b2: //SEG20 [8] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG21 [9] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 100) goto main::@1 -- vbuxx_lt_vbuc1_then_la1 + //SEG21 [9] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $64) goto main::@1 -- vbuxx_lt_vbuc1_then_la1 cpx #$64 bcc b1 //SEG22 main::@return diff --git a/src/test/ref/ifmin.sym b/src/test/ref/ifmin.sym index 3aa569fca..141ddb88b 100644 --- a/src/test/ref/ifmin.sym +++ b/src/test/ref/ifmin.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@1 (label) main::@2 diff --git a/src/test/ref/immzero.cfg b/src/test/ref/immzero.cfg index a84910fc8..91f7f3a25 100644 --- a/src/test/ref/immzero.cfg +++ b/src/test/ref/immzero.cfg @@ -15,7 +15,7 @@ main::@1: scope:[main] from main main::@1 [5] (byte) main::i#1 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::j#1 ) [6] (word) main::w#1 ← (word) main::w#2 + (byte) main::i#1 [7] (byte) main::j#1 ← ++ (byte) main::i#1 - [8] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 + [8] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [9] return diff --git a/src/test/ref/immzero.log b/src/test/ref/immzero.log index 529aba52b..56f56c860 100644 --- a/src/test/ref/immzero.log +++ b/src/test/ref/immzero.log @@ -14,8 +14,8 @@ main::@1: scope:[main] from main main::@1 (byte) main::i#1 ← (byte) main::j#2 (word~) main::$1 ← (word) main::w#2 + (byte) main::j#2 (word) main::w#1 ← (word~) main::$1 - (byte) main::j#1 ← (byte) main::j#2 + rangenext(0,10) - (bool~) main::$2 ← (byte) main::j#1 != rangelast(0,10) + (byte) main::j#1 ← (byte) main::j#2 + rangenext(0,$a) + (bool~) main::$2 ← (byte) main::j#1 != rangelast(0,$a) if((bool~) main::$2) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 @@ -57,7 +57,7 @@ Alias (word) main::w#0 = (byte/signed byte/word/signed word/dword/signed dword~) Alias (byte) main::i#1 = (byte) main::j#2 Alias (word) main::w#1 = (word~) main::$1 Successful SSA optimization Pass2AliasElimination -Simple Condition (bool~) main::$2 [10] if((byte) main::j#1!=rangelast(0,10)) goto main::@1 +Simple Condition (bool~) main::$2 [10] if((byte) main::j#1!=rangelast(0,$a)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte) main::i#0 = 0 Constant (const word) main::w#0 = ((word))0 @@ -65,7 +65,7 @@ Constant (const byte) main::j#0 = 0 Successful SSA optimization Pass2ConstantIdentification Successful SSA optimization PassNEliminateUnusedVars Resolved ranged next value main::j#1 ← ++ main::i#1 to ++ -Resolved ranged comparison value if(main::j#1!=rangelast(0,10)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 11 +Resolved ranged comparison value if(main::j#1!=rangelast(0,$a)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $b Inlining constant with var siblings (const word) main::w#0 Inlining constant with var siblings (const byte) main::j#0 Constant inlined main::w#0 = ((word))(byte/signed byte/word/signed word/dword/signed dword) 0 @@ -107,7 +107,7 @@ main::@1: scope:[main] from main main::@1 [5] (byte) main::i#1 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::j#1 ) [6] (word) main::w#1 ← (word) main::w#2 + (byte) main::i#1 [7] (byte) main::j#1 ← ++ (byte) main::i#1 - [8] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 + [8] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [9] return @@ -190,7 +190,7 @@ main: { sta w+1 //SEG19 [7] (byte) main::j#1 ← ++ (byte) main::i#1 -- vbuz1=_inc_vbuz1 inc j - //SEG20 [8] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG20 [8] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda j cmp #$b bne b1_from_b1 @@ -270,7 +270,7 @@ main: { sta w+1 //SEG19 [7] (byte) main::j#1 ← ++ (byte) main::i#1 -- vbuxx=_inc_vbuxx inx - //SEG20 [8] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG20 [8] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$b bne b1_from_b1 jmp breturn @@ -369,7 +369,7 @@ main: { sta w+1 //SEG19 [7] (byte) main::j#1 ← ++ (byte) main::i#1 -- vbuxx=_inc_vbuxx inx - //SEG20 [8] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG20 [8] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$b bne b1 //SEG21 main::@return diff --git a/src/test/ref/importing.log b/src/test/ref/importing.log index 8a0e37725..377bd08f1 100644 --- a/src/test/ref/importing.log +++ b/src/test/ref/importing.log @@ -1,11 +1,11 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:@1 main: scope:[main] from @1 - (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 *((byte*) main::screen#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 *((byte*) BGCOL#0) ← (byte) RED#0 to:main::@return @@ -35,9 +35,9 @@ SYMBOL TABLE SSA Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks -Constant (const byte*) BGCOL#0 = ((byte*))53281 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 Constant (const byte) RED#0 = 2 -Constant (const byte*) main::screen#0 = ((byte*))1024 +Constant (const byte*) main::screen#0 = ((byte*))$400 Successful SSA optimization Pass2ConstantIdentification Adding NOP phi() at start of @begin Adding NOP phi() at start of @1 @@ -191,13 +191,13 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte) RED (const byte) RED#0 RED = (byte/signed byte/word/signed word/dword/signed dword) 2 (void()) main() (label) main::@return (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/importing.sym b/src/test/ref/importing.sym index 114adc2f1..457a2327c 100644 --- a/src/test/ref/importing.sym +++ b/src/test/ref/importing.sym @@ -2,11 +2,11 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte) RED (const byte) RED#0 RED = (byte/signed byte/word/signed word/dword/signed dword) 2 (void()) main() (label) main::@return (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/incd020.log b/src/test/ref/incd020.log index a877ba3d6..5b7ab33a6 100644 --- a/src/test/ref/incd020.log +++ b/src/test/ref/incd020.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 to:@1 main: scope:[main] from @1 (byte*) BGCOL#2 ← phi( @1/(byte*) BGCOL#3 ) @@ -46,7 +46,7 @@ Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) BGCOL#2 (byte*) BGCOL#0 Redundant Phi (byte*) BGCOL#1 (byte*) BGCOL#2 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte*) BGCOL#0 = ((byte*))53280 +Constant (const byte*) BGCOL#0 = ((byte*))$d020 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [2] if(true) goto main::@1 Successful SSA optimization Pass2ConstantIfs @@ -200,7 +200,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d020 (void()) main() (label) main::@1 diff --git a/src/test/ref/incd020.sym b/src/test/ref/incd020.sym index a2d04c12d..283349fec 100644 --- a/src/test/ref/incd020.sym +++ b/src/test/ref/incd020.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d020 (void()) main() (label) main::@1 diff --git a/src/test/ref/incrementinarray.cfg b/src/test/ref/incrementinarray.cfg index 85f0e3992..575ffea99 100644 --- a/src/test/ref/incrementinarray.cfg +++ b/src/test/ref/incrementinarray.cfg @@ -13,8 +13,8 @@ main: scope:[main] from @20 to:main::@1 main::@1: scope:[main] from main main::@6 [6] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@6/(byte) main::i#1 ) - [6] (byte*) print_line_cursor#19 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@6/(byte*) print_line_cursor#1 ) - [6] (byte*) print_char_cursor#25 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@6/(byte*~) print_char_cursor#30 ) + [6] (byte*) print_line_cursor#19 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@6/(byte*) print_line_cursor#1 ) + [6] (byte*) print_char_cursor#25 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@6/(byte*~) print_char_cursor#30 ) [7] call print_str to:main::@4 main::@4: scope:[main] from main::@1 @@ -24,7 +24,7 @@ main::@4: scope:[main] from main::@1 main::@5: scope:[main] from main::@4 [10] *((const byte[]) txt#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← ++ *((const byte[]) txt#0+(byte/signed byte/word/signed word/dword/signed dword) 1) [11] (byte) main::i#1 ← ++ (byte) main::i#2 - [12] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@6 + [12] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@6 to:main::@return main::@return: scope:[main] from main::@5 [13] return @@ -37,7 +37,7 @@ print_ln: scope:[print_ln] from main::@4 to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [16] (byte*) print_line_cursor#9 ← phi( print_ln/(byte*) print_line_cursor#19 print_ln::@1/(byte*) print_line_cursor#1 ) - [17] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [17] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) $28 [18] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#12) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 @@ -63,10 +63,10 @@ print_cls: scope:[print_cls] from main [27] phi() to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 - [28] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) 1024 print_cls::@1/(byte*) print_cls::sc#1 ) + [28] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) $400 print_cls::@1/(byte*) print_cls::sc#1 ) [29] *((byte*) print_cls::sc#2) ← (byte) ' ' [30] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [31] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [31] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [32] return diff --git a/src/test/ref/incrementinarray.log b/src/test/ref/incrementinarray.log index 5327cbb52..715140899 100644 --- a/src/test/ref/incrementinarray.log +++ b/src/test/ref/incrementinarray.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 to:@12 @@ -34,7 +34,7 @@ print_ln: scope:[print_ln] from main::@4 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 (byte*) print_char_cursor#14 ← phi( print_ln/(byte*) print_char_cursor#23 print_ln::@1/(byte*) print_char_cursor#14 ) (byte*) print_line_cursor#9 ← phi( print_ln/(byte*) print_line_cursor#17 print_ln::@1/(byte*) print_line_cursor#1 ) - (byte*~) print_ln::$0 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) print_ln::$0 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) print_line_cursor#1 ← (byte*~) print_ln::$0 (bool~) print_ln::$1 ← (byte*) print_line_cursor#1 < (byte*) print_char_cursor#14 if((bool~) print_ln::$1) goto print_ln::@1 @@ -65,7 +65,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 (byte*) print_cls::sc#2 ← phi( print_cls/(byte*) print_cls::sc#0 print_cls::@1/(byte*) print_cls::sc#1 ) *((byte*) print_cls::sc#2) ← (byte) ' ' (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) 1000 + (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) $3e8 (bool~) print_cls::$1 ← (byte*) print_cls::sc#1 != (byte*~) print_cls::$0 if((bool~) print_cls::$1) goto print_cls::@1 to:print_cls::@2 @@ -121,8 +121,8 @@ main::@5: scope:[main] from main::@4 (byte*) print_line_cursor#6 ← (byte*) print_line_cursor#14 (byte*) print_char_cursor#9 ← (byte*) print_char_cursor#19 *((byte[]) txt#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) ← ++ *((byte[]) txt#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) - (byte) main::i#1 ← (byte) main::i#2 + rangenext(0,10) - (bool~) main::$3 ← (byte) main::i#1 != rangelast(0,10) + (byte) main::i#1 ← (byte) main::i#2 + rangenext(0,$a) + (bool~) main::$3 ← (byte) main::i#1 != rangelast(0,$a) if((bool~) main::$3) goto main::@1 to:main::@return main::@return: scope:[main] from main::@5 @@ -304,15 +304,15 @@ Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) print_str::$0 [6] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2 Simple Condition (bool~) print_ln::$1 [19] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#12) goto print_ln::@1 Simple Condition (bool~) print_cls::$1 [35] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 -Simple Condition (bool~) main::$3 [63] if((byte) main::i#1!=rangelast(0,10)) goto main::@1 +Simple Condition (bool~) main::$3 [63] if((byte) main::i#1!=rangelast(0,$a)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) print_line_cursor#0 = ((byte*))1024 +Constant (const byte*) print_line_cursor#0 = ((byte*))$400 Constant (const byte[]) print_hextab#0 = $0 Constant (const byte[]) txt#0 = $1 Constant (const byte) main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) print_cls::sc#0 = print_line_cursor#0 -Constant (const byte*) print_cls::$0 = print_line_cursor#0+1000 +Constant (const byte*) print_cls::$0 = print_line_cursor#0+$3e8 Constant (const byte*) print_str::str#1 = txt#0 Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(txt#0+1) @@ -321,7 +321,7 @@ Successful SSA optimization Pass2ConstantAdditionElimination Successful SSA optimization PassNEliminateUnusedVars Successful SSA optimization PassNEliminateUnusedVars Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ -Resolved ranged comparison value if(main::i#1!=rangelast(0,10)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 11 +Resolved ranged comparison value if(main::i#1!=rangelast(0,$a)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $b Culled Empty Block (label) print_ln::@2 Culled Empty Block (label) @12 Culled Empty Block (label) print_cls::@2 @@ -335,10 +335,10 @@ Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte*) print_line_cursor#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined print_str::str#1 = (const byte[]) txt#0 -Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000 -Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword) 1024 +Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8 +Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword) $400 Constant inlined $1 = (const byte[]) txt#0 -Constant inlined print_line_cursor#0 = ((byte*))(word/signed word/dword/signed dword) 1024 +Constant inlined print_line_cursor#0 = ((byte*))(word/signed word/dword/signed dword) $400 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@6(between main::@5 and main::@1) Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1) @@ -391,8 +391,8 @@ main: scope:[main] from @20 to:main::@1 main::@1: scope:[main] from main main::@6 [6] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@6/(byte) main::i#1 ) - [6] (byte*) print_line_cursor#19 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@6/(byte*) print_line_cursor#1 ) - [6] (byte*) print_char_cursor#25 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@6/(byte*~) print_char_cursor#30 ) + [6] (byte*) print_line_cursor#19 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@6/(byte*) print_line_cursor#1 ) + [6] (byte*) print_char_cursor#25 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@6/(byte*~) print_char_cursor#30 ) [7] call print_str to:main::@4 main::@4: scope:[main] from main::@1 @@ -402,7 +402,7 @@ main::@4: scope:[main] from main::@1 main::@5: scope:[main] from main::@4 [10] *((const byte[]) txt#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← ++ *((const byte[]) txt#0+(byte/signed byte/word/signed word/dword/signed dword) 1) [11] (byte) main::i#1 ← ++ (byte) main::i#2 - [12] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@6 + [12] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@6 to:main::@return main::@return: scope:[main] from main::@5 [13] return @@ -415,7 +415,7 @@ print_ln: scope:[print_ln] from main::@4 to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [16] (byte*) print_line_cursor#9 ← phi( print_ln/(byte*) print_line_cursor#19 print_ln::@1/(byte*) print_line_cursor#1 ) - [17] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [17] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) $28 [18] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#12) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 @@ -441,10 +441,10 @@ print_cls: scope:[print_cls] from main [27] phi() to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 - [28] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) 1024 print_cls::@1/(byte*) print_cls::sc#1 ) + [28] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) $400 print_cls::@1/(byte*) print_cls::sc#1 ) [29] *((byte*) print_cls::sc#2) ← (byte) ' ' [30] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [31] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [31] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [32] return @@ -533,12 +533,12 @@ main: { //SEG14 [6] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 lda #0 sta i - //SEG15 [6] phi (byte*) print_line_cursor#19 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#1] -- pbuz1=pbuc1 + //SEG15 [6] phi (byte*) print_line_cursor#19 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#1] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 sta print_line_cursor+1 - //SEG16 [6] phi (byte*) print_char_cursor#25 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#2] -- pbuz1=pbuc1 + //SEG16 [6] phi (byte*) print_char_cursor#25 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#2] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -569,7 +569,7 @@ main: { sta txt+1 //SEG26 [11] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG27 [12] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@6 -- vbuz1_neq_vbuc1_then_la1 + //SEG27 [12] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@6 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$b bne b6 @@ -602,7 +602,7 @@ print_ln: { jmp b1 //SEG39 print_ln::@1 b1: - //SEG40 [17] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG40 [17] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -680,7 +680,7 @@ print_cls: { .label sc = 9 //SEG60 [28] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] b1_from_print_cls: - //SEG61 [28] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG61 [28] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -701,7 +701,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG67 [31] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG67 [31] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1_from_b1 @@ -720,21 +720,21 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [10] *((const byte[]) txt#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← ++ *((const byte[]) txt#0+(byte/signed byte/word/signed word/dword/signed dword) 1) [ main::i#2 print_line_cursor#1 ] ( main:2 [ main::i#2 print_line_cursor#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Statement [14] (byte*~) print_char_cursor#30 ← (byte*) print_line_cursor#1 [ print_char_cursor#30 print_line_cursor#1 main::i#1 ] ( main:2 [ print_char_cursor#30 print_line_cursor#1 main::i#1 ] ) always clobbers reg byte a -Statement [17] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#12 ] ( main:2::print_ln:9 [ main::i#2 print_line_cursor#1 print_char_cursor#12 ] ) always clobbers reg byte a +Statement [17] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#1 print_char_cursor#12 ] ( main:2::print_ln:9 [ main::i#2 print_line_cursor#1 print_char_cursor#12 ] ) always clobbers reg byte a Statement [18] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#12) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#12 ] ( main:2::print_ln:9 [ main::i#2 print_line_cursor#1 print_char_cursor#12 ] ) always clobbers reg byte a Statement [22] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2 [ print_char_cursor#12 print_str::str#2 ] ( main:2::print_str:7 [ print_line_cursor#19 main::i#2 print_char_cursor#12 print_str::str#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Statement [24] *((byte*) print_char_cursor#12) ← *((byte*) print_str::str#2) [ print_char_cursor#12 print_str::str#2 ] ( main:2::print_str:7 [ print_line_cursor#19 main::i#2 print_char_cursor#12 print_str::str#2 ] ) always clobbers reg byte a reg byte y Statement [29] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [31] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [31] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a Statement [10] *((const byte[]) txt#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← ++ *((const byte[]) txt#0+(byte/signed byte/word/signed word/dword/signed dword) 1) [ main::i#2 print_line_cursor#1 ] ( main:2 [ main::i#2 print_line_cursor#1 ] ) always clobbers reg byte a Statement [14] (byte*~) print_char_cursor#30 ← (byte*) print_line_cursor#1 [ print_char_cursor#30 print_line_cursor#1 main::i#1 ] ( main:2 [ print_char_cursor#30 print_line_cursor#1 main::i#1 ] ) always clobbers reg byte a -Statement [17] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#12 ] ( main:2::print_ln:9 [ main::i#2 print_line_cursor#1 print_char_cursor#12 ] ) always clobbers reg byte a +Statement [17] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#1 print_char_cursor#12 ] ( main:2::print_ln:9 [ main::i#2 print_line_cursor#1 print_char_cursor#12 ] ) always clobbers reg byte a Statement [18] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#12) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#12 ] ( main:2::print_ln:9 [ main::i#2 print_line_cursor#1 print_char_cursor#12 ] ) always clobbers reg byte a Statement [22] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2 [ print_char_cursor#12 print_str::str#2 ] ( main:2::print_str:7 [ print_line_cursor#19 main::i#2 print_char_cursor#12 print_str::str#2 ] ) always clobbers reg byte a reg byte y Statement [24] *((byte*) print_char_cursor#12) ← *((byte*) print_str::str#2) [ print_char_cursor#12 print_str::str#2 ] ( main:2::print_str:7 [ print_line_cursor#19 main::i#2 print_char_cursor#12 print_str::str#2 ] ) always clobbers reg byte a reg byte y Statement [29] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [31] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [31] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ main::i#2 main::i#1 ] : zp ZP_BYTE:2 , reg byte x , Potential registers zp ZP_WORD:3 [ print_line_cursor#9 print_line_cursor#19 print_line_cursor#1 ] : zp ZP_WORD:3 , Potential registers zp ZP_WORD:5 [ print_str::str#2 print_str::str#0 ] : zp ZP_WORD:5 , @@ -793,12 +793,12 @@ main: { b1_from_main: //SEG14 [6] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuxx=vbuc1 ldx #0 - //SEG15 [6] phi (byte*) print_line_cursor#19 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#1] -- pbuz1=pbuc1 + //SEG15 [6] phi (byte*) print_line_cursor#19 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#1] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 sta print_line_cursor+1 - //SEG16 [6] phi (byte*) print_char_cursor#25 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#2] -- pbuz1=pbuc1 + //SEG16 [6] phi (byte*) print_char_cursor#25 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#2] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -829,7 +829,7 @@ main: { sta txt+1 //SEG26 [11] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG27 [12] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@6 -- vbuxx_neq_vbuc1_then_la1 + //SEG27 [12] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@6 -- vbuxx_neq_vbuc1_then_la1 cpx #$b bne b6 jmp breturn @@ -861,7 +861,7 @@ print_ln: { jmp b1 //SEG39 print_ln::@1 b1: - //SEG40 [17] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG40 [17] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -939,7 +939,7 @@ print_cls: { .label sc = 2 //SEG60 [28] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] b1_from_print_cls: - //SEG61 [28] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG61 [28] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -960,7 +960,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG67 [31] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG67 [31] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1_from_b1 @@ -1103,12 +1103,12 @@ main: { //SEG13 [6] phi from main to main::@1 [phi:main->main::@1] //SEG14 [6] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuxx=vbuc1 ldx #0 - //SEG15 [6] phi (byte*) print_line_cursor#19 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#1] -- pbuz1=pbuc1 + //SEG15 [6] phi (byte*) print_line_cursor#19 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#1] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 sta print_line_cursor+1 - //SEG16 [6] phi (byte*) print_char_cursor#25 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#2] -- pbuz1=pbuc1 + //SEG16 [6] phi (byte*) print_char_cursor#25 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#2] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -1131,7 +1131,7 @@ main: { sta txt+1 //SEG26 [11] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG27 [12] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@6 -- vbuxx_neq_vbuc1_then_la1 + //SEG27 [12] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@6 -- vbuxx_neq_vbuc1_then_la1 cpx #$b bne b6 //SEG28 main::@return @@ -1157,7 +1157,7 @@ print_ln: { //SEG38 [16] phi (byte*) print_line_cursor#9 = (byte*) print_line_cursor#19 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy //SEG39 print_ln::@1 b1: - //SEG40 [17] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG40 [17] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -1226,7 +1226,7 @@ print_str: { print_cls: { .label sc = 2 //SEG60 [28] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] - //SEG61 [28] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG61 [28] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -1244,7 +1244,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG67 [31] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG67 [31] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1 diff --git a/src/test/ref/infloop-error.cfg b/src/test/ref/infloop-error.cfg index 64211513e..9790e8403 100644 --- a/src/test/ref/infloop-error.cfg +++ b/src/test/ref/infloop-error.cfg @@ -12,7 +12,7 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@5 [5] (byte) main::max#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@5/(byte) main::max#3 ) - [5] (byte) main::min#2 ← phi( main/(byte/word/signed word/dword/signed dword) 255 main::@5/(byte) main::min#3 ) + [5] (byte) main::min#2 ← phi( main/(byte/word/signed word/dword/signed dword) $ff main::@5/(byte) main::min#3 ) [5] (byte) main::pos#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@5/(byte) main::pos#1 ) to:main::@2 main::@2: scope:[main] from main::@1 diff --git a/src/test/ref/infloop-error.log b/src/test/ref/infloop-error.log index cd9ddac3d..3313a6a9d 100644 --- a/src/test/ref/infloop-error.log +++ b/src/test/ref/infloop-error.log @@ -1,11 +1,11 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@1 main: scope:[main] from @1 (byte*) SCREEN#7 ← phi( @1/(byte*) SCREEN#8 ) - (byte) main::min#0 ← (byte/word/signed word/dword/signed dword) 255 + (byte) main::min#0 ← (byte/word/signed word/dword/signed dword) $ff (byte) main::max#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) main::pos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 @@ -152,8 +152,8 @@ Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) main::$1 [11] if((byte) main::pos#1>=(byte) main::min#2) goto main::@4 Simple Condition (bool~) main::$3 [15] if((byte) main::pos#1<=(byte) main::max#2) goto main::@5 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) SCREEN#0 = ((byte*))1024 -Constant (const byte) main::min#0 = 255 +Constant (const byte*) SCREEN#0 = ((byte*))$400 +Constant (const byte) main::min#0 = $ff Constant (const byte) main::max#0 = 0 Constant (const byte) main::pos#0 = 0 Successful SSA optimization Pass2ConstantIdentification @@ -168,7 +168,7 @@ Successful SSA optimization Pass2EliminateUnusedBlocks Inlining constant with var siblings (const byte) main::min#0 Inlining constant with var siblings (const byte) main::max#0 Inlining constant with var siblings (const byte) main::pos#0 -Constant inlined main::min#0 = (byte/word/signed word/dword/signed dword) 255 +Constant inlined main::min#0 = (byte/word/signed word/dword/signed dword) $ff Constant inlined main::max#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::pos#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining @@ -213,7 +213,7 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@5 [5] (byte) main::max#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@5/(byte) main::max#3 ) - [5] (byte) main::min#2 ← phi( main/(byte/word/signed word/dword/signed dword) 255 main::@5/(byte) main::min#3 ) + [5] (byte) main::min#2 ← phi( main/(byte/word/signed word/dword/signed dword) $ff main::@5/(byte) main::min#3 ) [5] (byte) main::pos#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@5/(byte) main::pos#1 ) to:main::@2 main::@2: scope:[main] from main::@1 @@ -300,7 +300,7 @@ main: { //SEG12 [5] phi (byte) main::max#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 lda #0 sta max - //SEG13 [5] phi (byte) main::min#2 = (byte/word/signed word/dword/signed dword) 255 [phi:main->main::@1#1] -- vbuz1=vbuc1 + //SEG13 [5] phi (byte) main::min#2 = (byte/word/signed word/dword/signed dword) $ff [phi:main->main::@1#1] -- vbuz1=vbuc1 lda #$ff sta min //SEG14 [5] phi (byte) main::pos#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#2] -- vbuz1=vbuc1 @@ -408,7 +408,7 @@ main: { b1_from_main: //SEG12 [5] phi (byte) main::max#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuyy=vbuc1 ldy #0 - //SEG13 [5] phi (byte) main::min#2 = (byte/word/signed word/dword/signed dword) 255 [phi:main->main::@1#1] -- vbuxx=vbuc1 + //SEG13 [5] phi (byte) main::min#2 = (byte/word/signed word/dword/signed dword) $ff [phi:main->main::@1#1] -- vbuxx=vbuc1 ldx #$ff //SEG14 [5] phi (byte) main::pos#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#2] -- vbuaa=vbuc1 lda #0 @@ -508,7 +508,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@1 (label) main::@2 @@ -556,7 +556,7 @@ main: { //SEG11 [5] phi from main to main::@1 [phi:main->main::@1] //SEG12 [5] phi (byte) main::max#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuyy=vbuc1 ldy #0 - //SEG13 [5] phi (byte) main::min#2 = (byte/word/signed word/dword/signed dword) 255 [phi:main->main::@1#1] -- vbuxx=vbuc1 + //SEG13 [5] phi (byte) main::min#2 = (byte/word/signed word/dword/signed dword) $ff [phi:main->main::@1#1] -- vbuxx=vbuc1 ldx #$ff //SEG14 [5] phi (byte) main::pos#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#2] -- vbuaa=vbuc1 tya diff --git a/src/test/ref/infloop-error.sym b/src/test/ref/infloop-error.sym index b4c3db91d..6bde17610 100644 --- a/src/test/ref/infloop-error.sym +++ b/src/test/ref/infloop-error.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@1 (label) main::@2 diff --git a/src/test/ref/init-volatiles.cfg b/src/test/ref/init-volatiles.cfg index da4d97851..6118e05f5 100644 --- a/src/test/ref/init-volatiles.cfg +++ b/src/test/ref/init-volatiles.cfg @@ -1,5 +1,5 @@ @begin: scope:[] from - [0] (byte) x#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 + [0] (byte) x#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c to:@1 @1: scope:[] from @begin [1] phi() @@ -13,7 +13,7 @@ main: scope:[main] from @1 main::@1: scope:[main] from main main::@1 [5] (byte) x#5 ← phi( main/(byte) x#0 main::@1/(byte) x#1 ) [6] (byte) x#1 ← ++ (byte) x#5 - [7] if((byte) x#1<(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@1 + [7] if((byte) x#1<(byte/signed byte/word/signed word/dword/signed dword) $32) goto main::@1 to:main::@3 main::@3: scope:[main] from main::@1 [8] (byte) x#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 diff --git a/src/test/ref/init-volatiles.log b/src/test/ref/init-volatiles.log index bdb0fecb2..db7c37b4d 100644 --- a/src/test/ref/init-volatiles.log +++ b/src/test/ref/init-volatiles.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte) x#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 + (byte) x#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c to:@1 main: scope:[main] from @1 (byte) x#8 ← phi( @1/(byte) x#10 ) @@ -9,7 +9,7 @@ main: scope:[main] from @1 main::@1: scope:[main] from main main::@2 (byte) x#5 ← phi( main/(byte) x#8 main::@2/(byte) x#9 ) (byte) x#1 ← ++ (byte) x#5 - (bool~) main::$0 ← (byte) x#1 < (byte/signed byte/word/signed word/dword/signed dword) 50 + (bool~) main::$0 ← (byte) x#1 < (byte/signed byte/word/signed word/dword/signed dword) $32 if((bool~) main::$0) goto main::@2 to:main::@3 main::@2: scope:[main] from main::@1 @@ -65,7 +65,7 @@ Successful SSA optimization Pass2AliasElimination Redundant Phi (byte) x#8 (byte) x#0 Redundant Phi (byte) x#4 (byte) x#2 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$0 [5] if((byte) x#1<(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@2 +Simple Condition (bool~) main::$0 [5] if((byte) x#1<(byte/signed byte/word/signed word/dword/signed dword) $32) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification Culled Empty Block (label) main::@2 Culled Empty Block (label) @2 @@ -87,7 +87,7 @@ Adding NOP phi() at start of main FINAL CONTROL FLOW GRAPH @begin: scope:[] from - [0] (byte) x#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 + [0] (byte) x#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c to:@1 @1: scope:[] from @begin [1] phi() @@ -101,7 +101,7 @@ main: scope:[main] from @1 main::@1: scope:[main] from main main::@1 [5] (byte) x#5 ← phi( main/(byte) x#0 main::@1/(byte) x#1 ) [6] (byte) x#1 ← ++ (byte) x#5 - [7] if((byte) x#1<(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@1 + [7] if((byte) x#1<(byte/signed byte/word/signed word/dword/signed dword) $32) goto main::@1 to:main::@3 main::@3: scope:[main] from main::@1 [8] (byte) x#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -140,7 +140,7 @@ INITIAL ASM .label x_2 = 3 //SEG3 @begin bbegin: -//SEG4 [0] (byte) x#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 -- vbuz1=vbuc1 +//SEG4 [0] (byte) x#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c -- vbuz1=vbuc1 lda #$c sta x //SEG5 [1] phi from @begin to @1 [phi:@begin->@1] @@ -168,7 +168,7 @@ main: { b1: //SEG15 [6] (byte) x#1 ← ++ (byte) x#5 -- vbuz1=_inc_vbuz1 inc x - //SEG16 [7] if((byte) x#1<(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 + //SEG16 [7] if((byte) x#1<(byte/signed byte/word/signed word/dword/signed dword) $32) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 lda x cmp #$32 bcc b1_from_b1 @@ -186,8 +186,8 @@ main: { } REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] (byte) x#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 [ x#0 ] ( ) always clobbers reg byte a -Statement [7] if((byte) x#1<(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@1 [ x#1 ] ( main:2 [ x#1 ] ) always clobbers reg byte a +Statement [0] (byte) x#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c [ x#0 ] ( ) always clobbers reg byte a +Statement [7] if((byte) x#1<(byte/signed byte/word/signed word/dword/signed dword) $32) goto main::@1 [ x#1 ] ( main:2 [ x#1 ] ) always clobbers reg byte a Statement [8] (byte) x#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ x#5 x#0 x#1 ] : zp ZP_BYTE:2 , Potential registers zp ZP_BYTE:3 [ x#2 ] : zp ZP_BYTE:3 , @@ -215,7 +215,7 @@ ASSEMBLER BEFORE OPTIMIZATION .label x = 2 //SEG3 @begin bbegin: -//SEG4 [0] (byte) x#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 -- vbuz1=vbuc1 +//SEG4 [0] (byte) x#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c -- vbuz1=vbuc1 lda #$c sta x //SEG5 [1] phi from @begin to @1 [phi:@begin->@1] @@ -243,7 +243,7 @@ main: { b1: //SEG15 [6] (byte) x#1 ← ++ (byte) x#5 -- vbuz1=_inc_vbuz1 inc x - //SEG16 [7] if((byte) x#1<(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 + //SEG16 [7] if((byte) x#1<(byte/signed byte/word/signed word/dword/signed dword) $32) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 lda x cmp #$32 bcc b1_from_b1 @@ -310,7 +310,7 @@ Score: 147 .label x = 2 //SEG3 @begin bbegin: -//SEG4 [0] (byte) x#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 -- vbuz1=vbuc1 +//SEG4 [0] (byte) x#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c -- vbuz1=vbuc1 lda #$c sta x //SEG5 [1] phi from @begin to @1 [phi:@begin->@1] @@ -328,7 +328,7 @@ main: { b1: //SEG15 [6] (byte) x#1 ← ++ (byte) x#5 -- vbuz1=_inc_vbuz1 inc x - //SEG16 [7] if((byte) x#1<(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 + //SEG16 [7] if((byte) x#1<(byte/signed byte/word/signed word/dword/signed dword) $32) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 lda x cmp #$32 bcc b1 diff --git a/src/test/ref/inline-assignment.cfg b/src/test/ref/inline-assignment.cfg index a9d8019b5..98b8038f1 100644 --- a/src/test/ref/inline-assignment.cfg +++ b/src/test/ref/inline-assignment.cfg @@ -13,9 +13,9 @@ main: scope:[main] from @1 main::@1: scope:[main] from main main::@1 [5] (byte) main::a#1 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::i#1 ) [6] *((const byte*) SCREEN#0 + (byte) main::a#1) ← (byte) main::a#1 - [7] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 80 + (byte) main::a#1) ← (byte) main::a#1 + [7] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $50 + (byte) main::a#1) ← (byte) main::a#1 [8] (byte) main::i#1 ← ++ (byte) main::a#1 - [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 + [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [10] return diff --git a/src/test/ref/inline-assignment.log b/src/test/ref/inline-assignment.log index ebb1f3d34..1fa3b0e59 100644 --- a/src/test/ref/inline-assignment.log +++ b/src/test/ref/inline-assignment.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@1 main: scope:[main] from @1 (byte) main::a#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -11,10 +11,10 @@ main::@1: scope:[main] from main main::@1 (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) (byte) main::a#1 ← (byte) main::i#2 *((byte*) SCREEN#0 + (byte) main::i#2) ← (byte) main::a#1 - (byte*~) main::$0 ← (byte*) SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 80 + (byte*~) main::$0 ← (byte*) SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) $50 *((byte*~) main::$0 + (byte) main::i#2) ← (byte) main::a#1 - (byte) main::i#1 ← (byte) main::i#2 + rangenext(0,39) - (bool~) main::$1 ← (byte) main::i#1 != rangelast(0,39) + (byte) main::i#1 ← (byte) main::i#2 + rangenext(0,$27) + (bool~) main::$1 ← (byte) main::i#1 != rangelast(0,$27) if((bool~) main::$1) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 @@ -51,20 +51,20 @@ Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) main::a#1 = (byte) main::i#2 Successful SSA optimization Pass2AliasElimination -Simple Condition (bool~) main::$1 [10] if((byte) main::i#1!=rangelast(0,39)) goto main::@1 +Simple Condition (bool~) main::$1 [10] if((byte) main::i#1!=rangelast(0,$27)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Constant (const byte) main::a#0 = 0 Constant (const byte) main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification -Constant (const byte*) main::$0 = SCREEN#0+80 +Constant (const byte*) main::$0 = SCREEN#0+$50 Successful SSA optimization Pass2ConstantIdentification Successful SSA optimization PassNEliminateUnusedVars Resolved ranged next value main::i#1 ← ++ main::a#1 to ++ -Resolved ranged comparison value if(main::i#1!=rangelast(0,39)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(main::i#1!=rangelast(0,$27)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $28 Inlining constant with var siblings (const byte) main::i#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$0 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 80 +Constant inlined main::$0 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $50 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@3(between main::@1 and main::@1) Adding NOP phi() at start of @begin @@ -99,9 +99,9 @@ main: scope:[main] from @1 main::@1: scope:[main] from main main::@1 [5] (byte) main::a#1 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::i#1 ) [6] *((const byte*) SCREEN#0 + (byte) main::a#1) ← (byte) main::a#1 - [7] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 80 + (byte) main::a#1) ← (byte) main::a#1 + [7] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $50 + (byte) main::a#1) ← (byte) main::a#1 [8] (byte) main::i#1 ← ++ (byte) main::a#1 - [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 + [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [10] return @@ -166,13 +166,13 @@ main: { ldy a tya sta SCREEN,y - //SEG17 [7] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 80 + (byte) main::a#1) ← (byte) main::a#1 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG17 [7] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $50 + (byte) main::a#1) ← (byte) main::a#1 -- pbuc1_derefidx_vbuz1=vbuz1 ldy a tya sta SCREEN+$50,y //SEG18 [8] (byte) main::i#1 ← ++ (byte) main::a#1 -- vbuz1=_inc_vbuz1 inc i - //SEG19 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG19 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$28 bne b1_from_b1 @@ -233,12 +233,12 @@ main: { //SEG16 [6] *((const byte*) SCREEN#0 + (byte) main::a#1) ← (byte) main::a#1 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN,x - //SEG17 [7] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 80 + (byte) main::a#1) ← (byte) main::a#1 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG17 [7] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $50 + (byte) main::a#1) ← (byte) main::a#1 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$50,x //SEG18 [8] (byte) main::i#1 ← ++ (byte) main::a#1 -- vbuxx=_inc_vbuxx inx - //SEG19 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG19 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b1_from_b1 jmp breturn @@ -278,7 +278,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@1 (label) main::@return @@ -319,12 +319,12 @@ main: { //SEG16 [6] *((const byte*) SCREEN#0 + (byte) main::a#1) ← (byte) main::a#1 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN,x - //SEG17 [7] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 80 + (byte) main::a#1) ← (byte) main::a#1 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG17 [7] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $50 + (byte) main::a#1) ← (byte) main::a#1 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$50,x //SEG18 [8] (byte) main::i#1 ← ++ (byte) main::a#1 -- vbuxx=_inc_vbuxx inx - //SEG19 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG19 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b1 //SEG20 main::@return diff --git a/src/test/ref/inline-assignment.sym b/src/test/ref/inline-assignment.sym index 737a5e49f..24705fcbd 100644 --- a/src/test/ref/inline-assignment.sym +++ b/src/test/ref/inline-assignment.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@1 (label) main::@return diff --git a/src/test/ref/inline-function-if.log b/src/test/ref/inline-function-if.log index 5b54769d9..67e1e0e55 100644 --- a/src/test/ref/inline-function-if.log +++ b/src/test/ref/inline-function-if.log @@ -3,7 +3,7 @@ Inlined call (byte~) main::$1 ← call toUpper (byte) 'm' false CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@2 main: scope:[main] from @2 (byte*) screen#11 ← phi( @2/(byte*) screen#12 ) @@ -26,7 +26,7 @@ main::toUpper1_@1: scope:[main] from main::toUpper1 main::toUpper1_@2 main::toUpper1_@2: scope:[main] from main::toUpper1 (byte*) screen#8 ← phi( main::toUpper1/(byte*) screen#7 ) (byte) main::toUpper1_res#3 ← phi( main::toUpper1/(byte) main::toUpper1_res#0 ) - (byte) main::toUpper1_res#1 ← (byte) main::toUpper1_res#3 + (byte/signed byte/word/signed word/dword/signed dword) 64 + (byte) main::toUpper1_res#1 ← (byte) main::toUpper1_res#3 + (byte/signed byte/word/signed word/dword/signed dword) $40 to:main::toUpper1_@1 main::toUpper1_@return: scope:[main] from main::toUpper1_@1 (byte*) screen#3 ← phi( main::toUpper1_@1/(byte*) screen#5 ) @@ -57,7 +57,7 @@ main::toUpper2_@1: scope:[main] from main::toUpper2 main::toUpper2_@2 main::toUpper2_@2: scope:[main] from main::toUpper2 (byte*) screen#10 ← phi( main::toUpper2/(byte*) screen#9 ) (byte) main::toUpper2_res#3 ← phi( main::toUpper2/(byte) main::toUpper2_res#0 ) - (byte) main::toUpper2_res#1 ← (byte) main::toUpper2_res#3 + (byte/signed byte/word/signed word/dword/signed dword) 64 + (byte) main::toUpper2_res#1 ← (byte) main::toUpper2_res#3 + (byte/signed byte/word/signed word/dword/signed dword) $40 to:main::toUpper2_@1 main::toUpper2_@return: scope:[main] from main::toUpper2_@1 (byte*) screen#4 ← phi( main::toUpper2_@1/(byte*) screen#6 ) @@ -172,14 +172,14 @@ Rewriting ! if()-condition to reversed if() [6] (bool) main::toUpper1_$0#0 ← ! Successful SSA optimization Pass2ConditionalAndOrRewriting Rewriting ! if()-condition to reversed if() [21] (bool) main::toUpper2_$0#0 ← ! (bool) main::toUpper2_bo#0 Successful SSA optimization Pass2ConditionalAndOrRewriting -Constant (const byte*) screen#0 = ((byte*))1024 +Constant (const byte*) screen#0 = ((byte*))$400 Constant (const byte) main::toUpper1_ch#0 = 'c' Constant (const bool) main::toUpper1_bo#0 = true Constant (const byte) main::toUpper2_ch#0 = 'm' Constant (const bool) main::toUpper2_bo#0 = false Successful SSA optimization Pass2ConstantIdentification -Constant (const byte) main::toUpper1_res#1 = main::toUpper1_ch#0+64 -Constant (const byte) main::toUpper2_res#1 = main::toUpper2_ch#0+64 +Constant (const byte) main::toUpper1_res#1 = main::toUpper1_ch#0+$40 +Constant (const byte) main::toUpper2_res#1 = main::toUpper2_ch#0+$40 Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(screen#0+0) Consolidated array index constant in *(screen#0+1) @@ -441,7 +441,7 @@ FINAL SYMBOL TABLE (byte) main::toUpper1_ch (const byte) main::toUpper1_ch#0 toUpper1_ch = (byte) 'c' (byte) main::toUpper1_res -(const byte) main::toUpper1_res#1 toUpper1_res = (const byte) main::toUpper1_ch#0+(byte/signed byte/word/signed word/dword/signed dword) 64 +(const byte) main::toUpper1_res#1 toUpper1_res = (const byte) main::toUpper1_ch#0+(byte/signed byte/word/signed word/dword/signed dword) $40 (byte) main::toUpper1_return (label) main::toUpper2 (bool~) main::toUpper2_$0 @@ -451,7 +451,7 @@ FINAL SYMBOL TABLE (byte) main::toUpper2_res (byte) main::toUpper2_return (byte*) screen -(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/inline-function-if.sym b/src/test/ref/inline-function-if.sym index 044c75bf5..882ad1369 100644 --- a/src/test/ref/inline-function-if.sym +++ b/src/test/ref/inline-function-if.sym @@ -11,7 +11,7 @@ (byte) main::toUpper1_ch (const byte) main::toUpper1_ch#0 toUpper1_ch = (byte) 'c' (byte) main::toUpper1_res -(const byte) main::toUpper1_res#1 toUpper1_res = (const byte) main::toUpper1_ch#0+(byte/signed byte/word/signed word/dword/signed dword) 64 +(const byte) main::toUpper1_res#1 toUpper1_res = (const byte) main::toUpper1_ch#0+(byte/signed byte/word/signed word/dword/signed dword) $40 (byte) main::toUpper1_return (label) main::toUpper2 (bool~) main::toUpper2_$0 @@ -21,5 +21,5 @@ (byte) main::toUpper2_res (byte) main::toUpper2_return (byte*) screen -(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/inline-function-level2.cfg b/src/test/ref/inline-function-level2.cfg index 5566281f7..7a51a978c 100644 --- a/src/test/ref/inline-function-level2.cfg +++ b/src/test/ref/inline-function-level2.cfg @@ -11,18 +11,18 @@ main: scope:[main] from @3 [4] phi() 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 ) + [5] (byte*) main::sc#2 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@1/(byte*) main::sc#1 ) [6] *((byte*) main::sc#2) ← (byte) ' ' [7] (byte*) main::sc#1 ← ++ (byte*) main::sc#2 - [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto main::@1 + [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto main::@1 to:main::line1 main::line1: scope:[main] from main::@1 [9] phi() to:main::line1_@1 main::line1_@1: scope:[main] from main::@4 main::line1 [10] (byte) main::line1_i#2 ← phi( main::@4/(byte) main::line1_i#1 main::line1/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [10] (byte*) cur_line#13 ← phi( main::@4/(byte*) cur_line#1 main::line1/((byte*))(word/signed word/dword/signed dword) 1024 ) - [10] (word) main::line1_pos#2 ← phi( main::@4/(word) main::line1_pos#1 main::line1/(const byte) main::line1_xpos#0*(word/signed word/dword/signed dword) 256 ) + [10] (byte*) cur_line#13 ← phi( main::@4/(byte*) cur_line#1 main::line1/((byte*))(word/signed word/dword/signed dword) $400 ) + [10] (word) main::line1_pos#2 ← phi( main::@4/(word) main::line1_pos#1 main::line1/(const byte) main::line1_xpos#0*(word/signed word/dword/signed dword) $100 ) [11] (byte) main::plot1_xpos#0 ← > (word) main::line1_pos#2 to:main::plot1 main::plot1: scope:[main] from main::line1_@1 @@ -31,7 +31,7 @@ main::plot1: scope:[main] from main::line1_@1 to:main::@4 main::@4: scope:[main] from main::plot1 [14] (word) main::line1_pos#1 ← (word) main::line1_pos#2 + (const byte) main::line1_xadd#0 - [15] (byte*) cur_line#1 ← (byte*) cur_line#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [15] (byte*) cur_line#1 ← (byte*) cur_line#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 [16] (byte) main::line1_i#1 ← ++ (byte) main::line1_i#2 [17] if((byte) main::line1_i#1<(const byte) main::line1_ysize#0) goto main::line1_@1 to:main::line2 @@ -40,8 +40,8 @@ main::line2: scope:[main] from main::@4 to:main::line2_@1 main::line2_@1: scope:[main] from main::@6 main::line2 [19] (byte) main::line2_i#2 ← phi( main::@6/(byte) main::line2_i#1 main::line2/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [19] (byte*) cur_line#10 ← phi( main::@6/(byte*) cur_line#11 main::line2/((byte*))(word/signed word/dword/signed dword) 1024 ) - [19] (word) main::line2_pos#2 ← phi( main::@6/(word) main::line2_pos#1 main::line2/(const byte) main::line2_xpos#0*(word/signed word/dword/signed dword) 256 ) + [19] (byte*) cur_line#10 ← phi( main::@6/(byte*) cur_line#11 main::line2/((byte*))(word/signed word/dword/signed dword) $400 ) + [19] (word) main::line2_pos#2 ← phi( main::@6/(word) main::line2_pos#1 main::line2/(const byte) main::line2_xpos#0*(word/signed word/dword/signed dword) $100 ) [20] (byte) main::plot2_xpos#0 ← > (word) main::line2_pos#2 to:main::plot2 main::plot2: scope:[main] from main::line2_@1 @@ -50,7 +50,7 @@ main::plot2: scope:[main] from main::line2_@1 to:main::@6 main::@6: scope:[main] from main::plot2 [23] (word) main::line2_pos#1 ← (word) main::line2_pos#2 + (const byte) main::line2_xadd#0 - [24] (byte*) cur_line#11 ← (byte*) cur_line#10 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [24] (byte*) cur_line#11 ← (byte*) cur_line#10 + (byte/signed byte/word/signed word/dword/signed dword) $28 [25] (byte) main::line2_i#1 ← ++ (byte) main::line2_i#2 [26] if((byte) main::line2_i#1<(const byte) main::line2_ysize#0) goto main::line2_@1 to:main::@return diff --git a/src/test/ref/inline-function-level2.log b/src/test/ref/inline-function-level2.log index cd9b06c49..df61773ac 100644 --- a/src/test/ref/inline-function-level2.log +++ b/src/test/ref/inline-function-level2.log @@ -1,6 +1,6 @@ -Inlined call call line (byte/signed byte/word/signed word/dword/signed dword) 2 (byte/signed byte/word/signed word/dword/signed dword) 64 (byte/signed byte/word/signed word/dword/signed dword) 10 (byte) '*' +Inlined call call line (byte/signed byte/word/signed word/dword/signed dword) 2 (byte/signed byte/word/signed word/dword/signed dword) $40 (byte/signed byte/word/signed word/dword/signed dword) $a (byte) '*' Inlined call call plot (byte~) main::line1_$0 (byte) main::line1_ch -Inlined call call line (byte/signed byte/word/signed word/dword/signed dword) 4 (byte/word/signed word/dword/signed dword) 128 (byte/signed byte/word/signed word/dword/signed dword) 15 (byte) '.' +Inlined call call line (byte/signed byte/word/signed word/dword/signed dword) 4 (byte/word/signed word/dword/signed dword) $80 (byte/signed byte/word/signed word/dword/signed dword) $f (byte) '.' Inlined call call plot (byte~) main::line2_$0 (byte) main::line2_ch Inlined call call plot (byte~) line::$0 (byte) line::ch @@ -8,20 +8,20 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @3 - (byte*) main::sc#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::sc#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 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 + (word/signed word/dword/signed dword~) main::$0 ← (word/signed word/dword/signed dword) $400 + (word/signed word/dword/signed dword) $3e8 (bool~) main::$1 ← (byte*) main::sc#1 < (word/signed word/dword/signed dword~) main::$0 if((bool~) main::$1) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 (byte) main::line1_xpos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte) main::line1_xadd#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) main::line1_ysize#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 + (byte) main::line1_xadd#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) main::line1_ysize#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a (byte) main::line1_ch#0 ← (byte) '*' to:main::line1 main::line1: scope:[main] from main::@2 @@ -29,7 +29,7 @@ main::line1: scope:[main] from main::@2 (byte) main::line1_xadd#4 ← phi( main::@2/(byte) main::line1_xadd#0 ) (byte) main::line1_ch#3 ← phi( main::@2/(byte) main::line1_ch#0 ) (byte) main::line1_xpos#1 ← phi( main::@2/(byte) main::line1_xpos#0 ) - (byte*) cur_line#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) cur_line#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (word) main::line1_pos#0 ← { (byte) main::line1_xpos#1, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte) main::line1_i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::line1_@1 @@ -64,15 +64,15 @@ main::@4: scope:[main] from main::plot1 (byte) main::line1_xadd#1 ← phi( main::plot1/(byte) main::line1_xadd#2 ) (word) main::line1_pos#3 ← phi( main::plot1/(word) main::line1_pos#4 ) (word) main::line1_pos#1 ← (word) main::line1_pos#3 + (byte) main::line1_xadd#1 - (byte*) cur_line#1 ← (byte*) cur_line#8 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*) cur_line#1 ← (byte*) cur_line#8 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte) main::line1_i#1 ← ++ (byte) main::line1_i#2 (bool) main::line1_$2#0 ← (byte) main::line1_i#1 < (byte) main::line1_ysize#1 if((bool) main::line1_$2#0) goto main::line1_@1 to:main::@3 main::@3: scope:[main] from main::@4 (byte) main::line2_xpos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte) main::line2_xadd#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) main::line2_ysize#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) main::line2_xadd#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) main::line2_ysize#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f (byte) main::line2_ch#0 ← (byte) '.' to:main::line2 main::line2: scope:[main] from main::@3 @@ -80,7 +80,7 @@ main::line2: scope:[main] from main::@3 (byte) main::line2_xadd#4 ← phi( main::@3/(byte) main::line2_xadd#0 ) (byte) main::line2_ch#3 ← phi( main::@3/(byte) main::line2_ch#0 ) (byte) main::line2_xpos#1 ← phi( main::@3/(byte) main::line2_xpos#0 ) - (byte*) cur_line#2 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) cur_line#2 ← ((byte*)) (word/signed word/dword/signed dword) $400 (word) main::line2_pos#0 ← { (byte) main::line2_xpos#1, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte) main::line2_i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::line2_@1 @@ -115,7 +115,7 @@ main::@6: scope:[main] from main::plot2 (byte) main::line2_xadd#1 ← phi( main::plot2/(byte) main::line2_xadd#2 ) (word) main::line2_pos#3 ← phi( main::plot2/(word) main::line2_pos#4 ) (word) main::line2_pos#1 ← (word) main::line2_pos#3 + (byte) main::line2_xadd#1 - (byte*) cur_line#3 ← (byte*) cur_line#10 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*) cur_line#3 ← (byte*) cur_line#10 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte) main::line2_i#1 ← ++ (byte) main::line2_i#2 (bool) main::line2_$2#0 ← (byte) main::line2_i#1 < (byte) main::line2_ysize#1 if((bool) main::line2_$2#0) goto main::line2_@1 @@ -126,7 +126,7 @@ main::@return: scope:[main] from main::@6 return to:@return @1: scope:[] from @begin - (byte*) cur_line#5 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) cur_line#5 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@3 @3: scope:[] from @1 (byte*) cur_line#15 ← phi( @1/(byte*) cur_line#5 ) @@ -316,21 +316,21 @@ Simple Condition (bool~) main::$1 [6] if((byte*) main::sc#1<(word/signed word/dw Simple Condition (bool) main::line1_$2#0 [27] if((byte) main::line1_i#1<(byte) main::line1_ysize#0) goto main::line1_@1 Simple Condition (bool) main::line2_$2#0 [48] if((byte) main::line2_i#1<(byte) main::line2_ysize#0) goto main::line2_@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) main::sc#0 = ((byte*))1024 -Constant (const word/signed word/dword/signed dword) main::$0 = 1024+1000 +Constant (const byte*) main::sc#0 = ((byte*))$400 +Constant (const word/signed word/dword/signed dword) main::$0 = $400+$3e8 Constant (const byte) main::line1_xpos#0 = 2 -Constant (const byte) main::line1_xadd#0 = 64 -Constant (const byte) main::line1_ysize#0 = 10 +Constant (const byte) main::line1_xadd#0 = $40 +Constant (const byte) main::line1_ysize#0 = $a Constant (const byte) main::line1_ch#0 = '*' -Constant (const byte*) cur_line#0 = ((byte*))1024 +Constant (const byte*) cur_line#0 = ((byte*))$400 Constant (const byte) main::line1_i#0 = 0 Constant (const byte) main::line2_xpos#0 = 4 -Constant (const byte) main::line2_xadd#0 = 128 -Constant (const byte) main::line2_ysize#0 = 15 +Constant (const byte) main::line2_xadd#0 = $80 +Constant (const byte) main::line2_ysize#0 = $f Constant (const byte) main::line2_ch#0 = '.' -Constant (const byte*) cur_line#2 = ((byte*))1024 +Constant (const byte*) cur_line#2 = ((byte*))$400 Constant (const byte) main::line2_i#0 = 0 -Constant (const byte*) cur_line#15 = ((byte*))1024 +Constant (const byte*) cur_line#15 = ((byte*))$400 Successful SSA optimization Pass2ConstantIdentification Fixing inline constructor with main::$4 ← main::line1_xpos#0 w= 0 Fixing inline constructor with main::$5 ← main::line2_xpos#0 w= 0 @@ -346,8 +346,8 @@ Successful SSA optimization Pass2CullEmptyBlocks Alias (word) main::line1_pos#0 = (word/signed word/dword/signed dword~) main::$4 Alias (word) main::line2_pos#0 = (word/signed word/dword/signed dword~) main::$5 Successful SSA optimization Pass2AliasElimination -Constant (const word) main::line1_pos#0 = main::line1_xpos#0*256+0 -Constant (const word) main::line2_pos#0 = main::line2_xpos#0*256+0 +Constant (const word) main::line1_pos#0 = main::line1_xpos#0*$100+0 +Constant (const word) main::line2_pos#0 = main::line2_xpos#0*$100+0 Successful SSA optimization Pass2ConstantIdentification Inlining constant with var siblings (const byte*) main::sc#0 Inlining constant with var siblings (const byte) main::line1_i#0 @@ -357,16 +357,16 @@ Inlining constant with var siblings (const word) main::line2_pos#0 Inlining constant with var siblings (const byte*) cur_line#0 Inlining constant with var siblings (const byte*) cur_line#2 Constant inlined main::line2_i#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 +Constant inlined main::$0 = (word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8 Constant inlined main::line1_i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::line2_pos#0 = (const byte) main::line2_xpos#0*(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined cur_line#0 = ((byte*))(word/signed word/dword/signed dword) 1024 -Constant inlined main::sc#0 = ((byte*))(word/signed word/dword/signed dword) 1024 -Constant inlined cur_line#2 = ((byte*))(word/signed word/dword/signed dword) 1024 -Constant inlined main::line1_pos#0 = (const byte) main::line1_xpos#0*(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined main::line2_pos#0 = (const byte) main::line2_xpos#0*(word/signed word/dword/signed dword) $100+(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined cur_line#0 = ((byte*))(word/signed word/dword/signed dword) $400 +Constant inlined main::sc#0 = ((byte*))(word/signed word/dword/signed dword) $400 +Constant inlined cur_line#2 = ((byte*))(word/signed word/dword/signed dword) $400 +Constant inlined main::line1_pos#0 = (const byte) main::line1_xpos#0*(word/signed word/dword/signed dword) $100+(byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining -Simplifying constant plus zero main::line1_xpos#0*256+0 -Simplifying constant plus zero main::line2_xpos#0*256+0 +Simplifying constant plus zero main::line1_xpos#0*$100+0 +Simplifying constant plus zero main::line2_xpos#0*$100+0 Added new block during phi lifting main::@7(between main::@1 and main::@1) Added new block during phi lifting main::@8(between main::@4 and main::line1_@1) Added new block during phi lifting main::@9(between main::@6 and main::line2_@1) @@ -412,18 +412,18 @@ main: scope:[main] from @3 [4] phi() 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 ) + [5] (byte*) main::sc#2 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@1/(byte*) main::sc#1 ) [6] *((byte*) main::sc#2) ← (byte) ' ' [7] (byte*) main::sc#1 ← ++ (byte*) main::sc#2 - [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto main::@1 + [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto main::@1 to:main::line1 main::line1: scope:[main] from main::@1 [9] phi() to:main::line1_@1 main::line1_@1: scope:[main] from main::@4 main::line1 [10] (byte) main::line1_i#2 ← phi( main::@4/(byte) main::line1_i#1 main::line1/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [10] (byte*) cur_line#13 ← phi( main::@4/(byte*) cur_line#1 main::line1/((byte*))(word/signed word/dword/signed dword) 1024 ) - [10] (word) main::line1_pos#2 ← phi( main::@4/(word) main::line1_pos#1 main::line1/(const byte) main::line1_xpos#0*(word/signed word/dword/signed dword) 256 ) + [10] (byte*) cur_line#13 ← phi( main::@4/(byte*) cur_line#1 main::line1/((byte*))(word/signed word/dword/signed dword) $400 ) + [10] (word) main::line1_pos#2 ← phi( main::@4/(word) main::line1_pos#1 main::line1/(const byte) main::line1_xpos#0*(word/signed word/dword/signed dword) $100 ) [11] (byte) main::plot1_xpos#0 ← > (word) main::line1_pos#2 to:main::plot1 main::plot1: scope:[main] from main::line1_@1 @@ -432,7 +432,7 @@ main::plot1: scope:[main] from main::line1_@1 to:main::@4 main::@4: scope:[main] from main::plot1 [14] (word) main::line1_pos#1 ← (word) main::line1_pos#2 + (const byte) main::line1_xadd#0 - [15] (byte*) cur_line#1 ← (byte*) cur_line#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [15] (byte*) cur_line#1 ← (byte*) cur_line#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 [16] (byte) main::line1_i#1 ← ++ (byte) main::line1_i#2 [17] if((byte) main::line1_i#1<(const byte) main::line1_ysize#0) goto main::line1_@1 to:main::line2 @@ -441,8 +441,8 @@ main::line2: scope:[main] from main::@4 to:main::line2_@1 main::line2_@1: scope:[main] from main::@6 main::line2 [19] (byte) main::line2_i#2 ← phi( main::@6/(byte) main::line2_i#1 main::line2/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [19] (byte*) cur_line#10 ← phi( main::@6/(byte*) cur_line#11 main::line2/((byte*))(word/signed word/dword/signed dword) 1024 ) - [19] (word) main::line2_pos#2 ← phi( main::@6/(word) main::line2_pos#1 main::line2/(const byte) main::line2_xpos#0*(word/signed word/dword/signed dword) 256 ) + [19] (byte*) cur_line#10 ← phi( main::@6/(byte*) cur_line#11 main::line2/((byte*))(word/signed word/dword/signed dword) $400 ) + [19] (word) main::line2_pos#2 ← phi( main::@6/(word) main::line2_pos#1 main::line2/(const byte) main::line2_xpos#0*(word/signed word/dword/signed dword) $100 ) [20] (byte) main::plot2_xpos#0 ← > (word) main::line2_pos#2 to:main::plot2 main::plot2: scope:[main] from main::line2_@1 @@ -451,7 +451,7 @@ main::plot2: scope:[main] from main::line2_@1 to:main::@6 main::@6: scope:[main] from main::plot2 [23] (word) main::line2_pos#1 ← (word) main::line2_pos#2 + (const byte) main::line2_xadd#0 - [24] (byte*) cur_line#11 ← (byte*) cur_line#10 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [24] (byte*) cur_line#11 ← (byte*) cur_line#10 + (byte/signed byte/word/signed word/dword/signed dword) $28 [25] (byte) main::line2_i#1 ← ++ (byte) main::line2_i#2 [26] if((byte) main::line2_i#1<(const byte) main::line2_ysize#0) goto main::line2_@1 to:main::@return @@ -589,7 +589,7 @@ main: { .label line2_i = $d //SEG11 [5] phi from main to main::@1 [phi:main->main::@1] b1_from_main: - //SEG12 [5] phi (byte*) main::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + //SEG12 [5] phi (byte*) main::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -610,7 +610,7 @@ main: { bne !+ inc sc+1 !: - //SEG18 [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto main::@1 -- pbuz1_lt_vwuc1_then_la1 + //SEG18 [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto main::@1 -- pbuz1_lt_vwuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bcc b1_from_b1 @@ -629,12 +629,12 @@ main: { //SEG22 [10] phi (byte) main::line1_i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::line1->main::line1_@1#0] -- vbuz1=vbuc1 lda #0 sta line1_i - //SEG23 [10] phi (byte*) cur_line#13 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::line1->main::line1_@1#1] -- pbuz1=pbuc1 + //SEG23 [10] phi (byte*) cur_line#13 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::line1->main::line1_@1#1] -- pbuz1=pbuc1 lda #<$400 sta cur_line lda #>$400 sta cur_line+1 - //SEG24 [10] phi (word) main::line1_pos#2 = (const byte) main::line1_xpos#0*(word/signed word/dword/signed dword) 256 [phi:main::line1->main::line1_@1#2] -- vwuz1=vwuc1 + //SEG24 [10] phi (word) main::line1_pos#2 = (const byte) main::line1_xpos#0*(word/signed word/dword/signed dword) $100 [phi:main::line1->main::line1_@1#2] -- vwuz1=vwuc1 lda #line1_xpos*$100 @@ -677,7 +677,7 @@ main: { lda line1_pos+1 adc #>line1_xadd sta line1_pos+1 - //SEG36 [15] (byte*) cur_line#1 ← (byte*) cur_line#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG36 [15] (byte*) cur_line#1 ← (byte*) cur_line#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda cur_line clc adc #$28 @@ -701,12 +701,12 @@ main: { //SEG42 [19] phi (byte) main::line2_i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::line2->main::line2_@1#0] -- vbuz1=vbuc1 lda #0 sta line2_i - //SEG43 [19] phi (byte*) cur_line#10 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::line2->main::line2_@1#1] -- pbuz1=pbuc1 + //SEG43 [19] phi (byte*) cur_line#10 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::line2->main::line2_@1#1] -- pbuz1=pbuc1 lda #<$400 sta cur_line_10 lda #>$400 sta cur_line_10+1 - //SEG44 [19] phi (word) main::line2_pos#2 = (const byte) main::line2_xpos#0*(word/signed word/dword/signed dword) 256 [phi:main::line2->main::line2_@1#2] -- vwuz1=vwuc1 + //SEG44 [19] phi (word) main::line2_pos#2 = (const byte) main::line2_xpos#0*(word/signed word/dword/signed dword) $100 [phi:main::line2->main::line2_@1#2] -- vwuz1=vwuc1 lda #line2_xpos*$100 @@ -749,7 +749,7 @@ main: { lda line2_pos+1 adc #>line2_xadd sta line2_pos+1 - //SEG56 [24] (byte*) cur_line#11 ← (byte*) cur_line#10 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG56 [24] (byte*) cur_line#11 ← (byte*) cur_line#10 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda cur_line_11 clc adc #$28 @@ -772,33 +772,33 @@ main: { 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 [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto main::@1 [ main::sc#1 ] ( main:2 [ main::sc#1 ] ) always clobbers reg byte a Statement [11] (byte) main::plot1_xpos#0 ← > (word) main::line1_pos#2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_xpos#0 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_xpos#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:8 [ main::line1_i#2 main::line1_i#1 ] Statement [12] (byte*) main::plot1_$0#0 ← (byte*) cur_line#13 + (byte) main::plot1_xpos#0 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_$0#0 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_$0#0 ] ) always clobbers reg byte a Statement [13] *((byte*) main::plot1_$0#0) ← (const byte) main::line1_ch#0 [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:8 [ main::line1_i#2 main::line1_i#1 ] Statement [14] (word) main::line1_pos#1 ← (word) main::line1_pos#2 + (const byte) main::line1_xadd#0 [ cur_line#13 main::line1_i#2 main::line1_pos#1 ] ( main:2 [ cur_line#13 main::line1_i#2 main::line1_pos#1 ] ) always clobbers reg byte a -Statement [15] (byte*) cur_line#1 ← (byte*) cur_line#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::line1_i#2 main::line1_pos#1 cur_line#1 ] ( main:2 [ main::line1_i#2 main::line1_pos#1 cur_line#1 ] ) always clobbers reg byte a +Statement [15] (byte*) cur_line#1 ← (byte*) cur_line#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ main::line1_i#2 main::line1_pos#1 cur_line#1 ] ( main:2 [ main::line1_i#2 main::line1_pos#1 cur_line#1 ] ) always clobbers reg byte a Statement [20] (byte) main::plot2_xpos#0 ← > (word) main::line2_pos#2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_xpos#0 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_xpos#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:13 [ main::line2_i#2 main::line2_i#1 ] Statement [21] (byte*) main::plot2_$0#0 ← (byte*) cur_line#10 + (byte) main::plot2_xpos#0 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_$0#0 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_$0#0 ] ) always clobbers reg byte a Statement [22] *((byte*) main::plot2_$0#0) ← (const byte) main::line2_ch#0 [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:13 [ main::line2_i#2 main::line2_i#1 ] Statement [23] (word) main::line2_pos#1 ← (word) main::line2_pos#2 + (const byte) main::line2_xadd#0 [ cur_line#10 main::line2_i#2 main::line2_pos#1 ] ( main:2 [ cur_line#10 main::line2_i#2 main::line2_pos#1 ] ) always clobbers reg byte a -Statement [24] (byte*) cur_line#11 ← (byte*) cur_line#10 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::line2_i#2 main::line2_pos#1 cur_line#11 ] ( main:2 [ main::line2_i#2 main::line2_pos#1 cur_line#11 ] ) always clobbers reg byte a +Statement [24] (byte*) cur_line#11 ← (byte*) cur_line#10 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ main::line2_i#2 main::line2_pos#1 cur_line#11 ] ( main:2 [ main::line2_i#2 main::line2_pos#1 cur_line#11 ] ) 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 [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto main::@1 [ main::sc#1 ] ( main:2 [ main::sc#1 ] ) always clobbers reg byte a Statement [11] (byte) main::plot1_xpos#0 ← > (word) main::line1_pos#2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_xpos#0 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_xpos#0 ] ) always clobbers reg byte a Statement [12] (byte*) main::plot1_$0#0 ← (byte*) cur_line#13 + (byte) main::plot1_xpos#0 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_$0#0 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 main::plot1_$0#0 ] ) always clobbers reg byte a Statement [13] *((byte*) main::plot1_$0#0) ← (const byte) main::line1_ch#0 [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] ( main:2 [ main::line1_pos#2 cur_line#13 main::line1_i#2 ] ) always clobbers reg byte a reg byte y Statement [14] (word) main::line1_pos#1 ← (word) main::line1_pos#2 + (const byte) main::line1_xadd#0 [ cur_line#13 main::line1_i#2 main::line1_pos#1 ] ( main:2 [ cur_line#13 main::line1_i#2 main::line1_pos#1 ] ) always clobbers reg byte a -Statement [15] (byte*) cur_line#1 ← (byte*) cur_line#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::line1_i#2 main::line1_pos#1 cur_line#1 ] ( main:2 [ main::line1_i#2 main::line1_pos#1 cur_line#1 ] ) always clobbers reg byte a +Statement [15] (byte*) cur_line#1 ← (byte*) cur_line#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ main::line1_i#2 main::line1_pos#1 cur_line#1 ] ( main:2 [ main::line1_i#2 main::line1_pos#1 cur_line#1 ] ) always clobbers reg byte a Statement [20] (byte) main::plot2_xpos#0 ← > (word) main::line2_pos#2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_xpos#0 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_xpos#0 ] ) always clobbers reg byte a Statement [21] (byte*) main::plot2_$0#0 ← (byte*) cur_line#10 + (byte) main::plot2_xpos#0 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_$0#0 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 main::plot2_$0#0 ] ) always clobbers reg byte a Statement [22] *((byte*) main::plot2_$0#0) ← (const byte) main::line2_ch#0 [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] ( main:2 [ main::line2_pos#2 cur_line#10 main::line2_i#2 ] ) always clobbers reg byte a reg byte y Statement [23] (word) main::line2_pos#1 ← (word) main::line2_pos#2 + (const byte) main::line2_xadd#0 [ cur_line#10 main::line2_i#2 main::line2_pos#1 ] ( main:2 [ cur_line#10 main::line2_i#2 main::line2_pos#1 ] ) always clobbers reg byte a -Statement [24] (byte*) cur_line#11 ← (byte*) cur_line#10 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::line2_i#2 main::line2_pos#1 cur_line#11 ] ( main:2 [ main::line2_i#2 main::line2_pos#1 cur_line#11 ] ) always clobbers reg byte a +Statement [24] (byte*) cur_line#11 ← (byte*) cur_line#10 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ main::line2_i#2 main::line2_pos#1 cur_line#11 ] ( main:2 [ main::line2_i#2 main::line2_pos#1 cur_line#11 ] ) 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_WORD:4 [ main::line1_pos#2 main::line1_pos#1 ] : zp ZP_WORD:4 , Potential registers zp ZP_WORD:6 [ cur_line#13 cur_line#1 ] : zp ZP_WORD:6 , @@ -866,7 +866,7 @@ main: { .label line2_pos = 2 //SEG11 [5] phi from main to main::@1 [phi:main->main::@1] b1_from_main: - //SEG12 [5] phi (byte*) main::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + //SEG12 [5] phi (byte*) main::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -887,7 +887,7 @@ main: { bne !+ inc sc+1 !: - //SEG18 [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto main::@1 -- pbuz1_lt_vwuc1_then_la1 + //SEG18 [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto main::@1 -- pbuz1_lt_vwuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bcc b1_from_b1 @@ -905,12 +905,12 @@ main: { line1_b1_from_line1: //SEG22 [10] phi (byte) main::line1_i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::line1->main::line1_@1#0] -- vbuxx=vbuc1 ldx #0 - //SEG23 [10] phi (byte*) cur_line#13 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::line1->main::line1_@1#1] -- pbuz1=pbuc1 + //SEG23 [10] phi (byte*) cur_line#13 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::line1->main::line1_@1#1] -- pbuz1=pbuc1 lda #<$400 sta cur_line lda #>$400 sta cur_line+1 - //SEG24 [10] phi (word) main::line1_pos#2 = (const byte) main::line1_xpos#0*(word/signed word/dword/signed dword) 256 [phi:main::line1->main::line1_@1#2] -- vwuz1=vwuc1 + //SEG24 [10] phi (word) main::line1_pos#2 = (const byte) main::line1_xpos#0*(word/signed word/dword/signed dword) $100 [phi:main::line1->main::line1_@1#2] -- vwuz1=vwuc1 lda #line1_xpos*$100 @@ -951,7 +951,7 @@ main: { lda line1_pos+1 adc #>line1_xadd sta line1_pos+1 - //SEG36 [15] (byte*) cur_line#1 ← (byte*) cur_line#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG36 [15] (byte*) cur_line#1 ← (byte*) cur_line#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda cur_line clc adc #$28 @@ -973,12 +973,12 @@ main: { line2_b1_from_line2: //SEG42 [19] phi (byte) main::line2_i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::line2->main::line2_@1#0] -- vbuxx=vbuc1 ldx #0 - //SEG43 [19] phi (byte*) cur_line#10 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::line2->main::line2_@1#1] -- pbuz1=pbuc1 + //SEG43 [19] phi (byte*) cur_line#10 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::line2->main::line2_@1#1] -- pbuz1=pbuc1 lda #<$400 sta cur_line lda #>$400 sta cur_line+1 - //SEG44 [19] phi (word) main::line2_pos#2 = (const byte) main::line2_xpos#0*(word/signed word/dword/signed dword) 256 [phi:main::line2->main::line2_@1#2] -- vwuz1=vwuc1 + //SEG44 [19] phi (word) main::line2_pos#2 = (const byte) main::line2_xpos#0*(word/signed word/dword/signed dword) $100 [phi:main::line2->main::line2_@1#2] -- vwuz1=vwuc1 lda #line2_xpos*$100 @@ -1019,7 +1019,7 @@ main: { lda line2_pos+1 adc #>line2_xadd sta line2_pos+1 - //SEG56 [24] (byte*) cur_line#11 ← (byte*) cur_line#10 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG56 [24] (byte*) cur_line#11 ← (byte*) cur_line#10 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda cur_line clc adc #$28 @@ -1116,11 +1116,11 @@ FINAL SYMBOL TABLE (word) main::line1_pos#1 line1_pos zp ZP_WORD:2 5.5 (word) main::line1_pos#2 line1_pos zp ZP_WORD:2 8.25 (byte) main::line1_xadd -(const byte) main::line1_xadd#0 line1_xadd = (byte/signed byte/word/signed word/dword/signed dword) 64 +(const byte) main::line1_xadd#0 line1_xadd = (byte/signed byte/word/signed word/dword/signed dword) $40 (byte) main::line1_xpos (const byte) main::line1_xpos#0 line1_xpos = (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) main::line1_ysize -(const byte) main::line1_ysize#0 line1_ysize = (byte/signed byte/word/signed word/dword/signed dword) 10 +(const byte) main::line1_ysize#0 line1_ysize = (byte/signed byte/word/signed word/dword/signed dword) $a (label) main::line2 (byte~) main::line2_$0 (bool~) main::line2_$2 @@ -1134,11 +1134,11 @@ FINAL SYMBOL TABLE (word) main::line2_pos#1 line2_pos zp ZP_WORD:2 5.5 (word) main::line2_pos#2 line2_pos zp ZP_WORD:2 8.25 (byte) main::line2_xadd -(const byte) main::line2_xadd#0 line2_xadd = (byte/word/signed word/dword/signed dword) 128 +(const byte) main::line2_xadd#0 line2_xadd = (byte/word/signed word/dword/signed dword) $80 (byte) main::line2_xpos (const byte) main::line2_xpos#0 line2_xpos = (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) main::line2_ysize -(const byte) main::line2_ysize#0 line2_ysize = (byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte) main::line2_ysize#0 line2_ysize = (byte/signed byte/word/signed word/dword/signed dword) $f (label) main::plot1 (byte*~) main::plot1_$0 (byte*) main::plot1_$0#0 plot1_$0 zp ZP_WORD:6 22.0 @@ -1198,7 +1198,7 @@ main: { .label plot2__0 = 6 .label line2_pos = 2 //SEG11 [5] phi from main to main::@1 [phi:main->main::@1] - //SEG12 [5] phi (byte*) main::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + //SEG12 [5] phi (byte*) main::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -1216,7 +1216,7 @@ main: { bne !+ inc sc+1 !: - //SEG18 [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto main::@1 -- pbuz1_lt_vwuc1_then_la1 + //SEG18 [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto main::@1 -- pbuz1_lt_vwuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bcc b1 @@ -1230,12 +1230,12 @@ main: { //SEG21 [10] phi from main::line1 to main::line1_@1 [phi:main::line1->main::line1_@1] //SEG22 [10] phi (byte) main::line1_i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::line1->main::line1_@1#0] -- vbuxx=vbuc1 ldx #0 - //SEG23 [10] phi (byte*) cur_line#13 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::line1->main::line1_@1#1] -- pbuz1=pbuc1 + //SEG23 [10] phi (byte*) cur_line#13 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::line1->main::line1_@1#1] -- pbuz1=pbuc1 lda #<$400 sta cur_line lda #>$400 sta cur_line+1 - //SEG24 [10] phi (word) main::line1_pos#2 = (const byte) main::line1_xpos#0*(word/signed word/dword/signed dword) 256 [phi:main::line1->main::line1_@1#2] -- vwuz1=vwuc1 + //SEG24 [10] phi (word) main::line1_pos#2 = (const byte) main::line1_xpos#0*(word/signed word/dword/signed dword) $100 [phi:main::line1->main::line1_@1#2] -- vwuz1=vwuc1 lda #line1_xpos*$100 @@ -1269,7 +1269,7 @@ main: { lda line1_pos+1 adc #>line1_xadd sta line1_pos+1 - //SEG36 [15] (byte*) cur_line#1 ← (byte*) cur_line#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG36 [15] (byte*) cur_line#1 ← (byte*) cur_line#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda cur_line clc adc #$28 @@ -1287,12 +1287,12 @@ main: { //SEG41 [19] phi from main::line2 to main::line2_@1 [phi:main::line2->main::line2_@1] //SEG42 [19] phi (byte) main::line2_i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::line2->main::line2_@1#0] -- vbuxx=vbuc1 ldx #0 - //SEG43 [19] phi (byte*) cur_line#10 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::line2->main::line2_@1#1] -- pbuz1=pbuc1 + //SEG43 [19] phi (byte*) cur_line#10 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::line2->main::line2_@1#1] -- pbuz1=pbuc1 lda #<$400 sta cur_line lda #>$400 sta cur_line+1 - //SEG44 [19] phi (word) main::line2_pos#2 = (const byte) main::line2_xpos#0*(word/signed word/dword/signed dword) 256 [phi:main::line2->main::line2_@1#2] -- vwuz1=vwuc1 + //SEG44 [19] phi (word) main::line2_pos#2 = (const byte) main::line2_xpos#0*(word/signed word/dword/signed dword) $100 [phi:main::line2->main::line2_@1#2] -- vwuz1=vwuc1 lda #line2_xpos*$100 @@ -1326,7 +1326,7 @@ main: { lda line2_pos+1 adc #>line2_xadd sta line2_pos+1 - //SEG56 [24] (byte*) cur_line#11 ← (byte*) cur_line#10 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG56 [24] (byte*) cur_line#11 ← (byte*) cur_line#10 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda cur_line clc adc #$28 diff --git a/src/test/ref/inline-function-level2.sym b/src/test/ref/inline-function-level2.sym index 2fcbcbc27..472a98ece 100644 --- a/src/test/ref/inline-function-level2.sym +++ b/src/test/ref/inline-function-level2.sym @@ -24,11 +24,11 @@ (word) main::line1_pos#1 line1_pos zp ZP_WORD:2 5.5 (word) main::line1_pos#2 line1_pos zp ZP_WORD:2 8.25 (byte) main::line1_xadd -(const byte) main::line1_xadd#0 line1_xadd = (byte/signed byte/word/signed word/dword/signed dword) 64 +(const byte) main::line1_xadd#0 line1_xadd = (byte/signed byte/word/signed word/dword/signed dword) $40 (byte) main::line1_xpos (const byte) main::line1_xpos#0 line1_xpos = (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) main::line1_ysize -(const byte) main::line1_ysize#0 line1_ysize = (byte/signed byte/word/signed word/dword/signed dword) 10 +(const byte) main::line1_ysize#0 line1_ysize = (byte/signed byte/word/signed word/dword/signed dword) $a (label) main::line2 (byte~) main::line2_$0 (bool~) main::line2_$2 @@ -42,11 +42,11 @@ (word) main::line2_pos#1 line2_pos zp ZP_WORD:2 5.5 (word) main::line2_pos#2 line2_pos zp ZP_WORD:2 8.25 (byte) main::line2_xadd -(const byte) main::line2_xadd#0 line2_xadd = (byte/word/signed word/dword/signed dword) 128 +(const byte) main::line2_xadd#0 line2_xadd = (byte/word/signed word/dword/signed dword) $80 (byte) main::line2_xpos (const byte) main::line2_xpos#0 line2_xpos = (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) main::line2_ysize -(const byte) main::line2_ysize#0 line2_ysize = (byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte) main::line2_ysize#0 line2_ysize = (byte/signed byte/word/signed word/dword/signed dword) $f (label) main::plot1 (byte*~) main::plot1_$0 (byte*) main::plot1_$0#0 plot1_$0 zp ZP_WORD:6 22.0 diff --git a/src/test/ref/inline-function-min.log b/src/test/ref/inline-function-min.log index 3465d0934..6fabbb132 100644 --- a/src/test/ref/inline-function-min.log +++ b/src/test/ref/inline-function-min.log @@ -1,10 +1,10 @@ Inlined call (byte~) main::$0 ← call sum (byte/signed byte/word/signed word/dword/signed dword) 2 (byte/signed byte/word/signed word/dword/signed dword) 1 -Inlined call (byte~) main::$1 ← call sum (byte/signed byte/word/signed word/dword/signed dword) 10 (byte/signed byte/word/signed word/dword/signed dword) 3 +Inlined call (byte~) main::$1 ← call sum (byte/signed byte/word/signed word/dword/signed dword) $a (byte/signed byte/word/signed word/dword/signed dword) 3 Inlined call (byte~) main::$2 ← call sum (byte/signed byte/word/signed word/dword/signed dword) 4 (byte/signed byte/word/signed word/dword/signed dword) 8 CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@2 main: scope:[main] from @2 (byte*) screen#10 ← phi( @2/(byte*) screen#11 ) @@ -28,7 +28,7 @@ main::@1: scope:[main] from main::sum1_@return (byte) main::sum1_return#3 ← phi( main::sum1_@return/(byte) main::sum1_return#1 ) (byte~) main::$0 ← (byte) main::sum1_return#3 *((byte*) screen#1 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte~) main::$0 - (byte) main::sum2_a#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 + (byte) main::sum2_a#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a (byte) main::sum2_b#0 ← (byte/signed byte/word/signed word/dword/signed dword) 3 to:main::sum2 main::sum2: scope:[main] from main::@1 @@ -168,10 +168,10 @@ Alias (byte*) screen#0 = (byte*) screen#11 Successful SSA optimization Pass2AliasElimination Redundant Phi (byte*) screen#1 (byte*) screen#0 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte*) screen#0 = ((byte*))1024 +Constant (const byte*) screen#0 = ((byte*))$400 Constant (const byte) main::sum1_a#0 = 2 Constant (const byte) main::sum1_b#0 = 1 -Constant (const byte) main::sum2_a#0 = 10 +Constant (const byte) main::sum2_a#0 = $a Constant (const byte) main::sum2_b#0 = 3 Constant (const byte) main::sum3_a#0 = 4 Constant (const byte) main::sum3_b#0 = 8 @@ -482,7 +482,7 @@ FINAL SYMBOL TABLE (label) main::sum2 (byte~) main::sum2_$0 (byte) main::sum2_a -(const byte) main::sum2_a#0 sum2_a = (byte/signed byte/word/signed word/dword/signed dword) 10 +(const byte) main::sum2_a#0 sum2_a = (byte/signed byte/word/signed word/dword/signed dword) $a (byte) main::sum2_b (const byte) main::sum2_b#0 sum2_b = (byte/signed byte/word/signed word/dword/signed dword) 3 (byte) main::sum2_return @@ -496,7 +496,7 @@ FINAL SYMBOL TABLE (byte) main::sum3_return (const byte) main::sum3_return#0 sum3_return = (const byte) main::sum3_a#0+(const byte) main::sum3_b#0 (byte*) screen -(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/inline-function-min.sym b/src/test/ref/inline-function-min.sym index c3eee54e7..be60af651 100644 --- a/src/test/ref/inline-function-min.sym +++ b/src/test/ref/inline-function-min.sym @@ -17,7 +17,7 @@ (label) main::sum2 (byte~) main::sum2_$0 (byte) main::sum2_a -(const byte) main::sum2_a#0 sum2_a = (byte/signed byte/word/signed word/dword/signed dword) 10 +(const byte) main::sum2_a#0 sum2_a = (byte/signed byte/word/signed word/dword/signed dword) $a (byte) main::sum2_b (const byte) main::sum2_b#0 sum2_b = (byte/signed byte/word/signed word/dword/signed dword) 3 (byte) main::sum2_return @@ -31,5 +31,5 @@ (byte) main::sum3_return (const byte) main::sum3_return#0 sum3_return = (const byte) main::sum3_a#0+(const byte) main::sum3_b#0 (byte*) screen -(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/inline-function-print.log b/src/test/ref/inline-function-print.log index 2d54466da..6339beb42 100644 --- a/src/test/ref/inline-function-print.log +++ b/src/test/ref/inline-function-print.log @@ -3,7 +3,7 @@ Inlined call call print (byte*~) main::$2 (byte*) main::hello CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@2 main: scope:[main] from @2 (byte*) screen#1 ← phi( @2/(byte*) screen#3 ) @@ -35,7 +35,7 @@ main::print1_@1: scope:[main] from main::print1 main::print1_@1 main::@1: scope:[main] from main::print1_@1 (byte*) main::hello#1 ← phi( main::print1_@1/(byte*) main::hello#2 ) (byte*) screen#2 ← phi( main::print1_@1/(byte*) screen#4 ) - (byte/signed byte/word/signed word/dword/signed dword~) main::$1 ← (byte/signed byte/word/signed word/dword/signed dword) 2 * (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte/signed byte/word/signed word/dword/signed dword~) main::$1 ← (byte/signed byte/word/signed word/dword/signed dword) 2 * (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*~) main::$2 ← (byte*) screen#2 + (byte/signed byte/word/signed word/dword/signed dword~) main::$1 (byte*) main::print2_at#0 ← (byte*~) main::$2 (byte*) main::print2_msg#0 ← (byte*) main::hello#1 @@ -160,11 +160,11 @@ Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool) main::print1_$0#0 [13] if(*((byte*) main::print1_msg#0 + (byte) main::print1_i#1)!=(byte) '@') goto main::print1_@1 Simple Condition (bool) main::print2_$0#0 [27] if(*((byte*) main::print1_msg#0 + (byte) main::print2_i#1)!=(byte) '@') goto main::print2_@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) screen#0 = ((byte*))1024 +Constant (const byte*) screen#0 = ((byte*))$400 Constant (const byte*) main::print1_msg#0 = main::$4 Constant (const byte) main::print1_j#0 = 0 Constant (const byte) main::print1_i#0 = 0 -Constant (const byte/signed byte/word/signed word/dword/signed dword) main::$1 = 2*40 +Constant (const byte/signed byte/word/signed word/dword/signed dword) main::$1 = 2*$28 Constant (const byte) main::print2_j#0 = 0 Constant (const byte) main::print2_i#0 = 0 Successful SSA optimization Pass2ConstantIdentification @@ -180,7 +180,7 @@ Inlining constant with var siblings (const byte) main::print2_i#0 Constant inlined main::print2_j#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::print1_at#0 = (const byte*) screen#0 Constant inlined main::print2_i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$1 = (byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$1 = (byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::$4 = (const byte*) main::print1_msg#0 Constant inlined main::print1_i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::print1_j#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -587,7 +587,7 @@ FINAL SYMBOL TABLE (bool~) main::print2_$0 (label) main::print2_@1 (byte*) main::print2_at -(const byte*) main::print2_at#0 print2_at = (const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40 +(const byte*) main::print2_at#0 print2_at = (const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28 (byte) main::print2_i (byte) main::print2_i#1 reg byte y 16.5 (byte) main::print2_i#2 reg byte y 11.0 @@ -596,7 +596,7 @@ FINAL SYMBOL TABLE (byte) main::print2_j#2 reg byte x 16.5 (byte*) main::print2_msg (byte*) screen -(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 reg byte y [ main::print1_i#2 main::print1_i#1 ] reg byte x [ main::print1_j#2 main::print1_j#1 ] diff --git a/src/test/ref/inline-function-print.sym b/src/test/ref/inline-function-print.sym index 8cf8ff40f..5621c0d7f 100644 --- a/src/test/ref/inline-function-print.sym +++ b/src/test/ref/inline-function-print.sym @@ -20,7 +20,7 @@ (bool~) main::print2_$0 (label) main::print2_@1 (byte*) main::print2_at -(const byte*) main::print2_at#0 print2_at = (const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40 +(const byte*) main::print2_at#0 print2_at = (const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28 (byte) main::print2_i (byte) main::print2_i#1 reg byte y 16.5 (byte) main::print2_i#2 reg byte y 11.0 @@ -29,7 +29,7 @@ (byte) main::print2_j#2 reg byte x 16.5 (byte*) main::print2_msg (byte*) screen -(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 reg byte y [ main::print1_i#2 main::print1_i#1 ] reg byte x [ main::print1_j#2 main::print1_j#1 ] diff --git a/src/test/ref/inline-function.cfg b/src/test/ref/inline-function.cfg index e36939789..ceaa3c97a 100644 --- a/src/test/ref/inline-function.cfg +++ b/src/test/ref/inline-function.cfg @@ -11,7 +11,7 @@ main: scope:[main] from @2 asm { sei } to:main::@4 main::@4: scope:[main] from main main::@20 main::@4 - [5] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 + [5] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 to:main::toD0181 main::toD0181: scope:[main] from main::@4 [6] phi() @@ -21,12 +21,12 @@ main::@19: scope:[main] from main::toD0181 [8] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 6 to:main::@7 main::@7: scope:[main] from main::@19 main::@7 - [9] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 98) goto main::@7 + [9] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $62) goto main::@7 to:main::toD0182 main::toD0182: scope:[main] from main::@7 [10] phi() to:main::@20 main::@20: scope:[main] from main::toD0182 [11] *((const byte*) D018#0) ← (const byte) main::toD0182_return#0 - [12] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 11 + [12] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) $b to:main::@4 diff --git a/src/test/ref/inline-function.log b/src/test/ref/inline-function.log index 63e755cb7..b66bfcf9d 100644 --- a/src/test/ref/inline-function.log +++ b/src/test/ref/inline-function.log @@ -3,12 +3,12 @@ Inlined call (byte~) main::$3 ← call toD018 (byte*) screen (byte*) charset2 CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte*) charset1#0 ← ((byte*)) (word/signed word/dword/signed dword) 4096 - (byte*) charset2#0 ← ((byte*)) (word/signed word/dword/signed dword) 6144 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte*) charset1#0 ← ((byte*)) (word/signed word/dword/signed dword) $1000 + (byte*) charset2#0 ← ((byte*)) (word/signed word/dword/signed dword) $1800 to:@2 main: scope:[main] from @2 (byte*) charset2#12 ← phi( @2/(byte*) charset2#14 ) @@ -43,7 +43,7 @@ main::@4: scope:[main] from main::@2 main::@5 (byte*) charset1#2 ← phi( main::@2/(byte*) charset1#3 main::@5/(byte*) charset1#4 ) (byte*) screen#3 ← phi( main::@2/(byte*) screen#5 main::@5/(byte*) screen#6 ) (byte*) RASTER#1 ← phi( main::@2/(byte*) RASTER#3 main::@5/(byte*) RASTER#4 ) - (bool~) main::$0 ← *((byte*) RASTER#1) != (byte/word/signed word/dword/signed dword) 255 + (bool~) main::$0 ← *((byte*) RASTER#1) != (byte/word/signed word/dword/signed dword) $ff if((bool~) main::$0) goto main::@5 to:main::@6 main::@5: scope:[main] from main::@4 @@ -74,9 +74,9 @@ main::toD0181: scope:[main] from main::@6 (byte*) main::toD0181_charset#1 ← phi( main::@6/(byte*) main::toD0181_charset#0 ) (byte*) main::toD0181_screen#1 ← phi( main::@6/(byte*) main::toD0181_screen#0 ) (word) main::toD0181_$0#0 ← ((word)) (byte*) main::toD0181_screen#1 - (word/signed dword/dword) main::toD0181_$1#0 ← (word) main::toD0181_$0#0 / (byte/signed byte/word/signed word/dword/signed dword) 64 + (word/signed dword/dword) main::toD0181_$1#0 ← (word) main::toD0181_$0#0 / (byte/signed byte/word/signed word/dword/signed dword) $40 (word) main::toD0181_$2#0 ← ((word)) (byte*) main::toD0181_charset#1 - (word/signed dword/dword) main::toD0181_$3#0 ← (word) main::toD0181_$2#0 / (word/signed word/dword/signed dword) 1024 + (word/signed dword/dword) main::toD0181_$3#0 ← (word) main::toD0181_$2#0 / (word/signed word/dword/signed dword) $400 (word/dword) main::toD0181_$4#0 ← (word/signed dword/dword) main::toD0181_$1#0 | (word/signed dword/dword) main::toD0181_$3#0 (byte) main::toD0181_$5#0 ← ((byte)) (word/dword) main::toD0181_$4#0 (byte) main::toD0181_return#0 ← (byte) main::toD0181_$5#0 @@ -110,7 +110,7 @@ main::@7: scope:[main] from main::@19 main::@8 (byte*) charset2#2 ← phi( main::@19/(byte*) charset2#3 main::@8/(byte*) charset2#4 ) (byte*) screen#4 ← phi( main::@19/(byte*) screen#7 main::@8/(byte*) screen#8 ) (byte*) RASTER#2 ← phi( main::@19/(byte*) RASTER#5 main::@8/(byte*) RASTER#6 ) - (bool~) main::$2 ← *((byte*) RASTER#2) != (byte/signed byte/word/signed word/dword/signed dword) 98 + (bool~) main::$2 ← *((byte*) RASTER#2) != (byte/signed byte/word/signed word/dword/signed dword) $62 if((bool~) main::$2) goto main::@8 to:main::@9 main::@8: scope:[main] from main::@7 @@ -141,9 +141,9 @@ main::toD0182: scope:[main] from main::@9 (byte*) main::toD0182_charset#1 ← phi( main::@9/(byte*) main::toD0182_charset#0 ) (byte*) main::toD0182_screen#1 ← phi( main::@9/(byte*) main::toD0182_screen#0 ) (word) main::toD0182_$0#0 ← ((word)) (byte*) main::toD0182_screen#1 - (word/signed dword/dword) main::toD0182_$1#0 ← (word) main::toD0182_$0#0 / (byte/signed byte/word/signed word/dword/signed dword) 64 + (word/signed dword/dword) main::toD0182_$1#0 ← (word) main::toD0182_$0#0 / (byte/signed byte/word/signed word/dword/signed dword) $40 (word) main::toD0182_$2#0 ← ((word)) (byte*) main::toD0182_charset#1 - (word/signed dword/dword) main::toD0182_$3#0 ← (word) main::toD0182_$2#0 / (word/signed word/dword/signed dword) 1024 + (word/signed dword/dword) main::toD0182_$3#0 ← (word) main::toD0182_$2#0 / (word/signed word/dword/signed dword) $400 (word/dword) main::toD0182_$4#0 ← (word/signed dword/dword) main::toD0182_$1#0 | (word/signed dword/dword) main::toD0182_$3#0 (byte) main::toD0182_$5#0 ← ((byte)) (word/dword) main::toD0182_$4#0 (byte) main::toD0182_return#0 ← (byte) main::toD0182_$5#0 @@ -168,7 +168,7 @@ main::@20: scope:[main] from main::toD0182_@return (byte) main::toD0182_return#3 ← phi( main::toD0182_@return/(byte) main::toD0182_return#1 ) (byte~) main::$3 ← (byte) main::toD0182_return#3 *((byte*) D018#2) ← (byte~) main::$3 - *((byte*) BGCOL#2) ← (byte/signed byte/word/signed word/dword/signed dword) 11 + *((byte*) BGCOL#2) ← (byte/signed byte/word/signed word/dword/signed dword) $b to:main::@1 main::@return: scope:[main] from main::@1 return @@ -431,15 +431,15 @@ Redundant Phi (byte*) D018#10 (byte*) D018#1 Redundant Phi (byte*) BGCOL#10 (byte*) BGCOL#1 Redundant Phi (byte*) charset1#10 (byte*) charset1#1 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$0 [13] if(*((byte*) RASTER#3)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 -Simple Condition (bool~) main::$2 [34] if(*((byte*) RASTER#3)!=(byte/signed byte/word/signed word/dword/signed dword) 98) goto main::@8 +Simple Condition (bool~) main::$0 [13] if(*((byte*) RASTER#3)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@5 +Simple Condition (bool~) main::$2 [34] if(*((byte*) RASTER#3)!=(byte/signed byte/word/signed word/dword/signed dword) $62) goto main::@8 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) screen#0 = ((byte*))1024 -Constant (const byte*) charset1#0 = ((byte*))4096 -Constant (const byte*) charset2#0 = ((byte*))6144 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) screen#0 = ((byte*))$400 +Constant (const byte*) charset1#0 = ((byte*))$1000 +Constant (const byte*) charset2#0 = ((byte*))$1800 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [2] if(true) goto main::@2 Successful SSA optimization Pass2ConstantIfs @@ -475,10 +475,10 @@ Constant (const byte*) main::toD0181_charset#0 = charset1#0 Constant (const byte*) main::toD0182_screen#0 = screen#0 Constant (const byte*) main::toD0182_charset#0 = charset2#0 Successful SSA optimization Pass2ConstantIdentification -Constant (const word/signed dword/dword) main::toD0181_$1#0 = (word)main::toD0181_screen#0/64 -Constant (const word/signed dword/dword) main::toD0181_$3#0 = (word)main::toD0181_charset#0/1024 -Constant (const word/signed dword/dword) main::toD0182_$1#0 = (word)main::toD0182_screen#0/64 -Constant (const word/signed dword/dword) main::toD0182_$3#0 = (word)main::toD0182_charset#0/1024 +Constant (const word/signed dword/dword) main::toD0181_$1#0 = (word)main::toD0181_screen#0/$40 +Constant (const word/signed dword/dword) main::toD0181_$3#0 = (word)main::toD0181_charset#0/$400 +Constant (const word/signed dword/dword) main::toD0182_$1#0 = (word)main::toD0182_screen#0/$40 +Constant (const word/signed dword/dword) main::toD0182_$3#0 = (word)main::toD0182_charset#0/$400 Successful SSA optimization Pass2ConstantIdentification Constant (const word/dword) main::toD0181_$4#0 = main::toD0181_$1#0|main::toD0181_$3#0 Constant (const word/dword) main::toD0182_$4#0 = main::toD0182_$1#0|main::toD0182_$3#0 @@ -492,13 +492,13 @@ Culled Empty Block (label) main::@9 Successful SSA optimization Pass2CullEmptyBlocks Constant inlined main::toD0181_screen#0 = (const byte*) screen#0 Constant inlined main::toD0182_charset#0 = (const byte*) charset2#0 -Constant inlined main::toD0181_$3#0 = (word)(const byte*) charset1#0/(word/signed word/dword/signed dword) 1024 +Constant inlined main::toD0181_$3#0 = (word)(const byte*) charset1#0/(word/signed word/dword/signed dword) $400 Constant inlined main::toD0182_screen#0 = (const byte*) screen#0 -Constant inlined main::toD0181_$4#0 = (word)(const byte*) screen#0/(byte/signed byte/word/signed word/dword/signed dword) 64|(word)(const byte*) charset1#0/(word/signed word/dword/signed dword) 1024 -Constant inlined main::toD0182_$1#0 = (word)(const byte*) screen#0/(byte/signed byte/word/signed word/dword/signed dword) 64 -Constant inlined main::toD0182_$4#0 = (word)(const byte*) screen#0/(byte/signed byte/word/signed word/dword/signed dword) 64|(word)(const byte*) charset2#0/(word/signed word/dword/signed dword) 1024 -Constant inlined main::toD0182_$3#0 = (word)(const byte*) charset2#0/(word/signed word/dword/signed dword) 1024 -Constant inlined main::toD0181_$1#0 = (word)(const byte*) screen#0/(byte/signed byte/word/signed word/dword/signed dword) 64 +Constant inlined main::toD0181_$4#0 = (word)(const byte*) screen#0/(byte/signed byte/word/signed word/dword/signed dword) $40|(word)(const byte*) charset1#0/(word/signed word/dword/signed dword) $400 +Constant inlined main::toD0182_$1#0 = (word)(const byte*) screen#0/(byte/signed byte/word/signed word/dword/signed dword) $40 +Constant inlined main::toD0182_$4#0 = (word)(const byte*) screen#0/(byte/signed byte/word/signed word/dword/signed dword) $40|(word)(const byte*) charset2#0/(word/signed word/dword/signed dword) $400 +Constant inlined main::toD0182_$3#0 = (word)(const byte*) charset2#0/(word/signed word/dword/signed dword) $400 +Constant inlined main::toD0181_$1#0 = (word)(const byte*) screen#0/(byte/signed byte/word/signed word/dword/signed dword) $40 Constant inlined main::toD0181_charset#0 = (const byte*) charset1#0 Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of @begin @@ -531,7 +531,7 @@ main: scope:[main] from @2 asm { sei } to:main::@4 main::@4: scope:[main] from main main::@20 main::@4 - [5] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 + [5] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 to:main::toD0181 main::toD0181: scope:[main] from main::@4 [6] phi() @@ -541,14 +541,14 @@ main::@19: scope:[main] from main::toD0181 [8] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 6 to:main::@7 main::@7: scope:[main] from main::@19 main::@7 - [9] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 98) goto main::@7 + [9] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $62) goto main::@7 to:main::toD0182 main::toD0182: scope:[main] from main::@7 [10] phi() to:main::@20 main::@20: scope:[main] from main::toD0182 [11] *((const byte*) D018#0) ← (const byte) main::toD0182_return#0 - [12] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 11 + [12] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) $b to:main::@4 @@ -620,7 +620,7 @@ main: { jmp b4 //SEG11 main::@4 b4: - //SEG12 [5] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG12 [5] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -641,7 +641,7 @@ main: { jmp b7 //SEG18 main::@7 b7: - //SEG19 [9] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 98) goto main::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG19 [9] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $62) goto main::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$62 bne b7 @@ -656,19 +656,19 @@ main: { //SEG23 [11] *((const byte*) D018#0) ← (const byte) main::toD0182_return#0 -- _deref_pbuc1=vbuc2 lda #toD0182_return sta D018 - //SEG24 [12] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 11 -- _deref_pbuc1=vbuc2 + //SEG24 [12] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) $b -- _deref_pbuc1=vbuc2 lda #$b sta BGCOL jmp b4 } REGISTER UPLIFT POTENTIAL REGISTERS -Statement [5] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [5] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [7] *((const byte*) D018#0) ← (const byte) main::toD0181_return#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [8] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 6 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [9] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 98) goto main::@7 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [9] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $62) goto main::@7 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [11] *((const byte*) D018#0) ← (const byte) main::toD0182_return#0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [12] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 11 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [12] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) $b [ ] ( main:2 [ ] ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [main] @@ -715,7 +715,7 @@ main: { jmp b4 //SEG11 main::@4 b4: - //SEG12 [5] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG12 [5] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -736,7 +736,7 @@ main: { jmp b7 //SEG18 main::@7 b7: - //SEG19 [9] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 98) goto main::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG19 [9] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $62) goto main::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$62 bne b7 @@ -751,7 +751,7 @@ main: { //SEG23 [11] *((const byte*) D018#0) ← (const byte) main::toD0182_return#0 -- _deref_pbuc1=vbuc2 lda #toD0182_return sta D018 - //SEG24 [12] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 11 -- _deref_pbuc1=vbuc2 + //SEG24 [12] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) $b -- _deref_pbuc1=vbuc2 lda #$b sta BGCOL jmp b4 @@ -790,15 +790,15 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) D018 -(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) 53272 +(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) $d018 (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte*) charset1 -(const byte*) charset1#0 charset1 = ((byte*))(word/signed word/dword/signed dword) 4096 +(const byte*) charset1#0 charset1 = ((byte*))(word/signed word/dword/signed dword) $1000 (byte*) charset2 -(const byte*) charset2#0 charset2 = ((byte*))(word/signed word/dword/signed dword) 6144 +(const byte*) charset2#0 charset2 = ((byte*))(word/signed word/dword/signed dword) $1800 (void()) main() (label) main::@19 (label) main::@20 @@ -813,7 +813,7 @@ FINAL SYMBOL TABLE (byte~) main::toD0181_$5 (byte*) main::toD0181_charset (byte) main::toD0181_return -(const byte) main::toD0181_return#0 toD0181_return = ((byte))(word)(const byte*) screen#0/(byte/signed byte/word/signed word/dword/signed dword) 64|(word)(const byte*) charset1#0/(word/signed word/dword/signed dword) 1024 +(const byte) main::toD0181_return#0 toD0181_return = ((byte))(word)(const byte*) screen#0/(byte/signed byte/word/signed word/dword/signed dword) $40|(word)(const byte*) charset1#0/(word/signed word/dword/signed dword) $400 (byte*) main::toD0181_screen (label) main::toD0182 (word~) main::toD0182_$0 @@ -824,10 +824,10 @@ FINAL SYMBOL TABLE (byte~) main::toD0182_$5 (byte*) main::toD0182_charset (byte) main::toD0182_return -(const byte) main::toD0182_return#0 toD0182_return = ((byte))(word)(const byte*) screen#0/(byte/signed byte/word/signed word/dword/signed dword) 64|(word)(const byte*) charset2#0/(word/signed word/dword/signed dword) 1024 +(const byte) main::toD0182_return#0 toD0182_return = ((byte))(word)(const byte*) screen#0/(byte/signed byte/word/signed word/dword/signed dword) $40|(word)(const byte*) charset2#0/(word/signed word/dword/signed dword) $400 (byte*) main::toD0182_screen (byte*) screen -(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 @@ -862,7 +862,7 @@ main: { sei //SEG11 main::@4 b4: - //SEG12 [5] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG12 [5] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -877,7 +877,7 @@ main: { sta BGCOL //SEG18 main::@7 b7: - //SEG19 [9] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 98) goto main::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG19 [9] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) $62) goto main::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$62 bne b7 @@ -887,7 +887,7 @@ main: { //SEG23 [11] *((const byte*) D018#0) ← (const byte) main::toD0182_return#0 -- _deref_pbuc1=vbuc2 lda #toD0182_return sta D018 - //SEG24 [12] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 11 -- _deref_pbuc1=vbuc2 + //SEG24 [12] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) $b -- _deref_pbuc1=vbuc2 lda #$b sta BGCOL jmp b4 diff --git a/src/test/ref/inline-function.sym b/src/test/ref/inline-function.sym index 187837fd5..e4a53d9ec 100644 --- a/src/test/ref/inline-function.sym +++ b/src/test/ref/inline-function.sym @@ -2,15 +2,15 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) D018 -(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) 53272 +(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) $d018 (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte*) charset1 -(const byte*) charset1#0 charset1 = ((byte*))(word/signed word/dword/signed dword) 4096 +(const byte*) charset1#0 charset1 = ((byte*))(word/signed word/dword/signed dword) $1000 (byte*) charset2 -(const byte*) charset2#0 charset2 = ((byte*))(word/signed word/dword/signed dword) 6144 +(const byte*) charset2#0 charset2 = ((byte*))(word/signed word/dword/signed dword) $1800 (void()) main() (label) main::@19 (label) main::@20 @@ -25,7 +25,7 @@ (byte~) main::toD0181_$5 (byte*) main::toD0181_charset (byte) main::toD0181_return -(const byte) main::toD0181_return#0 toD0181_return = ((byte))(word)(const byte*) screen#0/(byte/signed byte/word/signed word/dword/signed dword) 64|(word)(const byte*) charset1#0/(word/signed word/dword/signed dword) 1024 +(const byte) main::toD0181_return#0 toD0181_return = ((byte))(word)(const byte*) screen#0/(byte/signed byte/word/signed word/dword/signed dword) $40|(word)(const byte*) charset1#0/(word/signed word/dword/signed dword) $400 (byte*) main::toD0181_screen (label) main::toD0182 (word~) main::toD0182_$0 @@ -36,8 +36,8 @@ (byte~) main::toD0182_$5 (byte*) main::toD0182_charset (byte) main::toD0182_return -(const byte) main::toD0182_return#0 toD0182_return = ((byte))(word)(const byte*) screen#0/(byte/signed byte/word/signed word/dword/signed dword) 64|(word)(const byte*) charset2#0/(word/signed word/dword/signed dword) 1024 +(const byte) main::toD0182_return#0 toD0182_return = ((byte))(word)(const byte*) screen#0/(byte/signed byte/word/signed word/dword/signed dword) $40|(word)(const byte*) charset2#0/(word/signed word/dword/signed dword) $400 (byte*) main::toD0182_screen (byte*) screen -(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/inline-string-2.cfg b/src/test/ref/inline-string-2.cfg index 39d1a4bad..7d1548eb5 100644 --- a/src/test/ref/inline-string-2.cfg +++ b/src/test/ref/inline-string-2.cfg @@ -19,7 +19,7 @@ main::@return: scope:[main] from main::@1 [8] return to:@return print_msg: scope:[print_msg] from main main::@1 - [9] (byte*) screen#18 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@1/(byte*) screen#14 ) + [9] (byte*) screen#18 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@1/(byte*) screen#14 ) [9] (byte) print_msg::idx#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 1 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 2 ) [10] if((byte) print_msg::idx#2==(byte/signed byte/word/signed word/dword/signed dword) 1) goto print_msg::@2 to:print_msg::@3 diff --git a/src/test/ref/inline-string-2.log b/src/test/ref/inline-string-2.log index d79b73401..731f8de87 100644 --- a/src/test/ref/inline-string-2.log +++ b/src/test/ref/inline-string-2.log @@ -53,7 +53,7 @@ print_msg::@return: scope:[print_msg] from print_msg::@5 return to:@return @2: scope:[] from @begin - (byte*) screen#5 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) screen#5 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@3 print: scope:[print] from print_msg::@2 (byte*) screen#23 ← phi( print_msg::@2/(byte*) screen#18 ) @@ -180,7 +180,7 @@ Constant (const byte) print_msg::idx#1 = 2 Constant (const byte*) print_msg::msg#0 = 0 Constant (const byte*) print_msg::msg#1 = print_msg::$2 Constant (const byte*) print_msg::msg#2 = print_msg::$3 -Constant (const byte*) screen#20 = ((byte*))1024 +Constant (const byte*) screen#20 = ((byte*))$400 Successful SSA optimization Pass2ConstantIdentification Successful SSA optimization PassNEliminateUnusedVars Culled Empty Block (label) main::@2 @@ -196,7 +196,7 @@ Inlining constant with var siblings (const byte*) print_msg::msg#2 Inlining constant with var siblings (const byte*) screen#20 Constant inlined print_msg::idx#1 = (byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined print_msg::idx#0 = (byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined screen#20 = ((byte*))(word/signed word/dword/signed dword) 1024 +Constant inlined screen#20 = ((byte*))(word/signed word/dword/signed dword) $400 Constant inlined print_msg::$3 = (const byte*) print_msg::msg#2 Constant inlined print_msg::$2 = (const byte*) print_msg::msg#1 Successful SSA optimization Pass2ConstantInlining @@ -251,7 +251,7 @@ main::@return: scope:[main] from main::@1 [8] return to:@return print_msg: scope:[print_msg] from main main::@1 - [9] (byte*) screen#18 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@1/(byte*) screen#14 ) + [9] (byte*) screen#18 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@1/(byte*) screen#14 ) [9] (byte) print_msg::idx#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 1 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 2 ) [10] if((byte) print_msg::idx#2==(byte/signed byte/word/signed word/dword/signed dword) 1) goto print_msg::@2 to:print_msg::@3 @@ -346,7 +346,7 @@ main: { //SEG11 [5] call print_msg //SEG12 [9] phi from main to print_msg [phi:main->print_msg] print_msg_from_main: - //SEG13 [9] phi (byte*) screen#18 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->print_msg#0] -- pbuz1=pbuc1 + //SEG13 [9] phi (byte*) screen#18 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->print_msg#0] -- pbuz1=pbuc1 lda #<$400 sta screen lda #>$400 @@ -518,7 +518,7 @@ main: { //SEG11 [5] call print_msg //SEG12 [9] phi from main to print_msg [phi:main->print_msg] print_msg_from_main: - //SEG13 [9] phi (byte*) screen#18 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->print_msg#0] -- pbuz1=pbuc1 + //SEG13 [9] phi (byte*) screen#18 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->print_msg#0] -- pbuz1=pbuc1 lda #<$400 sta screen lda #>$400 @@ -728,7 +728,7 @@ Score: 612 main: { //SEG11 [5] call print_msg //SEG12 [9] phi from main to print_msg [phi:main->print_msg] - //SEG13 [9] phi (byte*) screen#18 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->print_msg#0] -- pbuz1=pbuc1 + //SEG13 [9] phi (byte*) screen#18 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->print_msg#0] -- pbuz1=pbuc1 lda #<$400 sta screen lda #>$400 diff --git a/src/test/ref/inline-string-3.log b/src/test/ref/inline-string-3.log index 1ee3ae76b..ffcc5e68b 100644 --- a/src/test/ref/inline-string-3.log +++ b/src/test/ref/inline-string-3.log @@ -4,7 +4,7 @@ CONTROL FLOW GRAPH SSA to:@1 main: scope:[main] from @1 (byte[]) main::STRING#0 ← (const string) main::$5 - (byte*) main::PTR#0 ← ((byte*)) (word/dword/signed dword) 40958 + (byte*) main::PTR#0 ← ((byte*)) (word/dword/signed dword) $9ffe (byte~) main::$0 ← < (byte[]) main::STRING#0 *((byte*) main::PTR#0) ← (byte~) main::$0 (byte*~) main::$1 ← (byte*) main::PTR#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -13,7 +13,7 @@ main: scope:[main] from @1 (byte*~) main::$3 ← (byte*) main::PTR#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*~) main::$4 ← ((byte*)) { *((byte*~) main::$3), *((byte*) main::PTR#0) } (byte*) main::ptr#0 ← (byte*~) main::$4 - (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 *((byte*) main::SCREEN#0) ← *((byte*) main::ptr#0) to:main::@return main::@return: scope:[main] from main @@ -53,8 +53,8 @@ Successful SSA optimization Pass2CullEmptyBlocks Alias (byte*) main::ptr#0 = (byte*~) main::$4 Successful SSA optimization Pass2AliasElimination Constant (const byte[]) main::STRING#0 = main::$5 -Constant (const byte*) main::PTR#0 = ((byte*))40958 -Constant (const byte*) main::SCREEN#0 = ((byte*))1024 +Constant (const byte*) main::PTR#0 = ((byte*))$9ffe +Constant (const byte*) main::SCREEN#0 = ((byte*))$400 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::$0 = print] print_from_main: - //SEG13 [11] phi (byte*) screen#18 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->print#0] -- pbuz1=pbuc1 + //SEG13 [11] phi (byte*) screen#18 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->print#0] -- pbuz1=pbuc1 lda #<$400 sta screen lda #>$400 @@ -413,7 +413,7 @@ main: { //SEG11 [5] call print //SEG12 [11] phi from main to print [phi:main->print] print_from_main: - //SEG13 [11] phi (byte*) screen#18 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->print#0] -- pbuz1=pbuc1 + //SEG13 [11] phi (byte*) screen#18 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->print#0] -- pbuz1=pbuc1 lda #<$400 sta screen lda #>$400 @@ -593,7 +593,7 @@ Score: 605 main: { //SEG11 [5] call print //SEG12 [11] phi from main to print [phi:main->print] - //SEG13 [11] phi (byte*) screen#18 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->print#0] -- pbuz1=pbuc1 + //SEG13 [11] phi (byte*) screen#18 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->print#0] -- pbuz1=pbuc1 lda #<$400 sta screen lda #>$400 diff --git a/src/test/ref/inline-word.log b/src/test/ref/inline-word.log index 19ff82403..eb56e473b 100644 --- a/src/test/ref/inline-word.log +++ b/src/test/ref/inline-word.log @@ -1,13 +1,13 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@1 main: scope:[main] from @1 (byte~) main::$0 ← > (byte*) SCREEN#0 - (byte*~) main::$1 ← (byte*) SCREEN#0 + (word/signed word/dword/signed dword) 256 + (byte*~) main::$1 ← (byte*) SCREEN#0 + (word/signed word/dword/signed dword) $100 (byte~) main::$2 ← > (byte*~) main::$1 - (byte*~) main::$3 ← (byte*) SCREEN#0 + (word/signed word/dword/signed dword) 512 + (byte*~) main::$3 ← (byte*) SCREEN#0 + (word/signed word/dword/signed dword) $200 (byte~) main::$4 ← > (byte*~) main::$3 (byte[]) main::his#0 ← { (byte~) main::$0, (byte~) main::$2, (byte~) main::$4 } (byte) main::h#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -92,13 +92,13 @@ Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) main::$6 [17] if((byte) main::l#1!=rangelast(4,7)) goto main::@2 Simple Condition (bool~) main::$7 [21] if((byte) main::h#1!=rangelast(0,2)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Constant (const byte) main::h#0 = 0 Constant (const byte) main::l#0 = 4 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::$0 = >SCREEN#0 -Constant (const byte*) main::$1 = SCREEN#0+256 -Constant (const byte*) main::$3 = SCREEN#0+512 +Constant (const byte*) main::$1 = SCREEN#0+$100 +Constant (const byte*) main::$3 = SCREEN#0+$200 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::$2 = >main::$1 Constant (const byte) main::$4 = >main::$3 @@ -117,13 +117,13 @@ Alias (word) main::w#0 = (word~) main::$8 Successful SSA optimization Pass2AliasElimination Inlining constant with var siblings (const byte) main::h#0 Inlining constant with var siblings (const byte) main::l#0 -Constant inlined main::$1 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 256 -Constant inlined main::$2 = >(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 256 +Constant inlined main::$1 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) $100 +Constant inlined main::$2 = >(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $100 Constant inlined main::l#0 = (byte/signed byte/word/signed word/dword/signed dword) 4 Constant inlined main::$0 = >(const byte*) SCREEN#0 Constant inlined main::h#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$3 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 512 -Constant inlined main::$4 = >(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 512 +Constant inlined main::$3 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) $200 +Constant inlined main::$4 = >(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $200 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@5(between main::@3 and main::@1) Added new block during phi lifting main::@6(between main::@2 and main::@2) @@ -433,7 +433,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@1 (label) main::@2 @@ -443,7 +443,7 @@ FINAL SYMBOL TABLE (byte) main::h#1 h zp ZP_BYTE:2 16.5 (byte) main::h#4 h zp ZP_BYTE:2 20.499999999999996 (byte[]) main::his -(const byte[]) main::his#0 his = { >(const byte*) SCREEN#0, >(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 256, >(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 512 } +(const byte[]) main::his#0 his = { >(const byte*) SCREEN#0, >(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $100, >(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $200 } (byte) main::l (byte) main::l#1 reg byte x 151.5 (byte) main::l#2 reg byte x 101.0 diff --git a/src/test/ref/inline-word.sym b/src/test/ref/inline-word.sym index 2d41f5eb4..dbaba3859 100644 --- a/src/test/ref/inline-word.sym +++ b/src/test/ref/inline-word.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@1 (label) main::@2 @@ -12,7 +12,7 @@ (byte) main::h#1 h zp ZP_BYTE:2 16.5 (byte) main::h#4 h zp ZP_BYTE:2 20.499999999999996 (byte[]) main::his -(const byte[]) main::his#0 his = { >(const byte*) SCREEN#0, >(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 256, >(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 512 } +(const byte[]) main::his#0 his = { >(const byte*) SCREEN#0, >(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $100, >(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $200 } (byte) main::l (byte) main::l#1 reg byte x 151.5 (byte) main::l#2 reg byte x 101.0 diff --git a/src/test/ref/inlinearrayproblem.log b/src/test/ref/inlinearrayproblem.log index 76a376a0b..a9df40841 100644 --- a/src/test/ref/inlinearrayproblem.log +++ b/src/test/ref/inlinearrayproblem.log @@ -1,8 +1,8 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (word/signed word/dword/signed dword~) $0 ← (word/signed word/dword/signed dword) 1024 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (word/signed word/dword/signed dword~) $0 ← (word/signed word/dword/signed dword) $400 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) SCREEN2#0 ← ((byte*)) (word/signed word/dword/signed dword~) $0 to:@1 main: scope:[main] from @1 @@ -79,8 +79,8 @@ Redundant Phi (byte*) SCREEN2#1 (byte*) SCREEN2#2 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) main::$0 [12] if((byte) main::i#1!=rangelast(0,3)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) SCREEN#0 = ((byte*))1024 -Constant (const word/signed word/dword/signed dword) $0 = 1024+40 +Constant (const byte*) SCREEN#0 = ((byte*))$400 +Constant (const word/signed word/dword/signed dword) $0 = $400+$28 Constant (const byte[]) main::txt#0 = main::$1 Constant (const byte[]) main::data#0 = { 1, 2, 3 } Constant (const byte) main::i#0 = 0 @@ -90,7 +90,7 @@ Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ Resolved ranged comparison value if(main::i#1!=rangelast(0,3)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 4 Inlining constant with var siblings (const byte) main::i#0 -Constant inlined $0 = (word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined $0 = (word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::$1 = (const byte[]) main::txt#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining @@ -322,9 +322,9 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SCREEN2 -(const byte*) SCREEN2#0 SCREEN2 = ((byte*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 40 +(const byte*) SCREEN2#0 SCREEN2 = ((byte*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) $28 (void()) main() (label) main::@1 (label) main::@return diff --git a/src/test/ref/inlinearrayproblem.sym b/src/test/ref/inlinearrayproblem.sym index 7e707e882..8f07c4cef 100644 --- a/src/test/ref/inlinearrayproblem.sym +++ b/src/test/ref/inlinearrayproblem.sym @@ -2,9 +2,9 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SCREEN2 -(const byte*) SCREEN2#0 SCREEN2 = ((byte*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 40 +(const byte*) SCREEN2#0 SCREEN2 = ((byte*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) $28 (void()) main() (label) main::@1 (label) main::@return diff --git a/src/test/ref/inmem-const-array.cfg b/src/test/ref/inmem-const-array.cfg index 80dc932f9..614792ce3 100644 --- a/src/test/ref/inmem-const-array.cfg +++ b/src/test/ref/inmem-const-array.cfg @@ -21,7 +21,7 @@ main::@1: scope:[main] from main main::@2 main::@2: scope:[main] from main::@1 main::@6 [10] (byte) main::j#4 ← phi( main::@6/(byte) main::j#1 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [11] (byte) main::i#1 ← ++ (byte) main::i#2 - [12] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 + [12] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 to:main::@return main::@return: scope:[main] from main::@2 [13] return diff --git a/src/test/ref/inmem-const-array.log b/src/test/ref/inmem-const-array.log index 0ef11866c..9e63322db 100644 --- a/src/test/ref/inmem-const-array.log +++ b/src/test/ref/inmem-const-array.log @@ -10,8 +10,8 @@ main: scope:[main] from @1 (byte) RED#1 ← phi( @1/(byte) RED#2 ) (byte) WHITE#1 ← phi( @1/(byte) WHITE#2 ) (byte[]) main::colseq#0 ← { (byte) WHITE#1, (byte) RED#1, (byte) GREEN#1 } - (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte*) main::cols#0 ← ((byte*)) (word/dword/signed dword) 55296 + (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte*) main::cols#0 ← ((byte*)) (word/dword/signed dword) $d800 (byte) main::j#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 @@ -32,8 +32,8 @@ main::@2: scope:[main] from main::@1 main::@3 (byte) main::j#4 ← phi( main::@1/(byte) main::j#1 main::@3/(byte) main::j#2 ) (byte*) main::screen#2 ← phi( main::@1/(byte*) main::screen#1 main::@3/(byte*) main::screen#3 ) (byte) main::i#3 ← phi( main::@1/(byte) main::i#2 main::@3/(byte) main::i#4 ) - (byte) main::i#1 ← (byte) main::i#3 + rangenext(0,39) - (bool~) main::$2 ← (byte) main::i#1 != rangelast(0,39) + (byte) main::i#1 ← (byte) main::i#3 + rangenext(0,$27) + (bool~) main::$2 ← (byte) main::i#1 != rangelast(0,$27) if((bool~) main::$2) goto main::@1 to:main::@return main::@3: scope:[main] from main::@1 @@ -130,13 +130,13 @@ Redundant Phi (byte*) main::screen#1 (byte*) main::screen#0 Redundant Phi (byte*) main::cols#1 (byte*) main::cols#0 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) main::$1 [15] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto main::@2 -Simple Condition (bool~) main::$2 [19] if((byte) main::i#1!=rangelast(0,39)) goto main::@1 +Simple Condition (bool~) main::$2 [19] if((byte) main::i#1!=rangelast(0,$27)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 Constant (const byte) GREEN#0 = 5 -Constant (const byte*) main::screen#0 = ((byte*))1024 -Constant (const byte*) main::cols#0 = ((byte*))55296 +Constant (const byte*) main::screen#0 = ((byte*))$400 +Constant (const byte*) main::cols#0 = ((byte*))$d800 Constant (const byte) main::j#0 = 0 Constant (const byte) main::i#0 = 0 Constant (const byte) main::j#2 = 0 @@ -144,7 +144,7 @@ Successful SSA optimization Pass2ConstantIdentification Constant (const byte[]) main::colseq#0 = { WHITE#0, RED#0, GREEN#0 } Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ -Resolved ranged comparison value if(main::i#1!=rangelast(0,39)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(main::i#1!=rangelast(0,$27)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $28 Inlining constant with var siblings (const byte) main::j#0 Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte) main::j#2 @@ -199,7 +199,7 @@ main::@1: scope:[main] from main main::@2 main::@2: scope:[main] from main::@1 main::@6 [10] (byte) main::j#4 ← phi( main::@6/(byte) main::j#1 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [11] (byte) main::i#1 ← ++ (byte) main::i#2 - [12] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 + [12] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 to:main::@return main::@return: scope:[main] from main::@2 [13] return @@ -307,7 +307,7 @@ main: { b2: //SEG25 [11] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG26 [12] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG26 [12] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$28 bne b1_from_b2 @@ -409,7 +409,7 @@ main: { b2: //SEG25 [11] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG26 [12] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG26 [12] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b1_from_b2 jmp breturn @@ -481,7 +481,7 @@ FINAL SYMBOL TABLE (label) main::@6 (label) main::@return (byte*) main::cols -(const byte*) main::cols#0 cols = ((byte*))(word/dword/signed dword) 55296 +(const byte*) main::cols#0 cols = ((byte*))(word/dword/signed dword) $d800 (byte[]) main::colseq (const byte[]) main::colseq#0 colseq = { (const byte) WHITE#0, (const byte) RED#0, (const byte) GREEN#0 } (byte) main::i @@ -492,7 +492,7 @@ FINAL SYMBOL TABLE (byte) main::j#3 reg byte y 11.0 (byte) main::j#4 reg byte y 7.333333333333333 (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 reg byte x [ main::i#2 main::i#1 ] reg byte y [ main::j#3 main::j#4 main::j#1 ] @@ -549,7 +549,7 @@ main: { b2: //SEG25 [11] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG26 [12] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG26 [12] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b1 //SEG27 main::@return diff --git a/src/test/ref/inmem-const-array.sym b/src/test/ref/inmem-const-array.sym index 19ca31bfa..944c47578 100644 --- a/src/test/ref/inmem-const-array.sym +++ b/src/test/ref/inmem-const-array.sym @@ -13,7 +13,7 @@ (label) main::@6 (label) main::@return (byte*) main::cols -(const byte*) main::cols#0 cols = ((byte*))(word/dword/signed dword) 55296 +(const byte*) main::cols#0 cols = ((byte*))(word/dword/signed dword) $d800 (byte[]) main::colseq (const byte[]) main::colseq#0 colseq = { (const byte) WHITE#0, (const byte) RED#0, (const byte) GREEN#0 } (byte) main::i @@ -24,7 +24,7 @@ (byte) main::j#3 reg byte y 11.0 (byte) main::j#4 reg byte y 7.333333333333333 (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 reg byte x [ main::i#2 main::i#1 ] reg byte y [ main::j#3 main::j#4 main::j#1 ] diff --git a/src/test/ref/inmemarray.cfg b/src/test/ref/inmemarray.cfg index 4f77f75a2..29943b206 100644 --- a/src/test/ref/inmemarray.cfg +++ b/src/test/ref/inmemarray.cfg @@ -20,7 +20,7 @@ main::@1: scope:[main] from main main::@2 main::@2: scope:[main] from main::@1 main::@6 [9] (byte) main::j#4 ← phi( main::@6/(byte) main::j#1 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [10] (byte) main::i#1 ← ++ (byte) main::i#2 - [11] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 + [11] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 to:main::@return main::@return: scope:[main] from main::@2 [12] return diff --git a/src/test/ref/inmemarray.log b/src/test/ref/inmemarray.log index c5e5d1a07..5fe4979a8 100644 --- a/src/test/ref/inmemarray.log +++ b/src/test/ref/inmemarray.log @@ -1,8 +1,8 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte[]) TXT#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 20, (byte/signed byte/word/signed word/dword/signed dword) 32 } + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte[]) TXT#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $14, (byte/signed byte/word/signed word/dword/signed dword) $20 } to:@1 main: scope:[main] from @1 (byte*) SCREEN#2 ← phi( @1/(byte*) SCREEN#4 ) @@ -23,8 +23,8 @@ main::@2: scope:[main] from main::@1 main::@3 (byte*) SCREEN#3 ← phi( main::@1/(byte*) SCREEN#1 main::@3/(byte*) SCREEN#5 ) (byte) main::j#4 ← phi( main::@1/(byte) main::j#1 main::@3/(byte) main::j#2 ) (byte) main::i#3 ← phi( main::@1/(byte) main::i#2 main::@3/(byte) main::i#4 ) - (byte) main::i#1 ← (byte) main::i#3 + rangenext(0,100) - (bool~) main::$2 ← (byte) main::i#1 != rangelast(0,100) + (byte) main::i#1 ← (byte) main::i#3 + rangenext(0,$64) + (bool~) main::$2 ← (byte) main::i#1 != rangelast(0,$64) if((bool~) main::$2) goto main::@1 to:main::@return main::@3: scope:[main] from main::@1 @@ -95,16 +95,16 @@ Redundant Phi (byte*) SCREEN#2 (byte*) SCREEN#0 Redundant Phi (byte*) SCREEN#1 (byte*) SCREEN#2 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) main::$1 [10] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@2 -Simple Condition (bool~) main::$2 [14] if((byte) main::i#1!=rangelast(0,100)) goto main::@1 +Simple Condition (bool~) main::$2 [14] if((byte) main::i#1!=rangelast(0,$64)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) SCREEN#0 = ((byte*))1024 -Constant (const byte[]) TXT#0 = { 3, 1, 13, 5, 12, 15, 20, 32 } +Constant (const byte*) SCREEN#0 = ((byte*))$400 +Constant (const byte[]) TXT#0 = { 3, 1, $d, 5, $c, $f, $14, $20 } Constant (const byte) main::j#0 = 0 Constant (const byte) main::i#0 = 0 Constant (const byte) main::j#2 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ -Resolved ranged comparison value if(main::i#1!=rangelast(0,100)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 101 +Resolved ranged comparison value if(main::i#1!=rangelast(0,$64)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $65 Inlining constant with var siblings (const byte) main::j#0 Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte) main::j#2 @@ -158,7 +158,7 @@ main::@1: scope:[main] from main main::@2 main::@2: scope:[main] from main::@1 main::@6 [9] (byte) main::j#4 ← phi( main::@6/(byte) main::j#1 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [10] (byte) main::i#1 ← ++ (byte) main::i#2 - [11] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 + [11] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 to:main::@return main::@return: scope:[main] from main::@2 [12] return @@ -254,7 +254,7 @@ main: { b2: //SEG24 [10] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG25 [11] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG25 [11] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$65 bne b1_from_b2 @@ -347,7 +347,7 @@ main: { b2: //SEG24 [10] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG25 [11] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG25 [11] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$65 bne b1_from_b2 jmp breturn @@ -408,9 +408,9 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte[]) TXT -(const byte[]) TXT#0 TXT = { (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 20, (byte/signed byte/word/signed word/dword/signed dword) 32 } +(const byte[]) TXT#0 TXT = { (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $14, (byte/signed byte/word/signed word/dword/signed dword) $20 } (void()) main() (label) main::@1 (label) main::@2 @@ -472,7 +472,7 @@ main: { b2: //SEG24 [10] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG25 [11] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG25 [11] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$65 bne b1 //SEG26 main::@return diff --git a/src/test/ref/inmemarray.sym b/src/test/ref/inmemarray.sym index c771dc3d0..c273de2f4 100644 --- a/src/test/ref/inmemarray.sym +++ b/src/test/ref/inmemarray.sym @@ -2,9 +2,9 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte[]) TXT -(const byte[]) TXT#0 TXT = { (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 20, (byte/signed byte/word/signed word/dword/signed dword) 32 } +(const byte[]) TXT#0 TXT = { (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) $14, (byte/signed byte/word/signed word/dword/signed dword) $20 } (void()) main() (label) main::@1 (label) main::@2 diff --git a/src/test/ref/inmemstring.cfg b/src/test/ref/inmemstring.cfg index 905b49646..883e3e36e 100644 --- a/src/test/ref/inmemstring.cfg +++ b/src/test/ref/inmemstring.cfg @@ -20,7 +20,7 @@ main::@1: scope:[main] from main main::@2 main::@2: scope:[main] from main::@1 main::@6 [9] (byte) main::i#4 ← phi( main::@6/(byte) main::i#1 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [10] (byte*) main::cursor#1 ← ++ (byte*) main::cursor#2 - [11] if((byte*) main::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto main::@1 + [11] if((byte*) main::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto main::@1 to:main::@return main::@return: scope:[main] from main::@2 [12] return diff --git a/src/test/ref/inmemstring.log b/src/test/ref/inmemstring.log index dedd290d9..06733c346 100644 --- a/src/test/ref/inmemstring.log +++ b/src/test/ref/inmemstring.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte[]) TEXT#0 ← (const string) $0 to:@1 main: scope:[main] from @1 @@ -24,7 +24,7 @@ main::@2: scope:[main] from main::@1 main::@3 (byte*) SCREEN#2 ← phi( main::@1/(byte*) SCREEN#4 main::@3/(byte*) SCREEN#5 ) (byte*) main::cursor#3 ← phi( main::@1/(byte*) main::cursor#2 main::@3/(byte*) main::cursor#4 ) (byte*) main::cursor#1 ← ++ (byte*) main::cursor#3 - (byte*~) main::$2 ← (byte*) SCREEN#2 + (word/signed word/dword/signed dword) 1000 + (byte*~) main::$2 ← (byte*) SCREEN#2 + (word/signed word/dword/signed dword) $3e8 (bool~) main::$3 ← (byte*) main::cursor#1 < (byte*~) main::$2 if((bool~) main::$3) goto main::@1 to:main::@return @@ -100,13 +100,13 @@ Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) main::$1 [10] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@2 Simple Condition (bool~) main::$3 [15] if((byte*) main::cursor#1<(byte*~) main::$2) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Constant (const byte[]) TEXT#0 = $0 Constant (const byte) main::i#0 = 0 Constant (const byte) main::i#2 = 0 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::cursor#0 = SCREEN#0 -Constant (const byte*) main::$2 = SCREEN#0+1000 +Constant (const byte*) main::$2 = SCREEN#0+$3e8 Successful SSA optimization Pass2ConstantIdentification Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte) main::i#2 @@ -114,7 +114,7 @@ Inlining constant with var siblings (const byte*) main::cursor#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined $0 = (const byte[]) TEXT#0 -Constant inlined main::$2 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000 +Constant inlined main::$2 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8 Constant inlined main::cursor#0 = (const byte*) SCREEN#0 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@5(between main::@2 and main::@1) @@ -163,7 +163,7 @@ main::@1: scope:[main] from main main::@2 main::@2: scope:[main] from main::@1 main::@6 [9] (byte) main::i#4 ← phi( main::@6/(byte) main::i#1 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [10] (byte*) main::cursor#1 ← ++ (byte*) main::cursor#2 - [11] if((byte*) main::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto main::@1 + [11] if((byte*) main::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto main::@1 to:main::@return main::@return: scope:[main] from main::@2 [12] return @@ -264,7 +264,7 @@ main: { bne !+ inc cursor+1 !: - //SEG25 [11] if((byte*) main::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto main::@1 -- pbuz1_lt_pbuc1_then_la1 + //SEG25 [11] if((byte*) main::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto main::@1 -- pbuz1_lt_pbuc1_then_la1 lda cursor+1 cmp #>SCREEN+$3e8 bcc b1_from_b2 @@ -294,9 +294,9 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [6] *((byte*) main::cursor#2) ← *((const byte[]) TEXT#0 + (byte) main::i#3) [ main::i#3 main::cursor#2 ] ( main:2 [ main::i#3 main::cursor#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::i#3 main::i#4 main::i#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ main::i#3 main::i#4 main::i#1 ] -Statement [11] if((byte*) main::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto main::@1 [ main::i#4 main::cursor#1 ] ( main:2 [ main::i#4 main::cursor#1 ] ) always clobbers reg byte a +Statement [11] if((byte*) main::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto main::@1 [ main::i#4 main::cursor#1 ] ( main:2 [ main::i#4 main::cursor#1 ] ) always clobbers reg byte a Statement [6] *((byte*) main::cursor#2) ← *((const byte[]) TEXT#0 + (byte) main::i#3) [ main::i#3 main::cursor#2 ] ( main:2 [ main::i#3 main::cursor#2 ] ) always clobbers reg byte a reg byte y -Statement [11] if((byte*) main::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto main::@1 [ main::i#4 main::cursor#1 ] ( main:2 [ main::i#4 main::cursor#1 ] ) always clobbers reg byte a +Statement [11] if((byte*) main::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto main::@1 [ main::i#4 main::cursor#1 ] ( main:2 [ main::i#4 main::cursor#1 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ main::i#3 main::i#4 main::i#1 ] : zp ZP_BYTE:2 , reg byte x , Potential registers zp ZP_WORD:3 [ main::cursor#2 main::cursor#1 ] : zp ZP_WORD:3 , @@ -373,7 +373,7 @@ main: { bne !+ inc cursor+1 !: - //SEG25 [11] if((byte*) main::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto main::@1 -- pbuz1_lt_pbuc1_then_la1 + //SEG25 [11] if((byte*) main::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto main::@1 -- pbuz1_lt_pbuc1_then_la1 lda cursor+1 cmp #>SCREEN+$3e8 bcc b1_from_b2 @@ -441,7 +441,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte[]) TEXT (const byte[]) TEXT#0 TEXT = (string) "camelot " (void()) main() @@ -513,7 +513,7 @@ main: { bne !+ inc cursor+1 !: - //SEG25 [11] if((byte*) main::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto main::@1 -- pbuz1_lt_pbuc1_then_la1 + //SEG25 [11] if((byte*) main::cursor#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto main::@1 -- pbuz1_lt_pbuc1_then_la1 lda cursor+1 cmp #>SCREEN+$3e8 bcc b1 diff --git a/src/test/ref/inmemstring.sym b/src/test/ref/inmemstring.sym index de9bf8f1a..ee970b4df 100644 --- a/src/test/ref/inmemstring.sym +++ b/src/test/ref/inmemstring.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte[]) TEXT (const byte[]) TEXT#0 TEXT = (string) "camelot " (void()) main() diff --git a/src/test/ref/interrupt-volatile-reuse-problem1.cfg b/src/test/ref/interrupt-volatile-reuse-problem1.cfg index e6f3f98a2..d6d4d005f 100644 --- a/src/test/ref/interrupt-volatile-reuse-problem1.cfg +++ b/src/test/ref/interrupt-volatile-reuse-problem1.cfg @@ -15,9 +15,9 @@ main::@return: scope:[main] from main [6] return to:@return irq: scope:[irq] from - [7] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte) col1#0 + [7] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte) col1#0 [8] (byte) col1#1 ← ++ (byte) col1#0 - [9] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 41) ← (byte) col2#0 + [9] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $29) ← (byte) col2#0 [10] (byte) col2#1 ← ++ (byte) col2#0 to:irq::@return irq::@return: scope:[irq] from irq diff --git a/src/test/ref/interrupt-volatile-reuse-problem1.log b/src/test/ref/interrupt-volatile-reuse-problem1.log index bd9004b2f..b662da3c6 100644 --- a/src/test/ref/interrupt-volatile-reuse-problem1.log +++ b/src/test/ref/interrupt-volatile-reuse-problem1.log @@ -2,8 +2,8 @@ Resolved forward reference irq to interrupt(KERNEL_MIN)(void()) irq() CONTROL FLOW GRAPH SSA @begin: scope:[] from - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) col1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 to:@2 @@ -17,9 +17,9 @@ main::@return: scope:[main] from main irq: scope:[irq] from (byte) col2#3 ← phi( @2/(byte) col2#5 ) (byte) col1#3 ← phi( @2/(byte) col1#5 ) - *((byte*) SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte) col1#3 + *((byte*) SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte) col1#3 (byte) col1#1 ← ++ (byte) col1#3 - *((byte*) SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 41) ← (byte) col2#3 + *((byte*) SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) $29) ← (byte) col2#3 (byte) col2#1 ← ++ (byte) col2#3 to:irq::@return irq::@return: scope:[irq] from irq @@ -77,12 +77,12 @@ Successful SSA optimization Pass2AliasElimination Redundant Phi (byte) col1#3 (byte) col1#0 Redundant Phi (byte) col2#3 (byte) col2#0 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Constant (const void()*) main::$0 = &irq Successful SSA optimization Pass2ConstantIdentification -Consolidated array index constant in *(SCREEN#0+40) -Consolidated array index constant in *(SCREEN#0+41) +Consolidated array index constant in *(SCREEN#0+$28) +Consolidated array index constant in *(SCREEN#0+$29) Successful SSA optimization Pass2ConstantAdditionElimination Constant inlined main::$0 = &interrupt(KERNEL_MIN)(void()) irq() Successful SSA optimization Pass2ConstantInlining @@ -114,9 +114,9 @@ main::@return: scope:[main] from main [6] return to:@return irq: scope:[irq] from - [7] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte) col1#0 + [7] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte) col1#0 [8] (byte) col1#1 ← ++ (byte) col1#0 - [9] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 41) ← (byte) col2#0 + [9] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $29) ← (byte) col2#0 [10] (byte) col2#1 ← ++ (byte) col2#0 to:irq::@return irq::@return: scope:[irq] from irq @@ -201,14 +201,14 @@ main: { //SEG15 irq irq: { //SEG16 entry interrupt(KERNEL_MIN) - //SEG17 [7] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte) col1#0 -- _deref_pbuc1=vbuz1 + //SEG17 [7] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte) col1#0 -- _deref_pbuc1=vbuz1 lda col1 sta SCREEN+$28 //SEG18 [8] (byte) col1#1 ← ++ (byte) col1#0 -- vbuz1=_inc_vbuz2 ldy col1 iny sty col1_1 - //SEG19 [9] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 41) ← (byte) col2#0 -- _deref_pbuc1=vbuz1 + //SEG19 [9] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $29) ← (byte) col2#0 -- _deref_pbuc1=vbuz1 lda col2 sta SCREEN+$29 //SEG20 [10] (byte) col2#1 ← ++ (byte) col2#0 -- vbuz1=_inc_vbuz2 @@ -226,9 +226,9 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] (byte) col1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a Statement [1] (byte) col2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 [ ] ( ) always clobbers reg byte a Statement [5] *((const void()**) KERNEL_IRQ#0) ← &interrupt(KERNEL_MIN)(void()) irq() [ ] ( main:3 [ ] ) always clobbers reg byte a -Statement [7] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte) col1#0 [ col1#0 col2#0 ] ( [ col1#0 col2#0 ] ) always clobbers reg byte a +Statement [7] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte) col1#0 [ col1#0 col2#0 ] ( [ col1#0 col2#0 ] ) always clobbers reg byte a Statement [8] (byte) col1#1 ← ++ (byte) col1#0 [ col2#0 ] ( [ col2#0 ] ) always clobbers reg byte y -Statement [9] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 41) ← (byte) col2#0 [ col2#0 ] ( [ col2#0 ] ) always clobbers reg byte a +Statement [9] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $29) ← (byte) col2#0 [ col2#0 ] ( [ col2#0 ] ) always clobbers reg byte a Statement [10] (byte) col2#1 ← ++ (byte) col2#0 [ ] ( [ ] ) always clobbers reg byte y Potential registers zp ZP_BYTE:2 [ col1#0 ] : zp ZP_BYTE:2 , Potential registers zp ZP_BYTE:3 [ col2#0 ] : zp ZP_BYTE:3 , @@ -302,12 +302,12 @@ main: { //SEG15 irq irq: { //SEG16 entry interrupt(KERNEL_MIN) - //SEG17 [7] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte) col1#0 -- _deref_pbuc1=vbuz1 + //SEG17 [7] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte) col1#0 -- _deref_pbuc1=vbuz1 lda col1 sta SCREEN+$28 //SEG18 [8] (byte) col1#1 ← ++ (byte) col1#0 -- vbuz1=_inc_vbuz1 inc col1 - //SEG19 [9] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 41) ← (byte) col2#0 -- _deref_pbuc1=vbuz1 + //SEG19 [9] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $29) ← (byte) col2#0 -- _deref_pbuc1=vbuz1 lda col2 sta SCREEN+$29 //SEG20 [10] (byte) col2#1 ← ++ (byte) col2#0 -- vbuz1=_inc_vbuz1 @@ -339,9 +339,9 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (void()**) KERNEL_IRQ -(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) 788 +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) $314 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) col1 (byte) col1#0 col1 zp ZP_BYTE:2 6.0 (byte) col1#1 col1 zp ZP_BYTE:2 20.0 @@ -399,12 +399,12 @@ main: { //SEG15 irq irq: { //SEG16 entry interrupt(KERNEL_MIN) - //SEG17 [7] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte) col1#0 -- _deref_pbuc1=vbuz1 + //SEG17 [7] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte) col1#0 -- _deref_pbuc1=vbuz1 lda col1 sta SCREEN+$28 //SEG18 [8] (byte) col1#1 ← ++ (byte) col1#0 -- vbuz1=_inc_vbuz1 inc col1 - //SEG19 [9] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 41) ← (byte) col2#0 -- _deref_pbuc1=vbuz1 + //SEG19 [9] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $29) ← (byte) col2#0 -- _deref_pbuc1=vbuz1 lda col2 sta SCREEN+$29 //SEG20 [10] (byte) col2#1 ← ++ (byte) col2#0 -- vbuz1=_inc_vbuz1 diff --git a/src/test/ref/interrupt-volatile-reuse-problem1.sym b/src/test/ref/interrupt-volatile-reuse-problem1.sym index 2e049b5e2..2ed44c2ab 100644 --- a/src/test/ref/interrupt-volatile-reuse-problem1.sym +++ b/src/test/ref/interrupt-volatile-reuse-problem1.sym @@ -2,9 +2,9 @@ (label) @begin (label) @end (void()**) KERNEL_IRQ -(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) 788 +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) $314 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) col1 (byte) col1#0 col1 zp ZP_BYTE:2 6.0 (byte) col1#1 col1 zp ZP_BYTE:2 20.0 diff --git a/src/test/ref/interrupt-volatile-reuse-problem2.cfg b/src/test/ref/interrupt-volatile-reuse-problem2.cfg index 2c35f1759..e047869b0 100644 --- a/src/test/ref/interrupt-volatile-reuse-problem2.cfg +++ b/src/test/ref/interrupt-volatile-reuse-problem2.cfg @@ -21,15 +21,15 @@ main::@6: scope:[main] from main::@5 main::@6 [8] (byte~) main::$1 ← (byte) main::a#2 + (byte) main::y#4 [9] *((const byte*) SCREEN#0 + (byte) main::x#6) ← (byte~) main::$1 [10] (byte) main::a#1 ← ++ (byte) main::a#2 - [11] if((byte) main::a#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@6 + [11] if((byte) main::a#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@6 to:main::@9 main::@9: scope:[main] from main::@6 [12] (byte) main::y#1 ← ++ (byte) main::y#4 - [13] if((byte) main::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@5 + [13] if((byte) main::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@5 to:main::@10 main::@10: scope:[main] from main::@9 [14] (byte) main::x#1 ← ++ (byte) main::x#6 - [15] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@13 + [15] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@13 to:main::@4 main::@13: scope:[main] from main::@10 [16] phi() @@ -37,7 +37,7 @@ main::@13: scope:[main] from main::@10 irq: scope:[irq] from [17] *((const byte*) IRQ_STATUS#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 asm { lda$dc0d } - [19] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte) col1#0 + [19] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte) col1#0 [20] (byte) col1#1 ← ++ (byte) col1#0 to:irq::@return irq::@return: scope:[irq] from irq diff --git a/src/test/ref/interrupt-volatile-reuse-problem2.log b/src/test/ref/interrupt-volatile-reuse-problem2.log index 5ed5dae8c..c7767a191 100644 --- a/src/test/ref/interrupt-volatile-reuse-problem2.log +++ b/src/test/ref/interrupt-volatile-reuse-problem2.log @@ -2,10 +2,10 @@ Resolved forward reference irq to interrupt(KERNEL_MIN)(void()) irq() CONTROL FLOW GRAPH SSA @begin: scope:[] from - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) col1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:@2 main: scope:[main] from @2 @@ -33,21 +33,21 @@ main::@6: scope:[main] from main::@5 main::@6 (byte) main::a#2 ← phi( main::@5/(byte) main::a#0 main::@6/(byte) main::a#1 ) (byte~) main::$1 ← (byte) main::a#2 + (byte) main::y#2 *((byte*) SCREEN#0 + (byte) main::x#2) ← (byte~) main::$1 - (byte) main::a#1 ← (byte) main::a#2 + rangenext(0,10) - (bool~) main::$2 ← (byte) main::a#1 != rangelast(0,10) + (byte) main::a#1 ← (byte) main::a#2 + rangenext(0,$a) + (bool~) main::$2 ← (byte) main::a#1 != rangelast(0,$a) if((bool~) main::$2) goto main::@6 to:main::@9 main::@9: scope:[main] from main::@6 (byte) main::x#5 ← phi( main::@6/(byte) main::x#2 ) (byte) main::y#3 ← phi( main::@6/(byte) main::y#2 ) - (byte) main::y#1 ← (byte) main::y#3 + rangenext(0,10) - (bool~) main::$3 ← (byte) main::y#1 != rangelast(0,10) + (byte) main::y#1 ← (byte) main::y#3 + rangenext(0,$a) + (bool~) main::$3 ← (byte) main::y#1 != rangelast(0,$a) if((bool~) main::$3) goto main::@5 to:main::@10 main::@10: scope:[main] from main::@9 (byte) main::x#3 ← phi( main::@9/(byte) main::x#5 ) - (byte) main::x#1 ← (byte) main::x#3 + rangenext(0,10) - (bool~) main::$4 ← (byte) main::x#1 != rangelast(0,10) + (byte) main::x#1 ← (byte) main::x#3 + rangenext(0,$a) + (bool~) main::$4 ← (byte) main::x#1 != rangelast(0,$a) if((bool~) main::$4) goto main::@4 to:main::@1 main::@return: scope:[main] from main::@1 @@ -57,7 +57,7 @@ irq: scope:[irq] from (byte) col1#3 ← phi( @2/(byte) col1#5 ) *((byte*) IRQ_STATUS#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 asm { lda$dc0d } - *((byte*) SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte) col1#3 + *((byte*) SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte) col1#3 (byte) col1#1 ← ++ (byte) col1#3 to:irq::@return irq::@return: scope:[irq] from irq @@ -142,20 +142,20 @@ Redundant Phi (byte) main::y#2 (byte) main::y#4 Redundant Phi (byte) main::x#2 (byte) main::x#4 Redundant Phi (byte) col1#3 (byte) col1#0 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$2 [18] if((byte) main::a#1!=rangelast(0,10)) goto main::@6 -Simple Condition (bool~) main::$3 [22] if((byte) main::y#1!=rangelast(0,10)) goto main::@5 -Simple Condition (bool~) main::$4 [26] if((byte) main::x#1!=rangelast(0,10)) goto main::@4 +Simple Condition (bool~) main::$2 [18] if((byte) main::a#1!=rangelast(0,$a)) goto main::@6 +Simple Condition (bool~) main::$3 [22] if((byte) main::y#1!=rangelast(0,$a)) goto main::@5 +Simple Condition (bool~) main::$4 [26] if((byte) main::x#1!=rangelast(0,$a)) goto main::@4 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte*) SCREEN#0 = ((byte*))$400 Constant (const void()*) main::$0 = &irq Constant (const byte) main::x#0 = 0 Constant (const byte) main::y#0 = 0 Constant (const byte) main::a#0 = 0 Successful SSA optimization Pass2ConstantIdentification -Consolidated array index constant in *(SCREEN#0+40) +Consolidated array index constant in *(SCREEN#0+$28) Successful SSA optimization Pass2ConstantAdditionElimination if() condition always true - replacing block destination [2] if(true) goto main::@2 Successful SSA optimization Pass2ConstantIfs @@ -163,11 +163,11 @@ Successful SSA optimization PassNEliminateUnusedVars Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks Resolved ranged next value main::a#1 ← ++ main::a#2 to ++ -Resolved ranged comparison value if(main::a#1!=rangelast(0,10)) goto main::@6 to (byte/signed byte/word/signed word/dword/signed dword) 11 +Resolved ranged comparison value if(main::a#1!=rangelast(0,$a)) goto main::@6 to (byte/signed byte/word/signed word/dword/signed dword) $b Resolved ranged next value main::y#1 ← ++ main::y#4 to ++ -Resolved ranged comparison value if(main::y#1!=rangelast(0,10)) goto main::@5 to (byte/signed byte/word/signed word/dword/signed dword) 11 +Resolved ranged comparison value if(main::y#1!=rangelast(0,$a)) goto main::@5 to (byte/signed byte/word/signed word/dword/signed dword) $b Resolved ranged next value main::x#1 ← ++ main::x#4 to ++ -Resolved ranged comparison value if(main::x#1!=rangelast(0,10)) goto main::@4 to (byte/signed byte/word/signed word/dword/signed dword) 11 +Resolved ranged comparison value if(main::x#1!=rangelast(0,$a)) goto main::@4 to (byte/signed byte/word/signed word/dword/signed dword) $b Culled Empty Block (label) main::@1 Successful SSA optimization Pass2CullEmptyBlocks Self Phi Eliminated (byte) main::x#4 @@ -227,15 +227,15 @@ main::@6: scope:[main] from main::@5 main::@6 [8] (byte~) main::$1 ← (byte) main::a#2 + (byte) main::y#4 [9] *((const byte*) SCREEN#0 + (byte) main::x#6) ← (byte~) main::$1 [10] (byte) main::a#1 ← ++ (byte) main::a#2 - [11] if((byte) main::a#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@6 + [11] if((byte) main::a#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@6 to:main::@9 main::@9: scope:[main] from main::@6 [12] (byte) main::y#1 ← ++ (byte) main::y#4 - [13] if((byte) main::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@5 + [13] if((byte) main::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@5 to:main::@10 main::@10: scope:[main] from main::@9 [14] (byte) main::x#1 ← ++ (byte) main::x#6 - [15] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@13 + [15] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@13 to:main::@4 main::@13: scope:[main] from main::@10 [16] phi() @@ -243,7 +243,7 @@ main::@13: scope:[main] from main::@10 irq: scope:[irq] from [17] *((const byte*) IRQ_STATUS#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 asm { lda$dc0d } - [19] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte) col1#0 + [19] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte) col1#0 [20] (byte) col1#1 ← ++ (byte) col1#0 to:irq::@return irq::@return: scope:[irq] from irq @@ -378,7 +378,7 @@ main: { sta SCREEN,y //SEG27 [10] (byte) main::a#1 ← ++ (byte) main::a#2 -- vbuz1=_inc_vbuz1 inc a - //SEG28 [11] if((byte) main::a#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@6 -- vbuz1_neq_vbuc1_then_la1 + //SEG28 [11] if((byte) main::a#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@6 -- vbuz1_neq_vbuc1_then_la1 lda a cmp #$b bne b6_from_b6 @@ -387,7 +387,7 @@ main: { b9: //SEG30 [12] (byte) main::y#1 ← ++ (byte) main::y#4 -- vbuz1=_inc_vbuz1 inc y - //SEG31 [13] if((byte) main::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@5 -- vbuz1_neq_vbuc1_then_la1 + //SEG31 [13] if((byte) main::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@5 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$b bne b5_from_b9 @@ -396,7 +396,7 @@ main: { b10: //SEG33 [14] (byte) main::x#1 ← ++ (byte) main::x#6 -- vbuz1=_inc_vbuz1 inc x - //SEG34 [15] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@13 -- vbuz1_neq_vbuc1_then_la1 + //SEG34 [15] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@13 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #$b bne b13_from_b10 @@ -420,7 +420,7 @@ irq: { sta IRQ_STATUS //SEG42 asm { lda$dc0d } lda $dc0d - //SEG43 [19] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte) col1#0 -- _deref_pbuc1=vbuz1 + //SEG43 [19] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte) col1#0 -- _deref_pbuc1=vbuz1 lda col1 sta SCREEN+$28 //SEG44 [20] (byte) col1#1 ← ++ (byte) col1#0 -- vbuz1=_inc_vbuz2 @@ -443,14 +443,14 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ ma Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ main::a#2 main::a#1 ] Statement [17] *((const byte*) IRQ_STATUS#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ col1#0 ] ( [ col1#0 ] ) always clobbers reg byte a Statement asm { lda$dc0d } always clobbers reg byte a -Statement [19] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte) col1#0 [ col1#0 ] ( [ col1#0 ] ) always clobbers reg byte a +Statement [19] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte) col1#0 [ col1#0 ] ( [ col1#0 ] ) always clobbers reg byte a Statement [20] (byte) col1#1 ← ++ (byte) col1#0 [ ] ( [ ] ) always clobbers reg byte y Statement [0] (byte) col1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a Statement [4] *((const void()**) KERNEL_IRQ#0) ← &interrupt(KERNEL_MIN)(void()) irq() [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [8] (byte~) main::$1 ← (byte) main::a#2 + (byte) main::y#4 [ main::x#6 main::y#4 main::a#2 main::$1 ] ( main:2 [ main::x#6 main::y#4 main::a#2 main::$1 ] ) always clobbers reg byte a Statement [17] *((const byte*) IRQ_STATUS#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ col1#0 ] ( [ col1#0 ] ) always clobbers reg byte a Statement asm { lda$dc0d } always clobbers reg byte a -Statement [19] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte) col1#0 [ col1#0 ] ( [ col1#0 ] ) always clobbers reg byte a +Statement [19] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte) col1#0 [ col1#0 ] ( [ col1#0 ] ) always clobbers reg byte a Statement [20] (byte) col1#1 ← ++ (byte) col1#0 [ ] ( [ ] ) always clobbers reg byte y Potential registers zp ZP_BYTE:2 [ main::x#6 main::x#1 ] : zp ZP_BYTE:2 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:3 [ main::y#4 main::y#1 ] : zp ZP_BYTE:3 , reg byte x , reg byte y , @@ -554,7 +554,7 @@ main: { sta SCREEN,x //SEG27 [10] (byte) main::a#1 ← ++ (byte) main::a#2 -- vbuyy=_inc_vbuyy iny - //SEG28 [11] if((byte) main::a#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@6 -- vbuyy_neq_vbuc1_then_la1 + //SEG28 [11] if((byte) main::a#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@6 -- vbuyy_neq_vbuc1_then_la1 cpy #$b bne b6_from_b6 jmp b9 @@ -562,7 +562,7 @@ main: { b9: //SEG30 [12] (byte) main::y#1 ← ++ (byte) main::y#4 -- vbuz1=_inc_vbuz1 inc y - //SEG31 [13] if((byte) main::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@5 -- vbuz1_neq_vbuc1_then_la1 + //SEG31 [13] if((byte) main::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@5 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$b bne b5_from_b9 @@ -571,7 +571,7 @@ main: { b10: //SEG33 [14] (byte) main::x#1 ← ++ (byte) main::x#6 -- vbuxx=_inc_vbuxx inx - //SEG34 [15] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@13 -- vbuxx_neq_vbuc1_then_la1 + //SEG34 [15] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@13 -- vbuxx_neq_vbuc1_then_la1 cpx #$b bne b13_from_b10 jmp b4_from_b10 @@ -594,7 +594,7 @@ irq: { sta IRQ_STATUS //SEG42 asm { lda$dc0d } lda $dc0d - //SEG43 [19] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte) col1#0 -- _deref_pbuc1=vbuz1 + //SEG43 [19] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte) col1#0 -- _deref_pbuc1=vbuz1 lda col1 sta SCREEN+$28 //SEG44 [20] (byte) col1#1 ← ++ (byte) col1#0 -- vbuz1=_inc_vbuz1 @@ -654,11 +654,11 @@ FINAL SYMBOL TABLE (label) @end (byte*) CIA1_INTERRUPT (byte*) IRQ_STATUS -(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) 53273 +(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) $d019 (void()**) KERNEL_IRQ -(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) 788 +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) $314 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) col1 (byte) col1#0 col1 zp ZP_BYTE:3 2.0 (byte) col1#1 col1 zp ZP_BYTE:3 20.0 @@ -751,20 +751,20 @@ main: { sta SCREEN,x //SEG27 [10] (byte) main::a#1 ← ++ (byte) main::a#2 -- vbuyy=_inc_vbuyy iny - //SEG28 [11] if((byte) main::a#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@6 -- vbuyy_neq_vbuc1_then_la1 + //SEG28 [11] if((byte) main::a#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@6 -- vbuyy_neq_vbuc1_then_la1 cpy #$b bne b6 //SEG29 main::@9 //SEG30 [12] (byte) main::y#1 ← ++ (byte) main::y#4 -- vbuz1=_inc_vbuz1 inc y - //SEG31 [13] if((byte) main::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@5 -- vbuz1_neq_vbuc1_then_la1 + //SEG31 [13] if((byte) main::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@5 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$b bne b5 //SEG32 main::@10 //SEG33 [14] (byte) main::x#1 ← ++ (byte) main::x#6 -- vbuxx=_inc_vbuxx inx - //SEG34 [15] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@13 -- vbuxx_neq_vbuc1_then_la1 + //SEG34 [15] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@13 -- vbuxx_neq_vbuc1_then_la1 cpx #$b bne b4 jmp b1 @@ -782,7 +782,7 @@ irq: { sta IRQ_STATUS //SEG42 asm { lda$dc0d } lda $dc0d - //SEG43 [19] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte) col1#0 -- _deref_pbuc1=vbuz1 + //SEG43 [19] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte) col1#0 -- _deref_pbuc1=vbuz1 lda col1 sta SCREEN+$28 //SEG44 [20] (byte) col1#1 ← ++ (byte) col1#0 -- vbuz1=_inc_vbuz1 diff --git a/src/test/ref/interrupt-volatile-reuse-problem2.sym b/src/test/ref/interrupt-volatile-reuse-problem2.sym index 1b5ad08e5..ded10be11 100644 --- a/src/test/ref/interrupt-volatile-reuse-problem2.sym +++ b/src/test/ref/interrupt-volatile-reuse-problem2.sym @@ -3,11 +3,11 @@ (label) @end (byte*) CIA1_INTERRUPT (byte*) IRQ_STATUS -(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) 53273 +(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) $d019 (void()**) KERNEL_IRQ -(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) 788 +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) $314 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) col1 (byte) col1#0 col1 zp ZP_BYTE:3 2.0 (byte) col1#1 col1 zp ZP_BYTE:3 20.0 diff --git a/src/test/ref/irq-hardware-clobber-jsr.cfg b/src/test/ref/irq-hardware-clobber-jsr.cfg index cf68822be..b684674ed 100644 --- a/src/test/ref/irq-hardware-clobber-jsr.cfg +++ b/src/test/ref/irq-hardware-clobber-jsr.cfg @@ -12,7 +12,7 @@ main: scope:[main] from @7 [5] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [6] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [7] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 + [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 [9] *((const byte*) RASTER#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [10] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [11] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) irq() diff --git a/src/test/ref/irq-hardware-clobber-jsr.log b/src/test/ref/irq-hardware-clobber-jsr.log index 7ba680b78..9a658487a 100644 --- a/src/test/ref/irq-hardware-clobber-jsr.log +++ b/src/test/ref/irq-hardware-clobber-jsr.log @@ -6,66 +6,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -76,19 +76,19 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@7 main: scope:[main] from @7 asm { sei } *((byte*) PROCPORT_DDR#0) ← (byte) PROCPORT_DDR_MEMORY_MASK#0 *((byte*) PROCPORT#0) ← (byte) PROCPORT_RAM_IO#0 *((byte*) CIA1_INTERRUPT#0) ← (byte) CIA_INTERRUPT_CLEAR#0 - *((byte*) VIC_CONTROL#0) ← *((byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 + *((byte*) VIC_CONTROL#0) ← *((byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 *((byte*) RASTER#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) IRQ_ENABLE#0) ← (byte) IRQ_RASTER#0 (void()*~) main::$0 ← & interrupt(HARDWARE_CLOBBER)(void()) irq() @@ -307,66 +307,66 @@ Successful SSA optimization Pass2CullEmptyBlocks Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -377,12 +377,12 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f Constant (const void()*) main::$0 = &irq Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [9] if(true) goto main::@2 @@ -424,7 +424,7 @@ main: scope:[main] from @7 [5] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [6] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [7] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 + [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 [9] *((const byte*) RASTER#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [10] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [11] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) irq() @@ -601,7 +601,7 @@ main: { // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG14 [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + //SEG14 [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Set raster line to $100 lda VIC_CONTROL ora #$80 @@ -672,7 +672,7 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [5] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [6] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [7] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [9] *((const byte*) RASTER#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [10] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [11] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) irq() [ ] ( main:2 [ ] ) always clobbers reg byte a @@ -763,7 +763,7 @@ main: { // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG14 [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + //SEG14 [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Set raster line to $100 lda VIC_CONTROL ora #$80 @@ -850,7 +850,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL1 (byte*) BGCOL2 (byte*) BGCOL3 @@ -859,11 +859,11 @@ FINAL SYMBOL TABLE (const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN (byte*) CIA1_INTERRUPT -(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) 56333 +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) $dc0d (byte*) CIA1_PORT_A (byte*) CIA1_PORT_A_DDR (byte*) CIA1_PORT_B @@ -874,7 +874,7 @@ FINAL SYMBOL TABLE (byte*) CIA2_PORT_B (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR -(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) 127 +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) $7f (byte*) COLS (byte) CYAN (byte*) D011 @@ -884,16 +884,16 @@ FINAL SYMBOL TABLE (byte) GREEN (byte) GREY (void()**) HARDWARE_IRQ -(const void()**) HARDWARE_IRQ#0 HARDWARE_IRQ = ((void()**))(word/dword/signed dword) 65534 +(const void()**) HARDWARE_IRQ#0 HARDWARE_IRQ = ((void()**))(word/dword/signed dword) $fffe (byte) IRQ_COLLISION_BG (byte) IRQ_COLLISION_SPRITE (byte*) IRQ_ENABLE -(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) 53274 +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) $d01a (byte) IRQ_LIGHTPEN (byte) IRQ_RASTER (const byte) IRQ_RASTER#0 IRQ_RASTER = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) IRQ_STATUS -(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) 53273 +(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) $d019 (void()**) KERNEL_IRQ (byte*) LIGHTPEN_X (byte*) LIGHTPEN_Y @@ -913,10 +913,10 @@ FINAL SYMBOL TABLE (byte) PROCPORT_RAM_ALL (byte) PROCPORT_RAM_CHARROM (byte) PROCPORT_RAM_IO -(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) 53 +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) $35 (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE @@ -932,7 +932,7 @@ FINAL SYMBOL TABLE (word) SPRITE_PTRS (byte) VIC_BMM (byte*) VIC_CONTROL -(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) 53265 +(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) $d011 (byte*) VIC_CONTROL2 (byte) VIC_CSEL (byte) VIC_DEN @@ -1011,7 +1011,7 @@ main: { // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG14 [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + //SEG14 [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Set raster line to $100 lda VIC_CONTROL ora #$80 diff --git a/src/test/ref/irq-hardware-clobber-jsr.sym b/src/test/ref/irq-hardware-clobber-jsr.sym index 41ce73151..5b5b15315 100644 --- a/src/test/ref/irq-hardware-clobber-jsr.sym +++ b/src/test/ref/irq-hardware-clobber-jsr.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL1 (byte*) BGCOL2 (byte*) BGCOL3 @@ -11,11 +11,11 @@ (const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN (byte*) CIA1_INTERRUPT -(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) 56333 +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) $dc0d (byte*) CIA1_PORT_A (byte*) CIA1_PORT_A_DDR (byte*) CIA1_PORT_B @@ -26,7 +26,7 @@ (byte*) CIA2_PORT_B (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR -(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) 127 +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) $7f (byte*) COLS (byte) CYAN (byte*) D011 @@ -36,16 +36,16 @@ (byte) GREEN (byte) GREY (void()**) HARDWARE_IRQ -(const void()**) HARDWARE_IRQ#0 HARDWARE_IRQ = ((void()**))(word/dword/signed dword) 65534 +(const void()**) HARDWARE_IRQ#0 HARDWARE_IRQ = ((void()**))(word/dword/signed dword) $fffe (byte) IRQ_COLLISION_BG (byte) IRQ_COLLISION_SPRITE (byte*) IRQ_ENABLE -(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) 53274 +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) $d01a (byte) IRQ_LIGHTPEN (byte) IRQ_RASTER (const byte) IRQ_RASTER#0 IRQ_RASTER = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) IRQ_STATUS -(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) 53273 +(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) $d019 (void()**) KERNEL_IRQ (byte*) LIGHTPEN_X (byte*) LIGHTPEN_Y @@ -65,10 +65,10 @@ (byte) PROCPORT_RAM_ALL (byte) PROCPORT_RAM_CHARROM (byte) PROCPORT_RAM_IO -(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) 53 +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) $35 (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE @@ -84,7 +84,7 @@ (word) SPRITE_PTRS (byte) VIC_BMM (byte*) VIC_CONTROL -(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) 53265 +(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) $d011 (byte*) VIC_CONTROL2 (byte) VIC_CSEL (byte) VIC_DEN diff --git a/src/test/ref/irq-hardware-clobber.cfg b/src/test/ref/irq-hardware-clobber.cfg index 3120ebc77..e79885038 100644 --- a/src/test/ref/irq-hardware-clobber.cfg +++ b/src/test/ref/irq-hardware-clobber.cfg @@ -12,7 +12,7 @@ main: scope:[main] from @2 [5] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [6] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [7] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 + [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 [9] *((const byte*) RASTER#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [10] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [11] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) irq() diff --git a/src/test/ref/irq-hardware-clobber.log b/src/test/ref/irq-hardware-clobber.log index 59263c335..1cd9764c9 100644 --- a/src/test/ref/irq-hardware-clobber.log +++ b/src/test/ref/irq-hardware-clobber.log @@ -2,33 +2,33 @@ Resolved forward reference irq to interrupt(HARDWARE_CLOBBER)(void()) irq() CONTROL FLOW GRAPH SSA @begin: scope:[] from - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) FGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) FGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 to:@2 main: scope:[main] from @2 asm { sei } *((byte*) PROCPORT_DDR#0) ← (byte) PROCPORT_DDR_MEMORY_MASK#0 *((byte*) PROCPORT#0) ← (byte) PROCPORT_RAM_IO#0 *((byte*) CIA1_INTERRUPT#0) ← (byte) CIA_INTERRUPT_CLEAR#0 - *((byte*) VIC_CONTROL#0) ← *((byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 + *((byte*) VIC_CONTROL#0) ← *((byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 *((byte*) RASTER#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) IRQ_ENABLE#0) ← (byte) IRQ_RASTER#0 (void()*~) main::$0 ← & interrupt(HARDWARE_CLOBBER)(void()) irq() @@ -114,26 +114,26 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) BGCOL#0 = ((byte*))53280 -Constant (const byte*) FGCOL#0 = ((byte*))53281 +Constant (const byte*) BGCOL#0 = ((byte*))$d020 +Constant (const byte*) FGCOL#0 = ((byte*))$d021 Constant (const byte) WHITE#0 = 1 Constant (const byte) BLACK#0 = 0 -Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 Constant (const void()*) main::$0 = &irq Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [9] if(true) goto main::@2 @@ -172,7 +172,7 @@ main: scope:[main] from @2 [5] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [6] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [7] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 + [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 [9] *((const byte*) RASTER#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [10] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [11] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) irq() @@ -276,7 +276,7 @@ main: { // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG14 [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + //SEG14 [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Set raster line to $100 lda VIC_CONTROL ora #$80 @@ -337,7 +337,7 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [5] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [6] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [7] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [9] *((const byte*) RASTER#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [10] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [11] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) irq() [ ] ( main:2 [ ] ) always clobbers reg byte a @@ -420,7 +420,7 @@ main: { // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG14 [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + //SEG14 [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Set raster line to $100 lda VIC_CONTROL ora #$80 @@ -495,26 +495,26 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BLACK (const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) CIA1_INTERRUPT -(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) 56333 +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) $dc0d (byte) CIA_INTERRUPT_CLEAR -(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) 127 +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) $7f (byte*) FGCOL -(const byte*) FGCOL#0 FGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) FGCOL#0 FGCOL = ((byte*))(word/dword/signed dword) $d021 (void()**) HARDWARE_IRQ -(const void()**) HARDWARE_IRQ#0 HARDWARE_IRQ = ((void()**))(word/dword/signed dword) 65534 +(const void()**) HARDWARE_IRQ#0 HARDWARE_IRQ = ((void()**))(word/dword/signed dword) $fffe (byte) IRQ_COLLISION_BG (byte) IRQ_COLLISION_SPRITE (byte*) IRQ_ENABLE -(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) 53274 +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) $d01a (byte) IRQ_LIGHTPEN (byte) IRQ_RASTER (const byte) IRQ_RASTER#0 IRQ_RASTER = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) IRQ_STATUS -(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) 53273 +(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) $d019 (void()**) KERNEL_IRQ (byte*) PROCPORT (const byte*) PROCPORT#0 PROCPORT = ((byte*))(byte/signed byte/word/signed word/dword/signed dword) 1 @@ -523,11 +523,11 @@ FINAL SYMBOL TABLE (byte) PROCPORT_DDR_MEMORY_MASK (const byte) PROCPORT_DDR_MEMORY_MASK#0 PROCPORT_DDR_MEMORY_MASK = (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) PROCPORT_RAM_IO -(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) 53 +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) $35 (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte*) VIC_CONTROL -(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) 53265 +(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) $d011 (byte) WHITE (const byte) WHITE#0 WHITE = (byte/signed byte/word/signed word/dword/signed dword) 1 interrupt(HARDWARE_CLOBBER)(void()) irq() @@ -589,7 +589,7 @@ main: { // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG14 [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + //SEG14 [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Set raster line to $100 lda VIC_CONTROL ora #$80 diff --git a/src/test/ref/irq-hardware-clobber.sym b/src/test/ref/irq-hardware-clobber.sym index 19d80eb08..e1ad26d8e 100644 --- a/src/test/ref/irq-hardware-clobber.sym +++ b/src/test/ref/irq-hardware-clobber.sym @@ -2,26 +2,26 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BLACK (const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) CIA1_INTERRUPT -(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) 56333 +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) $dc0d (byte) CIA_INTERRUPT_CLEAR -(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) 127 +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) $7f (byte*) FGCOL -(const byte*) FGCOL#0 FGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) FGCOL#0 FGCOL = ((byte*))(word/dword/signed dword) $d021 (void()**) HARDWARE_IRQ -(const void()**) HARDWARE_IRQ#0 HARDWARE_IRQ = ((void()**))(word/dword/signed dword) 65534 +(const void()**) HARDWARE_IRQ#0 HARDWARE_IRQ = ((void()**))(word/dword/signed dword) $fffe (byte) IRQ_COLLISION_BG (byte) IRQ_COLLISION_SPRITE (byte*) IRQ_ENABLE -(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) 53274 +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) $d01a (byte) IRQ_LIGHTPEN (byte) IRQ_RASTER (const byte) IRQ_RASTER#0 IRQ_RASTER = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) IRQ_STATUS -(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) 53273 +(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) $d019 (void()**) KERNEL_IRQ (byte*) PROCPORT (const byte*) PROCPORT#0 PROCPORT = ((byte*))(byte/signed byte/word/signed word/dword/signed dword) 1 @@ -30,11 +30,11 @@ (byte) PROCPORT_DDR_MEMORY_MASK (const byte) PROCPORT_DDR_MEMORY_MASK#0 PROCPORT_DDR_MEMORY_MASK = (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) PROCPORT_RAM_IO -(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) 53 +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) $35 (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte*) VIC_CONTROL -(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) 53265 +(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) $d011 (byte) WHITE (const byte) WHITE#0 WHITE = (byte/signed byte/word/signed word/dword/signed dword) 1 interrupt(HARDWARE_CLOBBER)(void()) irq() diff --git a/src/test/ref/irq-hardware.cfg b/src/test/ref/irq-hardware.cfg index 0317167b1..194711b65 100644 --- a/src/test/ref/irq-hardware.cfg +++ b/src/test/ref/irq-hardware.cfg @@ -12,7 +12,7 @@ main: scope:[main] from @2 [5] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [6] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [7] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 + [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 [9] *((const byte*) RASTER#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [10] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [11] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_ALL)(void()) irq() diff --git a/src/test/ref/irq-hardware.log b/src/test/ref/irq-hardware.log index c1328b4de..f617ca1e7 100644 --- a/src/test/ref/irq-hardware.log +++ b/src/test/ref/irq-hardware.log @@ -2,33 +2,33 @@ Resolved forward reference irq to interrupt(HARDWARE_ALL)(void()) irq() CONTROL FLOW GRAPH SSA @begin: scope:[] from - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) FGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) FGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 to:@2 main: scope:[main] from @2 asm { sei } *((byte*) PROCPORT_DDR#0) ← (byte) PROCPORT_DDR_MEMORY_MASK#0 *((byte*) PROCPORT#0) ← (byte) PROCPORT_RAM_IO#0 *((byte*) CIA1_INTERRUPT#0) ← (byte) CIA_INTERRUPT_CLEAR#0 - *((byte*) VIC_CONTROL#0) ← *((byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 + *((byte*) VIC_CONTROL#0) ← *((byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 *((byte*) RASTER#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) IRQ_ENABLE#0) ← (byte) IRQ_RASTER#0 (void()*~) main::$0 ← & interrupt(HARDWARE_ALL)(void()) irq() @@ -114,26 +114,26 @@ interrupt(HARDWARE_ALL)(void()) irq() Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) BGCOL#0 = ((byte*))53280 -Constant (const byte*) FGCOL#0 = ((byte*))53281 +Constant (const byte*) BGCOL#0 = ((byte*))$d020 +Constant (const byte*) FGCOL#0 = ((byte*))$d021 Constant (const byte) WHITE#0 = 1 Constant (const byte) BLACK#0 = 0 -Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 Constant (const void()*) main::$0 = &irq Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [9] if(true) goto main::@2 @@ -172,7 +172,7 @@ main: scope:[main] from @2 [5] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [6] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [7] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 + [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 [9] *((const byte*) RASTER#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [10] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [11] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_ALL)(void()) irq() @@ -276,7 +276,7 @@ main: { // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG14 [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + //SEG14 [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Set raster line to $100 lda VIC_CONTROL ora #$80 @@ -337,7 +337,7 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [5] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [6] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [7] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [9] *((const byte*) RASTER#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [10] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [11] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_ALL)(void()) irq() [ ] ( main:2 [ ] ) always clobbers reg byte a @@ -413,7 +413,7 @@ main: { // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG14 [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + //SEG14 [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Set raster line to $100 lda VIC_CONTROL ora #$80 @@ -494,26 +494,26 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BLACK (const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) CIA1_INTERRUPT -(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) 56333 +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) $dc0d (byte) CIA_INTERRUPT_CLEAR -(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) 127 +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) $7f (byte*) FGCOL -(const byte*) FGCOL#0 FGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) FGCOL#0 FGCOL = ((byte*))(word/dword/signed dword) $d021 (void()**) HARDWARE_IRQ -(const void()**) HARDWARE_IRQ#0 HARDWARE_IRQ = ((void()**))(word/dword/signed dword) 65534 +(const void()**) HARDWARE_IRQ#0 HARDWARE_IRQ = ((void()**))(word/dword/signed dword) $fffe (byte) IRQ_COLLISION_BG (byte) IRQ_COLLISION_SPRITE (byte*) IRQ_ENABLE -(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) 53274 +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) $d01a (byte) IRQ_LIGHTPEN (byte) IRQ_RASTER (const byte) IRQ_RASTER#0 IRQ_RASTER = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) IRQ_STATUS -(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) 53273 +(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) $d019 (void()**) KERNEL_IRQ (byte*) PROCPORT (const byte*) PROCPORT#0 PROCPORT = ((byte*))(byte/signed byte/word/signed word/dword/signed dword) 1 @@ -522,11 +522,11 @@ FINAL SYMBOL TABLE (byte) PROCPORT_DDR_MEMORY_MASK (const byte) PROCPORT_DDR_MEMORY_MASK#0 PROCPORT_DDR_MEMORY_MASK = (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) PROCPORT_RAM_IO -(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) 53 +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) $35 (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte*) VIC_CONTROL -(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) 53265 +(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) $d011 (byte) WHITE (const byte) WHITE#0 WHITE = (byte/signed byte/word/signed word/dword/signed dword) 1 interrupt(HARDWARE_ALL)(void()) irq() @@ -588,7 +588,7 @@ main: { // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG14 [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + //SEG14 [8] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Set raster line to $100 lda VIC_CONTROL ora #$80 diff --git a/src/test/ref/irq-hardware.sym b/src/test/ref/irq-hardware.sym index 4f37eccdf..9e2266705 100644 --- a/src/test/ref/irq-hardware.sym +++ b/src/test/ref/irq-hardware.sym @@ -2,26 +2,26 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BLACK (const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) CIA1_INTERRUPT -(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) 56333 +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) $dc0d (byte) CIA_INTERRUPT_CLEAR -(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) 127 +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) $7f (byte*) FGCOL -(const byte*) FGCOL#0 FGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) FGCOL#0 FGCOL = ((byte*))(word/dword/signed dword) $d021 (void()**) HARDWARE_IRQ -(const void()**) HARDWARE_IRQ#0 HARDWARE_IRQ = ((void()**))(word/dword/signed dword) 65534 +(const void()**) HARDWARE_IRQ#0 HARDWARE_IRQ = ((void()**))(word/dword/signed dword) $fffe (byte) IRQ_COLLISION_BG (byte) IRQ_COLLISION_SPRITE (byte*) IRQ_ENABLE -(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) 53274 +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) $d01a (byte) IRQ_LIGHTPEN (byte) IRQ_RASTER (const byte) IRQ_RASTER#0 IRQ_RASTER = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) IRQ_STATUS -(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) 53273 +(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) $d019 (void()**) KERNEL_IRQ (byte*) PROCPORT (const byte*) PROCPORT#0 PROCPORT = ((byte*))(byte/signed byte/word/signed word/dword/signed dword) 1 @@ -30,11 +30,11 @@ (byte) PROCPORT_DDR_MEMORY_MASK (const byte) PROCPORT_DDR_MEMORY_MASK#0 PROCPORT_DDR_MEMORY_MASK = (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) PROCPORT_RAM_IO -(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) 53 +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) $35 (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte*) VIC_CONTROL -(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) 53265 +(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) $d011 (byte) WHITE (const byte) WHITE#0 WHITE = (byte/signed byte/word/signed word/dword/signed dword) 1 interrupt(HARDWARE_ALL)(void()) irq() diff --git a/src/test/ref/irq-kernel-minimal.log b/src/test/ref/irq-kernel-minimal.log index 530985013..b9561475a 100644 --- a/src/test/ref/irq-kernel-minimal.log +++ b/src/test/ref/irq-kernel-minimal.log @@ -6,66 +6,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -76,12 +76,12 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@6 main: scope:[main] from @6 asm { sei } @@ -280,66 +280,66 @@ Successful SSA optimization Pass2CullEmptyBlocks Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -350,12 +350,12 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f Constant (const void()*) main::$0 = &irq Successful SSA optimization Pass2ConstantIdentification Successful SSA optimization PassNEliminateUnusedVars @@ -651,7 +651,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL1 (byte*) BGCOL2 (byte*) BGCOL3 @@ -689,7 +689,7 @@ FINAL SYMBOL TABLE (byte) IRQ_RASTER (byte*) IRQ_STATUS (void()**) KERNEL_IRQ -(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) 788 +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) $314 (byte*) LIGHTPEN_X (byte*) LIGHTPEN_Y (byte) LIGHT_BLUE diff --git a/src/test/ref/irq-kernel-minimal.sym b/src/test/ref/irq-kernel-minimal.sym index 65222cbe1..245f71ac7 100644 --- a/src/test/ref/irq-kernel-minimal.sym +++ b/src/test/ref/irq-kernel-minimal.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL1 (byte*) BGCOL2 (byte*) BGCOL3 @@ -40,7 +40,7 @@ (byte) IRQ_RASTER (byte*) IRQ_STATUS (void()**) KERNEL_IRQ -(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) 788 +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) $314 (byte*) LIGHTPEN_X (byte*) LIGHTPEN_Y (byte) LIGHT_BLUE diff --git a/src/test/ref/irq-kernel.cfg b/src/test/ref/irq-kernel.cfg index 1859685a4..efbd1cfc3 100644 --- a/src/test/ref/irq-kernel.cfg +++ b/src/test/ref/irq-kernel.cfg @@ -10,7 +10,7 @@ main: scope:[main] from @2 asm { sei } [5] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [6] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 + [6] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 [7] *((const byte*) RASTER#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [8] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [9] *((const void()**) KERNEL_IRQ#0) ← &interrupt(KERNEL_KEYBOARD)(void()) irq() diff --git a/src/test/ref/irq-kernel.log b/src/test/ref/irq-kernel.log index da63c38b0..4c69058ad 100644 --- a/src/test/ref/irq-kernel.log +++ b/src/test/ref/irq-kernel.log @@ -2,25 +2,25 @@ Resolved forward reference irq to interrupt(KERNEL_KEYBOARD)(void()) irq() CONTROL FLOW GRAPH SSA @begin: scope:[] from - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f to:@2 main: scope:[main] from @2 asm { sei } *((byte*) CIA1_INTERRUPT#0) ← (byte) CIA_INTERRUPT_CLEAR#0 - *((byte*) VIC_CONTROL#0) ← *((byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 + *((byte*) VIC_CONTROL#0) ← *((byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 *((byte*) RASTER#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) IRQ_ENABLE#0) ← (byte) IRQ_RASTER#0 (void()*~) main::$0 ← & interrupt(KERNEL_KEYBOARD)(void()) irq() @@ -86,20 +86,20 @@ interrupt(KERNEL_KEYBOARD)(void()) irq() Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) BGCOL#0 = ((byte*))53280 +Constant (const byte*) BGCOL#0 = ((byte*))$d020 Constant (const byte) WHITE#0 = 1 Constant (const byte) BLACK#0 = 0 -Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f Constant (const void()*) main::$0 = &irq Successful SSA optimization Pass2ConstantIdentification Successful SSA optimization PassNEliminateUnusedVars @@ -130,7 +130,7 @@ FINAL CONTROL FLOW GRAPH main: scope:[main] from @2 asm { sei } [5] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [6] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 + [6] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 [7] *((const byte*) RASTER#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [8] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [9] *((const void()**) KERNEL_IRQ#0) ← &interrupt(KERNEL_KEYBOARD)(void()) irq() @@ -211,7 +211,7 @@ main: { // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG12 [6] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + //SEG12 [6] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Set raster line to $100 lda VIC_CONTROL ora #$80 @@ -260,7 +260,7 @@ irq: { REGISTER UPLIFT POTENTIAL REGISTERS Statement [5] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [6] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [6] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [7] *((const byte*) RASTER#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [8] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [9] *((const void()**) KERNEL_IRQ#0) ← &interrupt(KERNEL_KEYBOARD)(void()) irq() [ ] ( main:2 [ ] ) always clobbers reg byte a @@ -318,7 +318,7 @@ main: { // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG12 [6] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + //SEG12 [6] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Set raster line to $100 lda VIC_CONTROL ora #$80 @@ -390,28 +390,28 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BLACK (const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) CIA1_INTERRUPT -(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) 56333 +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) $dc0d (byte) CIA_INTERRUPT_CLEAR -(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) 127 +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) $7f (byte) IRQ_COLLISION_BG (byte) IRQ_COLLISION_SPRITE (byte*) IRQ_ENABLE -(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) 53274 +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) $d01a (byte) IRQ_LIGHTPEN (byte) IRQ_RASTER (const byte) IRQ_RASTER#0 IRQ_RASTER = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) IRQ_STATUS -(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) 53273 +(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) $d019 (void()**) KERNEL_IRQ -(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) 788 +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) $314 (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte*) VIC_CONTROL -(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) 53265 +(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) $d011 (byte) WHITE (const byte) WHITE#0 WHITE = (byte/signed byte/word/signed word/dword/signed dword) 1 interrupt(KERNEL_KEYBOARD)(void()) irq() @@ -456,7 +456,7 @@ main: { // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG12 [6] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + //SEG12 [6] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Set raster line to $100 lda VIC_CONTROL ora #$80 diff --git a/src/test/ref/irq-kernel.sym b/src/test/ref/irq-kernel.sym index 901f34495..8e6c1b3e5 100644 --- a/src/test/ref/irq-kernel.sym +++ b/src/test/ref/irq-kernel.sym @@ -2,28 +2,28 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BLACK (const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) CIA1_INTERRUPT -(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) 56333 +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) $dc0d (byte) CIA_INTERRUPT_CLEAR -(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) 127 +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) $7f (byte) IRQ_COLLISION_BG (byte) IRQ_COLLISION_SPRITE (byte*) IRQ_ENABLE -(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) 53274 +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) $d01a (byte) IRQ_LIGHTPEN (byte) IRQ_RASTER (const byte) IRQ_RASTER#0 IRQ_RASTER = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) IRQ_STATUS -(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) 53273 +(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) $d019 (void()**) KERNEL_IRQ -(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) 788 +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) $314 (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte*) VIC_CONTROL -(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) 53265 +(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) $d011 (byte) WHITE (const byte) WHITE#0 WHITE = (byte/signed byte/word/signed word/dword/signed dword) 1 interrupt(KERNEL_KEYBOARD)(void()) irq() diff --git a/src/test/ref/irq-raster.cfg b/src/test/ref/irq-raster.cfg index a2827afc3..68b634448 100644 --- a/src/test/ref/irq-raster.cfg +++ b/src/test/ref/irq-raster.cfg @@ -10,7 +10,7 @@ main: scope:[main] from @2 asm { sei } [5] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [6] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 + [6] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 [7] *((const byte*) RASTER#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [8] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [9] *((const void()**) KERNEL_IRQ#0) ← &interrupt(KERNEL_MIN)(void()) irq() diff --git a/src/test/ref/irq-raster.log b/src/test/ref/irq-raster.log index a6ad74f14..3f0cdf680 100644 --- a/src/test/ref/irq-raster.log +++ b/src/test/ref/irq-raster.log @@ -2,25 +2,25 @@ Resolved forward reference irq to interrupt(KERNEL_MIN)(void()) irq() CONTROL FLOW GRAPH SSA @begin: scope:[] from - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f to:@2 main: scope:[main] from @2 asm { sei } *((byte*) CIA1_INTERRUPT#0) ← (byte) CIA_INTERRUPT_CLEAR#0 - *((byte*) VIC_CONTROL#0) ← *((byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 + *((byte*) VIC_CONTROL#0) ← *((byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 *((byte*) RASTER#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) IRQ_ENABLE#0) ← (byte) IRQ_RASTER#0 (void()*~) main::$0 ← & interrupt(KERNEL_MIN)(void()) irq() @@ -86,20 +86,20 @@ interrupt(KERNEL_MIN)(void()) irq() Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) BGCOL#0 = ((byte*))53280 +Constant (const byte*) BGCOL#0 = ((byte*))$d020 Constant (const byte) WHITE#0 = 1 Constant (const byte) BLACK#0 = 0 -Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f Constant (const void()*) main::$0 = &irq Successful SSA optimization Pass2ConstantIdentification Successful SSA optimization PassNEliminateUnusedVars @@ -130,7 +130,7 @@ FINAL CONTROL FLOW GRAPH main: scope:[main] from @2 asm { sei } [5] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [6] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 + [6] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 [7] *((const byte*) RASTER#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [8] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [9] *((const void()**) KERNEL_IRQ#0) ← &interrupt(KERNEL_MIN)(void()) irq() @@ -211,7 +211,7 @@ main: { // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG12 [6] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + //SEG12 [6] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Set raster line to $100 lda VIC_CONTROL ora #$80 @@ -260,7 +260,7 @@ irq: { REGISTER UPLIFT POTENTIAL REGISTERS Statement [5] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [6] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [6] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [7] *((const byte*) RASTER#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [8] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [9] *((const void()**) KERNEL_IRQ#0) ← &interrupt(KERNEL_MIN)(void()) irq() [ ] ( main:2 [ ] ) always clobbers reg byte a @@ -318,7 +318,7 @@ main: { // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG12 [6] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + //SEG12 [6] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Set raster line to $100 lda VIC_CONTROL ora #$80 @@ -390,28 +390,28 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BLACK (const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) CIA1_INTERRUPT -(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) 56333 +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) $dc0d (byte) CIA_INTERRUPT_CLEAR -(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) 127 +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) $7f (byte) IRQ_COLLISION_BG (byte) IRQ_COLLISION_SPRITE (byte*) IRQ_ENABLE -(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) 53274 +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) $d01a (byte) IRQ_LIGHTPEN (byte) IRQ_RASTER (const byte) IRQ_RASTER#0 IRQ_RASTER = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) IRQ_STATUS -(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) 53273 +(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) $d019 (void()**) KERNEL_IRQ -(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) 788 +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) $314 (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte*) VIC_CONTROL -(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) 53265 +(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) $d011 (byte) WHITE (const byte) WHITE#0 WHITE = (byte/signed byte/word/signed word/dword/signed dword) 1 interrupt(KERNEL_MIN)(void()) irq() @@ -456,7 +456,7 @@ main: { // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG12 [6] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) 128 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + //SEG12 [6] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) | (byte/word/signed word/dword/signed dword) $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Set raster line to $100 lda VIC_CONTROL ora #$80 diff --git a/src/test/ref/irq-raster.sym b/src/test/ref/irq-raster.sym index 4c9bdc120..6826084f0 100644 --- a/src/test/ref/irq-raster.sym +++ b/src/test/ref/irq-raster.sym @@ -2,28 +2,28 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BLACK (const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) CIA1_INTERRUPT -(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) 56333 +(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) $dc0d (byte) CIA_INTERRUPT_CLEAR -(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) 127 +(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) $7f (byte) IRQ_COLLISION_BG (byte) IRQ_COLLISION_SPRITE (byte*) IRQ_ENABLE -(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) 53274 +(const byte*) IRQ_ENABLE#0 IRQ_ENABLE = ((byte*))(word/dword/signed dword) $d01a (byte) IRQ_LIGHTPEN (byte) IRQ_RASTER (const byte) IRQ_RASTER#0 IRQ_RASTER = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) IRQ_STATUS -(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) 53273 +(const byte*) IRQ_STATUS#0 IRQ_STATUS = ((byte*))(word/dword/signed dword) $d019 (void()**) KERNEL_IRQ -(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) 788 +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) $314 (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte*) VIC_CONTROL -(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) 53265 +(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) $d011 (byte) WHITE (const byte) WHITE#0 WHITE = (byte/signed byte/word/signed word/dword/signed dword) 1 interrupt(KERNEL_MIN)(void()) irq() diff --git a/src/test/ref/iterarray.cfg b/src/test/ref/iterarray.cfg index bf8377f89..aecdac35b 100644 --- a/src/test/ref/iterarray.cfg +++ b/src/test/ref/iterarray.cfg @@ -13,9 +13,9 @@ main: scope:[main] from @1 main::@1: scope:[main] from main main::@1 [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 5 main::@1/(byte) main::i#1 ) [6] (byte/signed word/word/dword/signed dword~) main::$1 ← (byte) main::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 2 - [7] *((const byte[16]) main::buf#0 + (byte) main::i#2) ← (byte/signed word/word/dword/signed dword~) main::$1 + [7] *((const byte[$10]) main::buf#0 + (byte) main::i#2) ← (byte/signed word/word/dword/signed dword~) main::$1 [8] (byte) main::i#1 ← (byte) main::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [9] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@1 + [9] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [10] return diff --git a/src/test/ref/iterarray.log b/src/test/ref/iterarray.log index 2c6a8f31a..276ef1ebc 100644 --- a/src/test/ref/iterarray.log +++ b/src/test/ref/iterarray.log @@ -3,17 +3,17 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte[16]) main::buf#0 ← ((byte*)) (word/signed word/dword/signed dword) 4352 + (byte[$10]) main::buf#0 ← ((byte*)) (word/signed word/dword/signed dword) $1100 (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 5 to:main::@1 main::@1: scope:[main] from main main::@1 (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) (byte/signed word/word/dword/signed dword~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) main::i#2 (byte/signed word/word/dword/signed dword~) main::$1 ← (byte/signed word/word/dword/signed dword~) main::$0 + (byte/signed byte/word/signed word/dword/signed dword) 2 - *((byte[16]) main::buf#0 + (byte) main::i#2) ← (byte/signed word/word/dword/signed dword~) main::$1 + *((byte[$10]) main::buf#0 + (byte) main::i#2) ← (byte/signed word/word/dword/signed dword~) main::$1 (byte/signed word/word/dword/signed dword~) main::$2 ← (byte) main::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) main::i#1 ← (byte/signed word/word/dword/signed dword~) main::$2 - (bool~) main::$3 ← (byte) main::i#1 < (byte/signed byte/word/signed word/dword/signed dword) 10 + (bool~) main::$3 ← (byte) main::i#1 < (byte/signed byte/word/signed word/dword/signed dword) $a if((bool~) main::$3) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 @@ -38,8 +38,8 @@ SYMBOL TABLE SSA (bool~) main::$3 (label) main::@1 (label) main::@return -(byte[16]) main::buf -(byte[16]) main::buf#0 +(byte[$10]) main::buf +(byte[$10]) main::buf#0 (byte) main::i (byte) main::i#0 (byte) main::i#1 @@ -49,9 +49,9 @@ Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) main::i#1 = (byte/signed word/word/dword/signed dword~) main::$2 Successful SSA optimization Pass2AliasElimination -Simple Condition (bool~) main::$3 [9] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@1 +Simple Condition (bool~) main::$3 [9] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte[16]) main::buf#0 = ((byte*))4352 +Constant (const byte[$10]) main::buf#0 = ((byte*))$1100 Constant (const byte) main::i#0 = 5 Successful SSA optimization Pass2ConstantIdentification Consolidated constant in assignment main::$1 @@ -95,9 +95,9 @@ main: scope:[main] from @1 main::@1: scope:[main] from main main::@1 [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 5 main::@1/(byte) main::i#1 ) [6] (byte/signed word/word/dword/signed dword~) main::$1 ← (byte) main::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 2 - [7] *((const byte[16]) main::buf#0 + (byte) main::i#2) ← (byte/signed word/word/dword/signed dword~) main::$1 + [7] *((const byte[$10]) main::buf#0 + (byte) main::i#2) ← (byte/signed word/word/dword/signed dword~) main::$1 [8] (byte) main::i#1 ← (byte) main::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [9] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@1 + [9] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [10] return @@ -107,7 +107,7 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS (void()) main() (byte/signed word/word/dword/signed dword~) main::$1 22.0 -(byte[16]) main::buf +(byte[$10]) main::buf (byte) main::i (byte) main::i#1 16.5 (byte) main::i#2 14.666666666666666 @@ -166,13 +166,13 @@ main: { clc adc i sta _1 - //SEG17 [7] *((const byte[16]) main::buf#0 + (byte) main::i#2) ← (byte/signed word/word/dword/signed dword~) main::$1 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG17 [7] *((const byte[$10]) main::buf#0 + (byte) main::i#2) ← (byte/signed word/word/dword/signed dword~) main::$1 -- pbuc1_derefidx_vbuz1=vbuz2 lda _1 ldy i sta buf,y //SEG18 [8] (byte) main::i#1 ← (byte) main::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_plus_1 inc i - //SEG19 [9] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 + //SEG19 [9] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 lda i cmp #$a bcc b1_from_b1 @@ -238,11 +238,11 @@ main: { txa clc adc #2+2 - //SEG17 [7] *((const byte[16]) main::buf#0 + (byte) main::i#2) ← (byte/signed word/word/dword/signed dword~) main::$1 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG17 [7] *((const byte[$10]) main::buf#0 + (byte) main::i#2) ← (byte/signed word/word/dword/signed dword~) main::$1 -- pbuc1_derefidx_vbuxx=vbuaa sta buf,x //SEG18 [8] (byte) main::i#1 ← (byte) main::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=vbuxx_plus_1 inx - //SEG19 [9] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@1 -- vbuxx_lt_vbuc1_then_la1 + //SEG19 [9] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@1 -- vbuxx_lt_vbuc1_then_la1 cpx #$a bcc b1_from_b1 jmp breturn @@ -285,8 +285,8 @@ FINAL SYMBOL TABLE (byte/signed word/word/dword/signed dword~) main::$1 reg byte a 22.0 (label) main::@1 (label) main::@return -(byte[16]) main::buf -(const byte[16]) main::buf#0 buf = ((byte*))(word/signed word/dword/signed dword) 4352 +(byte[$10]) main::buf +(const byte[$10]) main::buf#0 buf = ((byte*))(word/signed word/dword/signed dword) $1100 (byte) main::i (byte) main::i#1 reg byte x 16.5 (byte) main::i#2 reg byte x 14.666666666666666 @@ -325,11 +325,11 @@ main: { txa clc adc #2+2 - //SEG17 [7] *((const byte[16]) main::buf#0 + (byte) main::i#2) ← (byte/signed word/word/dword/signed dword~) main::$1 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG17 [7] *((const byte[$10]) main::buf#0 + (byte) main::i#2) ← (byte/signed word/word/dword/signed dword~) main::$1 -- pbuc1_derefidx_vbuxx=vbuaa sta buf,x //SEG18 [8] (byte) main::i#1 ← (byte) main::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=vbuxx_plus_1 inx - //SEG19 [9] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@1 -- vbuxx_lt_vbuc1_then_la1 + //SEG19 [9] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@1 -- vbuxx_lt_vbuc1_then_la1 cpx #$a bcc b1 //SEG20 main::@return diff --git a/src/test/ref/iterarray.sym b/src/test/ref/iterarray.sym index 400f35e1b..6d6861666 100644 --- a/src/test/ref/iterarray.sym +++ b/src/test/ref/iterarray.sym @@ -5,8 +5,8 @@ (byte/signed word/word/dword/signed dword~) main::$1 reg byte a 22.0 (label) main::@1 (label) main::@return -(byte[16]) main::buf -(const byte[16]) main::buf#0 buf = ((byte*))(word/signed word/dword/signed dword) 4352 +(byte[$10]) main::buf +(const byte[$10]) main::buf#0 buf = ((byte*))(word/signed word/dword/signed dword) $1100 (byte) main::i (byte) main::i#1 reg byte x 16.5 (byte) main::i#2 reg byte x 14.666666666666666 diff --git a/src/test/ref/keyboard-glitch.log b/src/test/ref/keyboard-glitch.log index 82f0e1889..e9c69ea7e 100644 --- a/src/test/ref/keyboard-glitch.log +++ b/src/test/ref/keyboard-glitch.log @@ -5,66 +5,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -75,12 +75,12 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@4 @4: scope:[] from @begin (byte) KEY_DEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -93,63 +93,63 @@ CONTROL FLOW GRAPH SSA (byte) KEY_CRSR_DOWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) KEY_3#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) KEY_W#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) KEY_A#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) KEY_4#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) KEY_Z#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) KEY_S#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) KEY_E#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) KEY_LSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) KEY_5#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte) KEY_R#0 ← (byte/signed byte/word/signed word/dword/signed dword) 17 - (byte) KEY_D#0 ← (byte/signed byte/word/signed word/dword/signed dword) 18 - (byte) KEY_6#0 ← (byte/signed byte/word/signed word/dword/signed dword) 19 - (byte) KEY_C#0 ← (byte/signed byte/word/signed word/dword/signed dword) 20 - (byte) KEY_F#0 ← (byte/signed byte/word/signed word/dword/signed dword) 21 - (byte) KEY_T#0 ← (byte/signed byte/word/signed word/dword/signed dword) 22 - (byte) KEY_X#0 ← (byte/signed byte/word/signed word/dword/signed dword) 23 - (byte) KEY_7#0 ← (byte/signed byte/word/signed word/dword/signed dword) 24 - (byte) KEY_Y#0 ← (byte/signed byte/word/signed word/dword/signed dword) 25 - (byte) KEY_G#0 ← (byte/signed byte/word/signed word/dword/signed dword) 26 - (byte) KEY_8#0 ← (byte/signed byte/word/signed word/dword/signed dword) 27 - (byte) KEY_B#0 ← (byte/signed byte/word/signed word/dword/signed dword) 28 - (byte) KEY_H#0 ← (byte/signed byte/word/signed word/dword/signed dword) 29 - (byte) KEY_U#0 ← (byte/signed byte/word/signed word/dword/signed dword) 30 - (byte) KEY_V#0 ← (byte/signed byte/word/signed word/dword/signed dword) 31 - (byte) KEY_9#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) KEY_I#0 ← (byte/signed byte/word/signed word/dword/signed dword) 33 - (byte) KEY_J#0 ← (byte/signed byte/word/signed word/dword/signed dword) 34 - (byte) KEY_0#0 ← (byte/signed byte/word/signed word/dword/signed dword) 35 - (byte) KEY_M#0 ← (byte/signed byte/word/signed word/dword/signed dword) 36 - (byte) KEY_K#0 ← (byte/signed byte/word/signed word/dword/signed dword) 37 - (byte) KEY_O#0 ← (byte/signed byte/word/signed word/dword/signed dword) 38 - (byte) KEY_N#0 ← (byte/signed byte/word/signed word/dword/signed dword) 39 - (byte) KEY_PLUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte) KEY_P#0 ← (byte/signed byte/word/signed word/dword/signed dword) 41 - (byte) KEY_L#0 ← (byte/signed byte/word/signed word/dword/signed dword) 42 - (byte) KEY_MINUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 43 - (byte) KEY_DOT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 44 - (byte) KEY_COLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) 45 - (byte) KEY_AT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 46 - (byte) KEY_COMMA#0 ← (byte/signed byte/word/signed word/dword/signed dword) 47 - (byte) KEY_POUND#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) KEY_ASTERISK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) KEY_SEMICOLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 - (byte) KEY_HOME#0 ← (byte/signed byte/word/signed word/dword/signed dword) 51 - (byte) KEY_RSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 52 - (byte) KEY_EQUALS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) KEY_ARROW_UP#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) KEY_SLASH#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte) KEY_1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 56 - (byte) KEY_ARROW_LEFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 57 - (byte) KEY_CTRL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 58 - (byte) KEY_2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 59 - (byte) KEY_SPACE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 60 - (byte) KEY_COMMODORE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 61 - (byte) KEY_Q#0 ← (byte/signed byte/word/signed word/dword/signed dword) 62 - (byte) KEY_RUNSTOP#0 ← (byte/signed byte/word/signed word/dword/signed dword) 63 - (byte[]) keyboard_char_keycodes#0 ← { (byte) KEY_AT#0, (byte) KEY_A#0, (byte) KEY_B#0, (byte) KEY_C#0, (byte) KEY_D#0, (byte) KEY_E#0, (byte) KEY_F#0, (byte) KEY_G#0, (byte) KEY_H#0, (byte) KEY_I#0, (byte) KEY_J#0, (byte) KEY_K#0, (byte) KEY_L#0, (byte) KEY_M#0, (byte) KEY_N#0, (byte) KEY_O#0, (byte) KEY_P#0, (byte) KEY_Q#0, (byte) KEY_R#0, (byte) KEY_S#0, (byte) KEY_T#0, (byte) KEY_U#0, (byte) KEY_V#0, (byte) KEY_W#0, (byte) KEY_X#0, (byte) KEY_Y#0, (byte) KEY_Z#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP#0, (byte) KEY_ARROW_LEFT#0, (byte) KEY_SPACE#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK#0, (byte) KEY_PLUS#0, (byte) KEY_COMMA#0, (byte) KEY_MINUS#0, (byte) KEY_DOT#0, (byte) KEY_SLASH#0, (byte) KEY_0#0, (byte) KEY_1#0, (byte) KEY_2#0, (byte) KEY_3#0, (byte) KEY_4#0, (byte) KEY_5#0, (byte) KEY_6#0, (byte) KEY_7#0, (byte) KEY_8#0, (byte) KEY_9#0, (byte) KEY_COLON#0, (byte) KEY_SEMICOLON#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } - (byte[8]) keyboard_matrix_row_bitmask#0 ← { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } - (byte[8]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } + (byte) KEY_A#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) KEY_4#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) KEY_Z#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) KEY_S#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) KEY_E#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) KEY_LSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f + (byte) KEY_5#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte) KEY_R#0 ← (byte/signed byte/word/signed word/dword/signed dword) $11 + (byte) KEY_D#0 ← (byte/signed byte/word/signed word/dword/signed dword) $12 + (byte) KEY_6#0 ← (byte/signed byte/word/signed word/dword/signed dword) $13 + (byte) KEY_C#0 ← (byte/signed byte/word/signed word/dword/signed dword) $14 + (byte) KEY_F#0 ← (byte/signed byte/word/signed word/dword/signed dword) $15 + (byte) KEY_T#0 ← (byte/signed byte/word/signed word/dword/signed dword) $16 + (byte) KEY_X#0 ← (byte/signed byte/word/signed word/dword/signed dword) $17 + (byte) KEY_7#0 ← (byte/signed byte/word/signed word/dword/signed dword) $18 + (byte) KEY_Y#0 ← (byte/signed byte/word/signed word/dword/signed dword) $19 + (byte) KEY_G#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1a + (byte) KEY_8#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1b + (byte) KEY_B#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1c + (byte) KEY_H#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1d + (byte) KEY_U#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1e + (byte) KEY_V#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1f + (byte) KEY_9#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) KEY_I#0 ← (byte/signed byte/word/signed word/dword/signed dword) $21 + (byte) KEY_J#0 ← (byte/signed byte/word/signed word/dword/signed dword) $22 + (byte) KEY_0#0 ← (byte/signed byte/word/signed word/dword/signed dword) $23 + (byte) KEY_M#0 ← (byte/signed byte/word/signed word/dword/signed dword) $24 + (byte) KEY_K#0 ← (byte/signed byte/word/signed word/dword/signed dword) $25 + (byte) KEY_O#0 ← (byte/signed byte/word/signed word/dword/signed dword) $26 + (byte) KEY_N#0 ← (byte/signed byte/word/signed word/dword/signed dword) $27 + (byte) KEY_PLUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) KEY_P#0 ← (byte/signed byte/word/signed word/dword/signed dword) $29 + (byte) KEY_L#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2a + (byte) KEY_MINUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2b + (byte) KEY_DOT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2c + (byte) KEY_COLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2d + (byte) KEY_AT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2e + (byte) KEY_COMMA#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2f + (byte) KEY_POUND#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) KEY_ASTERISK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) KEY_SEMICOLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) $32 + (byte) KEY_HOME#0 ← (byte/signed byte/word/signed word/dword/signed dword) $33 + (byte) KEY_RSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $34 + (byte) KEY_EQUALS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) KEY_ARROW_UP#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) KEY_SLASH#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte) KEY_1#0 ← (byte/signed byte/word/signed word/dword/signed dword) $38 + (byte) KEY_ARROW_LEFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $39 + (byte) KEY_CTRL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3a + (byte) KEY_2#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3b + (byte) KEY_SPACE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3c + (byte) KEY_COMMODORE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3d + (byte) KEY_Q#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3e + (byte) KEY_RUNSTOP#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3f + (byte[]) keyboard_char_keycodes#0 ← { (byte) KEY_AT#0, (byte) KEY_A#0, (byte) KEY_B#0, (byte) KEY_C#0, (byte) KEY_D#0, (byte) KEY_E#0, (byte) KEY_F#0, (byte) KEY_G#0, (byte) KEY_H#0, (byte) KEY_I#0, (byte) KEY_J#0, (byte) KEY_K#0, (byte) KEY_L#0, (byte) KEY_M#0, (byte) KEY_N#0, (byte) KEY_O#0, (byte) KEY_P#0, (byte) KEY_Q#0, (byte) KEY_R#0, (byte) KEY_S#0, (byte) KEY_T#0, (byte) KEY_U#0, (byte) KEY_V#0, (byte) KEY_W#0, (byte) KEY_X#0, (byte) KEY_Y#0, (byte) KEY_Z#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_POUND#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_ARROW_UP#0, (byte) KEY_ARROW_LEFT#0, (byte) KEY_SPACE#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_ASTERISK#0, (byte) KEY_PLUS#0, (byte) KEY_COMMA#0, (byte) KEY_MINUS#0, (byte) KEY_DOT#0, (byte) KEY_SLASH#0, (byte) KEY_0#0, (byte) KEY_1#0, (byte) KEY_2#0, (byte) KEY_3#0, (byte) KEY_4#0, (byte) KEY_5#0, (byte) KEY_6#0, (byte) KEY_7#0, (byte) KEY_8#0, (byte) KEY_9#0, (byte) KEY_COLON#0, (byte) KEY_SEMICOLON#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_EQUALS#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f } + (byte[8]) keyboard_matrix_row_bitmask#0 ← { (byte/word/signed word/dword/signed dword) $fe, (byte/word/signed word/dword/signed dword) $fd, (byte/word/signed word/dword/signed dword) $fb, (byte/word/signed word/dword/signed dword) $f7, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $bf, (byte/signed byte/word/signed word/dword/signed dword) $7f } + (byte[8]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $10, (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/word/signed word/dword/signed dword) $80 } to:@8 keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed (byte) keyboard_matrix_read::rowid#1 ← phi( keyboard_key_pressed/(byte) keyboard_matrix_read::rowid#0 ) @@ -216,7 +216,7 @@ main::@return: scope:[main] from main::@1 return to:@return @12: scope:[] from @8 - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@14 menu: scope:[menu] from main::@2 (byte*) SCREEN#9 ← phi( main::@2/(byte*) SCREEN#10 ) @@ -775,66 +775,66 @@ Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -845,12 +845,12 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f Constant (const byte) KEY_DEL#0 = 0 Constant (const byte) KEY_RETURN#0 = 1 Constant (const byte) KEY_CRSR_RIGHT#0 = 2 @@ -861,62 +861,62 @@ Constant (const byte) KEY_F5#0 = 6 Constant (const byte) KEY_CRSR_DOWN#0 = 7 Constant (const byte) KEY_3#0 = 8 Constant (const byte) KEY_W#0 = 9 -Constant (const byte) KEY_A#0 = 10 -Constant (const byte) KEY_4#0 = 11 -Constant (const byte) KEY_Z#0 = 12 -Constant (const byte) KEY_S#0 = 13 -Constant (const byte) KEY_E#0 = 14 -Constant (const byte) KEY_LSHIFT#0 = 15 -Constant (const byte) KEY_5#0 = 16 -Constant (const byte) KEY_R#0 = 17 -Constant (const byte) KEY_D#0 = 18 -Constant (const byte) KEY_6#0 = 19 -Constant (const byte) KEY_C#0 = 20 -Constant (const byte) KEY_F#0 = 21 -Constant (const byte) KEY_T#0 = 22 -Constant (const byte) KEY_X#0 = 23 -Constant (const byte) KEY_7#0 = 24 -Constant (const byte) KEY_Y#0 = 25 -Constant (const byte) KEY_G#0 = 26 -Constant (const byte) KEY_8#0 = 27 -Constant (const byte) KEY_B#0 = 28 -Constant (const byte) KEY_H#0 = 29 -Constant (const byte) KEY_U#0 = 30 -Constant (const byte) KEY_V#0 = 31 -Constant (const byte) KEY_9#0 = 32 -Constant (const byte) KEY_I#0 = 33 -Constant (const byte) KEY_J#0 = 34 -Constant (const byte) KEY_0#0 = 35 -Constant (const byte) KEY_M#0 = 36 -Constant (const byte) KEY_K#0 = 37 -Constant (const byte) KEY_O#0 = 38 -Constant (const byte) KEY_N#0 = 39 -Constant (const byte) KEY_PLUS#0 = 40 -Constant (const byte) KEY_P#0 = 41 -Constant (const byte) KEY_L#0 = 42 -Constant (const byte) KEY_MINUS#0 = 43 -Constant (const byte) KEY_DOT#0 = 44 -Constant (const byte) KEY_COLON#0 = 45 -Constant (const byte) KEY_AT#0 = 46 -Constant (const byte) KEY_COMMA#0 = 47 -Constant (const byte) KEY_POUND#0 = 48 -Constant (const byte) KEY_ASTERISK#0 = 49 -Constant (const byte) KEY_SEMICOLON#0 = 50 -Constant (const byte) KEY_HOME#0 = 51 -Constant (const byte) KEY_RSHIFT#0 = 52 -Constant (const byte) KEY_EQUALS#0 = 53 -Constant (const byte) KEY_ARROW_UP#0 = 54 -Constant (const byte) KEY_SLASH#0 = 55 -Constant (const byte) KEY_1#0 = 56 -Constant (const byte) KEY_ARROW_LEFT#0 = 57 -Constant (const byte) KEY_CTRL#0 = 58 -Constant (const byte) KEY_2#0 = 59 -Constant (const byte) KEY_SPACE#0 = 60 -Constant (const byte) KEY_COMMODORE#0 = 61 -Constant (const byte) KEY_Q#0 = 62 -Constant (const byte) KEY_RUNSTOP#0 = 63 -Constant (const byte[8]) keyboard_matrix_row_bitmask#0 = { 254, 253, 251, 247, 239, 223, 191, 127 } -Constant (const byte[8]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, 16, 32, 64, 128 } +Constant (const byte) KEY_A#0 = $a +Constant (const byte) KEY_4#0 = $b +Constant (const byte) KEY_Z#0 = $c +Constant (const byte) KEY_S#0 = $d +Constant (const byte) KEY_E#0 = $e +Constant (const byte) KEY_LSHIFT#0 = $f +Constant (const byte) KEY_5#0 = $10 +Constant (const byte) KEY_R#0 = $11 +Constant (const byte) KEY_D#0 = $12 +Constant (const byte) KEY_6#0 = $13 +Constant (const byte) KEY_C#0 = $14 +Constant (const byte) KEY_F#0 = $15 +Constant (const byte) KEY_T#0 = $16 +Constant (const byte) KEY_X#0 = $17 +Constant (const byte) KEY_7#0 = $18 +Constant (const byte) KEY_Y#0 = $19 +Constant (const byte) KEY_G#0 = $1a +Constant (const byte) KEY_8#0 = $1b +Constant (const byte) KEY_B#0 = $1c +Constant (const byte) KEY_H#0 = $1d +Constant (const byte) KEY_U#0 = $1e +Constant (const byte) KEY_V#0 = $1f +Constant (const byte) KEY_9#0 = $20 +Constant (const byte) KEY_I#0 = $21 +Constant (const byte) KEY_J#0 = $22 +Constant (const byte) KEY_0#0 = $23 +Constant (const byte) KEY_M#0 = $24 +Constant (const byte) KEY_K#0 = $25 +Constant (const byte) KEY_O#0 = $26 +Constant (const byte) KEY_N#0 = $27 +Constant (const byte) KEY_PLUS#0 = $28 +Constant (const byte) KEY_P#0 = $29 +Constant (const byte) KEY_L#0 = $2a +Constant (const byte) KEY_MINUS#0 = $2b +Constant (const byte) KEY_DOT#0 = $2c +Constant (const byte) KEY_COLON#0 = $2d +Constant (const byte) KEY_AT#0 = $2e +Constant (const byte) KEY_COMMA#0 = $2f +Constant (const byte) KEY_POUND#0 = $30 +Constant (const byte) KEY_ASTERISK#0 = $31 +Constant (const byte) KEY_SEMICOLON#0 = $32 +Constant (const byte) KEY_HOME#0 = $33 +Constant (const byte) KEY_RSHIFT#0 = $34 +Constant (const byte) KEY_EQUALS#0 = $35 +Constant (const byte) KEY_ARROW_UP#0 = $36 +Constant (const byte) KEY_SLASH#0 = $37 +Constant (const byte) KEY_1#0 = $38 +Constant (const byte) KEY_ARROW_LEFT#0 = $39 +Constant (const byte) KEY_CTRL#0 = $3a +Constant (const byte) KEY_2#0 = $3b +Constant (const byte) KEY_SPACE#0 = $3c +Constant (const byte) KEY_COMMODORE#0 = $3d +Constant (const byte) KEY_Q#0 = $3e +Constant (const byte) KEY_RUNSTOP#0 = $3f +Constant (const byte[8]) keyboard_matrix_row_bitmask#0 = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f } +Constant (const byte[8]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, $10, $20, $40, $80 } Constant (const byte[8]) keyboard_events#0 = { fill( 8, 0) } Constant (const byte) keyboard_events_size#0 = 0 Constant (const byte) keyboard_modifiers#0 = 0 @@ -925,9 +925,9 @@ Constant (const byte) KEY_MODIFIER_RSHIFT#0 = 2 Constant (const byte) KEY_MODIFIER_CTRL#0 = 4 Constant (const byte) KEY_MODIFIER_COMMODORE#0 = 8 Constant (const byte[8]) keyboard_scan_values#0 = { fill( 8, 0) } -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Successful SSA optimization Pass2ConstantIdentification -Constant (const byte[]) keyboard_char_keycodes#0 = { KEY_AT#0, KEY_A#0, KEY_B#0, KEY_C#0, KEY_D#0, KEY_E#0, KEY_F#0, KEY_G#0, KEY_H#0, KEY_I#0, KEY_J#0, KEY_K#0, KEY_L#0, KEY_M#0, KEY_N#0, KEY_O#0, KEY_P#0, KEY_Q#0, KEY_R#0, KEY_S#0, KEY_T#0, KEY_U#0, KEY_V#0, KEY_W#0, KEY_X#0, KEY_Y#0, KEY_Z#0, 63, KEY_POUND#0, 63, KEY_ARROW_UP#0, KEY_ARROW_LEFT#0, KEY_SPACE#0, 63, 63, 63, 63, 63, 63, 63, 63, 63, KEY_ASTERISK#0, KEY_PLUS#0, KEY_COMMA#0, KEY_MINUS#0, KEY_DOT#0, KEY_SLASH#0, KEY_0#0, KEY_1#0, KEY_2#0, KEY_3#0, KEY_4#0, KEY_5#0, KEY_6#0, KEY_7#0, KEY_8#0, KEY_9#0, KEY_COLON#0, KEY_SEMICOLON#0, 63, KEY_EQUALS#0, 63, 63 } +Constant (const byte[]) keyboard_char_keycodes#0 = { KEY_AT#0, KEY_A#0, KEY_B#0, KEY_C#0, KEY_D#0, KEY_E#0, KEY_F#0, KEY_G#0, KEY_H#0, KEY_I#0, KEY_J#0, KEY_K#0, KEY_L#0, KEY_M#0, KEY_N#0, KEY_O#0, KEY_P#0, KEY_Q#0, KEY_R#0, KEY_S#0, KEY_T#0, KEY_U#0, KEY_V#0, KEY_W#0, KEY_X#0, KEY_Y#0, KEY_Z#0, $3f, KEY_POUND#0, $3f, KEY_ARROW_UP#0, KEY_ARROW_LEFT#0, KEY_SPACE#0, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, KEY_ASTERISK#0, KEY_PLUS#0, KEY_COMMA#0, KEY_MINUS#0, KEY_DOT#0, KEY_SLASH#0, KEY_0#0, KEY_1#0, KEY_2#0, KEY_3#0, KEY_4#0, KEY_5#0, KEY_6#0, KEY_7#0, KEY_8#0, KEY_9#0, KEY_COLON#0, KEY_SEMICOLON#0, $3f, KEY_EQUALS#0, $3f, $3f } Constant (const byte) KEY_MODIFIER_SHIFT#0 = KEY_MODIFIER_LSHIFT#0|KEY_MODIFIER_RSHIFT#0 Constant (const byte) keyboard_key_pressed::key#0 = KEY_C#0 Constant (const byte) keyboard_key_pressed::key#1 = KEY_I#0 @@ -1996,7 +1996,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL1 (byte*) BGCOL2 (byte*) BGCOL3 @@ -2004,15 +2004,15 @@ FINAL SYMBOL TABLE (byte) BLACK (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN (byte*) CIA1_INTERRUPT (byte*) CIA1_PORT_A -(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) 56320 +(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) $dc00 (byte*) CIA1_PORT_A_DDR (byte*) CIA1_PORT_B -(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) 56321 +(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) $dc01 (byte*) CIA1_PORT_B_DDR (byte*) CIA2_INTERRUPT (byte*) CIA2_PORT_A @@ -2054,7 +2054,7 @@ FINAL SYMBOL TABLE (byte) KEY_AT (byte) KEY_B (byte) KEY_C -(const byte) KEY_C#0 KEY_C = (byte/signed byte/word/signed word/dword/signed dword) 20 +(const byte) KEY_C#0 KEY_C = (byte/signed byte/word/signed word/dword/signed dword) $14 (byte) KEY_COLON (byte) KEY_COMMA (byte) KEY_COMMODORE @@ -2065,7 +2065,7 @@ FINAL SYMBOL TABLE (byte) KEY_DEL (byte) KEY_DOT (byte) KEY_E -(const byte) KEY_E#0 KEY_E = (byte/signed byte/word/signed word/dword/signed dword) 14 +(const byte) KEY_E#0 KEY_E = (byte/signed byte/word/signed word/dword/signed dword) $e (byte) KEY_EQUALS (byte) KEY_F (byte) KEY_F1 @@ -2076,7 +2076,7 @@ FINAL SYMBOL TABLE (byte) KEY_H (byte) KEY_HOME (byte) KEY_I -(const byte) KEY_I#0 KEY_I = (byte/signed byte/word/signed word/dword/signed dword) 33 +(const byte) KEY_I#0 KEY_I = (byte/signed byte/word/signed word/dword/signed dword) $21 (byte) KEY_J (byte) KEY_K (byte) KEY_L @@ -2102,7 +2102,7 @@ FINAL SYMBOL TABLE (byte) KEY_SEMICOLON (byte) KEY_SLASH (byte) KEY_SPACE -(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) 60 +(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) $3c (byte) KEY_T (byte) KEY_U (byte) KEY_V @@ -2130,7 +2130,7 @@ FINAL SYMBOL TABLE (byte) RED (const byte) RED#0 RED = (byte/signed byte/word/signed word/dword/signed dword) 2 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE (byte*) SPRITES_EXPAND_X @@ -2175,7 +2175,7 @@ FINAL SYMBOL TABLE (byte) keyboard_key_pressed::rowidx (byte) keyboard_key_pressed::rowidx#0 reg byte a 4.0 (byte[8]) keyboard_matrix_col_bitmask -(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $10, (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/word/signed word/dword/signed dword) $80 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (label) keyboard_matrix_read::@return (byte) keyboard_matrix_read::return @@ -2185,7 +2185,7 @@ FINAL SYMBOL TABLE (byte) keyboard_matrix_read::rowid (byte) keyboard_matrix_read::rowid#0 reg byte x 4.0 (byte[8]) keyboard_matrix_row_bitmask -(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } +(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) $fe, (byte/word/signed word/dword/signed dword) $fd, (byte/word/signed word/dword/signed dword) $fb, (byte/word/signed word/dword/signed dword) $f7, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $bf, (byte/signed byte/word/signed word/dword/signed dword) $7f } (byte) keyboard_modifiers (byte[8]) keyboard_scan_values (void()) main() diff --git a/src/test/ref/keyboard-glitch.sym b/src/test/ref/keyboard-glitch.sym index c42abf148..c4121bab8 100644 --- a/src/test/ref/keyboard-glitch.sym +++ b/src/test/ref/keyboard-glitch.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL1 (byte*) BGCOL2 (byte*) BGCOL3 @@ -10,15 +10,15 @@ (byte) BLACK (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN (byte*) CIA1_INTERRUPT (byte*) CIA1_PORT_A -(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) 56320 +(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) $dc00 (byte*) CIA1_PORT_A_DDR (byte*) CIA1_PORT_B -(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) 56321 +(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) $dc01 (byte*) CIA1_PORT_B_DDR (byte*) CIA2_INTERRUPT (byte*) CIA2_PORT_A @@ -60,7 +60,7 @@ (byte) KEY_AT (byte) KEY_B (byte) KEY_C -(const byte) KEY_C#0 KEY_C = (byte/signed byte/word/signed word/dword/signed dword) 20 +(const byte) KEY_C#0 KEY_C = (byte/signed byte/word/signed word/dword/signed dword) $14 (byte) KEY_COLON (byte) KEY_COMMA (byte) KEY_COMMODORE @@ -71,7 +71,7 @@ (byte) KEY_DEL (byte) KEY_DOT (byte) KEY_E -(const byte) KEY_E#0 KEY_E = (byte/signed byte/word/signed word/dword/signed dword) 14 +(const byte) KEY_E#0 KEY_E = (byte/signed byte/word/signed word/dword/signed dword) $e (byte) KEY_EQUALS (byte) KEY_F (byte) KEY_F1 @@ -82,7 +82,7 @@ (byte) KEY_H (byte) KEY_HOME (byte) KEY_I -(const byte) KEY_I#0 KEY_I = (byte/signed byte/word/signed word/dword/signed dword) 33 +(const byte) KEY_I#0 KEY_I = (byte/signed byte/word/signed word/dword/signed dword) $21 (byte) KEY_J (byte) KEY_K (byte) KEY_L @@ -108,7 +108,7 @@ (byte) KEY_SEMICOLON (byte) KEY_SLASH (byte) KEY_SPACE -(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) 60 +(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) $3c (byte) KEY_T (byte) KEY_U (byte) KEY_V @@ -136,7 +136,7 @@ (byte) RED (const byte) RED#0 RED = (byte/signed byte/word/signed word/dword/signed dword) 2 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE (byte*) SPRITES_EXPAND_X @@ -181,7 +181,7 @@ (byte) keyboard_key_pressed::rowidx (byte) keyboard_key_pressed::rowidx#0 reg byte a 4.0 (byte[8]) keyboard_matrix_col_bitmask -(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $10, (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/word/signed word/dword/signed dword) $80 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (label) keyboard_matrix_read::@return (byte) keyboard_matrix_read::return @@ -191,7 +191,7 @@ (byte) keyboard_matrix_read::rowid (byte) keyboard_matrix_read::rowid#0 reg byte x 4.0 (byte[8]) keyboard_matrix_row_bitmask -(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } +(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) $fe, (byte/word/signed word/dword/signed dword) $fd, (byte/word/signed word/dword/signed dword) $fb, (byte/word/signed word/dword/signed dword) $f7, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $bf, (byte/signed byte/word/signed word/dword/signed dword) $7f } (byte) keyboard_modifiers (byte[8]) keyboard_scan_values (void()) main() diff --git a/src/test/ref/line-anim.cfg b/src/test/ref/line-anim.cfg index 0dbb58f21..64c64a480 100644 --- a/src/test/ref/line-anim.cfg +++ b/src/test/ref/line-anim.cfg @@ -55,17 +55,17 @@ main::@21: scope:[main] from main::@20 [26] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@1 to:main::@5 main::@5: scope:[main] from main::@21 main::@5 main::@7 - [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 + [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@5 to:main::@7 main::@7: scope:[main] from main::@5 [28] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) to:main::@5 bitmap_plot: scope:[bitmap_plot] from main::@20 - [29] (word~) bitmap_plot::$3 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#0) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#0) - [30] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#0 & (word/dword/signed dword) 65528 + [29] (word~) bitmap_plot::$3 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#0) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#0) + [30] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#0 & (word/dword/signed dword) $fff8 [31] (byte*) bitmap_plot::plotter#1 ← (byte*)(word~) bitmap_plot::$3 + (word~) bitmap_plot::$1 [32] (byte~) bitmap_plot::$2 ← < (word) bitmap_plot::x#0 - [33] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[256]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) + [33] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[$100]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) to:bitmap_plot::@return bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot [34] return @@ -115,7 +115,7 @@ point_init::@1: scope:[point_init] from point_init::@10 [55] if((signed word) point_init::x_diff#1<(byte/signed byte/word/signed word/dword/signed dword) 0) goto point_init::@3 to:point_init::@7 point_init::@7: scope:[point_init] from point_init::@1 - [56] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← (byte/signed byte/word/signed word/dword/signed dword) 16 + [56] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← (byte/signed byte/word/signed word/dword/signed dword) $10 to:point_init::@4 point_init::@4: scope:[point_init] from point_init::@3 point_init::@7 [57] (signed word) divr16s::divisor#0 ← (signed word) point_init::x_diff#1 @@ -130,7 +130,7 @@ point_init::@11: scope:[point_init] from point_init::@4 [64] *((const signed byte[4]) y_add#0 + (byte) point_init::point_idx1#0) ← (signed byte)(byte~) point_init::$14 to:point_init::@2 point_init::@3: scope:[point_init] from point_init::@1 - [65] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← -(byte/signed byte/word/signed word/dword/signed dword) 16 + [65] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← -(byte/signed byte/word/signed word/dword/signed dword) $10 to:point_init::@4 point_init::abs16s2_@1: scope:[point_init] from point_init::abs16s2 [66] (signed word) point_init::abs16s2_$2#0 ← - (signed word) point_init::y_diff#0 @@ -203,7 +203,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 [96] (word) divr16u::rem#4 ← phi( divr16u/(word) divr16u::rem#3 divr16u::@3/(word) divr16u::rem#10 ) [97] (word) divr16u::rem#0 ← (word) divr16u::rem#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [98] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 - [99] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + [99] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [100] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 to:divr16u::@4 divr16u::@4: scope:[divr16u] from divr16u::@1 @@ -223,7 +223,7 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 [108] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [108] (word) divr16u::rem#10 ← phi( divr16u::@2/(word) divr16u::rem#5 divr16u::@5/(word) divr16u::rem#2 ) [109] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 - [110] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 + [110] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 to:divr16u::@return divr16u::@return: scope:[divr16u] from divr16u::@3 [111] return @@ -241,17 +241,17 @@ screen_fill::@2: scope:[screen_fill] from screen_fill::@1 screen_fill::@2 [115] *((byte*) screen_fill::screen#2) ← (const byte) screen_fill::ch#0 [116] (byte*) screen_fill::screen#1 ← ++ (byte*) screen_fill::screen#2 [117] (byte) screen_fill::x#1 ← ++ (byte) screen_fill::x#2 - [118] if((byte) screen_fill::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto screen_fill::@2 + [118] if((byte) screen_fill::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto screen_fill::@2 to:screen_fill::@3 screen_fill::@3: scope:[screen_fill] from screen_fill::@2 [119] (byte) screen_fill::y#1 ← ++ (byte) screen_fill::y#4 - [120] if((byte) screen_fill::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto screen_fill::@1 + [120] if((byte) screen_fill::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto screen_fill::@1 to:screen_fill::@return screen_fill::@return: scope:[screen_fill] from screen_fill::@3 [121] return to:@return bitmap_clear: scope:[bitmap_clear] from main::@17 - [122] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_yhi#0) w= *((const byte[256]) bitmap_plot_ylo#0) + [122] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_yhi#0) w= *((const byte[$100]) bitmap_plot_ylo#0) [123] (byte*~) bitmap_clear::bitmap#5 ← (byte*)(word~) bitmap_clear::$3 to:bitmap_clear::@1 bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear bitmap_clear::@3 @@ -264,11 +264,11 @@ bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1 bitmap_clear::@2 [126] *((byte*) bitmap_clear::bitmap#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [127] (byte*) bitmap_clear::bitmap#1 ← ++ (byte*) bitmap_clear::bitmap#2 [128] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 - [129] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) 200) goto bitmap_clear::@2 + [129] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) $c8) goto bitmap_clear::@2 to:bitmap_clear::@3 bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2 [130] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 - [131] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto bitmap_clear::@1 + [131] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto bitmap_clear::@1 to:bitmap_clear::@return bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3 [132] return @@ -278,13 +278,13 @@ bitmap_init: scope:[bitmap_init] from main::@16 to:bitmap_init::@1 bitmap_init::@1: scope:[bitmap_init] from bitmap_init bitmap_init::@2 [134] (byte) bitmap_init::x#2 ← phi( bitmap_init/(byte/signed byte/word/signed word/dword/signed dword) 0 bitmap_init::@2/(byte) bitmap_init::x#1 ) - [134] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte/word/signed word/dword/signed dword) 128 bitmap_init::@2/(byte) bitmap_init::bits#4 ) - [135] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 + [134] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte/word/signed word/dword/signed dword) $80 bitmap_init::@2/(byte) bitmap_init::bits#4 ) + [135] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [136] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [137] if((byte) bitmap_init::bits#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@10 to:bitmap_init::@2 bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@10 - [138] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@10/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte/word/signed word/dword/signed dword) 128 ) + [138] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@10/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte/word/signed word/dword/signed dword) $80 ) [139] (byte) bitmap_init::x#1 ← ++ (byte) bitmap_init::x#2 [140] if((byte) bitmap_init::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@1 to:bitmap_init::@3 @@ -294,14 +294,14 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4 [142] (byte~) bitmap_init::$3 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [143] (byte~) bitmap_init::$4 ← < (byte*) bitmap_init::yoffs#2 [144] (byte~) bitmap_init::$5 ← (byte~) bitmap_init::$3 | (byte~) bitmap_init::$4 - [145] *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5 + [145] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5 [146] (byte~) bitmap_init::$6 ← > (byte*) bitmap_init::yoffs#2 - [147] *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6 + [147] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6 [148] (byte~) bitmap_init::$7 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [149] if((byte~) bitmap_init::$7!=(byte/signed byte/word/signed word/dword/signed dword) 7) goto bitmap_init::@4 to:bitmap_init::@7 bitmap_init::@7: scope:[bitmap_init] from bitmap_init::@3 - [150] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 + [150] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 to:bitmap_init::@4 bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@7 [151] (byte*) bitmap_init::yoffs#4 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 bitmap_init::@7/(byte*) bitmap_init::yoffs#1 ) diff --git a/src/test/ref/line-anim.log b/src/test/ref/line-anim.log index 392b4a14e..5c46a78ae 100644 --- a/src/test/ref/line-anim.log +++ b/src/test/ref/line-anim.log @@ -9,66 +9,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -79,12 +79,12 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@4 @4: scope:[] from @begin (byte) rem8u#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -108,7 +108,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 (word~) divr16u::$0 ← (word) divr16u::rem#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 (word) divr16u::rem#0 ← (word~) divr16u::$0 (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 - (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 (bool~) divr16u::$3 ← (byte~) divr16u::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) divr16u::$4 ← ! (bool~) divr16u::$3 if((bool~) divr16u::$4) goto divr16u::@2 @@ -142,8 +142,8 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 (word) divr16u::dividend#5 ← phi( divr16u::@2/(word) divr16u::dividend#0 divr16u::@5/(word) divr16u::dividend#7 ) (word) divr16u::rem#10 ← phi( divr16u::@2/(word) divr16u::rem#5 divr16u::@5/(word) divr16u::rem#2 ) (byte) divr16u::i#2 ← phi( divr16u::@2/(byte) divr16u::i#3 divr16u::@5/(byte) divr16u::i#4 ) - (byte) divr16u::i#1 ← (byte) divr16u::i#2 + rangenext(0,15) - (bool~) divr16u::$11 ← (byte) divr16u::i#1 != rangelast(0,15) + (byte) divr16u::i#1 ← (byte) divr16u::i#2 + rangenext(0,$f) + (bool~) divr16u::$11 ← (byte) divr16u::i#1 != rangelast(0,$f) if((bool~) divr16u::$11) goto divr16u::@1 to:divr16u::@6 divr16u::@5: scope:[divr16u] from divr16u::@2 @@ -297,14 +297,14 @@ divr16s::@return: scope:[divr16s] from divr16s::@11 divr16s::@5 @12: scope:[] from @10 (signed word) rem16s#31 ← phi( @10/(signed word) rem16s#0 ) (word) rem16u#40 ← phi( @10/(word) rem16u#43 ) - (byte*) BITMAP#0 ← ((byte*)) (word/dword/signed dword) 40960 - (byte*) SCREEN#0 ← ((byte*)) (word/dword/signed dword) 34816 + (byte*) BITMAP#0 ← ((byte*)) (word/dword/signed dword) $a000 + (byte*) SCREEN#0 ← ((byte*)) (word/dword/signed dword) $8800 (byte) SIZE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) DELAY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (word[4]) x_start#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 20, (byte/signed byte/word/signed word/dword/signed dword) 30, (byte/signed byte/word/signed word/dword/signed dword) 30 } - (byte[4]) y_start#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 20 } - (word[4]) x_end#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 20, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 20, (byte/signed byte/word/signed word/dword/signed dword) 20 } - (byte[4]) y_end#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 20, (byte/signed byte/word/signed word/dword/signed dword) 20, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 20 } + (word[4]) x_start#0 ← { (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $14, (byte/signed byte/word/signed word/dword/signed dword) $1e, (byte/signed byte/word/signed word/dword/signed dword) $1e } + (byte[4]) y_start#0 ← { (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $14 } + (word[4]) x_end#0 ← { (byte/signed byte/word/signed word/dword/signed dword) $14, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $14, (byte/signed byte/word/signed word/dword/signed dword) $14 } + (byte[4]) y_end#0 ← { (byte/signed byte/word/signed word/dword/signed dword) $14, (byte/signed byte/word/signed word/dword/signed dword) $14, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $14 } (word[4]) x_cur#0 ← { fill( 4, 0) } (word[4]) y_cur#0 ← { fill( 4, 0) } (signed byte[4]) x_add#0 ← { fill( 4, 0) } @@ -380,13 +380,13 @@ main::toD0181: scope:[main] from main::@15 (byte*) main::toD0181_gfx#1 ← phi( main::@15/(byte*) main::toD0181_gfx#0 ) (byte*) main::toD0181_screen#1 ← phi( main::@15/(byte*) main::toD0181_screen#0 ) (word) main::toD0181_$0#0 ← ((word)) (byte*) main::toD0181_screen#1 - (word) main::toD0181_$1#0 ← (word) main::toD0181_$0#0 & (word/signed word/dword/signed dword) 16383 + (word) main::toD0181_$1#0 ← (word) main::toD0181_$0#0 & (word/signed word/dword/signed dword) $3fff (word) main::toD0181_$2#0 ← (word) main::toD0181_$1#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) main::toD0181_$3#0 ← > (word) main::toD0181_$2#0 (word) main::toD0181_$4#0 ← ((word)) (byte*) main::toD0181_gfx#1 (byte) main::toD0181_$5#0 ← > (word) main::toD0181_$4#0 (byte) main::toD0181_$6#0 ← (byte) main::toD0181_$5#0 >> (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte) main::toD0181_$7#0 ← (byte) main::toD0181_$6#0 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) main::toD0181_$7#0 ← (byte) main::toD0181_$6#0 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte) main::toD0181_$8#0 ← (byte) main::toD0181_$3#0 | (byte) main::toD0181_$7#0 (byte) main::toD0181_return#0 ← (byte) main::toD0181_$8#0 to:main::toD0181_@return @@ -420,7 +420,7 @@ main::@18: scope:[main] from main::@17 (word) rem16u#36 ← phi( main::@17/(word) rem16u#44 ) (byte*) SCREEN#3 ← phi( main::@17/(byte*) SCREEN#6 ) (byte*) screen_fill::screen#0 ← (byte*) SCREEN#3 - (byte) screen_fill::ch#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) screen_fill::ch#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 call screen_fill to:main::@19 main::@19: scope:[main] from main::@18 @@ -466,7 +466,7 @@ main::@3: scope:[main] from main::@2 main::@5: scope:[main] from main::@3 main::@6 (signed word) rem16s#28 ← phi( main::@3/(signed word) rem16s#33 main::@6/(signed word) rem16s#34 ) (word) rem16u#37 ← phi( main::@3/(word) rem16u#45 main::@6/(word) rem16u#46 ) - (bool~) main::$12 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 255 + (bool~) main::$12 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) $ff if((bool~) main::$12) goto main::@6 to:main::@7 main::@6: scope:[main] from main::@5 @@ -641,7 +641,7 @@ point_init::@3: scope:[point_init] from point_init::@1 (signed word) point_init::y_diff#4 ← phi( point_init::@1/(signed word) point_init::y_diff#8 ) (signed word) point_init::x_diff#4 ← phi( point_init::@1/(signed word) point_init::x_diff#1 ) (byte) point_init::point_idx#3 ← phi( point_init::@1/(byte) point_init::point_idx#7 ) - (signed byte/signed word/signed dword~) point_init::$11 ← - (byte/signed byte/word/signed word/dword/signed dword) 16 + (signed byte/signed word/signed dword~) point_init::$11 ← - (byte/signed byte/word/signed word/dword/signed dword) $10 *((signed byte[4]) x_add#0 + (byte) point_init::point_idx#3) ← (signed byte/signed word/signed dword~) point_init::$11 to:point_init::@4 point_init::@7: scope:[point_init] from point_init::@1 @@ -651,7 +651,7 @@ point_init::@7: scope:[point_init] from point_init::@1 (signed word) point_init::y_diff#5 ← phi( point_init::@1/(signed word) point_init::y_diff#8 ) (signed word) point_init::x_diff#5 ← phi( point_init::@1/(signed word) point_init::x_diff#1 ) (byte) point_init::point_idx#4 ← phi( point_init::@1/(byte) point_init::point_idx#7 ) - *((signed byte[4]) x_add#0 + (byte) point_init::point_idx#4) ← (byte/signed byte/word/signed word/dword/signed dword) 16 + *((signed byte[4]) x_add#0 + (byte) point_init::point_idx#4) ← (byte/signed byte/word/signed word/dword/signed dword) $10 to:point_init::@4 point_init::@4: scope:[point_init] from point_init::@3 point_init::@7 (byte) point_init::point_idx#9 ← phi( point_init::@3/(byte) point_init::point_idx#3 point_init::@7/(byte) point_init::point_idx#4 ) @@ -706,16 +706,16 @@ screen_fill::@2: scope:[screen_fill] from screen_fill::@1 screen_fill::@2 (byte) screen_fill::ch#1 ← phi( screen_fill::@1/(byte) screen_fill::ch#2 screen_fill::@2/(byte) screen_fill::ch#1 ) *((byte*) screen_fill::screen#2) ← (byte) screen_fill::ch#1 (byte*) screen_fill::screen#1 ← ++ (byte*) screen_fill::screen#2 - (byte) screen_fill::x#1 ← (byte) screen_fill::x#2 + rangenext(0,39) - (bool~) screen_fill::$0 ← (byte) screen_fill::x#1 != rangelast(0,39) + (byte) screen_fill::x#1 ← (byte) screen_fill::x#2 + rangenext(0,$27) + (bool~) screen_fill::$0 ← (byte) screen_fill::x#1 != rangelast(0,$27) if((bool~) screen_fill::$0) goto screen_fill::@2 to:screen_fill::@3 screen_fill::@3: scope:[screen_fill] from screen_fill::@2 (byte*) screen_fill::screen#5 ← phi( screen_fill::@2/(byte*) screen_fill::screen#1 ) (byte) screen_fill::ch#4 ← phi( screen_fill::@2/(byte) screen_fill::ch#1 ) (byte) screen_fill::y#2 ← phi( screen_fill::@2/(byte) screen_fill::y#3 ) - (byte) screen_fill::y#1 ← (byte) screen_fill::y#2 + rangenext(0,24) - (bool~) screen_fill::$1 ← (byte) screen_fill::y#1 != rangelast(0,24) + (byte) screen_fill::y#1 ← (byte) screen_fill::y#2 + rangenext(0,$18) + (bool~) screen_fill::$1 ← (byte) screen_fill::y#1 != rangelast(0,$18) if((bool~) screen_fill::$1) goto screen_fill::@1 to:screen_fill::@return screen_fill::@return: scope:[screen_fill] from screen_fill::@3 @@ -726,20 +726,20 @@ screen_fill::@return: scope:[screen_fill] from screen_fill::@3 (signed word) rem16s#26 ← phi( @12/(signed word) rem16s#31 ) (word) rem16u#34 ← phi( @12/(word) rem16u#40 ) (byte*) SCREEN#9 ← phi( @12/(byte*) SCREEN#0 ) - (byte[256]) bitmap_plot_ylo#0 ← { fill( 256, 0) } - (byte[256]) bitmap_plot_yhi#0 ← { fill( 256, 0) } - (byte[256]) bitmap_plot_bit#0 ← { fill( 256, 0) } + (byte[$100]) bitmap_plot_ylo#0 ← { fill( $100, 0) } + (byte[$100]) bitmap_plot_yhi#0 ← { fill( $100, 0) } + (byte[$100]) bitmap_plot_bit#0 ← { fill( $100, 0) } to:@19 bitmap_init: scope:[bitmap_init] from main::@16 (byte*) bitmap_init::bitmap#5 ← phi( main::@16/(byte*) bitmap_init::bitmap#0 ) - (byte) bitmap_init::bits#0 ← (byte/word/signed word/dword/signed dword) 128 + (byte) bitmap_init::bits#0 ← (byte/word/signed word/dword/signed dword) $80 (byte) bitmap_init::x#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:bitmap_init::@1 bitmap_init::@1: scope:[bitmap_init] from bitmap_init bitmap_init::@2 (byte*) bitmap_init::bitmap#3 ← phi( bitmap_init/(byte*) bitmap_init::bitmap#5 bitmap_init::@2/(byte*) bitmap_init::bitmap#2 ) (byte) bitmap_init::x#2 ← phi( bitmap_init/(byte) bitmap_init::x#0 bitmap_init::@2/(byte) bitmap_init::x#1 ) (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte) bitmap_init::bits#0 bitmap_init::@2/(byte) bitmap_init::bits#4 ) - *((byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 + *((byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 (bool~) bitmap_init::$0 ← (byte) bitmap_init::bits#1 == (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) bitmap_init::$1 ← ! (bool~) bitmap_init::$0 @@ -749,14 +749,14 @@ bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@5 (byte*) bitmap_init::bitmap#2 ← phi( bitmap_init::@1/(byte*) bitmap_init::bitmap#3 bitmap_init::@5/(byte*) bitmap_init::bitmap#4 ) (byte) bitmap_init::bits#4 ← phi( bitmap_init::@1/(byte) bitmap_init::bits#1 bitmap_init::@5/(byte) bitmap_init::bits#2 ) (byte) bitmap_init::x#3 ← phi( bitmap_init::@1/(byte) bitmap_init::x#2 bitmap_init::@5/(byte) bitmap_init::x#4 ) - (byte) bitmap_init::x#1 ← (byte) bitmap_init::x#3 + rangenext(0,255) - (bool~) bitmap_init::$2 ← (byte) bitmap_init::x#1 != rangelast(0,255) + (byte) bitmap_init::x#1 ← (byte) bitmap_init::x#3 + rangenext(0,$ff) + (bool~) bitmap_init::$2 ← (byte) bitmap_init::x#1 != rangelast(0,$ff) if((bool~) bitmap_init::$2) goto bitmap_init::@1 to:bitmap_init::@6 bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@1 (byte*) bitmap_init::bitmap#4 ← phi( bitmap_init::@1/(byte*) bitmap_init::bitmap#3 ) (byte) bitmap_init::x#4 ← phi( bitmap_init::@1/(byte) bitmap_init::x#2 ) - (byte) bitmap_init::bits#2 ← (byte/word/signed word/dword/signed dword) 128 + (byte) bitmap_init::bits#2 ← (byte/word/signed word/dword/signed dword) $80 to:bitmap_init::@2 bitmap_init::@6: scope:[bitmap_init] from bitmap_init::@2 (byte*) bitmap_init::bitmap#1 ← phi( bitmap_init::@2/(byte*) bitmap_init::bitmap#2 ) @@ -769,9 +769,9 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@4 bitmap_init::@6 (byte~) bitmap_init::$3 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 (byte~) bitmap_init::$4 ← < (byte*) bitmap_init::yoffs#2 (byte~) bitmap_init::$5 ← (byte~) bitmap_init::$3 | (byte~) bitmap_init::$4 - *((byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5 + *((byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5 (byte~) bitmap_init::$6 ← > (byte*) bitmap_init::yoffs#2 - *((byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6 + *((byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6 (byte~) bitmap_init::$7 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 (bool~) bitmap_init::$8 ← (byte~) bitmap_init::$7 == (byte/signed byte/word/signed word/dword/signed dword) 7 (bool~) bitmap_init::$9 ← ! (bool~) bitmap_init::$8 @@ -780,14 +780,14 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@4 bitmap_init::@6 bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@7 (byte*) bitmap_init::yoffs#4 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 bitmap_init::@7/(byte*) bitmap_init::yoffs#1 ) (byte) bitmap_init::y#3 ← phi( bitmap_init::@3/(byte) bitmap_init::y#2 bitmap_init::@7/(byte) bitmap_init::y#4 ) - (byte) bitmap_init::y#1 ← (byte) bitmap_init::y#3 + rangenext(0,255) - (bool~) bitmap_init::$12 ← (byte) bitmap_init::y#1 != rangelast(0,255) + (byte) bitmap_init::y#1 ← (byte) bitmap_init::y#3 + rangenext(0,$ff) + (bool~) bitmap_init::$12 ← (byte) bitmap_init::y#1 != rangelast(0,$ff) if((bool~) bitmap_init::$12) goto bitmap_init::@3 to:bitmap_init::@return bitmap_init::@7: scope:[bitmap_init] from bitmap_init::@3 (byte) bitmap_init::y#4 ← phi( bitmap_init::@3/(byte) bitmap_init::y#2 ) (byte*) bitmap_init::yoffs#3 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 ) - (word/signed word/dword/signed dword~) bitmap_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 8 + (word/signed word/dword/signed dword~) bitmap_init::$10 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 8 (byte*~) bitmap_init::$11 ← (byte*) bitmap_init::yoffs#3 + (word/signed word/dword/signed dword~) bitmap_init::$10 (byte*) bitmap_init::yoffs#1 ← (byte*~) bitmap_init::$11 to:bitmap_init::@4 @@ -795,7 +795,7 @@ bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4 return to:@return bitmap_clear: scope:[bitmap_clear] from main::@17 - (byte*~) bitmap_clear::$0 ← ((byte*)) { *((byte[256]) bitmap_plot_yhi#0 + (byte/signed byte/word/signed word/dword/signed dword) 0), *((byte[256]) bitmap_plot_ylo#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) } + (byte*~) bitmap_clear::$0 ← ((byte*)) { *((byte[$100]) bitmap_plot_yhi#0 + (byte/signed byte/word/signed word/dword/signed dword) 0), *((byte[$100]) bitmap_plot_ylo#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) } (byte*) bitmap_clear::bitmap#0 ← (byte*~) bitmap_clear::$0 (byte) bitmap_clear::y#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:bitmap_clear::@1 @@ -810,15 +810,15 @@ bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1 bitmap_clear::@2 (byte*) bitmap_clear::bitmap#2 ← phi( bitmap_clear::@1/(byte*) bitmap_clear::bitmap#3 bitmap_clear::@2/(byte*) bitmap_clear::bitmap#1 ) *((byte*) bitmap_clear::bitmap#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) bitmap_clear::bitmap#1 ← ++ (byte*) bitmap_clear::bitmap#2 - (byte) bitmap_clear::x#1 ← (byte) bitmap_clear::x#2 + rangenext(0,199) - (bool~) bitmap_clear::$1 ← (byte) bitmap_clear::x#1 != rangelast(0,199) + (byte) bitmap_clear::x#1 ← (byte) bitmap_clear::x#2 + rangenext(0,$c7) + (bool~) bitmap_clear::$1 ← (byte) bitmap_clear::x#1 != rangelast(0,$c7) if((bool~) bitmap_clear::$1) goto bitmap_clear::@2 to:bitmap_clear::@3 bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2 (byte*) bitmap_clear::bitmap#4 ← phi( bitmap_clear::@2/(byte*) bitmap_clear::bitmap#1 ) (byte) bitmap_clear::y#2 ← phi( bitmap_clear::@2/(byte) bitmap_clear::y#3 ) - (byte) bitmap_clear::y#1 ← (byte) bitmap_clear::y#2 + rangenext(0,39) - (bool~) bitmap_clear::$2 ← (byte) bitmap_clear::y#1 != rangelast(0,39) + (byte) bitmap_clear::y#1 ← (byte) bitmap_clear::y#2 + rangenext(0,$27) + (bool~) bitmap_clear::$2 ← (byte) bitmap_clear::y#1 != rangelast(0,$27) if((bool~) bitmap_clear::$2) goto bitmap_clear::@1 to:bitmap_clear::@return bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3 @@ -827,12 +827,12 @@ bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3 bitmap_plot: scope:[bitmap_plot] from main::@20 (word) bitmap_plot::x#1 ← phi( main::@20/(word) bitmap_plot::x#0 ) (byte) bitmap_plot::y#1 ← phi( main::@20/(byte) bitmap_plot::y#0 ) - (byte*~) bitmap_plot::$0 ← ((byte*)) { *((byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#1), *((byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#1) } + (byte*~) bitmap_plot::$0 ← ((byte*)) { *((byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#1), *((byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#1) } (byte*) bitmap_plot::plotter#0 ← (byte*~) bitmap_plot::$0 - (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#1 & (word/dword/signed dword) 65528 + (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#1 & (word/dword/signed dword) $fff8 (byte*) bitmap_plot::plotter#1 ← (byte*) bitmap_plot::plotter#0 + (word~) bitmap_plot::$1 (byte~) bitmap_plot::$2 ← < (word) bitmap_plot::x#1 - *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((byte[256]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) + *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((byte[$100]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) to:bitmap_plot::@return bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot return @@ -1144,12 +1144,12 @@ SYMBOL TABLE SSA (byte) bitmap_plot::y (byte) bitmap_plot::y#0 (byte) bitmap_plot::y#1 -(byte[256]) bitmap_plot_bit -(byte[256]) bitmap_plot_bit#0 -(byte[256]) bitmap_plot_yhi -(byte[256]) bitmap_plot_yhi#0 -(byte[256]) bitmap_plot_ylo -(byte[256]) bitmap_plot_ylo#0 +(byte[$100]) bitmap_plot_bit +(byte[$100]) bitmap_plot_bit#0 +(byte[$100]) bitmap_plot_yhi +(byte[$100]) bitmap_plot_yhi#0 +(byte[$100]) bitmap_plot_ylo +(byte[$100]) bitmap_plot_ylo#0 (byte[4]) delay (byte[4]) delay#0 (signed word()) divr16s((signed word) divr16s::dividend , (signed word) divr16s::divisor , (signed word) divr16s::rem) @@ -1906,89 +1906,89 @@ Redundant Phi (signed word) rem16s#14 (signed word) rem16s#11 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) divr16u::$4 [91] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 Simple Condition (bool~) divr16u::$9 [99] if((word) divr16u::rem#5<(word) divr16u::divisor#0) goto divr16u::@3 -Simple Condition (bool~) divr16u::$11 [106] if((byte) divr16u::i#1!=rangelast(0,15)) goto divr16u::@1 +Simple Condition (bool~) divr16u::$11 [106] if((byte) divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1 Simple Condition (bool~) divr16s::$9 [146] if((signed word) divr16s::divisor#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16s::@3 Simple Condition (bool~) divr16s::$15 [167] if((byte) divr16s::neg#4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16s::@5 Simple Condition (bool~) main::$11 [265] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@1 -Simple Condition (bool~) main::$12 [271] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@6 +Simple Condition (bool~) main::$12 [271] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@6 Simple Condition (bool) point_init::abs16s1_$0#0 [293] if((signed word) point_init::x_diff#1<(byte/signed byte/word/signed word/dword/signed dword) 0) goto point_init::abs16s1_@1 Simple Condition (bool) point_init::abs16s2_$0#0 [308] if((signed word) point_init::y_diff#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto point_init::abs16s2_@1 Simple Condition (bool~) point_init::$9 [321] if((word) point_init::abs16s1_return#2>(word) point_init::abs16s2_return#2) goto point_init::@1 Simple Condition (bool~) point_init::$10 [324] if((signed word) point_init::x_diff#1<(byte/signed byte/word/signed word/dword/signed dword) 0) goto point_init::@3 -Simple Condition (bool~) screen_fill::$0 [365] if((byte) screen_fill::x#1!=rangelast(0,39)) goto screen_fill::@2 -Simple Condition (bool~) screen_fill::$1 [369] if((byte) screen_fill::y#1!=rangelast(0,24)) goto screen_fill::@1 +Simple Condition (bool~) screen_fill::$0 [365] if((byte) screen_fill::x#1!=rangelast(0,$27)) goto screen_fill::@2 +Simple Condition (bool~) screen_fill::$1 [369] if((byte) screen_fill::y#1!=rangelast(0,$18)) goto screen_fill::@1 Simple Condition (bool~) bitmap_init::$1 [383] if((byte) bitmap_init::bits#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@2 -Simple Condition (bool~) bitmap_init::$2 [387] if((byte) bitmap_init::x#1!=rangelast(0,255)) goto bitmap_init::@1 +Simple Condition (bool~) bitmap_init::$2 [387] if((byte) bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 Simple Condition (bool~) bitmap_init::$9 [403] if((byte~) bitmap_init::$7!=(byte/signed byte/word/signed word/dword/signed dword) 7) goto bitmap_init::@4 -Simple Condition (bool~) bitmap_init::$12 [407] if((byte) bitmap_init::y#1!=rangelast(0,255)) goto bitmap_init::@3 -Simple Condition (bool~) bitmap_clear::$1 [423] if((byte) bitmap_clear::x#1!=rangelast(0,199)) goto bitmap_clear::@2 -Simple Condition (bool~) bitmap_clear::$2 [427] if((byte) bitmap_clear::y#1!=rangelast(0,39)) goto bitmap_clear::@1 +Simple Condition (bool~) bitmap_init::$12 [407] if((byte) bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@3 +Simple Condition (bool~) bitmap_clear::$1 [423] if((byte) bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2 +Simple Condition (bool~) bitmap_clear::$2 [427] if((byte) bitmap_clear::y#1!=rangelast(0,$27)) goto bitmap_clear::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Rewriting || if()-condition to two if()s [128] (bool~) divr16s::$2 ← (bool~) divr16s::$0 || (bool~) divr16s::$1 Successful SSA optimization Pass2ConditionalAndOrRewriting Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -1999,12 +1999,12 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f Constant (const byte) rem8u#0 = 0 Constant (const word) rem16u#0 = 0 Constant (const word) divr16u::quotient#0 = 0 @@ -2016,34 +2016,34 @@ Constant (const word) divr16s::dividendu#0 = 0 Constant (const word) divr16s::remu#0 = 0 Constant (const byte) divr16s::neg#1 = 1 Constant (const word) divr16s::divisoru#0 = 0 -Constant (const byte*) BITMAP#0 = ((byte*))40960 -Constant (const byte*) SCREEN#0 = ((byte*))34816 +Constant (const byte*) BITMAP#0 = ((byte*))$a000 +Constant (const byte*) SCREEN#0 = ((byte*))$8800 Constant (const byte) SIZE#0 = 4 Constant (const byte) DELAY#0 = 8 -Constant (const word[4]) x_start#0 = { 10, 20, 30, 30 } -Constant (const byte[4]) y_start#0 = { 10, 10, 10, 20 } -Constant (const word[4]) x_end#0 = { 20, 10, 20, 20 } -Constant (const byte[4]) y_end#0 = { 20, 20, 10, 20 } +Constant (const word[4]) x_start#0 = { $a, $14, $1e, $1e } +Constant (const byte[4]) y_start#0 = { $a, $a, $a, $14 } +Constant (const word[4]) x_end#0 = { $14, $a, $14, $14 } +Constant (const byte[4]) y_end#0 = { $14, $14, $a, $14 } Constant (const word[4]) x_cur#0 = { fill( 4, 0) } Constant (const word[4]) y_cur#0 = { fill( 4, 0) } Constant (const signed byte[4]) x_add#0 = { fill( 4, 0) } Constant (const signed byte[4]) y_add#0 = { fill( 4, 0) } Constant (const byte[4]) delay#0 = { fill( 4, 0) } Constant (const byte[4]) frame#0 = { fill( 4, 0) } -Constant (const byte) screen_fill::ch#0 = 16 +Constant (const byte) screen_fill::ch#0 = $10 Constant (const byte) main::i#0 = 0 -Constant (const signed byte/signed word/signed dword) point_init::$11 = -16 +Constant (const signed byte/signed word/signed dword) point_init::$11 = -$10 Constant (const signed word) divr16s::dividend#0 = 0 Constant (const byte) screen_fill::y#0 = 0 Constant (const byte) screen_fill::x#0 = 0 -Constant (const byte[256]) bitmap_plot_ylo#0 = { fill( 256, 0) } -Constant (const byte[256]) bitmap_plot_yhi#0 = { fill( 256, 0) } -Constant (const byte[256]) bitmap_plot_bit#0 = { fill( 256, 0) } -Constant (const byte) bitmap_init::bits#0 = 128 +Constant (const byte[$100]) bitmap_plot_ylo#0 = { fill( $100, 0) } +Constant (const byte[$100]) bitmap_plot_yhi#0 = { fill( $100, 0) } +Constant (const byte[$100]) bitmap_plot_bit#0 = { fill( $100, 0) } +Constant (const byte) bitmap_init::bits#0 = $80 Constant (const byte) bitmap_init::x#0 = 0 -Constant (const byte) bitmap_init::bits#2 = 128 +Constant (const byte) bitmap_init::bits#2 = $80 Constant (const byte) bitmap_init::y#0 = 0 -Constant (const word/signed word/dword/signed dword) bitmap_init::$10 = 40*8 +Constant (const word/signed word/dword/signed dword) bitmap_init::$10 = $28*8 Constant (const byte) bitmap_clear::y#0 = 0 Constant (const byte) bitmap_clear::x#0 = 0 Successful SSA optimization Pass2ConstantIdentification @@ -2065,7 +2065,7 @@ Constant (const word) main::toD0181_$4#0 = ((word))main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantIdentification Constant (const byte/word/dword) main::$2 = main::$1|3 Constant (const byte) main::vicSelectGfxBank1_toDd001_$1#0 = >main::vicSelectGfxBank1_toDd001_$0#0 -Constant (const word) main::toD0181_$1#0 = main::toD0181_$0#0&16383 +Constant (const word) main::toD0181_$1#0 = main::toD0181_$0#0&$3fff Constant (const byte) main::toD0181_$5#0 = >main::toD0181_$4#0 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::vicSelectGfxBank1_toDd001_$2#0 = main::vicSelectGfxBank1_toDd001_$1#0>>6 @@ -2074,7 +2074,7 @@ Constant (const byte) main::toD0181_$6#0 = main::toD0181_$5#0>>2 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::vicSelectGfxBank1_toDd001_return#0 = 3^main::vicSelectGfxBank1_toDd001_$2#0 Constant (const byte) main::toD0181_$3#0 = >main::toD0181_$2#0 -Constant (const byte) main::toD0181_$7#0 = main::toD0181_$6#0&15 +Constant (const byte) main::toD0181_$7#0 = main::toD0181_$6#0&$f Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::toD0181_return#0 = main::toD0181_$3#0|main::toD0181_$7#0 Successful SSA optimization Pass2ConstantIdentification @@ -2106,19 +2106,19 @@ Successful SSA optimization Pass2NopCastElimination Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks Resolved ranged next value divr16u::i#1 ← ++ divr16u::i#2 to ++ -Resolved ranged comparison value if(divr16u::i#1!=rangelast(0,15)) goto divr16u::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value screen_fill::x#1 ← ++ screen_fill::x#2 to ++ -Resolved ranged comparison value if(screen_fill::x#1!=rangelast(0,39)) goto screen_fill::@2 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(screen_fill::x#1!=rangelast(0,$27)) goto screen_fill::@2 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value screen_fill::y#1 ← ++ screen_fill::y#4 to ++ -Resolved ranged comparison value if(screen_fill::y#1!=rangelast(0,24)) goto screen_fill::@1 to (byte/signed byte/word/signed word/dword/signed dword) 25 +Resolved ranged comparison value if(screen_fill::y#1!=rangelast(0,$18)) goto screen_fill::@1 to (byte/signed byte/word/signed word/dword/signed dword) $19 Resolved ranged next value bitmap_init::x#1 ← ++ bitmap_init::x#2 to ++ -Resolved ranged comparison value if(bitmap_init::x#1!=rangelast(0,255)) goto bitmap_init::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 Resolved ranged next value bitmap_init::y#1 ← ++ bitmap_init::y#2 to ++ -Resolved ranged comparison value if(bitmap_init::y#1!=rangelast(0,255)) goto bitmap_init::@3 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@3 to (byte/signed byte/word/signed word/dword/signed dword) 0 Resolved ranged next value bitmap_clear::x#1 ← ++ bitmap_clear::x#2 to ++ -Resolved ranged comparison value if(bitmap_clear::x#1!=rangelast(0,199)) goto bitmap_clear::@2 to (byte/word/signed word/dword/signed dword) 200 +Resolved ranged comparison value if(bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2 to (byte/word/signed word/dword/signed dword) $c8 Resolved ranged next value bitmap_clear::y#1 ← ++ bitmap_clear::y#4 to ++ -Resolved ranged comparison value if(bitmap_clear::y#1!=rangelast(0,39)) goto bitmap_clear::@1 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(bitmap_clear::y#1!=rangelast(0,$27)) goto bitmap_clear::@1 to (byte/signed byte/word/signed word/dword/signed dword) $28 Culled Empty Block (label) @4 Culled Empty Block (label) @6 Culled Empty Block (label) @9 @@ -2174,14 +2174,14 @@ Constant inlined main::toD0181_gfx#0 = (const byte*) BITMAP#0 Constant inlined divr16u::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined divr16s::dividendu#1 = ((word))-(const signed word) divr16s::dividend#0 Constant inlined divr16s::dividendu#2 = ((word))(const signed word) divr16s::dividend#0 -Constant inlined bitmap_init::bits#0 = (byte/word/signed word/dword/signed dword) 128 -Constant inlined bitmap_init::bits#2 = (byte/word/signed word/dword/signed dword) 128 +Constant inlined bitmap_init::bits#0 = (byte/word/signed word/dword/signed dword) $80 +Constant inlined bitmap_init::bits#2 = (byte/word/signed word/dword/signed dword) $80 Constant inlined divr16s::neg#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined divr16s::neg#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined divr16u::quotient#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined point_init::$11 = -(byte/signed byte/word/signed word/dword/signed dword) 16 +Constant inlined point_init::$11 = -(byte/signed byte/word/signed word/dword/signed dword) $10 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined bitmap_init::$10 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 +Constant inlined bitmap_init::$10 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 Constant inlined main::vicSelectGfxBank1_toDd001_$2#0 = >((word))(const byte*) SCREEN#0>>(byte/signed byte/word/signed word/dword/signed dword) 6 Constant inlined screen_fill::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::vicSelectGfxBank1_toDd001_$1#0 = >((word))(const byte*) SCREEN#0 @@ -2190,16 +2190,16 @@ Constant inlined bitmap_clear::x#0 = (byte/signed byte/word/signed word/dword/si Constant inlined bitmap_clear::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined rem16s#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::toD0181_$0#0 = ((word))(const byte*) SCREEN#0 -Constant inlined main::toD0181_$1#0 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383 +Constant inlined main::toD0181_$1#0 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff Constant inlined rem16u#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::toD0181_$6#0 = >((word))(const byte*) BITMAP#0>>(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined main::toD0181_$7#0 = >((word))(const byte*) BITMAP#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 +Constant inlined main::toD0181_$7#0 = >((word))(const byte*) BITMAP#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) $f Constant inlined screen_fill::screen#0 = (const byte*) SCREEN#0 Constant inlined divr16s::$5 = -(const signed word) divr16s::dividend#0 Constant inlined main::$1 = (const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0 -Constant inlined main::toD0181_$2#0 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined main::toD0181_$2#0 = ((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined main::$2 = (const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 -Constant inlined main::toD0181_$3#0 = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined main::toD0181_$3#0 = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined main::toD0181_$4#0 = ((word))(const byte*) BITMAP#0 Constant inlined main::$0 = (const byte) VIC_BMM#0|(const byte) VIC_DEN#0 Constant inlined main::toD0181_$5#0 = >((word))(const byte*) BITMAP#0 @@ -2376,17 +2376,17 @@ main::@21: scope:[main] from main::@20 [26] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@1 to:main::@5 main::@5: scope:[main] from main::@21 main::@5 main::@7 - [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 + [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@5 to:main::@7 main::@7: scope:[main] from main::@5 [28] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) to:main::@5 bitmap_plot: scope:[bitmap_plot] from main::@20 - [29] (word~) bitmap_plot::$3 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#0) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#0) - [30] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#0 & (word/dword/signed dword) 65528 + [29] (word~) bitmap_plot::$3 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#0) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#0) + [30] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#0 & (word/dword/signed dword) $fff8 [31] (byte*) bitmap_plot::plotter#1 ← (byte*)(word~) bitmap_plot::$3 + (word~) bitmap_plot::$1 [32] (byte~) bitmap_plot::$2 ← < (word) bitmap_plot::x#0 - [33] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[256]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) + [33] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[$100]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) to:bitmap_plot::@return bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot [34] return @@ -2436,7 +2436,7 @@ point_init::@1: scope:[point_init] from point_init::@10 [55] if((signed word) point_init::x_diff#1<(byte/signed byte/word/signed word/dword/signed dword) 0) goto point_init::@3 to:point_init::@7 point_init::@7: scope:[point_init] from point_init::@1 - [56] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← (byte/signed byte/word/signed word/dword/signed dword) 16 + [56] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← (byte/signed byte/word/signed word/dword/signed dword) $10 to:point_init::@4 point_init::@4: scope:[point_init] from point_init::@3 point_init::@7 [57] (signed word) divr16s::divisor#0 ← (signed word) point_init::x_diff#1 @@ -2451,7 +2451,7 @@ point_init::@11: scope:[point_init] from point_init::@4 [64] *((const signed byte[4]) y_add#0 + (byte) point_init::point_idx1#0) ← (signed byte)(byte~) point_init::$14 to:point_init::@2 point_init::@3: scope:[point_init] from point_init::@1 - [65] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← -(byte/signed byte/word/signed word/dword/signed dword) 16 + [65] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← -(byte/signed byte/word/signed word/dword/signed dword) $10 to:point_init::@4 point_init::abs16s2_@1: scope:[point_init] from point_init::abs16s2 [66] (signed word) point_init::abs16s2_$2#0 ← - (signed word) point_init::y_diff#0 @@ -2524,7 +2524,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 [96] (word) divr16u::rem#4 ← phi( divr16u/(word) divr16u::rem#3 divr16u::@3/(word) divr16u::rem#10 ) [97] (word) divr16u::rem#0 ← (word) divr16u::rem#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [98] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 - [99] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + [99] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [100] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 to:divr16u::@4 divr16u::@4: scope:[divr16u] from divr16u::@1 @@ -2544,7 +2544,7 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 [108] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [108] (word) divr16u::rem#10 ← phi( divr16u::@2/(word) divr16u::rem#5 divr16u::@5/(word) divr16u::rem#2 ) [109] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 - [110] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 + [110] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 to:divr16u::@return divr16u::@return: scope:[divr16u] from divr16u::@3 [111] return @@ -2562,17 +2562,17 @@ screen_fill::@2: scope:[screen_fill] from screen_fill::@1 screen_fill::@2 [115] *((byte*) screen_fill::screen#2) ← (const byte) screen_fill::ch#0 [116] (byte*) screen_fill::screen#1 ← ++ (byte*) screen_fill::screen#2 [117] (byte) screen_fill::x#1 ← ++ (byte) screen_fill::x#2 - [118] if((byte) screen_fill::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto screen_fill::@2 + [118] if((byte) screen_fill::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto screen_fill::@2 to:screen_fill::@3 screen_fill::@3: scope:[screen_fill] from screen_fill::@2 [119] (byte) screen_fill::y#1 ← ++ (byte) screen_fill::y#4 - [120] if((byte) screen_fill::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto screen_fill::@1 + [120] if((byte) screen_fill::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto screen_fill::@1 to:screen_fill::@return screen_fill::@return: scope:[screen_fill] from screen_fill::@3 [121] return to:@return bitmap_clear: scope:[bitmap_clear] from main::@17 - [122] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_yhi#0) w= *((const byte[256]) bitmap_plot_ylo#0) + [122] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_yhi#0) w= *((const byte[$100]) bitmap_plot_ylo#0) [123] (byte*~) bitmap_clear::bitmap#5 ← (byte*)(word~) bitmap_clear::$3 to:bitmap_clear::@1 bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear bitmap_clear::@3 @@ -2585,11 +2585,11 @@ bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1 bitmap_clear::@2 [126] *((byte*) bitmap_clear::bitmap#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [127] (byte*) bitmap_clear::bitmap#1 ← ++ (byte*) bitmap_clear::bitmap#2 [128] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 - [129] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) 200) goto bitmap_clear::@2 + [129] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) $c8) goto bitmap_clear::@2 to:bitmap_clear::@3 bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2 [130] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 - [131] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto bitmap_clear::@1 + [131] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto bitmap_clear::@1 to:bitmap_clear::@return bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3 [132] return @@ -2599,13 +2599,13 @@ bitmap_init: scope:[bitmap_init] from main::@16 to:bitmap_init::@1 bitmap_init::@1: scope:[bitmap_init] from bitmap_init bitmap_init::@2 [134] (byte) bitmap_init::x#2 ← phi( bitmap_init/(byte/signed byte/word/signed word/dword/signed dword) 0 bitmap_init::@2/(byte) bitmap_init::x#1 ) - [134] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte/word/signed word/dword/signed dword) 128 bitmap_init::@2/(byte) bitmap_init::bits#4 ) - [135] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 + [134] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte/word/signed word/dword/signed dword) $80 bitmap_init::@2/(byte) bitmap_init::bits#4 ) + [135] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [136] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [137] if((byte) bitmap_init::bits#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@10 to:bitmap_init::@2 bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@10 - [138] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@10/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte/word/signed word/dword/signed dword) 128 ) + [138] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@10/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte/word/signed word/dword/signed dword) $80 ) [139] (byte) bitmap_init::x#1 ← ++ (byte) bitmap_init::x#2 [140] if((byte) bitmap_init::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@1 to:bitmap_init::@3 @@ -2615,14 +2615,14 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4 [142] (byte~) bitmap_init::$3 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [143] (byte~) bitmap_init::$4 ← < (byte*) bitmap_init::yoffs#2 [144] (byte~) bitmap_init::$5 ← (byte~) bitmap_init::$3 | (byte~) bitmap_init::$4 - [145] *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5 + [145] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5 [146] (byte~) bitmap_init::$6 ← > (byte*) bitmap_init::yoffs#2 - [147] *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6 + [147] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6 [148] (byte~) bitmap_init::$7 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [149] if((byte~) bitmap_init::$7!=(byte/signed byte/word/signed word/dword/signed dword) 7) goto bitmap_init::@4 to:bitmap_init::@7 bitmap_init::@7: scope:[bitmap_init] from bitmap_init::@3 - [150] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 + [150] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 to:bitmap_init::@4 bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@7 [151] (byte*) bitmap_init::yoffs#4 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 bitmap_init::@7/(byte*) bitmap_init::yoffs#1 ) @@ -2765,9 +2765,9 @@ VARIABLE REGISTER WEIGHTS (word) bitmap_plot::x#0 3.0 (byte) bitmap_plot::y (byte) bitmap_plot::y#0 15.0 -(byte[256]) bitmap_plot_bit -(byte[256]) bitmap_plot_yhi -(byte[256]) bitmap_plot_ylo +(byte[$100]) bitmap_plot_bit +(byte[$100]) bitmap_plot_yhi +(byte[$100]) bitmap_plot_ylo (byte[4]) delay (signed word()) divr16s((signed word) divr16s::dividend , (signed word) divr16s::divisor , (signed word) divr16s::rem) (signed word~) divr16s::$11 1.0 @@ -3281,7 +3281,7 @@ main: { jmp b5 //SEG52 main::@5 b5: - //SEG53 [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG53 [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b5 @@ -3302,13 +3302,13 @@ bitmap_plot: { .label y = $2a .label plotter = $2f .label _3 = $2b - //SEG57 [29] (word~) bitmap_plot::$3 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#0) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#0) -- vwuz1=pbuc1_derefidx_vbuz2_word_pbuc2_derefidx_vbuz2 + //SEG57 [29] (word~) bitmap_plot::$3 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#0) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#0) -- vwuz1=pbuc1_derefidx_vbuz2_word_pbuc2_derefidx_vbuz2 ldy y lda bitmap_plot_yhi,y sta _3+1 lda bitmap_plot_ylo,y sta _3 - //SEG58 [30] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#0 & (word/dword/signed dword) 65528 -- vwuz1=vwuz2_band_vwuc1 + //SEG58 [30] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#0 & (word/dword/signed dword) $fff8 -- vwuz1=vwuz2_band_vwuc1 lda x and #<$fff8 sta _1 @@ -3326,7 +3326,7 @@ bitmap_plot: { //SEG60 [32] (byte~) bitmap_plot::$2 ← < (word) bitmap_plot::x#0 -- vbuz1=_lo_vwuz2 lda x sta _2 - //SEG61 [33] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[256]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2 + //SEG61 [33] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[$100]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuz2 ldy #0 lda (plotter),y ldy _2 @@ -3517,7 +3517,7 @@ point_init: { jmp b7 //SEG100 point_init::@7 b7: - //SEG101 [56] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← (byte/signed byte/word/signed word/dword/signed dword) 16 -- pbsc1_derefidx_vbuz1=vbuc2 + //SEG101 [56] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← (byte/signed byte/word/signed word/dword/signed dword) $10 -- pbsc1_derefidx_vbuz1=vbuc2 // x add = 1.0 ldy point_idx lda #$10 @@ -3569,7 +3569,7 @@ point_init: { jmp b2_from_b11 //SEG113 point_init::@3 b3: - //SEG114 [65] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← -(byte/signed byte/word/signed word/dword/signed dword) 16 -- pbsc1_derefidx_vbuz1=vbsc2 + //SEG114 [65] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← -(byte/signed byte/word/signed word/dword/signed dword) $10 -- pbsc1_derefidx_vbuz1=vbsc2 // x add = -1.0 ldy point_idx lda #-$10 @@ -3857,7 +3857,7 @@ divr16u: { //SEG182 [98] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 -- vbuz1=_hi_vwuz2 lda dividend+1 sta _1 - //SEG183 [99] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG183 [99] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuz1=vbuz2_band_vbuc1 lda #$80 and _1 sta _2 @@ -3920,7 +3920,7 @@ divr16u: { b3: //SEG200 [109] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG201 [110] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG201 [110] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b3 @@ -3981,7 +3981,7 @@ screen_fill: { !: //SEG221 [117] (byte) screen_fill::x#1 ← ++ (byte) screen_fill::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG222 [118] if((byte) screen_fill::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto screen_fill::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG222 [118] if((byte) screen_fill::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto screen_fill::@2 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #$28 bne b2_from_b2 @@ -3990,7 +3990,7 @@ screen_fill: { b3: //SEG224 [119] (byte) screen_fill::y#1 ← ++ (byte) screen_fill::y#4 -- vbuz1=_inc_vbuz1 inc y - //SEG225 [120] if((byte) screen_fill::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto screen_fill::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG225 [120] if((byte) screen_fill::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto screen_fill::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$19 bne b1_from_b3 @@ -4007,7 +4007,7 @@ bitmap_clear: { .label x = $20 .label y = $1d .label _3 = $5b - //SEG229 [122] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_yhi#0) w= *((const byte[256]) bitmap_plot_ylo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 + //SEG229 [122] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_yhi#0) w= *((const byte[$100]) bitmap_plot_ylo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 lda bitmap_plot_ylo sta _3 lda bitmap_plot_yhi @@ -4056,7 +4056,7 @@ bitmap_clear: { !: //SEG247 [128] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG248 [129] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) 200) goto bitmap_clear::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG248 [129] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) $c8) goto bitmap_clear::@2 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #$c8 bne b2_from_b2 @@ -4065,7 +4065,7 @@ bitmap_clear: { b3: //SEG250 [130] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 -- vbuz1=_inc_vbuz1 inc y - //SEG251 [131] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG251 [131] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$28 bne b1_from_b3 @@ -4091,7 +4091,7 @@ bitmap_init: { //SEG256 [134] phi (byte) bitmap_init::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:bitmap_init->bitmap_init::@1#0] -- vbuz1=vbuc1 lda #0 sta x - //SEG257 [134] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init->bitmap_init::@1#1] -- vbuz1=vbuc1 + //SEG257 [134] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init->bitmap_init::@1#1] -- vbuz1=vbuc1 lda #$80 sta bits jmp b1 @@ -4102,7 +4102,7 @@ bitmap_init: { jmp b1 //SEG261 bitmap_init::@1 b1: - //SEG262 [135] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG262 [135] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuz1=vbuz2 lda bits ldy x sta bitmap_plot_bit,y @@ -4114,7 +4114,7 @@ bitmap_init: { bne b10_from_b1 //SEG265 [138] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2] b2_from_b1: - //SEG266 [138] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuz1=vbuc1 + //SEG266 [138] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuz1=vbuc1 lda #$80 sta bits jmp b2 @@ -4155,14 +4155,14 @@ bitmap_init: { lda _3 ora _4 sta _5 - //SEG280 [145] *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG280 [145] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5 -- pbuc1_derefidx_vbuz1=vbuz2 lda _5 ldy y sta bitmap_plot_ylo,y //SEG281 [146] (byte~) bitmap_init::$6 ← > (byte*) bitmap_init::yoffs#2 -- vbuz1=_hi_pbuz2 lda yoffs+1 sta _6 - //SEG282 [147] *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG282 [147] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6 -- pbuc1_derefidx_vbuz1=vbuz2 lda _6 ldy y sta bitmap_plot_yhi,y @@ -4177,7 +4177,7 @@ bitmap_init: { jmp b7 //SEG285 bitmap_init::@7 b7: - //SEG286 [150] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 + //SEG286 [150] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 clc lda yoffs adc #<$28*8 @@ -4245,12 +4245,12 @@ Statement [21] (byte~) main::$9 ← (byte) main::i#2 >> (byte/signed byte/word/s Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Statement [22] (word) bitmap_plot::x#0 ← *((const word[4]) x_start#0 + (byte) main::i#2) [ main::i#2 rem16u#18 rem16s#13 main::$9 bitmap_plot::x#0 ] ( main:2 [ main::i#2 rem16u#18 rem16s#13 main::$9 bitmap_plot::x#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:39 [ main::$9 ] -Statement [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [29] (word~) bitmap_plot::$3 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#0) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#0) [ bitmap_plot::x#0 bitmap_plot::$3 ] ( main:2::bitmap_plot:24 [ main::i#2 rem16u#18 rem16s#13 bitmap_plot::x#0 bitmap_plot::$3 ] ) always clobbers reg byte a -Statement [30] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#0 & (word/dword/signed dword) 65528 [ bitmap_plot::x#0 bitmap_plot::$3 bitmap_plot::$1 ] ( main:2::bitmap_plot:24 [ main::i#2 rem16u#18 rem16s#13 bitmap_plot::x#0 bitmap_plot::$3 bitmap_plot::$1 ] ) always clobbers reg byte a +Statement [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@5 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [29] (word~) bitmap_plot::$3 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#0) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#0) [ bitmap_plot::x#0 bitmap_plot::$3 ] ( main:2::bitmap_plot:24 [ main::i#2 rem16u#18 rem16s#13 bitmap_plot::x#0 bitmap_plot::$3 ] ) always clobbers reg byte a +Statement [30] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#0 & (word/dword/signed dword) $fff8 [ bitmap_plot::x#0 bitmap_plot::$3 bitmap_plot::$1 ] ( main:2::bitmap_plot:24 [ main::i#2 rem16u#18 rem16s#13 bitmap_plot::x#0 bitmap_plot::$3 bitmap_plot::$1 ] ) always clobbers reg byte a Statement [31] (byte*) bitmap_plot::plotter#1 ← (byte*)(word~) bitmap_plot::$3 + (word~) bitmap_plot::$1 [ bitmap_plot::x#0 bitmap_plot::plotter#1 ] ( main:2::bitmap_plot:24 [ main::i#2 rem16u#18 rem16s#13 bitmap_plot::x#0 bitmap_plot::plotter#1 ] ) always clobbers reg byte a Statement [32] (byte~) bitmap_plot::$2 ← < (word) bitmap_plot::x#0 [ bitmap_plot::plotter#1 bitmap_plot::$2 ] ( main:2::bitmap_plot:24 [ main::i#2 rem16u#18 rem16s#13 bitmap_plot::plotter#1 bitmap_plot::$2 ] ) always clobbers reg byte a -Statement [33] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[256]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) [ ] ( main:2::bitmap_plot:24 [ main::i#2 rem16u#18 rem16s#13 ] ) always clobbers reg byte a reg byte y +Statement [33] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[$100]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) [ ] ( main:2::bitmap_plot:24 [ main::i#2 rem16u#18 rem16s#13 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Statement [35] (byte) point_init::point_idx1#0 ← (byte) point_init::point_idx#0 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ rem16u#21 rem16s#15 point_init::point_idx#0 point_init::point_idx1#0 ] ( main:2::point_init:20 [ main::i#2 rem16u#21 rem16s#15 point_init::point_idx#0 point_init::point_idx1#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:38 [ point_init::point_idx#0 ] @@ -4271,14 +4271,14 @@ Statement [51] (word~) point_init::$18 ← (word~) point_init::$17 << (byte/sign Statement [52] *((const word[4]) y_cur#0 + (byte) point_init::point_idx#0) ← (word~) point_init::$18 [ rem16u#18 rem16s#13 point_init::point_idx1#0 ] ( main:2::point_init:20 [ main::i#2 rem16u#18 rem16s#13 point_init::point_idx1#0 ] ) always clobbers reg byte a Statement [53] *((const byte[4]) delay#0 + (byte) point_init::point_idx1#0) ← (const byte) DELAY#0 [ rem16u#18 rem16s#13 ] ( main:2::point_init:20 [ main::i#2 rem16u#18 rem16s#13 ] ) always clobbers reg byte a Statement [55] if((signed word) point_init::x_diff#1<(byte/signed byte/word/signed word/dword/signed dword) 0) goto point_init::@3 [ point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 ] ( main:2::point_init:20 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 ] ) always clobbers reg byte a -Statement [56] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← (byte/signed byte/word/signed word/dword/signed dword) 16 [ point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 ] ( main:2::point_init:20 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 ] ) always clobbers reg byte a +Statement [56] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← (byte/signed byte/word/signed word/dword/signed dword) $10 [ point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 ] ( main:2::point_init:20 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 ] ) always clobbers reg byte a Statement [57] (signed word) divr16s::divisor#0 ← (signed word) point_init::x_diff#1 [ point_init::point_idx#0 point_init::point_idx1#0 point_init::y_diff#0 divr16s::divisor#0 ] ( main:2::point_init:20 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 point_init::y_diff#0 divr16s::divisor#0 ] ) always clobbers reg byte a Statement [58] (signed word) divr16s::rem#0 ← (signed word) point_init::y_diff#0 [ point_init::point_idx#0 point_init::point_idx1#0 divr16s::divisor#0 divr16s::rem#0 ] ( main:2::point_init:20 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 divr16s::divisor#0 divr16s::rem#0 ] ) always clobbers reg byte a Statement [60] (signed word) divr16s::return#3 ← (signed word) divr16s::return#2 [ point_init::point_idx#0 point_init::point_idx1#0 divr16u::rem#10 rem16s#3 divr16s::return#3 ] ( main:2::point_init:20 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 divr16u::rem#10 rem16s#3 divr16s::return#3 ] ) always clobbers reg byte a Statement [61] (signed word) point_init::x_stepf#0 ← (signed word) divr16s::return#3 [ point_init::point_idx#0 point_init::point_idx1#0 divr16u::rem#10 rem16s#3 point_init::x_stepf#0 ] ( main:2::point_init:20 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 divr16u::rem#10 rem16s#3 point_init::x_stepf#0 ] ) always clobbers reg byte a Statement [62] (byte~) point_init::$13 ← > (signed word) point_init::x_stepf#0 [ point_init::point_idx#0 point_init::point_idx1#0 divr16u::rem#10 rem16s#3 point_init::$13 ] ( main:2::point_init:20 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 divr16u::rem#10 rem16s#3 point_init::$13 ] ) always clobbers reg byte a Statement [63] (byte~) point_init::$14 ← (byte~) point_init::$13 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ point_init::point_idx#0 point_init::point_idx1#0 divr16u::rem#10 rem16s#3 point_init::$14 ] ( main:2::point_init:20 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 divr16u::rem#10 rem16s#3 point_init::$14 ] ) always clobbers reg byte a -Statement [65] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← -(byte/signed byte/word/signed word/dword/signed dword) 16 [ point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 ] ( main:2::point_init:20 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 ] ) always clobbers reg byte a +Statement [65] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← -(byte/signed byte/word/signed word/dword/signed dword) $10 [ point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 ] ( main:2::point_init:20 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 ] ) always clobbers reg byte a Statement [66] (signed word) point_init::abs16s2_$2#0 ← - (signed word) point_init::y_diff#0 [ rem16u#21 rem16s#15 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 point_init::abs16s1_return#2 point_init::abs16s2_$2#0 ] ( main:2::point_init:20 [ main::i#2 rem16u#21 rem16s#15 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 point_init::abs16s1_return#2 point_init::abs16s2_$2#0 ] ) always clobbers reg byte a Statement [67] (word~) point_init::abs16s2_return#5 ← (word)(signed word) point_init::abs16s2_$2#0 [ rem16u#21 rem16s#15 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 point_init::abs16s1_return#2 point_init::abs16s2_return#5 ] ( main:2::point_init:20 [ main::i#2 rem16u#21 rem16s#15 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 point_init::abs16s1_return#2 point_init::abs16s2_return#5 ] ) always clobbers reg byte a Statement [68] (signed word) point_init::abs16s1_$2#0 ← - (signed word) point_init::x_diff#1 [ rem16u#21 rem16s#15 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 point_init::abs16s1_$2#0 ] ( main:2::point_init:20 [ main::i#2 rem16u#21 rem16s#15 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 point_init::abs16s1_$2#0 ] ) always clobbers reg byte a @@ -4304,7 +4304,7 @@ Statement [93] (signed word~) divr16s::$7 ← - (signed word) divr16s::rem#0 [ d Statement [94] (word~) divr16s::remu#7 ← (word)(signed word~) divr16s::$7 [ divr16s::divisor#0 divr16s::remu#7 ] ( main:2::point_init:20::divr16s:59 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 divr16s::divisor#0 divr16s::remu#7 ] ) always clobbers reg byte a Statement [98] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::point_init:20::divr16s:59::divr16u:80 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 divr16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:24 [ divr16u::i#2 divr16u::i#1 ] -Statement [99] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::point_init:20::divr16s:59::divr16u:80 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 divr16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a +Statement [99] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::point_init:20::divr16s:59::divr16u:80 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 divr16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a Statement [101] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::point_init:20::divr16s:59::divr16u:80 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 divr16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a Statement [105] if((word) divr16u::rem#5<(word) divr16u::divisor#0) goto divr16u::@3 [ divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] ( main:2::point_init:20::divr16s:59::divr16u:80 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 divr16s::neg#4 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] ) always clobbers reg byte a Statement [107] (word) divr16u::rem#2 ← (word) divr16u::rem#5 - (word) divr16u::divisor#0 [ divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::point_init:20::divr16s:59::divr16u:80 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 divr16s::neg#4 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a @@ -4313,7 +4313,7 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:25 [ s Removing always clobbered register reg byte y as potential for zp ZP_BYTE:25 [ screen_fill::y#4 screen_fill::y#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:28 [ screen_fill::x#2 screen_fill::x#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:28 [ screen_fill::x#2 screen_fill::x#1 ] -Statement [122] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_yhi#0) w= *((const byte[256]) bitmap_plot_ylo#0) [ bitmap_clear::$3 ] ( main:2::bitmap_clear:15 [ bitmap_clear::$3 ] ) always clobbers reg byte a +Statement [122] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_yhi#0) w= *((const byte[$100]) bitmap_plot_ylo#0) [ bitmap_clear::$3 ] ( main:2::bitmap_clear:15 [ bitmap_clear::$3 ] ) always clobbers reg byte a Statement [123] (byte*~) bitmap_clear::bitmap#5 ← (byte*)(word~) bitmap_clear::$3 [ bitmap_clear::bitmap#5 ] ( main:2::bitmap_clear:15 [ bitmap_clear::bitmap#5 ] ) always clobbers reg byte a Statement [126] *((byte*) bitmap_clear::bitmap#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ( main:2::bitmap_clear:15 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp ZP_BYTE:29 [ bitmap_clear::y#4 bitmap_clear::y#1 ] @@ -4323,7 +4323,7 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:32 [ b Statement [142] (byte~) bitmap_init::$3 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$3 ] ( main:2::bitmap_init:13 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$3 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:35 [ bitmap_init::y#2 bitmap_init::y#1 ] Statement [148] (byte~) bitmap_init::$7 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$7 ] ( main:2::bitmap_init:13 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$7 ] ) always clobbers reg byte a -Statement [150] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:2::bitmap_init:13 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ) always clobbers reg byte a +Statement [150] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:2::bitmap_init:13 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ) always clobbers reg byte a Statement [5] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [6] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [7] *((const byte*) D011#0) ← (const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a @@ -4332,12 +4332,12 @@ Statement [10] *((const byte*) CIA2_PORT_A#0) ← (const byte) main::vicSelectGf Statement [12] *((const byte*) D018#0) ← (const byte) main::toD0181_return#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [21] (byte~) main::$9 ← (byte) main::i#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::i#2 rem16u#18 rem16s#13 main::$9 ] ( main:2 [ main::i#2 rem16u#18 rem16s#13 main::$9 ] ) always clobbers reg byte a Statement [22] (word) bitmap_plot::x#0 ← *((const word[4]) x_start#0 + (byte) main::i#2) [ main::i#2 rem16u#18 rem16s#13 main::$9 bitmap_plot::x#0 ] ( main:2 [ main::i#2 rem16u#18 rem16s#13 main::$9 bitmap_plot::x#0 ] ) always clobbers reg byte a -Statement [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [29] (word~) bitmap_plot::$3 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#0) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#0) [ bitmap_plot::x#0 bitmap_plot::$3 ] ( main:2::bitmap_plot:24 [ main::i#2 rem16u#18 rem16s#13 bitmap_plot::x#0 bitmap_plot::$3 ] ) always clobbers reg byte a -Statement [30] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#0 & (word/dword/signed dword) 65528 [ bitmap_plot::x#0 bitmap_plot::$3 bitmap_plot::$1 ] ( main:2::bitmap_plot:24 [ main::i#2 rem16u#18 rem16s#13 bitmap_plot::x#0 bitmap_plot::$3 bitmap_plot::$1 ] ) always clobbers reg byte a +Statement [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@5 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [29] (word~) bitmap_plot::$3 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#0) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#0) [ bitmap_plot::x#0 bitmap_plot::$3 ] ( main:2::bitmap_plot:24 [ main::i#2 rem16u#18 rem16s#13 bitmap_plot::x#0 bitmap_plot::$3 ] ) always clobbers reg byte a +Statement [30] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#0 & (word/dword/signed dword) $fff8 [ bitmap_plot::x#0 bitmap_plot::$3 bitmap_plot::$1 ] ( main:2::bitmap_plot:24 [ main::i#2 rem16u#18 rem16s#13 bitmap_plot::x#0 bitmap_plot::$3 bitmap_plot::$1 ] ) always clobbers reg byte a Statement [31] (byte*) bitmap_plot::plotter#1 ← (byte*)(word~) bitmap_plot::$3 + (word~) bitmap_plot::$1 [ bitmap_plot::x#0 bitmap_plot::plotter#1 ] ( main:2::bitmap_plot:24 [ main::i#2 rem16u#18 rem16s#13 bitmap_plot::x#0 bitmap_plot::plotter#1 ] ) always clobbers reg byte a Statement [32] (byte~) bitmap_plot::$2 ← < (word) bitmap_plot::x#0 [ bitmap_plot::plotter#1 bitmap_plot::$2 ] ( main:2::bitmap_plot:24 [ main::i#2 rem16u#18 rem16s#13 bitmap_plot::plotter#1 bitmap_plot::$2 ] ) always clobbers reg byte a -Statement [33] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[256]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) [ ] ( main:2::bitmap_plot:24 [ main::i#2 rem16u#18 rem16s#13 ] ) always clobbers reg byte a reg byte y +Statement [33] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[$100]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) [ ] ( main:2::bitmap_plot:24 [ main::i#2 rem16u#18 rem16s#13 ] ) always clobbers reg byte a reg byte y Statement [35] (byte) point_init::point_idx1#0 ← (byte) point_init::point_idx#0 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ rem16u#21 rem16s#15 point_init::point_idx#0 point_init::point_idx1#0 ] ( main:2::point_init:20 [ main::i#2 rem16u#21 rem16s#15 point_init::point_idx#0 point_init::point_idx1#0 ] ) always clobbers reg byte a Statement [36] (signed word) point_init::x_diff#1 ← (signed word)*((const word[4]) x_end#0 + (byte) point_init::point_idx#0) - (signed word)*((const word[4]) x_start#0 + (byte) point_init::point_idx#0) [ rem16u#21 rem16s#15 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 ] ( main:2::point_init:20 [ main::i#2 rem16u#21 rem16s#15 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 ] ) always clobbers reg byte a Statement [37] (signed word~) point_init::$4 ← ((signed word)) *((const byte[4]) y_end#0 + (byte) point_init::point_idx1#0) [ rem16u#21 rem16s#15 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::$4 ] ( main:2::point_init:20 [ main::i#2 rem16u#21 rem16s#15 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::$4 ] ) always clobbers reg byte a @@ -4355,14 +4355,14 @@ Statement [51] (word~) point_init::$18 ← (word~) point_init::$17 << (byte/sign Statement [52] *((const word[4]) y_cur#0 + (byte) point_init::point_idx#0) ← (word~) point_init::$18 [ rem16u#18 rem16s#13 point_init::point_idx1#0 ] ( main:2::point_init:20 [ main::i#2 rem16u#18 rem16s#13 point_init::point_idx1#0 ] ) always clobbers reg byte a Statement [53] *((const byte[4]) delay#0 + (byte) point_init::point_idx1#0) ← (const byte) DELAY#0 [ rem16u#18 rem16s#13 ] ( main:2::point_init:20 [ main::i#2 rem16u#18 rem16s#13 ] ) always clobbers reg byte a Statement [55] if((signed word) point_init::x_diff#1<(byte/signed byte/word/signed word/dword/signed dword) 0) goto point_init::@3 [ point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 ] ( main:2::point_init:20 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 ] ) always clobbers reg byte a -Statement [56] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← (byte/signed byte/word/signed word/dword/signed dword) 16 [ point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 ] ( main:2::point_init:20 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 ] ) always clobbers reg byte a +Statement [56] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← (byte/signed byte/word/signed word/dword/signed dword) $10 [ point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 ] ( main:2::point_init:20 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 ] ) always clobbers reg byte a Statement [57] (signed word) divr16s::divisor#0 ← (signed word) point_init::x_diff#1 [ point_init::point_idx#0 point_init::point_idx1#0 point_init::y_diff#0 divr16s::divisor#0 ] ( main:2::point_init:20 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 point_init::y_diff#0 divr16s::divisor#0 ] ) always clobbers reg byte a Statement [58] (signed word) divr16s::rem#0 ← (signed word) point_init::y_diff#0 [ point_init::point_idx#0 point_init::point_idx1#0 divr16s::divisor#0 divr16s::rem#0 ] ( main:2::point_init:20 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 divr16s::divisor#0 divr16s::rem#0 ] ) always clobbers reg byte a Statement [60] (signed word) divr16s::return#3 ← (signed word) divr16s::return#2 [ point_init::point_idx#0 point_init::point_idx1#0 divr16u::rem#10 rem16s#3 divr16s::return#3 ] ( main:2::point_init:20 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 divr16u::rem#10 rem16s#3 divr16s::return#3 ] ) always clobbers reg byte a Statement [61] (signed word) point_init::x_stepf#0 ← (signed word) divr16s::return#3 [ point_init::point_idx#0 point_init::point_idx1#0 divr16u::rem#10 rem16s#3 point_init::x_stepf#0 ] ( main:2::point_init:20 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 divr16u::rem#10 rem16s#3 point_init::x_stepf#0 ] ) always clobbers reg byte a Statement [62] (byte~) point_init::$13 ← > (signed word) point_init::x_stepf#0 [ point_init::point_idx#0 point_init::point_idx1#0 divr16u::rem#10 rem16s#3 point_init::$13 ] ( main:2::point_init:20 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 divr16u::rem#10 rem16s#3 point_init::$13 ] ) always clobbers reg byte a Statement [63] (byte~) point_init::$14 ← (byte~) point_init::$13 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ point_init::point_idx#0 point_init::point_idx1#0 divr16u::rem#10 rem16s#3 point_init::$14 ] ( main:2::point_init:20 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 divr16u::rem#10 rem16s#3 point_init::$14 ] ) always clobbers reg byte a -Statement [65] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← -(byte/signed byte/word/signed word/dword/signed dword) 16 [ point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 ] ( main:2::point_init:20 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 ] ) always clobbers reg byte a +Statement [65] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← -(byte/signed byte/word/signed word/dword/signed dword) $10 [ point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 ] ( main:2::point_init:20 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 ] ) always clobbers reg byte a Statement [66] (signed word) point_init::abs16s2_$2#0 ← - (signed word) point_init::y_diff#0 [ rem16u#21 rem16s#15 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 point_init::abs16s1_return#2 point_init::abs16s2_$2#0 ] ( main:2::point_init:20 [ main::i#2 rem16u#21 rem16s#15 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 point_init::abs16s1_return#2 point_init::abs16s2_$2#0 ] ) always clobbers reg byte a Statement [67] (word~) point_init::abs16s2_return#5 ← (word)(signed word) point_init::abs16s2_$2#0 [ rem16u#21 rem16s#15 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 point_init::abs16s1_return#2 point_init::abs16s2_return#5 ] ( main:2::point_init:20 [ main::i#2 rem16u#21 rem16s#15 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 point_init::abs16s1_return#2 point_init::abs16s2_return#5 ] ) always clobbers reg byte a Statement [68] (signed word) point_init::abs16s1_$2#0 ← - (signed word) point_init::x_diff#1 [ rem16u#21 rem16s#15 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 point_init::abs16s1_$2#0 ] ( main:2::point_init:20 [ main::i#2 rem16u#21 rem16s#15 point_init::point_idx#0 point_init::point_idx1#0 point_init::x_diff#1 point_init::y_diff#0 point_init::abs16s1_$2#0 ] ) always clobbers reg byte a @@ -4386,17 +4386,17 @@ Statement [92] (word~) divr16s::divisoru#4 ← (word)(signed word~) divr16s::$11 Statement [93] (signed word~) divr16s::$7 ← - (signed word) divr16s::rem#0 [ divr16s::divisor#0 divr16s::$7 ] ( main:2::point_init:20::divr16s:59 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 divr16s::divisor#0 divr16s::$7 ] ) always clobbers reg byte a Statement [94] (word~) divr16s::remu#7 ← (word)(signed word~) divr16s::$7 [ divr16s::divisor#0 divr16s::remu#7 ] ( main:2::point_init:20::divr16s:59 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 divr16s::divisor#0 divr16s::remu#7 ] ) always clobbers reg byte a Statement [98] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::point_init:20::divr16s:59::divr16u:80 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 divr16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a -Statement [99] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::point_init:20::divr16s:59::divr16u:80 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 divr16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a +Statement [99] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::point_init:20::divr16s:59::divr16u:80 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 divr16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a Statement [101] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::point_init:20::divr16s:59::divr16u:80 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 divr16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a Statement [105] if((word) divr16u::rem#5<(word) divr16u::divisor#0) goto divr16u::@3 [ divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] ( main:2::point_init:20::divr16s:59::divr16u:80 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 divr16s::neg#4 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] ) always clobbers reg byte a Statement [107] (word) divr16u::rem#2 ← (word) divr16u::rem#5 - (word) divr16u::divisor#0 [ divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::point_init:20::divr16s:59::divr16u:80 [ main::i#2 point_init::point_idx#0 point_init::point_idx1#0 divr16s::neg#4 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a Statement [115] *((byte*) screen_fill::screen#2) ← (const byte) screen_fill::ch#0 [ screen_fill::y#4 screen_fill::screen#2 screen_fill::x#2 ] ( main:2::screen_fill:17 [ screen_fill::y#4 screen_fill::screen#2 screen_fill::x#2 ] ) always clobbers reg byte a reg byte y -Statement [122] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_yhi#0) w= *((const byte[256]) bitmap_plot_ylo#0) [ bitmap_clear::$3 ] ( main:2::bitmap_clear:15 [ bitmap_clear::$3 ] ) always clobbers reg byte a +Statement [122] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_yhi#0) w= *((const byte[$100]) bitmap_plot_ylo#0) [ bitmap_clear::$3 ] ( main:2::bitmap_clear:15 [ bitmap_clear::$3 ] ) always clobbers reg byte a Statement [123] (byte*~) bitmap_clear::bitmap#5 ← (byte*)(word~) bitmap_clear::$3 [ bitmap_clear::bitmap#5 ] ( main:2::bitmap_clear:15 [ bitmap_clear::bitmap#5 ] ) always clobbers reg byte a Statement [126] *((byte*) bitmap_clear::bitmap#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ( main:2::bitmap_clear:15 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ) always clobbers reg byte a reg byte y Statement [142] (byte~) bitmap_init::$3 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$3 ] ( main:2::bitmap_init:13 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$3 ] ) always clobbers reg byte a Statement [148] (byte~) bitmap_init::$7 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$7 ] ( main:2::bitmap_init:13 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$7 ] ) always clobbers reg byte a -Statement [150] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:2::bitmap_init:13 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ) always clobbers reg byte a +Statement [150] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:2::bitmap_init:13 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ main::i#2 main::i#1 ] : zp ZP_BYTE:2 , reg byte x , Potential registers zp ZP_WORD:3 [ rem16s#15 rem16s#13 rem16s#3 rem16s#2 rem16s#57 ] : zp ZP_WORD:3 , Potential registers zp ZP_WORD:5 [ point_init::abs16s1_return#2 point_init::abs16s1_return#5 point_init::abs16s1_return#6 ] : zp ZP_WORD:5 , @@ -4709,7 +4709,7 @@ main: { jmp b5 //SEG52 main::@5 b5: - //SEG53 [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG53 [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b5 @@ -4728,12 +4728,12 @@ bitmap_plot: { .label x = 5 .label plotter = 7 .label _3 = 7 - //SEG57 [29] (word~) bitmap_plot::$3 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#0) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#0) -- vwuz1=pbuc1_derefidx_vbuyy_word_pbuc2_derefidx_vbuyy + //SEG57 [29] (word~) bitmap_plot::$3 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#0) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#0) -- vwuz1=pbuc1_derefidx_vbuyy_word_pbuc2_derefidx_vbuyy lda bitmap_plot_yhi,y sta _3+1 lda bitmap_plot_ylo,y sta _3 - //SEG58 [30] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#0 & (word/dword/signed dword) 65528 -- vwuz1=vwuz2_band_vwuc1 + //SEG58 [30] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#0 & (word/dword/signed dword) $fff8 -- vwuz1=vwuz2_band_vwuc1 lda x and #<$fff8 sta _1 @@ -4750,7 +4750,7 @@ bitmap_plot: { sta plotter+1 //SEG60 [32] (byte~) bitmap_plot::$2 ← < (word) bitmap_plot::x#0 -- vbuaa=_lo_vwuz1 lda x - //SEG61 [33] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[256]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuaa + //SEG61 [33] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[$100]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuaa tay lda bitmap_plot_bit,y ldy #0 @@ -4935,7 +4935,7 @@ point_init: { jmp b7 //SEG100 point_init::@7 b7: - //SEG101 [56] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← (byte/signed byte/word/signed word/dword/signed dword) 16 -- pbsc1_derefidx_vbuz1=vbuc2 + //SEG101 [56] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← (byte/signed byte/word/signed word/dword/signed dword) $10 -- pbsc1_derefidx_vbuz1=vbuc2 // x add = 1.0 ldy point_idx lda #$10 @@ -4971,7 +4971,7 @@ point_init: { jmp b2_from_b11 //SEG113 point_init::@3 b3: - //SEG114 [65] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← -(byte/signed byte/word/signed word/dword/signed dword) 16 -- pbsc1_derefidx_vbuz1=vbsc2 + //SEG114 [65] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← -(byte/signed byte/word/signed word/dword/signed dword) $10 -- pbsc1_derefidx_vbuz1=vbsc2 // x add = -1.0 ldy point_idx lda #-$10 @@ -5200,7 +5200,7 @@ divr16u: { rol rem+1 //SEG182 [98] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 -- vbuaa=_hi_vwuz1 lda dividend+1 - //SEG183 [99] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuaa_band_vbuc1 + //SEG183 [99] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 //SEG184 [100] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuaa_eq_0_then_la1 cmp #0 @@ -5260,7 +5260,7 @@ divr16u: { b3: //SEG200 [109] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuxx=_inc_vbuxx inx - //SEG201 [110] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG201 [110] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1_from_b3 jmp breturn @@ -5318,7 +5318,7 @@ screen_fill: { !: //SEG221 [117] (byte) screen_fill::x#1 ← ++ (byte) screen_fill::x#2 -- vbuxx=_inc_vbuxx inx - //SEG222 [118] if((byte) screen_fill::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto screen_fill::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG222 [118] if((byte) screen_fill::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto screen_fill::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b2_from_b2 jmp b3 @@ -5326,7 +5326,7 @@ screen_fill: { b3: //SEG224 [119] (byte) screen_fill::y#1 ← ++ (byte) screen_fill::y#4 -- vbuz1=_inc_vbuz1 inc y - //SEG225 [120] if((byte) screen_fill::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto screen_fill::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG225 [120] if((byte) screen_fill::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto screen_fill::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$19 bne b1_from_b3 @@ -5342,7 +5342,7 @@ bitmap_clear: { .label bitmap = 3 .label y = 2 .label _3 = 3 - //SEG229 [122] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_yhi#0) w= *((const byte[256]) bitmap_plot_ylo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 + //SEG229 [122] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_yhi#0) w= *((const byte[$100]) bitmap_plot_ylo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 lda bitmap_plot_ylo sta _3 lda bitmap_plot_yhi @@ -5386,7 +5386,7 @@ bitmap_clear: { !: //SEG247 [128] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 -- vbuxx=_inc_vbuxx inx - //SEG248 [129] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) 200) goto bitmap_clear::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG248 [129] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) $c8) goto bitmap_clear::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$c8 bne b2_from_b2 jmp b3 @@ -5394,7 +5394,7 @@ bitmap_clear: { b3: //SEG250 [130] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 -- vbuz1=_inc_vbuz1 inc y - //SEG251 [131] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG251 [131] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$28 bne b1_from_b3 @@ -5412,7 +5412,7 @@ bitmap_init: { b1_from_bitmap_init: //SEG256 [134] phi (byte) bitmap_init::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:bitmap_init->bitmap_init::@1#0] -- vbuxx=vbuc1 ldx #0 - //SEG257 [134] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init->bitmap_init::@1#1] -- vbuaa=vbuc1 + //SEG257 [134] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init->bitmap_init::@1#1] -- vbuaa=vbuc1 lda #$80 jmp b1 //SEG258 [134] phi from bitmap_init::@2 to bitmap_init::@1 [phi:bitmap_init::@2->bitmap_init::@1] @@ -5422,7 +5422,7 @@ bitmap_init: { jmp b1 //SEG261 bitmap_init::@1 b1: - //SEG262 [135] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG262 [135] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_bit,x //SEG263 [136] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuaa_ror_1 lsr @@ -5431,7 +5431,7 @@ bitmap_init: { bne b10_from_b1 //SEG265 [138] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2] b2_from_b1: - //SEG266 [138] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuaa=vbuc1 + //SEG266 [138] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuaa=vbuc1 lda #$80 jmp b2 //SEG267 bitmap_init::@2 @@ -5466,11 +5466,11 @@ bitmap_init: { lda yoffs //SEG279 [144] (byte~) bitmap_init::$5 ← (byte~) bitmap_init::$3 | (byte~) bitmap_init::$4 -- vbuaa=vbuz1_bor_vbuaa ora _3 - //SEG280 [145] *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG280 [145] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_ylo,x //SEG281 [146] (byte~) bitmap_init::$6 ← > (byte*) bitmap_init::yoffs#2 -- vbuaa=_hi_pbuz1 lda yoffs+1 - //SEG282 [147] *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG282 [147] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_yhi,x //SEG283 [148] (byte~) bitmap_init::$7 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuxx_band_vbuc1 txa @@ -5481,7 +5481,7 @@ bitmap_init: { jmp b7 //SEG285 bitmap_init::@7 b7: - //SEG286 [150] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 + //SEG286 [150] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 clc lda yoffs adc #<$28*8 @@ -5740,11 +5740,11 @@ FINAL SYMBOL TABLE (byte*) BGCOL3 (byte*) BGCOL4 (byte*) BITMAP -(const byte*) BITMAP#0 BITMAP = ((byte*))(word/dword/signed dword) 40960 +(const byte*) BITMAP#0 BITMAP = ((byte*))(word/dword/signed dword) $a000 (byte) BLACK (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN (byte*) CIA1_INTERRUPT @@ -5754,19 +5754,19 @@ FINAL SYMBOL TABLE (byte*) CIA1_PORT_B_DDR (byte*) CIA2_INTERRUPT (byte*) CIA2_PORT_A -(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) 56576 +(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) $dd00 (byte*) CIA2_PORT_A_DDR -(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56578 +(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) $dd02 (byte*) CIA2_PORT_B (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR (byte*) COLS (byte) CYAN (byte*) D011 -(const byte*) D011#0 D011 = ((byte*))(word/dword/signed dword) 53265 +(const byte*) D011#0 D011 = ((byte*))(word/dword/signed dword) $d011 (byte*) D016 (byte*) D018 -(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) 53272 +(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) $d018 (byte) DARK_GREY (byte) DELAY (const byte) DELAY#0 DELAY = (byte/signed byte/word/signed word/dword/signed dword) 8 @@ -5798,13 +5798,13 @@ FINAL SYMBOL TABLE (byte) PROCPORT_RAM_ALL (byte) PROCPORT_RAM_CHARROM (byte) PROCPORT_RAM_IO -(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) 53 +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) $35 (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 34816 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) $8800 (byte) SIZE (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE @@ -5819,12 +5819,12 @@ FINAL SYMBOL TABLE (byte*) SPRITES_YPOS (word) SPRITE_PTRS (byte) VIC_BMM -(const byte) VIC_BMM#0 VIC_BMM = (byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte) VIC_BMM#0 VIC_BMM = (byte/signed byte/word/signed word/dword/signed dword) $20 (byte*) VIC_CONTROL (byte*) VIC_CONTROL2 (byte) VIC_CSEL (byte) VIC_DEN -(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_ECM (byte) VIC_MCM (byte*) VIC_MEMORY @@ -5889,12 +5889,12 @@ FINAL SYMBOL TABLE (word) bitmap_plot::x#0 x zp ZP_WORD:5 3.0 (byte) bitmap_plot::y (byte) bitmap_plot::y#0 reg byte y 15.0 -(byte[256]) bitmap_plot_bit -(const byte[256]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( 256, 0) } -(byte[256]) bitmap_plot_yhi -(const byte[256]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( 256, 0) } -(byte[256]) bitmap_plot_ylo -(const byte[256]) bitmap_plot_ylo#0 bitmap_plot_ylo = { fill( 256, 0) } +(byte[$100]) bitmap_plot_bit +(const byte[$100]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( $100, 0) } +(byte[$100]) bitmap_plot_yhi +(const byte[$100]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( $100, 0) } +(byte[$100]) bitmap_plot_ylo +(const byte[$100]) bitmap_plot_ylo#0 bitmap_plot_ylo = { fill( $100, 0) } (byte[4]) delay (const byte[4]) delay#0 delay = { fill( 4, 0) } (signed word()) divr16s((signed word) divr16s::dividend , (signed word) divr16s::divisor , (signed word) divr16s::rem) @@ -5997,7 +5997,7 @@ FINAL SYMBOL TABLE (byte~) main::toD0181_$8 (byte*) main::toD0181_gfx (byte) main::toD0181_return -(const byte) main::toD0181_return#0 toD0181_return = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) BITMAP#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte) main::toD0181_return#0 toD0181_return = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) BITMAP#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) $f (byte*) main::toD0181_screen (label) main::vicSelectGfxBank1 (byte~) main::vicSelectGfxBank1_$0 @@ -6082,7 +6082,7 @@ FINAL SYMBOL TABLE (label) screen_fill::@3 (label) screen_fill::@return (byte) screen_fill::ch -(const byte) screen_fill::ch#0 ch = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) screen_fill::ch#0 ch = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte*) screen_fill::screen (byte*) screen_fill::screen#1 screen zp ZP_WORD:3 42.599999999999994 (byte*) screen_fill::screen#2 screen zp ZP_WORD:3 157.0 @@ -6098,17 +6098,17 @@ FINAL SYMBOL TABLE (word[4]) x_cur (const word[4]) x_cur#0 x_cur = { fill( 4, 0) } (word[4]) x_end -(const word[4]) x_end#0 x_end = { (byte/signed byte/word/signed word/dword/signed dword) 20, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 20, (byte/signed byte/word/signed word/dword/signed dword) 20 } +(const word[4]) x_end#0 x_end = { (byte/signed byte/word/signed word/dword/signed dword) $14, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $14, (byte/signed byte/word/signed word/dword/signed dword) $14 } (word[4]) x_start -(const word[4]) x_start#0 x_start = { (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 20, (byte/signed byte/word/signed word/dword/signed dword) 30, (byte/signed byte/word/signed word/dword/signed dword) 30 } +(const word[4]) x_start#0 x_start = { (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $14, (byte/signed byte/word/signed word/dword/signed dword) $1e, (byte/signed byte/word/signed word/dword/signed dword) $1e } (signed byte[4]) y_add (const signed byte[4]) y_add#0 y_add = { fill( 4, 0) } (word[4]) y_cur (const word[4]) y_cur#0 y_cur = { fill( 4, 0) } (byte[4]) y_end -(const byte[4]) y_end#0 y_end = { (byte/signed byte/word/signed word/dword/signed dword) 20, (byte/signed byte/word/signed word/dword/signed dword) 20, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 20 } +(const byte[4]) y_end#0 y_end = { (byte/signed byte/word/signed word/dword/signed dword) $14, (byte/signed byte/word/signed word/dword/signed dword) $14, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $14 } (byte[4]) y_start -(const byte[4]) y_start#0 y_start = { (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 20 } +(const byte[4]) y_start#0 y_start = { (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $14 } zp ZP_BYTE:2 [ main::i#2 main::i#1 point_init::point_idx#0 screen_fill::y#4 screen_fill::y#1 bitmap_clear::y#4 bitmap_clear::y#1 bitmap_init::$3 ] zp ZP_WORD:3 [ rem16s#15 rem16s#13 rem16s#3 rem16s#2 rem16s#57 divr16s::dividendu#3 divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 screen_fill::screen#2 screen_fill::screen#3 screen_fill::screen#1 bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 bitmap_clear::$3 bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] @@ -6270,7 +6270,7 @@ main: { bne b1 //SEG52 main::@5 b5: - //SEG53 [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG53 [27] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b5 @@ -6287,12 +6287,12 @@ bitmap_plot: { .label x = 5 .label plotter = 7 .label _3 = 7 - //SEG57 [29] (word~) bitmap_plot::$3 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#0) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#0) -- vwuz1=pbuc1_derefidx_vbuyy_word_pbuc2_derefidx_vbuyy + //SEG57 [29] (word~) bitmap_plot::$3 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#0) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#0) -- vwuz1=pbuc1_derefidx_vbuyy_word_pbuc2_derefidx_vbuyy lda bitmap_plot_yhi,y sta _3+1 lda bitmap_plot_ylo,y sta _3 - //SEG58 [30] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#0 & (word/dword/signed dword) 65528 -- vwuz1=vwuz2_band_vwuc1 + //SEG58 [30] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#0 & (word/dword/signed dword) $fff8 -- vwuz1=vwuz2_band_vwuc1 lda x and #<$fff8 sta _1 @@ -6309,7 +6309,7 @@ bitmap_plot: { sta plotter+1 //SEG60 [32] (byte~) bitmap_plot::$2 ← < (word) bitmap_plot::x#0 -- vbuaa=_lo_vwuz1 lda x - //SEG61 [33] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[256]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuaa + //SEG61 [33] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[$100]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2) -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuaa tay lda bitmap_plot_bit,y ldy #0 @@ -6470,7 +6470,7 @@ point_init: { lda x_diff+1 bmi b3 //SEG100 point_init::@7 - //SEG101 [56] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← (byte/signed byte/word/signed word/dword/signed dword) 16 -- pbsc1_derefidx_vbuz1=vbuc2 + //SEG101 [56] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← (byte/signed byte/word/signed word/dword/signed dword) $10 -- pbsc1_derefidx_vbuz1=vbuc2 // x add = 1.0 ldy point_idx lda #$10 @@ -6502,7 +6502,7 @@ point_init: { jmp b2 //SEG113 point_init::@3 b3: - //SEG114 [65] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← -(byte/signed byte/word/signed word/dword/signed dword) 16 -- pbsc1_derefidx_vbuz1=vbsc2 + //SEG114 [65] *((const signed byte[4]) x_add#0 + (byte) point_init::point_idx#0) ← -(byte/signed byte/word/signed word/dword/signed dword) $10 -- pbsc1_derefidx_vbuz1=vbsc2 // x add = -1.0 ldy point_idx lda #-$10 @@ -6706,7 +6706,7 @@ divr16u: { rol rem+1 //SEG182 [98] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 -- vbuaa=_hi_vwuz1 lda dividend+1 - //SEG183 [99] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuaa_band_vbuc1 + //SEG183 [99] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 //SEG184 [100] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuaa_eq_0_then_la1 cmp #0 @@ -6756,7 +6756,7 @@ divr16u: { b3: //SEG200 [109] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuxx=_inc_vbuxx inx - //SEG201 [110] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG201 [110] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1 //SEG202 divr16u::@return @@ -6804,13 +6804,13 @@ screen_fill: { !: //SEG221 [117] (byte) screen_fill::x#1 ← ++ (byte) screen_fill::x#2 -- vbuxx=_inc_vbuxx inx - //SEG222 [118] if((byte) screen_fill::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto screen_fill::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG222 [118] if((byte) screen_fill::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto screen_fill::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b2 //SEG223 screen_fill::@3 //SEG224 [119] (byte) screen_fill::y#1 ← ++ (byte) screen_fill::y#4 -- vbuz1=_inc_vbuz1 inc y - //SEG225 [120] if((byte) screen_fill::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto screen_fill::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG225 [120] if((byte) screen_fill::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto screen_fill::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$19 bne b1 @@ -6824,7 +6824,7 @@ bitmap_clear: { .label bitmap = 3 .label y = 2 .label _3 = 3 - //SEG229 [122] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_yhi#0) w= *((const byte[256]) bitmap_plot_ylo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 + //SEG229 [122] (word~) bitmap_clear::$3 ← *((const byte[$100]) bitmap_plot_yhi#0) w= *((const byte[$100]) bitmap_plot_ylo#0) -- vwuz1=_deref_pbuc1_word__deref_pbuc2 lda bitmap_plot_ylo sta _3 lda bitmap_plot_yhi @@ -6860,13 +6860,13 @@ bitmap_clear: { !: //SEG247 [128] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 -- vbuxx=_inc_vbuxx inx - //SEG248 [129] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) 200) goto bitmap_clear::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG248 [129] if((byte) bitmap_clear::x#1!=(byte/word/signed word/dword/signed dword) $c8) goto bitmap_clear::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$c8 bne b2 //SEG249 bitmap_clear::@3 //SEG250 [130] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 -- vbuz1=_inc_vbuz1 inc y - //SEG251 [131] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG251 [131] if((byte) bitmap_clear::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$28 bne b1 @@ -6881,14 +6881,14 @@ bitmap_init: { //SEG255 [134] phi from bitmap_init to bitmap_init::@1 [phi:bitmap_init->bitmap_init::@1] //SEG256 [134] phi (byte) bitmap_init::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:bitmap_init->bitmap_init::@1#0] -- vbuxx=vbuc1 ldx #0 - //SEG257 [134] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init->bitmap_init::@1#1] -- vbuaa=vbuc1 + //SEG257 [134] phi (byte) bitmap_init::bits#3 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init->bitmap_init::@1#1] -- vbuaa=vbuc1 lda #$80 //SEG258 [134] phi from bitmap_init::@2 to bitmap_init::@1 [phi:bitmap_init::@2->bitmap_init::@1] //SEG259 [134] phi (byte) bitmap_init::x#2 = (byte) bitmap_init::x#1 [phi:bitmap_init::@2->bitmap_init::@1#0] -- register_copy //SEG260 [134] phi (byte) bitmap_init::bits#3 = (byte) bitmap_init::bits#4 [phi:bitmap_init::@2->bitmap_init::@1#1] -- register_copy //SEG261 bitmap_init::@1 b1: - //SEG262 [135] *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG262 [135] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_bit,x //SEG263 [136] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuaa_ror_1 lsr @@ -6896,7 +6896,7 @@ bitmap_init: { cmp #0 bne b2 //SEG265 [138] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2] - //SEG266 [138] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) 128 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuaa=vbuc1 + //SEG266 [138] phi (byte) bitmap_init::bits#4 = (byte/word/signed word/dword/signed dword) $80 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuaa=vbuc1 lda #$80 //SEG267 bitmap_init::@2 b2: @@ -6926,11 +6926,11 @@ bitmap_init: { lda yoffs //SEG279 [144] (byte~) bitmap_init::$5 ← (byte~) bitmap_init::$3 | (byte~) bitmap_init::$4 -- vbuaa=vbuz1_bor_vbuaa ora _3 - //SEG280 [145] *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG280 [145] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_ylo,x //SEG281 [146] (byte~) bitmap_init::$6 ← > (byte*) bitmap_init::yoffs#2 -- vbuaa=_hi_pbuz1 lda yoffs+1 - //SEG282 [147] *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6 -- pbuc1_derefidx_vbuxx=vbuaa + //SEG282 [147] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_yhi,x //SEG283 [148] (byte~) bitmap_init::$7 ← (byte) bitmap_init::y#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuxx_band_vbuc1 txa @@ -6939,7 +6939,7 @@ bitmap_init: { cmp #7 bne b4 //SEG285 bitmap_init::@7 - //SEG286 [150] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 + //SEG286 [150] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 -- pbuz1=pbuz1_plus_vwuc1 clc lda yoffs adc #<$28*8 diff --git a/src/test/ref/line-anim.sym b/src/test/ref/line-anim.sym index 83ae7590b..e13ba854c 100644 --- a/src/test/ref/line-anim.sym +++ b/src/test/ref/line-anim.sym @@ -7,11 +7,11 @@ (byte*) BGCOL3 (byte*) BGCOL4 (byte*) BITMAP -(const byte*) BITMAP#0 BITMAP = ((byte*))(word/dword/signed dword) 40960 +(const byte*) BITMAP#0 BITMAP = ((byte*))(word/dword/signed dword) $a000 (byte) BLACK (byte) BLUE (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) BROWN (byte*) CHARGEN (byte*) CIA1_INTERRUPT @@ -21,19 +21,19 @@ (byte*) CIA1_PORT_B_DDR (byte*) CIA2_INTERRUPT (byte*) CIA2_PORT_A -(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) 56576 +(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) $dd00 (byte*) CIA2_PORT_A_DDR -(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56578 +(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) $dd02 (byte*) CIA2_PORT_B (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR (byte*) COLS (byte) CYAN (byte*) D011 -(const byte*) D011#0 D011 = ((byte*))(word/dword/signed dword) 53265 +(const byte*) D011#0 D011 = ((byte*))(word/dword/signed dword) $d011 (byte*) D016 (byte*) D018 -(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) 53272 +(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) $d018 (byte) DARK_GREY (byte) DELAY (const byte) DELAY#0 DELAY = (byte/signed byte/word/signed word/dword/signed dword) 8 @@ -65,13 +65,13 @@ (byte) PROCPORT_RAM_ALL (byte) PROCPORT_RAM_CHARROM (byte) PROCPORT_RAM_IO -(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) 53 +(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) $35 (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 34816 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) $8800 (byte) SIZE (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE @@ -86,12 +86,12 @@ (byte*) SPRITES_YPOS (word) SPRITE_PTRS (byte) VIC_BMM -(const byte) VIC_BMM#0 VIC_BMM = (byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte) VIC_BMM#0 VIC_BMM = (byte/signed byte/word/signed word/dword/signed dword) $20 (byte*) VIC_CONTROL (byte*) VIC_CONTROL2 (byte) VIC_CSEL (byte) VIC_DEN -(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_ECM (byte) VIC_MCM (byte*) VIC_MEMORY @@ -156,12 +156,12 @@ (word) bitmap_plot::x#0 x zp ZP_WORD:5 3.0 (byte) bitmap_plot::y (byte) bitmap_plot::y#0 reg byte y 15.0 -(byte[256]) bitmap_plot_bit -(const byte[256]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( 256, 0) } -(byte[256]) bitmap_plot_yhi -(const byte[256]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( 256, 0) } -(byte[256]) bitmap_plot_ylo -(const byte[256]) bitmap_plot_ylo#0 bitmap_plot_ylo = { fill( 256, 0) } +(byte[$100]) bitmap_plot_bit +(const byte[$100]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( $100, 0) } +(byte[$100]) bitmap_plot_yhi +(const byte[$100]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( $100, 0) } +(byte[$100]) bitmap_plot_ylo +(const byte[$100]) bitmap_plot_ylo#0 bitmap_plot_ylo = { fill( $100, 0) } (byte[4]) delay (const byte[4]) delay#0 delay = { fill( 4, 0) } (signed word()) divr16s((signed word) divr16s::dividend , (signed word) divr16s::divisor , (signed word) divr16s::rem) @@ -264,7 +264,7 @@ (byte~) main::toD0181_$8 (byte*) main::toD0181_gfx (byte) main::toD0181_return -(const byte) main::toD0181_return#0 toD0181_return = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) BITMAP#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte) main::toD0181_return#0 toD0181_return = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) BITMAP#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) $f (byte*) main::toD0181_screen (label) main::vicSelectGfxBank1 (byte~) main::vicSelectGfxBank1_$0 @@ -349,7 +349,7 @@ (label) screen_fill::@3 (label) screen_fill::@return (byte) screen_fill::ch -(const byte) screen_fill::ch#0 ch = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) screen_fill::ch#0 ch = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte*) screen_fill::screen (byte*) screen_fill::screen#1 screen zp ZP_WORD:3 42.599999999999994 (byte*) screen_fill::screen#2 screen zp ZP_WORD:3 157.0 @@ -365,17 +365,17 @@ (word[4]) x_cur (const word[4]) x_cur#0 x_cur = { fill( 4, 0) } (word[4]) x_end -(const word[4]) x_end#0 x_end = { (byte/signed byte/word/signed word/dword/signed dword) 20, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 20, (byte/signed byte/word/signed word/dword/signed dword) 20 } +(const word[4]) x_end#0 x_end = { (byte/signed byte/word/signed word/dword/signed dword) $14, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $14, (byte/signed byte/word/signed word/dword/signed dword) $14 } (word[4]) x_start -(const word[4]) x_start#0 x_start = { (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 20, (byte/signed byte/word/signed word/dword/signed dword) 30, (byte/signed byte/word/signed word/dword/signed dword) 30 } +(const word[4]) x_start#0 x_start = { (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $14, (byte/signed byte/word/signed word/dword/signed dword) $1e, (byte/signed byte/word/signed word/dword/signed dword) $1e } (signed byte[4]) y_add (const signed byte[4]) y_add#0 y_add = { fill( 4, 0) } (word[4]) y_cur (const word[4]) y_cur#0 y_cur = { fill( 4, 0) } (byte[4]) y_end -(const byte[4]) y_end#0 y_end = { (byte/signed byte/word/signed word/dword/signed dword) 20, (byte/signed byte/word/signed word/dword/signed dword) 20, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 20 } +(const byte[4]) y_end#0 y_end = { (byte/signed byte/word/signed word/dword/signed dword) $14, (byte/signed byte/word/signed word/dword/signed dword) $14, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $14 } (byte[4]) y_start -(const byte[4]) y_start#0 y_start = { (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 10, (byte/signed byte/word/signed word/dword/signed dword) 20 } +(const byte[4]) y_start#0 y_start = { (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $a, (byte/signed byte/word/signed word/dword/signed dword) $14 } zp ZP_BYTE:2 [ main::i#2 main::i#1 point_init::point_idx#0 screen_fill::y#4 screen_fill::y#1 bitmap_clear::y#4 bitmap_clear::y#1 bitmap_init::$3 ] zp ZP_WORD:3 [ rem16s#15 rem16s#13 rem16s#3 rem16s#2 rem16s#57 divr16s::dividendu#3 divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 screen_fill::screen#2 screen_fill::screen#3 screen_fill::screen#1 bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 bitmap_clear::$3 bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] diff --git a/src/test/ref/linegen.cfg b/src/test/ref/linegen.cfg index 01fdf2363..13114694a 100644 --- a/src/test/ref/linegen.cfg +++ b/src/test/ref/linegen.cfg @@ -62,7 +62,7 @@ main::@14: scope:[main] from main::@1 [31] call print_str to:main::@15 main::@15: scope:[main] from main::@14 - [32] (word) print_word::w#3 ← *((const word[20]) main::lintab1#0 + (byte) main::i#10) + [32] (word) print_word::w#3 ← *((const word[$14]) main::lintab1#0 + (byte) main::i#10) [33] call print_word to:main::@16 main::@16: scope:[main] from main::@15 @@ -70,7 +70,7 @@ main::@16: scope:[main] from main::@15 [35] call print_str to:main::@17 main::@17: scope:[main] from main::@16 - [36] (word) print_word::w#4 ← *((const word[20]) main::lintab2#0 + (byte) main::i#10) + [36] (word) print_word::w#4 ← *((const word[$14]) main::lintab2#0 + (byte) main::i#10) [37] call print_word to:main::@18 main::@18: scope:[main] from main::@17 @@ -78,7 +78,7 @@ main::@18: scope:[main] from main::@17 [39] call print_str to:main::@19 main::@19: scope:[main] from main::@18 - [40] (word) print_word::w#5 ← *((const word[20]) main::lintab3#0 + (byte) main::i#10) + [40] (word) print_word::w#5 ← *((const word[$14]) main::lintab3#0 + (byte) main::i#10) [41] call print_word to:main::@20 main::@20: scope:[main] from main::@19 @@ -87,7 +87,7 @@ main::@20: scope:[main] from main::@19 to:main::@21 main::@21: scope:[main] from main::@20 [44] (byte) main::i#1 ← (byte) main::i#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [45] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 20*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1 + [45] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $14*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@21 [46] (byte*~) print_char_cursor#100 ← (byte*) print_line_cursor#1 @@ -121,18 +121,18 @@ main::@return: scope:[main] from main::@27 [60] return to:@return print_ln: scope:[print_ln] from main::@12 main::@20 main::@27 - [61] (byte*) print_line_cursor#21 ← phi( main::@12/((byte*))(word/signed word/dword/signed dword) 1024 main::@20/(byte*) print_line_cursor#1 main::@27/(byte*) print_line_cursor#1 ) + [61] (byte*) print_line_cursor#21 ← phi( main::@12/((byte*))(word/signed word/dword/signed dword) $400 main::@20/(byte*) print_line_cursor#1 main::@27/(byte*) print_line_cursor#1 ) to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [62] (byte*) print_line_cursor#11 ← phi( print_ln/(byte*) print_line_cursor#21 print_ln::@1/(byte*) print_line_cursor#1 ) - [63] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [63] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) $28 [64] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#11) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 [65] return to:@return print_word: scope:[print_word] from main::@11 main::@15 main::@17 main::@19 main::@22 main::@24 main::@26 main::@7 main::@9 - [66] (word) print_word::w#10 ← phi( main::@11/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@15/(word) print_word::w#3 main::@17/(word) print_word::w#4 main::@19/(word) print_word::w#5 main::@22/(word/signed word/dword/signed dword) 29793 main::@24/(word/dword/signed dword) 63361 main::@26/(word/signed word/dword/signed dword) 25736 main::@7/(word/signed word/dword/signed dword) 557 main::@9/(word/signed word/dword/signed dword) 31179 ) + [66] (word) print_word::w#10 ← phi( main::@11/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@15/(word) print_word::w#3 main::@17/(word) print_word::w#4 main::@19/(word) print_word::w#5 main::@22/(word/signed word/dword/signed dword) $7461 main::@24/(word/dword/signed dword) $f781 main::@26/(word/signed word/dword/signed dword) $6488 main::@7/(word/signed word/dword/signed dword) $22d main::@9/(word/signed word/dword/signed dword) $79cb ) [67] (byte) print_byte::b#0 ← > (word) print_word::w#10 [68] call print_byte to:print_word::@1 @@ -151,7 +151,7 @@ print_byte: scope:[print_byte] from main::@1 print_word print_word::@1 [75] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [76] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [76] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) $f [77] (byte) print_char::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [78] call print_char to:print_byte::@return @@ -168,7 +168,7 @@ print_char::@return: scope:[print_char] from print_char [83] return to:@return print_str: scope:[print_str] from main::@10 main::@14 main::@16 main::@18 main::@2 main::@23 main::@25 main::@6 main::@8 - [84] (byte*) print_char_cursor#86 ← phi( main::@10/(byte*) print_char_cursor#11 main::@14/(byte*) print_char_cursor#11 main::@16/(byte*) print_char_cursor#11 main::@18/(byte*) print_char_cursor#11 main::@2/(byte*~) print_char_cursor#100 main::@23/(byte*) print_char_cursor#11 main::@25/(byte*) print_char_cursor#11 main::@6/((byte*))(word/signed word/dword/signed dword) 1024 main::@8/(byte*) print_char_cursor#11 ) + [84] (byte*) print_char_cursor#86 ← phi( main::@10/(byte*) print_char_cursor#11 main::@14/(byte*) print_char_cursor#11 main::@16/(byte*) print_char_cursor#11 main::@18/(byte*) print_char_cursor#11 main::@2/(byte*~) print_char_cursor#100 main::@23/(byte*) print_char_cursor#11 main::@25/(byte*) print_char_cursor#11 main::@6/((byte*))(word/signed word/dword/signed dword) $400 main::@8/(byte*) print_char_cursor#11 ) [84] (byte*) print_str::str#12 ← phi( main::@10/(const string) main::str1 main::@14/(const string) main::str1 main::@16/(const string) main::str1 main::@18/(const string) main::str1 main::@2/(const string) main::str main::@23/(const string) main::str1 main::@25/(const string) main::str1 main::@6/(const string) main::str main::@8/(const string) main::str1 ) to:print_str::@1 print_str::@1: scope:[print_str] from print_str print_str::@2 @@ -188,18 +188,18 @@ print_cls: scope:[print_cls] from main::@5 [91] phi() to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 - [92] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) 1024 print_cls::@1/(byte*) print_cls::sc#1 ) + [92] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) $400 print_cls::@1/(byte*) print_cls::sc#1 ) [93] *((byte*) print_cls::sc#2) ← (byte) ' ' [94] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [95] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [95] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [96] return to:@return lin16u_gen: scope:[lin16u_gen] from main main::@3 main::@4 - [97] (word*) lin16u_gen::lintab#5 ← phi( main/(const word[20]) main::lintab1#0 main::@3/(const word[20]) main::lintab2#0 main::@4/(const word[20]) main::lintab3#0 ) - [97] (word) lin16u_gen::min#3 ← phi( main/(word/signed word/dword/signed dword) 557 main::@3/(word/signed word/dword/signed dword) 31179 main::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [97] (word) lin16u_gen::max#3 ← phi( main/(word/signed word/dword/signed dword) 29793 main::@3/(word/dword/signed dword) 63361 main::@4/(word/signed word/dword/signed dword) 25736 ) + [97] (word*) lin16u_gen::lintab#5 ← phi( main/(const word[$14]) main::lintab1#0 main::@3/(const word[$14]) main::lintab2#0 main::@4/(const word[$14]) main::lintab3#0 ) + [97] (word) lin16u_gen::min#3 ← phi( main/(word/signed word/dword/signed dword) $22d main::@3/(word/signed word/dword/signed dword) $79cb main::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [97] (word) lin16u_gen::max#3 ← phi( main/(word/signed word/dword/signed dword) $7461 main::@3/(word/dword/signed dword) $f781 main::@4/(word/signed word/dword/signed dword) $6488 ) [98] (word) lin16u_gen::ampl#0 ← (word) lin16u_gen::max#3 - (word) lin16u_gen::min#3 [99] (word) divr16u::dividend#1 ← (word) lin16u_gen::ampl#0 [100] call divr16u @@ -225,13 +225,13 @@ lin16u_gen::@1: scope:[lin16u_gen] from lin16u_gen::@1 lin16u_gen::@4 [112] (dword) lin16u_gen::val#1 ← (dword) lin16u_gen::val#2 + (dword) lin16u_gen::step#0 [113] (word*) lin16u_gen::lintab#3 ← (word*) lin16u_gen::lintab#4 + (byte/signed byte/word/signed word/dword/signed dword) 2 [114] (word) lin16u_gen::i#1 ← ++ (word) lin16u_gen::i#2 - [115] if((word) lin16u_gen::i#1<(byte/signed byte/word/signed word/dword/signed dword) 20) goto lin16u_gen::@1 + [115] if((word) lin16u_gen::i#1<(byte/signed byte/word/signed word/dword/signed dword) $14) goto lin16u_gen::@1 to:lin16u_gen::@return lin16u_gen::@return: scope:[lin16u_gen] from lin16u_gen::@1 [116] return to:@return divr16u: scope:[divr16u] from lin16u_gen lin16u_gen::@3 - [117] (word) divr16u::divisor#6 ← phi( lin16u_gen/(byte/signed byte/word/signed word/dword/signed dword) 20-(byte/signed byte/word/signed word/dword/signed dword) 1 lin16u_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 20-(byte/signed byte/word/signed word/dword/signed dword) 1 ) + [117] (word) divr16u::divisor#6 ← phi( lin16u_gen/(byte/signed byte/word/signed word/dword/signed dword) $14-(byte/signed byte/word/signed word/dword/signed dword) 1 lin16u_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) $14-(byte/signed byte/word/signed word/dword/signed dword) 1 ) [117] (word) divr16u::dividend#5 ← phi( lin16u_gen/(word) divr16u::dividend#1 lin16u_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [117] (word) divr16u::rem#10 ← phi( lin16u_gen/(byte/signed byte/word/signed word/dword/signed dword) 0 lin16u_gen::@3/(word) divr16u::rem#4 ) to:divr16u::@1 @@ -242,7 +242,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 [118] (word) divr16u::rem#5 ← phi( divr16u/(word) divr16u::rem#10 divr16u::@3/(word) divr16u::rem#11 ) [119] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [120] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 - [121] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + [121] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [122] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 to:divr16u::@4 divr16u::@4: scope:[divr16u] from divr16u::@1 @@ -262,7 +262,7 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 [130] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [130] (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) [131] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 - [132] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 + [132] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 to:divr16u::@6 divr16u::@6: scope:[divr16u] from divr16u::@3 [133] (word) rem16u#1 ← (word) divr16u::rem#11 diff --git a/src/test/ref/linegen.log b/src/test/ref/linegen.log index 4fa19d279..aa0f65751 100644 --- a/src/test/ref/linegen.log +++ b/src/test/ref/linegen.log @@ -22,7 +22,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 (word~) divr16u::$0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 (word) divr16u::rem#0 ← (word~) divr16u::$0 (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 - (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 (bool~) divr16u::$3 ← (byte~) divr16u::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) divr16u::$4 ← ! (bool~) divr16u::$3 if((bool~) divr16u::$4) goto divr16u::@2 @@ -56,8 +56,8 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 (word) divr16u::dividend#6 ← phi( divr16u::@2/(word) divr16u::dividend#0 divr16u::@5/(word) divr16u::dividend#8 ) (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) (byte) divr16u::i#2 ← phi( divr16u::@2/(byte) divr16u::i#3 divr16u::@5/(byte) divr16u::i#4 ) - (byte) divr16u::i#1 ← (byte) divr16u::i#2 + rangenext(0,15) - (bool~) divr16u::$11 ← (byte) divr16u::i#1 != rangelast(0,15) + (byte) divr16u::i#1 ← (byte) divr16u::i#2 + rangenext(0,$f) + (bool~) divr16u::$11 ← (byte) divr16u::i#1 != rangelast(0,$f) if((bool~) divr16u::$11) goto divr16u::@1 to:divr16u::@6 divr16u::@5: scope:[divr16u] from divr16u::@2 @@ -93,7 +93,7 @@ divr16u::@return: scope:[divr16u] from divr16u::@6 to:@8 @8: scope:[] from @6 (word) rem16u#27 ← phi( @6/(word) rem16u#29 ) - (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 to:@20 @@ -126,7 +126,7 @@ print_ln: scope:[print_ln] from main::@12 main::@20 main::@27 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 (byte*) print_char_cursor#42 ← phi( print_ln/(byte*) print_char_cursor#79 print_ln::@1/(byte*) print_char_cursor#42 ) (byte*) print_line_cursor#11 ← phi( print_ln/(byte*) print_line_cursor#21 print_ln::@1/(byte*) print_line_cursor#1 ) - (byte*~) print_ln::$0 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) print_ln::$0 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) print_line_cursor#1 ← (byte*~) print_ln::$0 (bool~) print_ln::$1 ← (byte*) print_line_cursor#1 < (byte*) print_char_cursor#42 if((bool~) print_ln::$1) goto print_ln::@1 @@ -184,7 +184,7 @@ print_byte::@1: scope:[print_byte] from print_byte (byte) print_byte::b#4 ← phi( print_byte/(byte) print_byte::b#3 ) (byte*) print_char_cursor#47 ← phi( print_byte/(byte*) print_char_cursor#12 ) (byte*) print_char_cursor#8 ← (byte*) print_char_cursor#47 - (byte~) print_byte::$2 ← (byte) print_byte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) print_byte::$2 ← (byte) print_byte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte) print_char::ch#1 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$2) call print_char to:print_byte::@2 @@ -217,7 +217,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 (byte*) print_cls::sc#2 ← phi( print_cls/(byte*) print_cls::sc#0 print_cls::@1/(byte*) print_cls::sc#1 ) *((byte*) print_cls::sc#2) ← (byte) ' ' (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) 1000 + (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) $3e8 (bool~) print_cls::$1 ← (byte*) print_cls::sc#1 != (byte*~) print_cls::$0 if((bool~) print_cls::$1) goto print_cls::@1 to:print_cls::@2 @@ -238,11 +238,11 @@ main: scope:[main] from @29 (byte*) print_line_cursor#36 ← phi( @29/(byte*) print_line_cursor#26 ) (byte*) print_screen#7 ← phi( @29/(byte*) print_screen#8 ) (word) rem16u#20 ← phi( @29/(word) rem16u#24 ) - (word[20]) main::lintab1#0 ← { fill( 20, 0) } - (word) lin16u_gen::min#0 ← (word/signed word/dword/signed dword) 557 - (word) lin16u_gen::max#0 ← (word/signed word/dword/signed dword) 29793 - (word*) lin16u_gen::lintab#0 ← (word[20]) main::lintab1#0 - (word) lin16u_gen::length#0 ← (byte/signed byte/word/signed word/dword/signed dword) 20 + (word[$14]) main::lintab1#0 ← { fill( $14, 0) } + (word) lin16u_gen::min#0 ← (word/signed word/dword/signed dword) $22d + (word) lin16u_gen::max#0 ← (word/signed word/dword/signed dword) $7461 + (word*) lin16u_gen::lintab#0 ← (word[$14]) main::lintab1#0 + (word) lin16u_gen::length#0 ← (byte/signed byte/word/signed word/dword/signed dword) $14 call lin16u_gen to:main::@3 main::@3: scope:[main] from main @@ -251,11 +251,11 @@ main::@3: scope:[main] from main (byte*) print_screen#6 ← phi( main/(byte*) print_screen#7 ) (word) rem16u#12 ← phi( main/(word) rem16u#9 ) (word) rem16u#3 ← (word) rem16u#12 - (word[20]) main::lintab2#0 ← { fill( 20, 0) } - (word) lin16u_gen::min#1 ← (word/signed word/dword/signed dword) 31179 - (word) lin16u_gen::max#1 ← (word/dword/signed dword) 63361 - (word*) lin16u_gen::lintab#1 ← (word[20]) main::lintab2#0 - (word) lin16u_gen::length#1 ← (byte/signed byte/word/signed word/dword/signed dword) 20 + (word[$14]) main::lintab2#0 ← { fill( $14, 0) } + (word) lin16u_gen::min#1 ← (word/signed word/dword/signed dword) $79cb + (word) lin16u_gen::max#1 ← (word/dword/signed dword) $f781 + (word*) lin16u_gen::lintab#1 ← (word[$14]) main::lintab2#0 + (word) lin16u_gen::length#1 ← (byte/signed byte/word/signed word/dword/signed dword) $14 call lin16u_gen to:main::@4 main::@4: scope:[main] from main::@3 @@ -264,11 +264,11 @@ main::@4: scope:[main] from main::@3 (byte*) print_screen#5 ← phi( main::@3/(byte*) print_screen#6 ) (word) rem16u#13 ← phi( main::@3/(word) rem16u#9 ) (word) rem16u#4 ← (word) rem16u#13 - (word[20]) main::lintab3#0 ← { fill( 20, 0) } + (word[$14]) main::lintab3#0 ← { fill( $14, 0) } (word) lin16u_gen::min#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (word) lin16u_gen::max#2 ← (word/signed word/dword/signed dword) 25736 - (word*) lin16u_gen::lintab#2 ← (word[20]) main::lintab3#0 - (word) lin16u_gen::length#2 ← (byte/signed byte/word/signed word/dword/signed dword) 20 + (word) lin16u_gen::max#2 ← (word/signed word/dword/signed dword) $6488 + (word*) lin16u_gen::lintab#2 ← (word[$14]) main::lintab3#0 + (word) lin16u_gen::length#2 ← (byte/signed byte/word/signed word/dword/signed dword) $14 call lin16u_gen to:main::@5 main::@5: scope:[main] from main::@4 @@ -293,7 +293,7 @@ main::@7: scope:[main] from main::@6 (byte*) print_line_cursor#43 ← phi( main::@6/(byte*) print_line_cursor#5 ) (byte*) print_char_cursor#54 ← phi( main::@6/(byte*) print_char_cursor#2 ) (byte*) print_char_cursor#16 ← (byte*) print_char_cursor#54 - (word) print_word::w#0 ← (word/signed word/dword/signed dword) 557 + (word) print_word::w#0 ← (word/signed word/dword/signed dword) $22d call print_word to:main::@8 main::@8: scope:[main] from main::@7 @@ -309,7 +309,7 @@ main::@9: scope:[main] from main::@8 (byte*) print_line_cursor#37 ← phi( main::@8/(byte*) print_line_cursor#40 ) (byte*) print_char_cursor#56 ← phi( main::@8/(byte*) print_char_cursor#2 ) (byte*) print_char_cursor#18 ← (byte*) print_char_cursor#56 - (word) print_word::w#1 ← (word/signed word/dword/signed dword) 31179 + (word) print_word::w#1 ← (word/signed word/dword/signed dword) $79cb call print_word to:main::@10 main::@10: scope:[main] from main::@9 @@ -366,7 +366,7 @@ main::@15: scope:[main] from main::@14 (byte) main::i#3 ← phi( main::@14/(byte) main::i#7 ) (byte*) print_char_cursor#62 ← phi( main::@14/(byte*) print_char_cursor#2 ) (byte*) print_char_cursor#24 ← (byte*) print_char_cursor#62 - (word) print_word::w#3 ← *((word[20]) main::lintab1#0 + (byte) main::i#3) + (word) print_word::w#3 ← *((word[$14]) main::lintab1#0 + (byte) main::i#3) call print_word to:main::@16 main::@16: scope:[main] from main::@15 @@ -384,7 +384,7 @@ main::@17: scope:[main] from main::@16 (byte) main::i#4 ← phi( main::@16/(byte) main::i#8 ) (byte*) print_char_cursor#64 ← phi( main::@16/(byte*) print_char_cursor#2 ) (byte*) print_char_cursor#26 ← (byte*) print_char_cursor#64 - (word) print_word::w#4 ← *((word[20]) main::lintab2#0 + (byte) main::i#4) + (word) print_word::w#4 ← *((word[$14]) main::lintab2#0 + (byte) main::i#4) call print_word to:main::@18 main::@18: scope:[main] from main::@17 @@ -402,7 +402,7 @@ main::@19: scope:[main] from main::@18 (byte) main::i#5 ← phi( main::@18/(byte) main::i#9 ) (byte*) print_char_cursor#66 ← phi( main::@18/(byte*) print_char_cursor#2 ) (byte*) print_char_cursor#28 ← (byte*) print_char_cursor#66 - (word) print_word::w#5 ← *((word[20]) main::lintab3#0 + (byte) main::i#5) + (word) print_word::w#5 ← *((word[$14]) main::lintab3#0 + (byte) main::i#5) call print_word to:main::@20 main::@20: scope:[main] from main::@19 @@ -422,7 +422,7 @@ main::@21: scope:[main] from main::@20 (byte*) print_char_cursor#30 ← (byte*) print_char_cursor#68 (byte/signed word/word/dword/signed dword~) main::$19 ← (byte) main::i#6 + (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) main::i#1 ← (byte/signed word/word/dword/signed dword~) main::$19 - (byte/signed byte/word/signed word/dword/signed dword~) main::$20 ← (byte/signed byte/word/signed word/dword/signed dword) 20 * (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte/signed byte/word/signed word/dword/signed dword~) main::$20 ← (byte/signed byte/word/signed word/dword/signed dword) $14 * (byte/signed byte/word/signed word/dword/signed dword) 2 (bool~) main::$21 ← (byte) main::i#1 < (byte/signed byte/word/signed word/dword/signed dword~) main::$20 if((bool~) main::$21) goto main::@1 to:main::@2 @@ -438,7 +438,7 @@ main::@22: scope:[main] from main::@2 (byte*) print_line_cursor#45 ← phi( main::@2/(byte*) print_line_cursor#47 ) (byte*) print_char_cursor#69 ← phi( main::@2/(byte*) print_char_cursor#2 ) (byte*) print_char_cursor#31 ← (byte*) print_char_cursor#69 - (word) print_word::w#6 ← (word/signed word/dword/signed dword) 29793 + (word) print_word::w#6 ← (word/signed word/dword/signed dword) $7461 call print_word to:main::@23 main::@23: scope:[main] from main::@22 @@ -454,7 +454,7 @@ main::@24: scope:[main] from main::@23 (byte*) print_line_cursor#39 ← phi( main::@23/(byte*) print_line_cursor#42 ) (byte*) print_char_cursor#71 ← phi( main::@23/(byte*) print_char_cursor#2 ) (byte*) print_char_cursor#33 ← (byte*) print_char_cursor#71 - (word) print_word::w#7 ← (word/dword/signed dword) 63361 + (word) print_word::w#7 ← (word/dword/signed dword) $f781 call print_word to:main::@25 main::@25: scope:[main] from main::@24 @@ -470,7 +470,7 @@ main::@26: scope:[main] from main::@25 (byte*) print_line_cursor#30 ← phi( main::@25/(byte*) print_line_cursor#35 ) (byte*) print_char_cursor#73 ← phi( main::@25/(byte*) print_char_cursor#2 ) (byte*) print_char_cursor#35 ← (byte*) print_char_cursor#73 - (word) print_word::w#8 ← (word/signed word/dword/signed dword) 25736 + (word) print_word::w#8 ← (word/signed word/dword/signed dword) $6488 call print_word to:main::@27 main::@27: scope:[main] from main::@26 @@ -775,12 +775,12 @@ SYMBOL TABLE SSA (byte) main::i#7 (byte) main::i#8 (byte) main::i#9 -(word[20]) main::lintab1 -(word[20]) main::lintab1#0 -(word[20]) main::lintab2 -(word[20]) main::lintab2#0 -(word[20]) main::lintab3 -(word[20]) main::lintab3#0 +(word[$14]) main::lintab1 +(word[$14]) main::lintab1#0 +(word[$14]) main::lintab2 +(word[$14]) main::lintab2#0 +(word[$14]) main::lintab3 +(word[$14]) main::lintab3#0 (const string) main::str = (string) " @" (const string) main::str1 = (string) " @" (const string) main::str2 = (string) " @" @@ -1239,7 +1239,7 @@ Redundant Phi (byte*) print_line_cursor#24 (byte*) print_line_cursor#1 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) divr16u::$4 [12] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 Simple Condition (bool~) divr16u::$9 [20] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 -Simple Condition (bool~) divr16u::$11 [27] if((byte) divr16u::i#1!=rangelast(0,15)) goto divr16u::@1 +Simple Condition (bool~) divr16u::$11 [27] if((byte) divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1 Simple Condition (bool~) print_str::$0 [50] if(*((byte*) print_str::str#10)!=(byte) '@') goto print_str::@2 Simple Condition (bool~) print_ln::$1 [63] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#11) goto print_ln::@1 Simple Condition (bool~) print_cls::$1 [113] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 @@ -1252,43 +1252,43 @@ Constant (const word) divr16u::quotient#0 = 0 Constant (const byte) divr16u::i#0 = 0 Constant (const signed byte) rem8s#0 = 0 Constant (const signed word) rem16s#0 = 0 -Constant (const byte*) print_line_cursor#0 = ((byte*))1024 +Constant (const byte*) print_line_cursor#0 = ((byte*))$400 Constant (const byte[]) print_hextab#0 = $0 -Constant (const word[20]) main::lintab1#0 = { fill( 20, 0) } -Constant (const word) lin16u_gen::min#0 = 557 -Constant (const word) lin16u_gen::max#0 = 29793 -Constant (const word) lin16u_gen::length#0 = 20 -Constant (const word[20]) main::lintab2#0 = { fill( 20, 0) } -Constant (const word) lin16u_gen::min#1 = 31179 -Constant (const word) lin16u_gen::max#1 = 63361 -Constant (const word) lin16u_gen::length#1 = 20 -Constant (const word[20]) main::lintab3#0 = { fill( 20, 0) } +Constant (const word[$14]) main::lintab1#0 = { fill( $14, 0) } +Constant (const word) lin16u_gen::min#0 = $22d +Constant (const word) lin16u_gen::max#0 = $7461 +Constant (const word) lin16u_gen::length#0 = $14 +Constant (const word[$14]) main::lintab2#0 = { fill( $14, 0) } +Constant (const word) lin16u_gen::min#1 = $79cb +Constant (const word) lin16u_gen::max#1 = $f781 +Constant (const word) lin16u_gen::length#1 = $14 +Constant (const word[$14]) main::lintab3#0 = { fill( $14, 0) } Constant (const word) lin16u_gen::min#2 = 0 -Constant (const word) lin16u_gen::max#2 = 25736 -Constant (const word) lin16u_gen::length#2 = 20 +Constant (const word) lin16u_gen::max#2 = $6488 +Constant (const word) lin16u_gen::length#2 = $14 Constant (const byte*) print_str::str#1 = main::str -Constant (const word) print_word::w#0 = 557 +Constant (const word) print_word::w#0 = $22d Constant (const byte*) print_str::str#2 = main::str1 -Constant (const word) print_word::w#1 = 31179 +Constant (const word) print_word::w#1 = $79cb Constant (const byte*) print_str::str#3 = main::str2 Constant (const word) print_word::w#2 = 0 Constant (const byte) main::i#0 = 0 Constant (const byte*) print_str::str#4 = main::str3 Constant (const byte*) print_str::str#5 = main::str4 Constant (const byte*) print_str::str#6 = main::str5 -Constant (const byte/signed byte/word/signed word/dword/signed dword) main::$20 = 20*2 +Constant (const byte/signed byte/word/signed word/dword/signed dword) main::$20 = $14*2 Constant (const byte*) print_str::str#7 = main::str6 -Constant (const word) print_word::w#6 = 29793 +Constant (const word) print_word::w#6 = $7461 Constant (const byte*) print_str::str#8 = main::str7 -Constant (const word) print_word::w#7 = 63361 +Constant (const word) print_word::w#7 = $f781 Constant (const byte*) print_str::str#9 = main::str8 -Constant (const word) print_word::w#8 = 25736 +Constant (const word) print_word::w#8 = $6488 Constant (const word) divr16u::rem#3 = 0 Constant (const word) divr16u::dividend#2 = 0 Constant (const word) lin16u_gen::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) print_cls::sc#0 = print_line_cursor#0 -Constant (const byte*) print_cls::$0 = print_line_cursor#0+1000 +Constant (const byte*) print_cls::$0 = print_line_cursor#0+$3e8 Constant (const word*) lin16u_gen::lintab#0 = main::lintab1#0 Constant (const word*) lin16u_gen::lintab#1 = main::lintab2#0 Constant (const word*) lin16u_gen::lintab#2 = main::lintab3#0 @@ -1300,7 +1300,7 @@ Successful SSA optimization Pass2FixInlineConstructors Successful SSA optimization PassNEliminateUnusedVars Successful SSA optimization PassNEliminateUnusedVars Resolved ranged next value divr16u::i#1 ← ++ divr16u::i#2 to ++ -Resolved ranged comparison value if(divr16u::i#1!=rangelast(0,15)) goto divr16u::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Culled Empty Block (label) @2 Culled Empty Block (label) @5 Culled Empty Block (label) @6 @@ -1357,56 +1357,56 @@ Constant inlined main::str5 = (const string) main::str1 Constant inlined divr16u::rem#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::str6 = (const string) main::str Constant inlined main::str7 = (const string) main::str1 -Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000 +Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8 Constant inlined divr16u::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::str2 = (const string) main::str1 Constant inlined main::str3 = (const string) main::str1 -Constant inlined lin16u_gen::max#0 = (word/signed word/dword/signed dword) 29793 -Constant inlined lin16u_gen::max#2 = (word/signed word/dword/signed dword) 25736 -Constant inlined lin16u_gen::max#1 = (word/dword/signed dword) 63361 +Constant inlined lin16u_gen::max#0 = (word/signed word/dword/signed dword) $7461 +Constant inlined lin16u_gen::max#2 = (word/signed word/dword/signed dword) $6488 +Constant inlined lin16u_gen::max#1 = (word/dword/signed dword) $f781 Constant inlined $0 = (const byte[]) print_hextab#0 Constant inlined divr16u::quotient#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined lin16u_gen::min#0 = (word/signed word/dword/signed dword) 557 -Constant inlined print_line_cursor#0 = ((byte*))(word/signed word/dword/signed dword) 1024 -Constant inlined print_word::w#1 = (word/signed word/dword/signed dword) 31179 -Constant inlined print_word::w#0 = (word/signed word/dword/signed dword) 557 +Constant inlined lin16u_gen::min#0 = (word/signed word/dword/signed dword) $22d +Constant inlined print_line_cursor#0 = ((byte*))(word/signed word/dword/signed dword) $400 +Constant inlined print_word::w#1 = (word/signed word/dword/signed dword) $79cb +Constant inlined print_word::w#0 = (word/signed word/dword/signed dword) $22d Constant inlined print_word::w#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword) 1024 -Constant inlined main::$20 = (byte/signed byte/word/signed word/dword/signed dword) 20*(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword) $400 +Constant inlined main::$20 = (byte/signed byte/word/signed word/dword/signed dword) $14*(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined divr16u::dividend#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined print_word::w#7 = (word/dword/signed dword) 63361 -Constant inlined print_word::w#6 = (word/signed word/dword/signed dword) 29793 -Constant inlined print_word::w#8 = (word/signed word/dword/signed dword) 25736 -Constant inlined lin16u_gen::length#2 = (byte/signed byte/word/signed word/dword/signed dword) 20 +Constant inlined print_word::w#7 = (word/dword/signed dword) $f781 +Constant inlined print_word::w#6 = (word/signed word/dword/signed dword) $7461 +Constant inlined print_word::w#8 = (word/signed word/dword/signed dword) $6488 +Constant inlined lin16u_gen::length#2 = (byte/signed byte/word/signed word/dword/signed dword) $14 Constant inlined print_str::str#9 = (const string) main::str1 -Constant inlined lin16u_gen::length#1 = (byte/signed byte/word/signed word/dword/signed dword) 20 -Constant inlined lin16u_gen::length#0 = (byte/signed byte/word/signed word/dword/signed dword) 20 +Constant inlined lin16u_gen::length#1 = (byte/signed byte/word/signed word/dword/signed dword) $14 +Constant inlined lin16u_gen::length#0 = (byte/signed byte/word/signed word/dword/signed dword) $14 Constant inlined print_str::str#4 = (const string) main::str1 Constant inlined print_str::str#3 = (const string) main::str1 Constant inlined print_str::str#2 = (const string) main::str1 Constant inlined print_str::str#1 = (const string) main::str Constant inlined print_str::str#8 = (const string) main::str1 Constant inlined main::str8 = (const string) main::str1 -Constant inlined lin16u_gen::lintab#2 = (const word[20]) main::lintab3#0 -Constant inlined lin16u_gen::min#1 = (word/signed word/dword/signed dword) 31179 +Constant inlined lin16u_gen::lintab#2 = (const word[$14]) main::lintab3#0 +Constant inlined lin16u_gen::min#1 = (word/signed word/dword/signed dword) $79cb Constant inlined lin16u_gen::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined print_str::str#7 = (const string) main::str -Constant inlined lin16u_gen::lintab#1 = (const word[20]) main::lintab2#0 +Constant inlined lin16u_gen::lintab#1 = (const word[$14]) main::lintab2#0 Constant inlined lin16u_gen::min#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined print_str::str#6 = (const string) main::str1 -Constant inlined lin16u_gen::lintab#0 = (const word[20]) main::lintab1#0 +Constant inlined lin16u_gen::lintab#0 = (const word[$14]) main::lintab1#0 Constant inlined print_str::str#5 = (const string) main::str1 Successful SSA optimization Pass2ConstantInlining -Identical Phi Values (word) lin16u_gen::length#3 (byte/signed byte/word/signed word/dword/signed dword) 20 +Identical Phi Values (word) lin16u_gen::length#3 (byte/signed byte/word/signed word/dword/signed dword) $14 Successful SSA optimization Pass2IdenticalPhiElimination -Constant (const word) divr16u::divisor#0 = 20-1 -Constant (const word) divr16u::divisor#1 = 20-1 +Constant (const word) divr16u::divisor#0 = $14-1 +Constant (const word) divr16u::divisor#1 = $14-1 Successful SSA optimization Pass2ConstantIdentification Inlining constant with var siblings (const word) divr16u::divisor#0 Inlining constant with var siblings (const word) divr16u::divisor#1 -Constant inlined divr16u::divisor#1 = (byte/signed byte/word/signed word/dword/signed dword) 20-(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined divr16u::divisor#0 = (byte/signed byte/word/signed word/dword/signed dword) 20-(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined divr16u::divisor#1 = (byte/signed byte/word/signed word/dword/signed dword) $14-(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined divr16u::divisor#0 = (byte/signed byte/word/signed word/dword/signed dword) $14-(byte/signed byte/word/signed word/dword/signed dword) 1 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@29(between main::@21 and main::@1) Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1) @@ -1588,7 +1588,7 @@ main::@14: scope:[main] from main::@1 [31] call print_str to:main::@15 main::@15: scope:[main] from main::@14 - [32] (word) print_word::w#3 ← *((const word[20]) main::lintab1#0 + (byte) main::i#10) + [32] (word) print_word::w#3 ← *((const word[$14]) main::lintab1#0 + (byte) main::i#10) [33] call print_word to:main::@16 main::@16: scope:[main] from main::@15 @@ -1596,7 +1596,7 @@ main::@16: scope:[main] from main::@15 [35] call print_str to:main::@17 main::@17: scope:[main] from main::@16 - [36] (word) print_word::w#4 ← *((const word[20]) main::lintab2#0 + (byte) main::i#10) + [36] (word) print_word::w#4 ← *((const word[$14]) main::lintab2#0 + (byte) main::i#10) [37] call print_word to:main::@18 main::@18: scope:[main] from main::@17 @@ -1604,7 +1604,7 @@ main::@18: scope:[main] from main::@17 [39] call print_str to:main::@19 main::@19: scope:[main] from main::@18 - [40] (word) print_word::w#5 ← *((const word[20]) main::lintab3#0 + (byte) main::i#10) + [40] (word) print_word::w#5 ← *((const word[$14]) main::lintab3#0 + (byte) main::i#10) [41] call print_word to:main::@20 main::@20: scope:[main] from main::@19 @@ -1613,7 +1613,7 @@ main::@20: scope:[main] from main::@19 to:main::@21 main::@21: scope:[main] from main::@20 [44] (byte) main::i#1 ← (byte) main::i#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [45] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 20*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1 + [45] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $14*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@21 [46] (byte*~) print_char_cursor#100 ← (byte*) print_line_cursor#1 @@ -1647,18 +1647,18 @@ main::@return: scope:[main] from main::@27 [60] return to:@return print_ln: scope:[print_ln] from main::@12 main::@20 main::@27 - [61] (byte*) print_line_cursor#21 ← phi( main::@12/((byte*))(word/signed word/dword/signed dword) 1024 main::@20/(byte*) print_line_cursor#1 main::@27/(byte*) print_line_cursor#1 ) + [61] (byte*) print_line_cursor#21 ← phi( main::@12/((byte*))(word/signed word/dword/signed dword) $400 main::@20/(byte*) print_line_cursor#1 main::@27/(byte*) print_line_cursor#1 ) to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [62] (byte*) print_line_cursor#11 ← phi( print_ln/(byte*) print_line_cursor#21 print_ln::@1/(byte*) print_line_cursor#1 ) - [63] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [63] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) $28 [64] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#11) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 [65] return to:@return print_word: scope:[print_word] from main::@11 main::@15 main::@17 main::@19 main::@22 main::@24 main::@26 main::@7 main::@9 - [66] (word) print_word::w#10 ← phi( main::@11/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@15/(word) print_word::w#3 main::@17/(word) print_word::w#4 main::@19/(word) print_word::w#5 main::@22/(word/signed word/dword/signed dword) 29793 main::@24/(word/dword/signed dword) 63361 main::@26/(word/signed word/dword/signed dword) 25736 main::@7/(word/signed word/dword/signed dword) 557 main::@9/(word/signed word/dword/signed dword) 31179 ) + [66] (word) print_word::w#10 ← phi( main::@11/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@15/(word) print_word::w#3 main::@17/(word) print_word::w#4 main::@19/(word) print_word::w#5 main::@22/(word/signed word/dword/signed dword) $7461 main::@24/(word/dword/signed dword) $f781 main::@26/(word/signed word/dword/signed dword) $6488 main::@7/(word/signed word/dword/signed dword) $22d main::@9/(word/signed word/dword/signed dword) $79cb ) [67] (byte) print_byte::b#0 ← > (word) print_word::w#10 [68] call print_byte to:print_word::@1 @@ -1677,7 +1677,7 @@ print_byte: scope:[print_byte] from main::@1 print_word print_word::@1 [75] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [76] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [76] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) $f [77] (byte) print_char::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [78] call print_char to:print_byte::@return @@ -1694,7 +1694,7 @@ print_char::@return: scope:[print_char] from print_char [83] return to:@return print_str: scope:[print_str] from main::@10 main::@14 main::@16 main::@18 main::@2 main::@23 main::@25 main::@6 main::@8 - [84] (byte*) print_char_cursor#86 ← phi( main::@10/(byte*) print_char_cursor#11 main::@14/(byte*) print_char_cursor#11 main::@16/(byte*) print_char_cursor#11 main::@18/(byte*) print_char_cursor#11 main::@2/(byte*~) print_char_cursor#100 main::@23/(byte*) print_char_cursor#11 main::@25/(byte*) print_char_cursor#11 main::@6/((byte*))(word/signed word/dword/signed dword) 1024 main::@8/(byte*) print_char_cursor#11 ) + [84] (byte*) print_char_cursor#86 ← phi( main::@10/(byte*) print_char_cursor#11 main::@14/(byte*) print_char_cursor#11 main::@16/(byte*) print_char_cursor#11 main::@18/(byte*) print_char_cursor#11 main::@2/(byte*~) print_char_cursor#100 main::@23/(byte*) print_char_cursor#11 main::@25/(byte*) print_char_cursor#11 main::@6/((byte*))(word/signed word/dword/signed dword) $400 main::@8/(byte*) print_char_cursor#11 ) [84] (byte*) print_str::str#12 ← phi( main::@10/(const string) main::str1 main::@14/(const string) main::str1 main::@16/(const string) main::str1 main::@18/(const string) main::str1 main::@2/(const string) main::str main::@23/(const string) main::str1 main::@25/(const string) main::str1 main::@6/(const string) main::str main::@8/(const string) main::str1 ) to:print_str::@1 print_str::@1: scope:[print_str] from print_str print_str::@2 @@ -1714,18 +1714,18 @@ print_cls: scope:[print_cls] from main::@5 [91] phi() to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 - [92] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) 1024 print_cls::@1/(byte*) print_cls::sc#1 ) + [92] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) $400 print_cls::@1/(byte*) print_cls::sc#1 ) [93] *((byte*) print_cls::sc#2) ← (byte) ' ' [94] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [95] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [95] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [96] return to:@return lin16u_gen: scope:[lin16u_gen] from main main::@3 main::@4 - [97] (word*) lin16u_gen::lintab#5 ← phi( main/(const word[20]) main::lintab1#0 main::@3/(const word[20]) main::lintab2#0 main::@4/(const word[20]) main::lintab3#0 ) - [97] (word) lin16u_gen::min#3 ← phi( main/(word/signed word/dword/signed dword) 557 main::@3/(word/signed word/dword/signed dword) 31179 main::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [97] (word) lin16u_gen::max#3 ← phi( main/(word/signed word/dword/signed dword) 29793 main::@3/(word/dword/signed dword) 63361 main::@4/(word/signed word/dword/signed dword) 25736 ) + [97] (word*) lin16u_gen::lintab#5 ← phi( main/(const word[$14]) main::lintab1#0 main::@3/(const word[$14]) main::lintab2#0 main::@4/(const word[$14]) main::lintab3#0 ) + [97] (word) lin16u_gen::min#3 ← phi( main/(word/signed word/dword/signed dword) $22d main::@3/(word/signed word/dword/signed dword) $79cb main::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [97] (word) lin16u_gen::max#3 ← phi( main/(word/signed word/dword/signed dword) $7461 main::@3/(word/dword/signed dword) $f781 main::@4/(word/signed word/dword/signed dword) $6488 ) [98] (word) lin16u_gen::ampl#0 ← (word) lin16u_gen::max#3 - (word) lin16u_gen::min#3 [99] (word) divr16u::dividend#1 ← (word) lin16u_gen::ampl#0 [100] call divr16u @@ -1751,13 +1751,13 @@ lin16u_gen::@1: scope:[lin16u_gen] from lin16u_gen::@1 lin16u_gen::@4 [112] (dword) lin16u_gen::val#1 ← (dword) lin16u_gen::val#2 + (dword) lin16u_gen::step#0 [113] (word*) lin16u_gen::lintab#3 ← (word*) lin16u_gen::lintab#4 + (byte/signed byte/word/signed word/dword/signed dword) 2 [114] (word) lin16u_gen::i#1 ← ++ (word) lin16u_gen::i#2 - [115] if((word) lin16u_gen::i#1<(byte/signed byte/word/signed word/dword/signed dword) 20) goto lin16u_gen::@1 + [115] if((word) lin16u_gen::i#1<(byte/signed byte/word/signed word/dword/signed dword) $14) goto lin16u_gen::@1 to:lin16u_gen::@return lin16u_gen::@return: scope:[lin16u_gen] from lin16u_gen::@1 [116] return to:@return divr16u: scope:[divr16u] from lin16u_gen lin16u_gen::@3 - [117] (word) divr16u::divisor#6 ← phi( lin16u_gen/(byte/signed byte/word/signed word/dword/signed dword) 20-(byte/signed byte/word/signed word/dword/signed dword) 1 lin16u_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 20-(byte/signed byte/word/signed word/dword/signed dword) 1 ) + [117] (word) divr16u::divisor#6 ← phi( lin16u_gen/(byte/signed byte/word/signed word/dword/signed dword) $14-(byte/signed byte/word/signed word/dword/signed dword) 1 lin16u_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) $14-(byte/signed byte/word/signed word/dword/signed dword) 1 ) [117] (word) divr16u::dividend#5 ← phi( lin16u_gen/(word) divr16u::dividend#1 lin16u_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [117] (word) divr16u::rem#10 ← phi( lin16u_gen/(byte/signed byte/word/signed word/dword/signed dword) 0 lin16u_gen::@3/(word) divr16u::rem#4 ) to:divr16u::@1 @@ -1768,7 +1768,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 [118] (word) divr16u::rem#5 ← phi( divr16u/(word) divr16u::rem#10 divr16u::@3/(word) divr16u::rem#11 ) [119] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [120] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 - [121] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + [121] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [122] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 to:divr16u::@4 divr16u::@4: scope:[divr16u] from divr16u::@1 @@ -1788,7 +1788,7 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 [130] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [130] (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) [131] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 - [132] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 + [132] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 to:divr16u::@6 divr16u::@6: scope:[divr16u] from divr16u::@3 [133] (word) rem16u#1 ← (word) divr16u::rem#11 @@ -1859,9 +1859,9 @@ VARIABLE REGISTER WEIGHTS (byte) main::i (byte) main::i#1 16.5 (byte) main::i#10 3.666666666666667 -(word[20]) main::lintab1 -(word[20]) main::lintab2 -(word[20]) main::lintab3 +(word[$14]) main::lintab1 +(word[$14]) main::lintab2 +(word[$14]) main::lintab3 (void()) print_byte((byte) print_byte::b) (byte~) print_byte::$0 4.0 (byte~) print_byte::$2 4.0 @@ -2039,17 +2039,17 @@ main: { //SEG11 [5] call lin16u_gen //SEG12 [97] phi from main to lin16u_gen [phi:main->lin16u_gen] lin16u_gen_from_main: - //SEG13 [97] phi (word*) lin16u_gen::lintab#5 = (const word[20]) main::lintab1#0 [phi:main->lin16u_gen#0] -- pwuz1=pwuc1 + //SEG13 [97] phi (word*) lin16u_gen::lintab#5 = (const word[$14]) main::lintab1#0 [phi:main->lin16u_gen#0] -- pwuz1=pwuc1 lda #lintab1 sta lin16u_gen.lintab+1 - //SEG14 [97] phi (word) lin16u_gen::min#3 = (word/signed word/dword/signed dword) 557 [phi:main->lin16u_gen#1] -- vwuz1=vwuc1 + //SEG14 [97] phi (word) lin16u_gen::min#3 = (word/signed word/dword/signed dword) $22d [phi:main->lin16u_gen#1] -- vwuz1=vwuc1 lda #<$22d sta lin16u_gen.min lda #>$22d sta lin16u_gen.min+1 - //SEG15 [97] phi (word) lin16u_gen::max#3 = (word/signed word/dword/signed dword) 29793 [phi:main->lin16u_gen#2] -- vwuz1=vwuc1 + //SEG15 [97] phi (word) lin16u_gen::max#3 = (word/signed word/dword/signed dword) $7461 [phi:main->lin16u_gen#2] -- vwuz1=vwuc1 lda #<$7461 sta lin16u_gen.max lda #>$7461 @@ -2063,17 +2063,17 @@ main: { //SEG18 [7] call lin16u_gen //SEG19 [97] phi from main::@3 to lin16u_gen [phi:main::@3->lin16u_gen] lin16u_gen_from_b3: - //SEG20 [97] phi (word*) lin16u_gen::lintab#5 = (const word[20]) main::lintab2#0 [phi:main::@3->lin16u_gen#0] -- pwuz1=pwuc1 + //SEG20 [97] phi (word*) lin16u_gen::lintab#5 = (const word[$14]) main::lintab2#0 [phi:main::@3->lin16u_gen#0] -- pwuz1=pwuc1 lda #lintab2 sta lin16u_gen.lintab+1 - //SEG21 [97] phi (word) lin16u_gen::min#3 = (word/signed word/dword/signed dword) 31179 [phi:main::@3->lin16u_gen#1] -- vwuz1=vwuc1 + //SEG21 [97] phi (word) lin16u_gen::min#3 = (word/signed word/dword/signed dword) $79cb [phi:main::@3->lin16u_gen#1] -- vwuz1=vwuc1 lda #<$79cb sta lin16u_gen.min lda #>$79cb sta lin16u_gen.min+1 - //SEG22 [97] phi (word) lin16u_gen::max#3 = (word/dword/signed dword) 63361 [phi:main::@3->lin16u_gen#2] -- vwuz1=vwuc1 + //SEG22 [97] phi (word) lin16u_gen::max#3 = (word/dword/signed dword) $f781 [phi:main::@3->lin16u_gen#2] -- vwuz1=vwuc1 lda #<$f781 sta lin16u_gen.max lda #>$f781 @@ -2087,7 +2087,7 @@ main: { //SEG25 [9] call lin16u_gen //SEG26 [97] phi from main::@4 to lin16u_gen [phi:main::@4->lin16u_gen] lin16u_gen_from_b4: - //SEG27 [97] phi (word*) lin16u_gen::lintab#5 = (const word[20]) main::lintab3#0 [phi:main::@4->lin16u_gen#0] -- pwuz1=pwuc1 + //SEG27 [97] phi (word*) lin16u_gen::lintab#5 = (const word[$14]) main::lintab3#0 [phi:main::@4->lin16u_gen#0] -- pwuz1=pwuc1 lda #lintab3 @@ -2097,7 +2097,7 @@ main: { sta lin16u_gen.min lda #>0 sta lin16u_gen.min+1 - //SEG29 [97] phi (word) lin16u_gen::max#3 = (word/signed word/dword/signed dword) 25736 [phi:main::@4->lin16u_gen#2] -- vwuz1=vwuc1 + //SEG29 [97] phi (word) lin16u_gen::max#3 = (word/signed word/dword/signed dword) $6488 [phi:main::@4->lin16u_gen#2] -- vwuz1=vwuc1 lda #<$6488 sta lin16u_gen.max lda #>$6488 @@ -2120,7 +2120,7 @@ main: { //SEG36 [13] call print_str //SEG37 [84] phi from main::@6 to print_str [phi:main::@6->print_str] print_str_from_b6: - //SEG38 [84] phi (byte*) print_char_cursor#86 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::@6->print_str#0] -- pbuz1=pbuc1 + //SEG38 [84] phi (byte*) print_char_cursor#86 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::@6->print_str#0] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -2139,7 +2139,7 @@ main: { //SEG42 [15] call print_word //SEG43 [66] phi from main::@7 to print_word [phi:main::@7->print_word] print_word_from_b7: - //SEG44 [66] phi (word) print_word::w#10 = (word/signed word/dword/signed dword) 557 [phi:main::@7->print_word#0] -- vwuz1=vwuc1 + //SEG44 [66] phi (word) print_word::w#10 = (word/signed word/dword/signed dword) $22d [phi:main::@7->print_word#0] -- vwuz1=vwuc1 lda #<$22d sta print_word.w lda #>$22d @@ -2168,7 +2168,7 @@ main: { //SEG53 [19] call print_word //SEG54 [66] phi from main::@9 to print_word [phi:main::@9->print_word] print_word_from_b9: - //SEG55 [66] phi (word) print_word::w#10 = (word/signed word/dword/signed dword) 31179 [phi:main::@9->print_word#0] -- vwuz1=vwuc1 + //SEG55 [66] phi (word) print_word::w#10 = (word/signed word/dword/signed dword) $79cb [phi:main::@9->print_word#0] -- vwuz1=vwuc1 lda #<$79cb sta print_word.w lda #>$79cb @@ -2211,7 +2211,7 @@ main: { //SEG69 [25] call print_ln //SEG70 [61] phi from main::@12 to print_ln [phi:main::@12->print_ln] print_ln_from_b12: - //SEG71 [61] phi (byte*) print_line_cursor#21 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::@12->print_ln#0] -- pbuz1=pbuc1 + //SEG71 [61] phi (byte*) print_line_cursor#21 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::@12->print_ln#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -2261,7 +2261,7 @@ main: { jmp b15 //SEG89 main::@15 b15: - //SEG90 [32] (word) print_word::w#3 ← *((const word[20]) main::lintab1#0 + (byte) main::i#10) -- vwuz1=pwuc1_derefidx_vbuz2 + //SEG90 [32] (word) print_word::w#3 ← *((const word[$14]) main::lintab1#0 + (byte) main::i#10) -- vwuz1=pwuc1_derefidx_vbuz2 ldy i lda lintab1,y sta print_word.w @@ -2290,7 +2290,7 @@ main: { jmp b17 //SEG100 main::@17 b17: - //SEG101 [36] (word) print_word::w#4 ← *((const word[20]) main::lintab2#0 + (byte) main::i#10) -- vwuz1=pwuc1_derefidx_vbuz2 + //SEG101 [36] (word) print_word::w#4 ← *((const word[$14]) main::lintab2#0 + (byte) main::i#10) -- vwuz1=pwuc1_derefidx_vbuz2 ldy i lda lintab2,y sta print_word.w @@ -2319,7 +2319,7 @@ main: { jmp b19 //SEG111 main::@19 b19: - //SEG112 [40] (word) print_word::w#5 ← *((const word[20]) main::lintab3#0 + (byte) main::i#10) -- vwuz1=pwuc1_derefidx_vbuz2 + //SEG112 [40] (word) print_word::w#5 ← *((const word[$14]) main::lintab3#0 + (byte) main::i#10) -- vwuz1=pwuc1_derefidx_vbuz2 ldy i lda lintab3,y sta print_word.w @@ -2348,7 +2348,7 @@ main: { clc adc #2 sta i - //SEG123 [45] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 20*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 + //SEG123 [45] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $14*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 lda i cmp #$14*2 bcc b1_from_b21 @@ -2378,7 +2378,7 @@ main: { //SEG132 [49] call print_word //SEG133 [66] phi from main::@22 to print_word [phi:main::@22->print_word] print_word_from_b22: - //SEG134 [66] phi (word) print_word::w#10 = (word/signed word/dword/signed dword) 29793 [phi:main::@22->print_word#0] -- vwuz1=vwuc1 + //SEG134 [66] phi (word) print_word::w#10 = (word/signed word/dword/signed dword) $7461 [phi:main::@22->print_word#0] -- vwuz1=vwuc1 lda #<$7461 sta print_word.w lda #>$7461 @@ -2407,7 +2407,7 @@ main: { //SEG143 [53] call print_word //SEG144 [66] phi from main::@24 to print_word [phi:main::@24->print_word] print_word_from_b24: - //SEG145 [66] phi (word) print_word::w#10 = (word/dword/signed dword) 63361 [phi:main::@24->print_word#0] -- vwuz1=vwuc1 + //SEG145 [66] phi (word) print_word::w#10 = (word/dword/signed dword) $f781 [phi:main::@24->print_word#0] -- vwuz1=vwuc1 lda #<$f781 sta print_word.w lda #>$f781 @@ -2436,7 +2436,7 @@ main: { //SEG154 [57] call print_word //SEG155 [66] phi from main::@26 to print_word [phi:main::@26->print_word] print_word_from_b26: - //SEG156 [66] phi (word) print_word::w#10 = (word/signed word/dword/signed dword) 25736 [phi:main::@26->print_word#0] -- vwuz1=vwuc1 + //SEG156 [66] phi (word) print_word::w#10 = (word/signed word/dword/signed dword) $6488 [phi:main::@26->print_word#0] -- vwuz1=vwuc1 lda #<$6488 sta print_word.w lda #>$6488 @@ -2473,7 +2473,7 @@ print_ln: { jmp b1 //SEG167 print_ln::@1 b1: - //SEG168 [63] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG168 [63] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -2555,7 +2555,7 @@ print_byte: { jmp b1 //SEG193 print_byte::@1 b1: - //SEG194 [76] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG194 [76] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and b sta _2 @@ -2643,7 +2643,7 @@ print_cls: { .label sc = $d //SEG220 [92] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] b1_from_print_cls: - //SEG221 [92] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG221 [92] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -2664,7 +2664,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG227 [95] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG227 [95] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1_from_b1 @@ -2709,7 +2709,7 @@ lin16u_gen: { //SEG233 [100] call divr16u //SEG234 [117] phi from lin16u_gen to divr16u [phi:lin16u_gen->divr16u] divr16u_from_lin16u_gen: - //SEG235 [117] phi (word) divr16u::divisor#6 = (byte/signed byte/word/signed word/dword/signed dword) 20-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:lin16u_gen->divr16u#0] -- vwuz1=vbuc1 + //SEG235 [117] phi (word) divr16u::divisor#6 = (byte/signed byte/word/signed word/dword/signed dword) $14-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:lin16u_gen->divr16u#0] -- vwuz1=vbuc1 lda #<$14-1 sta divr16u.divisor lda #>$14-1 @@ -2742,7 +2742,7 @@ lin16u_gen: { //SEG242 [104] call divr16u //SEG243 [117] phi from lin16u_gen::@3 to divr16u [phi:lin16u_gen::@3->divr16u] divr16u_from_b3: - //SEG244 [117] phi (word) divr16u::divisor#6 = (byte/signed byte/word/signed word/dword/signed dword) 20-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:lin16u_gen::@3->divr16u#0] -- vwuz1=vbuc1 + //SEG244 [117] phi (word) divr16u::divisor#6 = (byte/signed byte/word/signed word/dword/signed dword) $14-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:lin16u_gen::@3->divr16u#0] -- vwuz1=vbuc1 lda #<$14-1 sta divr16u.divisor lda #>$14-1 @@ -2842,7 +2842,7 @@ lin16u_gen: { bne !+ inc i+1 !: - //SEG266 [115] if((word) lin16u_gen::i#1<(byte/signed byte/word/signed word/dword/signed dword) 20) goto lin16u_gen::@1 -- vwuz1_lt_vbuc1_then_la1 + //SEG266 [115] if((word) lin16u_gen::i#1<(byte/signed byte/word/signed word/dword/signed dword) $14) goto lin16u_gen::@1 -- vwuz1_lt_vbuc1_then_la1 lda i+1 cmp #>$14 bcc b1_from_b1 @@ -2902,7 +2902,7 @@ divr16u: { //SEG282 [120] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 -- vbuz1=_hi_vwuz2 lda dividend+1 sta _1 - //SEG283 [121] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG283 [121] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuz1=vbuz2_band_vbuc1 lda #$80 and _1 sta _2 @@ -2965,7 +2965,7 @@ divr16u: { b3: //SEG300 [131] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG301 [132] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG301 [132] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b3 @@ -2989,23 +2989,23 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [28] (byte*~) print_char_cursor#91 ← (byte*) print_line_cursor#1 [ main::i#10 print_byte::b#2 print_char_cursor#91 print_line_cursor#1 ] ( main:2 [ main::i#10 print_byte::b#2 print_char_cursor#91 print_line_cursor#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::i#10 main::i#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:7 [ print_byte::b#3 print_byte::b#2 print_byte::b#0 print_byte::b#1 ] -Statement [32] (word) print_word::w#3 ← *((const word[20]) main::lintab1#0 + (byte) main::i#10) [ main::i#10 print_line_cursor#1 print_word::w#3 print_char_cursor#2 ] ( main:2 [ main::i#10 print_line_cursor#1 print_word::w#3 print_char_cursor#2 ] ) always clobbers reg byte a -Statement [36] (word) print_word::w#4 ← *((const word[20]) main::lintab2#0 + (byte) main::i#10) [ main::i#10 print_line_cursor#1 print_word::w#4 print_char_cursor#2 ] ( main:2 [ main::i#10 print_line_cursor#1 print_word::w#4 print_char_cursor#2 ] ) always clobbers reg byte a -Statement [40] (word) print_word::w#5 ← *((const word[20]) main::lintab3#0 + (byte) main::i#10) [ main::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#2 ] ( main:2 [ main::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#2 ] ) always clobbers reg byte a +Statement [32] (word) print_word::w#3 ← *((const word[$14]) main::lintab1#0 + (byte) main::i#10) [ main::i#10 print_line_cursor#1 print_word::w#3 print_char_cursor#2 ] ( main:2 [ main::i#10 print_line_cursor#1 print_word::w#3 print_char_cursor#2 ] ) always clobbers reg byte a +Statement [36] (word) print_word::w#4 ← *((const word[$14]) main::lintab2#0 + (byte) main::i#10) [ main::i#10 print_line_cursor#1 print_word::w#4 print_char_cursor#2 ] ( main:2 [ main::i#10 print_line_cursor#1 print_word::w#4 print_char_cursor#2 ] ) always clobbers reg byte a +Statement [40] (word) print_word::w#5 ← *((const word[$14]) main::lintab3#0 + (byte) main::i#10) [ main::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#2 ] ( main:2 [ main::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#2 ] ) always clobbers reg byte a Statement [46] (byte*~) print_char_cursor#100 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#100 ] ( main:2 [ print_line_cursor#1 print_char_cursor#100 ] ) always clobbers reg byte a -Statement [63] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#11 ] ( main:2::print_ln:25 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_ln:43 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_ln:59 [ print_line_cursor#1 print_char_cursor#11 ] ) always clobbers reg byte a +Statement [63] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#1 print_char_cursor#11 ] ( main:2::print_ln:25 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_ln:43 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_ln:59 [ print_line_cursor#1 print_char_cursor#11 ] ) always clobbers reg byte a Statement [64] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#11) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#11 ] ( main:2::print_ln:25 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_ln:43 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_ln:59 [ print_line_cursor#1 print_char_cursor#11 ] ) always clobbers reg byte a Statement [67] (byte) print_byte::b#0 ← > (word) print_word::w#10 [ print_word::w#10 print_byte::b#0 print_char_cursor#2 ] ( main:2::print_word:15 [ print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:19 [ print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:23 [ print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:33 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:37 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:41 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:49 [ print_line_cursor#1 print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:53 [ print_line_cursor#1 print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:57 [ print_line_cursor#1 print_word::w#10 print_byte::b#0 print_char_cursor#2 ] ) always clobbers reg byte a Statement [69] (byte) print_byte::b#1 ← < (word) print_word::w#10 [ print_char_cursor#11 print_byte::b#1 ] ( main:2::print_word:15 [ print_char_cursor#11 print_byte::b#1 ] main:2::print_word:19 [ print_char_cursor#11 print_byte::b#1 ] main:2::print_word:23 [ print_char_cursor#11 print_byte::b#1 ] main:2::print_word:33 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::b#1 ] main:2::print_word:37 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::b#1 ] main:2::print_word:41 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::b#1 ] main:2::print_word:49 [ print_line_cursor#1 print_char_cursor#11 print_byte::b#1 ] main:2::print_word:53 [ print_line_cursor#1 print_char_cursor#11 print_byte::b#1 ] main:2::print_word:57 [ print_line_cursor#1 print_char_cursor#11 print_byte::b#1 ] ) always clobbers reg byte a Statement [73] (byte~) print_byte::$0 ← (byte) print_byte::b#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#3 print_char_cursor#81 print_byte::$0 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:15::print_byte:70 [ print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:19::print_byte:70 [ print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:23::print_byte:70 [ print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] ) always clobbers reg byte a -Statement [76] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#11 print_byte::$2 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] ) always clobbers reg byte a +Statement [76] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#11 print_byte::$2 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] ) always clobbers reg byte a Statement [81] *((byte*) print_char_cursor#50) ← (byte) print_char::ch#2 [ print_char_cursor#50 ] ( main:2::print_byte:29::print_char:75 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:15::print_byte:68::print_char:75 [ print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:19::print_byte:68::print_char:75 [ print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:23::print_byte:68::print_char:75 [ print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:33::print_byte:68::print_char:75 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:37::print_byte:68::print_char:75 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:41::print_byte:68::print_char:75 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:49::print_byte:68::print_char:75 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:53::print_byte:68::print_char:75 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:57::print_byte:68::print_char:75 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:15::print_byte:70::print_char:75 [ print_byte::b#3 print_char_cursor#50 ] main:2::print_word:19::print_byte:70::print_char:75 [ print_byte::b#3 print_char_cursor#50 ] main:2::print_word:23::print_byte:70::print_char:75 [ print_byte::b#3 print_char_cursor#50 ] main:2::print_word:33::print_byte:70::print_char:75 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:37::print_byte:70::print_char:75 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:41::print_byte:70::print_char:75 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:49::print_byte:70::print_char:75 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:53::print_byte:70::print_char:75 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:57::print_byte:70::print_char:75 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_byte:29::print_char:78 [ main::i#10 print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:15::print_byte:68::print_char:78 [ print_word::w#10 print_char_cursor#50 ] main:2::print_word:19::print_byte:68::print_char:78 [ print_word::w#10 print_char_cursor#50 ] main:2::print_word:23::print_byte:68::print_char:78 [ print_word::w#10 print_char_cursor#50 ] main:2::print_word:33::print_byte:68::print_char:78 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:37::print_byte:68::print_char:78 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:41::print_byte:68::print_char:78 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:49::print_byte:68::print_char:78 [ print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:53::print_byte:68::print_char:78 [ print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:57::print_byte:68::print_char:78 [ print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:15::print_byte:70::print_char:78 [ print_char_cursor#50 ] main:2::print_word:19::print_byte:70::print_char:78 [ print_char_cursor#50 ] main:2::print_word:23::print_byte:70::print_char:78 [ print_char_cursor#50 ] main:2::print_word:33::print_byte:70::print_char:78 [ main::i#10 print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:37::print_byte:70::print_char:78 [ main::i#10 print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:41::print_byte:70::print_char:78 [ main::i#10 print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:49::print_byte:70::print_char:78 [ print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:53::print_byte:70::print_char:78 [ print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:57::print_byte:70::print_char:78 [ print_line_cursor#1 print_char_cursor#50 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ main::i#10 main::i#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:7 [ print_byte::b#3 print_byte::b#2 print_byte::b#0 print_byte::b#1 ] Statement [86] if(*((byte*) print_str::str#10)!=(byte) '@') goto print_str::@2 [ print_char_cursor#2 print_str::str#10 ] ( main:2::print_str:13 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:17 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:21 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:31 [ main::i#10 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:35 [ main::i#10 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:39 [ main::i#10 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:47 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:51 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:55 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y Statement [88] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#10) [ print_char_cursor#2 print_str::str#10 ] ( main:2::print_str:13 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:17 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:21 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:31 [ main::i#10 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:35 [ main::i#10 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:39 [ main::i#10 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:47 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:51 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:55 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y Statement [93] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:11 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [95] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:11 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [95] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:11 [ print_cls::sc#1 ] ) always clobbers reg byte a Statement [98] (word) lin16u_gen::ampl#0 ← (word) lin16u_gen::max#3 - (word) lin16u_gen::min#3 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::ampl#0 ] ( main:2::lin16u_gen:5 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::ampl#0 ] main:2::lin16u_gen:7 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::ampl#0 ] main:2::lin16u_gen:9 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::ampl#0 ] ) always clobbers reg byte a Statement [99] (word) divr16u::dividend#1 ← (word) lin16u_gen::ampl#0 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::dividend#1 ] ( main:2::lin16u_gen:5 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::dividend#1 ] main:2::lin16u_gen:7 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::dividend#1 ] main:2::lin16u_gen:9 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::dividend#1 ] ) always clobbers reg byte a Statement [101] (word) divr16u::return#2 ← (word) divr16u::return#0 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::return#2 rem16u#1 ] ( main:2::lin16u_gen:5 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::return#2 rem16u#1 ] main:2::lin16u_gen:7 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::return#2 rem16u#1 ] main:2::lin16u_gen:9 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::return#2 rem16u#1 ] ) always clobbers reg byte a @@ -3019,30 +3019,30 @@ Statement [110] (word~) lin16u_gen::$5 ← > (dword) lin16u_gen::val#2 [ lin16u_ Statement [111] *((word*) lin16u_gen::lintab#4) ← (word~) lin16u_gen::$5 [ lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#4 lin16u_gen::i#2 ] ( main:2::lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#4 lin16u_gen::i#2 ] main:2::lin16u_gen:7 [ lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#4 lin16u_gen::i#2 ] main:2::lin16u_gen:9 [ lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#4 lin16u_gen::i#2 ] ) always clobbers reg byte a reg byte y Statement [112] (dword) lin16u_gen::val#1 ← (dword) lin16u_gen::val#2 + (dword) lin16u_gen::step#0 [ lin16u_gen::step#0 lin16u_gen::lintab#4 lin16u_gen::i#2 lin16u_gen::val#1 ] ( main:2::lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::lintab#4 lin16u_gen::i#2 lin16u_gen::val#1 ] main:2::lin16u_gen:7 [ lin16u_gen::step#0 lin16u_gen::lintab#4 lin16u_gen::i#2 lin16u_gen::val#1 ] main:2::lin16u_gen:9 [ lin16u_gen::step#0 lin16u_gen::lintab#4 lin16u_gen::i#2 lin16u_gen::val#1 ] ) always clobbers reg byte a Statement [113] (word*) lin16u_gen::lintab#3 ← (word*) lin16u_gen::lintab#4 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#3 ] ( main:2::lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#3 ] main:2::lin16u_gen:7 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#3 ] main:2::lin16u_gen:9 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#3 ] ) always clobbers reg byte a -Statement [115] if((word) lin16u_gen::i#1<(byte/signed byte/word/signed word/dword/signed dword) 20) goto lin16u_gen::@1 [ lin16u_gen::step#0 lin16u_gen::val#1 lin16u_gen::lintab#3 lin16u_gen::i#1 ] ( main:2::lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::val#1 lin16u_gen::lintab#3 lin16u_gen::i#1 ] main:2::lin16u_gen:7 [ lin16u_gen::step#0 lin16u_gen::val#1 lin16u_gen::lintab#3 lin16u_gen::i#1 ] main:2::lin16u_gen:9 [ lin16u_gen::step#0 lin16u_gen::val#1 lin16u_gen::lintab#3 lin16u_gen::i#1 ] ) always clobbers reg byte a +Statement [115] if((word) lin16u_gen::i#1<(byte/signed byte/word/signed word/dword/signed dword) $14) goto lin16u_gen::@1 [ lin16u_gen::step#0 lin16u_gen::val#1 lin16u_gen::lintab#3 lin16u_gen::i#1 ] ( main:2::lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::val#1 lin16u_gen::lintab#3 lin16u_gen::i#1 ] main:2::lin16u_gen:7 [ lin16u_gen::step#0 lin16u_gen::val#1 lin16u_gen::lintab#3 lin16u_gen::i#1 ] main:2::lin16u_gen:9 [ lin16u_gen::step#0 lin16u_gen::val#1 lin16u_gen::lintab#3 lin16u_gen::i#1 ] ) always clobbers reg byte a Statement [120] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::lin16u_gen:5::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::lin16u_gen:7::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::lin16u_gen:9::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::lin16u_gen:5::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::lin16u_gen:7::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::lin16u_gen:9::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:35 [ divr16u::i#2 divr16u::i#1 ] -Statement [121] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::lin16u_gen:5::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::lin16u_gen:7::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::lin16u_gen:9::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::lin16u_gen:5::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::lin16u_gen:7::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::lin16u_gen:9::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a +Statement [121] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::lin16u_gen:5::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::lin16u_gen:7::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::lin16u_gen:9::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::lin16u_gen:5::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::lin16u_gen:7::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::lin16u_gen:9::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a Statement [123] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::lin16u_gen:5::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::lin16u_gen:7::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::lin16u_gen:9::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::lin16u_gen:5::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::lin16u_gen:7::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::lin16u_gen:9::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a Statement [127] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::lin16u_gen:5::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::lin16u_gen:7::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::lin16u_gen:9::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::lin16u_gen:5::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::lin16u_gen:7::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::lin16u_gen:9::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) always clobbers reg byte a Statement [129] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::lin16u_gen:5::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::lin16u_gen:7::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::lin16u_gen:9::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::lin16u_gen:5::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::lin16u_gen:7::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::lin16u_gen:9::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a Statement [133] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::lin16u_gen:5::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::return#0 rem16u#1 ] main:2::lin16u_gen:7::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::return#0 rem16u#1 ] main:2::lin16u_gen:9::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::return#0 rem16u#1 ] main:2::lin16u_gen:5::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::return#0 rem16u#1 ] main:2::lin16u_gen:7::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::return#0 rem16u#1 ] main:2::lin16u_gen:9::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::return#0 rem16u#1 ] ) always clobbers reg byte a Statement [28] (byte*~) print_char_cursor#91 ← (byte*) print_line_cursor#1 [ main::i#10 print_byte::b#2 print_char_cursor#91 print_line_cursor#1 ] ( main:2 [ main::i#10 print_byte::b#2 print_char_cursor#91 print_line_cursor#1 ] ) always clobbers reg byte a -Statement [32] (word) print_word::w#3 ← *((const word[20]) main::lintab1#0 + (byte) main::i#10) [ main::i#10 print_line_cursor#1 print_word::w#3 print_char_cursor#2 ] ( main:2 [ main::i#10 print_line_cursor#1 print_word::w#3 print_char_cursor#2 ] ) always clobbers reg byte a -Statement [36] (word) print_word::w#4 ← *((const word[20]) main::lintab2#0 + (byte) main::i#10) [ main::i#10 print_line_cursor#1 print_word::w#4 print_char_cursor#2 ] ( main:2 [ main::i#10 print_line_cursor#1 print_word::w#4 print_char_cursor#2 ] ) always clobbers reg byte a -Statement [40] (word) print_word::w#5 ← *((const word[20]) main::lintab3#0 + (byte) main::i#10) [ main::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#2 ] ( main:2 [ main::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#2 ] ) always clobbers reg byte a +Statement [32] (word) print_word::w#3 ← *((const word[$14]) main::lintab1#0 + (byte) main::i#10) [ main::i#10 print_line_cursor#1 print_word::w#3 print_char_cursor#2 ] ( main:2 [ main::i#10 print_line_cursor#1 print_word::w#3 print_char_cursor#2 ] ) always clobbers reg byte a +Statement [36] (word) print_word::w#4 ← *((const word[$14]) main::lintab2#0 + (byte) main::i#10) [ main::i#10 print_line_cursor#1 print_word::w#4 print_char_cursor#2 ] ( main:2 [ main::i#10 print_line_cursor#1 print_word::w#4 print_char_cursor#2 ] ) always clobbers reg byte a +Statement [40] (word) print_word::w#5 ← *((const word[$14]) main::lintab3#0 + (byte) main::i#10) [ main::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#2 ] ( main:2 [ main::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#2 ] ) always clobbers reg byte a Statement [46] (byte*~) print_char_cursor#100 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#100 ] ( main:2 [ print_line_cursor#1 print_char_cursor#100 ] ) always clobbers reg byte a -Statement [63] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#11 ] ( main:2::print_ln:25 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_ln:43 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_ln:59 [ print_line_cursor#1 print_char_cursor#11 ] ) always clobbers reg byte a +Statement [63] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#1 print_char_cursor#11 ] ( main:2::print_ln:25 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_ln:43 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_ln:59 [ print_line_cursor#1 print_char_cursor#11 ] ) always clobbers reg byte a Statement [64] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#11) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#11 ] ( main:2::print_ln:25 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_ln:43 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_ln:59 [ print_line_cursor#1 print_char_cursor#11 ] ) always clobbers reg byte a Statement [67] (byte) print_byte::b#0 ← > (word) print_word::w#10 [ print_word::w#10 print_byte::b#0 print_char_cursor#2 ] ( main:2::print_word:15 [ print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:19 [ print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:23 [ print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:33 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:37 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:41 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:49 [ print_line_cursor#1 print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:53 [ print_line_cursor#1 print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:57 [ print_line_cursor#1 print_word::w#10 print_byte::b#0 print_char_cursor#2 ] ) always clobbers reg byte a Statement [69] (byte) print_byte::b#1 ← < (word) print_word::w#10 [ print_char_cursor#11 print_byte::b#1 ] ( main:2::print_word:15 [ print_char_cursor#11 print_byte::b#1 ] main:2::print_word:19 [ print_char_cursor#11 print_byte::b#1 ] main:2::print_word:23 [ print_char_cursor#11 print_byte::b#1 ] main:2::print_word:33 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::b#1 ] main:2::print_word:37 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::b#1 ] main:2::print_word:41 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::b#1 ] main:2::print_word:49 [ print_line_cursor#1 print_char_cursor#11 print_byte::b#1 ] main:2::print_word:53 [ print_line_cursor#1 print_char_cursor#11 print_byte::b#1 ] main:2::print_word:57 [ print_line_cursor#1 print_char_cursor#11 print_byte::b#1 ] ) always clobbers reg byte a Statement [73] (byte~) print_byte::$0 ← (byte) print_byte::b#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#3 print_char_cursor#81 print_byte::$0 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:15::print_byte:70 [ print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:19::print_byte:70 [ print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:23::print_byte:70 [ print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] ) always clobbers reg byte a -Statement [76] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#11 print_byte::$2 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] ) always clobbers reg byte a +Statement [76] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#11 print_byte::$2 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] ) always clobbers reg byte a Statement [81] *((byte*) print_char_cursor#50) ← (byte) print_char::ch#2 [ print_char_cursor#50 ] ( main:2::print_byte:29::print_char:75 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:15::print_byte:68::print_char:75 [ print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:19::print_byte:68::print_char:75 [ print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:23::print_byte:68::print_char:75 [ print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:33::print_byte:68::print_char:75 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:37::print_byte:68::print_char:75 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:41::print_byte:68::print_char:75 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:49::print_byte:68::print_char:75 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:53::print_byte:68::print_char:75 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:57::print_byte:68::print_char:75 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:15::print_byte:70::print_char:75 [ print_byte::b#3 print_char_cursor#50 ] main:2::print_word:19::print_byte:70::print_char:75 [ print_byte::b#3 print_char_cursor#50 ] main:2::print_word:23::print_byte:70::print_char:75 [ print_byte::b#3 print_char_cursor#50 ] main:2::print_word:33::print_byte:70::print_char:75 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:37::print_byte:70::print_char:75 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:41::print_byte:70::print_char:75 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:49::print_byte:70::print_char:75 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:53::print_byte:70::print_char:75 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_word:57::print_byte:70::print_char:75 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#50 ] main:2::print_byte:29::print_char:78 [ main::i#10 print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:15::print_byte:68::print_char:78 [ print_word::w#10 print_char_cursor#50 ] main:2::print_word:19::print_byte:68::print_char:78 [ print_word::w#10 print_char_cursor#50 ] main:2::print_word:23::print_byte:68::print_char:78 [ print_word::w#10 print_char_cursor#50 ] main:2::print_word:33::print_byte:68::print_char:78 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:37::print_byte:68::print_char:78 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:41::print_byte:68::print_char:78 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:49::print_byte:68::print_char:78 [ print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:53::print_byte:68::print_char:78 [ print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:57::print_byte:68::print_char:78 [ print_line_cursor#1 print_word::w#10 print_char_cursor#50 ] main:2::print_word:15::print_byte:70::print_char:78 [ print_char_cursor#50 ] main:2::print_word:19::print_byte:70::print_char:78 [ print_char_cursor#50 ] main:2::print_word:23::print_byte:70::print_char:78 [ print_char_cursor#50 ] main:2::print_word:33::print_byte:70::print_char:78 [ main::i#10 print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:37::print_byte:70::print_char:78 [ main::i#10 print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:41::print_byte:70::print_char:78 [ main::i#10 print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:49::print_byte:70::print_char:78 [ print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:53::print_byte:70::print_char:78 [ print_line_cursor#1 print_char_cursor#50 ] main:2::print_word:57::print_byte:70::print_char:78 [ print_line_cursor#1 print_char_cursor#50 ] ) always clobbers reg byte y Statement [86] if(*((byte*) print_str::str#10)!=(byte) '@') goto print_str::@2 [ print_char_cursor#2 print_str::str#10 ] ( main:2::print_str:13 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:17 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:21 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:31 [ main::i#10 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:35 [ main::i#10 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:39 [ main::i#10 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:47 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:51 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:55 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y Statement [88] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#10) [ print_char_cursor#2 print_str::str#10 ] ( main:2::print_str:13 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:17 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:21 [ print_char_cursor#2 print_str::str#10 ] main:2::print_str:31 [ main::i#10 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:35 [ main::i#10 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:39 [ main::i#10 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:47 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:51 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::print_str:55 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y Statement [93] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:11 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [95] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:11 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [95] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:11 [ print_cls::sc#1 ] ) always clobbers reg byte a Statement [98] (word) lin16u_gen::ampl#0 ← (word) lin16u_gen::max#3 - (word) lin16u_gen::min#3 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::ampl#0 ] ( main:2::lin16u_gen:5 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::ampl#0 ] main:2::lin16u_gen:7 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::ampl#0 ] main:2::lin16u_gen:9 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::ampl#0 ] ) always clobbers reg byte a Statement [99] (word) divr16u::dividend#1 ← (word) lin16u_gen::ampl#0 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::dividend#1 ] ( main:2::lin16u_gen:5 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::dividend#1 ] main:2::lin16u_gen:7 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::dividend#1 ] main:2::lin16u_gen:9 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::dividend#1 ] ) always clobbers reg byte a Statement [101] (word) divr16u::return#2 ← (word) divr16u::return#0 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::return#2 rem16u#1 ] ( main:2::lin16u_gen:5 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::return#2 rem16u#1 ] main:2::lin16u_gen:7 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::return#2 rem16u#1 ] main:2::lin16u_gen:9 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::return#2 rem16u#1 ] ) always clobbers reg byte a @@ -3056,9 +3056,9 @@ Statement [110] (word~) lin16u_gen::$5 ← > (dword) lin16u_gen::val#2 [ lin16u_ Statement [111] *((word*) lin16u_gen::lintab#4) ← (word~) lin16u_gen::$5 [ lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#4 lin16u_gen::i#2 ] ( main:2::lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#4 lin16u_gen::i#2 ] main:2::lin16u_gen:7 [ lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#4 lin16u_gen::i#2 ] main:2::lin16u_gen:9 [ lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#4 lin16u_gen::i#2 ] ) always clobbers reg byte a reg byte y Statement [112] (dword) lin16u_gen::val#1 ← (dword) lin16u_gen::val#2 + (dword) lin16u_gen::step#0 [ lin16u_gen::step#0 lin16u_gen::lintab#4 lin16u_gen::i#2 lin16u_gen::val#1 ] ( main:2::lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::lintab#4 lin16u_gen::i#2 lin16u_gen::val#1 ] main:2::lin16u_gen:7 [ lin16u_gen::step#0 lin16u_gen::lintab#4 lin16u_gen::i#2 lin16u_gen::val#1 ] main:2::lin16u_gen:9 [ lin16u_gen::step#0 lin16u_gen::lintab#4 lin16u_gen::i#2 lin16u_gen::val#1 ] ) always clobbers reg byte a Statement [113] (word*) lin16u_gen::lintab#3 ← (word*) lin16u_gen::lintab#4 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#3 ] ( main:2::lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#3 ] main:2::lin16u_gen:7 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#3 ] main:2::lin16u_gen:9 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#3 ] ) always clobbers reg byte a -Statement [115] if((word) lin16u_gen::i#1<(byte/signed byte/word/signed word/dword/signed dword) 20) goto lin16u_gen::@1 [ lin16u_gen::step#0 lin16u_gen::val#1 lin16u_gen::lintab#3 lin16u_gen::i#1 ] ( main:2::lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::val#1 lin16u_gen::lintab#3 lin16u_gen::i#1 ] main:2::lin16u_gen:7 [ lin16u_gen::step#0 lin16u_gen::val#1 lin16u_gen::lintab#3 lin16u_gen::i#1 ] main:2::lin16u_gen:9 [ lin16u_gen::step#0 lin16u_gen::val#1 lin16u_gen::lintab#3 lin16u_gen::i#1 ] ) always clobbers reg byte a +Statement [115] if((word) lin16u_gen::i#1<(byte/signed byte/word/signed word/dword/signed dword) $14) goto lin16u_gen::@1 [ lin16u_gen::step#0 lin16u_gen::val#1 lin16u_gen::lintab#3 lin16u_gen::i#1 ] ( main:2::lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::val#1 lin16u_gen::lintab#3 lin16u_gen::i#1 ] main:2::lin16u_gen:7 [ lin16u_gen::step#0 lin16u_gen::val#1 lin16u_gen::lintab#3 lin16u_gen::i#1 ] main:2::lin16u_gen:9 [ lin16u_gen::step#0 lin16u_gen::val#1 lin16u_gen::lintab#3 lin16u_gen::i#1 ] ) always clobbers reg byte a Statement [120] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::lin16u_gen:5::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::lin16u_gen:7::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::lin16u_gen:9::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::lin16u_gen:5::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::lin16u_gen:7::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::lin16u_gen:9::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a -Statement [121] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::lin16u_gen:5::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::lin16u_gen:7::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::lin16u_gen:9::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::lin16u_gen:5::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::lin16u_gen:7::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::lin16u_gen:9::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a +Statement [121] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::lin16u_gen:5::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::lin16u_gen:7::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::lin16u_gen:9::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::lin16u_gen:5::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::lin16u_gen:7::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::lin16u_gen:9::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a Statement [123] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::lin16u_gen:5::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::lin16u_gen:7::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::lin16u_gen:9::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::lin16u_gen:5::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::lin16u_gen:7::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::lin16u_gen:9::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a Statement [127] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::lin16u_gen:5::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::lin16u_gen:7::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::lin16u_gen:9::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::lin16u_gen:5::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::lin16u_gen:7::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::lin16u_gen:9::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) always clobbers reg byte a Statement [129] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::lin16u_gen:5::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::lin16u_gen:7::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::lin16u_gen:9::divr16u:100 [ lin16u_gen::min#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::lin16u_gen:5::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::lin16u_gen:7::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::lin16u_gen:9::divr16u:104 [ lin16u_gen::min#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a @@ -3173,17 +3173,17 @@ main: { //SEG11 [5] call lin16u_gen //SEG12 [97] phi from main to lin16u_gen [phi:main->lin16u_gen] lin16u_gen_from_main: - //SEG13 [97] phi (word*) lin16u_gen::lintab#5 = (const word[20]) main::lintab1#0 [phi:main->lin16u_gen#0] -- pwuz1=pwuc1 + //SEG13 [97] phi (word*) lin16u_gen::lintab#5 = (const word[$14]) main::lintab1#0 [phi:main->lin16u_gen#0] -- pwuz1=pwuc1 lda #lintab1 sta lin16u_gen.lintab+1 - //SEG14 [97] phi (word) lin16u_gen::min#3 = (word/signed word/dword/signed dword) 557 [phi:main->lin16u_gen#1] -- vwuz1=vwuc1 + //SEG14 [97] phi (word) lin16u_gen::min#3 = (word/signed word/dword/signed dword) $22d [phi:main->lin16u_gen#1] -- vwuz1=vwuc1 lda #<$22d sta lin16u_gen.min lda #>$22d sta lin16u_gen.min+1 - //SEG15 [97] phi (word) lin16u_gen::max#3 = (word/signed word/dword/signed dword) 29793 [phi:main->lin16u_gen#2] -- vwuz1=vwuc1 + //SEG15 [97] phi (word) lin16u_gen::max#3 = (word/signed word/dword/signed dword) $7461 [phi:main->lin16u_gen#2] -- vwuz1=vwuc1 lda #<$7461 sta lin16u_gen.max lda #>$7461 @@ -3197,17 +3197,17 @@ main: { //SEG18 [7] call lin16u_gen //SEG19 [97] phi from main::@3 to lin16u_gen [phi:main::@3->lin16u_gen] lin16u_gen_from_b3: - //SEG20 [97] phi (word*) lin16u_gen::lintab#5 = (const word[20]) main::lintab2#0 [phi:main::@3->lin16u_gen#0] -- pwuz1=pwuc1 + //SEG20 [97] phi (word*) lin16u_gen::lintab#5 = (const word[$14]) main::lintab2#0 [phi:main::@3->lin16u_gen#0] -- pwuz1=pwuc1 lda #lintab2 sta lin16u_gen.lintab+1 - //SEG21 [97] phi (word) lin16u_gen::min#3 = (word/signed word/dword/signed dword) 31179 [phi:main::@3->lin16u_gen#1] -- vwuz1=vwuc1 + //SEG21 [97] phi (word) lin16u_gen::min#3 = (word/signed word/dword/signed dword) $79cb [phi:main::@3->lin16u_gen#1] -- vwuz1=vwuc1 lda #<$79cb sta lin16u_gen.min lda #>$79cb sta lin16u_gen.min+1 - //SEG22 [97] phi (word) lin16u_gen::max#3 = (word/dword/signed dword) 63361 [phi:main::@3->lin16u_gen#2] -- vwuz1=vwuc1 + //SEG22 [97] phi (word) lin16u_gen::max#3 = (word/dword/signed dword) $f781 [phi:main::@3->lin16u_gen#2] -- vwuz1=vwuc1 lda #<$f781 sta lin16u_gen.max lda #>$f781 @@ -3221,7 +3221,7 @@ main: { //SEG25 [9] call lin16u_gen //SEG26 [97] phi from main::@4 to lin16u_gen [phi:main::@4->lin16u_gen] lin16u_gen_from_b4: - //SEG27 [97] phi (word*) lin16u_gen::lintab#5 = (const word[20]) main::lintab3#0 [phi:main::@4->lin16u_gen#0] -- pwuz1=pwuc1 + //SEG27 [97] phi (word*) lin16u_gen::lintab#5 = (const word[$14]) main::lintab3#0 [phi:main::@4->lin16u_gen#0] -- pwuz1=pwuc1 lda #lintab3 @@ -3231,7 +3231,7 @@ main: { sta lin16u_gen.min lda #>0 sta lin16u_gen.min+1 - //SEG29 [97] phi (word) lin16u_gen::max#3 = (word/signed word/dword/signed dword) 25736 [phi:main::@4->lin16u_gen#2] -- vwuz1=vwuc1 + //SEG29 [97] phi (word) lin16u_gen::max#3 = (word/signed word/dword/signed dword) $6488 [phi:main::@4->lin16u_gen#2] -- vwuz1=vwuc1 lda #<$6488 sta lin16u_gen.max lda #>$6488 @@ -3254,7 +3254,7 @@ main: { //SEG36 [13] call print_str //SEG37 [84] phi from main::@6 to print_str [phi:main::@6->print_str] print_str_from_b6: - //SEG38 [84] phi (byte*) print_char_cursor#86 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::@6->print_str#0] -- pbuz1=pbuc1 + //SEG38 [84] phi (byte*) print_char_cursor#86 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::@6->print_str#0] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -3273,7 +3273,7 @@ main: { //SEG42 [15] call print_word //SEG43 [66] phi from main::@7 to print_word [phi:main::@7->print_word] print_word_from_b7: - //SEG44 [66] phi (word) print_word::w#10 = (word/signed word/dword/signed dword) 557 [phi:main::@7->print_word#0] -- vwuz1=vwuc1 + //SEG44 [66] phi (word) print_word::w#10 = (word/signed word/dword/signed dword) $22d [phi:main::@7->print_word#0] -- vwuz1=vwuc1 lda #<$22d sta print_word.w lda #>$22d @@ -3302,7 +3302,7 @@ main: { //SEG53 [19] call print_word //SEG54 [66] phi from main::@9 to print_word [phi:main::@9->print_word] print_word_from_b9: - //SEG55 [66] phi (word) print_word::w#10 = (word/signed word/dword/signed dword) 31179 [phi:main::@9->print_word#0] -- vwuz1=vwuc1 + //SEG55 [66] phi (word) print_word::w#10 = (word/signed word/dword/signed dword) $79cb [phi:main::@9->print_word#0] -- vwuz1=vwuc1 lda #<$79cb sta print_word.w lda #>$79cb @@ -3345,7 +3345,7 @@ main: { //SEG69 [25] call print_ln //SEG70 [61] phi from main::@12 to print_ln [phi:main::@12->print_ln] print_ln_from_b12: - //SEG71 [61] phi (byte*) print_line_cursor#21 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::@12->print_ln#0] -- pbuz1=pbuc1 + //SEG71 [61] phi (byte*) print_line_cursor#21 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::@12->print_ln#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -3394,7 +3394,7 @@ main: { jmp b15 //SEG89 main::@15 b15: - //SEG90 [32] (word) print_word::w#3 ← *((const word[20]) main::lintab1#0 + (byte) main::i#10) -- vwuz1=pwuc1_derefidx_vbuz2 + //SEG90 [32] (word) print_word::w#3 ← *((const word[$14]) main::lintab1#0 + (byte) main::i#10) -- vwuz1=pwuc1_derefidx_vbuz2 ldy i lda lintab1,y sta print_word.w @@ -3423,7 +3423,7 @@ main: { jmp b17 //SEG100 main::@17 b17: - //SEG101 [36] (word) print_word::w#4 ← *((const word[20]) main::lintab2#0 + (byte) main::i#10) -- vwuz1=pwuc1_derefidx_vbuz2 + //SEG101 [36] (word) print_word::w#4 ← *((const word[$14]) main::lintab2#0 + (byte) main::i#10) -- vwuz1=pwuc1_derefidx_vbuz2 ldy i lda lintab2,y sta print_word.w @@ -3452,7 +3452,7 @@ main: { jmp b19 //SEG111 main::@19 b19: - //SEG112 [40] (word) print_word::w#5 ← *((const word[20]) main::lintab3#0 + (byte) main::i#10) -- vwuz1=pwuc1_derefidx_vbuz2 + //SEG112 [40] (word) print_word::w#5 ← *((const word[$14]) main::lintab3#0 + (byte) main::i#10) -- vwuz1=pwuc1_derefidx_vbuz2 ldy i lda lintab3,y sta print_word.w @@ -3481,7 +3481,7 @@ main: { clc adc #2 sta i - //SEG123 [45] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 20*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 + //SEG123 [45] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $14*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 lda i cmp #$14*2 bcc b1_from_b21 @@ -3511,7 +3511,7 @@ main: { //SEG132 [49] call print_word //SEG133 [66] phi from main::@22 to print_word [phi:main::@22->print_word] print_word_from_b22: - //SEG134 [66] phi (word) print_word::w#10 = (word/signed word/dword/signed dword) 29793 [phi:main::@22->print_word#0] -- vwuz1=vwuc1 + //SEG134 [66] phi (word) print_word::w#10 = (word/signed word/dword/signed dword) $7461 [phi:main::@22->print_word#0] -- vwuz1=vwuc1 lda #<$7461 sta print_word.w lda #>$7461 @@ -3540,7 +3540,7 @@ main: { //SEG143 [53] call print_word //SEG144 [66] phi from main::@24 to print_word [phi:main::@24->print_word] print_word_from_b24: - //SEG145 [66] phi (word) print_word::w#10 = (word/dword/signed dword) 63361 [phi:main::@24->print_word#0] -- vwuz1=vwuc1 + //SEG145 [66] phi (word) print_word::w#10 = (word/dword/signed dword) $f781 [phi:main::@24->print_word#0] -- vwuz1=vwuc1 lda #<$f781 sta print_word.w lda #>$f781 @@ -3569,7 +3569,7 @@ main: { //SEG154 [57] call print_word //SEG155 [66] phi from main::@26 to print_word [phi:main::@26->print_word] print_word_from_b26: - //SEG156 [66] phi (word) print_word::w#10 = (word/signed word/dword/signed dword) 25736 [phi:main::@26->print_word#0] -- vwuz1=vwuc1 + //SEG156 [66] phi (word) print_word::w#10 = (word/signed word/dword/signed dword) $6488 [phi:main::@26->print_word#0] -- vwuz1=vwuc1 lda #<$6488 sta print_word.w lda #>$6488 @@ -3606,7 +3606,7 @@ print_ln: { jmp b1 //SEG167 print_ln::@1 b1: - //SEG168 [63] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG168 [63] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -3683,7 +3683,7 @@ print_byte: { jmp b1 //SEG193 print_byte::@1 b1: - //SEG194 [76] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG194 [76] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG195 [77] (byte) print_char::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) -- vbuaa=pbuc1_derefidx_vbuaa @@ -3767,7 +3767,7 @@ print_cls: { .label sc = 3 //SEG220 [92] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] b1_from_print_cls: - //SEG221 [92] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG221 [92] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -3788,7 +3788,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG227 [95] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG227 [95] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1_from_b1 @@ -3829,7 +3829,7 @@ lin16u_gen: { //SEG233 [100] call divr16u //SEG234 [117] phi from lin16u_gen to divr16u [phi:lin16u_gen->divr16u] divr16u_from_lin16u_gen: - //SEG235 [117] phi (word) divr16u::divisor#6 = (byte/signed byte/word/signed word/dword/signed dword) 20-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:lin16u_gen->divr16u#0] -- vwuz1=vbuc1 + //SEG235 [117] phi (word) divr16u::divisor#6 = (byte/signed byte/word/signed word/dword/signed dword) $14-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:lin16u_gen->divr16u#0] -- vwuz1=vbuc1 lda #<$14-1 sta divr16u.divisor lda #>$14-1 @@ -3854,7 +3854,7 @@ lin16u_gen: { //SEG242 [104] call divr16u //SEG243 [117] phi from lin16u_gen::@3 to divr16u [phi:lin16u_gen::@3->divr16u] divr16u_from_b3: - //SEG244 [117] phi (word) divr16u::divisor#6 = (byte/signed byte/word/signed word/dword/signed dword) 20-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:lin16u_gen::@3->divr16u#0] -- vwuz1=vbuc1 + //SEG244 [117] phi (word) divr16u::divisor#6 = (byte/signed byte/word/signed word/dword/signed dword) $14-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:lin16u_gen::@3->divr16u#0] -- vwuz1=vbuc1 lda #<$14-1 sta divr16u.divisor lda #>$14-1 @@ -3946,7 +3946,7 @@ lin16u_gen: { bne !+ inc i+1 !: - //SEG266 [115] if((word) lin16u_gen::i#1<(byte/signed byte/word/signed word/dword/signed dword) 20) goto lin16u_gen::@1 -- vwuz1_lt_vbuc1_then_la1 + //SEG266 [115] if((word) lin16u_gen::i#1<(byte/signed byte/word/signed word/dword/signed dword) $14) goto lin16u_gen::@1 -- vwuz1_lt_vbuc1_then_la1 lda i+1 cmp #>$14 bcc b1_from_b1 @@ -3999,7 +3999,7 @@ divr16u: { rol rem+1 //SEG282 [120] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 -- vbuaa=_hi_vwuz1 lda dividend+1 - //SEG283 [121] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuaa_band_vbuc1 + //SEG283 [121] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 //SEG284 [122] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuaa_eq_0_then_la1 cmp #0 @@ -4059,7 +4059,7 @@ divr16u: { b3: //SEG300 [131] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuxx=_inc_vbuxx inx - //SEG301 [132] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG301 [132] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1_from_b3 jmp b6 @@ -4379,12 +4379,12 @@ FINAL SYMBOL TABLE (byte) main::i (byte) main::i#1 i zp ZP_BYTE:2 16.5 (byte) main::i#10 i zp ZP_BYTE:2 3.666666666666667 -(word[20]) main::lintab1 -(const word[20]) main::lintab1#0 lintab1 = { fill( 20, 0) } -(word[20]) main::lintab2 -(const word[20]) main::lintab2#0 lintab2 = { fill( 20, 0) } -(word[20]) main::lintab3 -(const word[20]) main::lintab3#0 lintab3 = { fill( 20, 0) } +(word[$14]) main::lintab1 +(const word[$14]) main::lintab1#0 lintab1 = { fill( $14, 0) } +(word[$14]) main::lintab2 +(const word[$14]) main::lintab2#0 lintab2 = { fill( $14, 0) } +(word[$14]) main::lintab3 +(const word[$14]) main::lintab3#0 lintab3 = { fill( $14, 0) } (const string) main::str str = (string) " @" (const string) main::str1 str1 = (string) " @" (void()) print_byte((byte) print_byte::b) @@ -4495,17 +4495,17 @@ main: { .label i = 2 //SEG11 [5] call lin16u_gen //SEG12 [97] phi from main to lin16u_gen [phi:main->lin16u_gen] - //SEG13 [97] phi (word*) lin16u_gen::lintab#5 = (const word[20]) main::lintab1#0 [phi:main->lin16u_gen#0] -- pwuz1=pwuc1 + //SEG13 [97] phi (word*) lin16u_gen::lintab#5 = (const word[$14]) main::lintab1#0 [phi:main->lin16u_gen#0] -- pwuz1=pwuc1 lda #lintab1 sta lin16u_gen.lintab+1 - //SEG14 [97] phi (word) lin16u_gen::min#3 = (word/signed word/dword/signed dword) 557 [phi:main->lin16u_gen#1] -- vwuz1=vwuc1 + //SEG14 [97] phi (word) lin16u_gen::min#3 = (word/signed word/dword/signed dword) $22d [phi:main->lin16u_gen#1] -- vwuz1=vwuc1 lda #<$22d sta lin16u_gen.min lda #>$22d sta lin16u_gen.min+1 - //SEG15 [97] phi (word) lin16u_gen::max#3 = (word/signed word/dword/signed dword) 29793 [phi:main->lin16u_gen#2] -- vwuz1=vwuc1 + //SEG15 [97] phi (word) lin16u_gen::max#3 = (word/signed word/dword/signed dword) $7461 [phi:main->lin16u_gen#2] -- vwuz1=vwuc1 lda #<$7461 sta lin16u_gen.max lda #>$7461 @@ -4515,17 +4515,17 @@ main: { //SEG17 main::@3 //SEG18 [7] call lin16u_gen //SEG19 [97] phi from main::@3 to lin16u_gen [phi:main::@3->lin16u_gen] - //SEG20 [97] phi (word*) lin16u_gen::lintab#5 = (const word[20]) main::lintab2#0 [phi:main::@3->lin16u_gen#0] -- pwuz1=pwuc1 + //SEG20 [97] phi (word*) lin16u_gen::lintab#5 = (const word[$14]) main::lintab2#0 [phi:main::@3->lin16u_gen#0] -- pwuz1=pwuc1 lda #lintab2 sta lin16u_gen.lintab+1 - //SEG21 [97] phi (word) lin16u_gen::min#3 = (word/signed word/dword/signed dword) 31179 [phi:main::@3->lin16u_gen#1] -- vwuz1=vwuc1 + //SEG21 [97] phi (word) lin16u_gen::min#3 = (word/signed word/dword/signed dword) $79cb [phi:main::@3->lin16u_gen#1] -- vwuz1=vwuc1 lda #<$79cb sta lin16u_gen.min lda #>$79cb sta lin16u_gen.min+1 - //SEG22 [97] phi (word) lin16u_gen::max#3 = (word/dword/signed dword) 63361 [phi:main::@3->lin16u_gen#2] -- vwuz1=vwuc1 + //SEG22 [97] phi (word) lin16u_gen::max#3 = (word/dword/signed dword) $f781 [phi:main::@3->lin16u_gen#2] -- vwuz1=vwuc1 lda #<$f781 sta lin16u_gen.max lda #>$f781 @@ -4535,7 +4535,7 @@ main: { //SEG24 main::@4 //SEG25 [9] call lin16u_gen //SEG26 [97] phi from main::@4 to lin16u_gen [phi:main::@4->lin16u_gen] - //SEG27 [97] phi (word*) lin16u_gen::lintab#5 = (const word[20]) main::lintab3#0 [phi:main::@4->lin16u_gen#0] -- pwuz1=pwuc1 + //SEG27 [97] phi (word*) lin16u_gen::lintab#5 = (const word[$14]) main::lintab3#0 [phi:main::@4->lin16u_gen#0] -- pwuz1=pwuc1 lda #lintab3 @@ -4544,7 +4544,7 @@ main: { lda #<0 sta lin16u_gen.min sta lin16u_gen.min+1 - //SEG29 [97] phi (word) lin16u_gen::max#3 = (word/signed word/dword/signed dword) 25736 [phi:main::@4->lin16u_gen#2] -- vwuz1=vwuc1 + //SEG29 [97] phi (word) lin16u_gen::max#3 = (word/signed word/dword/signed dword) $6488 [phi:main::@4->lin16u_gen#2] -- vwuz1=vwuc1 lda #<$6488 sta lin16u_gen.max lda #>$6488 @@ -4559,7 +4559,7 @@ main: { //SEG35 main::@6 //SEG36 [13] call print_str //SEG37 [84] phi from main::@6 to print_str [phi:main::@6->print_str] - //SEG38 [84] phi (byte*) print_char_cursor#86 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::@6->print_str#0] -- pbuz1=pbuc1 + //SEG38 [84] phi (byte*) print_char_cursor#86 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::@6->print_str#0] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -4574,7 +4574,7 @@ main: { //SEG41 main::@7 //SEG42 [15] call print_word //SEG43 [66] phi from main::@7 to print_word [phi:main::@7->print_word] - //SEG44 [66] phi (word) print_word::w#10 = (word/signed word/dword/signed dword) 557 [phi:main::@7->print_word#0] -- vwuz1=vwuc1 + //SEG44 [66] phi (word) print_word::w#10 = (word/signed word/dword/signed dword) $22d [phi:main::@7->print_word#0] -- vwuz1=vwuc1 lda #<$22d sta print_word.w lda #>$22d @@ -4595,7 +4595,7 @@ main: { //SEG52 main::@9 //SEG53 [19] call print_word //SEG54 [66] phi from main::@9 to print_word [phi:main::@9->print_word] - //SEG55 [66] phi (word) print_word::w#10 = (word/signed word/dword/signed dword) 31179 [phi:main::@9->print_word#0] -- vwuz1=vwuc1 + //SEG55 [66] phi (word) print_word::w#10 = (word/signed word/dword/signed dword) $79cb [phi:main::@9->print_word#0] -- vwuz1=vwuc1 lda #<$79cb sta print_word.w lda #>$79cb @@ -4625,7 +4625,7 @@ main: { //SEG68 main::@12 //SEG69 [25] call print_ln //SEG70 [61] phi from main::@12 to print_ln [phi:main::@12->print_ln] - //SEG71 [61] phi (byte*) print_line_cursor#21 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::@12->print_ln#0] -- pbuz1=pbuc1 + //SEG71 [61] phi (byte*) print_line_cursor#21 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::@12->print_ln#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -4663,7 +4663,7 @@ main: { sta print_str.str+1 jsr print_str //SEG89 main::@15 - //SEG90 [32] (word) print_word::w#3 ← *((const word[20]) main::lintab1#0 + (byte) main::i#10) -- vwuz1=pwuc1_derefidx_vbuz2 + //SEG90 [32] (word) print_word::w#3 ← *((const word[$14]) main::lintab1#0 + (byte) main::i#10) -- vwuz1=pwuc1_derefidx_vbuz2 ldy i lda lintab1,y sta print_word.w @@ -4685,7 +4685,7 @@ main: { sta print_str.str+1 jsr print_str //SEG100 main::@17 - //SEG101 [36] (word) print_word::w#4 ← *((const word[20]) main::lintab2#0 + (byte) main::i#10) -- vwuz1=pwuc1_derefidx_vbuz2 + //SEG101 [36] (word) print_word::w#4 ← *((const word[$14]) main::lintab2#0 + (byte) main::i#10) -- vwuz1=pwuc1_derefidx_vbuz2 ldy i lda lintab2,y sta print_word.w @@ -4707,7 +4707,7 @@ main: { sta print_str.str+1 jsr print_str //SEG111 main::@19 - //SEG112 [40] (word) print_word::w#5 ← *((const word[20]) main::lintab3#0 + (byte) main::i#10) -- vwuz1=pwuc1_derefidx_vbuz2 + //SEG112 [40] (word) print_word::w#5 ← *((const word[$14]) main::lintab3#0 + (byte) main::i#10) -- vwuz1=pwuc1_derefidx_vbuz2 ldy i lda lintab3,y sta print_word.w @@ -4729,7 +4729,7 @@ main: { clc adc #2 sta i - //SEG123 [45] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 20*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 + //SEG123 [45] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $14*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 cmp #$14*2 bcc b1 //SEG124 main::@2 @@ -4751,7 +4751,7 @@ main: { //SEG131 main::@22 //SEG132 [49] call print_word //SEG133 [66] phi from main::@22 to print_word [phi:main::@22->print_word] - //SEG134 [66] phi (word) print_word::w#10 = (word/signed word/dword/signed dword) 29793 [phi:main::@22->print_word#0] -- vwuz1=vwuc1 + //SEG134 [66] phi (word) print_word::w#10 = (word/signed word/dword/signed dword) $7461 [phi:main::@22->print_word#0] -- vwuz1=vwuc1 lda #<$7461 sta print_word.w lda #>$7461 @@ -4772,7 +4772,7 @@ main: { //SEG142 main::@24 //SEG143 [53] call print_word //SEG144 [66] phi from main::@24 to print_word [phi:main::@24->print_word] - //SEG145 [66] phi (word) print_word::w#10 = (word/dword/signed dword) 63361 [phi:main::@24->print_word#0] -- vwuz1=vwuc1 + //SEG145 [66] phi (word) print_word::w#10 = (word/dword/signed dword) $f781 [phi:main::@24->print_word#0] -- vwuz1=vwuc1 lda #<$f781 sta print_word.w lda #>$f781 @@ -4793,7 +4793,7 @@ main: { //SEG153 main::@26 //SEG154 [57] call print_word //SEG155 [66] phi from main::@26 to print_word [phi:main::@26->print_word] - //SEG156 [66] phi (word) print_word::w#10 = (word/signed word/dword/signed dword) 25736 [phi:main::@26->print_word#0] -- vwuz1=vwuc1 + //SEG156 [66] phi (word) print_word::w#10 = (word/signed word/dword/signed dword) $6488 [phi:main::@26->print_word#0] -- vwuz1=vwuc1 lda #<$6488 sta print_word.w lda #>$6488 @@ -4821,7 +4821,7 @@ print_ln: { //SEG166 [62] phi (byte*) print_line_cursor#11 = (byte*) print_line_cursor#21 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy //SEG167 print_ln::@1 b1: - //SEG168 [63] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG168 [63] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -4887,7 +4887,7 @@ print_byte: { //SEG192 [80] phi (byte) print_char::ch#2 = (byte) print_char::ch#0 [phi:print_byte->print_char#1] -- register_copy jsr print_char //SEG193 print_byte::@1 - //SEG194 [76] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG194 [76] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG195 [77] (byte) print_char::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) -- vbuaa=pbuc1_derefidx_vbuaa @@ -4959,7 +4959,7 @@ print_str: { print_cls: { .label sc = 3 //SEG220 [92] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] - //SEG221 [92] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG221 [92] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -4977,7 +4977,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG227 [95] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG227 [95] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1 @@ -5015,7 +5015,7 @@ lin16u_gen: { //SEG232 [99] (word) divr16u::dividend#1 ← (word) lin16u_gen::ampl#0 //SEG233 [100] call divr16u //SEG234 [117] phi from lin16u_gen to divr16u [phi:lin16u_gen->divr16u] - //SEG235 [117] phi (word) divr16u::divisor#6 = (byte/signed byte/word/signed word/dword/signed dword) 20-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:lin16u_gen->divr16u#0] -- vwuz1=vbuc1 + //SEG235 [117] phi (word) divr16u::divisor#6 = (byte/signed byte/word/signed word/dword/signed dword) $14-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:lin16u_gen->divr16u#0] -- vwuz1=vbuc1 lda #<$14-1 sta divr16u.divisor lda #>$14-1 @@ -5036,7 +5036,7 @@ lin16u_gen: { //SEG241 [103] (word) divr16u::rem#4 ← (word) rem16u#1 //SEG242 [104] call divr16u //SEG243 [117] phi from lin16u_gen::@3 to divr16u [phi:lin16u_gen::@3->divr16u] - //SEG244 [117] phi (word) divr16u::divisor#6 = (byte/signed byte/word/signed word/dword/signed dword) 20-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:lin16u_gen::@3->divr16u#0] -- vwuz1=vbuc1 + //SEG244 [117] phi (word) divr16u::divisor#6 = (byte/signed byte/word/signed word/dword/signed dword) $14-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:lin16u_gen::@3->divr16u#0] -- vwuz1=vbuc1 lda #<$14-1 sta divr16u.divisor lda #>$14-1 @@ -5119,7 +5119,7 @@ lin16u_gen: { bne !+ inc i+1 !: - //SEG266 [115] if((word) lin16u_gen::i#1<(byte/signed byte/word/signed word/dword/signed dword) 20) goto lin16u_gen::@1 -- vwuz1_lt_vbuc1_then_la1 + //SEG266 [115] if((word) lin16u_gen::i#1<(byte/signed byte/word/signed word/dword/signed dword) $14) goto lin16u_gen::@1 -- vwuz1_lt_vbuc1_then_la1 lda i+1 cmp #>$14 bcc b1 @@ -5165,7 +5165,7 @@ divr16u: { rol rem+1 //SEG282 [120] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 -- vbuaa=_hi_vwuz1 lda dividend+1 - //SEG283 [121] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuaa_band_vbuc1 + //SEG283 [121] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 //SEG284 [122] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuaa_eq_0_then_la1 cmp #0 @@ -5215,7 +5215,7 @@ divr16u: { b3: //SEG300 [131] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuxx=_inc_vbuxx inx - //SEG301 [132] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG301 [132] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1 //SEG302 divr16u::@6 diff --git a/src/test/ref/linegen.sym b/src/test/ref/linegen.sym index 31c8bd63a..42a294916 100644 --- a/src/test/ref/linegen.sym +++ b/src/test/ref/linegen.sym @@ -99,12 +99,12 @@ (byte) main::i (byte) main::i#1 i zp ZP_BYTE:2 16.5 (byte) main::i#10 i zp ZP_BYTE:2 3.666666666666667 -(word[20]) main::lintab1 -(const word[20]) main::lintab1#0 lintab1 = { fill( 20, 0) } -(word[20]) main::lintab2 -(const word[20]) main::lintab2#0 lintab2 = { fill( 20, 0) } -(word[20]) main::lintab3 -(const word[20]) main::lintab3#0 lintab3 = { fill( 20, 0) } +(word[$14]) main::lintab1 +(const word[$14]) main::lintab1#0 lintab1 = { fill( $14, 0) } +(word[$14]) main::lintab2 +(const word[$14]) main::lintab2#0 lintab2 = { fill( $14, 0) } +(word[$14]) main::lintab3 +(const word[$14]) main::lintab3#0 lintab3 = { fill( $14, 0) } (const string) main::str str = (string) " @" (const string) main::str1 str1 = (string) " @" (void()) print_byte((byte) print_byte::b) diff --git a/src/test/ref/literals.log b/src/test/ref/literals.log index e33eaa01a..07b10f0d9 100644 --- a/src/test/ref/literals.log +++ b/src/test/ref/literals.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) char#0 ← (byte) 'a' (byte) num#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (string~) $0 ← (const string) $2 + (const string) $3 @@ -94,7 +94,7 @@ Redundant Phi (byte*) SCREEN#2 (byte*) SCREEN#1 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) main::$2 [18] if((byte) main::i#1!=rangelast(0,3)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Constant (const byte) char#0 = 'a' Constant (const byte) num#0 = 1 Constant (const string) $0 = "bc"+"d" @@ -356,7 +356,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) char (const byte) char#0 char = (byte) 'a' (void()) main() diff --git a/src/test/ref/literals.sym b/src/test/ref/literals.sym index 169d3ec60..5993e86c6 100644 --- a/src/test/ref/literals.sym +++ b/src/test/ref/literals.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) char (const byte) char#0 char = (byte) 'a' (void()) main() diff --git a/src/test/ref/liverange.log b/src/test/ref/liverange.log index eaaabf067..61eba2093 100644 --- a/src/test/ref/liverange.log +++ b/src/test/ref/liverange.log @@ -28,7 +28,7 @@ main::@2: scope:[main] from main::@1 (byte) i#2 ← (byte) i#8 (byte~) main::$3 ← (byte) main::a#4 + (byte~) main::$2 (byte) main::a#2 ← (byte~) main::$3 - (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 *((byte*) main::SCREEN#0) ← (byte) i#2 (byte*~) main::$4 ← (byte*) main::SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 *((byte*~) main::$4) ← (byte) main::a#2 @@ -130,7 +130,7 @@ Redundant Phi (byte) i#12 (byte) i#2 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte) i#0 = 0 Constant (const byte) main::a#0 = 4 -Constant (const byte*) main::SCREEN#0 = ((byte*))1024 +Constant (const byte*) main::SCREEN#0 = ((byte*))$400 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$4 = main::SCREEN#0+1 Successful SSA optimization Pass2ConstantIdentification @@ -505,7 +505,7 @@ FINAL SYMBOL TABLE (label) main::@2 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::a (byte) main::a#1 a zp ZP_BYTE:2 1.0 (byte) main::a#2 reg byte x 2.0 diff --git a/src/test/ref/liverange.sym b/src/test/ref/liverange.sym index 92f449125..bcf676fe1 100644 --- a/src/test/ref/liverange.sym +++ b/src/test/ref/liverange.sym @@ -17,7 +17,7 @@ (label) main::@2 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::a (byte) main::a#1 a zp ZP_BYTE:2 1.0 (byte) main::a#2 reg byte x 2.0 diff --git a/src/test/ref/local-string.log b/src/test/ref/local-string.log index 26d681e11..9231fcd3b 100644 --- a/src/test/ref/local-string.log +++ b/src/test/ref/local-string.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte[]) main::msg#0 ← (const string) main::$1 (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 @@ -63,7 +63,7 @@ Redundant Phi (byte*) main::screen#1 (byte*) main::screen#0 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) main::$0 [5] if(*((byte[]) main::msg#0 + (byte) main::i#2)!=(byte) '@') goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) main::screen#0 = ((byte*))1024 +Constant (const byte*) main::screen#0 = ((byte*))$400 Constant (const byte[]) main::msg#0 = main::$1 Constant (const byte) main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification @@ -295,7 +295,7 @@ FINAL SYMBOL TABLE (byte[]) main::msg (const byte[]) main::msg#0 msg = (string) "message 2 @" (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/local-string.sym b/src/test/ref/local-string.sym index 7abe9e0c4..9df3089d5 100644 --- a/src/test/ref/local-string.sym +++ b/src/test/ref/local-string.sym @@ -11,6 +11,6 @@ (byte[]) main::msg (const byte[]) main::msg#0 msg = (string) "message 2 @" (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/longbranch-interrupt-problem.cfg b/src/test/ref/longbranch-interrupt-problem.cfg index 58bad3c0e..dc7e5a96a 100644 --- a/src/test/ref/longbranch-interrupt-problem.cfg +++ b/src/test/ref/longbranch-interrupt-problem.cfg @@ -14,7 +14,7 @@ main::@1: scope:[main] from main main::@2 main::@7 [5] (byte) col#12 ← phi( main/(byte) col#0 main::@7/(byte) col#1 ) to:main::@2 main::@2: scope:[main] from main::@1 - [6] if((byte) col#12<=(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@1 + [6] if((byte) col#12<=(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@1 to:main::@7 main::@7: scope:[main] from main::@2 [7] (byte) col#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 diff --git a/src/test/ref/longbranch-interrupt-problem.log b/src/test/ref/longbranch-interrupt-problem.log index dbfc852a5..4ebecd4e8 100644 --- a/src/test/ref/longbranch-interrupt-problem.log +++ b/src/test/ref/longbranch-interrupt-problem.log @@ -2,8 +2,8 @@ Resolved forward reference irq to interrupt(KERNEL_MIN)(void()) irq() CONTROL FLOW GRAPH SSA @begin: scope:[] from - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 (byte) col#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:@2 main: scope:[main] from @2 @@ -17,7 +17,7 @@ main::@1: scope:[main] from main main::@4 main::@7 to:main::@return main::@2: scope:[main] from main::@1 (byte) col#6 ← phi( main::@1/(byte) col#12 ) - (bool~) main::$1 ← (byte) col#6 > (byte/signed byte/word/signed word/dword/signed dword) 10 + (bool~) main::$1 ← (byte) col#6 > (byte/signed byte/word/signed word/dword/signed dword) $a (bool~) main::$2 ← ! (bool~) main::$1 if((bool~) main::$2) goto main::@4 to:main::@7 @@ -105,7 +105,7 @@ interrupt(KERNEL_MIN)(void()) irq() (label) main::@7 (label) main::@return -Inversing boolean not [10] (bool~) main::$2 ← (byte) col#6 <= (byte/signed byte/word/signed word/dword/signed dword) 10 from [9] (bool~) main::$1 ← (byte) col#6 > (byte/signed byte/word/signed word/dword/signed dword) 10 +Inversing boolean not [10] (bool~) main::$2 ← (byte) col#6 <= (byte/signed byte/word/signed word/dword/signed dword) $a from [9] (bool~) main::$1 ← (byte) col#6 > (byte/signed byte/word/signed word/dword/signed dword) $a Inversing boolean not [21] (bool~) irq::$1 ← (byte) col#8 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [20] (bool~) irq::$0 ← (byte) col#8 != (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2UnaryNotSimplification Alias (byte) col#12 = (byte) col#6 (byte) col#16 (byte) col#7 (byte) col#2 @@ -120,11 +120,11 @@ Redundant Phi (byte) col#15 (byte) col#0 Redundant Phi (byte) col#14 (byte) col#0 Redundant Phi (byte) col#11 (byte) col#12 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$2 [11] if((byte) col#12<=(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@4 +Simple Condition (bool~) main::$2 [11] if((byte) col#12<=(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@4 Simple Condition (bool~) irq::$1 [22] if((byte) col#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto irq::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const byte*) BGCOL#0 = ((byte*))53280 +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const byte*) BGCOL#0 = ((byte*))$d020 Constant (const void()*) main::$0 = &irq Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [3] if(true) goto main::@2 @@ -167,7 +167,7 @@ main::@1: scope:[main] from main main::@2 main::@7 [5] (byte) col#12 ← phi( main/(byte) col#0 main::@7/(byte) col#1 ) to:main::@2 main::@2: scope:[main] from main::@1 - [6] if((byte) col#12<=(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@1 + [6] if((byte) col#12<=(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@1 to:main::@7 main::@7: scope:[main] from main::@2 [7] (byte) col#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -254,7 +254,7 @@ main: { jmp b2 //SEG16 main::@2 b2: - //SEG17 [6] if((byte) col#12<=(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@1 -- vbuz1_le_vbuc1_then_la1 + //SEG17 [6] if((byte) col#12<=(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@1 -- vbuz1_le_vbuc1_then_la1 lda #$a cmp col bcs b1_from_b2 @@ -295,7 +295,7 @@ irq: { REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] (byte) col#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ col#0 ] ( ) always clobbers reg byte a Statement [4] *((const void()**) KERNEL_IRQ#0) ← &interrupt(KERNEL_MIN)(void()) irq() [ col#0 ] ( main:2 [ col#0 ] ) always clobbers reg byte a -Statement [6] if((byte) col#12<=(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@1 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [6] if((byte) col#12<=(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@1 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [7] (byte) col#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ col#1 ] ( main:2 [ col#1 ] ) always clobbers reg byte a Statement asm { lda$dc0d } always clobbers reg byte a Statement [9] *((const byte*) BGCOL#0) ← (byte) col#0 [ col#0 ] ( [ col#0 ] ) always clobbers reg byte a @@ -366,7 +366,7 @@ main: { jmp b2 //SEG16 main::@2 b2: - //SEG17 [6] if((byte) col#12<=(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@1 -- vbuz1_le_vbuc1_then_la1 + //SEG17 [6] if((byte) col#12<=(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@1 -- vbuz1_le_vbuc1_then_la1 lda #$a cmp col bcs b1_from_b2 @@ -442,9 +442,9 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d020 (void()**) KERNEL_IRQ -(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) 788 +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) $314 (byte) col (byte) col#0 col zp ZP_BYTE:2 1.6666666666666665 (byte) col#1 col zp ZP_BYTE:2 22.0 @@ -498,7 +498,7 @@ main: { //SEG15 main::@1 //SEG16 main::@2 b2: - //SEG17 [6] if((byte) col#12<=(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@1 -- vbuz1_le_vbuc1_then_la1 + //SEG17 [6] if((byte) col#12<=(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@1 -- vbuz1_le_vbuc1_then_la1 lda #$a cmp col bcs b2 diff --git a/src/test/ref/longbranch-interrupt-problem.sym b/src/test/ref/longbranch-interrupt-problem.sym index 7d03c743b..5883e815c 100644 --- a/src/test/ref/longbranch-interrupt-problem.sym +++ b/src/test/ref/longbranch-interrupt-problem.sym @@ -2,9 +2,9 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d020 (void()**) KERNEL_IRQ -(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) 788 +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) $314 (byte) col (byte) col#0 col zp ZP_BYTE:2 1.6666666666666665 (byte) col#1 col zp ZP_BYTE:2 22.0 diff --git a/src/test/ref/longjump.cfg b/src/test/ref/longjump.cfg index 93943bc45..2b299fec7 100644 --- a/src/test/ref/longjump.cfg +++ b/src/test/ref/longjump.cfg @@ -15,7 +15,7 @@ main::@1: scope:[main] from main main::@1 asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } [7] *((const byte*) main::SCREEN#0 + (byte) main::i#2) ← (byte) main::i#2 [8] (byte) main::i#1 ← ++ (byte) main::i#2 - [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 + [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [10] return diff --git a/src/test/ref/longjump.log b/src/test/ref/longjump.log index 686b48a36..41ec25e0b 100644 --- a/src/test/ref/longjump.log +++ b/src/test/ref/longjump.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main main::@1 @@ -11,8 +11,8 @@ main::@1: scope:[main] from main main::@1 (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } *((byte*) main::SCREEN#1 + (byte) main::i#2) ← (byte) main::i#2 - (byte) main::i#1 ← (byte) main::i#2 + rangenext(0,10) - (bool~) main::$0 ← (byte) main::i#1 != rangelast(0,10) + (byte) main::i#1 ← (byte) main::i#2 + rangenext(0,$a) + (bool~) main::$0 ← (byte) main::i#1 != rangelast(0,$a) if((bool~) main::$0) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 @@ -48,13 +48,13 @@ Self Phi Eliminated (byte*) main::SCREEN#1 Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) main::SCREEN#1 (byte*) main::SCREEN#0 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$0 [7] if((byte) main::i#1!=rangelast(0,10)) goto main::@1 +Simple Condition (bool~) main::$0 [7] if((byte) main::i#1!=rangelast(0,$a)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) main::SCREEN#0 = ((byte*))1024 +Constant (const byte*) main::SCREEN#0 = ((byte*))$400 Constant (const byte) main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ -Resolved ranged comparison value if(main::i#1!=rangelast(0,10)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 11 +Resolved ranged comparison value if(main::i#1!=rangelast(0,$a)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $b Inlining constant with var siblings (const byte) main::i#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining @@ -93,7 +93,7 @@ main::@1: scope:[main] from main main::@1 asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } [7] *((const byte*) main::SCREEN#0 + (byte) main::i#2) ← (byte) main::i#2 [8] (byte) main::i#1 ← ++ (byte) main::i#2 - [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 + [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [10] return @@ -416,7 +416,7 @@ main: { sta SCREEN,y //SEG18 [8] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG19 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG19 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$b bne b1_from_b1 @@ -737,7 +737,7 @@ main: { sta SCREEN,x //SEG18 [8] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG19 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG19 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$b bne b1_from_b1 jmp breturn @@ -781,7 +781,7 @@ FINAL SYMBOL TABLE (label) main::@1 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::i (byte) main::i#1 reg byte x 16.5 (byte) main::i#2 reg byte x 14.666666666666666 @@ -1078,7 +1078,7 @@ main: { sta SCREEN,x //SEG18 [8] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG19 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG19 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$b beq !b1+ jmp b1 diff --git a/src/test/ref/longjump.sym b/src/test/ref/longjump.sym index ee7917c2e..02b10f94f 100644 --- a/src/test/ref/longjump.sym +++ b/src/test/ref/longjump.sym @@ -5,7 +5,7 @@ (label) main::@1 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::i (byte) main::i#1 reg byte x 16.5 (byte) main::i#2 reg byte x 14.666666666666666 diff --git a/src/test/ref/longjump2.cfg b/src/test/ref/longjump2.cfg index 6770f93cb..d1d73cea4 100644 --- a/src/test/ref/longjump2.cfg +++ b/src/test/ref/longjump2.cfg @@ -26,7 +26,7 @@ long2::@1: scope:[long2] from long2 long2::@1 asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } [12] *((const byte*) long2::SCREEN#0 + (byte) long2::i#2) ← (byte) long2::i#2 [13] (byte) long2::i#1 ← ++ (byte) long2::i#2 - [14] if((byte) long2::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto long2::@1 + [14] if((byte) long2::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto long2::@1 to:long2::@return long2::@return: scope:[long2] from long2::@1 [15] return @@ -39,7 +39,7 @@ long1::@1: scope:[long1] from long1 long1::@1 asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } [19] *((const byte*) long1::SCREEN#0 + (byte) long1::i#2) ← (byte) long1::i#2 [20] (byte) long1::i#1 ← ++ (byte) long1::i#2 - [21] if((byte) long1::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto long1::@1 + [21] if((byte) long1::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto long1::@1 to:long1::@return long1::@return: scope:[long1] from long1::@1 [22] return diff --git a/src/test/ref/longjump2.log b/src/test/ref/longjump2.log index fce2601f7..4b7abd8cc 100644 --- a/src/test/ref/longjump2.log +++ b/src/test/ref/longjump2.log @@ -14,7 +14,7 @@ main::@return: scope:[main] from main::@2 return to:@return long1: scope:[long1] from main - (byte*) long1::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) long1::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) long1::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:long1::@1 long1::@1: scope:[long1] from long1 long1::@1 @@ -22,15 +22,15 @@ long1::@1: scope:[long1] from long1 long1::@1 (byte) long1::i#2 ← phi( long1/(byte) long1::i#0 long1::@1/(byte) long1::i#1 ) asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } *((byte*) long1::SCREEN#1 + (byte) long1::i#2) ← (byte) long1::i#2 - (byte) long1::i#1 ← (byte) long1::i#2 + rangenext(0,10) - (bool~) long1::$0 ← (byte) long1::i#1 != rangelast(0,10) + (byte) long1::i#1 ← (byte) long1::i#2 + rangenext(0,$a) + (bool~) long1::$0 ← (byte) long1::i#1 != rangelast(0,$a) if((bool~) long1::$0) goto long1::@1 to:long1::@return long1::@return: scope:[long1] from long1::@1 return to:@return long2: scope:[long2] from main::@1 - (byte*) long2::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) long2::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) long2::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:long2::@1 long2::@1: scope:[long2] from long2 long2::@1 @@ -38,8 +38,8 @@ long2::@1: scope:[long2] from long2 long2::@1 (byte) long2::i#2 ← phi( long2/(byte) long2::i#0 long2::@1/(byte) long2::i#1 ) asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } *((byte*) long2::SCREEN#1 + (byte) long2::i#2) ← (byte) long2::i#2 - (byte) long2::i#1 ← (byte) long2::i#2 + rangenext(0,10) - (bool~) long2::$0 ← (byte) long2::i#1 != rangelast(0,10) + (byte) long2::i#1 ← (byte) long2::i#2 + rangenext(0,$a) + (bool~) long2::$0 ← (byte) long2::i#1 != rangelast(0,$a) if((bool~) long2::$0) goto long2::@1 to:long2::@return long2::@return: scope:[long2] from long2::@1 @@ -93,18 +93,18 @@ Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) long1::SCREEN#1 (byte*) long1::SCREEN#0 Redundant Phi (byte*) long2::SCREEN#1 (byte*) long2::SCREEN#0 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) long1::$0 [10] if((byte) long1::i#1!=rangelast(0,10)) goto long1::@1 -Simple Condition (bool~) long2::$0 [19] if((byte) long2::i#1!=rangelast(0,10)) goto long2::@1 +Simple Condition (bool~) long1::$0 [10] if((byte) long1::i#1!=rangelast(0,$a)) goto long1::@1 +Simple Condition (bool~) long2::$0 [19] if((byte) long2::i#1!=rangelast(0,$a)) goto long2::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) long1::SCREEN#0 = ((byte*))1024 +Constant (const byte*) long1::SCREEN#0 = ((byte*))$400 Constant (const byte) long1::i#0 = 0 -Constant (const byte*) long2::SCREEN#0 = ((byte*))1024 +Constant (const byte*) long2::SCREEN#0 = ((byte*))$400 Constant (const byte) long2::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value long1::i#1 ← ++ long1::i#2 to ++ -Resolved ranged comparison value if(long1::i#1!=rangelast(0,10)) goto long1::@1 to (byte/signed byte/word/signed word/dword/signed dword) 11 +Resolved ranged comparison value if(long1::i#1!=rangelast(0,$a)) goto long1::@1 to (byte/signed byte/word/signed word/dword/signed dword) $b Resolved ranged next value long2::i#1 ← ++ long2::i#2 to ++ -Resolved ranged comparison value if(long2::i#1!=rangelast(0,10)) goto long2::@1 to (byte/signed byte/word/signed word/dword/signed dword) 11 +Resolved ranged comparison value if(long2::i#1!=rangelast(0,$a)) goto long2::@1 to (byte/signed byte/word/signed word/dword/signed dword) $b Inlining constant with var siblings (const byte) long1::i#0 Inlining constant with var siblings (const byte) long2::i#0 Constant inlined long1::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -166,7 +166,7 @@ long2::@1: scope:[long2] from long2 long2::@1 asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } [12] *((const byte*) long2::SCREEN#0 + (byte) long2::i#2) ← (byte) long2::i#2 [13] (byte) long2::i#1 ← ++ (byte) long2::i#2 - [14] if((byte) long2::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto long2::@1 + [14] if((byte) long2::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto long2::@1 to:long2::@return long2::@return: scope:[long2] from long2::@1 [15] return @@ -179,7 +179,7 @@ long1::@1: scope:[long1] from long1 long1::@1 asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } [19] *((const byte*) long1::SCREEN#0 + (byte) long1::i#2) ← (byte) long1::i#2 [20] (byte) long1::i#1 ← ++ (byte) long1::i#2 - [21] if((byte) long1::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto long1::@1 + [21] if((byte) long1::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto long1::@1 to:long1::@return long1::@return: scope:[long1] from long1::@1 [22] return @@ -532,7 +532,7 @@ long2: { sta SCREEN,y //SEG27 [13] (byte) long2::i#1 ← ++ (byte) long2::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG28 [14] if((byte) long2::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto long2::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG28 [14] if((byte) long2::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto long2::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$b bne b1_from_b1 @@ -821,7 +821,7 @@ long1: { sta SCREEN,y //SEG39 [20] (byte) long1::i#1 ← ++ (byte) long1::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG40 [21] if((byte) long1::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto long1::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG40 [21] if((byte) long1::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto long1::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$b bne b1_from_b1 @@ -1168,7 +1168,7 @@ long2: { sta SCREEN,x //SEG27 [13] (byte) long2::i#1 ← ++ (byte) long2::i#2 -- vbuxx=_inc_vbuxx inx - //SEG28 [14] if((byte) long2::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto long2::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG28 [14] if((byte) long2::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto long2::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$b bne b1_from_b1 jmp breturn @@ -1453,7 +1453,7 @@ long1: { sta SCREEN,x //SEG39 [20] (byte) long1::i#1 ← ++ (byte) long1::i#2 -- vbuxx=_inc_vbuxx inx - //SEG40 [21] if((byte) long1::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto long1::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG40 [21] if((byte) long1::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto long1::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$b bne b1_from_b1 jmp breturn @@ -1512,7 +1512,7 @@ FINAL SYMBOL TABLE (label) long1::@1 (label) long1::@return (byte*) long1::SCREEN -(const byte*) long1::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) long1::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) long1::i (byte) long1::i#1 reg byte x 16.5 (byte) long1::i#2 reg byte x 14.666666666666666 @@ -1520,7 +1520,7 @@ FINAL SYMBOL TABLE (label) long2::@1 (label) long2::@return (byte*) long2::SCREEN -(const byte*) long2::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) long2::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) long2::i (byte) long2::i#1 reg byte x 16.5 (byte) long2::i#2 reg byte x 14.666666666666666 @@ -1835,7 +1835,7 @@ long2: { sta SCREEN,x //SEG27 [13] (byte) long2::i#1 ← ++ (byte) long2::i#2 -- vbuxx=_inc_vbuxx inx - //SEG28 [14] if((byte) long2::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto long2::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG28 [14] if((byte) long2::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto long2::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$b beq !b1+ jmp b1 @@ -2116,7 +2116,7 @@ long1: { sta SCREEN,x //SEG39 [20] (byte) long1::i#1 ← ++ (byte) long1::i#2 -- vbuxx=_inc_vbuxx inx - //SEG40 [21] if((byte) long1::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto long1::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG40 [21] if((byte) long1::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto long1::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$b beq !b1+ jmp b1 diff --git a/src/test/ref/longjump2.sym b/src/test/ref/longjump2.sym index 198792fc5..7313b20dd 100644 --- a/src/test/ref/longjump2.sym +++ b/src/test/ref/longjump2.sym @@ -5,7 +5,7 @@ (label) long1::@1 (label) long1::@return (byte*) long1::SCREEN -(const byte*) long1::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) long1::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) long1::i (byte) long1::i#1 reg byte x 16.5 (byte) long1::i#2 reg byte x 14.666666666666666 @@ -13,7 +13,7 @@ (label) long2::@1 (label) long2::@return (byte*) long2::SCREEN -(const byte*) long2::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) long2::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) long2::i (byte) long2::i#1 reg byte x 16.5 (byte) long2::i#2 reg byte x 14.666666666666666 diff --git a/src/test/ref/loop-problem.log b/src/test/ref/loop-problem.log index d95c136b3..06c8ff44f 100644 --- a/src/test/ref/loop-problem.log +++ b/src/test/ref/loop-problem.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@3 main: scope:[main] from @3 (byte*) SCREEN#1 ← phi( @3/(byte*) SCREEN#3 ) @@ -100,7 +100,7 @@ Redundant Phi (byte*) SCREEN#2 (byte*) SCREEN#0 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) b::$1 [14] if((byte) b::i#1!=rangelast(0,3)) goto b::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Constant (const byte) b::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value b::i#1 ← ++ b::i#2 to ++ @@ -415,7 +415,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) b() (label) b::@1 (label) b::@3 diff --git a/src/test/ref/loop-problem.sym b/src/test/ref/loop-problem.sym index a3fcea530..38776e9c9 100644 --- a/src/test/ref/loop-problem.sym +++ b/src/test/ref/loop-problem.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) b() (label) b::@1 (label) b::@3 diff --git a/src/test/ref/loop-problem2.cfg b/src/test/ref/loop-problem2.cfg index e2583ca69..4342a111e 100644 --- a/src/test/ref/loop-problem2.cfg +++ b/src/test/ref/loop-problem2.cfg @@ -23,7 +23,7 @@ mode_ctrl: scope:[mode_ctrl] from main::@1 to:mode_ctrl::@2 mode_ctrl::@2: scope:[mode_ctrl] from mode_ctrl mode_ctrl::@4 mode_ctrl::@8 [10] (byte) mode_ctrl::before#0 ← *((const byte*) BORDERCOL#0) - [11] if((byte) mode_ctrl::before#0==(byte/word/signed word/dword/signed dword) 255) goto mode_ctrl::@4 + [11] if((byte) mode_ctrl::before#0==(byte/word/signed word/dword/signed dword) $ff) goto mode_ctrl::@4 to:mode_ctrl::@8 mode_ctrl::@8: scope:[mode_ctrl] from mode_ctrl::@2 [12] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 @@ -38,7 +38,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 [15] (byte*) print_cls::sc#2 ← phi( print_cls/(const byte*) SCREEN#0 print_cls::@1/(byte*) print_cls::sc#1 ) [16] *((byte*) print_cls::sc#2) ← (byte) ' ' [17] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [18] if((byte*) print_cls::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [18] if((byte*) print_cls::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [19] return diff --git a/src/test/ref/loop-problem2.log b/src/test/ref/loop-problem2.log index 2258ea561..7dc19e1e7 100644 --- a/src/test/ref/loop-problem2.log +++ b/src/test/ref/loop-problem2.log @@ -1,8 +1,8 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@3 main: scope:[main] from @3 call print_cls @@ -22,7 +22,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 (byte*) print_cls::sc#2 ← phi( print_cls/(byte*) print_cls::sc#0 print_cls::@1/(byte*) print_cls::sc#1 ) *((byte*) print_cls::sc#2) ← (byte) ' ' (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - (byte*~) print_cls::$0 ← (byte*) SCREEN#0 + (word/signed word/dword/signed dword) 1000 + (byte*~) print_cls::$0 ← (byte*) SCREEN#0 + (word/signed word/dword/signed dword) $3e8 (bool~) print_cls::$1 ← (byte*) print_cls::sc#1 != (byte*~) print_cls::$0 if((bool~) print_cls::$1) goto print_cls::@1 to:print_cls::@return @@ -36,7 +36,7 @@ mode_ctrl::@1: scope:[mode_ctrl] from mode_ctrl mode_ctrl::@4 mode_ctrl::@8 to:mode_ctrl::@return mode_ctrl::@2: scope:[mode_ctrl] from mode_ctrl::@1 (byte) mode_ctrl::before#0 ← *((byte*) BORDERCOL#0) - (bool~) mode_ctrl::$0 ← (byte) mode_ctrl::before#0 == (byte/word/signed word/dword/signed dword) 255 + (bool~) mode_ctrl::$0 ← (byte) mode_ctrl::before#0 == (byte/word/signed word/dword/signed dword) $ff if((bool~) mode_ctrl::$0) goto mode_ctrl::@4 to:mode_ctrl::@8 mode_ctrl::@4: scope:[mode_ctrl] from mode_ctrl::@2 @@ -91,13 +91,13 @@ Culled Empty Block (label) main::@2 Culled Empty Block (label) @4 Successful SSA optimization Pass2CullEmptyBlocks Simple Condition (bool~) print_cls::$1 [11] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 -Simple Condition (bool~) mode_ctrl::$0 [16] if((byte) mode_ctrl::before#0==(byte/word/signed word/dword/signed dword) 255) goto mode_ctrl::@4 +Simple Condition (bool~) mode_ctrl::$0 [16] if((byte) mode_ctrl::before#0==(byte/word/signed word/dword/signed dword) $ff) goto mode_ctrl::@4 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) print_cls::sc#0 = SCREEN#0 -Constant (const byte*) print_cls::$0 = SCREEN#0+1000 +Constant (const byte*) print_cls::$0 = SCREEN#0+$3e8 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [8] if(true) goto mode_ctrl::@2 Successful SSA optimization Pass2ConstantIfs @@ -106,7 +106,7 @@ Successful SSA optimization Pass2EliminateUnusedBlocks Culled Empty Block (label) mode_ctrl::@1 Successful SSA optimization Pass2CullEmptyBlocks Inlining constant with var siblings (const byte*) print_cls::sc#0 -Constant inlined print_cls::$0 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000 +Constant inlined print_cls::$0 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8 Constant inlined print_cls::sc#0 = (const byte*) SCREEN#0 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting print_cls::@3(between print_cls::@1 and print_cls::@1) @@ -159,7 +159,7 @@ mode_ctrl: scope:[mode_ctrl] from main::@1 to:mode_ctrl::@2 mode_ctrl::@2: scope:[mode_ctrl] from mode_ctrl mode_ctrl::@4 mode_ctrl::@8 [10] (byte) mode_ctrl::before#0 ← *((const byte*) BORDERCOL#0) - [11] if((byte) mode_ctrl::before#0==(byte/word/signed word/dword/signed dword) 255) goto mode_ctrl::@4 + [11] if((byte) mode_ctrl::before#0==(byte/word/signed word/dword/signed dword) $ff) goto mode_ctrl::@4 to:mode_ctrl::@8 mode_ctrl::@8: scope:[mode_ctrl] from mode_ctrl::@2 [12] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 @@ -174,7 +174,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 [15] (byte*) print_cls::sc#2 ← phi( print_cls/(const byte*) SCREEN#0 print_cls::@1/(byte*) print_cls::sc#1 ) [16] *((byte*) print_cls::sc#2) ← (byte) ' ' [17] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [18] if((byte*) print_cls::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [18] if((byte*) print_cls::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [19] return @@ -257,7 +257,7 @@ mode_ctrl: { //SEG21 [10] (byte) mode_ctrl::before#0 ← *((const byte*) BORDERCOL#0) -- vbuz1=_deref_pbuc1 lda BORDERCOL sta before - //SEG22 [11] if((byte) mode_ctrl::before#0==(byte/word/signed word/dword/signed dword) 255) goto mode_ctrl::@4 -- vbuz1_eq_vbuc1_then_la1 + //SEG22 [11] if((byte) mode_ctrl::before#0==(byte/word/signed word/dword/signed dword) $ff) goto mode_ctrl::@4 -- vbuz1_eq_vbuc1_then_la1 lda before cmp #$ff beq b4 @@ -301,7 +301,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG35 [18] if((byte*) print_cls::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG35 [18] if((byte*) print_cls::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>SCREEN+$3e8 bne b1_from_b1 @@ -319,7 +319,7 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [12] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::mode_ctrl:7 [ ] ) always clobbers reg byte a Statement [13] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2::mode_ctrl:7 [ ] ) always clobbers reg byte a Statement [16] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [18] if((byte*) print_cls::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [18] if((byte*) print_cls::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a Potential registers zp ZP_WORD:2 [ print_cls::sc#2 print_cls::sc#1 ] : zp ZP_WORD:2 , Potential registers zp ZP_BYTE:4 [ mode_ctrl::before#0 ] : zp ZP_BYTE:4 , reg byte a , reg byte x , reg byte y , @@ -387,7 +387,7 @@ mode_ctrl: { b2: //SEG21 [10] (byte) mode_ctrl::before#0 ← *((const byte*) BORDERCOL#0) -- vbuaa=_deref_pbuc1 lda BORDERCOL - //SEG22 [11] if((byte) mode_ctrl::before#0==(byte/word/signed word/dword/signed dword) 255) goto mode_ctrl::@4 -- vbuaa_eq_vbuc1_then_la1 + //SEG22 [11] if((byte) mode_ctrl::before#0==(byte/word/signed word/dword/signed dword) $ff) goto mode_ctrl::@4 -- vbuaa_eq_vbuc1_then_la1 cmp #$ff beq b4 jmp b8 @@ -430,7 +430,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG35 [18] if((byte*) print_cls::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG35 [18] if((byte*) print_cls::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>SCREEN+$3e8 bne b1_from_b1 @@ -485,9 +485,9 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@1 (label) main::@return @@ -546,7 +546,7 @@ mode_ctrl: { b2: //SEG21 [10] (byte) mode_ctrl::before#0 ← *((const byte*) BORDERCOL#0) -- vbuaa=_deref_pbuc1 lda BORDERCOL - //SEG22 [11] if((byte) mode_ctrl::before#0==(byte/word/signed word/dword/signed dword) 255) goto mode_ctrl::@4 -- vbuaa_eq_vbuc1_then_la1 + //SEG22 [11] if((byte) mode_ctrl::before#0==(byte/word/signed word/dword/signed dword) $ff) goto mode_ctrl::@4 -- vbuaa_eq_vbuc1_then_la1 cmp #$ff beq b4 //SEG23 mode_ctrl::@8 @@ -583,7 +583,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG35 [18] if((byte*) print_cls::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG35 [18] if((byte*) print_cls::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>SCREEN+$3e8 bne b1 diff --git a/src/test/ref/loop-problem2.sym b/src/test/ref/loop-problem2.sym index 52ebd0b54..016d02b0d 100644 --- a/src/test/ref/loop-problem2.sym +++ b/src/test/ref/loop-problem2.sym @@ -2,9 +2,9 @@ (label) @begin (label) @end (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@1 (label) main::@return diff --git a/src/test/ref/loop100.cfg b/src/test/ref/loop100.cfg index c93b1d57b..92ae785e6 100644 --- a/src/test/ref/loop100.cfg +++ b/src/test/ref/loop100.cfg @@ -13,7 +13,7 @@ main: scope:[main] from @1 main::@1: scope:[main] from main main::@1 [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::i#1 ) [6] (byte) main::i#1 ← ++ (byte) main::i#2 - [7] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 100) goto main::@1 + [7] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $64) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [8] return diff --git a/src/test/ref/loop100.log b/src/test/ref/loop100.log index 3881fd99e..2419d2423 100644 --- a/src/test/ref/loop100.log +++ b/src/test/ref/loop100.log @@ -8,7 +8,7 @@ main: scope:[main] from @1 main::@1: scope:[main] from main main::@1 (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) (byte) main::i#1 ← ++ (byte) main::i#2 - (bool~) main::$0 ← (byte) main::i#1 < (byte/signed byte/word/signed word/dword/signed dword) 100 + (bool~) main::$0 ← (byte) main::i#1 < (byte/signed byte/word/signed word/dword/signed dword) $64 if((bool~) main::$0) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 @@ -37,7 +37,7 @@ SYMBOL TABLE SSA Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks -Simple Condition (bool~) main::$0 [4] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 100) goto main::@1 +Simple Condition (bool~) main::$0 [4] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $64) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte) main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification @@ -77,7 +77,7 @@ main: scope:[main] from @1 main::@1: scope:[main] from main main::@1 [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::i#1 ) [6] (byte) main::i#1 ← ++ (byte) main::i#2 - [7] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 100) goto main::@1 + [7] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $64) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [8] return @@ -136,7 +136,7 @@ main: { b1: //SEG16 [6] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG17 [7] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 100) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 + //SEG17 [7] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $64) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 lda i cmp #$64 bcc b1_from_b1 @@ -195,7 +195,7 @@ main: { b1: //SEG16 [6] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG17 [7] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 100) goto main::@1 -- vbuxx_lt_vbuc1_then_la1 + //SEG17 [7] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $64) goto main::@1 -- vbuxx_lt_vbuc1_then_la1 cpx #$64 bcc b1_from_b1 jmp breturn @@ -271,7 +271,7 @@ main: { b1: //SEG16 [6] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG17 [7] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 100) goto main::@1 -- vbuxx_lt_vbuc1_then_la1 + //SEG17 [7] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) $64) goto main::@1 -- vbuxx_lt_vbuc1_then_la1 cpx #$64 bcc b1 //SEG18 main::@return diff --git a/src/test/ref/loopmin.cfg b/src/test/ref/loopmin.cfg index 174b9560d..fbc9bbc1c 100644 --- a/src/test/ref/loopmin.cfg +++ b/src/test/ref/loopmin.cfg @@ -12,7 +12,7 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@2 [5] (byte) main::s#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@2/(byte) main::s#4 ) - [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 10 main::@2/(byte) main::i#1 ) + [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) $a main::@2/(byte) main::i#1 ) [6] if((byte) main::i#2<=(byte/signed byte/word/signed word/dword/signed dword) 5) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@1 diff --git a/src/test/ref/loopmin.log b/src/test/ref/loopmin.log index b2d9ce4cd..b14e0cab9 100644 --- a/src/test/ref/loopmin.log +++ b/src/test/ref/loopmin.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 + (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a (byte) main::s#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main main::@2 @@ -76,12 +76,12 @@ Successful SSA optimization Pass2AliasElimination Simple Condition (bool~) main::$1 [5] if((byte) main::i#2<=(byte/signed byte/word/signed word/dword/signed dword) 5) goto main::@2 Simple Condition (bool~) main::$3 [9] if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte) main::i#0 = 10 +Constant (const byte) main::i#0 = $a Constant (const byte) main::s#0 = 0 Successful SSA optimization Pass2ConstantIdentification Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte) main::s#0 -Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 10 +Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) $a Constant inlined main::s#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@5(between main::@2 and main::@1) @@ -121,7 +121,7 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@2 [5] (byte) main::s#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@2/(byte) main::s#4 ) - [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 10 main::@2/(byte) main::i#1 ) + [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) $a main::@2/(byte) main::i#1 ) [6] if((byte) main::i#2<=(byte/signed byte/word/signed word/dword/signed dword) 5) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@1 @@ -188,7 +188,7 @@ main: { //SEG12 [5] phi (byte) main::s#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 lda #0 sta s - //SEG13 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 10 [phi:main->main::@1#1] -- vbuz1=vbuc1 + //SEG13 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) $a [phi:main->main::@1#1] -- vbuz1=vbuc1 lda #$a sta i jmp b1 @@ -273,7 +273,7 @@ main: { b1_from_main: //SEG12 [5] phi (byte) main::s#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuaa=vbuc1 lda #0 - //SEG13 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 10 [phi:main->main::@1#1] -- vbuxx=vbuc1 + //SEG13 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) $a [phi:main->main::@1#1] -- vbuxx=vbuc1 ldx #$a jmp b1 //SEG14 [5] phi from main::@2 to main::@1 [phi:main::@2->main::@1] @@ -387,7 +387,7 @@ main: { //SEG11 [5] phi from main to main::@1 [phi:main->main::@1] //SEG12 [5] phi (byte) main::s#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuaa=vbuc1 lda #0 - //SEG13 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 10 [phi:main->main::@1#1] -- vbuxx=vbuc1 + //SEG13 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) $a [phi:main->main::@1#1] -- vbuxx=vbuc1 ldx #$a //SEG14 [5] phi from main::@2 to main::@1 [phi:main::@2->main::@1] //SEG15 [5] phi (byte) main::s#2 = (byte) main::s#4 [phi:main::@2->main::@1#0] -- register_copy diff --git a/src/test/ref/loopnest.cfg b/src/test/ref/loopnest.cfg index 25e852bec..fd08cebb6 100644 --- a/src/test/ref/loopnest.cfg +++ b/src/test/ref/loopnest.cfg @@ -11,7 +11,7 @@ main: scope:[main] from @2 [4] phi() to:main::@1 main::@1: scope:[main] from main main::@3 - [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 100 main::@3/(byte) main::i#1 ) + [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) $64 main::@3/(byte) main::i#1 ) [6] call nest to:main::@3 main::@3: scope:[main] from main::@1 @@ -25,7 +25,7 @@ nest: scope:[nest] from main::@1 [10] phi() to:nest::@1 nest::@1: scope:[nest] from nest nest::@1 - [11] (byte) nest::j#2 ← phi( nest/(byte/signed byte/word/signed word/dword/signed dword) 100 nest::@1/(byte) nest::j#1 ) + [11] (byte) nest::j#2 ← phi( nest/(byte/signed byte/word/signed word/dword/signed dword) $64 nest::@1/(byte) nest::j#1 ) [12] *((const byte*) SCREEN#0) ← (byte) nest::j#2 [13] (byte) nest::j#1 ← -- (byte) nest::j#2 [14] if((byte) nest::j#1>(byte/signed byte/word/signed word/dword/signed dword) 0) goto nest::@1 diff --git a/src/test/ref/loopnest.log b/src/test/ref/loopnest.log index e0d430e55..455e9478d 100644 --- a/src/test/ref/loopnest.log +++ b/src/test/ref/loopnest.log @@ -1,11 +1,11 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@2 main: scope:[main] from @2 (byte*) SCREEN#4 ← phi( @2/(byte*) SCREEN#6 ) - (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 100 + (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) $64 to:main::@1 main::@1: scope:[main] from main main::@3 (byte*) SCREEN#3 ← phi( main/(byte*) SCREEN#4 main::@3/(byte*) SCREEN#5 ) @@ -24,7 +24,7 @@ main::@return: scope:[main] from main::@3 to:@return nest: scope:[nest] from main::@1 (byte*) SCREEN#2 ← phi( main::@1/(byte*) SCREEN#3 ) - (byte) nest::j#0 ← (byte/signed byte/word/signed word/dword/signed dword) 100 + (byte) nest::j#0 ← (byte/signed byte/word/signed word/dword/signed dword) $64 to:nest::@1 nest::@1: scope:[nest] from nest nest::@1 (byte*) SCREEN#1 ← phi( nest/(byte*) SCREEN#2 nest::@1/(byte*) SCREEN#1 ) @@ -94,14 +94,14 @@ Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) main::$1 [8] if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 Simple Condition (bool~) nest::$0 [16] if((byte) nest::j#1>(byte/signed byte/word/signed word/dword/signed dword) 0) goto nest::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) SCREEN#0 = ((byte*))1024 -Constant (const byte) main::i#0 = 100 -Constant (const byte) nest::j#0 = 100 +Constant (const byte*) SCREEN#0 = ((byte*))$400 +Constant (const byte) main::i#0 = $64 +Constant (const byte) nest::j#0 = $64 Successful SSA optimization Pass2ConstantIdentification Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte) nest::j#0 -Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 100 -Constant inlined nest::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 100 +Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) $64 +Constant inlined nest::j#0 = (byte/signed byte/word/signed word/dword/signed dword) $64 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@4(between main::@3 and main::@1) Added new block during phi lifting nest::@3(between nest::@1 and nest::@1) @@ -140,7 +140,7 @@ main: scope:[main] from @2 [4] phi() to:main::@1 main::@1: scope:[main] from main main::@3 - [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 100 main::@3/(byte) main::i#1 ) + [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) $64 main::@3/(byte) main::i#1 ) [6] call nest to:main::@3 main::@3: scope:[main] from main::@1 @@ -154,7 +154,7 @@ nest: scope:[nest] from main::@1 [10] phi() to:nest::@1 nest::@1: scope:[nest] from nest nest::@1 - [11] (byte) nest::j#2 ← phi( nest/(byte/signed byte/word/signed word/dword/signed dword) 100 nest::@1/(byte) nest::j#1 ) + [11] (byte) nest::j#2 ← phi( nest/(byte/signed byte/word/signed word/dword/signed dword) $64 nest::@1/(byte) nest::j#1 ) [12] *((const byte*) SCREEN#0) ← (byte) nest::j#2 [13] (byte) nest::j#1 ← -- (byte) nest::j#2 [14] if((byte) nest::j#1>(byte/signed byte/word/signed word/dword/signed dword) 0) goto nest::@1 @@ -213,7 +213,7 @@ main: { .label i = 2 //SEG11 [5] phi from main to main::@1 [phi:main->main::@1] b1_from_main: - //SEG12 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:main->main::@1#0] -- vbuz1=vbuc1 + //SEG12 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:main->main::@1#0] -- vbuz1=vbuc1 lda #$64 sta i jmp b1 @@ -246,7 +246,7 @@ nest: { .label j = 3 //SEG24 [11] phi from nest to nest::@1 [phi:nest->nest::@1] b1_from_nest: - //SEG25 [11] phi (byte) nest::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:nest->nest::@1#0] -- vbuz1=vbuc1 + //SEG25 [11] phi (byte) nest::j#2 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:nest->nest::@1#0] -- vbuz1=vbuc1 lda #$64 sta j jmp b1 @@ -312,7 +312,7 @@ bend: main: { //SEG11 [5] phi from main to main::@1 [phi:main->main::@1] b1_from_main: - //SEG12 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:main->main::@1#0] -- vbuyy=vbuc1 + //SEG12 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:main->main::@1#0] -- vbuyy=vbuc1 ldy #$64 jmp b1 //SEG13 [5] phi from main::@3 to main::@1 [phi:main::@3->main::@1] @@ -343,7 +343,7 @@ main: { nest: { //SEG24 [11] phi from nest to nest::@1 [phi:nest->nest::@1] b1_from_nest: - //SEG25 [11] phi (byte) nest::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:nest->nest::@1#0] -- vbuxx=vbuc1 + //SEG25 [11] phi (byte) nest::j#2 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:nest->nest::@1#0] -- vbuxx=vbuc1 ldx #$64 jmp b1 //SEG26 [11] phi from nest::@1 to nest::@1 [phi:nest::@1->nest::@1] @@ -406,7 +406,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@1 (label) main::@3 @@ -445,7 +445,7 @@ Score: 1353 //SEG10 main main: { //SEG11 [5] phi from main to main::@1 [phi:main->main::@1] - //SEG12 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:main->main::@1#0] -- vbuyy=vbuc1 + //SEG12 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:main->main::@1#0] -- vbuyy=vbuc1 ldy #$64 //SEG13 [5] phi from main::@3 to main::@1 [phi:main::@3->main::@1] //SEG14 [5] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@3->main::@1#0] -- register_copy @@ -467,7 +467,7 @@ main: { //SEG23 nest nest: { //SEG24 [11] phi from nest to nest::@1 [phi:nest->nest::@1] - //SEG25 [11] phi (byte) nest::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:nest->nest::@1#0] -- vbuxx=vbuc1 + //SEG25 [11] phi (byte) nest::j#2 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:nest->nest::@1#0] -- vbuxx=vbuc1 ldx #$64 //SEG26 [11] phi from nest::@1 to nest::@1 [phi:nest::@1->nest::@1] //SEG27 [11] phi (byte) nest::j#2 = (byte) nest::j#1 [phi:nest::@1->nest::@1#0] -- register_copy diff --git a/src/test/ref/loopnest.sym b/src/test/ref/loopnest.sym index f1d92fd45..499444887 100644 --- a/src/test/ref/loopnest.sym +++ b/src/test/ref/loopnest.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@1 (label) main::@3 diff --git a/src/test/ref/loopnest2.cfg b/src/test/ref/loopnest2.cfg index 683a9d144..9d05d55fb 100644 --- a/src/test/ref/loopnest2.cfg +++ b/src/test/ref/loopnest2.cfg @@ -11,10 +11,10 @@ main: scope:[main] from @3 [4] phi() to:main::@1 main::@1: scope:[main] from main main::@3 - [5] (byte) main::i#5 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 100 main::@3/(byte) main::i#1 ) + [5] (byte) main::i#5 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) $64 main::@3/(byte) main::i#1 ) to:main::@2 main::@2: scope:[main] from main::@1 main::@5 - [6] (byte) main::j#2 ← phi( main::@1/(byte/signed byte/word/signed word/dword/signed dword) 100 main::@5/(byte) main::j#1 ) + [6] (byte) main::j#2 ← phi( main::@1/(byte/signed byte/word/signed word/dword/signed dword) $64 main::@5/(byte) main::j#1 ) [7] call nest1 to:main::@5 main::@5: scope:[main] from main::@2 @@ -32,10 +32,10 @@ nest1: scope:[nest1] from main::@2 [13] phi() to:nest1::@1 nest1::@1: scope:[nest1] from nest1 nest1::@3 - [14] (byte) nest1::i#5 ← phi( nest1/(byte/signed byte/word/signed word/dword/signed dword) 100 nest1::@3/(byte) nest1::i#1 ) + [14] (byte) nest1::i#5 ← phi( nest1/(byte/signed byte/word/signed word/dword/signed dword) $64 nest1::@3/(byte) nest1::i#1 ) to:nest1::@2 nest1::@2: scope:[nest1] from nest1::@1 nest1::@5 - [15] (byte) nest1::j#2 ← phi( nest1::@1/(byte/signed byte/word/signed word/dword/signed dword) 100 nest1::@5/(byte) nest1::j#1 ) + [15] (byte) nest1::j#2 ← phi( nest1::@1/(byte/signed byte/word/signed word/dword/signed dword) $64 nest1::@5/(byte) nest1::j#1 ) [16] call nest2 to:nest1::@5 nest1::@5: scope:[nest1] from nest1::@2 @@ -53,10 +53,10 @@ nest2: scope:[nest2] from nest1::@2 [22] phi() to:nest2::@1 nest2::@1: scope:[nest2] from nest2 nest2::@3 - [23] (byte) nest2::i#4 ← phi( nest2/(byte/signed byte/word/signed word/dword/signed dword) 100 nest2::@3/(byte) nest2::i#1 ) + [23] (byte) nest2::i#4 ← phi( nest2/(byte/signed byte/word/signed word/dword/signed dword) $64 nest2::@3/(byte) nest2::i#1 ) to:nest2::@2 nest2::@2: scope:[nest2] from nest2::@1 nest2::@2 - [24] (byte) nest2::j#2 ← phi( nest2::@1/(byte/signed byte/word/signed word/dword/signed dword) 100 nest2::@2/(byte) nest2::j#1 ) + [24] (byte) nest2::j#2 ← phi( nest2::@1/(byte/signed byte/word/signed word/dword/signed dword) $64 nest2::@2/(byte) nest2::j#1 ) [25] *((const byte*) SCREEN#0) ← (byte) nest2::j#2 [26] (byte) nest2::j#1 ← -- (byte) nest2::j#2 [27] if((byte) nest2::j#1>(byte/signed byte/word/signed word/dword/signed dword) 0) goto nest2::@2 diff --git a/src/test/ref/loopnest2.log b/src/test/ref/loopnest2.log index fb6589972..41825ef5a 100644 --- a/src/test/ref/loopnest2.log +++ b/src/test/ref/loopnest2.log @@ -1,16 +1,16 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@3 main: scope:[main] from @3 (byte*) SCREEN#13 ← phi( @3/(byte*) SCREEN#15 ) - (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 100 + (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) $64 to:main::@1 main::@1: scope:[main] from main main::@3 (byte*) SCREEN#11 ← phi( main/(byte*) SCREEN#13 main::@3/(byte*) SCREEN#14 ) (byte) main::i#5 ← phi( main/(byte) main::i#0 main::@3/(byte) main::i#1 ) - (byte) main::j#0 ← (byte/signed byte/word/signed word/dword/signed dword) 100 + (byte) main::j#0 ← (byte/signed byte/word/signed word/dword/signed dword) $64 to:main::@2 main::@2: scope:[main] from main::@1 main::@5 (byte*) SCREEN#10 ← phi( main::@1/(byte*) SCREEN#11 main::@5/(byte*) SCREEN#12 ) @@ -38,12 +38,12 @@ main::@return: scope:[main] from main::@3 to:@return nest1: scope:[nest1] from main::@2 (byte*) SCREEN#8 ← phi( main::@2/(byte*) SCREEN#10 ) - (byte) nest1::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 100 + (byte) nest1::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) $64 to:nest1::@1 nest1::@1: scope:[nest1] from nest1 nest1::@3 (byte*) SCREEN#6 ← phi( nest1/(byte*) SCREEN#8 nest1::@3/(byte*) SCREEN#9 ) (byte) nest1::i#5 ← phi( nest1/(byte) nest1::i#0 nest1::@3/(byte) nest1::i#1 ) - (byte) nest1::j#0 ← (byte/signed byte/word/signed word/dword/signed dword) 100 + (byte) nest1::j#0 ← (byte/signed byte/word/signed word/dword/signed dword) $64 to:nest1::@2 nest1::@2: scope:[nest1] from nest1::@1 nest1::@5 (byte*) SCREEN#5 ← phi( nest1::@1/(byte*) SCREEN#6 nest1::@5/(byte*) SCREEN#7 ) @@ -71,12 +71,12 @@ nest1::@return: scope:[nest1] from nest1::@3 to:@return nest2: scope:[nest2] from nest1::@2 (byte*) SCREEN#3 ← phi( nest1::@2/(byte*) SCREEN#5 ) - (byte) nest2::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 100 + (byte) nest2::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) $64 to:nest2::@1 nest2::@1: scope:[nest2] from nest2 nest2::@3 (byte) nest2::i#4 ← phi( nest2/(byte) nest2::i#0 nest2::@3/(byte) nest2::i#1 ) (byte*) SCREEN#2 ← phi( nest2/(byte*) SCREEN#3 nest2::@3/(byte*) SCREEN#4 ) - (byte) nest2::j#0 ← (byte/signed byte/word/signed word/dword/signed dword) 100 + (byte) nest2::j#0 ← (byte/signed byte/word/signed word/dword/signed dword) $64 to:nest2::@2 nest2::@2: scope:[nest2] from nest2::@1 nest2::@2 (byte) nest2::i#3 ← phi( nest2::@1/(byte) nest2::i#4 nest2::@2/(byte) nest2::i#3 ) @@ -221,13 +221,13 @@ Simple Condition (bool~) nest1::$2 [29] if((byte) nest1::i#1>(byte/signed byte/w Simple Condition (bool~) nest2::$0 [39] if((byte) nest2::j#1>(byte/signed byte/word/signed word/dword/signed dword) 0) goto nest2::@2 Simple Condition (bool~) nest2::$1 [43] if((byte) nest2::i#1>(byte/signed byte/word/signed word/dword/signed dword) 0) goto nest2::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) SCREEN#0 = ((byte*))1024 -Constant (const byte) main::i#0 = 100 -Constant (const byte) main::j#0 = 100 -Constant (const byte) nest1::i#0 = 100 -Constant (const byte) nest1::j#0 = 100 -Constant (const byte) nest2::i#0 = 100 -Constant (const byte) nest2::j#0 = 100 +Constant (const byte*) SCREEN#0 = ((byte*))$400 +Constant (const byte) main::i#0 = $64 +Constant (const byte) main::j#0 = $64 +Constant (const byte) nest1::i#0 = $64 +Constant (const byte) nest1::j#0 = $64 +Constant (const byte) nest2::i#0 = $64 +Constant (const byte) nest2::j#0 = $64 Successful SSA optimization Pass2ConstantIdentification Self Phi Eliminated (byte*) SCREEN#11 Self Phi Eliminated (byte*) SCREEN#6 @@ -243,12 +243,12 @@ Inlining constant with var siblings (const byte) nest1::i#0 Inlining constant with var siblings (const byte) nest1::j#0 Inlining constant with var siblings (const byte) nest2::i#0 Inlining constant with var siblings (const byte) nest2::j#0 -Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 100 -Constant inlined nest2::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 100 -Constant inlined main::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 100 -Constant inlined nest2::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 100 -Constant inlined nest1::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 100 -Constant inlined nest1::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 100 +Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) $64 +Constant inlined nest2::j#0 = (byte/signed byte/word/signed word/dword/signed dword) $64 +Constant inlined main::j#0 = (byte/signed byte/word/signed word/dword/signed dword) $64 +Constant inlined nest2::i#0 = (byte/signed byte/word/signed word/dword/signed dword) $64 +Constant inlined nest1::j#0 = (byte/signed byte/word/signed word/dword/signed dword) $64 +Constant inlined nest1::i#0 = (byte/signed byte/word/signed word/dword/signed dword) $64 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@6(between main::@3 and main::@1) Added new block during phi lifting main::@7(between main::@5 and main::@2) @@ -302,10 +302,10 @@ main: scope:[main] from @3 [4] phi() to:main::@1 main::@1: scope:[main] from main main::@3 - [5] (byte) main::i#5 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 100 main::@3/(byte) main::i#1 ) + [5] (byte) main::i#5 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) $64 main::@3/(byte) main::i#1 ) to:main::@2 main::@2: scope:[main] from main::@1 main::@5 - [6] (byte) main::j#2 ← phi( main::@1/(byte/signed byte/word/signed word/dword/signed dword) 100 main::@5/(byte) main::j#1 ) + [6] (byte) main::j#2 ← phi( main::@1/(byte/signed byte/word/signed word/dword/signed dword) $64 main::@5/(byte) main::j#1 ) [7] call nest1 to:main::@5 main::@5: scope:[main] from main::@2 @@ -323,10 +323,10 @@ nest1: scope:[nest1] from main::@2 [13] phi() to:nest1::@1 nest1::@1: scope:[nest1] from nest1 nest1::@3 - [14] (byte) nest1::i#5 ← phi( nest1/(byte/signed byte/word/signed word/dword/signed dword) 100 nest1::@3/(byte) nest1::i#1 ) + [14] (byte) nest1::i#5 ← phi( nest1/(byte/signed byte/word/signed word/dword/signed dword) $64 nest1::@3/(byte) nest1::i#1 ) to:nest1::@2 nest1::@2: scope:[nest1] from nest1::@1 nest1::@5 - [15] (byte) nest1::j#2 ← phi( nest1::@1/(byte/signed byte/word/signed word/dword/signed dword) 100 nest1::@5/(byte) nest1::j#1 ) + [15] (byte) nest1::j#2 ← phi( nest1::@1/(byte/signed byte/word/signed word/dword/signed dword) $64 nest1::@5/(byte) nest1::j#1 ) [16] call nest2 to:nest1::@5 nest1::@5: scope:[nest1] from nest1::@2 @@ -344,10 +344,10 @@ nest2: scope:[nest2] from nest1::@2 [22] phi() to:nest2::@1 nest2::@1: scope:[nest2] from nest2 nest2::@3 - [23] (byte) nest2::i#4 ← phi( nest2/(byte/signed byte/word/signed word/dword/signed dword) 100 nest2::@3/(byte) nest2::i#1 ) + [23] (byte) nest2::i#4 ← phi( nest2/(byte/signed byte/word/signed word/dword/signed dword) $64 nest2::@3/(byte) nest2::i#1 ) to:nest2::@2 nest2::@2: scope:[nest2] from nest2::@1 nest2::@2 - [24] (byte) nest2::j#2 ← phi( nest2::@1/(byte/signed byte/word/signed word/dword/signed dword) 100 nest2::@2/(byte) nest2::j#1 ) + [24] (byte) nest2::j#2 ← phi( nest2::@1/(byte/signed byte/word/signed word/dword/signed dword) $64 nest2::@2/(byte) nest2::j#1 ) [25] *((const byte*) SCREEN#0) ← (byte) nest2::j#2 [26] (byte) nest2::j#1 ← -- (byte) nest2::j#2 [27] if((byte) nest2::j#1>(byte/signed byte/word/signed word/dword/signed dword) 0) goto nest2::@2 @@ -436,7 +436,7 @@ main: { .label i = 2 //SEG11 [5] phi from main to main::@1 [phi:main->main::@1] b1_from_main: - //SEG12 [5] phi (byte) main::i#5 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:main->main::@1#0] -- vbuz1=vbuc1 + //SEG12 [5] phi (byte) main::i#5 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:main->main::@1#0] -- vbuz1=vbuc1 lda #$64 sta i jmp b1 @@ -448,7 +448,7 @@ main: { b1: //SEG16 [6] phi from main::@1 to main::@2 [phi:main::@1->main::@2] b2_from_b1: - //SEG17 [6] phi (byte) main::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:main::@1->main::@2#0] -- vbuz1=vbuc1 + //SEG17 [6] phi (byte) main::j#2 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:main::@1->main::@2#0] -- vbuz1=vbuc1 lda #$64 sta j jmp b2 @@ -490,7 +490,7 @@ nest1: { .label i = 4 //SEG32 [14] phi from nest1 to nest1::@1 [phi:nest1->nest1::@1] b1_from_nest1: - //SEG33 [14] phi (byte) nest1::i#5 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:nest1->nest1::@1#0] -- vbuz1=vbuc1 + //SEG33 [14] phi (byte) nest1::i#5 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:nest1->nest1::@1#0] -- vbuz1=vbuc1 lda #$64 sta i jmp b1 @@ -502,7 +502,7 @@ nest1: { b1: //SEG37 [15] phi from nest1::@1 to nest1::@2 [phi:nest1::@1->nest1::@2] b2_from_b1: - //SEG38 [15] phi (byte) nest1::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:nest1::@1->nest1::@2#0] -- vbuz1=vbuc1 + //SEG38 [15] phi (byte) nest1::j#2 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:nest1::@1->nest1::@2#0] -- vbuz1=vbuc1 lda #$64 sta j jmp b2 @@ -544,7 +544,7 @@ nest2: { .label i = 6 //SEG53 [23] phi from nest2 to nest2::@1 [phi:nest2->nest2::@1] b1_from_nest2: - //SEG54 [23] phi (byte) nest2::i#4 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:nest2->nest2::@1#0] -- vbuz1=vbuc1 + //SEG54 [23] phi (byte) nest2::i#4 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:nest2->nest2::@1#0] -- vbuz1=vbuc1 lda #$64 sta i jmp b1 @@ -556,7 +556,7 @@ nest2: { b1: //SEG58 [24] phi from nest2::@1 to nest2::@2 [phi:nest2::@1->nest2::@2] b2_from_b1: - //SEG59 [24] phi (byte) nest2::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:nest2::@1->nest2::@2#0] -- vbuz1=vbuc1 + //SEG59 [24] phi (byte) nest2::j#2 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:nest2::@1->nest2::@2#0] -- vbuz1=vbuc1 lda #$64 sta j jmp b2 @@ -644,7 +644,7 @@ main: { .label i = 2 //SEG11 [5] phi from main to main::@1 [phi:main->main::@1] b1_from_main: - //SEG12 [5] phi (byte) main::i#5 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:main->main::@1#0] -- vbuz1=vbuc1 + //SEG12 [5] phi (byte) main::i#5 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:main->main::@1#0] -- vbuz1=vbuc1 lda #$64 sta i jmp b1 @@ -656,7 +656,7 @@ main: { b1: //SEG16 [6] phi from main::@1 to main::@2 [phi:main::@1->main::@2] b2_from_b1: - //SEG17 [6] phi (byte) main::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:main::@1->main::@2#0] -- vbuz1=vbuc1 + //SEG17 [6] phi (byte) main::j#2 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:main::@1->main::@2#0] -- vbuz1=vbuc1 lda #$64 sta j jmp b2 @@ -697,7 +697,7 @@ nest1: { .label i = 4 //SEG32 [14] phi from nest1 to nest1::@1 [phi:nest1->nest1::@1] b1_from_nest1: - //SEG33 [14] phi (byte) nest1::i#5 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:nest1->nest1::@1#0] -- vbuz1=vbuc1 + //SEG33 [14] phi (byte) nest1::i#5 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:nest1->nest1::@1#0] -- vbuz1=vbuc1 lda #$64 sta i jmp b1 @@ -709,7 +709,7 @@ nest1: { b1: //SEG37 [15] phi from nest1::@1 to nest1::@2 [phi:nest1::@1->nest1::@2] b2_from_b1: - //SEG38 [15] phi (byte) nest1::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:nest1::@1->nest1::@2#0] -- vbuaa=vbuc1 + //SEG38 [15] phi (byte) nest1::j#2 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:nest1::@1->nest1::@2#0] -- vbuaa=vbuc1 lda #$64 jmp b2 //SEG39 [15] phi from nest1::@5 to nest1::@2 [phi:nest1::@5->nest1::@2] @@ -749,7 +749,7 @@ nest1: { nest2: { //SEG53 [23] phi from nest2 to nest2::@1 [phi:nest2->nest2::@1] b1_from_nest2: - //SEG54 [23] phi (byte) nest2::i#4 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:nest2->nest2::@1#0] -- vbuxx=vbuc1 + //SEG54 [23] phi (byte) nest2::i#4 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:nest2->nest2::@1#0] -- vbuxx=vbuc1 ldx #$64 jmp b1 //SEG55 [23] phi from nest2::@3 to nest2::@1 [phi:nest2::@3->nest2::@1] @@ -760,7 +760,7 @@ nest2: { b1: //SEG58 [24] phi from nest2::@1 to nest2::@2 [phi:nest2::@1->nest2::@2] b2_from_b1: - //SEG59 [24] phi (byte) nest2::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:nest2::@1->nest2::@2#0] -- vbuyy=vbuc1 + //SEG59 [24] phi (byte) nest2::j#2 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:nest2::@1->nest2::@2#0] -- vbuyy=vbuc1 ldy #$64 jmp b2 //SEG60 [24] phi from nest2::@2 to nest2::@2 [phi:nest2::@2->nest2::@2] @@ -862,7 +862,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@1 (label) main::@2 @@ -929,7 +929,7 @@ main: { .label j = 3 .label i = 2 //SEG11 [5] phi from main to main::@1 [phi:main->main::@1] - //SEG12 [5] phi (byte) main::i#5 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:main->main::@1#0] -- vbuz1=vbuc1 + //SEG12 [5] phi (byte) main::i#5 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:main->main::@1#0] -- vbuz1=vbuc1 lda #$64 sta i //SEG13 [5] phi from main::@3 to main::@1 [phi:main::@3->main::@1] @@ -937,7 +937,7 @@ main: { //SEG15 main::@1 b1: //SEG16 [6] phi from main::@1 to main::@2 [phi:main::@1->main::@2] - //SEG17 [6] phi (byte) main::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:main::@1->main::@2#0] -- vbuz1=vbuc1 + //SEG17 [6] phi (byte) main::j#2 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:main::@1->main::@2#0] -- vbuz1=vbuc1 lda #$64 sta j //SEG18 [6] phi from main::@5 to main::@2 [phi:main::@5->main::@2] @@ -967,7 +967,7 @@ main: { nest1: { .label i = 4 //SEG32 [14] phi from nest1 to nest1::@1 [phi:nest1->nest1::@1] - //SEG33 [14] phi (byte) nest1::i#5 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:nest1->nest1::@1#0] -- vbuz1=vbuc1 + //SEG33 [14] phi (byte) nest1::i#5 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:nest1->nest1::@1#0] -- vbuz1=vbuc1 lda #$64 sta i //SEG34 [14] phi from nest1::@3 to nest1::@1 [phi:nest1::@3->nest1::@1] @@ -975,7 +975,7 @@ nest1: { //SEG36 nest1::@1 b1: //SEG37 [15] phi from nest1::@1 to nest1::@2 [phi:nest1::@1->nest1::@2] - //SEG38 [15] phi (byte) nest1::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:nest1::@1->nest1::@2#0] -- vbuaa=vbuc1 + //SEG38 [15] phi (byte) nest1::j#2 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:nest1::@1->nest1::@2#0] -- vbuaa=vbuc1 lda #$64 //SEG39 [15] phi from nest1::@5 to nest1::@2 [phi:nest1::@5->nest1::@2] //SEG40 [15] phi (byte) nest1::j#2 = (byte) nest1::j#1 [phi:nest1::@5->nest1::@2#0] -- register_copy @@ -1004,14 +1004,14 @@ nest1: { //SEG52 nest2 nest2: { //SEG53 [23] phi from nest2 to nest2::@1 [phi:nest2->nest2::@1] - //SEG54 [23] phi (byte) nest2::i#4 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:nest2->nest2::@1#0] -- vbuxx=vbuc1 + //SEG54 [23] phi (byte) nest2::i#4 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:nest2->nest2::@1#0] -- vbuxx=vbuc1 ldx #$64 //SEG55 [23] phi from nest2::@3 to nest2::@1 [phi:nest2::@3->nest2::@1] //SEG56 [23] phi (byte) nest2::i#4 = (byte) nest2::i#1 [phi:nest2::@3->nest2::@1#0] -- register_copy //SEG57 nest2::@1 b1: //SEG58 [24] phi from nest2::@1 to nest2::@2 [phi:nest2::@1->nest2::@2] - //SEG59 [24] phi (byte) nest2::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:nest2::@1->nest2::@2#0] -- vbuyy=vbuc1 + //SEG59 [24] phi (byte) nest2::j#2 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:nest2::@1->nest2::@2#0] -- vbuyy=vbuc1 ldy #$64 //SEG60 [24] phi from nest2::@2 to nest2::@2 [phi:nest2::@2->nest2::@2] //SEG61 [24] phi (byte) nest2::j#2 = (byte) nest2::j#1 [phi:nest2::@2->nest2::@2#0] -- register_copy diff --git a/src/test/ref/loopnest2.sym b/src/test/ref/loopnest2.sym index 43526a7d4..cfa67c94b 100644 --- a/src/test/ref/loopnest2.sym +++ b/src/test/ref/loopnest2.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@1 (label) main::@2 diff --git a/src/test/ref/loopnest3.cfg b/src/test/ref/loopnest3.cfg index 57b2e43a2..87753d46f 100644 --- a/src/test/ref/loopnest3.cfg +++ b/src/test/ref/loopnest3.cfg @@ -17,7 +17,7 @@ main::@1: scope:[main] from main main::@3 to:main::@3 main::@3: scope:[main] from main::@1 [8] (byte) main::i#1 ← ++ (byte) main::i#2 - [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 + [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 to:main::@return main::@return: scope:[main] from main::@3 [10] return @@ -36,7 +36,7 @@ c::@1: scope:[c] from c c::@1 [15] (byte) c::j#2 ← phi( c/(byte/signed byte/word/signed word/dword/signed dword) 0 c::@1/(byte) c::j#1 ) [16] *((const byte*) SCREEN#0 + (byte) c::j#2) ← (byte) c::i#0 [17] (byte) c::j#1 ← ++ (byte) c::j#2 - [18] if((byte) c::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto c::@1 + [18] if((byte) c::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto c::@1 to:c::@return c::@return: scope:[c] from c::@1 [19] return diff --git a/src/test/ref/loopnest3.log b/src/test/ref/loopnest3.log index 7c97d8d6a..0b4e007cd 100644 --- a/src/test/ref/loopnest3.log +++ b/src/test/ref/loopnest3.log @@ -12,8 +12,8 @@ main::@1: scope:[main] from main main::@3 to:main::@3 main::@3: scope:[main] from main::@1 (byte) main::i#3 ← phi( main::@1/(byte) main::i#2 ) - (byte) main::i#1 ← (byte) main::i#3 + rangenext(0,100) - (bool~) main::$1 ← (byte) main::i#1 != rangelast(0,100) + (byte) main::i#1 ← (byte) main::i#3 + rangenext(0,$64) + (bool~) main::$1 ← (byte) main::i#1 != rangelast(0,$64) if((bool~) main::$1) goto main::@1 to:main::@return main::@return: scope:[main] from main::@3 @@ -30,7 +30,7 @@ b::@return: scope:[b] from b::@1 return to:@return @2: scope:[] from @begin - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@3 c: scope:[c] from b (byte) c::i#2 ← phi( b/(byte) c::i#0 ) @@ -40,8 +40,8 @@ c::@1: scope:[c] from c c::@1 (byte) c::j#2 ← phi( c/(byte) c::j#0 c::@1/(byte) c::j#1 ) (byte) c::i#1 ← phi( c/(byte) c::i#2 c::@1/(byte) c::i#1 ) *((byte*) SCREEN#0 + (byte) c::j#2) ← (byte) c::i#1 - (byte) c::j#1 ← (byte) c::j#2 + rangenext(0,100) - (bool~) c::$0 ← (byte) c::j#1 != rangelast(0,100) + (byte) c::j#1 ← (byte) c::j#2 + rangenext(0,$64) + (bool~) c::$0 ← (byte) c::j#1 != rangelast(0,$64) if((bool~) c::$0) goto c::@1 to:c::@return c::@return: scope:[c] from c::@1 @@ -102,17 +102,17 @@ Redundant Phi (byte) b::i#1 (byte) b::i#0 Redundant Phi (byte) c::i#2 (byte) c::i#0 Redundant Phi (byte) c::i#1 (byte) c::i#2 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$1 [7] if((byte) main::i#1!=rangelast(0,100)) goto main::@1 -Simple Condition (bool~) c::$0 [20] if((byte) c::j#1!=rangelast(0,100)) goto c::@1 +Simple Condition (bool~) main::$1 [7] if((byte) main::i#1!=rangelast(0,$64)) goto main::@1 +Simple Condition (bool~) c::$0 [20] if((byte) c::j#1!=rangelast(0,$64)) goto c::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte) main::i#0 = 0 -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Constant (const byte) c::j#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ -Resolved ranged comparison value if(main::i#1!=rangelast(0,100)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 101 +Resolved ranged comparison value if(main::i#1!=rangelast(0,$64)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $65 Resolved ranged next value c::j#1 ← ++ c::j#2 to ++ -Resolved ranged comparison value if(c::j#1!=rangelast(0,100)) goto c::@1 to (byte/signed byte/word/signed word/dword/signed dword) 101 +Resolved ranged comparison value if(c::j#1!=rangelast(0,$64)) goto c::@1 to (byte/signed byte/word/signed word/dword/signed dword) $65 Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Inlining constant with var siblings (const byte) main::i#0 @@ -164,7 +164,7 @@ main::@1: scope:[main] from main main::@3 to:main::@3 main::@3: scope:[main] from main::@1 [8] (byte) main::i#1 ← ++ (byte) main::i#2 - [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 + [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 to:main::@return main::@return: scope:[main] from main::@3 [10] return @@ -183,7 +183,7 @@ c::@1: scope:[c] from c c::@1 [15] (byte) c::j#2 ← phi( c/(byte/signed byte/word/signed word/dword/signed dword) 0 c::@1/(byte) c::j#1 ) [16] *((const byte*) SCREEN#0 + (byte) c::j#2) ← (byte) c::i#0 [17] (byte) c::j#1 ← ++ (byte) c::j#2 - [18] if((byte) c::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto c::@1 + [18] if((byte) c::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto c::@1 to:c::@return c::@return: scope:[c] from c::@1 [19] return @@ -270,7 +270,7 @@ main: { b3: //SEG19 [8] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG20 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG20 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$65 bne b1_from_b3 @@ -320,7 +320,7 @@ c: { sta SCREEN,y //SEG36 [17] (byte) c::j#1 ← ++ (byte) c::j#2 -- vbuz1=_inc_vbuz1 inc j - //SEG37 [18] if((byte) c::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto c::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG37 [18] if((byte) c::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto c::@1 -- vbuz1_neq_vbuc1_then_la1 lda j cmp #$65 bne b1_from_b1 @@ -393,7 +393,7 @@ main: { b3: //SEG19 [8] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuyy=_inc_vbuyy iny - //SEG20 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 -- vbuyy_neq_vbuc1_then_la1 + //SEG20 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 -- vbuyy_neq_vbuc1_then_la1 cpy #$65 bne b1_from_b3 jmp breturn @@ -435,7 +435,7 @@ c: { sta SCREEN,x //SEG36 [17] (byte) c::j#1 ← ++ (byte) c::j#2 -- vbuxx=_inc_vbuxx inx - //SEG37 [18] if((byte) c::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto c::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG37 [18] if((byte) c::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto c::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$65 bne b1_from_b1 jmp breturn @@ -487,7 +487,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) b((byte) b::i) (label) b::@return (byte) b::i @@ -546,7 +546,7 @@ main: { //SEG18 main::@3 //SEG19 [8] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuyy=_inc_vbuyy iny - //SEG20 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 -- vbuyy_neq_vbuc1_then_la1 + //SEG20 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 -- vbuyy_neq_vbuc1_then_la1 cpy #$65 bne b1 //SEG21 main::@return @@ -579,7 +579,7 @@ c: { sta SCREEN,x //SEG36 [17] (byte) c::j#1 ← ++ (byte) c::j#2 -- vbuxx=_inc_vbuxx inx - //SEG37 [18] if((byte) c::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto c::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG37 [18] if((byte) c::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto c::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$65 bne b1 //SEG38 c::@return diff --git a/src/test/ref/loopnest3.sym b/src/test/ref/loopnest3.sym index 5dc098678..ba94b2652 100644 --- a/src/test/ref/loopnest3.sym +++ b/src/test/ref/loopnest3.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) b((byte) b::i) (label) b::@return (byte) b::i diff --git a/src/test/ref/loopsplit.cfg b/src/test/ref/loopsplit.cfg index 50c0124ac..4b59feeaa 100644 --- a/src/test/ref/loopsplit.cfg +++ b/src/test/ref/loopsplit.cfg @@ -12,7 +12,7 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@4 main::@8 [5] (byte) main::s#3 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@4/(byte) main::s#1 main::@8/(byte) main::s#2 ) - [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 100 main::@4/(byte) main::i#1 main::@8/(byte) main::i#1 ) + [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) $64 main::@4/(byte) main::i#1 main::@8/(byte) main::i#1 ) [6] (byte) main::i#1 ← -- (byte) main::i#2 [7] if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 to:main::@return @@ -20,7 +20,7 @@ main::@return: scope:[main] from main::@1 [8] return to:@return main::@2: scope:[main] from main::@1 - [9] if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@4 + [9] if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) $32) goto main::@4 to:main::@8 main::@8: scope:[main] from main::@2 [10] (byte) main::s#2 ← -- (byte) main::s#3 diff --git a/src/test/ref/loopsplit.log b/src/test/ref/loopsplit.log index 1ec838833..c25c255b4 100644 --- a/src/test/ref/loopsplit.log +++ b/src/test/ref/loopsplit.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 100 + (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) $64 (byte) main::s#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main main::@4 main::@8 @@ -16,7 +16,7 @@ main::@1: scope:[main] from main main::@4 main::@8 main::@2: scope:[main] from main::@1 (byte) main::s#5 ← phi( main::@1/(byte) main::s#6 ) (byte) main::i#3 ← phi( main::@1/(byte) main::i#1 ) - (bool~) main::$1 ← (byte) main::i#3 > (byte/signed byte/word/signed word/dword/signed dword) 50 + (bool~) main::$1 ← (byte) main::i#3 > (byte/signed byte/word/signed word/dword/signed dword) $32 if((bool~) main::$1) goto main::@4 to:main::@8 main::@4: scope:[main] from main::@2 @@ -74,14 +74,14 @@ Alias (byte) main::i#1 = (byte) main::i#3 (byte) main::i#4 (byte) main::i#5 Alias (byte) main::s#3 = (byte) main::s#5 (byte) main::s#6 (byte) main::s#4 Successful SSA optimization Pass2AliasElimination Simple Condition (bool~) main::$0 [5] if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 -Simple Condition (bool~) main::$1 [8] if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@4 +Simple Condition (bool~) main::$1 [8] if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) $32) goto main::@4 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte) main::i#0 = 100 +Constant (const byte) main::i#0 = $64 Constant (const byte) main::s#0 = 0 Successful SSA optimization Pass2ConstantIdentification Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte) main::s#0 -Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 100 +Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) $64 Constant inlined main::s#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of @begin @@ -117,7 +117,7 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@4 main::@8 [5] (byte) main::s#3 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@4/(byte) main::s#1 main::@8/(byte) main::s#2 ) - [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 100 main::@4/(byte) main::i#1 main::@8/(byte) main::i#1 ) + [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) $64 main::@4/(byte) main::i#1 main::@8/(byte) main::i#1 ) [6] (byte) main::i#1 ← -- (byte) main::i#2 [7] if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 to:main::@return @@ -125,7 +125,7 @@ main::@return: scope:[main] from main::@1 [8] return to:@return main::@2: scope:[main] from main::@1 - [9] if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@4 + [9] if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) $32) goto main::@4 to:main::@8 main::@8: scope:[main] from main::@2 [10] (byte) main::s#2 ← -- (byte) main::s#3 @@ -186,7 +186,7 @@ main: { //SEG12 [5] phi (byte) main::s#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 lda #0 sta s - //SEG13 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:main->main::@1#1] -- vbuz1=vbuc1 + //SEG13 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:main->main::@1#1] -- vbuz1=vbuc1 lda #$64 sta i jmp b1 @@ -204,7 +204,7 @@ main: { rts //SEG19 main::@2 b2: - //SEG20 [9] if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@4 -- vbuz1_gt_vbuc1_then_la1 + //SEG20 [9] if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) $32) goto main::@4 -- vbuz1_gt_vbuc1_then_la1 lda i cmp #$32 beq !+ @@ -268,7 +268,7 @@ main: { b1_from_main: //SEG12 [5] phi (byte) main::s#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuxx=vbuc1 ldx #0 - //SEG13 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:main->main::@1#1] -- vbuaa=vbuc1 + //SEG13 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:main->main::@1#1] -- vbuaa=vbuc1 lda #$64 jmp b1 //SEG14 main::@1 @@ -286,7 +286,7 @@ main: { rts //SEG19 main::@2 b2: - //SEG20 [9] if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@4 -- vbuaa_gt_vbuc1_then_la1 + //SEG20 [9] if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) $32) goto main::@4 -- vbuaa_gt_vbuc1_then_la1 cmp #$32 beq !+ bcs b4 @@ -382,7 +382,7 @@ main: { //SEG11 [5] phi from main to main::@1 [phi:main->main::@1] //SEG12 [5] phi (byte) main::s#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuxx=vbuc1 ldx #0 - //SEG13 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:main->main::@1#1] -- vbuaa=vbuc1 + //SEG13 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:main->main::@1#1] -- vbuaa=vbuc1 lda #$64 //SEG14 main::@1 b1: @@ -397,7 +397,7 @@ main: { rts //SEG19 main::@2 b2: - //SEG20 [9] if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@4 -- vbuaa_gt_vbuc1_then_la1 + //SEG20 [9] if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) $32) goto main::@4 -- vbuaa_gt_vbuc1_then_la1 cmp #$32 beq !+ bcs b4 diff --git a/src/test/ref/mem-alignment.cfg b/src/test/ref/mem-alignment.cfg index 6a7a78775..0298078d7 100644 --- a/src/test/ref/mem-alignment.cfg +++ b/src/test/ref/mem-alignment.cfg @@ -12,14 +12,14 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@1 [5] (byte) main::i#4 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::i#1 ) - [6] *((const byte[256]) bs#0 + (byte) main::i#4) ← (byte) main::i#4 + [6] *((const byte[$100]) bs#0 + (byte) main::i#4) ← (byte) main::i#4 [7] (byte) main::i#1 ← ++ (byte) main::i#4 [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 [9] (byte) main::i#5 ← phi( main::@2/(byte) main::i#3 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [9] (byte) main::j#2 ← phi( main::@2/(byte) main::j#1 main::@1/(byte/word/signed word/dword/signed dword) 255 ) - [10] *((const byte[256]) main::cs#0 + (byte) main::i#5) ← *((const byte[256]) bs#0 + (byte) main::j#2) + [9] (byte) main::j#2 ← phi( main::@2/(byte) main::j#1 main::@1/(byte/word/signed word/dword/signed dword) $ff ) + [10] *((const byte[$100]) main::cs#0 + (byte) main::i#5) ← *((const byte[$100]) bs#0 + (byte) main::j#2) [11] (byte) main::j#1 ← -- (byte) main::j#2 [12] (byte) main::i#3 ← ++ (byte) main::i#5 [13] if((byte) main::i#3!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 diff --git a/src/test/ref/mem-alignment.log b/src/test/ref/mem-alignment.log index ec1133810..2aef48c02 100644 --- a/src/test/ref/mem-alignment.log +++ b/src/test/ref/mem-alignment.log @@ -1,30 +1,30 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte[256]) bs#0 ← { fill( 256, 0) } + (byte[$100]) bs#0 ← { fill( $100, 0) } to:@1 main: scope:[main] from @1 - (byte[256]) main::cs#0 ← { fill( 256, 0) } + (byte[$100]) main::cs#0 ← { fill( $100, 0) } (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main main::@1 (byte) main::i#4 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) - *((byte[256]) bs#0 + (byte) main::i#4) ← (byte) main::i#4 - (byte) main::i#1 ← (byte) main::i#4 + rangenext(0,255) - (bool~) main::$0 ← (byte) main::i#1 != rangelast(0,255) + *((byte[$100]) bs#0 + (byte) main::i#4) ← (byte) main::i#4 + (byte) main::i#1 ← (byte) main::i#4 + rangenext(0,$ff) + (bool~) main::$0 ← (byte) main::i#1 != rangelast(0,$ff) if((bool~) main::$0) goto main::@1 to:main::@3 main::@3: scope:[main] from main::@1 - (byte) main::j#0 ← (byte/word/signed word/dword/signed dword) 255 + (byte) main::j#0 ← (byte/word/signed word/dword/signed dword) $ff (byte) main::i#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@2 main::@2: scope:[main] from main::@2 main::@3 (byte) main::i#5 ← phi( main::@2/(byte) main::i#3 main::@3/(byte) main::i#2 ) (byte) main::j#2 ← phi( main::@2/(byte) main::j#1 main::@3/(byte) main::j#0 ) - *((byte[256]) main::cs#0 + (byte) main::i#5) ← *((byte[256]) bs#0 + (byte) main::j#2) + *((byte[$100]) main::cs#0 + (byte) main::i#5) ← *((byte[$100]) bs#0 + (byte) main::j#2) (byte) main::j#1 ← -- (byte) main::j#2 - (byte) main::i#3 ← (byte) main::i#5 + rangenext(0,255) - (bool~) main::$1 ← (byte) main::i#3 != rangelast(0,255) + (byte) main::i#3 ← (byte) main::i#5 + rangenext(0,$ff) + (bool~) main::$1 ← (byte) main::i#3 != rangelast(0,$ff) if((bool~) main::$1) goto main::@2 to:main::@return main::@return: scope:[main] from main::@2 @@ -42,8 +42,8 @@ SYMBOL TABLE SSA (label) @2 (label) @begin (label) @end -(byte[256]) bs -(byte[256]) bs#0 +(byte[$100]) bs +(byte[$100]) bs#0 (void()) main() (bool~) main::$0 (bool~) main::$1 @@ -51,8 +51,8 @@ SYMBOL TABLE SSA (label) main::@2 (label) main::@3 (label) main::@return -(byte[256]) main::cs -(byte[256]) main::cs#0 +(byte[$100]) main::cs +(byte[$100]) main::cs#0 (byte) main::i (byte) main::i#0 (byte) main::i#1 @@ -67,19 +67,19 @@ SYMBOL TABLE SSA Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks -Simple Condition (bool~) main::$0 [7] if((byte) main::i#1!=rangelast(0,255)) goto main::@1 -Simple Condition (bool~) main::$1 [15] if((byte) main::i#3!=rangelast(0,255)) goto main::@2 +Simple Condition (bool~) main::$0 [7] if((byte) main::i#1!=rangelast(0,$ff)) goto main::@1 +Simple Condition (bool~) main::$1 [15] if((byte) main::i#3!=rangelast(0,$ff)) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte[256]) bs#0 = { fill( 256, 0) } -Constant (const byte[256]) main::cs#0 = { fill( 256, 0) } +Constant (const byte[$100]) bs#0 = { fill( $100, 0) } +Constant (const byte[$100]) main::cs#0 = { fill( $100, 0) } Constant (const byte) main::i#0 = 0 -Constant (const byte) main::j#0 = 255 +Constant (const byte) main::j#0 = $ff Constant (const byte) main::i#2 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::i#1 ← ++ main::i#4 to ++ -Resolved ranged comparison value if(main::i#1!=rangelast(0,255)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(main::i#1!=rangelast(0,$ff)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 Resolved ranged next value main::i#3 ← ++ main::i#5 to ++ -Resolved ranged comparison value if(main::i#3!=rangelast(0,255)) goto main::@2 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(main::i#3!=rangelast(0,$ff)) goto main::@2 to (byte/signed byte/word/signed word/dword/signed dword) 0 Culled Empty Block (label) main::@3 Successful SSA optimization Pass2CullEmptyBlocks Inlining constant with var siblings (const byte) main::i#0 @@ -87,7 +87,7 @@ Inlining constant with var siblings (const byte) main::j#0 Inlining constant with var siblings (const byte) main::i#2 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::j#0 = (byte/word/signed word/dword/signed dword) 255 +Constant inlined main::j#0 = (byte/word/signed word/dword/signed dword) $ff Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@5(between main::@1 and main::@1) Added new block during phi lifting main::@6(between main::@2 and main::@2) @@ -125,14 +125,14 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@1 [5] (byte) main::i#4 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::i#1 ) - [6] *((const byte[256]) bs#0 + (byte) main::i#4) ← (byte) main::i#4 + [6] *((const byte[$100]) bs#0 + (byte) main::i#4) ← (byte) main::i#4 [7] (byte) main::i#1 ← ++ (byte) main::i#4 [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 [9] (byte) main::i#5 ← phi( main::@2/(byte) main::i#3 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [9] (byte) main::j#2 ← phi( main::@2/(byte) main::j#1 main::@1/(byte/word/signed word/dword/signed dword) 255 ) - [10] *((const byte[256]) main::cs#0 + (byte) main::i#5) ← *((const byte[256]) bs#0 + (byte) main::j#2) + [9] (byte) main::j#2 ← phi( main::@2/(byte) main::j#1 main::@1/(byte/word/signed word/dword/signed dword) $ff ) + [10] *((const byte[$100]) main::cs#0 + (byte) main::i#5) ← *((const byte[$100]) bs#0 + (byte) main::j#2) [11] (byte) main::j#1 ← -- (byte) main::j#2 [12] (byte) main::i#3 ← ++ (byte) main::i#5 [13] if((byte) main::i#3!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 @@ -143,9 +143,9 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS -(byte[256]) bs +(byte[$100]) bs (void()) main() -(byte[256]) main::cs +(byte[$100]) main::cs (byte) main::i (byte) main::i#1 16.5 (byte) main::i#3 16.5 @@ -209,7 +209,7 @@ main: { jmp b1 //SEG15 main::@1 b1: - //SEG16 [6] *((const byte[256]) bs#0 + (byte) main::i#4) ← (byte) main::i#4 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG16 [6] *((const byte[$100]) bs#0 + (byte) main::i#4) ← (byte) main::i#4 -- pbuc1_derefidx_vbuz1=vbuz1 ldy i tya sta bs,y @@ -224,7 +224,7 @@ main: { //SEG20 [9] phi (byte) main::i#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@1->main::@2#0] -- vbuz1=vbuc1 lda #0 sta i_5 - //SEG21 [9] phi (byte) main::j#2 = (byte/word/signed word/dword/signed dword) 255 [phi:main::@1->main::@2#1] -- vbuz1=vbuc1 + //SEG21 [9] phi (byte) main::j#2 = (byte/word/signed word/dword/signed dword) $ff [phi:main::@1->main::@2#1] -- vbuz1=vbuc1 lda #$ff sta j jmp b2 @@ -235,7 +235,7 @@ main: { jmp b2 //SEG25 main::@2 b2: - //SEG26 [10] *((const byte[256]) main::cs#0 + (byte) main::i#5) ← *((const byte[256]) bs#0 + (byte) main::j#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2 + //SEG26 [10] *((const byte[$100]) main::cs#0 + (byte) main::i#5) ← *((const byte[$100]) bs#0 + (byte) main::j#2) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2 ldy j lda bs,y ldy i_5 @@ -260,10 +260,10 @@ main: { bs: .fill $100, 0 REGISTER UPLIFT POTENTIAL REGISTERS -Statement [10] *((const byte[256]) main::cs#0 + (byte) main::i#5) ← *((const byte[256]) bs#0 + (byte) main::j#2) [ main::j#2 main::i#5 ] ( main:2 [ main::j#2 main::i#5 ] ) always clobbers reg byte a +Statement [10] *((const byte[$100]) main::cs#0 + (byte) main::i#5) ← *((const byte[$100]) bs#0 + (byte) main::j#2) [ main::j#2 main::i#5 ] ( main:2 [ main::j#2 main::i#5 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ main::j#2 main::j#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ main::i#5 main::i#3 ] -Statement [10] *((const byte[256]) main::cs#0 + (byte) main::i#5) ← *((const byte[256]) bs#0 + (byte) main::j#2) [ main::j#2 main::i#5 ] ( main:2 [ main::j#2 main::i#5 ] ) always clobbers reg byte a +Statement [10] *((const byte[$100]) main::cs#0 + (byte) main::i#5) ← *((const byte[$100]) bs#0 + (byte) main::j#2) [ main::j#2 main::i#5 ] ( main:2 [ main::j#2 main::i#5 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ main::i#4 main::i#1 ] : zp ZP_BYTE:2 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:3 [ main::j#2 main::j#1 ] : zp ZP_BYTE:3 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:4 [ main::i#5 main::i#3 ] : zp ZP_BYTE:4 , reg byte x , reg byte y , @@ -312,7 +312,7 @@ main: { jmp b1 //SEG15 main::@1 b1: - //SEG16 [6] *((const byte[256]) bs#0 + (byte) main::i#4) ← (byte) main::i#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG16 [6] *((const byte[$100]) bs#0 + (byte) main::i#4) ← (byte) main::i#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta bs,x //SEG17 [7] (byte) main::i#1 ← ++ (byte) main::i#4 -- vbuxx=_inc_vbuxx @@ -324,7 +324,7 @@ main: { b2_from_b1: //SEG20 [9] phi (byte) main::i#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@1->main::@2#0] -- vbuyy=vbuc1 ldy #0 - //SEG21 [9] phi (byte) main::j#2 = (byte/word/signed word/dword/signed dword) 255 [phi:main::@1->main::@2#1] -- vbuxx=vbuc1 + //SEG21 [9] phi (byte) main::j#2 = (byte/word/signed word/dword/signed dword) $ff [phi:main::@1->main::@2#1] -- vbuxx=vbuc1 ldx #$ff jmp b2 //SEG22 [9] phi from main::@2 to main::@2 [phi:main::@2->main::@2] @@ -334,7 +334,7 @@ main: { jmp b2 //SEG25 main::@2 b2: - //SEG26 [10] *((const byte[256]) main::cs#0 + (byte) main::i#5) ← *((const byte[256]) bs#0 + (byte) main::j#2) -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx + //SEG26 [10] *((const byte[$100]) main::cs#0 + (byte) main::i#5) ← *((const byte[$100]) bs#0 + (byte) main::j#2) -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx lda bs,x sta cs,y //SEG27 [11] (byte) main::j#1 ← -- (byte) main::j#2 -- vbuxx=_dec_vbuxx @@ -389,14 +389,14 @@ FINAL SYMBOL TABLE (label) @1 (label) @begin (label) @end -(byte[256]) bs -(const byte[256]) bs#0 bs = { fill( 256, 0) } +(byte[$100]) bs +(const byte[$100]) bs#0 bs = { fill( $100, 0) } (void()) main() (label) main::@1 (label) main::@2 (label) main::@return -(byte[256]) main::cs -(const byte[256]) main::cs#0 cs = { fill( 256, 0) } +(byte[$100]) main::cs +(const byte[$100]) main::cs#0 cs = { fill( $100, 0) } (byte) main::i (byte) main::i#1 reg byte x 16.5 (byte) main::i#3 reg byte y 16.5 @@ -437,7 +437,7 @@ main: { //SEG14 [5] phi (byte) main::i#4 = (byte) main::i#1 [phi:main::@1->main::@1#0] -- register_copy //SEG15 main::@1 b1: - //SEG16 [6] *((const byte[256]) bs#0 + (byte) main::i#4) ← (byte) main::i#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG16 [6] *((const byte[$100]) bs#0 + (byte) main::i#4) ← (byte) main::i#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta bs,x //SEG17 [7] (byte) main::i#1 ← ++ (byte) main::i#4 -- vbuxx=_inc_vbuxx @@ -448,14 +448,14 @@ main: { //SEG19 [9] phi from main::@1 to main::@2 [phi:main::@1->main::@2] //SEG20 [9] phi (byte) main::i#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@1->main::@2#0] -- vbuyy=vbuc1 ldy #0 - //SEG21 [9] phi (byte) main::j#2 = (byte/word/signed word/dword/signed dword) 255 [phi:main::@1->main::@2#1] -- vbuxx=vbuc1 + //SEG21 [9] phi (byte) main::j#2 = (byte/word/signed word/dword/signed dword) $ff [phi:main::@1->main::@2#1] -- vbuxx=vbuc1 ldx #$ff //SEG22 [9] phi from main::@2 to main::@2 [phi:main::@2->main::@2] //SEG23 [9] phi (byte) main::i#5 = (byte) main::i#3 [phi:main::@2->main::@2#0] -- register_copy //SEG24 [9] phi (byte) main::j#2 = (byte) main::j#1 [phi:main::@2->main::@2#1] -- register_copy //SEG25 main::@2 b2: - //SEG26 [10] *((const byte[256]) main::cs#0 + (byte) main::i#5) ← *((const byte[256]) bs#0 + (byte) main::j#2) -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx + //SEG26 [10] *((const byte[$100]) main::cs#0 + (byte) main::i#5) ← *((const byte[$100]) bs#0 + (byte) main::j#2) -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx lda bs,x sta cs,y //SEG27 [11] (byte) main::j#1 ← -- (byte) main::j#2 -- vbuxx=_dec_vbuxx diff --git a/src/test/ref/mem-alignment.sym b/src/test/ref/mem-alignment.sym index ee5f83799..5052648cc 100644 --- a/src/test/ref/mem-alignment.sym +++ b/src/test/ref/mem-alignment.sym @@ -1,14 +1,14 @@ (label) @1 (label) @begin (label) @end -(byte[256]) bs -(const byte[256]) bs#0 bs = { fill( 256, 0) } +(byte[$100]) bs +(const byte[$100]) bs#0 bs = { fill( $100, 0) } (void()) main() (label) main::@1 (label) main::@2 (label) main::@return -(byte[256]) main::cs -(const byte[256]) main::cs#0 cs = { fill( 256, 0) } +(byte[$100]) main::cs +(const byte[$100]) main::cs#0 cs = { fill( $100, 0) } (byte) main::i (byte) main::i#1 reg byte x 16.5 (byte) main::i#3 reg byte y 16.5 diff --git a/src/test/ref/min-fmul-16.cfg b/src/test/ref/min-fmul-16.cfg index 003d7a76e..8399988f3 100644 --- a/src/test/ref/min-fmul-16.cfg +++ b/src/test/ref/min-fmul-16.cfg @@ -15,10 +15,10 @@ main::@13: scope:[main] from main asm { sei } to:main::@1 main::@1: scope:[main] from main::@13 main::@15 - [7] (byte*) print_char_cursor#16 ← phi( main::@13/((byte*))(word/signed word/dword/signed dword) 1024 main::@15/(const byte*) SCREEN#0 ) + [7] (byte*) print_char_cursor#16 ← phi( main::@13/((byte*))(word/signed word/dword/signed dword) $400 main::@15/(const byte*) SCREEN#0 ) to:main::@4 main::@4: scope:[main] from main::@1 main::@4 - [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 + [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 to:main::@6 main::@6: scope:[main] from main::@4 [9] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) @@ -73,7 +73,7 @@ print_byte: scope:[print_byte] from print_word print_word::@1 [34] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [35] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [35] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [36] (byte) print_char::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [37] call print_char to:print_byte::@return @@ -103,8 +103,8 @@ mulf_init: scope:[mulf_init] from main to:mulf_init::@1 mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@2 [49] (byte) mulf_init::x_2#3 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::x_2#2 ) - [49] (byte*) mulf_init::sqr1_hi#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_hi#1 ) - [49] (byte*) mulf_init::sqr1_lo#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_lo#1 ) + [49] (byte*) mulf_init::sqr1_hi#2 ← phi( mulf_init/(const byte[$200]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_hi#1 ) + [49] (byte*) mulf_init::sqr1_lo#2 ← phi( mulf_init/(const byte[$200]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_lo#1 ) [49] (word) mulf_init::sqr#4 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(word) mulf_init::sqr#1 ) [49] (byte) mulf_init::c#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::c#1 ) [50] (byte) mulf_init::c#1 ← ++ (byte) mulf_init::c#2 @@ -125,15 +125,15 @@ mulf_init::@2: scope:[mulf_init] from mulf_init::@1 mulf_init::@5 [60] (byte*) mulf_init::sqr1_hi#1 ← ++ (byte*) mulf_init::sqr1_hi#2 [61] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [62] (byte*) mulf_init::sqr1_lo#1 ← ++ (byte*) mulf_init::sqr1_lo#2 - [63] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 + [63] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 to:mulf_init::@3 mulf_init::@3: scope:[mulf_init] from mulf_init::@2 mulf_init::@4 - [64] (byte) mulf_init::dir#2 ← phi( mulf_init::@4/(byte) mulf_init::dir#3 mulf_init::@2/(byte/word/signed word/dword/signed dword) 255 ) - [64] (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_hi#1 mulf_init::@2/(const byte[512]) mulf_sqr2_hi#0 ) - [64] (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_lo#1 mulf_init::@2/(const byte[512]) mulf_sqr2_lo#0 ) + [64] (byte) mulf_init::dir#2 ← phi( mulf_init::@4/(byte) mulf_init::dir#3 mulf_init::@2/(byte/word/signed word/dword/signed dword) $ff ) + [64] (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_hi#1 mulf_init::@2/(const byte[$200]) mulf_sqr2_hi#0 ) + [64] (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_lo#1 mulf_init::@2/(const byte[$200]) mulf_sqr2_lo#0 ) [64] (byte) mulf_init::x_255#2 ← phi( mulf_init::@4/(byte) mulf_init::x_255#1 mulf_init::@2/((byte))-(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [65] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) - [66] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) + [65] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) + [66] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [67] (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 [68] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [69] if((byte) mulf_init::x_255#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@12 @@ -141,11 +141,11 @@ mulf_init::@3: scope:[mulf_init] from mulf_init::@2 mulf_init::@4 mulf_init::@4: scope:[mulf_init] from mulf_init::@12 mulf_init::@3 [70] (byte) mulf_init::dir#3 ← phi( mulf_init::@12/(byte) mulf_init::dir#2 mulf_init::@3/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [71] (byte*) mulf_init::sqr2_lo#1 ← ++ (byte*) mulf_init::sqr2_lo#2 - [72] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 + [72] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 to:mulf_init::@8 mulf_init::@8: scope:[mulf_init] from mulf_init::@4 - [73] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) - [74] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) + [73] *((const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100) + [74] *((const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100) to:mulf_init::@return mulf_init::@return: scope:[mulf_init] from mulf_init::@8 [75] return diff --git a/src/test/ref/min-fmul-16.log b/src/test/ref/min-fmul-16.log index b7a19d223..91b462fb1 100644 --- a/src/test/ref/min-fmul-16.log +++ b/src/test/ref/min-fmul-16.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 to:@12 @@ -70,7 +70,7 @@ print_byte::@1: scope:[print_byte] from print_byte (byte) print_byte::b#3 ← phi( print_byte/(byte) print_byte::b#2 ) (byte*) print_char_cursor#24 ← phi( print_byte/(byte*) print_char_cursor#11 ) (byte*) print_char_cursor#7 ← (byte*) print_char_cursor#24 - (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte) print_char::ch#1 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$2) call print_char to:print_byte::@2 @@ -113,9 +113,9 @@ print_set_screen::@return: scope:[print_set_screen] from print_set_screen (byte*) print_line_cursor#18 ← phi( @12/(byte*) print_line_cursor#19 ) (byte*) print_screen#18 ← phi( @12/(byte*) print_screen#19 ) (byte*) print_char_cursor#45 ← phi( @12/(byte*) print_char_cursor#46 ) - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@20 main: scope:[main] from @22 (byte*) SCREEN#10 ← phi( @22/(byte*) SCREEN#11 ) @@ -133,8 +133,8 @@ main::@13: scope:[main] from main (byte*) print_line_cursor#13 ← phi( main/(byte*) print_line_cursor#16 ) (byte*) print_screen#13 ← phi( main/(byte*) print_screen#16 ) (byte*) print_char_cursor#40 ← phi( main/(byte*) print_char_cursor#43 ) - (word) main::a#0 ← (word/signed word/dword/signed dword) 1234 - (word) main::b#0 ← (word/signed word/dword/signed dword) 2345 + (word) main::a#0 ← (word/signed word/dword/signed dword) $4d2 + (word) main::b#0 ← (word/signed word/dword/signed dword) $929 asm { sei } to:main::@1 main::@1: scope:[main] from main::@13 main::@16 @@ -167,7 +167,7 @@ main::@4: scope:[main] from main::@2 main::@5 (word) main::a#2 ← phi( main::@2/(word) main::a#3 main::@5/(word) main::a#4 ) (byte*) BORDERCOL#3 ← phi( main::@2/(byte*) BORDERCOL#4 main::@5/(byte*) BORDERCOL#5 ) (byte*) RASTER#1 ← phi( main::@2/(byte*) RASTER#2 main::@5/(byte*) RASTER#3 ) - (bool~) main::$1 ← *((byte*) RASTER#1) != (byte/word/signed word/dword/signed dword) 255 + (bool~) main::$1 ← *((byte*) RASTER#1) != (byte/word/signed word/dword/signed dword) $ff if((bool~) main::$1) goto main::@5 to:main::@6 main::@5: scope:[main] from main::@4 @@ -253,18 +253,18 @@ main::@return: scope:[main] from main::@1 (byte*) print_line_cursor#15 ← phi( @19/(byte*) print_line_cursor#18 ) (byte*) print_screen#15 ← phi( @19/(byte*) print_screen#18 ) (byte*) print_char_cursor#42 ← phi( @19/(byte*) print_char_cursor#45 ) - (byte[512]) mulf_sqr1_lo#0 ← { fill( 512, 0) } - (byte[512]) mulf_sqr1_hi#0 ← { fill( 512, 0) } - (byte[512]) mulf_sqr2_lo#0 ← { fill( 512, 0) } - (byte[512]) mulf_sqr2_hi#0 ← { fill( 512, 0) } + (byte[$200]) mulf_sqr1_lo#0 ← { fill( $200, 0) } + (byte[$200]) mulf_sqr1_hi#0 ← { fill( $200, 0) } + (byte[$200]) mulf_sqr2_lo#0 ← { fill( $200, 0) } + (byte[$200]) mulf_sqr2_hi#0 ← { fill( $200, 0) } to:@22 mulf_init: scope:[mulf_init] from main (word) mulf_init::sqr#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) mulf_init::x_2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) mulf_init::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte*~) mulf_init::$0 ← (byte[512]) mulf_sqr1_hi#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte*~) mulf_init::$0 ← (byte[$200]) mulf_sqr1_hi#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) mulf_init::sqr1_hi#0 ← (byte*~) mulf_init::$0 - (byte*~) mulf_init::$1 ← (byte[512]) mulf_sqr1_lo#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte*~) mulf_init::$1 ← (byte[$200]) mulf_sqr1_lo#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) mulf_init::sqr1_lo#0 ← (byte*~) mulf_init::$1 to:mulf_init::@1 mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@2 @@ -293,7 +293,7 @@ mulf_init::@2: scope:[mulf_init] from mulf_init::@1 mulf_init::@5 (word~) mulf_init::$7 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 (word) mulf_init::sqr#1 ← (word~) mulf_init::$7 (byte*) mulf_init::sqr1_lo#1 ← ++ (byte*) mulf_init::sqr1_lo#2 - (byte*~) mulf_init::$8 ← (byte[512]) mulf_sqr1_lo#0 + (word/signed word/dword/signed dword) 512 + (byte*~) mulf_init::$8 ← (byte[$200]) mulf_sqr1_lo#0 + (word/signed word/dword/signed dword) $200 (bool~) mulf_init::$9 ← (byte*) mulf_init::sqr1_lo#1 != (byte*~) mulf_init::$8 if((bool~) mulf_init::$9) goto mulf_init::@1 to:mulf_init::@6 @@ -310,17 +310,17 @@ mulf_init::@6: scope:[mulf_init] from mulf_init::@2 (signed byte/signed word/signed dword~) mulf_init::$10 ← - (byte/signed byte/word/signed word/dword/signed dword) 1 (byte~) mulf_init::$11 ← ((byte)) (signed byte/signed word/signed dword~) mulf_init::$10 (byte) mulf_init::x_255#0 ← (byte~) mulf_init::$11 - (byte) mulf_init::dir#0 ← (byte/word/signed word/dword/signed dword) 255 - (byte*) mulf_init::sqr2_hi#0 ← (byte[512]) mulf_sqr2_hi#0 - (byte*) mulf_init::sqr2_lo#0 ← (byte[512]) mulf_sqr2_lo#0 + (byte) mulf_init::dir#0 ← (byte/word/signed word/dword/signed dword) $ff + (byte*) mulf_init::sqr2_hi#0 ← (byte[$200]) mulf_sqr2_hi#0 + (byte*) mulf_init::sqr2_lo#0 ← (byte[$200]) mulf_sqr2_lo#0 to:mulf_init::@3 mulf_init::@3: scope:[mulf_init] from mulf_init::@4 mulf_init::@6 (byte) mulf_init::dir#2 ← phi( mulf_init::@4/(byte) mulf_init::dir#3 mulf_init::@6/(byte) mulf_init::dir#0 ) (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_hi#3 mulf_init::@6/(byte*) mulf_init::sqr2_hi#0 ) (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_lo#1 mulf_init::@6/(byte*) mulf_init::sqr2_lo#0 ) (byte) mulf_init::x_255#2 ← phi( mulf_init::@4/(byte) mulf_init::x_255#3 mulf_init::@6/(byte) mulf_init::x_255#0 ) - *((byte*) mulf_init::sqr2_lo#2) ← *((byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) - *((byte*) mulf_init::sqr2_hi#2) ← *((byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) + *((byte*) mulf_init::sqr2_lo#2) ← *((byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) + *((byte*) mulf_init::sqr2_hi#2) ← *((byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 (byte~) mulf_init::$12 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 (byte) mulf_init::x_255#1 ← (byte~) mulf_init::$12 @@ -334,7 +334,7 @@ mulf_init::@4: scope:[mulf_init] from mulf_init::@3 mulf_init::@7 (byte) mulf_init::x_255#3 ← phi( mulf_init::@3/(byte) mulf_init::x_255#1 mulf_init::@7/(byte) mulf_init::x_255#4 ) (byte*) mulf_init::sqr2_lo#3 ← phi( mulf_init::@3/(byte*) mulf_init::sqr2_lo#2 mulf_init::@7/(byte*) mulf_init::sqr2_lo#4 ) (byte*) mulf_init::sqr2_lo#1 ← ++ (byte*) mulf_init::sqr2_lo#3 - (byte*~) mulf_init::$15 ← (byte[512]) mulf_sqr2_lo#0 + (word/signed word/dword/signed dword) 511 + (byte*~) mulf_init::$15 ← (byte[$200]) mulf_sqr2_lo#0 + (word/signed word/dword/signed dword) $1ff (bool~) mulf_init::$16 ← (byte*) mulf_init::sqr2_lo#1 != (byte*~) mulf_init::$15 if((bool~) mulf_init::$16) goto mulf_init::@3 to:mulf_init::@8 @@ -345,11 +345,11 @@ mulf_init::@7: scope:[mulf_init] from mulf_init::@3 (byte) mulf_init::dir#1 ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:mulf_init::@4 mulf_init::@8: scope:[mulf_init] from mulf_init::@4 - (byte*~) mulf_init::$17 ← (byte[512]) mulf_sqr2_lo#0 + (word/signed word/dword/signed dword) 511 - (byte*~) mulf_init::$18 ← (byte[512]) mulf_sqr1_lo#0 + (word/signed word/dword/signed dword) 256 + (byte*~) mulf_init::$17 ← (byte[$200]) mulf_sqr2_lo#0 + (word/signed word/dword/signed dword) $1ff + (byte*~) mulf_init::$18 ← (byte[$200]) mulf_sqr1_lo#0 + (word/signed word/dword/signed dword) $100 *((byte*~) mulf_init::$17) ← *((byte*~) mulf_init::$18) - (byte*~) mulf_init::$19 ← (byte[512]) mulf_sqr2_hi#0 + (word/signed word/dword/signed dword) 511 - (byte*~) mulf_init::$20 ← (byte[512]) mulf_sqr1_hi#0 + (word/signed word/dword/signed dword) 256 + (byte*~) mulf_init::$19 ← (byte[$200]) mulf_sqr2_hi#0 + (word/signed word/dword/signed dword) $1ff + (byte*~) mulf_init::$20 ← (byte[$200]) mulf_sqr1_hi#0 + (word/signed word/dword/signed dword) $100 *((byte*~) mulf_init::$19) ← *((byte*~) mulf_init::$20) to:mulf_init::@return mulf_init::@return: scope:[mulf_init] from mulf_init::@8 @@ -358,9 +358,9 @@ mulf_init::@return: scope:[mulf_init] from mulf_init::@8 mulf16u: scope:[mulf16u] from main::@6 (word) mulf16u::b#1 ← phi( main::@6/(word) mulf16u::b#0 ) (word) mulf16u::a#1 ← phi( main::@6/(word) mulf16u::a#0 ) - (word*) mulf16u::memA#0 ← ((word*)) (byte/word/signed word/dword/signed dword) 248 - (word*) mulf16u::memB#0 ← ((word*)) (byte/word/signed word/dword/signed dword) 250 - (dword*) mulf16u::memR#0 ← ((dword*)) (byte/word/signed word/dword/signed dword) 252 + (word*) mulf16u::memA#0 ← ((word*)) (byte/word/signed word/dword/signed dword) $f8 + (word*) mulf16u::memB#0 ← ((word*)) (byte/word/signed word/dword/signed dword) $fa + (dword*) mulf16u::memR#0 ← ((dword*)) (byte/word/signed word/dword/signed dword) $fc *((word*) mulf16u::memA#0) ← (word) mulf16u::a#1 *((word*) mulf16u::memB#0) ← (word) mulf16u::b#1 asm { ldamemA stasm1a+1 stasm3a+1 stasm5a+1 stasm7a+1 eor#$ff stasm2a+1 stasm4a+1 stasm6a+1 stasm8a+1 ldamemA+1 stasm1b+1 stasm3b+1 stasm5b+1 stasm7b+1 eor#$ff stasm2b+1 stasm4b+1 stasm6b+1 stasm8b+1 ldxmemB sec sm1a: ldamulf_sqr1_lo,x sm2a: sbcmulf_sqr2_lo,x stamemR+0 sm3a: ldamulf_sqr1_hi,x sm4a: sbcmulf_sqr2_hi,x sta_AA+1 sec sm1b: ldamulf_sqr1_lo,x sm2b: sbcmulf_sqr2_lo,x sta_cc+1 sm3b: ldamulf_sqr1_hi,x sm4b: sbcmulf_sqr2_hi,x sta_CC+1 ldxmemB+1 sec sm5a: ldamulf_sqr1_lo,x sm6a: sbcmulf_sqr2_lo,x sta_bb+1 sm7a: ldamulf_sqr1_hi,x sm8a: sbcmulf_sqr2_hi,x sta_BB+1 sec sm5b: ldamulf_sqr1_lo,x sm6b: sbcmulf_sqr2_lo,x sta_dd+1 sm7b: ldamulf_sqr1_hi,x sm8b: sbcmulf_sqr2_hi,x stamemR+3 clc _AA: lda#0 _bb: adc#0 stamemR+1 _BB: lda#0 _CC: adc#0 stamemR+2 bcc!+ incmemR+3 clc !: _cc: lda#0 adcmemR+1 stamemR+1 _dd: lda#0 adcmemR+2 stamemR+2 bcc!+ incmemR+3 !: } @@ -581,14 +581,14 @@ SYMBOL TABLE SSA (byte) mulf_init::x_255#2 (byte) mulf_init::x_255#3 (byte) mulf_init::x_255#4 -(byte[512]) mulf_sqr1_hi -(byte[512]) mulf_sqr1_hi#0 -(byte[512]) mulf_sqr1_lo -(byte[512]) mulf_sqr1_lo#0 -(byte[512]) mulf_sqr2_hi -(byte[512]) mulf_sqr2_hi#0 -(byte[512]) mulf_sqr2_lo -(byte[512]) mulf_sqr2_lo#0 +(byte[$200]) mulf_sqr1_hi +(byte[$200]) mulf_sqr1_hi#0 +(byte[$200]) mulf_sqr1_lo +(byte[$200]) mulf_sqr1_lo#0 +(byte[$200]) mulf_sqr2_hi +(byte[$200]) mulf_sqr2_hi#0 +(byte[$200]) mulf_sqr2_lo +(byte[$200]) mulf_sqr2_lo#0 (void()) print_byte((byte) print_byte::b) (byte~) print_byte::$0 (byte~) print_byte::$2 @@ -849,44 +849,44 @@ Redundant Phi (byte*) print_char_cursor#17 (byte*) print_char_cursor#16 Redundant Phi (byte*) print_screen#5 (byte*) print_screen#11 Redundant Phi (byte*) print_line_cursor#5 (byte*) print_line_cursor#11 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$1 [77] if(*((byte*) RASTER#2)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 +Simple Condition (bool~) main::$1 [77] if(*((byte*) RASTER#2)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@5 Simple Condition (bool~) mulf_init::$4 [121] if((byte~) mulf_init::$2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@2 Simple Condition (bool~) mulf_init::$9 [133] if((byte*) mulf_init::sqr1_lo#1!=(byte*~) mulf_init::$8) goto mulf_init::@1 Simple Condition (bool~) mulf_init::$14 [151] if((byte) mulf_init::x_255#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@4 Simple Condition (bool~) mulf_init::$16 [156] if((byte*) mulf_init::sqr2_lo#1!=(byte*~) mulf_init::$15) goto mulf_init::@3 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) print_char_cursor#0 = ((byte*))1024 +Constant (const byte*) print_char_cursor#0 = ((byte*))$400 Constant (const byte[]) print_hextab#0 = $0 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) SCREEN#0 = ((byte*))1024 -Constant (const word) main::a#0 = 1234 -Constant (const word) main::b#0 = 2345 -Constant (const byte[512]) mulf_sqr1_lo#0 = { fill( 512, 0) } -Constant (const byte[512]) mulf_sqr1_hi#0 = { fill( 512, 0) } -Constant (const byte[512]) mulf_sqr2_lo#0 = { fill( 512, 0) } -Constant (const byte[512]) mulf_sqr2_hi#0 = { fill( 512, 0) } +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) SCREEN#0 = ((byte*))$400 +Constant (const word) main::a#0 = $4d2 +Constant (const word) main::b#0 = $929 +Constant (const byte[$200]) mulf_sqr1_lo#0 = { fill( $200, 0) } +Constant (const byte[$200]) mulf_sqr1_hi#0 = { fill( $200, 0) } +Constant (const byte[$200]) mulf_sqr2_lo#0 = { fill( $200, 0) } +Constant (const byte[$200]) mulf_sqr2_hi#0 = { fill( $200, 0) } Constant (const word) mulf_init::sqr#0 = 0 Constant (const byte) mulf_init::x_2#0 = 0 Constant (const byte) mulf_init::c#0 = 0 Constant (const signed byte/signed word/signed dword) mulf_init::$10 = -1 -Constant (const byte) mulf_init::dir#0 = 255 +Constant (const byte) mulf_init::dir#0 = $ff Constant (const byte) mulf_init::dir#1 = 1 -Constant (const word*) mulf16u::memA#0 = ((word*))248 -Constant (const word*) mulf16u::memB#0 = ((word*))250 -Constant (const dword*) mulf16u::memR#0 = ((dword*))252 +Constant (const word*) mulf16u::memA#0 = ((word*))$f8 +Constant (const word*) mulf16u::memB#0 = ((word*))$fa +Constant (const dword*) mulf16u::memR#0 = ((dword*))$fc Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) mulf_init::sqr1_hi#0 = mulf_sqr1_hi#0+1 Constant (const byte*) mulf_init::sqr1_lo#0 = mulf_sqr1_lo#0+1 -Constant (const byte*) mulf_init::$8 = mulf_sqr1_lo#0+512 +Constant (const byte*) mulf_init::$8 = mulf_sqr1_lo#0+$200 Constant (const byte) mulf_init::x_255#0 = ((byte))mulf_init::$10 Constant (const byte*) mulf_init::sqr2_hi#0 = mulf_sqr2_hi#0 Constant (const byte*) mulf_init::sqr2_lo#0 = mulf_sqr2_lo#0 -Constant (const byte*) mulf_init::$15 = mulf_sqr2_lo#0+511 -Constant (const byte*) mulf_init::$17 = mulf_sqr2_lo#0+511 -Constant (const byte*) mulf_init::$18 = mulf_sqr1_lo#0+256 -Constant (const byte*) mulf_init::$19 = mulf_sqr2_hi#0+511 -Constant (const byte*) mulf_init::$20 = mulf_sqr1_hi#0+256 +Constant (const byte*) mulf_init::$15 = mulf_sqr2_lo#0+$1ff +Constant (const byte*) mulf_init::$17 = mulf_sqr2_lo#0+$1ff +Constant (const byte*) mulf_init::$18 = mulf_sqr1_lo#0+$100 +Constant (const byte*) mulf_init::$19 = mulf_sqr2_hi#0+$1ff +Constant (const byte*) mulf_init::$20 = mulf_sqr1_hi#0+$100 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [28] if(true) goto main::@2 Successful SSA optimization Pass2ConstantIfs @@ -935,27 +935,27 @@ Inlining constant with var siblings (const byte*) mulf_init::sqr2_hi#0 Inlining constant with var siblings (const byte*) mulf_init::sqr2_lo#0 Inlining constant with var siblings (const byte*) print_char_cursor#0 Constant inlined mulf_init::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mulf_init::sqr2_lo#0 = (const byte[512]) mulf_sqr2_lo#0 +Constant inlined mulf_init::sqr2_lo#0 = (const byte[$200]) mulf_sqr2_lo#0 Constant inlined mulf_init::sqr#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mulf16u::b#0 = (const word) main::b#0 -Constant inlined mulf_init::sqr2_hi#0 = (const byte[512]) mulf_sqr2_hi#0 +Constant inlined mulf_init::sqr2_hi#0 = (const byte[$200]) mulf_sqr2_hi#0 Constant inlined mulf16u::a#0 = (const word) main::a#0 Constant inlined print_screen#1 = (const byte*) SCREEN#0 Constant inlined $0 = (const byte[]) print_hextab#0 -Constant inlined mulf_init::$8 = (const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512 +Constant inlined mulf_init::$8 = (const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200 Constant inlined mulf_init::dir#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined print_char_cursor#0 = ((byte*))(word/signed word/dword/signed dword) 1024 -Constant inlined mulf_init::dir#0 = (byte/word/signed word/dword/signed dword) 255 -Constant inlined mulf_init::sqr1_hi#0 = (const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined print_char_cursor#0 = ((byte*))(word/signed word/dword/signed dword) $400 +Constant inlined mulf_init::dir#0 = (byte/word/signed word/dword/signed dword) $ff +Constant inlined mulf_init::sqr1_hi#0 = (const byte[$200]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined mulf_init::$10 = -(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined print_set_screen::screen#0 = (const byte*) SCREEN#0 -Constant inlined mulf_init::$20 = (const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256 -Constant inlined mulf_init::sqr1_lo#0 = (const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined mulf_init::$15 = (const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511 +Constant inlined mulf_init::$20 = (const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100 +Constant inlined mulf_init::sqr1_lo#0 = (const byte[$200]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined mulf_init::$15 = (const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff Constant inlined mulf_init::x_255#0 = ((byte))-(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined mulf_init::$18 = (const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256 -Constant inlined mulf_init::$19 = (const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511 -Constant inlined mulf_init::$17 = (const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511 +Constant inlined mulf_init::$18 = (const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100 +Constant inlined mulf_init::$19 = (const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff +Constant inlined mulf_init::$17 = (const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff Constant inlined mulf_init::x_2#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting mulf_init::@9(between mulf_init::@2 and mulf_init::@1) @@ -1036,10 +1036,10 @@ main::@13: scope:[main] from main asm { sei } to:main::@1 main::@1: scope:[main] from main::@13 main::@15 - [7] (byte*) print_char_cursor#16 ← phi( main::@13/((byte*))(word/signed word/dword/signed dword) 1024 main::@15/(const byte*) SCREEN#0 ) + [7] (byte*) print_char_cursor#16 ← phi( main::@13/((byte*))(word/signed word/dword/signed dword) $400 main::@15/(const byte*) SCREEN#0 ) to:main::@4 main::@4: scope:[main] from main::@1 main::@4 - [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 + [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 to:main::@6 main::@6: scope:[main] from main::@4 [9] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) @@ -1094,7 +1094,7 @@ print_byte: scope:[print_byte] from print_word print_word::@1 [34] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [35] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [35] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [36] (byte) print_char::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [37] call print_char to:print_byte::@return @@ -1124,8 +1124,8 @@ mulf_init: scope:[mulf_init] from main to:mulf_init::@1 mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@2 [49] (byte) mulf_init::x_2#3 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::x_2#2 ) - [49] (byte*) mulf_init::sqr1_hi#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_hi#1 ) - [49] (byte*) mulf_init::sqr1_lo#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_lo#1 ) + [49] (byte*) mulf_init::sqr1_hi#2 ← phi( mulf_init/(const byte[$200]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_hi#1 ) + [49] (byte*) mulf_init::sqr1_lo#2 ← phi( mulf_init/(const byte[$200]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_lo#1 ) [49] (word) mulf_init::sqr#4 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(word) mulf_init::sqr#1 ) [49] (byte) mulf_init::c#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::c#1 ) [50] (byte) mulf_init::c#1 ← ++ (byte) mulf_init::c#2 @@ -1146,15 +1146,15 @@ mulf_init::@2: scope:[mulf_init] from mulf_init::@1 mulf_init::@5 [60] (byte*) mulf_init::sqr1_hi#1 ← ++ (byte*) mulf_init::sqr1_hi#2 [61] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [62] (byte*) mulf_init::sqr1_lo#1 ← ++ (byte*) mulf_init::sqr1_lo#2 - [63] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 + [63] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 to:mulf_init::@3 mulf_init::@3: scope:[mulf_init] from mulf_init::@2 mulf_init::@4 - [64] (byte) mulf_init::dir#2 ← phi( mulf_init::@4/(byte) mulf_init::dir#3 mulf_init::@2/(byte/word/signed word/dword/signed dword) 255 ) - [64] (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_hi#1 mulf_init::@2/(const byte[512]) mulf_sqr2_hi#0 ) - [64] (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_lo#1 mulf_init::@2/(const byte[512]) mulf_sqr2_lo#0 ) + [64] (byte) mulf_init::dir#2 ← phi( mulf_init::@4/(byte) mulf_init::dir#3 mulf_init::@2/(byte/word/signed word/dword/signed dword) $ff ) + [64] (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_hi#1 mulf_init::@2/(const byte[$200]) mulf_sqr2_hi#0 ) + [64] (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_lo#1 mulf_init::@2/(const byte[$200]) mulf_sqr2_lo#0 ) [64] (byte) mulf_init::x_255#2 ← phi( mulf_init::@4/(byte) mulf_init::x_255#1 mulf_init::@2/((byte))-(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [65] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) - [66] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) + [65] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) + [66] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [67] (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 [68] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [69] if((byte) mulf_init::x_255#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@12 @@ -1162,11 +1162,11 @@ mulf_init::@3: scope:[mulf_init] from mulf_init::@2 mulf_init::@4 mulf_init::@4: scope:[mulf_init] from mulf_init::@12 mulf_init::@3 [70] (byte) mulf_init::dir#3 ← phi( mulf_init::@12/(byte) mulf_init::dir#2 mulf_init::@3/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [71] (byte*) mulf_init::sqr2_lo#1 ← ++ (byte*) mulf_init::sqr2_lo#2 - [72] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 + [72] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 to:mulf_init::@8 mulf_init::@8: scope:[mulf_init] from mulf_init::@4 - [73] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) - [74] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) + [73] *((const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100) + [74] *((const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100) to:mulf_init::@return mulf_init::@return: scope:[mulf_init] from mulf_init::@8 [75] return @@ -1228,10 +1228,10 @@ VARIABLE REGISTER WEIGHTS (byte) mulf_init::x_255 (byte) mulf_init::x_255#1 5.5 (byte) mulf_init::x_255#2 11.0 -(byte[512]) mulf_sqr1_hi -(byte[512]) mulf_sqr1_lo -(byte[512]) mulf_sqr2_hi -(byte[512]) mulf_sqr2_lo +(byte[$200]) mulf_sqr1_hi +(byte[$200]) mulf_sqr1_lo +(byte[$200]) mulf_sqr2_hi +(byte[$200]) mulf_sqr2_lo (void()) print_byte((byte) print_byte::b) (byte~) print_byte::$0 4.0 (byte~) print_byte::$2 4.0 @@ -1376,7 +1376,7 @@ main: { sei //SEG15 [7] phi from main::@13 to main::@1 [phi:main::@13->main::@1] b1_from_b13: - //SEG16 [7] phi (byte*) print_char_cursor#16 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::@13->main::@1#0] -- pbuz1=pbuc1 + //SEG16 [7] phi (byte*) print_char_cursor#16 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::@13->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -1387,7 +1387,7 @@ main: { jmp b4 //SEG18 main::@4 b4: - //SEG19 [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG19 [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -1554,7 +1554,7 @@ print_byte: { jmp b1 //SEG73 print_byte::@1 b1: - //SEG74 [35] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG74 [35] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and b sta _2 @@ -1741,12 +1741,12 @@ mulf_init: { //SEG96 [49] phi (byte) mulf_init::x_2#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#0] -- vbuz1=vbuc1 lda #0 sta x_2 - //SEG97 [49] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 + //SEG97 [49] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[$200]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 lda #mulf_sqr1_hi+1 sta sqr1_hi+1 - //SEG98 [49] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 + //SEG98 [49] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[$200]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 lda #mulf_sqr1_lo+1 @@ -1830,7 +1830,7 @@ mulf_init: { bne !+ inc sqr1_lo+1 !: - //SEG125 [63] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG125 [63] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 -- pbuz1_neq_pbuc1_then_la1 lda sqr1_lo+1 cmp #>mulf_sqr1_lo+$200 bne b1_from_b2 @@ -1839,15 +1839,15 @@ mulf_init: { bne b1_from_b2 //SEG126 [64] phi from mulf_init::@2 to mulf_init::@3 [phi:mulf_init::@2->mulf_init::@3] b3_from_b2: - //SEG127 [64] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) 255 [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 + //SEG127 [64] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) $ff [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 lda #$ff sta dir - //SEG128 [64] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[512]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 + //SEG128 [64] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[$200]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 lda #mulf_sqr2_hi sta sqr2_hi+1 - //SEG129 [64] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[512]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 + //SEG129 [64] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[$200]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 lda #mulf_sqr2_lo @@ -1865,12 +1865,12 @@ mulf_init: { jmp b3 //SEG136 mulf_init::@3 b3: - //SEG137 [65] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG137 [65] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy x_255 lda mulf_sqr1_lo,y ldy #0 sta (sqr2_lo),y - //SEG138 [66] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG138 [66] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy x_255 lda mulf_sqr1_hi,y ldy #0 @@ -1902,7 +1902,7 @@ mulf_init: { bne !+ inc sqr2_lo+1 !: - //SEG146 [72] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 -- pbuz1_neq_pbuc1_then_la1 + //SEG146 [72] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 -- pbuz1_neq_pbuc1_then_la1 lda sqr2_lo+1 cmp #>mulf_sqr2_lo+$1ff bne b3_from_b4 @@ -1912,11 +1912,11 @@ mulf_init: { jmp b8 //SEG147 mulf_init::@8 b8: - //SEG148 [73] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) -- _deref_pbuc1=_deref_pbuc2 + //SEG148 [73] *((const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100) -- _deref_pbuc1=_deref_pbuc2 // Set the very last value g(511) = f(256) lda mulf_sqr1_lo+$100 sta mulf_sqr2_lo+$1ff - //SEG149 [74] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) -- _deref_pbuc1=_deref_pbuc2 + //SEG149 [74] *((const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100) -- _deref_pbuc1=_deref_pbuc2 lda mulf_sqr1_hi+$100 sta mulf_sqr2_hi+$1ff jmp breturn @@ -1950,7 +1950,7 @@ mulf_init: { mulf_sqr2_hi: .fill $200, 0 REGISTER UPLIFT POTENTIAL REGISTERS -Statement [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ print_char_cursor#16 ] ( main:2 [ print_char_cursor#16 ] ) always clobbers reg byte a +Statement [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 [ print_char_cursor#16 ] ( main:2 [ print_char_cursor#16 ] ) always clobbers reg byte a Statement [11] (dword) mulf16u::return#0 ← (dword) mulf16u::return#1 [ print_char_cursor#16 mulf16u::return#0 ] ( main:2 [ print_char_cursor#16 mulf16u::return#0 ] ) always clobbers reg byte a Statement [12] (dword) main::r#0 ← (dword) mulf16u::return#0 [ print_char_cursor#16 main::r#0 ] ( main:2 [ print_char_cursor#16 main::r#0 ] ) always clobbers reg byte a Statement [14] (dword) print_dword::dw#0 ← (dword) main::r#0 [ print_char_cursor#16 print_dword::dw#0 ] ( main:2 [ print_char_cursor#16 print_dword::dw#0 ] ) always clobbers reg byte a @@ -1960,7 +1960,7 @@ Statement [26] (byte) print_byte::b#0 ← > (word) print_word::w#2 [ print_word: Statement [28] (byte) print_byte::b#1 ← < (word) print_word::w#2 [ print_char_cursor#10 print_byte::b#1 ] ( main:2::print_dword:15::print_word:21 [ print_dword::dw#0 print_char_cursor#10 print_byte::b#1 ] main:2::print_dword:15::print_word:23 [ print_char_cursor#10 print_byte::b#1 ] ) always clobbers reg byte a Statement [32] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#2 print_char_cursor#36 print_byte::$0 ] ( main:2::print_dword:15::print_word:21::print_byte:27 [ print_dword::dw#0 print_word::w#2 print_byte::b#2 print_char_cursor#36 print_byte::$0 ] main:2::print_dword:15::print_word:23::print_byte:27 [ print_word::w#2 print_byte::b#2 print_char_cursor#36 print_byte::$0 ] main:2::print_dword:15::print_word:21::print_byte:29 [ print_dword::dw#0 print_byte::b#2 print_char_cursor#36 print_byte::$0 ] main:2::print_dword:15::print_word:23::print_byte:29 [ print_byte::b#2 print_char_cursor#36 print_byte::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] -Statement [35] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_dword:15::print_word:21::print_byte:27 [ print_dword::dw#0 print_word::w#2 print_char_cursor#10 print_byte::$2 ] main:2::print_dword:15::print_word:23::print_byte:27 [ print_word::w#2 print_char_cursor#10 print_byte::$2 ] main:2::print_dword:15::print_word:21::print_byte:29 [ print_dword::dw#0 print_char_cursor#10 print_byte::$2 ] main:2::print_dword:15::print_word:23::print_byte:29 [ print_char_cursor#10 print_byte::$2 ] ) always clobbers reg byte a +Statement [35] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_dword:15::print_word:21::print_byte:27 [ print_dword::dw#0 print_word::w#2 print_char_cursor#10 print_byte::$2 ] main:2::print_dword:15::print_word:23::print_byte:27 [ print_word::w#2 print_char_cursor#10 print_byte::$2 ] main:2::print_dword:15::print_word:21::print_byte:29 [ print_dword::dw#0 print_char_cursor#10 print_byte::$2 ] main:2::print_dword:15::print_word:23::print_byte:29 [ print_char_cursor#10 print_byte::$2 ] ) always clobbers reg byte a Statement [40] *((byte*) print_char_cursor#27) ← (byte) print_char::ch#2 [ print_char_cursor#27 ] ( main:2::print_dword:15::print_word:21::print_byte:27::print_char:34 [ print_dword::dw#0 print_word::w#2 print_byte::b#2 print_char_cursor#27 ] main:2::print_dword:15::print_word:23::print_byte:27::print_char:34 [ print_word::w#2 print_byte::b#2 print_char_cursor#27 ] main:2::print_dword:15::print_word:21::print_byte:29::print_char:34 [ print_dword::dw#0 print_byte::b#2 print_char_cursor#27 ] main:2::print_dword:15::print_word:23::print_byte:29::print_char:34 [ print_byte::b#2 print_char_cursor#27 ] main:2::print_dword:15::print_word:21::print_byte:27::print_char:37 [ print_dword::dw#0 print_word::w#2 print_char_cursor#27 ] main:2::print_dword:15::print_word:23::print_byte:27::print_char:37 [ print_word::w#2 print_char_cursor#27 ] main:2::print_dword:15::print_word:21::print_byte:29::print_char:37 [ print_dword::dw#0 print_char_cursor#27 ] main:2::print_dword:15::print_word:23::print_byte:29::print_char:37 [ print_char_cursor#27 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:4 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] Statement [43] *((const word*) mulf16u::memA#0) ← (const word) main::a#0 [ ] ( main:2::mulf16u:10 [ print_char_cursor#16 ] ) always clobbers reg byte a @@ -1977,18 +1977,18 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:13 [ m Statement [58] (byte~) mulf_init::$6 ← > (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ( main:2::mulf_init:5 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ) always clobbers reg byte a Statement [59] *((byte*) mulf_init::sqr1_hi#2) ← (byte~) mulf_init::$6 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:2::mulf_init:5 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) always clobbers reg byte y Statement [61] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:2::mulf_init:5 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a -Statement [63] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:2::mulf_init:5 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a -Statement [65] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:2::mulf_init:5 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y +Statement [63] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:2::mulf_init:5 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a +Statement [65] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:2::mulf_init:5 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp ZP_BYTE:16 [ mulf_init::x_255#2 mulf_init::x_255#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:16 [ mulf_init::x_255#2 mulf_init::x_255#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:21 [ mulf_init::dir#2 mulf_init::dir#3 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:21 [ mulf_init::dir#2 mulf_init::dir#3 ] -Statement [66] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:2::mulf_init:5 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y +Statement [66] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:2::mulf_init:5 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y Statement [68] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:2::mulf_init:5 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) always clobbers reg byte a -Statement [72] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:2::mulf_init:5 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) always clobbers reg byte a -Statement [73] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) [ ] ( main:2::mulf_init:5 [ ] ) always clobbers reg byte a -Statement [74] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) [ ] ( main:2::mulf_init:5 [ ] ) always clobbers reg byte a -Statement [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ print_char_cursor#16 ] ( main:2 [ print_char_cursor#16 ] ) always clobbers reg byte a +Statement [72] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:2::mulf_init:5 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) always clobbers reg byte a +Statement [73] *((const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100) [ ] ( main:2::mulf_init:5 [ ] ) always clobbers reg byte a +Statement [74] *((const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100) [ ] ( main:2::mulf_init:5 [ ] ) always clobbers reg byte a +Statement [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 [ print_char_cursor#16 ] ( main:2 [ print_char_cursor#16 ] ) always clobbers reg byte a Statement [11] (dword) mulf16u::return#0 ← (dword) mulf16u::return#1 [ print_char_cursor#16 mulf16u::return#0 ] ( main:2 [ print_char_cursor#16 mulf16u::return#0 ] ) always clobbers reg byte a Statement [12] (dword) main::r#0 ← (dword) mulf16u::return#0 [ print_char_cursor#16 main::r#0 ] ( main:2 [ print_char_cursor#16 main::r#0 ] ) always clobbers reg byte a Statement [14] (dword) print_dword::dw#0 ← (dword) main::r#0 [ print_char_cursor#16 print_dword::dw#0 ] ( main:2 [ print_char_cursor#16 print_dword::dw#0 ] ) always clobbers reg byte a @@ -1997,7 +1997,7 @@ Statement [22] (word) print_word::w#1 ← < (dword) print_dword::dw#0 [ print_wo Statement [26] (byte) print_byte::b#0 ← > (word) print_word::w#2 [ print_word::w#2 print_char_cursor#34 print_byte::b#0 ] ( main:2::print_dword:15::print_word:21 [ print_dword::dw#0 print_word::w#2 print_char_cursor#34 print_byte::b#0 ] main:2::print_dword:15::print_word:23 [ print_word::w#2 print_char_cursor#34 print_byte::b#0 ] ) always clobbers reg byte a Statement [28] (byte) print_byte::b#1 ← < (word) print_word::w#2 [ print_char_cursor#10 print_byte::b#1 ] ( main:2::print_dword:15::print_word:21 [ print_dword::dw#0 print_char_cursor#10 print_byte::b#1 ] main:2::print_dword:15::print_word:23 [ print_char_cursor#10 print_byte::b#1 ] ) always clobbers reg byte a Statement [32] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#2 print_char_cursor#36 print_byte::$0 ] ( main:2::print_dword:15::print_word:21::print_byte:27 [ print_dword::dw#0 print_word::w#2 print_byte::b#2 print_char_cursor#36 print_byte::$0 ] main:2::print_dword:15::print_word:23::print_byte:27 [ print_word::w#2 print_byte::b#2 print_char_cursor#36 print_byte::$0 ] main:2::print_dword:15::print_word:21::print_byte:29 [ print_dword::dw#0 print_byte::b#2 print_char_cursor#36 print_byte::$0 ] main:2::print_dword:15::print_word:23::print_byte:29 [ print_byte::b#2 print_char_cursor#36 print_byte::$0 ] ) always clobbers reg byte a -Statement [35] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_dword:15::print_word:21::print_byte:27 [ print_dword::dw#0 print_word::w#2 print_char_cursor#10 print_byte::$2 ] main:2::print_dword:15::print_word:23::print_byte:27 [ print_word::w#2 print_char_cursor#10 print_byte::$2 ] main:2::print_dword:15::print_word:21::print_byte:29 [ print_dword::dw#0 print_char_cursor#10 print_byte::$2 ] main:2::print_dword:15::print_word:23::print_byte:29 [ print_char_cursor#10 print_byte::$2 ] ) always clobbers reg byte a +Statement [35] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_dword:15::print_word:21::print_byte:27 [ print_dword::dw#0 print_word::w#2 print_char_cursor#10 print_byte::$2 ] main:2::print_dword:15::print_word:23::print_byte:27 [ print_word::w#2 print_char_cursor#10 print_byte::$2 ] main:2::print_dword:15::print_word:21::print_byte:29 [ print_dword::dw#0 print_char_cursor#10 print_byte::$2 ] main:2::print_dword:15::print_word:23::print_byte:29 [ print_char_cursor#10 print_byte::$2 ] ) always clobbers reg byte a Statement [40] *((byte*) print_char_cursor#27) ← (byte) print_char::ch#2 [ print_char_cursor#27 ] ( main:2::print_dword:15::print_word:21::print_byte:27::print_char:34 [ print_dword::dw#0 print_word::w#2 print_byte::b#2 print_char_cursor#27 ] main:2::print_dword:15::print_word:23::print_byte:27::print_char:34 [ print_word::w#2 print_byte::b#2 print_char_cursor#27 ] main:2::print_dword:15::print_word:21::print_byte:29::print_char:34 [ print_dword::dw#0 print_byte::b#2 print_char_cursor#27 ] main:2::print_dword:15::print_word:23::print_byte:29::print_char:34 [ print_byte::b#2 print_char_cursor#27 ] main:2::print_dword:15::print_word:21::print_byte:27::print_char:37 [ print_dword::dw#0 print_word::w#2 print_char_cursor#27 ] main:2::print_dword:15::print_word:23::print_byte:27::print_char:37 [ print_word::w#2 print_char_cursor#27 ] main:2::print_dword:15::print_word:21::print_byte:29::print_char:37 [ print_dword::dw#0 print_char_cursor#27 ] main:2::print_dword:15::print_word:23::print_byte:29::print_char:37 [ print_char_cursor#27 ] ) always clobbers reg byte y Statement [43] *((const word*) mulf16u::memA#0) ← (const word) main::a#0 [ ] ( main:2::mulf16u:10 [ print_char_cursor#16 ] ) always clobbers reg byte a Statement [44] *((const word*) mulf16u::memB#0) ← (const word) main::b#0 [ ] ( main:2::mulf16u:10 [ print_char_cursor#16 ] ) always clobbers reg byte a @@ -2009,13 +2009,13 @@ Statement [57] *((byte*) mulf_init::sqr1_lo#2) ← (byte~) mulf_init::$5 [ mulf_ Statement [58] (byte~) mulf_init::$6 ← > (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ( main:2::mulf_init:5 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ) always clobbers reg byte a Statement [59] *((byte*) mulf_init::sqr1_hi#2) ← (byte~) mulf_init::$6 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:2::mulf_init:5 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) always clobbers reg byte y Statement [61] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:2::mulf_init:5 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a -Statement [63] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:2::mulf_init:5 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a -Statement [65] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:2::mulf_init:5 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y -Statement [66] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:2::mulf_init:5 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y +Statement [63] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:2::mulf_init:5 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a +Statement [65] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:2::mulf_init:5 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y +Statement [66] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:2::mulf_init:5 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y Statement [68] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:2::mulf_init:5 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) always clobbers reg byte a -Statement [72] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:2::mulf_init:5 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) always clobbers reg byte a -Statement [73] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) [ ] ( main:2::mulf_init:5 [ ] ) always clobbers reg byte a -Statement [74] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) [ ] ( main:2::mulf_init:5 [ ] ) always clobbers reg byte a +Statement [72] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:2::mulf_init:5 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) always clobbers reg byte a +Statement [73] *((const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100) [ ] ( main:2::mulf_init:5 [ ] ) always clobbers reg byte a +Statement [74] *((const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100) [ ] ( main:2::mulf_init:5 [ ] ) always clobbers reg byte a Potential registers zp ZP_WORD:2 [ print_word::w#2 print_word::w#0 print_word::w#1 ] : zp ZP_WORD:2 , Potential registers zp ZP_BYTE:4 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] : zp ZP_BYTE:4 , reg byte x , Potential registers zp ZP_BYTE:5 [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] : zp ZP_BYTE:5 , reg byte a , reg byte x , reg byte y , @@ -2122,7 +2122,7 @@ main: { sei //SEG15 [7] phi from main::@13 to main::@1 [phi:main::@13->main::@1] b1_from_b13: - //SEG16 [7] phi (byte*) print_char_cursor#16 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::@13->main::@1#0] -- pbuz1=pbuc1 + //SEG16 [7] phi (byte*) print_char_cursor#16 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::@13->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -2133,7 +2133,7 @@ main: { jmp b4 //SEG18 main::@4 b4: - //SEG19 [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG19 [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -2271,7 +2271,7 @@ print_byte: { jmp b1 //SEG73 print_byte::@1 b1: - //SEG74 [35] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG74 [35] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG75 [36] (byte) print_char::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) -- vbuaa=pbuc1_derefidx_vbuaa @@ -2448,12 +2448,12 @@ mulf_init: { //SEG96 [49] phi (byte) mulf_init::x_2#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#0] -- vbuz1=vbuc1 lda #0 sta x_2 - //SEG97 [49] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 + //SEG97 [49] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[$200]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 lda #mulf_sqr1_hi+1 sta sqr1_hi+1 - //SEG98 [49] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 + //SEG98 [49] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[$200]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 lda #mulf_sqr1_lo+1 @@ -2530,7 +2530,7 @@ mulf_init: { bne !+ inc sqr1_lo+1 !: - //SEG125 [63] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG125 [63] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 -- pbuz1_neq_pbuc1_then_la1 lda sqr1_lo+1 cmp #>mulf_sqr1_lo+$200 bne b1_from_b2 @@ -2539,15 +2539,15 @@ mulf_init: { bne b1_from_b2 //SEG126 [64] phi from mulf_init::@2 to mulf_init::@3 [phi:mulf_init::@2->mulf_init::@3] b3_from_b2: - //SEG127 [64] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) 255 [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 + //SEG127 [64] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) $ff [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 lda #$ff sta dir - //SEG128 [64] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[512]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 + //SEG128 [64] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[$200]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 lda #mulf_sqr2_hi sta sqr2_hi+1 - //SEG129 [64] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[512]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 + //SEG129 [64] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[$200]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 lda #mulf_sqr2_lo @@ -2564,11 +2564,11 @@ mulf_init: { jmp b3 //SEG136 mulf_init::@3 b3: - //SEG137 [65] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + //SEG137 [65] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda mulf_sqr1_lo,x ldy #0 sta (sqr2_lo),y - //SEG138 [66] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + //SEG138 [66] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda mulf_sqr1_hi,x ldy #0 sta (sqr2_hi),y @@ -2598,7 +2598,7 @@ mulf_init: { bne !+ inc sqr2_lo+1 !: - //SEG146 [72] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 -- pbuz1_neq_pbuc1_then_la1 + //SEG146 [72] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 -- pbuz1_neq_pbuc1_then_la1 lda sqr2_lo+1 cmp #>mulf_sqr2_lo+$1ff bne b3_from_b4 @@ -2608,11 +2608,11 @@ mulf_init: { jmp b8 //SEG147 mulf_init::@8 b8: - //SEG148 [73] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) -- _deref_pbuc1=_deref_pbuc2 + //SEG148 [73] *((const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100) -- _deref_pbuc1=_deref_pbuc2 // Set the very last value g(511) = f(256) lda mulf_sqr1_lo+$100 sta mulf_sqr2_lo+$1ff - //SEG149 [74] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) -- _deref_pbuc1=_deref_pbuc2 + //SEG149 [74] *((const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100) -- _deref_pbuc1=_deref_pbuc2 lda mulf_sqr1_hi+$100 sta mulf_sqr2_hi+$1ff jmp breturn @@ -2747,11 +2747,11 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BORDERCOL -(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@1 (label) main::@13 @@ -2760,9 +2760,9 @@ FINAL SYMBOL TABLE (label) main::@4 (label) main::@6 (word) main::a -(const word) main::a#0 a = (word/signed word/dword/signed dword) 1234 +(const word) main::a#0 a = (word/signed word/dword/signed dword) $4d2 (word) main::b -(const word) main::b#0 b = (word/signed word/dword/signed dword) 2345 +(const word) main::b#0 b = (word/signed word/dword/signed dword) $929 (dword) main::r (dword) main::r#0 r zp ZP_DWORD:9 11.0 (dword()) mulf16u((word) mulf16u::a , (word) mulf16u::b) @@ -2770,11 +2770,11 @@ FINAL SYMBOL TABLE (word) mulf16u::a (word) mulf16u::b (word*) mulf16u::memA -(const word*) mulf16u::memA#0 memA = ((word*))(byte/word/signed word/dword/signed dword) 248 +(const word*) mulf16u::memA#0 memA = ((word*))(byte/word/signed word/dword/signed dword) $f8 (word*) mulf16u::memB -(const word*) mulf16u::memB#0 memB = ((word*))(byte/word/signed word/dword/signed dword) 250 +(const word*) mulf16u::memB#0 memB = ((word*))(byte/word/signed word/dword/signed dword) $fa (dword*) mulf16u::memR -(const dword*) mulf16u::memR#0 memR = ((dword*))(byte/word/signed word/dword/signed dword) 252 +(const dword*) mulf16u::memR#0 memR = ((dword*))(byte/word/signed word/dword/signed dword) $fc (dword) mulf16u::return (dword) mulf16u::return#0 return zp ZP_DWORD:9 22.0 (dword) mulf16u::return#1 return zp ZP_DWORD:9 4.333333333333333 @@ -2820,14 +2820,14 @@ FINAL SYMBOL TABLE (byte) mulf_init::x_255 (byte) mulf_init::x_255#1 reg byte x 5.5 (byte) mulf_init::x_255#2 reg byte x 11.0 -(byte[512]) mulf_sqr1_hi -(const byte[512]) mulf_sqr1_hi#0 mulf_sqr1_hi = { fill( 512, 0) } -(byte[512]) mulf_sqr1_lo -(const byte[512]) mulf_sqr1_lo#0 mulf_sqr1_lo = { fill( 512, 0) } -(byte[512]) mulf_sqr2_hi -(const byte[512]) mulf_sqr2_hi#0 mulf_sqr2_hi = { fill( 512, 0) } -(byte[512]) mulf_sqr2_lo -(const byte[512]) mulf_sqr2_lo#0 mulf_sqr2_lo = { fill( 512, 0) } +(byte[$200]) mulf_sqr1_hi +(const byte[$200]) mulf_sqr1_hi#0 mulf_sqr1_hi = { fill( $200, 0) } +(byte[$200]) mulf_sqr1_lo +(const byte[$200]) mulf_sqr1_lo#0 mulf_sqr1_lo = { fill( $200, 0) } +(byte[$200]) mulf_sqr2_hi +(const byte[$200]) mulf_sqr2_hi#0 mulf_sqr2_hi = { fill( $200, 0) } +(byte[$200]) mulf_sqr2_lo +(const byte[$200]) mulf_sqr2_lo#0 mulf_sqr2_lo = { fill( $200, 0) } (void()) print_byte((byte) print_byte::b) (byte~) print_byte::$0 reg byte a 4.0 (byte~) print_byte::$2 reg byte a 4.0 @@ -2917,7 +2917,7 @@ main: { //SEG14 asm { sei } sei //SEG15 [7] phi from main::@13 to main::@1 [phi:main::@13->main::@1] - //SEG16 [7] phi (byte*) print_char_cursor#16 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::@13->main::@1#0] -- pbuz1=pbuc1 + //SEG16 [7] phi (byte*) print_char_cursor#16 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::@13->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -2925,7 +2925,7 @@ main: { //SEG17 main::@1 //SEG18 main::@4 b4: - //SEG19 [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG19 [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -3037,7 +3037,7 @@ print_byte: { //SEG72 [39] phi (byte) print_char::ch#2 = (byte) print_char::ch#0 [phi:print_byte->print_char#1] -- register_copy jsr print_char //SEG73 print_byte::@1 - //SEG74 [35] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG74 [35] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG75 [36] (byte) print_char::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) -- vbuaa=pbuc1_derefidx_vbuaa @@ -3206,12 +3206,12 @@ mulf_init: { //SEG96 [49] phi (byte) mulf_init::x_2#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#0] -- vbuz1=vbuc1 lda #0 sta x_2 - //SEG97 [49] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 + //SEG97 [49] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[$200]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 lda #mulf_sqr1_hi+1 sta sqr1_hi+1 - //SEG98 [49] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 + //SEG98 [49] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[$200]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 lda #mulf_sqr1_lo+1 @@ -3278,7 +3278,7 @@ mulf_init: { bne !+ inc sqr1_lo+1 !: - //SEG125 [63] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG125 [63] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 -- pbuz1_neq_pbuc1_then_la1 lda sqr1_lo+1 cmp #>mulf_sqr1_lo+$200 bne b1 @@ -3286,15 +3286,15 @@ mulf_init: { cmp #mulf_init::@3] - //SEG127 [64] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) 255 [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 + //SEG127 [64] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) $ff [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 lda #$ff sta dir - //SEG128 [64] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[512]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 + //SEG128 [64] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[$200]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 lda #mulf_sqr2_hi sta sqr2_hi+1 - //SEG129 [64] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[512]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 + //SEG129 [64] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[$200]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 lda #mulf_sqr2_lo @@ -3308,11 +3308,11 @@ mulf_init: { //SEG135 [64] phi (byte) mulf_init::x_255#2 = (byte) mulf_init::x_255#1 [phi:mulf_init::@4->mulf_init::@3#3] -- register_copy //SEG136 mulf_init::@3 b3: - //SEG137 [65] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + //SEG137 [65] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda mulf_sqr1_lo,x ldy #0 sta (sqr2_lo),y - //SEG138 [66] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + //SEG138 [66] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda mulf_sqr1_hi,x sta (sqr2_hi),y //SEG139 [67] (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 -- pbuz1=_inc_pbuz1 @@ -3339,7 +3339,7 @@ mulf_init: { bne !+ inc sqr2_lo+1 !: - //SEG146 [72] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 -- pbuz1_neq_pbuc1_then_la1 + //SEG146 [72] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 -- pbuz1_neq_pbuc1_then_la1 lda sqr2_lo+1 cmp #>mulf_sqr2_lo+$1ff bne b3 @@ -3347,11 +3347,11 @@ mulf_init: { cmp # (word) gen_char3::spec#2 - [18] (byte~) gen_char3::$1 ← (byte~) gen_char3::$0 & (byte/word/signed word/dword/signed dword) 128 + [18] (byte~) gen_char3::$1 ← (byte~) gen_char3::$0 & (byte/word/signed word/dword/signed dword) $80 [19] if((byte~) gen_char3::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gen_char3::@3 to:gen_char3::@4 gen_char3::@4: scope:[gen_char3] from gen_char3::@2 diff --git a/src/test/ref/norom-charset.log b/src/test/ref/norom-charset.log index b4b76d4ac..c6db04c3d 100644 --- a/src/test/ref/norom-charset.log +++ b/src/test/ref/norom-charset.log @@ -1,10 +1,10 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte*) CHARSET#0 ← ((byte*)) (word/signed word/dword/signed dword) 12288 - (word[]) charset_spec_row#0 ← { (word/dword/signed dword) 63450, (word/dword/signed dword) 63454, (word/dword/signed dword) 62030, (word/dword/signed dword) 55006 } + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte*) CHARSET#0 ← ((byte*)) (word/signed word/dword/signed dword) $3000 + (word[]) charset_spec_row#0 ← { (word/dword/signed dword) $f7da, (word/dword/signed dword) $f7de, (word/dword/signed dword) $f24e, (word/dword/signed dword) $d6de } to:@2 main: scope:[main] from @2 (byte*) VIC_MEMORY#4 ← phi( @2/(byte*) VIC_MEMORY#5 ) @@ -42,9 +42,9 @@ main::@2: scope:[main] from main::@3 (byte*) CHARSET#2 ← phi( main::@3/(byte*) CHARSET#4 ) (byte*) SCREEN#1 ← phi( main::@3/(byte*) SCREEN#2 ) (word~) main::$5 ← ((word)) (byte*) SCREEN#1 - (word/signed dword/dword~) main::$6 ← (word~) main::$5 / (byte/signed byte/word/signed word/dword/signed dword) 64 + (word/signed dword/dword~) main::$6 ← (word~) main::$5 / (byte/signed byte/word/signed word/dword/signed dword) $40 (word~) main::$7 ← ((word)) (byte*) CHARSET#2 - (word/signed dword/dword~) main::$8 ← (word~) main::$7 / (word/signed word/dword/signed dword) 1024 + (word/signed dword/dword~) main::$8 ← (word~) main::$7 / (word/signed word/dword/signed dword) $400 (word/dword~) main::$9 ← (word/signed dword/dword~) main::$6 | (word/signed dword/dword~) main::$8 (byte~) main::$10 ← ((byte)) (word/dword~) main::$9 *((byte*) VIC_MEMORY#1) ← (byte~) main::$10 @@ -71,7 +71,7 @@ gen_char3::@2: scope:[gen_char3] from gen_char3::@1 gen_char3::@3 (byte) gen_char3::b#6 ← phi( gen_char3::@1/(byte) gen_char3::b#0 gen_char3::@3/(byte) gen_char3::b#1 ) (word) gen_char3::spec#2 ← phi( gen_char3::@1/(word) gen_char3::spec#4 gen_char3::@3/(word) gen_char3::spec#1 ) (byte~) gen_char3::$0 ← > (word) gen_char3::spec#2 - (byte~) gen_char3::$1 ← (byte~) gen_char3::$0 & (byte/word/signed word/dword/signed dword) 128 + (byte~) gen_char3::$1 ← (byte~) gen_char3::$0 & (byte/word/signed word/dword/signed dword) $80 (bool~) gen_char3::$2 ← (byte~) gen_char3::$1 != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) gen_char3::$3 ← ! (bool~) gen_char3::$2 if((bool~) gen_char3::$3) goto gen_char3::@3 @@ -284,10 +284,10 @@ Simple Condition (bool~) gen_char3::$3 [38] if((byte~) gen_char3::$1==(byte/sign Simple Condition (bool~) gen_char3::$7 [46] if((byte) gen_char3::c#1!=rangelast(0,2)) goto gen_char3::@2 Simple Condition (bool~) gen_char3::$8 [54] if((byte) gen_char3::r#1!=rangelast(0,4)) goto gen_char3::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) SCREEN#0 = ((byte*))1024 -Constant (const byte*) CHARSET#0 = ((byte*))12288 -Constant (const word[]) charset_spec_row#0 = { 63450, 63454, 62030, 55006 } +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) SCREEN#0 = ((byte*))$400 +Constant (const byte*) CHARSET#0 = ((byte*))$3000 +Constant (const word[]) charset_spec_row#0 = { $f7da, $f7de, $f24e, $d6de } Constant (const byte) main::c#0 = 0 Constant (const byte) gen_char3::r#0 = 0 Constant (const byte) gen_char3::b#0 = 0 @@ -297,8 +297,8 @@ Constant (const byte*) main::charset#0 = CHARSET#0+8 Constant (const word) main::$5 = ((word))SCREEN#0 Constant (const word) main::$7 = ((word))CHARSET#0 Successful SSA optimization Pass2ConstantIdentification -Constant (const word/signed dword/dword) main::$6 = main::$5/64 -Constant (const word/signed dword/dword) main::$8 = main::$7/1024 +Constant (const word/signed dword/dword) main::$6 = main::$5/$40 +Constant (const word/signed dword/dword) main::$8 = main::$7/$400 Successful SSA optimization Pass2ConstantIdentification Constant (const word/dword) main::$9 = main::$6|main::$8 Successful SSA optimization Pass2ConstantIdentification @@ -323,11 +323,11 @@ Constant inlined main::c#0 = (byte/signed byte/word/signed word/dword/signed dwo Constant inlined gen_char3::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::charset#0 = (const byte*) CHARSET#0+(byte/signed byte/word/signed word/dword/signed dword) 8 Constant inlined main::$5 = ((word))(const byte*) SCREEN#0 -Constant inlined main::$6 = ((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) 64 -Constant inlined main::$9 = ((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) CHARSET#0/(word/signed word/dword/signed dword) 1024 +Constant inlined main::$6 = ((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) $40 +Constant inlined main::$9 = ((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) CHARSET#0/(word/signed word/dword/signed dword) $400 Constant inlined main::$7 = ((word))(const byte*) CHARSET#0 -Constant inlined main::$10 = ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) CHARSET#0/(word/signed word/dword/signed dword) 1024 -Constant inlined main::$8 = ((word))(const byte*) CHARSET#0/(word/signed word/dword/signed dword) 1024 +Constant inlined main::$10 = ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) CHARSET#0/(word/signed word/dword/signed dword) $400 +Constant inlined main::$8 = ((word))(const byte*) CHARSET#0/(word/signed word/dword/signed dword) $400 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@4(between main::@3 and main::@1) Added new block during phi lifting gen_char3::@7(between gen_char3::@5 and gen_char3::@1) @@ -390,7 +390,7 @@ main::@3: scope:[main] from main::@1 [11] if((byte) main::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 6) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@3 - [12] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) CHARSET#0/(word/signed word/dword/signed dword) 1024 + [12] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) CHARSET#0/(word/signed word/dword/signed dword) $400 to:main::@return main::@return: scope:[main] from main::@2 [13] return @@ -407,7 +407,7 @@ gen_char3::@2: scope:[gen_char3] from gen_char3::@1 gen_char3::@3 [16] (byte) gen_char3::b#4 ← phi( gen_char3::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 gen_char3::@3/(byte) gen_char3::b#1 ) [16] (word) gen_char3::spec#2 ← phi( gen_char3::@1/(word) gen_char3::spec#4 gen_char3::@3/(word) gen_char3::spec#1 ) [17] (byte~) gen_char3::$0 ← > (word) gen_char3::spec#2 - [18] (byte~) gen_char3::$1 ← (byte~) gen_char3::$0 & (byte/word/signed word/dword/signed dword) 128 + [18] (byte~) gen_char3::$1 ← (byte~) gen_char3::$0 & (byte/word/signed word/dword/signed dword) $80 [19] if((byte~) gen_char3::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gen_char3::@3 to:gen_char3::@4 gen_char3::@4: scope:[gen_char3] from gen_char3::@2 @@ -581,7 +581,7 @@ main: { jmp b2 //SEG26 main::@2 b2: - //SEG27 [12] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) CHARSET#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG27 [12] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) CHARSET#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #SCREEN/$40|CHARSET/$400 sta VIC_MEMORY jmp breturn @@ -637,7 +637,7 @@ gen_char3: { //SEG47 [17] (byte~) gen_char3::$0 ← > (word) gen_char3::spec#2 -- vbuz1=_hi_vwuz2 lda spec+1 sta _0 - //SEG48 [18] (byte~) gen_char3::$1 ← (byte~) gen_char3::$0 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG48 [18] (byte~) gen_char3::$1 ← (byte~) gen_char3::$0 & (byte/word/signed word/dword/signed dword) $80 -- vbuz1=vbuz2_band_vbuc1 lda #$80 and _0 sta _1 @@ -698,20 +698,20 @@ Statement [6] (byte*) gen_char3::dst#0 ← (byte*) main::charset#2 [ main::chars Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ main::c#2 main::c#1 ] Statement [7] (word) gen_char3::spec#0 ← *((const word[]) charset_spec_row#0 + (byte) main::c#2) [ main::charset#2 main::c#2 gen_char3::dst#0 gen_char3::spec#0 ] ( main:2 [ main::charset#2 main::c#2 gen_char3::dst#0 gen_char3::spec#0 ] ) always clobbers reg byte a Statement [9] (byte*) main::charset#1 ← (byte*) main::charset#2 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ main::c#2 main::charset#1 ] ( main:2 [ main::c#2 main::charset#1 ] ) always clobbers reg byte a -Statement [12] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) CHARSET#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [12] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) CHARSET#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [17] (byte~) gen_char3::$0 ← > (word) gen_char3::spec#2 [ gen_char3::dst#0 gen_char3::r#6 gen_char3::spec#2 gen_char3::b#4 gen_char3::c#2 gen_char3::$0 ] ( main:2::gen_char3:8 [ main::charset#2 main::c#2 gen_char3::dst#0 gen_char3::r#6 gen_char3::spec#2 gen_char3::b#4 gen_char3::c#2 gen_char3::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ gen_char3::r#6 gen_char3::r#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:9 [ gen_char3::b#3 gen_char3::b#4 gen_char3::b#1 gen_char3::b#2 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:8 [ gen_char3::c#2 gen_char3::c#1 ] -Statement [18] (byte~) gen_char3::$1 ← (byte~) gen_char3::$0 & (byte/word/signed word/dword/signed dword) 128 [ gen_char3::dst#0 gen_char3::r#6 gen_char3::spec#2 gen_char3::b#4 gen_char3::c#2 gen_char3::$1 ] ( main:2::gen_char3:8 [ main::charset#2 main::c#2 gen_char3::dst#0 gen_char3::r#6 gen_char3::spec#2 gen_char3::b#4 gen_char3::c#2 gen_char3::$1 ] ) always clobbers reg byte a +Statement [18] (byte~) gen_char3::$1 ← (byte~) gen_char3::$0 & (byte/word/signed word/dword/signed dword) $80 [ gen_char3::dst#0 gen_char3::r#6 gen_char3::spec#2 gen_char3::b#4 gen_char3::c#2 gen_char3::$1 ] ( main:2::gen_char3:8 [ main::charset#2 main::c#2 gen_char3::dst#0 gen_char3::r#6 gen_char3::spec#2 gen_char3::b#4 gen_char3::c#2 gen_char3::$1 ] ) always clobbers reg byte a Statement [20] (byte) gen_char3::b#2 ← (byte) gen_char3::b#4 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ gen_char3::dst#0 gen_char3::r#6 gen_char3::spec#2 gen_char3::c#2 gen_char3::b#2 ] ( main:2::gen_char3:8 [ main::charset#2 main::c#2 gen_char3::dst#0 gen_char3::r#6 gen_char3::spec#2 gen_char3::c#2 gen_char3::b#2 ] ) always clobbers reg byte a Statement [26] *((byte*) gen_char3::dst#0 + (byte) gen_char3::r#6) ← (byte) gen_char3::b#1 [ gen_char3::dst#0 gen_char3::r#6 gen_char3::spec#1 ] ( main:2::gen_char3:8 [ main::charset#2 main::c#2 gen_char3::dst#0 gen_char3::r#6 gen_char3::spec#1 ] ) always clobbers reg byte a Statement [6] (byte*) gen_char3::dst#0 ← (byte*) main::charset#2 [ main::charset#2 main::c#2 gen_char3::dst#0 ] ( main:2 [ main::charset#2 main::c#2 gen_char3::dst#0 ] ) always clobbers reg byte a Statement [7] (word) gen_char3::spec#0 ← *((const word[]) charset_spec_row#0 + (byte) main::c#2) [ main::charset#2 main::c#2 gen_char3::dst#0 gen_char3::spec#0 ] ( main:2 [ main::charset#2 main::c#2 gen_char3::dst#0 gen_char3::spec#0 ] ) always clobbers reg byte a Statement [9] (byte*) main::charset#1 ← (byte*) main::charset#2 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ main::c#2 main::charset#1 ] ( main:2 [ main::c#2 main::charset#1 ] ) always clobbers reg byte a -Statement [12] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) CHARSET#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [12] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) CHARSET#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [17] (byte~) gen_char3::$0 ← > (word) gen_char3::spec#2 [ gen_char3::dst#0 gen_char3::r#6 gen_char3::spec#2 gen_char3::b#4 gen_char3::c#2 gen_char3::$0 ] ( main:2::gen_char3:8 [ main::charset#2 main::c#2 gen_char3::dst#0 gen_char3::r#6 gen_char3::spec#2 gen_char3::b#4 gen_char3::c#2 gen_char3::$0 ] ) always clobbers reg byte a -Statement [18] (byte~) gen_char3::$1 ← (byte~) gen_char3::$0 & (byte/word/signed word/dword/signed dword) 128 [ gen_char3::dst#0 gen_char3::r#6 gen_char3::spec#2 gen_char3::b#4 gen_char3::c#2 gen_char3::$1 ] ( main:2::gen_char3:8 [ main::charset#2 main::c#2 gen_char3::dst#0 gen_char3::r#6 gen_char3::spec#2 gen_char3::b#4 gen_char3::c#2 gen_char3::$1 ] ) always clobbers reg byte a +Statement [18] (byte~) gen_char3::$1 ← (byte~) gen_char3::$0 & (byte/word/signed word/dword/signed dword) $80 [ gen_char3::dst#0 gen_char3::r#6 gen_char3::spec#2 gen_char3::b#4 gen_char3::c#2 gen_char3::$1 ] ( main:2::gen_char3:8 [ main::charset#2 main::c#2 gen_char3::dst#0 gen_char3::r#6 gen_char3::spec#2 gen_char3::b#4 gen_char3::c#2 gen_char3::$1 ] ) always clobbers reg byte a Statement [20] (byte) gen_char3::b#2 ← (byte) gen_char3::b#4 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ gen_char3::dst#0 gen_char3::r#6 gen_char3::spec#2 gen_char3::c#2 gen_char3::b#2 ] ( main:2::gen_char3:8 [ main::charset#2 main::c#2 gen_char3::dst#0 gen_char3::r#6 gen_char3::spec#2 gen_char3::c#2 gen_char3::b#2 ] ) always clobbers reg byte a Statement [26] *((byte*) gen_char3::dst#0 + (byte) gen_char3::r#6) ← (byte) gen_char3::b#1 [ gen_char3::dst#0 gen_char3::r#6 gen_char3::spec#1 ] ( main:2::gen_char3:8 [ main::charset#2 main::c#2 gen_char3::dst#0 gen_char3::r#6 gen_char3::spec#1 ] ) always clobbers reg byte a Potential registers zp ZP_WORD:2 [ main::charset#2 main::charset#1 ] : zp ZP_WORD:2 , @@ -822,7 +822,7 @@ main: { jmp b2 //SEG26 main::@2 b2: - //SEG27 [12] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) CHARSET#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG27 [12] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) CHARSET#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #SCREEN/$40|CHARSET/$400 sta VIC_MEMORY jmp breturn @@ -871,7 +871,7 @@ gen_char3: { b2: //SEG47 [17] (byte~) gen_char3::$0 ← > (word) gen_char3::spec#2 -- vbuaa=_hi_vwuz1 lda spec+1 - //SEG48 [18] (byte~) gen_char3::$1 ← (byte~) gen_char3::$0 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuaa_band_vbuc1 + //SEG48 [18] (byte~) gen_char3::$1 ← (byte~) gen_char3::$0 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 //SEG49 [19] if((byte~) gen_char3::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gen_char3::@3 -- vbuaa_eq_0_then_la1 cmp #0 @@ -982,13 +982,13 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) CHARSET -(const byte*) CHARSET#0 CHARSET = ((byte*))(word/signed word/dword/signed dword) 12288 +(const byte*) CHARSET#0 CHARSET = ((byte*))(word/signed word/dword/signed dword) $3000 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) VIC_MEMORY -(const byte*) VIC_MEMORY#0 VIC_MEMORY = ((byte*))(word/dword/signed dword) 53272 +(const byte*) VIC_MEMORY#0 VIC_MEMORY = ((byte*))(word/dword/signed dword) $d018 (word[]) charset_spec_row -(const word[]) charset_spec_row#0 charset_spec_row = { (word/dword/signed dword) 63450, (word/dword/signed dword) 63454, (word/dword/signed dword) 62030, (word/dword/signed dword) 55006 } +(const word[]) charset_spec_row#0 charset_spec_row = { (word/dword/signed dword) $f7da, (word/dword/signed dword) $f7de, (word/dword/signed dword) $f24e, (word/dword/signed dword) $d6de } (void()) gen_char3((byte*) gen_char3::dst , (word) gen_char3::spec) (byte~) gen_char3::$0 reg byte a 2002.0 (byte~) gen_char3::$1 reg byte a 2002.0 @@ -1104,7 +1104,7 @@ main: { cmp #6 bne b1 //SEG26 main::@2 - //SEG27 [12] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) CHARSET#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG27 [12] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) SCREEN#0/(byte/signed byte/word/signed word/dword/signed dword) $40|((word))(const byte*) CHARSET#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #SCREEN/$40|CHARSET/$400 sta VIC_MEMORY //SEG28 main::@return @@ -1143,7 +1143,7 @@ gen_char3: { b2: //SEG47 [17] (byte~) gen_char3::$0 ← > (word) gen_char3::spec#2 -- vbuaa=_hi_vwuz1 lda spec+1 - //SEG48 [18] (byte~) gen_char3::$1 ← (byte~) gen_char3::$0 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuaa_band_vbuc1 + //SEG48 [18] (byte~) gen_char3::$1 ← (byte~) gen_char3::$0 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 //SEG49 [19] if((byte~) gen_char3::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gen_char3::@3 -- vbuaa_eq_0_then_la1 cmp #0 diff --git a/src/test/ref/norom-charset.sym b/src/test/ref/norom-charset.sym index 226c4aa04..0c5ddd502 100644 --- a/src/test/ref/norom-charset.sym +++ b/src/test/ref/norom-charset.sym @@ -2,13 +2,13 @@ (label) @begin (label) @end (byte*) CHARSET -(const byte*) CHARSET#0 CHARSET = ((byte*))(word/signed word/dword/signed dword) 12288 +(const byte*) CHARSET#0 CHARSET = ((byte*))(word/signed word/dword/signed dword) $3000 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) VIC_MEMORY -(const byte*) VIC_MEMORY#0 VIC_MEMORY = ((byte*))(word/dword/signed dword) 53272 +(const byte*) VIC_MEMORY#0 VIC_MEMORY = ((byte*))(word/dword/signed dword) $d018 (word[]) charset_spec_row -(const word[]) charset_spec_row#0 charset_spec_row = { (word/dword/signed dword) 63450, (word/dword/signed dword) 63454, (word/dword/signed dword) 62030, (word/dword/signed dword) 55006 } +(const word[]) charset_spec_row#0 charset_spec_row = { (word/dword/signed dword) $f7da, (word/dword/signed dword) $f7de, (word/dword/signed dword) $f24e, (word/dword/signed dword) $d6de } (void()) gen_char3((byte*) gen_char3::dst , (word) gen_char3::spec) (byte~) gen_char3::$0 reg byte a 2002.0 (byte~) gen_char3::$1 reg byte a 2002.0 diff --git a/src/test/ref/operator-lohi-problem.cfg b/src/test/ref/operator-lohi-problem.cfg index a1e27b53b..cba730f0e 100644 --- a/src/test/ref/operator-lohi-problem.cfg +++ b/src/test/ref/operator-lohi-problem.cfg @@ -8,8 +8,8 @@ @end: scope:[] from @1 [3] phi() main: scope:[main] from @1 - [4] *((const byte*) SCREEN#0) ← <((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) 1024 - [5] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← >((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) 1024 + [4] *((const byte*) SCREEN#0) ← <((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) $400 + [5] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← >((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) $400 to:main::@return main::@return: scope:[main] from main [6] return diff --git a/src/test/ref/operator-lohi-problem.log b/src/test/ref/operator-lohi-problem.log index df6983d61..66a3fe0e1 100644 --- a/src/test/ref/operator-lohi-problem.log +++ b/src/test/ref/operator-lohi-problem.log @@ -1,15 +1,15 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (dword) DVAL#0 ← (dword/signed dword) 131072 - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (dword) DVAL#0 ← (dword/signed dword) $20000 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@1 main: scope:[main] from @1 - (dword~) main::$0 ← (dword) DVAL#0 / (word/signed word/dword/signed dword) 1024 + (dword~) main::$0 ← (dword) DVAL#0 / (word/signed word/dword/signed dword) $400 (word~) main::$1 ← ((word)) (dword~) main::$0 (byte~) main::$2 ← < (word~) main::$1 *((byte*) SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte~) main::$2 - (dword~) main::$3 ← (dword) DVAL#0 / (word/signed word/dword/signed dword) 1024 + (dword~) main::$3 ← (dword) DVAL#0 / (word/signed word/dword/signed dword) $400 (word~) main::$4 ← ((word)) (dword~) main::$3 (byte~) main::$5 ← > (word~) main::$4 *((byte*) SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte~) main::$5 @@ -44,11 +44,11 @@ SYMBOL TABLE SSA Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks -Constant (const dword) DVAL#0 = 131072 -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const dword) DVAL#0 = $20000 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Successful SSA optimization Pass2ConstantIdentification -Constant (const dword) main::$0 = DVAL#0/1024 -Constant (const dword) main::$3 = DVAL#0/1024 +Constant (const dword) main::$0 = DVAL#0/$400 +Constant (const dword) main::$3 = DVAL#0/$400 Successful SSA optimization Pass2ConstantIdentification Constant (const word) main::$1 = ((word))main::$0 Constant (const word) main::$4 = ((word))main::$3 @@ -59,12 +59,12 @@ Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(SCREEN#0+0) Consolidated array index constant in *(SCREEN#0+1) Successful SSA optimization Pass2ConstantAdditionElimination -Constant inlined main::$1 = ((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) 1024 -Constant inlined main::$2 = <((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) 1024 -Constant inlined main::$0 = (const dword) DVAL#0/(word/signed word/dword/signed dword) 1024 -Constant inlined main::$5 = >((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) 1024 -Constant inlined main::$3 = (const dword) DVAL#0/(word/signed word/dword/signed dword) 1024 -Constant inlined main::$4 = ((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) 1024 +Constant inlined main::$1 = ((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) $400 +Constant inlined main::$2 = <((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) $400 +Constant inlined main::$0 = (const dword) DVAL#0/(word/signed word/dword/signed dword) $400 +Constant inlined main::$5 = >((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) $400 +Constant inlined main::$3 = (const dword) DVAL#0/(word/signed word/dword/signed dword) $400 +Constant inlined main::$4 = ((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) $400 Successful SSA optimization Pass2ConstantInlining Simplifying constant plus zero SCREEN#0+0 Adding NOP phi() at start of @begin @@ -90,8 +90,8 @@ FINAL CONTROL FLOW GRAPH @end: scope:[] from @1 [3] phi() main: scope:[main] from @1 - [4] *((const byte*) SCREEN#0) ← <((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) 1024 - [5] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← >((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) 1024 + [4] *((const byte*) SCREEN#0) ← <((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) $400 + [5] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← >((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) $400 to:main::@return main::@return: scope:[main] from main [6] return @@ -136,10 +136,10 @@ bend_from_b1: bend: //SEG9 main main: { - //SEG10 [4] *((const byte*) SCREEN#0) ← <((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG10 [4] *((const byte*) SCREEN#0) ← <((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #DVAL/$400 sta SCREEN - //SEG11 [5] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← >((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG11 [5] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← >((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+1 jmp breturn @@ -150,8 +150,8 @@ main: { } REGISTER UPLIFT POTENTIAL REGISTERS -Statement [4] *((const byte*) SCREEN#0) ← <((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [5] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← >((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [4] *((const byte*) SCREEN#0) ← <((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [5] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← >((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) $400 [ ] ( main:2 [ ] ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [main] @@ -190,10 +190,10 @@ bend_from_b1: bend: //SEG9 main main: { - //SEG10 [4] *((const byte*) SCREEN#0) ← <((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG10 [4] *((const byte*) SCREEN#0) ← <((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #DVAL/$400 sta SCREEN - //SEG11 [5] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← >((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG11 [5] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← >((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+1 jmp breturn @@ -226,9 +226,9 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (dword) DVAL -(const dword) DVAL#0 DVAL = (dword/signed dword) 131072 +(const dword) DVAL#0 DVAL = (dword/signed dword) $20000 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@return @@ -258,10 +258,10 @@ Score: 18 //SEG8 @end //SEG9 main main: { - //SEG10 [4] *((const byte*) SCREEN#0) ← <((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG10 [4] *((const byte*) SCREEN#0) ← <((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #DVAL/$400 sta SCREEN - //SEG11 [5] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← >((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) 1024 -- _deref_pbuc1=vbuc2 + //SEG11 [5] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← >((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) $400 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+1 //SEG12 main::@return diff --git a/src/test/ref/operator-lohi-problem.sym b/src/test/ref/operator-lohi-problem.sym index 52a8f63ea..fc3a74cc8 100644 --- a/src/test/ref/operator-lohi-problem.sym +++ b/src/test/ref/operator-lohi-problem.sym @@ -2,9 +2,9 @@ (label) @begin (label) @end (dword) DVAL -(const dword) DVAL#0 DVAL = (dword/signed dword) 131072 +(const dword) DVAL#0 DVAL = (dword/signed dword) $20000 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@return diff --git a/src/test/ref/overlap-allocation-2.cfg b/src/test/ref/overlap-allocation-2.cfg index 13df23153..2688a0aac 100644 --- a/src/test/ref/overlap-allocation-2.cfg +++ b/src/test/ref/overlap-allocation-2.cfg @@ -20,13 +20,13 @@ main::@5: scope:[main] from main::@1 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 9) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@5 main::@6 - [10] (byte) main::j#2 ← phi( main::@5/(byte/signed byte/word/signed word/dword/signed dword) 10 main::@6/(byte) main::j#1 ) + [10] (byte) main::j#2 ← phi( main::@5/(byte/signed byte/word/signed word/dword/signed dword) $a main::@6/(byte) main::j#1 ) [11] (byte) line::l#1 ← (byte) main::j#2 [12] call line to:main::@6 main::@6: scope:[main] from main::@2 [13] (byte) main::j#1 ← ++ (byte) main::j#2 - [14] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 19) goto main::@2 + [14] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $13) goto main::@2 to:main::@return main::@return: scope:[main] from main::@6 [15] return @@ -37,7 +37,7 @@ line: scope:[line] from main::@1 main::@2 [18] call plot to:line::@1 line::@1: scope:[line] from line - [19] (byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word/dword/signed dword) 20 + [19] (byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word/dword/signed dword) $14 [20] call plot to:line::@return line::@return: scope:[line] from line::@1 diff --git a/src/test/ref/overlap-allocation-2.log b/src/test/ref/overlap-allocation-2.log index f09a1d64a..fde97b499 100644 --- a/src/test/ref/overlap-allocation-2.log +++ b/src/test/ref/overlap-allocation-2.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@3 main: scope:[main] from @3 (byte*) SCREEN#6 ← phi( @3/(byte*) SCREEN#10 ) @@ -22,7 +22,7 @@ main::@5: scope:[main] from main::@1 to:main::@3 main::@3: scope:[main] from main::@5 (byte*) SCREEN#8 ← phi( main::@5/(byte*) SCREEN#7 ) - (byte) main::j#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 + (byte) main::j#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a to:main::@2 main::@2: scope:[main] from main::@3 main::@6 (byte*) SCREEN#5 ← phi( main::@3/(byte*) SCREEN#8 main::@6/(byte*) SCREEN#9 ) @@ -33,8 +33,8 @@ main::@2: scope:[main] from main::@3 main::@6 main::@6: scope:[main] from main::@2 (byte*) SCREEN#9 ← phi( main::@2/(byte*) SCREEN#5 ) (byte) main::j#3 ← phi( main::@2/(byte) main::j#2 ) - (byte) main::j#1 ← (byte) main::j#3 + rangenext(10,18) - (bool~) main::$3 ← (byte) main::j#1 != rangelast(10,18) + (byte) main::j#1 ← (byte) main::j#3 + rangenext($a,$12) + (bool~) main::$3 ← (byte) main::j#1 != rangelast($a,$12) if((bool~) main::$3) goto main::@2 to:main::@return main::@return: scope:[main] from main::@6 @@ -49,7 +49,7 @@ line: scope:[line] from main::@1 main::@2 line::@1: scope:[line] from line (byte*) SCREEN#3 ← phi( line/(byte*) SCREEN#2 ) (byte) line::l#3 ← phi( line/(byte) line::l#2 ) - (byte/signed word/word/dword/signed dword~) line::$1 ← (byte) line::l#3 + (byte/signed byte/word/signed word/dword/signed dword) 20 + (byte/signed word/word/dword/signed dword~) line::$1 ← (byte) line::l#3 + (byte/signed byte/word/signed word/dword/signed dword) $14 (byte) plot::x#1 ← (byte/signed word/word/dword/signed dword~) line::$1 call plot to:line::@2 @@ -150,22 +150,22 @@ Successful SSA optimization Pass2RedundantPhiElimination Redundant Phi (byte*) SCREEN#2 (byte*) SCREEN#0 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) main::$1 [9] if((byte) main::i#1!=rangelast(0,8)) goto main::@1 -Simple Condition (bool~) main::$3 [18] if((byte) main::j#1!=rangelast(10,18)) goto main::@2 +Simple Condition (bool~) main::$3 [18] if((byte) main::j#1!=rangelast($a,$12)) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Constant (const byte) main::i#0 = 0 -Constant (const byte) main::j#0 = 10 +Constant (const byte) main::j#0 = $a Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ Resolved ranged comparison value if(main::i#1!=rangelast(0,8)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 9 Resolved ranged next value main::j#1 ← ++ main::j#2 to ++ -Resolved ranged comparison value if(main::j#1!=rangelast(10,18)) goto main::@2 to (byte/signed byte/word/signed word/dword/signed dword) 19 +Resolved ranged comparison value if(main::j#1!=rangelast($a,$12)) goto main::@2 to (byte/signed byte/word/signed word/dword/signed dword) $13 Culled Empty Block (label) main::@3 Successful SSA optimization Pass2CullEmptyBlocks Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte) main::j#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 10 +Constant inlined main::j#0 = (byte/signed byte/word/signed word/dword/signed dword) $a Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@7(between main::@5 and main::@1) Added new block during phi lifting main::@8(between main::@6 and main::@2) @@ -216,13 +216,13 @@ main::@5: scope:[main] from main::@1 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 9) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@5 main::@6 - [10] (byte) main::j#2 ← phi( main::@5/(byte/signed byte/word/signed word/dword/signed dword) 10 main::@6/(byte) main::j#1 ) + [10] (byte) main::j#2 ← phi( main::@5/(byte/signed byte/word/signed word/dword/signed dword) $a main::@6/(byte) main::j#1 ) [11] (byte) line::l#1 ← (byte) main::j#2 [12] call line to:main::@6 main::@6: scope:[main] from main::@2 [13] (byte) main::j#1 ← ++ (byte) main::j#2 - [14] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 19) goto main::@2 + [14] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $13) goto main::@2 to:main::@return main::@return: scope:[main] from main::@6 [15] return @@ -233,7 +233,7 @@ line: scope:[line] from main::@1 main::@2 [18] call plot to:line::@1 line::@1: scope:[line] from line - [19] (byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word/dword/signed dword) 20 + [19] (byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word/dword/signed dword) $14 [20] call plot to:line::@return line::@return: scope:[line] from line::@1 @@ -343,7 +343,7 @@ main: { bne b1_from_b5 //SEG23 [10] phi from main::@5 to main::@2 [phi:main::@5->main::@2] b2_from_b5: - //SEG24 [10] phi (byte) main::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 10 [phi:main::@5->main::@2#0] -- vbuz1=vbuc1 + //SEG24 [10] phi (byte) main::j#2 = (byte/signed byte/word/signed word/dword/signed dword) $a [phi:main::@5->main::@2#0] -- vbuz1=vbuc1 lda #$a sta j jmp b2 @@ -366,7 +366,7 @@ main: { b6: //SEG33 [13] (byte) main::j#1 ← ++ (byte) main::j#2 -- vbuz1=_inc_vbuz1 inc j - //SEG34 [14] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 19) goto main::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG34 [14] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $13) goto main::@2 -- vbuz1_neq_vbuc1_then_la1 lda j cmp #$13 bne b2_from_b6 @@ -391,7 +391,7 @@ line: { jmp b1 //SEG42 line::@1 b1: - //SEG43 [19] (byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word/dword/signed dword) 20 -- vbuz1=vbuz2_plus_vbuc1 + //SEG43 [19] (byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word/dword/signed dword) $14 -- vbuz1=vbuz2_plus_vbuc1 lda #$14 clc adc l @@ -423,12 +423,12 @@ plot: { } REGISTER UPLIFT POTENTIAL REGISTERS -Statement [19] (byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word/dword/signed dword) 20 [ plot::x#1 ] ( main:2::line:7 [ main::i#2 plot::x#1 ] main:2::line:12 [ main::j#2 plot::x#1 ] ) always clobbers reg byte a +Statement [19] (byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word/dword/signed dword) $14 [ plot::x#1 ] ( main:2::line:7 [ main::i#2 plot::x#1 ] main:2::line:12 [ main::j#2 plot::x#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ main::j#2 main::j#1 ] Statement [23] *((const byte*) SCREEN#0 + (byte) plot::x#2) ← (byte) '*' [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:20 [ main::i#2 ] main:2::line:12::plot:20 [ main::j#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ line::l#2 line::l#0 line::l#1 ] -Statement [19] (byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word/dword/signed dword) 20 [ plot::x#1 ] ( main:2::line:7 [ main::i#2 plot::x#1 ] main:2::line:12 [ main::j#2 plot::x#1 ] ) always clobbers reg byte a +Statement [19] (byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word/dword/signed dword) $14 [ plot::x#1 ] ( main:2::line:7 [ main::i#2 plot::x#1 ] main:2::line:12 [ main::j#2 plot::x#1 ] ) always clobbers reg byte a Statement [23] *((const byte*) SCREEN#0 + (byte) plot::x#2) ← (byte) '*' [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:20 [ main::i#2 ] main:2::line:12::plot:20 [ main::j#2 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ main::i#2 main::i#1 ] : zp ZP_BYTE:2 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:3 [ main::j#2 main::j#1 ] : zp ZP_BYTE:3 , reg byte x , reg byte y , @@ -500,7 +500,7 @@ main: { bne b1_from_b5 //SEG23 [10] phi from main::@5 to main::@2 [phi:main::@5->main::@2] b2_from_b5: - //SEG24 [10] phi (byte) main::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 10 [phi:main::@5->main::@2#0] -- vbuxx=vbuc1 + //SEG24 [10] phi (byte) main::j#2 = (byte/signed byte/word/signed word/dword/signed dword) $a [phi:main::@5->main::@2#0] -- vbuxx=vbuc1 ldx #$a jmp b2 //SEG25 [10] phi from main::@6 to main::@2 [phi:main::@6->main::@2] @@ -520,7 +520,7 @@ main: { b6: //SEG33 [13] (byte) main::j#1 ← ++ (byte) main::j#2 -- vbuxx=_inc_vbuxx inx - //SEG34 [14] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 19) goto main::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG34 [14] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $13) goto main::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$13 bne b2_from_b6 jmp breturn @@ -542,7 +542,7 @@ line: { jmp b1 //SEG42 line::@1 b1: - //SEG43 [19] (byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word/dword/signed dword) 20 -- vbuaa=vbuxx_plus_vbuc1 + //SEG43 [19] (byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word/dword/signed dword) $14 -- vbuaa=vbuxx_plus_vbuc1 txa clc adc #$14 @@ -620,7 +620,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) line((byte) line::l) (label) line::@1 (label) line::@return @@ -692,7 +692,7 @@ main: { cpx #9 bne b1 //SEG23 [10] phi from main::@5 to main::@2 [phi:main::@5->main::@2] - //SEG24 [10] phi (byte) main::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 10 [phi:main::@5->main::@2#0] -- vbuxx=vbuc1 + //SEG24 [10] phi (byte) main::j#2 = (byte/signed byte/word/signed word/dword/signed dword) $a [phi:main::@5->main::@2#0] -- vbuxx=vbuc1 ldx #$a //SEG25 [10] phi from main::@6 to main::@2 [phi:main::@6->main::@2] //SEG26 [10] phi (byte) main::j#2 = (byte) main::j#1 [phi:main::@6->main::@2#0] -- register_copy @@ -706,7 +706,7 @@ main: { //SEG32 main::@6 //SEG33 [13] (byte) main::j#1 ← ++ (byte) main::j#2 -- vbuxx=_inc_vbuxx inx - //SEG34 [14] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 19) goto main::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG34 [14] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $13) goto main::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$13 bne b2 //SEG35 main::@return @@ -723,7 +723,7 @@ line: { //SEG41 [22] phi (byte) plot::x#2 = (byte) plot::x#0 [phi:line->plot#0] -- register_copy jsr plot //SEG42 line::@1 - //SEG43 [19] (byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word/dword/signed dword) 20 -- vbuaa=vbuxx_plus_vbuc1 + //SEG43 [19] (byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word/dword/signed dword) $14 -- vbuaa=vbuxx_plus_vbuc1 txa clc adc #$14 diff --git a/src/test/ref/overlap-allocation-2.sym b/src/test/ref/overlap-allocation-2.sym index a197b8022..3e3e7fa6a 100644 --- a/src/test/ref/overlap-allocation-2.sym +++ b/src/test/ref/overlap-allocation-2.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) line((byte) line::l) (label) line::@1 (label) line::@return diff --git a/src/test/ref/overlap-allocation.cfg b/src/test/ref/overlap-allocation.cfg index 36523920e..d218bcacd 100644 --- a/src/test/ref/overlap-allocation.cfg +++ b/src/test/ref/overlap-allocation.cfg @@ -17,7 +17,7 @@ main::@1: scope:[main] from main main::@7 to:main::@7 main::@7: scope:[main] from main::@1 [8] (byte) main::i#1 ← ++ (byte) main::i#2 - [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 + [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@7 main::@8 [10] (byte) main::j#2 ← phi( main::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@8/(byte) main::j#1 ) @@ -26,7 +26,7 @@ main::@2: scope:[main] from main::@7 main::@8 to:main::@8 main::@8: scope:[main] from main::@2 [13] (byte) main::j#1 ← ++ (byte) main::j#2 - [14] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2 + [14] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@8 main::@9 [15] (byte) main::k#2 ← phi( main::@8/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@9/(byte) main::k#1 ) @@ -35,7 +35,7 @@ main::@3: scope:[main] from main::@8 main::@9 to:main::@9 main::@9: scope:[main] from main::@3 [18] (byte) main::k#1 ← ++ (byte) main::k#2 - [19] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@3 + [19] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@3 to:main::@return main::@return: scope:[main] from main::@9 [20] return diff --git a/src/test/ref/overlap-allocation.log b/src/test/ref/overlap-allocation.log index b67422622..0ec4d8d77 100644 --- a/src/test/ref/overlap-allocation.log +++ b/src/test/ref/overlap-allocation.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@2 main: scope:[main] from @2 (byte*) SCREEN#5 ← phi( @2/(byte*) SCREEN#11 ) @@ -16,8 +16,8 @@ main::@1: scope:[main] from main main::@7 main::@7: scope:[main] from main::@1 (byte*) SCREEN#6 ← phi( main::@1/(byte*) SCREEN#2 ) (byte) main::i#3 ← phi( main::@1/(byte) main::i#2 ) - (byte) main::i#1 ← (byte) main::i#3 + rangenext(0,10) - (bool~) main::$1 ← (byte) main::i#1 != rangelast(0,10) + (byte) main::i#1 ← (byte) main::i#3 + rangenext(0,$a) + (bool~) main::$1 ← (byte) main::i#1 != rangelast(0,$a) if((bool~) main::$1) goto main::@1 to:main::@4 main::@4: scope:[main] from main::@7 @@ -33,8 +33,8 @@ main::@2: scope:[main] from main::@4 main::@8 main::@8: scope:[main] from main::@2 (byte*) SCREEN#8 ← phi( main::@2/(byte*) SCREEN#3 ) (byte) main::j#3 ← phi( main::@2/(byte) main::j#2 ) - (byte) main::j#1 ← (byte) main::j#3 + rangenext(0,10) - (bool~) main::$3 ← (byte) main::j#1 != rangelast(0,10) + (byte) main::j#1 ← (byte) main::j#3 + rangenext(0,$a) + (bool~) main::$3 ← (byte) main::j#1 != rangelast(0,$a) if((bool~) main::$3) goto main::@2 to:main::@5 main::@5: scope:[main] from main::@8 @@ -50,8 +50,8 @@ main::@3: scope:[main] from main::@5 main::@9 main::@9: scope:[main] from main::@3 (byte*) SCREEN#10 ← phi( main::@3/(byte*) SCREEN#4 ) (byte) main::k#3 ← phi( main::@3/(byte) main::k#2 ) - (byte) main::k#1 ← (byte) main::k#3 + rangenext(0,10) - (bool~) main::$5 ← (byte) main::k#1 != rangelast(0,10) + (byte) main::k#1 ← (byte) main::k#3 + rangenext(0,$a) + (bool~) main::$5 ← (byte) main::k#1 != rangelast(0,$a) if((bool~) main::$5) goto main::@3 to:main::@return main::@return: scope:[main] from main::@9 @@ -148,21 +148,21 @@ Redundant Phi (byte*) SCREEN#10 (byte*) SCREEN#3 Successful SSA optimization Pass2RedundantPhiElimination Redundant Phi (byte*) SCREEN#1 (byte*) SCREEN#0 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$1 [9] if((byte) main::i#1!=rangelast(0,10)) goto main::@1 -Simple Condition (bool~) main::$3 [18] if((byte) main::j#1!=rangelast(0,10)) goto main::@2 -Simple Condition (bool~) main::$5 [27] if((byte) main::k#1!=rangelast(0,10)) goto main::@3 +Simple Condition (bool~) main::$1 [9] if((byte) main::i#1!=rangelast(0,$a)) goto main::@1 +Simple Condition (bool~) main::$3 [18] if((byte) main::j#1!=rangelast(0,$a)) goto main::@2 +Simple Condition (bool~) main::$5 [27] if((byte) main::k#1!=rangelast(0,$a)) goto main::@3 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Constant (const byte) main::i#0 = 0 Constant (const byte) main::j#0 = 0 Constant (const byte) main::k#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ -Resolved ranged comparison value if(main::i#1!=rangelast(0,10)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 11 +Resolved ranged comparison value if(main::i#1!=rangelast(0,$a)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $b Resolved ranged next value main::j#1 ← ++ main::j#2 to ++ -Resolved ranged comparison value if(main::j#1!=rangelast(0,10)) goto main::@2 to (byte/signed byte/word/signed word/dword/signed dword) 11 +Resolved ranged comparison value if(main::j#1!=rangelast(0,$a)) goto main::@2 to (byte/signed byte/word/signed word/dword/signed dword) $b Resolved ranged next value main::k#1 ← ++ main::k#2 to ++ -Resolved ranged comparison value if(main::k#1!=rangelast(0,10)) goto main::@3 to (byte/signed byte/word/signed word/dword/signed dword) 11 +Resolved ranged comparison value if(main::k#1!=rangelast(0,$a)) goto main::@3 to (byte/signed byte/word/signed word/dword/signed dword) $b Culled Empty Block (label) main::@4 Culled Empty Block (label) main::@5 Successful SSA optimization Pass2CullEmptyBlocks @@ -220,7 +220,7 @@ main::@1: scope:[main] from main main::@7 to:main::@7 main::@7: scope:[main] from main::@1 [8] (byte) main::i#1 ← ++ (byte) main::i#2 - [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 + [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@7 main::@8 [10] (byte) main::j#2 ← phi( main::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@8/(byte) main::j#1 ) @@ -229,7 +229,7 @@ main::@2: scope:[main] from main::@7 main::@8 to:main::@8 main::@8: scope:[main] from main::@2 [13] (byte) main::j#1 ← ++ (byte) main::j#2 - [14] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2 + [14] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@8 main::@9 [15] (byte) main::k#2 ← phi( main::@8/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@9/(byte) main::k#1 ) @@ -238,7 +238,7 @@ main::@3: scope:[main] from main::@8 main::@9 to:main::@9 main::@9: scope:[main] from main::@3 [18] (byte) main::k#1 ← ++ (byte) main::k#2 - [19] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@3 + [19] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@3 to:main::@return main::@return: scope:[main] from main::@9 [20] return @@ -342,7 +342,7 @@ main: { b7: //SEG21 [8] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG22 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG22 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$b bne b1_from_b7 @@ -371,7 +371,7 @@ main: { b8: //SEG33 [13] (byte) main::j#1 ← ++ (byte) main::j#2 -- vbuz1=_inc_vbuz1 inc j - //SEG34 [14] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG34 [14] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@2 -- vbuz1_neq_vbuc1_then_la1 lda j cmp #$b bne b2_from_b8 @@ -400,7 +400,7 @@ main: { b9: //SEG45 [18] (byte) main::k#1 ← ++ (byte) main::k#2 -- vbuz1=_inc_vbuz1 inc k - //SEG46 [19] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG46 [19] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@3 -- vbuz1_neq_vbuc1_then_la1 lda k cmp #$b bne b3_from_b9 @@ -495,7 +495,7 @@ main: { b7: //SEG21 [8] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG22 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG22 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$b bne b1_from_b7 //SEG23 [10] phi from main::@7 to main::@2 [phi:main::@7->main::@2] @@ -520,7 +520,7 @@ main: { b8: //SEG33 [13] (byte) main::j#1 ← ++ (byte) main::j#2 -- vbuxx=_inc_vbuxx inx - //SEG34 [14] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG34 [14] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$b bne b2_from_b8 //SEG35 [15] phi from main::@8 to main::@3 [phi:main::@8->main::@3] @@ -545,7 +545,7 @@ main: { b9: //SEG45 [18] (byte) main::k#1 ← ++ (byte) main::k#2 -- vbuxx=_inc_vbuxx inx - //SEG46 [19] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG46 [19] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$b bne b3_from_b9 jmp breturn @@ -618,7 +618,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@1 (label) main::@2 @@ -686,7 +686,7 @@ main: { //SEG20 main::@7 //SEG21 [8] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG22 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG22 [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$b bne b1 //SEG23 [10] phi from main::@7 to main::@2 [phi:main::@7->main::@2] @@ -704,7 +704,7 @@ main: { //SEG32 main::@8 //SEG33 [13] (byte) main::j#1 ← ++ (byte) main::j#2 -- vbuxx=_inc_vbuxx inx - //SEG34 [14] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG34 [14] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$b bne b2 //SEG35 [15] phi from main::@8 to main::@3 [phi:main::@8->main::@3] @@ -722,7 +722,7 @@ main: { //SEG44 main::@9 //SEG45 [18] (byte) main::k#1 ← ++ (byte) main::k#2 -- vbuxx=_inc_vbuxx inx - //SEG46 [19] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG46 [19] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$b bne b3 //SEG47 main::@return diff --git a/src/test/ref/overlap-allocation.sym b/src/test/ref/overlap-allocation.sym index 6117113fc..9efc560c2 100644 --- a/src/test/ref/overlap-allocation.sym +++ b/src/test/ref/overlap-allocation.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@1 (label) main::@2 diff --git a/src/test/ref/print-problem.cfg b/src/test/ref/print-problem.cfg index 6fef897a4..a9a0a768d 100644 --- a/src/test/ref/print-problem.cfg +++ b/src/test/ref/print-problem.cfg @@ -26,7 +26,7 @@ main::@return: scope:[main] from main::@3 [11] return to:@return ln: scope:[ln] from main main::@1 main::@2 - [12] (byte) line#12 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@1/(byte) line#13 main::@2/(byte) line#13 ) + [12] (byte) line#12 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) $40 main::@1/(byte) line#13 main::@2/(byte) line#13 ) [13] (byte) line#13 ← (byte) line#12 + (byte/signed byte/word/signed word/dword/signed dword) 2 to:ln::@return ln::@return: scope:[ln] from ln diff --git a/src/test/ref/print-problem.log b/src/test/ref/print-problem.log index 0763b5e1b..c276ccbb4 100644 --- a/src/test/ref/print-problem.log +++ b/src/test/ref/print-problem.log @@ -1,8 +1,8 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte) line#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte) line#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 (byte) char#0 ← (byte) line#0 to:@2 main: scope:[main] from @2 @@ -154,13 +154,13 @@ Redundant Phi (byte) char#12 (byte) line#13 Redundant Phi (byte) line#14 (byte) line#10 Redundant Phi (byte) char#15 (byte) char#12 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte*) SCREEN#0 = ((byte*))1024 -Constant (const byte) line#0 = 64 +Constant (const byte*) SCREEN#0 = ((byte*))$400 +Constant (const byte) line#0 = $40 Successful SSA optimization Pass2ConstantIdentification Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks Inlining constant with var siblings (const byte) line#0 -Constant inlined line#0 = (byte/signed byte/word/signed word/dword/signed dword) 64 +Constant inlined line#0 = (byte/signed byte/word/signed word/dword/signed dword) $40 Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of @begin Adding NOP phi() at start of @2 @@ -208,7 +208,7 @@ main::@return: scope:[main] from main::@3 [11] return to:@return ln: scope:[ln] from main main::@1 main::@2 - [12] (byte) line#12 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@1/(byte) line#13 main::@2/(byte) line#13 ) + [12] (byte) line#12 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) $40 main::@1/(byte) line#13 main::@2/(byte) line#13 ) [13] (byte) line#13 ← (byte) line#12 + (byte/signed byte/word/signed word/dword/signed dword) 2 to:ln::@return ln::@return: scope:[ln] from ln @@ -271,7 +271,7 @@ main: { //SEG11 [5] call ln //SEG12 [12] phi from main to ln [phi:main->ln] ln_from_main: - //SEG13 [12] phi (byte) line#12 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main->ln#0] -- vbuz1=vbuc1 + //SEG13 [12] phi (byte) line#12 = (byte/signed byte/word/signed word/dword/signed dword) $40 [phi:main->ln#0] -- vbuz1=vbuc1 lda #$40 sta line jsr ln @@ -368,7 +368,7 @@ main: { //SEG11 [5] call ln //SEG12 [12] phi from main to ln [phi:main->ln] ln_from_main: - //SEG13 [12] phi (byte) line#12 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main->ln#0] -- vbuaa=vbuc1 + //SEG13 [12] phi (byte) line#12 = (byte/signed byte/word/signed word/dword/signed dword) $40 [phi:main->ln#0] -- vbuaa=vbuc1 lda #$40 jsr ln jmp b1 @@ -451,7 +451,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) char (byte) char#2 reg byte x 20.0 (byte) char#4 reg byte x 20.0 @@ -492,7 +492,7 @@ Score: 48 main: { //SEG11 [5] call ln //SEG12 [12] phi from main to ln [phi:main->ln] - //SEG13 [12] phi (byte) line#12 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main->ln#0] -- vbuaa=vbuc1 + //SEG13 [12] phi (byte) line#12 = (byte/signed byte/word/signed word/dword/signed dword) $40 [phi:main->ln#0] -- vbuaa=vbuc1 lda #$40 jsr ln //SEG14 main::@1 diff --git a/src/test/ref/print-problem.sym b/src/test/ref/print-problem.sym index a0feda68b..122545929 100644 --- a/src/test/ref/print-problem.sym +++ b/src/test/ref/print-problem.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) char (byte) char#2 reg byte x 20.0 (byte) char#4 reg byte x 20.0 diff --git a/src/test/ref/printmsg.cfg b/src/test/ref/printmsg.cfg index b421110d5..d7cff3f1c 100644 --- a/src/test/ref/printmsg.cfg +++ b/src/test/ref/printmsg.cfg @@ -35,18 +35,18 @@ main::@return: scope:[main] from main::@5 [16] return to:@return print_ln: scope:[print_ln] from main::@1 main::@3 main::@5 - [17] (byte*) print_line_cursor#16 ← phi( main::@1/((byte*))(word/signed word/dword/signed dword) 1024 main::@3/(byte*) print_line_cursor#1 main::@5/(byte*) print_line_cursor#1 ) + [17] (byte*) print_line_cursor#16 ← phi( main::@1/((byte*))(word/signed word/dword/signed dword) $400 main::@3/(byte*) print_line_cursor#1 main::@5/(byte*) print_line_cursor#1 ) to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [18] (byte*) print_line_cursor#8 ← phi( print_ln/(byte*) print_line_cursor#16 print_ln::@1/(byte*) print_line_cursor#1 ) - [19] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#8 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [19] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#8 + (byte/signed byte/word/signed word/dword/signed dword) $28 [20] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#13) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 [21] return to:@return print_str: scope:[print_str] from main main::@2 main::@4 - [22] (byte*) print_char_cursor#29 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@2/(byte*~) print_char_cursor#32 main::@4/(byte*~) print_char_cursor#33 ) + [22] (byte*) print_char_cursor#29 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@2/(byte*~) print_char_cursor#32 main::@4/(byte*~) print_char_cursor#33 ) [22] (byte*) print_str::str#6 ← phi( main/(const byte[]) msg#0 main::@2/(const byte[]) msg2#0 main::@4/(const byte[]) msg3#0 ) to:print_str::@1 print_str::@1: scope:[print_str] from print_str print_str::@2 diff --git a/src/test/ref/printmsg.log b/src/test/ref/printmsg.log index e5d043fcd..c45791136 100644 --- a/src/test/ref/printmsg.log +++ b/src/test/ref/printmsg.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 to:@12 @@ -34,7 +34,7 @@ print_ln: scope:[print_ln] from main::@1 main::@3 main::@5 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 (byte*) print_char_cursor#15 ← phi( print_ln/(byte*) print_char_cursor#26 print_ln::@1/(byte*) print_char_cursor#15 ) (byte*) print_line_cursor#8 ← phi( print_ln/(byte*) print_line_cursor#16 print_ln::@1/(byte*) print_line_cursor#1 ) - (byte*~) print_ln::$0 ← (byte*) print_line_cursor#8 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) print_ln::$0 ← (byte*) print_line_cursor#8 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) print_line_cursor#1 ← (byte*~) print_ln::$0 (bool~) print_ln::$1 ← (byte*) print_line_cursor#1 < (byte*) print_char_cursor#15 if((bool~) print_ln::$1) goto print_ln::@1 @@ -274,7 +274,7 @@ Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) print_str::$0 [6] if(*((byte*) print_str::str#4)!=(byte) '@') goto print_str::@2 Simple Condition (bool~) print_ln::$1 [19] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#13) goto print_ln::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) print_char_cursor#0 = ((byte*))1024 +Constant (const byte*) print_char_cursor#0 = ((byte*))$400 Constant (const byte[]) print_hextab#0 = $0 Constant (const byte[]) msg#0 = $1 Constant (const byte[]) msg2#0 = $2 @@ -296,7 +296,7 @@ Inlining constant with var siblings (const byte*) print_str::str#1 Inlining constant with var siblings (const byte*) print_str::str#2 Inlining constant with var siblings (const byte*) print_str::str#3 Inlining constant with var siblings (const byte*) print_char_cursor#0 -Constant inlined print_char_cursor#0 = ((byte*))(word/signed word/dword/signed dword) 1024 +Constant inlined print_char_cursor#0 = ((byte*))(word/signed word/dword/signed dword) $400 Constant inlined print_str::str#3 = (const byte[]) msg3#0 Constant inlined print_str::str#2 = (const byte[]) msg2#0 Constant inlined print_str::str#1 = (const byte[]) msg#0 @@ -373,18 +373,18 @@ main::@return: scope:[main] from main::@5 [16] return to:@return print_ln: scope:[print_ln] from main::@1 main::@3 main::@5 - [17] (byte*) print_line_cursor#16 ← phi( main::@1/((byte*))(word/signed word/dword/signed dword) 1024 main::@3/(byte*) print_line_cursor#1 main::@5/(byte*) print_line_cursor#1 ) + [17] (byte*) print_line_cursor#16 ← phi( main::@1/((byte*))(word/signed word/dword/signed dword) $400 main::@3/(byte*) print_line_cursor#1 main::@5/(byte*) print_line_cursor#1 ) to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [18] (byte*) print_line_cursor#8 ← phi( print_ln/(byte*) print_line_cursor#16 print_ln::@1/(byte*) print_line_cursor#1 ) - [19] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#8 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [19] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#8 + (byte/signed byte/word/signed word/dword/signed dword) $28 [20] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#13) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 [21] return to:@return print_str: scope:[print_str] from main main::@2 main::@4 - [22] (byte*) print_char_cursor#29 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@2/(byte*~) print_char_cursor#32 main::@4/(byte*~) print_char_cursor#33 ) + [22] (byte*) print_char_cursor#29 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@2/(byte*~) print_char_cursor#32 main::@4/(byte*~) print_char_cursor#33 ) [22] (byte*) print_str::str#6 ← phi( main/(const byte[]) msg#0 main::@2/(const byte[]) msg2#0 main::@4/(const byte[]) msg3#0 ) to:print_str::@1 print_str::@1: scope:[print_str] from print_str print_str::@2 @@ -468,7 +468,7 @@ main: { //SEG11 [5] call print_str //SEG12 [22] phi from main to print_str [phi:main->print_str] print_str_from_main: - //SEG13 [22] phi (byte*) print_char_cursor#29 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->print_str#0] -- pbuz1=pbuc1 + //SEG13 [22] phi (byte*) print_char_cursor#29 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->print_str#0] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -487,7 +487,7 @@ main: { //SEG17 [7] call print_ln //SEG18 [17] phi from main::@1 to print_ln [phi:main::@1->print_ln] print_ln_from_b1: - //SEG19 [17] phi (byte*) print_line_cursor#16 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::@1->print_ln#0] -- pbuz1=pbuc1 + //SEG19 [17] phi (byte*) print_line_cursor#16 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::@1->print_ln#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -565,7 +565,7 @@ print_ln: { jmp b1 //SEG47 print_ln::@1 b1: - //SEG48 [19] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#8 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG48 [19] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#8 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -637,7 +637,7 @@ print_str: { REGISTER UPLIFT POTENTIAL REGISTERS Statement [8] (byte*~) print_char_cursor#32 ← (byte*) print_line_cursor#1 [ print_char_cursor#32 print_line_cursor#1 ] ( main:2 [ print_char_cursor#32 print_line_cursor#1 ] ) always clobbers reg byte a Statement [12] (byte*~) print_char_cursor#33 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#33 ] ( main:2 [ print_line_cursor#1 print_char_cursor#33 ] ) always clobbers reg byte a -Statement [19] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#8 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#13 ] ( main:2::print_ln:7 [ print_line_cursor#1 print_char_cursor#13 ] main:2::print_ln:11 [ print_line_cursor#1 print_char_cursor#13 ] main:2::print_ln:15 [ print_line_cursor#1 print_char_cursor#13 ] ) always clobbers reg byte a +Statement [19] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#8 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#1 print_char_cursor#13 ] ( main:2::print_ln:7 [ print_line_cursor#1 print_char_cursor#13 ] main:2::print_ln:11 [ print_line_cursor#1 print_char_cursor#13 ] main:2::print_ln:15 [ print_line_cursor#1 print_char_cursor#13 ] ) always clobbers reg byte a Statement [20] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#13) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#13 ] ( main:2::print_ln:7 [ print_line_cursor#1 print_char_cursor#13 ] main:2::print_ln:11 [ print_line_cursor#1 print_char_cursor#13 ] main:2::print_ln:15 [ print_line_cursor#1 print_char_cursor#13 ] ) always clobbers reg byte a Statement [24] if(*((byte*) print_str::str#4)!=(byte) '@') goto print_str::@2 [ print_char_cursor#13 print_str::str#4 ] ( main:2::print_str:5 [ print_char_cursor#13 print_str::str#4 ] main:2::print_str:9 [ print_line_cursor#1 print_char_cursor#13 print_str::str#4 ] main:2::print_str:13 [ print_line_cursor#1 print_char_cursor#13 print_str::str#4 ] ) always clobbers reg byte a reg byte y Statement [26] *((byte*) print_char_cursor#13) ← *((byte*) print_str::str#4) [ print_char_cursor#13 print_str::str#4 ] ( main:2::print_str:5 [ print_char_cursor#13 print_str::str#4 ] main:2::print_str:9 [ print_line_cursor#1 print_char_cursor#13 print_str::str#4 ] main:2::print_str:13 [ print_line_cursor#1 print_char_cursor#13 print_str::str#4 ] ) always clobbers reg byte a reg byte y @@ -686,7 +686,7 @@ main: { //SEG11 [5] call print_str //SEG12 [22] phi from main to print_str [phi:main->print_str] print_str_from_main: - //SEG13 [22] phi (byte*) print_char_cursor#29 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->print_str#0] -- pbuz1=pbuc1 + //SEG13 [22] phi (byte*) print_char_cursor#29 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->print_str#0] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -705,7 +705,7 @@ main: { //SEG17 [7] call print_ln //SEG18 [17] phi from main::@1 to print_ln [phi:main::@1->print_ln] print_ln_from_b1: - //SEG19 [17] phi (byte*) print_line_cursor#16 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::@1->print_ln#0] -- pbuz1=pbuc1 + //SEG19 [17] phi (byte*) print_line_cursor#16 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::@1->print_ln#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -783,7 +783,7 @@ print_ln: { jmp b1 //SEG47 print_ln::@1 b1: - //SEG48 [19] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#8 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG48 [19] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#8 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -973,7 +973,7 @@ Score: 1033 main: { //SEG11 [5] call print_str //SEG12 [22] phi from main to print_str [phi:main->print_str] - //SEG13 [22] phi (byte*) print_char_cursor#29 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->print_str#0] -- pbuz1=pbuc1 + //SEG13 [22] phi (byte*) print_char_cursor#29 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->print_str#0] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -988,7 +988,7 @@ main: { //SEG16 main::@1 //SEG17 [7] call print_ln //SEG18 [17] phi from main::@1 to print_ln [phi:main::@1->print_ln] - //SEG19 [17] phi (byte*) print_line_cursor#16 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::@1->print_ln#0] -- pbuz1=pbuc1 + //SEG19 [17] phi (byte*) print_line_cursor#16 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::@1->print_ln#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -1047,7 +1047,7 @@ print_ln: { //SEG46 [18] phi (byte*) print_line_cursor#8 = (byte*) print_line_cursor#16 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy //SEG47 print_ln::@1 b1: - //SEG48 [19] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#8 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG48 [19] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#8 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 diff --git a/src/test/ref/ptr-complex.cfg b/src/test/ref/ptr-complex.cfg index 132c93e0f..ed99d1eec 100644 --- a/src/test/ref/ptr-complex.cfg +++ b/src/test/ref/ptr-complex.cfg @@ -8,30 +8,30 @@ @end: scope:[] from @1 [3] phi() main: scope:[main] from @1 - [4] (byte) main::a#0 ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 80) + [4] (byte) main::a#0 ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $50) to:main::@1 main::@1: scope:[main] from main main::@1 [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::i#1 ) - [6] (byte*~) main::$2 ← (const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::i#2 + [6] (byte*~) main::$2 ← (const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::i#2 [7] *((const byte*) main::screen#0 + (byte) main::i#2) ← *((byte*~) main::$2) [8] (byte) main::i#1 ← ++ (byte) main::i#2 - [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 + [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 to:main::@3 main::@3: scope:[main] from main::@1 - [10] *((const byte*) main::sc2#0) ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 121) - [11] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 82) ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 122) + [10] *((const byte*) main::sc2#0) ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $79) + [11] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $52) ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $7a) to:main::@2 main::@2: scope:[main] from main::@2 main::@3 [12] (byte) main::j#2 ← phi( main::@2/(byte) main::j#1 main::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [13] (byte*~) main::$9 ← (const byte*) main::screen#0+(byte/word/signed word/dword/signed dword) 160 + (byte) main::j#2 - [14] (byte*~) main::$11 ← (const byte*) main::screen#0+(byte/word/signed word/dword/signed dword) 200 + (byte) main::j#2 + [13] (byte*~) main::$9 ← (const byte*) main::screen#0+(byte/word/signed word/dword/signed dword) $a0 + (byte) main::j#2 + [14] (byte*~) main::$11 ← (const byte*) main::screen#0+(byte/word/signed word/dword/signed dword) $c8 + (byte) main::j#2 [15] *((byte*~) main::$9) ← *((byte*~) main::$11) [16] (byte) main::j#1 ← ++ (byte) main::j#2 - [17] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2 + [17] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@2 to:main::@4 main::@4: scope:[main] from main::@2 - [18] *(((byte*))(word/dword/signed dword) 53280) ← ++ *(((byte*))(word/dword/signed dword) 53280) - [19] *(((byte*))(word/dword/signed dword) 53248+(byte/signed byte/word/signed word/dword/signed dword) 33) ← -- *(((byte*))(word/dword/signed dword) 53248+(byte/signed byte/word/signed word/dword/signed dword) 33) + [18] *(((byte*))(word/dword/signed dword) $d020) ← ++ *(((byte*))(word/dword/signed dword) $d020) + [19] *(((byte*))(word/dword/signed dword) $d000+(byte/signed byte/word/signed word/dword/signed dword) $21) ← -- *(((byte*))(word/dword/signed dword) $d000+(byte/signed byte/word/signed word/dword/signed dword) $21) [20] *((const byte*) main::BGCOL#0) ← ++ *((const byte*) main::BGCOL#0) to:main::@return main::@return: scope:[main] from main::@4 diff --git a/src/test/ref/ptr-complex.log b/src/test/ref/ptr-complex.log index 9a62341fd..4f270173c 100644 --- a/src/test/ref/ptr-complex.log +++ b/src/test/ref/ptr-complex.log @@ -3,57 +3,57 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte*~) main::$0 ← (byte*) main::screen#0 + (byte/signed byte/word/signed word/dword/signed dword) 80 + (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte*~) main::$0 ← (byte*) main::screen#0 + (byte/signed byte/word/signed word/dword/signed dword) $50 (byte) main::a#0 ← *((byte*~) main::$0) (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main main::@1 (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) (byte*) main::screen#1 ← phi( main/(byte*) main::screen#0 main::@1/(byte*) main::screen#1 ) - (byte*~) main::$1 ← (byte*) main::screen#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) main::$1 ← (byte*) main::screen#1 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*~) main::$2 ← (byte*~) main::$1 + (byte) main::i#2 *((byte*) main::screen#1 + (byte) main::i#2) ← *((byte*~) main::$2) - (byte) main::i#1 ← (byte) main::i#2 + rangenext(0,10) - (bool~) main::$3 ← (byte) main::i#1 != rangelast(0,10) + (byte) main::i#1 ← (byte) main::i#2 + rangenext(0,$a) + (bool~) main::$3 ← (byte) main::i#1 != rangelast(0,$a) if((bool~) main::$3) goto main::@1 to:main::@3 main::@3: scope:[main] from main::@1 (byte*) main::screen#2 ← phi( main::@1/(byte*) main::screen#1 ) - (byte*~) main::$4 ← (byte*) main::screen#2 + (byte/signed byte/word/signed word/dword/signed dword) 81 + (byte*~) main::$4 ← (byte*) main::screen#2 + (byte/signed byte/word/signed word/dword/signed dword) $51 (byte*) main::sc2#0 ← (byte*~) main::$4 - (byte*~) main::$5 ← (byte*) main::screen#2 + (byte/signed byte/word/signed word/dword/signed dword) 121 + (byte*~) main::$5 ← (byte*) main::screen#2 + (byte/signed byte/word/signed word/dword/signed dword) $79 *((byte*) main::sc2#0) ← *((byte*~) main::$5) - (byte*~) main::$6 ← (byte*) main::screen#2 + (byte/signed byte/word/signed word/dword/signed dword) 82 - (byte*~) main::$7 ← (byte*) main::screen#2 + (byte/signed byte/word/signed word/dword/signed dword) 122 + (byte*~) main::$6 ← (byte*) main::screen#2 + (byte/signed byte/word/signed word/dword/signed dword) $52 + (byte*~) main::$7 ← (byte*) main::screen#2 + (byte/signed byte/word/signed word/dword/signed dword) $7a *((byte*~) main::$6) ← *((byte*~) main::$7) (byte) main::j#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@2 main::@2: scope:[main] from main::@2 main::@3 (byte) main::j#2 ← phi( main::@2/(byte) main::j#1 main::@3/(byte) main::j#0 ) (byte*) main::screen#3 ← phi( main::@2/(byte*) main::screen#3 main::@3/(byte*) main::screen#2 ) - (byte*~) main::$8 ← (byte*) main::screen#3 + (byte/word/signed word/dword/signed dword) 160 + (byte*~) main::$8 ← (byte*) main::screen#3 + (byte/word/signed word/dword/signed dword) $a0 (byte*~) main::$9 ← (byte*~) main::$8 + (byte) main::j#2 - (byte*~) main::$10 ← (byte*) main::screen#3 + (byte/word/signed word/dword/signed dword) 200 + (byte*~) main::$10 ← (byte*) main::screen#3 + (byte/word/signed word/dword/signed dword) $c8 (byte*~) main::$11 ← (byte*~) main::$10 + (byte) main::j#2 *((byte*~) main::$9) ← *((byte*~) main::$11) - (byte) main::j#1 ← (byte) main::j#2 + rangenext(0,10) - (bool~) main::$12 ← (byte) main::j#1 != rangelast(0,10) + (byte) main::j#1 ← (byte) main::j#2 + rangenext(0,$a) + (bool~) main::$12 ← (byte) main::j#1 != rangelast(0,$a) if((bool~) main::$12) goto main::@2 to:main::@4 main::@4: scope:[main] from main::@2 - (byte*~) main::$13 ← ((byte*)) (word/dword/signed dword) 53280 + (byte*~) main::$13 ← ((byte*)) (word/dword/signed dword) $d020 *((byte*~) main::$13) ← ++ *((byte*~) main::$13) - (byte*~) main::$14 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*~) main::$15 ← ((byte*)) (word/dword/signed dword) 53280 - (word/dword/signed dword~) main::$16 ← (word/dword/signed dword) 53248 + (byte/signed byte/word/signed word/dword/signed dword) 33 + (byte*~) main::$14 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*~) main::$15 ← ((byte*)) (word/dword/signed dword) $d020 + (word/dword/signed dword~) main::$16 ← (word/dword/signed dword) $d000 + (byte/signed byte/word/signed word/dword/signed dword) $21 (byte*~) main::$17 ← ((byte*)) (word/dword/signed dword~) main::$16 *((byte*~) main::$17) ← -- *((byte*~) main::$17) - (word/dword/signed dword~) main::$18 ← (word/dword/signed dword) 53248 + (byte/signed byte/word/signed word/dword/signed dword) 33 + (word/dword/signed dword~) main::$18 ← (word/dword/signed dword) $d000 + (byte/signed byte/word/signed word/dword/signed dword) $21 (byte*~) main::$19 ← ((byte*)) (word/dword/signed dword~) main::$18 - (word/dword/signed dword~) main::$20 ← (word/dword/signed dword) 53248 + (byte/signed byte/word/signed word/dword/signed dword) 33 + (word/dword/signed dword~) main::$20 ← (word/dword/signed dword) $d000 + (byte/signed byte/word/signed word/dword/signed dword) $21 (byte*~) main::$21 ← ((byte*)) (word/dword/signed dword~) main::$20 - (byte*) main::BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 + (byte*) main::BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 *((byte*) main::BGCOL#0) ← ++ *((byte*) main::BGCOL#0) to:main::@return main::@return: scope:[main] from main::@4 @@ -130,28 +130,28 @@ Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) main::screen#1 (byte*) main::screen#0 Redundant Phi (byte*) main::screen#3 (byte*) main::screen#1 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$3 [10] if((byte) main::i#1!=rangelast(0,10)) goto main::@1 -Simple Condition (bool~) main::$12 [28] if((byte) main::j#1!=rangelast(0,10)) goto main::@2 +Simple Condition (bool~) main::$3 [10] if((byte) main::i#1!=rangelast(0,$a)) goto main::@1 +Simple Condition (bool~) main::$12 [28] if((byte) main::j#1!=rangelast(0,$a)) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) main::screen#0 = ((byte*))1024 +Constant (const byte*) main::screen#0 = ((byte*))$400 Constant (const byte) main::i#0 = 0 Constant (const byte) main::j#0 = 0 -Constant (const byte*) main::$13 = ((byte*))53280 -Constant (const byte*) main::$14 = ((byte*))53280 -Constant (const byte*) main::$15 = ((byte*))53280 -Constant (const word/dword/signed dword) main::$16 = 53248+33 -Constant (const word/dword/signed dword) main::$18 = 53248+33 -Constant (const word/dword/signed dword) main::$20 = 53248+33 -Constant (const byte*) main::BGCOL#0 = ((byte*))53280 +Constant (const byte*) main::$13 = ((byte*))$d020 +Constant (const byte*) main::$14 = ((byte*))$d020 +Constant (const byte*) main::$15 = ((byte*))$d020 +Constant (const word/dword/signed dword) main::$16 = $d000+$21 +Constant (const word/dword/signed dword) main::$18 = $d000+$21 +Constant (const word/dword/signed dword) main::$20 = $d000+$21 +Constant (const byte*) main::BGCOL#0 = ((byte*))$d020 Successful SSA optimization Pass2ConstantIdentification -Constant (const byte*) main::$0 = main::screen#0+80 -Constant (const byte*) main::$1 = main::screen#0+40 -Constant (const byte*) main::sc2#0 = main::screen#0+81 -Constant (const byte*) main::$5 = main::screen#0+121 -Constant (const byte*) main::$6 = main::screen#0+82 -Constant (const byte*) main::$7 = main::screen#0+122 -Constant (const byte*) main::$8 = main::screen#0+160 -Constant (const byte*) main::$10 = main::screen#0+200 +Constant (const byte*) main::$0 = main::screen#0+$50 +Constant (const byte*) main::$1 = main::screen#0+$28 +Constant (const byte*) main::sc2#0 = main::screen#0+$51 +Constant (const byte*) main::$5 = main::screen#0+$79 +Constant (const byte*) main::$6 = main::screen#0+$52 +Constant (const byte*) main::$7 = main::screen#0+$7a +Constant (const byte*) main::$8 = main::screen#0+$a0 +Constant (const byte*) main::$10 = main::screen#0+$c8 Constant (const byte*) main::$17 = ((byte*))main::$16 Constant (const byte*) main::$19 = ((byte*))main::$18 Constant (const byte*) main::$21 = ((byte*))main::$20 @@ -159,23 +159,23 @@ Successful SSA optimization Pass2ConstantIdentification Successful SSA optimization PassNEliminateUnusedVars Successful SSA optimization PassNEliminateUnusedVars Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ -Resolved ranged comparison value if(main::i#1!=rangelast(0,10)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 11 +Resolved ranged comparison value if(main::i#1!=rangelast(0,$a)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $b Resolved ranged next value main::j#1 ← ++ main::j#2 to ++ -Resolved ranged comparison value if(main::j#1!=rangelast(0,10)) goto main::@2 to (byte/signed byte/word/signed word/dword/signed dword) 11 +Resolved ranged comparison value if(main::j#1!=rangelast(0,$a)) goto main::@2 to (byte/signed byte/word/signed word/dword/signed dword) $b Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte) main::j#0 -Constant inlined main::$16 = (word/dword/signed dword) 53248+(byte/signed byte/word/signed word/dword/signed dword) 33 -Constant inlined main::$1 = (const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$17 = ((byte*))(word/dword/signed dword) 53248+(byte/signed byte/word/signed word/dword/signed dword) 33 -Constant inlined main::$0 = (const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 80 -Constant inlined main::$5 = (const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 121 +Constant inlined main::$16 = (word/dword/signed dword) $d000+(byte/signed byte/word/signed word/dword/signed dword) $21 +Constant inlined main::$1 = (const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$17 = ((byte*))(word/dword/signed dword) $d000+(byte/signed byte/word/signed word/dword/signed dword) $21 +Constant inlined main::$0 = (const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $50 +Constant inlined main::$5 = (const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $79 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$13 = ((byte*))(word/dword/signed dword) 53280 -Constant inlined main::$6 = (const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 82 +Constant inlined main::$13 = ((byte*))(word/dword/signed dword) $d020 +Constant inlined main::$6 = (const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $52 Constant inlined main::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$7 = (const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 122 -Constant inlined main::$10 = (const byte*) main::screen#0+(byte/word/signed word/dword/signed dword) 200 -Constant inlined main::$8 = (const byte*) main::screen#0+(byte/word/signed word/dword/signed dword) 160 +Constant inlined main::$7 = (const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $7a +Constant inlined main::$10 = (const byte*) main::screen#0+(byte/word/signed word/dword/signed dword) $c8 +Constant inlined main::$8 = (const byte*) main::screen#0+(byte/word/signed word/dword/signed dword) $a0 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@5(between main::@1 and main::@1) Added new block during phi lifting main::@6(between main::@2 and main::@2) @@ -206,30 +206,30 @@ FINAL CONTROL FLOW GRAPH @end: scope:[] from @1 [3] phi() main: scope:[main] from @1 - [4] (byte) main::a#0 ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 80) + [4] (byte) main::a#0 ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $50) to:main::@1 main::@1: scope:[main] from main main::@1 [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::i#1 ) - [6] (byte*~) main::$2 ← (const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::i#2 + [6] (byte*~) main::$2 ← (const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::i#2 [7] *((const byte*) main::screen#0 + (byte) main::i#2) ← *((byte*~) main::$2) [8] (byte) main::i#1 ← ++ (byte) main::i#2 - [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 + [9] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 to:main::@3 main::@3: scope:[main] from main::@1 - [10] *((const byte*) main::sc2#0) ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 121) - [11] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 82) ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 122) + [10] *((const byte*) main::sc2#0) ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $79) + [11] *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $52) ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $7a) to:main::@2 main::@2: scope:[main] from main::@2 main::@3 [12] (byte) main::j#2 ← phi( main::@2/(byte) main::j#1 main::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [13] (byte*~) main::$9 ← (const byte*) main::screen#0+(byte/word/signed word/dword/signed dword) 160 + (byte) main::j#2 - [14] (byte*~) main::$11 ← (const byte*) main::screen#0+(byte/word/signed word/dword/signed dword) 200 + (byte) main::j#2 + [13] (byte*~) main::$9 ← (const byte*) main::screen#0+(byte/word/signed word/dword/signed dword) $a0 + (byte) main::j#2 + [14] (byte*~) main::$11 ← (const byte*) main::screen#0+(byte/word/signed word/dword/signed dword) $c8 + (byte) main::j#2 [15] *((byte*~) main::$9) ← *((byte*~) main::$11) [16] (byte) main::j#1 ← ++ (byte) main::j#2 - [17] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2 + [17] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@2 to:main::@4 main::@4: scope:[main] from main::@2 - [18] *(((byte*))(word/dword/signed dword) 53280) ← ++ *(((byte*))(word/dword/signed dword) 53280) - [19] *(((byte*))(word/dword/signed dword) 53248+(byte/signed byte/word/signed word/dword/signed dword) 33) ← -- *(((byte*))(word/dword/signed dword) 53248+(byte/signed byte/word/signed word/dword/signed dword) 33) + [18] *(((byte*))(word/dword/signed dword) $d020) ← ++ *(((byte*))(word/dword/signed dword) $d020) + [19] *(((byte*))(word/dword/signed dword) $d000+(byte/signed byte/word/signed word/dword/signed dword) $21) ← -- *(((byte*))(word/dword/signed dword) $d000+(byte/signed byte/word/signed word/dword/signed dword) $21) [20] *((const byte*) main::BGCOL#0) ← ++ *((const byte*) main::BGCOL#0) to:main::@return main::@return: scope:[main] from main::@4 @@ -310,7 +310,7 @@ main: { .label a = 4 .label i = 2 .label j = 3 - //SEG10 [4] (byte) main::a#0 ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 80) -- vbuz1=_deref_pbuc1 + //SEG10 [4] (byte) main::a#0 ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $50) -- vbuz1=_deref_pbuc1 lda screen+$50 sta a //SEG11 [5] phi from main to main::@1 [phi:main->main::@1] @@ -326,7 +326,7 @@ main: { jmp b1 //SEG15 main::@1 b1: - //SEG16 [6] (byte*~) main::$2 ← (const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::i#2 -- pbuz1=pbuc1_plus_vbuz2 + //SEG16 [6] (byte*~) main::$2 ← (const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::i#2 -- pbuz1=pbuc1_plus_vbuz2 lda i clc adc #screen+$a0 adc #0 sta _9+1 - //SEG29 [14] (byte*~) main::$11 ← (const byte*) main::screen#0+(byte/word/signed word/dword/signed dword) 200 + (byte) main::j#2 -- pbuz1=pbuc1_plus_vbuz2 + //SEG29 [14] (byte*~) main::$11 ← (const byte*) main::screen#0+(byte/word/signed word/dword/signed dword) $c8 + (byte) main::j#2 -- pbuz1=pbuc1_plus_vbuz2 lda j clc adc #main::@1] b1_from_main: @@ -493,7 +493,7 @@ main: { jmp b1 //SEG15 main::@1 b1: - //SEG16 [6] (byte*~) main::$2 ← (const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::i#2 -- pbuz1=pbuc1_plus_vbuxx + //SEG16 [6] (byte*~) main::$2 ← (const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::i#2 -- pbuz1=pbuc1_plus_vbuxx txa clc adc #screen+$a0 adc #0 sta _9+1 - //SEG29 [14] (byte*~) main::$11 ← (const byte*) main::screen#0+(byte/word/signed word/dword/signed dword) 200 + (byte) main::j#2 -- pbuz1=pbuc1_plus_vbuxx + //SEG29 [14] (byte*~) main::$11 ← (const byte*) main::screen#0+(byte/word/signed word/dword/signed dword) $c8 + (byte) main::j#2 -- pbuz1=pbuc1_plus_vbuxx txa clc adc #main::@1] //SEG12 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuxx=vbuc1 @@ -680,7 +680,7 @@ main: { //SEG14 [5] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@1->main::@1#0] -- register_copy //SEG15 main::@1 b1: - //SEG16 [6] (byte*~) main::$2 ← (const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::i#2 -- pbuz1=pbuc1_plus_vbuxx + //SEG16 [6] (byte*~) main::$2 ← (const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::i#2 -- pbuz1=pbuc1_plus_vbuxx txa clc adc #main::@2#0] -- register_copy //SEG27 main::@2 b2: - //SEG28 [13] (byte*~) main::$9 ← (const byte*) main::screen#0+(byte/word/signed word/dword/signed dword) 160 + (byte) main::j#2 -- pbuz1=pbuc1_plus_vbuxx + //SEG28 [13] (byte*~) main::$9 ← (const byte*) main::screen#0+(byte/word/signed word/dword/signed dword) $a0 + (byte) main::j#2 -- pbuz1=pbuc1_plus_vbuxx txa clc adc #screen+$a0 adc #0 sta _9+1 - //SEG29 [14] (byte*~) main::$11 ← (const byte*) main::screen#0+(byte/word/signed word/dword/signed dword) 200 + (byte) main::j#2 -- pbuz1=pbuc1_plus_vbuxx + //SEG29 [14] (byte*~) main::$11 ← (const byte*) main::screen#0+(byte/word/signed word/dword/signed dword) $c8 + (byte) main::j#2 -- pbuz1=pbuc1_plus_vbuxx txa clc adc #lvaluevar::@1] b1_from_lvaluevar: - //SEG27 [14] phi (byte*) lvaluevar::screen#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:lvaluevar->lvaluevar::@1#0] -- pbuz1=pbuc1 + //SEG27 [14] phi (byte*) lvaluevar::screen#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:lvaluevar->lvaluevar::@1#0] -- pbuz1=pbuc1 lda #<$400 sta screen lda #>$400 @@ -502,7 +502,7 @@ lvaluevar: { jmp b1 //SEG29 lvaluevar::@1 b1: - //SEG30 [15] if((byte) lvaluevar::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto lvaluevar::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG30 [15] if((byte) lvaluevar::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto lvaluevar::@2 -- vbuz1_lt_vbuc1_then_la1 lda i cmp #$a bcc b2 @@ -537,7 +537,7 @@ rvaluevar: { .label i = 5 //SEG41 [21] phi from rvaluevar to rvaluevar::@1 [phi:rvaluevar->rvaluevar::@1] b1_from_rvaluevar: - //SEG42 [21] phi (byte*) rvaluevar::screen#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:rvaluevar->rvaluevar::@1#0] -- pbuz1=pbuc1 + //SEG42 [21] phi (byte*) rvaluevar::screen#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:rvaluevar->rvaluevar::@1#0] -- pbuz1=pbuc1 lda #<$400 sta screen lda #>$400 @@ -548,7 +548,7 @@ rvaluevar: { jmp b1 //SEG44 rvaluevar::@1 b1: - //SEG45 [22] if((byte) rvaluevar::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto rvaluevar::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG45 [22] if((byte) rvaluevar::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto rvaluevar::@2 -- vbuz1_lt_vbuc1_then_la1 lda i cmp #$a bcc b2 @@ -584,11 +584,11 @@ rvalue: { .label b_1 = $c .label b_2 = $d .label i = 8 - //SEG56 [27] (byte) rvalue::b#0 ← *((const byte[1024]) rvalue::SCREEN#0) -- vbuz1=_deref_pbuc1 + //SEG56 [27] (byte) rvalue::b#0 ← *((const byte[$400]) rvalue::SCREEN#0) -- vbuz1=_deref_pbuc1 // RValue constant pointer lda SCREEN sta b - //SEG57 [28] (byte) rvalue::b#1 ← *((const byte[1024]) rvalue::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) -- vbuz1=_deref_pbuc1 + //SEG57 [28] (byte) rvalue::b#1 ← *((const byte[$400]) rvalue::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) -- vbuz1=_deref_pbuc1 // RValue constant array pointer constant index lda SCREEN+1 sta b_1 @@ -600,7 +600,7 @@ rvalue: { jmp b1 //SEG60 rvalue::@1 b1: - //SEG61 [30] if((byte) rvalue::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto rvalue::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG61 [30] if((byte) rvalue::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto rvalue::@2 -- vbuz1_lt_vbuc1_then_la1 lda i cmp #$a bcc b2 @@ -611,7 +611,7 @@ rvalue: { rts //SEG64 rvalue::@2 b2: - //SEG65 [32] (byte) rvalue::b#2 ← *((const byte[1024]) rvalue::SCREEN#0 + (byte) rvalue::i#2) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG65 [32] (byte) rvalue::b#2 ← *((const byte[$400]) rvalue::SCREEN#0 + (byte) rvalue::i#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy i lda SCREEN,y sta b_2 @@ -627,11 +627,11 @@ lvalue: { // A constant pointer .label SCREEN = $400 .label i = 9 - //SEG70 [34] *((const byte[1024]) lvalue::SCREEN#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG70 [34] *((const byte[$400]) lvalue::SCREEN#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 // LValue constant pointer dereference lda #1 sta SCREEN - //SEG71 [35] *((const byte[1024]) lvalue::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG71 [35] *((const byte[$400]) lvalue::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 // LValue constant array constant indexing lda #2 sta SCREEN+1 @@ -643,7 +643,7 @@ lvalue: { jmp b1 //SEG74 lvalue::@1 b1: - //SEG75 [37] if((byte) lvalue::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto lvalue::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG75 [37] if((byte) lvalue::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto lvalue::@2 -- vbuz1_lt_vbuc1_then_la1 lda i cmp #$a bcc b2 @@ -654,7 +654,7 @@ lvalue: { rts //SEG78 lvalue::@2 b2: - //SEG79 [39] *((const byte[1024]) lvalue::SCREEN#0 + (byte) lvalue::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG79 [39] *((const byte[$400]) lvalue::SCREEN#0 + (byte) lvalue::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- pbuc1_derefidx_vbuz1=vbuc2 ldy i lda #3 sta SCREEN,y @@ -673,15 +673,15 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ lv Statement [24] (byte) rvaluevar::b#1 ← *((byte*) rvaluevar::screen#2) [ rvaluevar::i#2 rvaluevar::screen#2 ] ( main:2::rvaluevar:9 [ rvaluevar::i#2 rvaluevar::screen#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ rvaluevar::i#2 rvaluevar::i#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:5 [ rvaluevar::i#2 rvaluevar::i#1 ] -Statement [34] *((const byte[1024]) lvalue::SCREEN#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2::lvalue:5 [ ] ) always clobbers reg byte a -Statement [35] *((const byte[1024]) lvalue::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2::lvalue:5 [ ] ) always clobbers reg byte a -Statement [39] *((const byte[1024]) lvalue::SCREEN#0 + (byte) lvalue::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ lvalue::i#2 ] ( main:2::lvalue:5 [ lvalue::i#2 ] ) always clobbers reg byte a +Statement [34] *((const byte[$400]) lvalue::SCREEN#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2::lvalue:5 [ ] ) always clobbers reg byte a +Statement [35] *((const byte[$400]) lvalue::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2::lvalue:5 [ ] ) always clobbers reg byte a +Statement [39] *((const byte[$400]) lvalue::SCREEN#0 + (byte) lvalue::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ lvalue::i#2 ] ( main:2::lvalue:5 [ lvalue::i#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:9 [ lvalue::i#2 lvalue::i#1 ] Statement [17] *((byte*) lvaluevar::screen#2) ← (const byte) lvaluevar::b#0 [ lvaluevar::i#2 lvaluevar::screen#2 ] ( main:2::lvaluevar:11 [ lvaluevar::i#2 lvaluevar::screen#2 ] ) always clobbers reg byte a reg byte y Statement [24] (byte) rvaluevar::b#1 ← *((byte*) rvaluevar::screen#2) [ rvaluevar::i#2 rvaluevar::screen#2 ] ( main:2::rvaluevar:9 [ rvaluevar::i#2 rvaluevar::screen#2 ] ) always clobbers reg byte a reg byte y -Statement [34] *((const byte[1024]) lvalue::SCREEN#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2::lvalue:5 [ ] ) always clobbers reg byte a -Statement [35] *((const byte[1024]) lvalue::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2::lvalue:5 [ ] ) always clobbers reg byte a -Statement [39] *((const byte[1024]) lvalue::SCREEN#0 + (byte) lvalue::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ lvalue::i#2 ] ( main:2::lvalue:5 [ lvalue::i#2 ] ) always clobbers reg byte a +Statement [34] *((const byte[$400]) lvalue::SCREEN#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2::lvalue:5 [ ] ) always clobbers reg byte a +Statement [35] *((const byte[$400]) lvalue::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2::lvalue:5 [ ] ) always clobbers reg byte a +Statement [39] *((const byte[$400]) lvalue::SCREEN#0 + (byte) lvalue::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ lvalue::i#2 ] ( main:2::lvalue:5 [ lvalue::i#2 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ lvaluevar::i#2 lvaluevar::i#1 ] : zp ZP_BYTE:2 , reg byte x , Potential registers zp ZP_WORD:3 [ lvaluevar::screen#2 lvaluevar::screen#1 ] : zp ZP_WORD:3 , Potential registers zp ZP_BYTE:5 [ rvaluevar::i#2 rvaluevar::i#1 ] : zp ZP_BYTE:5 , reg byte x , @@ -777,7 +777,7 @@ lvaluevar: { .label screen = 2 //SEG26 [14] phi from lvaluevar to lvaluevar::@1 [phi:lvaluevar->lvaluevar::@1] b1_from_lvaluevar: - //SEG27 [14] phi (byte*) lvaluevar::screen#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:lvaluevar->lvaluevar::@1#0] -- pbuz1=pbuc1 + //SEG27 [14] phi (byte*) lvaluevar::screen#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:lvaluevar->lvaluevar::@1#0] -- pbuz1=pbuc1 lda #<$400 sta screen lda #>$400 @@ -787,7 +787,7 @@ lvaluevar: { jmp b1 //SEG29 lvaluevar::@1 b1: - //SEG30 [15] if((byte) lvaluevar::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto lvaluevar::@2 -- vbuxx_lt_vbuc1_then_la1 + //SEG30 [15] if((byte) lvaluevar::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto lvaluevar::@2 -- vbuxx_lt_vbuc1_then_la1 cpx #$a bcc b2 jmp breturn @@ -819,7 +819,7 @@ rvaluevar: { .label screen = 2 //SEG41 [21] phi from rvaluevar to rvaluevar::@1 [phi:rvaluevar->rvaluevar::@1] b1_from_rvaluevar: - //SEG42 [21] phi (byte*) rvaluevar::screen#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:rvaluevar->rvaluevar::@1#0] -- pbuz1=pbuc1 + //SEG42 [21] phi (byte*) rvaluevar::screen#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:rvaluevar->rvaluevar::@1#0] -- pbuz1=pbuc1 lda #<$400 sta screen lda #>$400 @@ -829,7 +829,7 @@ rvaluevar: { jmp b1 //SEG44 rvaluevar::@1 b1: - //SEG45 [22] if((byte) rvaluevar::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto rvaluevar::@2 -- vbuxx_lt_vbuc1_then_la1 + //SEG45 [22] if((byte) rvaluevar::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto rvaluevar::@2 -- vbuxx_lt_vbuc1_then_la1 cpx #$a bcc b2 jmp breturn @@ -859,10 +859,10 @@ rvaluevar: { rvalue: { // A constant pointer .label SCREEN = $400 - //SEG56 [27] (byte) rvalue::b#0 ← *((const byte[1024]) rvalue::SCREEN#0) -- vbuaa=_deref_pbuc1 + //SEG56 [27] (byte) rvalue::b#0 ← *((const byte[$400]) rvalue::SCREEN#0) -- vbuaa=_deref_pbuc1 // RValue constant pointer lda SCREEN - //SEG57 [28] (byte) rvalue::b#1 ← *((const byte[1024]) rvalue::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) -- vbuaa=_deref_pbuc1 + //SEG57 [28] (byte) rvalue::b#1 ← *((const byte[$400]) rvalue::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) -- vbuaa=_deref_pbuc1 // RValue constant array pointer constant index lda SCREEN+1 //SEG58 [29] phi from rvalue to rvalue::@1 [phi:rvalue->rvalue::@1] @@ -872,7 +872,7 @@ rvalue: { jmp b1 //SEG60 rvalue::@1 b1: - //SEG61 [30] if((byte) rvalue::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto rvalue::@2 -- vbuxx_lt_vbuc1_then_la1 + //SEG61 [30] if((byte) rvalue::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto rvalue::@2 -- vbuxx_lt_vbuc1_then_la1 cpx #$a bcc b2 jmp breturn @@ -882,7 +882,7 @@ rvalue: { rts //SEG64 rvalue::@2 b2: - //SEG65 [32] (byte) rvalue::b#2 ← *((const byte[1024]) rvalue::SCREEN#0 + (byte) rvalue::i#2) -- vbuaa=pbuc1_derefidx_vbuxx + //SEG65 [32] (byte) rvalue::b#2 ← *((const byte[$400]) rvalue::SCREEN#0 + (byte) rvalue::i#2) -- vbuaa=pbuc1_derefidx_vbuxx lda SCREEN,x //SEG66 [33] (byte) rvalue::i#1 ← ++ (byte) rvalue::i#2 -- vbuxx=_inc_vbuxx inx @@ -895,11 +895,11 @@ rvalue: { lvalue: { // A constant pointer .label SCREEN = $400 - //SEG70 [34] *((const byte[1024]) lvalue::SCREEN#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG70 [34] *((const byte[$400]) lvalue::SCREEN#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 // LValue constant pointer dereference lda #1 sta SCREEN - //SEG71 [35] *((const byte[1024]) lvalue::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG71 [35] *((const byte[$400]) lvalue::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 // LValue constant array constant indexing lda #2 sta SCREEN+1 @@ -910,7 +910,7 @@ lvalue: { jmp b1 //SEG74 lvalue::@1 b1: - //SEG75 [37] if((byte) lvalue::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto lvalue::@2 -- vbuxx_lt_vbuc1_then_la1 + //SEG75 [37] if((byte) lvalue::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto lvalue::@2 -- vbuxx_lt_vbuc1_then_la1 cpx #$a bcc b2 jmp breturn @@ -920,7 +920,7 @@ lvalue: { rts //SEG78 lvalue::@2 b2: - //SEG79 [39] *((const byte[1024]) lvalue::SCREEN#0 + (byte) lvalue::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG79 [39] *((const byte[$400]) lvalue::SCREEN#0 + (byte) lvalue::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- pbuc1_derefidx_vbuxx=vbuc2 lda #3 sta SCREEN,x //SEG80 [40] (byte) lvalue::i#1 ← ++ (byte) lvalue::i#2 -- vbuxx=_inc_vbuxx @@ -990,8 +990,8 @@ FINAL SYMBOL TABLE (label) lvalue::@1 (label) lvalue::@2 (label) lvalue::@return -(byte[1024]) lvalue::SCREEN -(const byte[1024]) lvalue::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(byte[$400]) lvalue::SCREEN +(const byte[$400]) lvalue::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) lvalue::i (byte) lvalue::i#1 reg byte x 22.0 (byte) lvalue::i#2 reg byte x 14.666666666666666 @@ -1016,8 +1016,8 @@ FINAL SYMBOL TABLE (label) rvalue::@1 (label) rvalue::@2 (label) rvalue::@return -(byte[1024]) rvalue::SCREEN -(const byte[1024]) rvalue::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(byte[$400]) rvalue::SCREEN +(const byte[$400]) rvalue::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) rvalue::b (byte) rvalue::b#0 reg byte a 20.0 (byte) rvalue::b#1 reg byte a 20.0 @@ -1094,7 +1094,7 @@ lvaluevar: { .const b = 4 .label screen = 2 //SEG26 [14] phi from lvaluevar to lvaluevar::@1 [phi:lvaluevar->lvaluevar::@1] - //SEG27 [14] phi (byte*) lvaluevar::screen#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:lvaluevar->lvaluevar::@1#0] -- pbuz1=pbuc1 + //SEG27 [14] phi (byte*) lvaluevar::screen#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:lvaluevar->lvaluevar::@1#0] -- pbuz1=pbuc1 lda #<$400 sta screen lda #>$400 @@ -1103,7 +1103,7 @@ lvaluevar: { ldx #2 //SEG29 lvaluevar::@1 b1: - //SEG30 [15] if((byte) lvaluevar::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto lvaluevar::@2 -- vbuxx_lt_vbuc1_then_la1 + //SEG30 [15] if((byte) lvaluevar::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto lvaluevar::@2 -- vbuxx_lt_vbuc1_then_la1 cpx #$a bcc b2 //SEG31 lvaluevar::@return @@ -1131,7 +1131,7 @@ lvaluevar: { rvaluevar: { .label screen = 2 //SEG41 [21] phi from rvaluevar to rvaluevar::@1 [phi:rvaluevar->rvaluevar::@1] - //SEG42 [21] phi (byte*) rvaluevar::screen#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:rvaluevar->rvaluevar::@1#0] -- pbuz1=pbuc1 + //SEG42 [21] phi (byte*) rvaluevar::screen#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:rvaluevar->rvaluevar::@1#0] -- pbuz1=pbuc1 lda #<$400 sta screen lda #>$400 @@ -1140,7 +1140,7 @@ rvaluevar: { ldx #2 //SEG44 rvaluevar::@1 b1: - //SEG45 [22] if((byte) rvaluevar::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto rvaluevar::@2 -- vbuxx_lt_vbuc1_then_la1 + //SEG45 [22] if((byte) rvaluevar::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto rvaluevar::@2 -- vbuxx_lt_vbuc1_then_la1 cpx #$a bcc b2 //SEG46 rvaluevar::@return @@ -1167,10 +1167,10 @@ rvaluevar: { rvalue: { // A constant pointer .label SCREEN = $400 - //SEG56 [27] (byte) rvalue::b#0 ← *((const byte[1024]) rvalue::SCREEN#0) -- vbuaa=_deref_pbuc1 + //SEG56 [27] (byte) rvalue::b#0 ← *((const byte[$400]) rvalue::SCREEN#0) -- vbuaa=_deref_pbuc1 // RValue constant pointer lda SCREEN - //SEG57 [28] (byte) rvalue::b#1 ← *((const byte[1024]) rvalue::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) -- vbuaa=_deref_pbuc1 + //SEG57 [28] (byte) rvalue::b#1 ← *((const byte[$400]) rvalue::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) -- vbuaa=_deref_pbuc1 // RValue constant array pointer constant index lda SCREEN+1 //SEG58 [29] phi from rvalue to rvalue::@1 [phi:rvalue->rvalue::@1] @@ -1178,7 +1178,7 @@ rvalue: { ldx #2 //SEG60 rvalue::@1 b1: - //SEG61 [30] if((byte) rvalue::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto rvalue::@2 -- vbuxx_lt_vbuc1_then_la1 + //SEG61 [30] if((byte) rvalue::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto rvalue::@2 -- vbuxx_lt_vbuc1_then_la1 cpx #$a bcc b2 //SEG62 rvalue::@return @@ -1186,7 +1186,7 @@ rvalue: { rts //SEG64 rvalue::@2 b2: - //SEG65 [32] (byte) rvalue::b#2 ← *((const byte[1024]) rvalue::SCREEN#0 + (byte) rvalue::i#2) -- vbuaa=pbuc1_derefidx_vbuxx + //SEG65 [32] (byte) rvalue::b#2 ← *((const byte[$400]) rvalue::SCREEN#0 + (byte) rvalue::i#2) -- vbuaa=pbuc1_derefidx_vbuxx lda SCREEN,x //SEG66 [33] (byte) rvalue::i#1 ← ++ (byte) rvalue::i#2 -- vbuxx=_inc_vbuxx inx @@ -1198,11 +1198,11 @@ rvalue: { lvalue: { // A constant pointer .label SCREEN = $400 - //SEG70 [34] *((const byte[1024]) lvalue::SCREEN#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG70 [34] *((const byte[$400]) lvalue::SCREEN#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 // LValue constant pointer dereference lda #1 sta SCREEN - //SEG71 [35] *((const byte[1024]) lvalue::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG71 [35] *((const byte[$400]) lvalue::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 // LValue constant array constant indexing lda #2 sta SCREEN+1 @@ -1211,7 +1211,7 @@ lvalue: { tax //SEG74 lvalue::@1 b1: - //SEG75 [37] if((byte) lvalue::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto lvalue::@2 -- vbuxx_lt_vbuc1_then_la1 + //SEG75 [37] if((byte) lvalue::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto lvalue::@2 -- vbuxx_lt_vbuc1_then_la1 cpx #$a bcc b2 //SEG76 lvalue::@return @@ -1219,7 +1219,7 @@ lvalue: { rts //SEG78 lvalue::@2 b2: - //SEG79 [39] *((const byte[1024]) lvalue::SCREEN#0 + (byte) lvalue::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG79 [39] *((const byte[$400]) lvalue::SCREEN#0 + (byte) lvalue::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- pbuc1_derefidx_vbuxx=vbuc2 lda #3 sta SCREEN,x //SEG80 [40] (byte) lvalue::i#1 ← ++ (byte) lvalue::i#2 -- vbuxx=_inc_vbuxx diff --git a/src/test/ref/ptrtest.sym b/src/test/ref/ptrtest.sym index 41e81e6a9..277f0b64f 100644 --- a/src/test/ref/ptrtest.sym +++ b/src/test/ref/ptrtest.sym @@ -5,8 +5,8 @@ (label) lvalue::@1 (label) lvalue::@2 (label) lvalue::@return -(byte[1024]) lvalue::SCREEN -(const byte[1024]) lvalue::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(byte[$400]) lvalue::SCREEN +(const byte[$400]) lvalue::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) lvalue::i (byte) lvalue::i#1 reg byte x 22.0 (byte) lvalue::i#2 reg byte x 14.666666666666666 @@ -31,8 +31,8 @@ (label) rvalue::@1 (label) rvalue::@2 (label) rvalue::@return -(byte[1024]) rvalue::SCREEN -(const byte[1024]) rvalue::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(byte[$400]) rvalue::SCREEN +(const byte[$400]) rvalue::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) rvalue::b (byte) rvalue::b#0 reg byte a 20.0 (byte) rvalue::b#1 reg byte a 20.0 diff --git a/src/test/ref/ptrtestmin.cfg b/src/test/ref/ptrtestmin.cfg index 3da959d8b..f86cabe58 100644 --- a/src/test/ref/ptrtestmin.cfg +++ b/src/test/ref/ptrtestmin.cfg @@ -12,12 +12,12 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@2 [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 2 main::@2/(byte) main::i#1 ) - [6] if((byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@2 + [6] if((byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@2 to:main::@return main::@return: scope:[main] from main::@1 [7] return to:@return main::@2: scope:[main] from main::@1 - [8] (byte) main::b#1 ← *((const byte[1024]) main::SCREEN#0 + (byte) main::i#2) + [8] (byte) main::b#1 ← *((const byte[$400]) main::SCREEN#0 + (byte) main::i#2) [9] (byte) main::i#1 ← ++ (byte) main::i#2 to:main::@1 diff --git a/src/test/ref/ptrtestmin.log b/src/test/ref/ptrtestmin.log index 48c80b227..fe475de3f 100644 --- a/src/test/ref/ptrtestmin.log +++ b/src/test/ref/ptrtestmin.log @@ -3,18 +3,18 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte[1024]) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte[$400]) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) main::b#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:main::@1 main::@1: scope:[main] from main main::@2 (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@2/(byte) main::i#1 ) - (bool~) main::$0 ← (byte) main::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 10 + (bool~) main::$0 ← (byte) main::i#2 < (byte/signed byte/word/signed word/dword/signed dword) $a if((bool~) main::$0) goto main::@2 to:main::@return main::@2: scope:[main] from main::@1 (byte) main::i#3 ← phi( main::@1/(byte) main::i#2 ) - (byte) main::b#1 ← *((byte[1024]) main::SCREEN#0 + (byte) main::i#3) + (byte) main::b#1 ← *((byte[$400]) main::SCREEN#0 + (byte) main::i#3) (byte) main::i#1 ← ++ (byte) main::i#3 to:main::@1 main::@return: scope:[main] from main::@1 @@ -37,8 +37,8 @@ SYMBOL TABLE SSA (label) main::@1 (label) main::@2 (label) main::@return -(byte[1024]) main::SCREEN -(byte[1024]) main::SCREEN#0 +(byte[$400]) main::SCREEN +(byte[$400]) main::SCREEN#0 (byte) main::b (byte) main::b#0 (byte) main::b#1 @@ -52,9 +52,9 @@ Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) main::i#2 = (byte) main::i#3 Successful SSA optimization Pass2AliasElimination -Simple Condition (bool~) main::$0 [5] if((byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@2 +Simple Condition (bool~) main::$0 [5] if((byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte[1024]) main::SCREEN#0 = ((byte*))1024 +Constant (const byte[$400]) main::SCREEN#0 = ((byte*))$400 Constant (const byte) main::b#0 = 0 Constant (const byte) main::i#0 = 2 Successful SSA optimization Pass2ConstantIdentification @@ -92,20 +92,20 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@2 [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 2 main::@2/(byte) main::i#1 ) - [6] if((byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@2 + [6] if((byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@2 to:main::@return main::@return: scope:[main] from main::@1 [7] return to:@return main::@2: scope:[main] from main::@1 - [8] (byte) main::b#1 ← *((const byte[1024]) main::SCREEN#0 + (byte) main::i#2) + [8] (byte) main::b#1 ← *((const byte[$400]) main::SCREEN#0 + (byte) main::i#2) [9] (byte) main::i#1 ← ++ (byte) main::i#2 to:main::@1 VARIABLE REGISTER WEIGHTS (void()) main() -(byte[1024]) main::SCREEN +(byte[$400]) main::SCREEN (byte) main::b (byte) main::b#1 110.0 (byte) main::i @@ -159,7 +159,7 @@ main: { jmp b1 //SEG13 main::@1 b1: - //SEG14 [6] if((byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG14 [6] if((byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@2 -- vbuz1_lt_vbuc1_then_la1 lda i cmp #$a bcc b2 @@ -170,7 +170,7 @@ main: { rts //SEG17 main::@2 b2: - //SEG18 [8] (byte) main::b#1 ← *((const byte[1024]) main::SCREEN#0 + (byte) main::i#2) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG18 [8] (byte) main::b#1 ← *((const byte[$400]) main::SCREEN#0 + (byte) main::i#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy i lda SCREEN,y sta b @@ -228,7 +228,7 @@ main: { jmp b1 //SEG13 main::@1 b1: - //SEG14 [6] if((byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@2 -- vbuxx_lt_vbuc1_then_la1 + //SEG14 [6] if((byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@2 -- vbuxx_lt_vbuc1_then_la1 cpx #$a bcc b2 jmp breturn @@ -238,7 +238,7 @@ main: { rts //SEG17 main::@2 b2: - //SEG18 [8] (byte) main::b#1 ← *((const byte[1024]) main::SCREEN#0 + (byte) main::i#2) -- vbuaa=pbuc1_derefidx_vbuxx + //SEG18 [8] (byte) main::b#1 ← *((const byte[$400]) main::SCREEN#0 + (byte) main::i#2) -- vbuaa=pbuc1_derefidx_vbuxx lda SCREEN,x //SEG19 [9] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx @@ -278,8 +278,8 @@ FINAL SYMBOL TABLE (label) main::@1 (label) main::@2 (label) main::@return -(byte[1024]) main::SCREEN -(const byte[1024]) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(byte[$400]) main::SCREEN +(const byte[$400]) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::b (byte) main::b#1 reg byte a 110.0 (byte) main::i @@ -316,7 +316,7 @@ main: { ldx #2 //SEG13 main::@1 b1: - //SEG14 [6] if((byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@2 -- vbuxx_lt_vbuc1_then_la1 + //SEG14 [6] if((byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@2 -- vbuxx_lt_vbuc1_then_la1 cpx #$a bcc b2 //SEG15 main::@return @@ -324,7 +324,7 @@ main: { rts //SEG17 main::@2 b2: - //SEG18 [8] (byte) main::b#1 ← *((const byte[1024]) main::SCREEN#0 + (byte) main::i#2) -- vbuaa=pbuc1_derefidx_vbuxx + //SEG18 [8] (byte) main::b#1 ← *((const byte[$400]) main::SCREEN#0 + (byte) main::i#2) -- vbuaa=pbuc1_derefidx_vbuxx lda SCREEN,x //SEG19 [9] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx diff --git a/src/test/ref/ptrtestmin.sym b/src/test/ref/ptrtestmin.sym index 14914db88..05c70af03 100644 --- a/src/test/ref/ptrtestmin.sym +++ b/src/test/ref/ptrtestmin.sym @@ -5,8 +5,8 @@ (label) main::@1 (label) main::@2 (label) main::@return -(byte[1024]) main::SCREEN -(const byte[1024]) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(byte[$400]) main::SCREEN +(const byte[$400]) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::b (byte) main::b#1 reg byte a 110.0 (byte) main::i diff --git a/src/test/ref/roll-sprite-msb.cfg b/src/test/ref/roll-sprite-msb.cfg index 7e0b2ee39..74dbccd69 100644 --- a/src/test/ref/roll-sprite-msb.cfg +++ b/src/test/ref/roll-sprite-msb.cfg @@ -11,14 +11,14 @@ main: scope:[main] from @6 [4] phi() to:main::@1 main::@1: scope:[main] from main main::@3 - [5] (word) main::xpos#2 ← phi( main/(byte/word/signed word/dword/signed dword) 200 main::@3/(word) main::xpos#1 ) + [5] (word) main::xpos#2 ← phi( main/(byte/word/signed word/dword/signed dword) $c8 main::@3/(word) main::xpos#1 ) [5] (byte) main::s#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@3/(byte) main::s#1 ) [6] (byte) position_sprite::spriteno#0 ← (byte) main::s#2 [7] (word) position_sprite::x#0 ← (word) main::xpos#2 [8] call position_sprite to:main::@3 main::@3: scope:[main] from main::@1 - [9] (word) main::xpos#1 ← (word) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 10 + [9] (word) main::xpos#1 ← (word) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $a [10] (byte) main::s#1 ← ++ (byte) main::s#2 [11] if((byte) main::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@1 to:main::@return @@ -31,11 +31,11 @@ position_sprite: scope:[position_sprite] from main::@1 [15] (byte~) position_sprite::$1 ← (byte) position_sprite::spriteno#0 << (byte/signed byte/word/signed word/dword/signed dword) 1 [16] (byte~) position_sprite::$2 ← < (word) position_sprite::x#0 [17] *((const byte*) SPRITES_XPOS#0 + (byte~) position_sprite::$1) ← (byte~) position_sprite::$2 - [18] if((word) position_sprite::x#0>(byte/word/signed word/dword/signed dword) 255) goto position_sprite::@1 + [18] if((word) position_sprite::x#0>(byte/word/signed word/dword/signed dword) $ff) goto position_sprite::@1 to:position_sprite::@3 position_sprite::@3: scope:[position_sprite] from position_sprite [19] (byte/signed byte/word/signed word/dword/signed dword~) position_sprite::$4 ← (byte/signed byte/word/signed word/dword/signed dword) 1 << (byte) position_sprite::spriteno#0 - [20] (byte/word/dword~) position_sprite::$5 ← (byte/signed byte/word/signed word/dword/signed dword~) position_sprite::$4 ^ (byte/word/signed word/dword/signed dword) 255 + [20] (byte/word/dword~) position_sprite::$5 ← (byte/signed byte/word/signed word/dword/signed dword~) position_sprite::$4 ^ (byte/word/signed word/dword/signed dword) $ff [21] *((const byte*) SPRITES_XMSB#0) ← *((const byte*) SPRITES_XMSB#0) & (byte/word/dword~) position_sprite::$5 to:position_sprite::@return position_sprite::@return: scope:[position_sprite] from position_sprite::@1 position_sprite::@3 diff --git a/src/test/ref/roll-sprite-msb.log b/src/test/ref/roll-sprite-msb.log index ab39c29f6..e90ae5d0c 100644 --- a/src/test/ref/roll-sprite-msb.log +++ b/src/test/ref/roll-sprite-msb.log @@ -5,66 +5,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -75,15 +75,15 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@6 main: scope:[main] from @6 - (word) main::xpos#0 ← (byte/word/signed word/dword/signed dword) 200 + (word) main::xpos#0 ← (byte/word/signed word/dword/signed dword) $c8 (byte) main::s#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main main::@3 @@ -91,13 +91,13 @@ main::@1: scope:[main] from main main::@3 (byte) main::s#2 ← phi( main/(byte) main::s#0 main::@3/(byte) main::s#1 ) (byte) position_sprite::spriteno#0 ← (byte) main::s#2 (word) position_sprite::x#0 ← (word) main::xpos#2 - (byte) position_sprite::y#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 + (byte) position_sprite::y#0 ← (byte/signed byte/word/signed word/dword/signed dword) $32 call position_sprite to:main::@3 main::@3: scope:[main] from main::@1 (byte) main::s#3 ← phi( main::@1/(byte) main::s#2 ) (word) main::xpos#3 ← phi( main::@1/(word) main::xpos#2 ) - (word) main::xpos#1 ← (word) main::xpos#3 + (byte/signed byte/word/signed word/dword/signed dword) 10 + (word) main::xpos#1 ← (word) main::xpos#3 + (byte/signed byte/word/signed word/dword/signed dword) $a (byte) main::s#1 ← (byte) main::s#3 + rangenext(0,7) (bool~) main::$1 ← (byte) main::s#1 != rangelast(0,7) if((bool~) main::$1) goto main::@1 @@ -114,7 +114,7 @@ position_sprite: scope:[position_sprite] from main::@1 (byte~) position_sprite::$1 ← (byte) position_sprite::spriteno#1 << (byte/signed byte/word/signed word/dword/signed dword) 1 (byte~) position_sprite::$2 ← < (word) position_sprite::x#1 *((byte*) SPRITES_XPOS#0 + (byte~) position_sprite::$1) ← (byte~) position_sprite::$2 - (bool~) position_sprite::$3 ← (word) position_sprite::x#1 > (byte/word/signed word/dword/signed dword) 255 + (bool~) position_sprite::$3 ← (word) position_sprite::x#1 > (byte/word/signed word/dword/signed dword) $ff if((bool~) position_sprite::$3) goto position_sprite::@1 to:position_sprite::@3 position_sprite::@1: scope:[position_sprite] from position_sprite @@ -125,7 +125,7 @@ position_sprite::@1: scope:[position_sprite] from position_sprite position_sprite::@3: scope:[position_sprite] from position_sprite (byte) position_sprite::spriteno#3 ← phi( position_sprite/(byte) position_sprite::spriteno#1 ) (byte/signed byte/word/signed word/dword/signed dword~) position_sprite::$4 ← (byte/signed byte/word/signed word/dword/signed dword) 1 << (byte) position_sprite::spriteno#3 - (byte/word/dword~) position_sprite::$5 ← (byte/signed byte/word/signed word/dword/signed dword~) position_sprite::$4 ^ (byte/word/signed word/dword/signed dword) 255 + (byte/word/dword~) position_sprite::$5 ← (byte/signed byte/word/signed word/dword/signed dword~) position_sprite::$4 ^ (byte/word/signed word/dword/signed dword) $ff *((byte*) SPRITES_XMSB#0) ← *((byte*) SPRITES_XMSB#0) & (byte/word/dword~) position_sprite::$5 to:position_sprite::@return position_sprite::@return: scope:[position_sprite] from position_sprite::@1 position_sprite::@3 @@ -350,71 +350,71 @@ Redundant Phi (byte) position_sprite::y#1 (byte) position_sprite::y#0 Redundant Phi (word) position_sprite::x#1 (word) position_sprite::x#0 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) main::$1 [90] if((byte) main::s#1!=rangelast(0,7)) goto main::@1 -Simple Condition (bool~) position_sprite::$3 [99] if((word) position_sprite::x#0>(byte/word/signed word/dword/signed dword) 255) goto position_sprite::@1 +Simple Condition (bool~) position_sprite::$3 [99] if((word) position_sprite::x#0>(byte/word/signed word/dword/signed dword) $ff) goto position_sprite::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -425,22 +425,22 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 -Constant (const word) main::xpos#0 = 200 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f +Constant (const word) main::xpos#0 = $c8 Constant (const byte) main::s#0 = 0 -Constant (const byte) position_sprite::y#0 = 50 +Constant (const byte) position_sprite::y#0 = $32 Successful SSA optimization Pass2ConstantIdentification Successful SSA optimization PassNEliminateUnusedVars Resolved ranged next value main::s#1 ← ++ main::s#2 to ++ Resolved ranged comparison value if(main::s#1!=rangelast(0,7)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 8 Inlining constant with var siblings (const word) main::xpos#0 Inlining constant with var siblings (const byte) main::s#0 -Constant inlined main::xpos#0 = (byte/word/signed word/dword/signed dword) 200 +Constant inlined main::xpos#0 = (byte/word/signed word/dword/signed dword) $c8 Constant inlined main::s#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@4(between main::@3 and main::@1) @@ -476,14 +476,14 @@ main: scope:[main] from @6 [4] phi() to:main::@1 main::@1: scope:[main] from main main::@3 - [5] (word) main::xpos#2 ← phi( main/(byte/word/signed word/dword/signed dword) 200 main::@3/(word) main::xpos#1 ) + [5] (word) main::xpos#2 ← phi( main/(byte/word/signed word/dword/signed dword) $c8 main::@3/(word) main::xpos#1 ) [5] (byte) main::s#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@3/(byte) main::s#1 ) [6] (byte) position_sprite::spriteno#0 ← (byte) main::s#2 [7] (word) position_sprite::x#0 ← (word) main::xpos#2 [8] call position_sprite to:main::@3 main::@3: scope:[main] from main::@1 - [9] (word) main::xpos#1 ← (word) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 10 + [9] (word) main::xpos#1 ← (word) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $a [10] (byte) main::s#1 ← ++ (byte) main::s#2 [11] if((byte) main::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@1 to:main::@return @@ -496,11 +496,11 @@ position_sprite: scope:[position_sprite] from main::@1 [15] (byte~) position_sprite::$1 ← (byte) position_sprite::spriteno#0 << (byte/signed byte/word/signed word/dword/signed dword) 1 [16] (byte~) position_sprite::$2 ← < (word) position_sprite::x#0 [17] *((const byte*) SPRITES_XPOS#0 + (byte~) position_sprite::$1) ← (byte~) position_sprite::$2 - [18] if((word) position_sprite::x#0>(byte/word/signed word/dword/signed dword) 255) goto position_sprite::@1 + [18] if((word) position_sprite::x#0>(byte/word/signed word/dword/signed dword) $ff) goto position_sprite::@1 to:position_sprite::@3 position_sprite::@3: scope:[position_sprite] from position_sprite [19] (byte/signed byte/word/signed word/dword/signed dword~) position_sprite::$4 ← (byte/signed byte/word/signed word/dword/signed dword) 1 << (byte) position_sprite::spriteno#0 - [20] (byte/word/dword~) position_sprite::$5 ← (byte/signed byte/word/signed word/dword/signed dword~) position_sprite::$4 ^ (byte/word/signed word/dword/signed dword) 255 + [20] (byte/word/dword~) position_sprite::$5 ← (byte/signed byte/word/signed word/dword/signed dword~) position_sprite::$4 ^ (byte/word/signed word/dword/signed dword) $ff [21] *((const byte*) SPRITES_XMSB#0) ← *((const byte*) SPRITES_XMSB#0) & (byte/word/dword~) position_sprite::$5 to:position_sprite::@return position_sprite::@return: scope:[position_sprite] from position_sprite::@1 position_sprite::@3 @@ -678,7 +678,7 @@ main: { .label s = 2 //SEG11 [5] phi from main to main::@1 [phi:main->main::@1] b1_from_main: - //SEG12 [5] phi (word) main::xpos#2 = (byte/word/signed word/dword/signed dword) 200 [phi:main->main::@1#0] -- vwuz1=vbuc1 + //SEG12 [5] phi (word) main::xpos#2 = (byte/word/signed word/dword/signed dword) $c8 [phi:main->main::@1#0] -- vwuz1=vbuc1 lda #<$c8 sta xpos lda #>$c8 @@ -707,7 +707,7 @@ main: { jmp b3 //SEG21 main::@3 b3: - //SEG22 [9] (word) main::xpos#1 ← (word) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 10 -- vwuz1=vwuz1_plus_vbuc1 + //SEG22 [9] (word) main::xpos#1 ← (word) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $a -- vwuz1=vwuz1_plus_vbuc1 clc lda xpos adc #<$a @@ -758,7 +758,7 @@ position_sprite: { lda _2 ldy _1 sta SPRITES_XPOS,y - //SEG33 [18] if((word) position_sprite::x#0>(byte/word/signed word/dword/signed dword) 255) goto position_sprite::@1 -- vwuz1_gt_vbuc1_then_la1 + //SEG33 [18] if((word) position_sprite::x#0>(byte/word/signed word/dword/signed dword) $ff) goto position_sprite::@1 -- vwuz1_gt_vbuc1_then_la1 lda x+1 bne b1 lda x @@ -780,7 +780,7 @@ position_sprite: { bne !- !e: sta _4 - //SEG36 [20] (byte/word/dword~) position_sprite::$5 ← (byte/signed byte/word/signed word/dword/signed dword~) position_sprite::$4 ^ (byte/word/signed word/dword/signed dword) 255 -- vbuz1=vbuz2_bxor_vbuc1 + //SEG36 [20] (byte/word/dword~) position_sprite::$5 ← (byte/signed byte/word/signed word/dword/signed dword~) position_sprite::$4 ^ (byte/word/signed word/dword/signed dword) $ff -- vbuz1=vbuz2_bxor_vbuc1 lda _4 eor #$ff sta _5 @@ -817,27 +817,27 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [7] (word) position_sprite::x#0 ← (word) main::xpos#2 [ main::s#2 main::xpos#2 position_sprite::spriteno#0 position_sprite::x#0 ] ( main:2 [ main::s#2 main::xpos#2 position_sprite::spriteno#0 position_sprite::x#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::s#2 main::s#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ position_sprite::spriteno#0 ] -Statement [9] (word) main::xpos#1 ← (word) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 10 [ main::s#2 main::xpos#1 ] ( main:2 [ main::s#2 main::xpos#1 ] ) always clobbers reg byte a +Statement [9] (word) main::xpos#1 ← (word) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $a [ main::s#2 main::xpos#1 ] ( main:2 [ main::s#2 main::xpos#1 ] ) always clobbers reg byte a Statement [13] (byte~) position_sprite::$0 ← (byte) position_sprite::spriteno#0 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ position_sprite::spriteno#0 position_sprite::x#0 position_sprite::$0 ] ( main:2::position_sprite:8 [ main::s#2 main::xpos#2 position_sprite::spriteno#0 position_sprite::x#0 position_sprite::$0 ] ) always clobbers reg byte a Statement [14] *((const byte*) SPRITES_YPOS#0 + (byte~) position_sprite::$0) ← (const byte) position_sprite::y#0 [ position_sprite::spriteno#0 position_sprite::x#0 ] ( main:2::position_sprite:8 [ main::s#2 main::xpos#2 position_sprite::spriteno#0 position_sprite::x#0 ] ) always clobbers reg byte a Statement [15] (byte~) position_sprite::$1 ← (byte) position_sprite::spriteno#0 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ position_sprite::spriteno#0 position_sprite::x#0 position_sprite::$1 ] ( main:2::position_sprite:8 [ main::s#2 main::xpos#2 position_sprite::spriteno#0 position_sprite::x#0 position_sprite::$1 ] ) always clobbers reg byte a Statement [16] (byte~) position_sprite::$2 ← < (word) position_sprite::x#0 [ position_sprite::spriteno#0 position_sprite::x#0 position_sprite::$1 position_sprite::$2 ] ( main:2::position_sprite:8 [ main::s#2 main::xpos#2 position_sprite::spriteno#0 position_sprite::x#0 position_sprite::$1 position_sprite::$2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:9 [ position_sprite::$1 ] -Statement [18] if((word) position_sprite::x#0>(byte/word/signed word/dword/signed dword) 255) goto position_sprite::@1 [ position_sprite::spriteno#0 ] ( main:2::position_sprite:8 [ main::s#2 main::xpos#2 position_sprite::spriteno#0 ] ) always clobbers reg byte a +Statement [18] if((word) position_sprite::x#0>(byte/word/signed word/dword/signed dword) $ff) goto position_sprite::@1 [ position_sprite::spriteno#0 ] ( main:2::position_sprite:8 [ main::s#2 main::xpos#2 position_sprite::spriteno#0 ] ) always clobbers reg byte a Statement [19] (byte/signed byte/word/signed word/dword/signed dword~) position_sprite::$4 ← (byte/signed byte/word/signed word/dword/signed dword) 1 << (byte) position_sprite::spriteno#0 [ position_sprite::$4 ] ( main:2::position_sprite:8 [ main::s#2 main::xpos#2 position_sprite::$4 ] ) always clobbers reg byte a -Statement [20] (byte/word/dword~) position_sprite::$5 ← (byte/signed byte/word/signed word/dword/signed dword~) position_sprite::$4 ^ (byte/word/signed word/dword/signed dword) 255 [ position_sprite::$5 ] ( main:2::position_sprite:8 [ main::s#2 main::xpos#2 position_sprite::$5 ] ) always clobbers reg byte a +Statement [20] (byte/word/dword~) position_sprite::$5 ← (byte/signed byte/word/signed word/dword/signed dword~) position_sprite::$4 ^ (byte/word/signed word/dword/signed dword) $ff [ position_sprite::$5 ] ( main:2::position_sprite:8 [ main::s#2 main::xpos#2 position_sprite::$5 ] ) always clobbers reg byte a Statement [21] *((const byte*) SPRITES_XMSB#0) ← *((const byte*) SPRITES_XMSB#0) & (byte/word/dword~) position_sprite::$5 [ ] ( main:2::position_sprite:8 [ main::s#2 main::xpos#2 ] ) always clobbers reg byte a Statement [23] (byte/signed byte/word/signed word/dword/signed dword~) position_sprite::$6 ← (byte/signed byte/word/signed word/dword/signed dword) 1 << (byte) position_sprite::spriteno#0 [ position_sprite::$6 ] ( main:2::position_sprite:8 [ main::s#2 main::xpos#2 position_sprite::$6 ] ) always clobbers reg byte a Statement [24] *((const byte*) SPRITES_XMSB#0) ← *((const byte*) SPRITES_XMSB#0) | (byte/signed byte/word/signed word/dword/signed dword~) position_sprite::$6 [ ] ( main:2::position_sprite:8 [ main::s#2 main::xpos#2 ] ) always clobbers reg byte a Statement [7] (word) position_sprite::x#0 ← (word) main::xpos#2 [ main::s#2 main::xpos#2 position_sprite::spriteno#0 position_sprite::x#0 ] ( main:2 [ main::s#2 main::xpos#2 position_sprite::spriteno#0 position_sprite::x#0 ] ) always clobbers reg byte a -Statement [9] (word) main::xpos#1 ← (word) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 10 [ main::s#2 main::xpos#1 ] ( main:2 [ main::s#2 main::xpos#1 ] ) always clobbers reg byte a +Statement [9] (word) main::xpos#1 ← (word) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $a [ main::s#2 main::xpos#1 ] ( main:2 [ main::s#2 main::xpos#1 ] ) always clobbers reg byte a Statement [13] (byte~) position_sprite::$0 ← (byte) position_sprite::spriteno#0 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ position_sprite::spriteno#0 position_sprite::x#0 position_sprite::$0 ] ( main:2::position_sprite:8 [ main::s#2 main::xpos#2 position_sprite::spriteno#0 position_sprite::x#0 position_sprite::$0 ] ) always clobbers reg byte a Statement [14] *((const byte*) SPRITES_YPOS#0 + (byte~) position_sprite::$0) ← (const byte) position_sprite::y#0 [ position_sprite::spriteno#0 position_sprite::x#0 ] ( main:2::position_sprite:8 [ main::s#2 main::xpos#2 position_sprite::spriteno#0 position_sprite::x#0 ] ) always clobbers reg byte a Statement [15] (byte~) position_sprite::$1 ← (byte) position_sprite::spriteno#0 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ position_sprite::spriteno#0 position_sprite::x#0 position_sprite::$1 ] ( main:2::position_sprite:8 [ main::s#2 main::xpos#2 position_sprite::spriteno#0 position_sprite::x#0 position_sprite::$1 ] ) always clobbers reg byte a Statement [16] (byte~) position_sprite::$2 ← < (word) position_sprite::x#0 [ position_sprite::spriteno#0 position_sprite::x#0 position_sprite::$1 position_sprite::$2 ] ( main:2::position_sprite:8 [ main::s#2 main::xpos#2 position_sprite::spriteno#0 position_sprite::x#0 position_sprite::$1 position_sprite::$2 ] ) always clobbers reg byte a -Statement [18] if((word) position_sprite::x#0>(byte/word/signed word/dword/signed dword) 255) goto position_sprite::@1 [ position_sprite::spriteno#0 ] ( main:2::position_sprite:8 [ main::s#2 main::xpos#2 position_sprite::spriteno#0 ] ) always clobbers reg byte a +Statement [18] if((word) position_sprite::x#0>(byte/word/signed word/dword/signed dword) $ff) goto position_sprite::@1 [ position_sprite::spriteno#0 ] ( main:2::position_sprite:8 [ main::s#2 main::xpos#2 position_sprite::spriteno#0 ] ) always clobbers reg byte a Statement [19] (byte/signed byte/word/signed word/dword/signed dword~) position_sprite::$4 ← (byte/signed byte/word/signed word/dword/signed dword) 1 << (byte) position_sprite::spriteno#0 [ position_sprite::$4 ] ( main:2::position_sprite:8 [ main::s#2 main::xpos#2 position_sprite::$4 ] ) always clobbers reg byte a -Statement [20] (byte/word/dword~) position_sprite::$5 ← (byte/signed byte/word/signed word/dword/signed dword~) position_sprite::$4 ^ (byte/word/signed word/dword/signed dword) 255 [ position_sprite::$5 ] ( main:2::position_sprite:8 [ main::s#2 main::xpos#2 position_sprite::$5 ] ) always clobbers reg byte a +Statement [20] (byte/word/dword~) position_sprite::$5 ← (byte/signed byte/word/signed word/dword/signed dword~) position_sprite::$4 ^ (byte/word/signed word/dword/signed dword) $ff [ position_sprite::$5 ] ( main:2::position_sprite:8 [ main::s#2 main::xpos#2 position_sprite::$5 ] ) always clobbers reg byte a Statement [21] *((const byte*) SPRITES_XMSB#0) ← *((const byte*) SPRITES_XMSB#0) & (byte/word/dword~) position_sprite::$5 [ ] ( main:2::position_sprite:8 [ main::s#2 main::xpos#2 ] ) always clobbers reg byte a Statement [23] (byte/signed byte/word/signed word/dword/signed dword~) position_sprite::$6 ← (byte/signed byte/word/signed word/dword/signed dword) 1 << (byte) position_sprite::spriteno#0 [ position_sprite::$6 ] ( main:2::position_sprite:8 [ main::s#2 main::xpos#2 position_sprite::$6 ] ) always clobbers reg byte a Statement [24] *((const byte*) SPRITES_XMSB#0) ← *((const byte*) SPRITES_XMSB#0) | (byte/signed byte/word/signed word/dword/signed dword~) position_sprite::$6 [ ] ( main:2::position_sprite:8 [ main::s#2 main::xpos#2 ] ) always clobbers reg byte a @@ -903,7 +903,7 @@ main: { .label xpos = 2 //SEG11 [5] phi from main to main::@1 [phi:main->main::@1] b1_from_main: - //SEG12 [5] phi (word) main::xpos#2 = (byte/word/signed word/dword/signed dword) 200 [phi:main->main::@1#0] -- vwuz1=vbuc1 + //SEG12 [5] phi (word) main::xpos#2 = (byte/word/signed word/dword/signed dword) $c8 [phi:main->main::@1#0] -- vwuz1=vbuc1 lda #<$c8 sta xpos lda #>$c8 @@ -926,7 +926,7 @@ main: { jmp b3 //SEG21 main::@3 b3: - //SEG22 [9] (word) main::xpos#1 ← (word) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 10 -- vwuz1=vwuz1_plus_vbuc1 + //SEG22 [9] (word) main::xpos#1 ← (word) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $a -- vwuz1=vwuz1_plus_vbuc1 clc lda xpos adc #<$a @@ -966,7 +966,7 @@ position_sprite: { lda x //SEG32 [17] *((const byte*) SPRITES_XPOS#0 + (byte~) position_sprite::$1) ← (byte~) position_sprite::$2 -- pbuc1_derefidx_vbuyy=vbuaa sta SPRITES_XPOS,y - //SEG33 [18] if((word) position_sprite::x#0>(byte/word/signed word/dword/signed dword) 255) goto position_sprite::@1 -- vwuz1_gt_vbuc1_then_la1 + //SEG33 [18] if((word) position_sprite::x#0>(byte/word/signed word/dword/signed dword) $ff) goto position_sprite::@1 -- vwuz1_gt_vbuc1_then_la1 lda x+1 bne b1 lda x @@ -987,7 +987,7 @@ position_sprite: { dey bne !- !e: - //SEG36 [20] (byte/word/dword~) position_sprite::$5 ← (byte/signed byte/word/signed word/dword/signed dword~) position_sprite::$4 ^ (byte/word/signed word/dword/signed dword) 255 -- vbuaa=vbuaa_bxor_vbuc1 + //SEG36 [20] (byte/word/dword~) position_sprite::$5 ← (byte/signed byte/word/signed word/dword/signed dword~) position_sprite::$4 ^ (byte/word/signed word/dword/signed dword) $ff -- vbuaa=vbuaa_bxor_vbuc1 eor #$ff //SEG37 [21] *((const byte*) SPRITES_XMSB#0) ← *((const byte*) SPRITES_XMSB#0) & (byte/word/dword~) position_sprite::$5 -- _deref_pbuc1=_deref_pbuc1_band_vbuaa and SPRITES_XMSB @@ -1113,11 +1113,11 @@ FINAL SYMBOL TABLE (byte*) SPRITES_MC2 (byte*) SPRITES_PRIORITY (byte*) SPRITES_XMSB -(const byte*) SPRITES_XMSB#0 SPRITES_XMSB = ((byte*))(word/dword/signed dword) 53264 +(const byte*) SPRITES_XMSB#0 SPRITES_XMSB = ((byte*))(word/dword/signed dword) $d010 (byte*) SPRITES_XPOS -(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) 53248 +(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) $d000 (byte*) SPRITES_YPOS -(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) 53249 +(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) $d001 (word) SPRITE_PTRS (byte) VIC_BMM (byte*) VIC_CONTROL @@ -1156,7 +1156,7 @@ FINAL SYMBOL TABLE (word) position_sprite::x (word) position_sprite::x#0 x zp ZP_WORD:2 2.5 (byte) position_sprite::y -(const byte) position_sprite::y#0 y = (byte/signed byte/word/signed word/dword/signed dword) 50 +(const byte) position_sprite::y#0 y = (byte/signed byte/word/signed word/dword/signed dword) $32 reg byte x [ main::s#2 main::s#1 ] zp ZP_WORD:2 [ main::xpos#2 main::xpos#1 position_sprite::x#0 ] @@ -1193,7 +1193,7 @@ Score: 564 main: { .label xpos = 2 //SEG11 [5] phi from main to main::@1 [phi:main->main::@1] - //SEG12 [5] phi (word) main::xpos#2 = (byte/word/signed word/dword/signed dword) 200 [phi:main->main::@1#0] -- vwuz1=vbuc1 + //SEG12 [5] phi (word) main::xpos#2 = (byte/word/signed word/dword/signed dword) $c8 [phi:main->main::@1#0] -- vwuz1=vbuc1 lda #<$c8 sta xpos lda #>$c8 @@ -1211,7 +1211,7 @@ main: { //SEG20 [8] call position_sprite jsr position_sprite //SEG21 main::@3 - //SEG22 [9] (word) main::xpos#1 ← (word) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 10 -- vwuz1=vwuz1_plus_vbuc1 + //SEG22 [9] (word) main::xpos#1 ← (word) main::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) $a -- vwuz1=vwuz1_plus_vbuc1 clc lda xpos adc #<$a @@ -1249,7 +1249,7 @@ position_sprite: { lda x //SEG32 [17] *((const byte*) SPRITES_XPOS#0 + (byte~) position_sprite::$1) ← (byte~) position_sprite::$2 -- pbuc1_derefidx_vbuyy=vbuaa sta SPRITES_XPOS,y - //SEG33 [18] if((word) position_sprite::x#0>(byte/word/signed word/dword/signed dword) 255) goto position_sprite::@1 -- vwuz1_gt_vbuc1_then_la1 + //SEG33 [18] if((word) position_sprite::x#0>(byte/word/signed word/dword/signed dword) $ff) goto position_sprite::@1 -- vwuz1_gt_vbuc1_then_la1 lda x+1 bne b1 lda x @@ -1268,7 +1268,7 @@ position_sprite: { dey bne !- !e: - //SEG36 [20] (byte/word/dword~) position_sprite::$5 ← (byte/signed byte/word/signed word/dword/signed dword~) position_sprite::$4 ^ (byte/word/signed word/dword/signed dword) 255 -- vbuaa=vbuaa_bxor_vbuc1 + //SEG36 [20] (byte/word/dword~) position_sprite::$5 ← (byte/signed byte/word/signed word/dword/signed dword~) position_sprite::$4 ^ (byte/word/signed word/dword/signed dword) $ff -- vbuaa=vbuaa_bxor_vbuc1 eor #$ff //SEG37 [21] *((const byte*) SPRITES_XMSB#0) ← *((const byte*) SPRITES_XMSB#0) & (byte/word/dword~) position_sprite::$5 -- _deref_pbuc1=_deref_pbuc1_band_vbuaa and SPRITES_XMSB diff --git a/src/test/ref/roll-sprite-msb.sym b/src/test/ref/roll-sprite-msb.sym index 08b6656ed..ec632a623 100644 --- a/src/test/ref/roll-sprite-msb.sym +++ b/src/test/ref/roll-sprite-msb.sym @@ -65,11 +65,11 @@ (byte*) SPRITES_MC2 (byte*) SPRITES_PRIORITY (byte*) SPRITES_XMSB -(const byte*) SPRITES_XMSB#0 SPRITES_XMSB = ((byte*))(word/dword/signed dword) 53264 +(const byte*) SPRITES_XMSB#0 SPRITES_XMSB = ((byte*))(word/dword/signed dword) $d010 (byte*) SPRITES_XPOS -(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) 53248 +(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) $d000 (byte*) SPRITES_YPOS -(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) 53249 +(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) $d001 (word) SPRITE_PTRS (byte) VIC_BMM (byte*) VIC_CONTROL @@ -108,7 +108,7 @@ (word) position_sprite::x (word) position_sprite::x#0 x zp ZP_WORD:2 2.5 (byte) position_sprite::y -(const byte) position_sprite::y#0 y = (byte/signed byte/word/signed word/dword/signed dword) 50 +(const byte) position_sprite::y#0 y = (byte/signed byte/word/signed word/dword/signed dword) $32 reg byte x [ main::s#2 main::s#1 ] zp ZP_WORD:2 [ main::xpos#2 main::xpos#1 position_sprite::x#0 ] diff --git a/src/test/ref/roll-variable.cfg b/src/test/ref/roll-variable.cfg index 059b76a57..c385c29b5 100644 --- a/src/test/ref/roll-variable.cfg +++ b/src/test/ref/roll-variable.cfg @@ -12,7 +12,7 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@1 [5] (byte) main::b#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::b#1 ) - [6] (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 85 << (byte) main::b#2 + [6] (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) $55 << (byte) main::b#2 [7] *((const byte*) main::screen#0 + (byte) main::b#2) ← (byte/signed byte/word/signed word/dword/signed dword~) main::$0 [8] (byte) main::b#1 ← ++ (byte) main::b#2 [9] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@1 diff --git a/src/test/ref/roll-variable.log b/src/test/ref/roll-variable.log index ab7b6c6c2..37f477a64 100644 --- a/src/test/ref/roll-variable.log +++ b/src/test/ref/roll-variable.log @@ -3,13 +3,13 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) main::b#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main main::@1 (byte*) main::screen#1 ← phi( main/(byte*) main::screen#0 main::@1/(byte*) main::screen#1 ) (byte) main::b#2 ← phi( main/(byte) main::b#0 main::@1/(byte) main::b#1 ) - (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 85 << (byte) main::b#2 + (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) $55 << (byte) main::b#2 *((byte*) main::screen#1 + (byte) main::b#2) ← (byte/signed byte/word/signed word/dword/signed dword~) main::$0 (byte) main::b#1 ← (byte) main::b#2 + rangenext(0,7) (bool~) main::$1 ← (byte) main::b#1 != rangelast(0,7) @@ -51,7 +51,7 @@ Redundant Phi (byte*) main::screen#1 (byte*) main::screen#0 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) main::$1 [7] if((byte) main::b#1!=rangelast(0,7)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) main::screen#0 = ((byte*))1024 +Constant (const byte*) main::screen#0 = ((byte*))$400 Constant (const byte) main::b#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::b#1 ← ++ main::b#2 to ++ @@ -91,7 +91,7 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@1 [5] (byte) main::b#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::b#1 ) - [6] (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 85 << (byte) main::b#2 + [6] (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) $55 << (byte) main::b#2 [7] *((const byte*) main::screen#0 + (byte) main::b#2) ← (byte/signed byte/word/signed word/dword/signed dword~) main::$0 [8] (byte) main::b#1 ← ++ (byte) main::b#2 [9] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@1 @@ -159,7 +159,7 @@ main: { jmp b1 //SEG15 main::@1 b1: - //SEG16 [6] (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 85 << (byte) main::b#2 -- vbuz1=vbuc1_rol_vbuz2 + //SEG16 [6] (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) $55 << (byte) main::b#2 -- vbuz1=vbuc1_rol_vbuz2 lda #$55 ldy b cpy #0 @@ -188,9 +188,9 @@ main: { } REGISTER UPLIFT POTENTIAL REGISTERS -Statement [6] (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 85 << (byte) main::b#2 [ main::b#2 main::$0 ] ( main:2 [ main::b#2 main::$0 ] ) always clobbers reg byte a +Statement [6] (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) $55 << (byte) main::b#2 [ main::b#2 main::$0 ] ( main:2 [ main::b#2 main::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::b#2 main::b#1 ] -Statement [6] (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 85 << (byte) main::b#2 [ main::b#2 main::$0 ] ( main:2 [ main::b#2 main::$0 ] ) always clobbers reg byte a +Statement [6] (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) $55 << (byte) main::b#2 [ main::b#2 main::$0 ] ( main:2 [ main::b#2 main::$0 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ main::b#2 main::b#1 ] : zp ZP_BYTE:2 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:3 [ main::$0 ] : zp ZP_BYTE:3 , reg byte a , reg byte x , reg byte y , @@ -243,7 +243,7 @@ main: { jmp b1 //SEG15 main::@1 b1: - //SEG16 [6] (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 85 << (byte) main::b#2 -- vbuaa=vbuc1_rol_vbuz1 + //SEG16 [6] (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) $55 << (byte) main::b#2 -- vbuaa=vbuc1_rol_vbuz1 lda #$55 ldy b cpy #0 @@ -306,7 +306,7 @@ FINAL SYMBOL TABLE (byte) main::b#1 b zp ZP_BYTE:2 16.5 (byte) main::b#2 b zp ZP_BYTE:2 14.666666666666666 (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 zp ZP_BYTE:2 [ main::b#2 main::b#1 ] reg byte a [ main::$0 ] @@ -341,7 +341,7 @@ main: { //SEG14 [5] phi (byte) main::b#2 = (byte) main::b#1 [phi:main::@1->main::@1#0] -- register_copy //SEG15 main::@1 b1: - //SEG16 [6] (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 85 << (byte) main::b#2 -- vbuaa=vbuc1_rol_vbuz1 + //SEG16 [6] (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) $55 << (byte) main::b#2 -- vbuaa=vbuc1_rol_vbuz1 lda #$55 ldy b cpy #0 diff --git a/src/test/ref/roll-variable.sym b/src/test/ref/roll-variable.sym index d26fd30d4..dadfc70a5 100644 --- a/src/test/ref/roll-variable.sym +++ b/src/test/ref/roll-variable.sym @@ -9,7 +9,7 @@ (byte) main::b#1 b zp ZP_BYTE:2 16.5 (byte) main::b#2 b zp ZP_BYTE:2 14.666666666666666 (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 zp ZP_BYTE:2 [ main::b#2 main::b#1 ] reg byte a [ main::$0 ] diff --git a/src/test/ref/runtime-unused-procedure.log b/src/test/ref/runtime-unused-procedure.log index f80091e8f..777e1ca14 100644 --- a/src/test/ref/runtime-unused-procedure.log +++ b/src/test/ref/runtime-unused-procedure.log @@ -2,7 +2,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from (byte) call#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@2 main: scope:[main] from @2 (byte) call#1 ← phi( @2/(byte) call#2 ) @@ -99,7 +99,7 @@ Simple Condition (bool~) main::$1 [6] if((byte) call#0==(byte/signed byte/word/s Simple Condition (bool~) proc::$1 [14] if(*((byte*) screen#0 + (byte/signed byte/word/signed word/dword/signed dword) 1)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto proc::@return Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte) call#0 = 0 -Constant (const byte*) screen#0 = ((byte*))1024 +Constant (const byte*) screen#0 = ((byte*))$400 Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(screen#0+0) Consolidated array index constant in *(screen#0+1) @@ -260,7 +260,7 @@ FINAL SYMBOL TABLE (void()) main() (label) main::@return (byte*) screen -(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/runtime-unused-procedure.sym b/src/test/ref/runtime-unused-procedure.sym index 48f550b2c..3fbc224e7 100644 --- a/src/test/ref/runtime-unused-procedure.sym +++ b/src/test/ref/runtime-unused-procedure.sym @@ -5,5 +5,5 @@ (void()) main() (label) main::@return (byte*) screen -(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/scan-desire-problem.cfg b/src/test/ref/scan-desire-problem.cfg index b28709eef..c229559c4 100644 --- a/src/test/ref/scan-desire-problem.cfg +++ b/src/test/ref/scan-desire-problem.cfg @@ -29,7 +29,7 @@ main::@8: scope:[main] from main::@2 to:main::@4 main::@4: scope:[main] from main::@8 [16] (byte) main::x#1 ← ++ (byte) main::x#4 - [17] if((byte) main::x#1<(byte/signed byte/word/signed word/dword/signed dword) 16) goto main::@1 + [17] if((byte) main::x#1<(byte/signed byte/word/signed word/dword/signed dword) $10) goto main::@1 to:main::@3 main::@3: scope:[main] from main::@3 main::@4 [18] phi() @@ -51,10 +51,10 @@ draw_block::@1: scope:[draw_block] from draw_block [30] *((const byte*) colors#0 + (word) draw_block::z#1) ← (const byte) YELLOW#0 [31] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (word) draw_block::z#1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [32] *((const byte*) colors#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (word) draw_block::z#1) ← (const byte) YELLOW#0 - [33] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (word) draw_block::z#1) ← (byte/signed byte/word/signed word/dword/signed dword) 2 - [34] *((const byte*) colors#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (word) draw_block::z#1) ← (const byte) YELLOW#0 - [35] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 41 + (word) draw_block::z#1) ← (byte/signed byte/word/signed word/dword/signed dword) 3 - [36] *((const byte*) colors#0+(byte/signed byte/word/signed word/dword/signed dword) 41 + (word) draw_block::z#1) ← (const byte) YELLOW#0 + [33] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (word) draw_block::z#1) ← (byte/signed byte/word/signed word/dword/signed dword) 2 + [34] *((const byte*) colors#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (word) draw_block::z#1) ← (const byte) YELLOW#0 + [35] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $29 + (word) draw_block::z#1) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [36] *((const byte*) colors#0+(byte/signed byte/word/signed word/dword/signed dword) $29 + (word) draw_block::z#1) ← (const byte) YELLOW#0 to:draw_block::@return draw_block::@return: scope:[draw_block] from draw_block::@1 [37] return @@ -113,7 +113,7 @@ init::@return: scope:[init] from init::@1 fill: scope:[fill] from init::@2 init::@3 [63] (byte) fill::val#3 ← phi( init::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 init::@3/(const byte) BLACK#0 ) [63] (byte*) fill::addr#0 ← phi( init::@2/(const byte*) screen#0 init::@3/(const byte*) colors#0 ) - [64] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 + [64] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) $3e8 to:fill::@1 fill::@1: scope:[fill] from fill fill::@1 [65] (byte*) fill::addr#2 ← phi( fill/(byte*) fill::addr#0 fill::@1/(byte*) fill::addr#1 ) diff --git a/src/test/ref/scan-desire-problem.log b/src/test/ref/scan-desire-problem.log index e2d61a913..09b01864c 100644 --- a/src/test/ref/scan-desire-problem.log +++ b/src/test/ref/scan-desire-problem.log @@ -6,66 +6,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -76,12 +76,12 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@4 @4: scope:[] from @begin (byte) KEY_DEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -94,63 +94,63 @@ CONTROL FLOW GRAPH SSA (byte) KEY_CRSR_DOWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) KEY_3#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) KEY_W#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) KEY_A#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) KEY_4#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) KEY_Z#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) KEY_S#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) KEY_E#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) KEY_LSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) KEY_5#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte) KEY_R#0 ← (byte/signed byte/word/signed word/dword/signed dword) 17 - (byte) KEY_D#0 ← (byte/signed byte/word/signed word/dword/signed dword) 18 - (byte) KEY_6#0 ← (byte/signed byte/word/signed word/dword/signed dword) 19 - (byte) KEY_C#0 ← (byte/signed byte/word/signed word/dword/signed dword) 20 - (byte) KEY_F#0 ← (byte/signed byte/word/signed word/dword/signed dword) 21 - (byte) KEY_T#0 ← (byte/signed byte/word/signed word/dword/signed dword) 22 - (byte) KEY_X#0 ← (byte/signed byte/word/signed word/dword/signed dword) 23 - (byte) KEY_7#0 ← (byte/signed byte/word/signed word/dword/signed dword) 24 - (byte) KEY_Y#0 ← (byte/signed byte/word/signed word/dword/signed dword) 25 - (byte) KEY_G#0 ← (byte/signed byte/word/signed word/dword/signed dword) 26 - (byte) KEY_8#0 ← (byte/signed byte/word/signed word/dword/signed dword) 27 - (byte) KEY_B#0 ← (byte/signed byte/word/signed word/dword/signed dword) 28 - (byte) KEY_H#0 ← (byte/signed byte/word/signed word/dword/signed dword) 29 - (byte) KEY_U#0 ← (byte/signed byte/word/signed word/dword/signed dword) 30 - (byte) KEY_V#0 ← (byte/signed byte/word/signed word/dword/signed dword) 31 - (byte) KEY_9#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) KEY_I#0 ← (byte/signed byte/word/signed word/dword/signed dword) 33 - (byte) KEY_J#0 ← (byte/signed byte/word/signed word/dword/signed dword) 34 - (byte) KEY_0#0 ← (byte/signed byte/word/signed word/dword/signed dword) 35 - (byte) KEY_M#0 ← (byte/signed byte/word/signed word/dword/signed dword) 36 - (byte) KEY_K#0 ← (byte/signed byte/word/signed word/dword/signed dword) 37 - (byte) KEY_O#0 ← (byte/signed byte/word/signed word/dword/signed dword) 38 - (byte) KEY_N#0 ← (byte/signed byte/word/signed word/dword/signed dword) 39 - (byte) KEY_PLUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte) KEY_P#0 ← (byte/signed byte/word/signed word/dword/signed dword) 41 - (byte) KEY_L#0 ← (byte/signed byte/word/signed word/dword/signed dword) 42 - (byte) KEY_MINUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 43 - (byte) KEY_DOT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 44 - (byte) KEY_COLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) 45 - (byte) KEY_AT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 46 - (byte) KEY_COMMA#0 ← (byte/signed byte/word/signed word/dword/signed dword) 47 - (byte) KEY_POUND#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) KEY_ASTERISK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) KEY_SEMICOLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 - (byte) KEY_HOME#0 ← (byte/signed byte/word/signed word/dword/signed dword) 51 - (byte) KEY_RSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 52 - (byte) KEY_EQUALS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) KEY_ARROW_UP#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) KEY_SLASH#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte) KEY_1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 56 - (byte) KEY_ARROW_LEFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 57 - (byte) KEY_CTRL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 58 - (byte) KEY_2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 59 - (byte) KEY_SPACE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 60 - (byte) KEY_COMMODORE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 61 - (byte) KEY_Q#0 ← (byte/signed byte/word/signed word/dword/signed dword) 62 - (byte) KEY_RUNSTOP#0 ← (byte/signed byte/word/signed word/dword/signed dword) 63 - (byte[]) keyboard_char_keycodes#0 ← { (byte) KEY_AT#0, (byte) KEY_A#0, (byte) KEY_B#0, (byte) KEY_C#0, (byte) KEY_D#0, (byte) KEY_E#0, (byte) KEY_F#0, (byte) KEY_G#0, (byte) KEY_H#0, (byte) KEY_I#0, (byte) KEY_J#0, (byte) KEY_K#0, (byte) KEY_L#0, (byte) KEY_M#0, (byte) KEY_N#0, (byte) KEY_O#0, (byte) KEY_P#0, (byte) KEY_Q#0, (byte) KEY_R#0, (byte) KEY_S#0, (byte) KEY_T#0, (byte) KEY_U#0, (byte) KEY_V#0, (byte) KEY_W#0, (byte) KEY_X#0, (byte) KEY_Y#0, (byte) KEY_Z#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP#0, (byte) KEY_ARROW_LEFT#0, (byte) KEY_SPACE#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK#0, (byte) KEY_PLUS#0, (byte) KEY_COMMA#0, (byte) KEY_MINUS#0, (byte) KEY_DOT#0, (byte) KEY_SLASH#0, (byte) KEY_0#0, (byte) KEY_1#0, (byte) KEY_2#0, (byte) KEY_3#0, (byte) KEY_4#0, (byte) KEY_5#0, (byte) KEY_6#0, (byte) KEY_7#0, (byte) KEY_8#0, (byte) KEY_9#0, (byte) KEY_COLON#0, (byte) KEY_SEMICOLON#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } - (byte[8]) keyboard_matrix_row_bitmask#0 ← { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } - (byte[8]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } + (byte) KEY_A#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) KEY_4#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) KEY_Z#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) KEY_S#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) KEY_E#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) KEY_LSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f + (byte) KEY_5#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte) KEY_R#0 ← (byte/signed byte/word/signed word/dword/signed dword) $11 + (byte) KEY_D#0 ← (byte/signed byte/word/signed word/dword/signed dword) $12 + (byte) KEY_6#0 ← (byte/signed byte/word/signed word/dword/signed dword) $13 + (byte) KEY_C#0 ← (byte/signed byte/word/signed word/dword/signed dword) $14 + (byte) KEY_F#0 ← (byte/signed byte/word/signed word/dword/signed dword) $15 + (byte) KEY_T#0 ← (byte/signed byte/word/signed word/dword/signed dword) $16 + (byte) KEY_X#0 ← (byte/signed byte/word/signed word/dword/signed dword) $17 + (byte) KEY_7#0 ← (byte/signed byte/word/signed word/dword/signed dword) $18 + (byte) KEY_Y#0 ← (byte/signed byte/word/signed word/dword/signed dword) $19 + (byte) KEY_G#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1a + (byte) KEY_8#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1b + (byte) KEY_B#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1c + (byte) KEY_H#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1d + (byte) KEY_U#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1e + (byte) KEY_V#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1f + (byte) KEY_9#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) KEY_I#0 ← (byte/signed byte/word/signed word/dword/signed dword) $21 + (byte) KEY_J#0 ← (byte/signed byte/word/signed word/dword/signed dword) $22 + (byte) KEY_0#0 ← (byte/signed byte/word/signed word/dword/signed dword) $23 + (byte) KEY_M#0 ← (byte/signed byte/word/signed word/dword/signed dword) $24 + (byte) KEY_K#0 ← (byte/signed byte/word/signed word/dword/signed dword) $25 + (byte) KEY_O#0 ← (byte/signed byte/word/signed word/dword/signed dword) $26 + (byte) KEY_N#0 ← (byte/signed byte/word/signed word/dword/signed dword) $27 + (byte) KEY_PLUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) KEY_P#0 ← (byte/signed byte/word/signed word/dword/signed dword) $29 + (byte) KEY_L#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2a + (byte) KEY_MINUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2b + (byte) KEY_DOT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2c + (byte) KEY_COLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2d + (byte) KEY_AT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2e + (byte) KEY_COMMA#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2f + (byte) KEY_POUND#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) KEY_ASTERISK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) KEY_SEMICOLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) $32 + (byte) KEY_HOME#0 ← (byte/signed byte/word/signed word/dword/signed dword) $33 + (byte) KEY_RSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $34 + (byte) KEY_EQUALS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) KEY_ARROW_UP#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) KEY_SLASH#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte) KEY_1#0 ← (byte/signed byte/word/signed word/dword/signed dword) $38 + (byte) KEY_ARROW_LEFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $39 + (byte) KEY_CTRL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3a + (byte) KEY_2#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3b + (byte) KEY_SPACE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3c + (byte) KEY_COMMODORE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3d + (byte) KEY_Q#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3e + (byte) KEY_RUNSTOP#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3f + (byte[]) keyboard_char_keycodes#0 ← { (byte) KEY_AT#0, (byte) KEY_A#0, (byte) KEY_B#0, (byte) KEY_C#0, (byte) KEY_D#0, (byte) KEY_E#0, (byte) KEY_F#0, (byte) KEY_G#0, (byte) KEY_H#0, (byte) KEY_I#0, (byte) KEY_J#0, (byte) KEY_K#0, (byte) KEY_L#0, (byte) KEY_M#0, (byte) KEY_N#0, (byte) KEY_O#0, (byte) KEY_P#0, (byte) KEY_Q#0, (byte) KEY_R#0, (byte) KEY_S#0, (byte) KEY_T#0, (byte) KEY_U#0, (byte) KEY_V#0, (byte) KEY_W#0, (byte) KEY_X#0, (byte) KEY_Y#0, (byte) KEY_Z#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_POUND#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_ARROW_UP#0, (byte) KEY_ARROW_LEFT#0, (byte) KEY_SPACE#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_ASTERISK#0, (byte) KEY_PLUS#0, (byte) KEY_COMMA#0, (byte) KEY_MINUS#0, (byte) KEY_DOT#0, (byte) KEY_SLASH#0, (byte) KEY_0#0, (byte) KEY_1#0, (byte) KEY_2#0, (byte) KEY_3#0, (byte) KEY_4#0, (byte) KEY_5#0, (byte) KEY_6#0, (byte) KEY_7#0, (byte) KEY_8#0, (byte) KEY_9#0, (byte) KEY_COLON#0, (byte) KEY_SEMICOLON#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_EQUALS#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f } + (byte[8]) keyboard_matrix_row_bitmask#0 ← { (byte/word/signed word/dword/signed dword) $fe, (byte/word/signed word/dword/signed dword) $fd, (byte/word/signed word/dword/signed dword) $fb, (byte/word/signed word/dword/signed dword) $f7, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $bf, (byte/signed byte/word/signed word/dword/signed dword) $7f } + (byte[8]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $10, (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/word/signed word/dword/signed dword) $80 } to:@8 @8: scope:[] from @4 (byte[8]) keyboard_events#0 ← { fill( 8, 0) } @@ -232,11 +232,11 @@ mul8u::@return: scope:[mul8u] from mul8u::@3 return to:@return @17: scope:[] from @8 - (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte*) charset#0 ← ((byte*)) (word/signed word/dword/signed dword) 8192 - (byte*) tileset#0 ← ((byte*)) (word/signed word/dword/signed dword) 10240 - (byte*) colors#0 ← ((byte*)) (word/dword/signed dword) 55296 - (byte*) level_address#0 ← ((byte*)) (word/signed word/dword/signed dword) 12288 + (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte*) charset#0 ← ((byte*)) (word/signed word/dword/signed dword) $2000 + (byte*) tileset#0 ← ((byte*)) (word/signed word/dword/signed dword) $2800 + (byte*) colors#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) level_address#0 ← ((byte*)) (word/signed word/dword/signed dword) $3000 to:@21 main: scope:[main] from @21 call init @@ -270,7 +270,7 @@ main::@8: scope:[main] from main::@2 main::@4: scope:[main] from main::@8 (byte) main::x#3 ← phi( main::@8/(byte) main::x#5 ) (byte) main::x#1 ← ++ (byte) main::x#3 - (bool~) main::$4 ← (byte) main::x#1 < (byte/signed byte/word/signed word/dword/signed dword) 16 + (bool~) main::$4 ← (byte) main::x#1 < (byte/signed byte/word/signed word/dword/signed dword) $10 if((bool~) main::$4) goto main::@1 to:main::@3 main::@3: scope:[main] from main::@3 main::@4 @@ -284,13 +284,13 @@ init: scope:[init] from main to:init::@2 init::@2: scope:[init] from init (byte*) fill::start#0 ← (byte*) screen#0 - (word) fill::size#0 ← (word/signed word/dword/signed dword) 1000 + (word) fill::size#0 ← (word/signed word/dword/signed dword) $3e8 (byte) fill::val#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 call fill to:init::@3 init::@3: scope:[init] from init::@2 (byte*) fill::start#1 ← (byte*) colors#0 - (word) fill::size#1 ← (word/signed word/dword/signed dword) 1000 + (word) fill::size#1 ← (word/signed word/dword/signed dword) $3e8 (byte) fill::val#1 ← (byte) BLACK#0 call fill to:init::@4 @@ -302,13 +302,13 @@ init::toD0181: scope:[init] from init::@4 (byte*) init::toD0181_gfx#1 ← phi( init::@4/(byte*) init::toD0181_gfx#0 ) (byte*) init::toD0181_screen#1 ← phi( init::@4/(byte*) init::toD0181_screen#0 ) (word) init::toD0181_$0#0 ← ((word)) (byte*) init::toD0181_screen#1 - (word) init::toD0181_$1#0 ← (word) init::toD0181_$0#0 & (word/signed word/dword/signed dword) 16383 + (word) init::toD0181_$1#0 ← (word) init::toD0181_$0#0 & (word/signed word/dword/signed dword) $3fff (word) init::toD0181_$2#0 ← (word) init::toD0181_$1#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) init::toD0181_$3#0 ← > (word) init::toD0181_$2#0 (word) init::toD0181_$4#0 ← ((word)) (byte*) init::toD0181_gfx#1 (byte) init::toD0181_$5#0 ← > (word) init::toD0181_$4#0 (byte) init::toD0181_$6#0 ← (byte) init::toD0181_$5#0 >> (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte) init::toD0181_$7#0 ← (byte) init::toD0181_$6#0 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) init::toD0181_$7#0 ← (byte) init::toD0181_$6#0 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte) init::toD0181_$8#0 ← (byte) init::toD0181_$3#0 | (byte) init::toD0181_$7#0 (byte) init::toD0181_return#0 ← (byte) init::toD0181_$8#0 to:init::toD0181_@return @@ -352,7 +352,7 @@ draw_block: scope:[draw_block] from main::@2 (byte~) draw_block::$2 ← (byte) draw_block::y#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) draw_block::y#1 ← (byte~) draw_block::$2 (byte) mul8u::a#1 ← (byte) draw_block::y#1 - (byte) mul8u::b#0 ← (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) mul8u::b#0 ← (byte/signed byte/word/signed word/dword/signed dword) $28 call mul8u (word) mul8u::return#2 ← (word) mul8u::return#1 to:draw_block::@1 @@ -371,13 +371,13 @@ draw_block::@1: scope:[draw_block] from draw_block *((byte*) screen#0 + (word/signed dword/dword~) draw_block::$5) ← (byte/signed byte/word/signed word/dword/signed dword) 1 (word/signed dword/dword~) draw_block::$6 ← (word) draw_block::z#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 *((byte*) colors#0 + (word/signed dword/dword~) draw_block::$6) ← (byte) YELLOW#0 - (word/signed dword/dword~) draw_block::$7 ← (word) draw_block::z#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (word/signed dword/dword~) draw_block::$7 ← (word) draw_block::z#1 + (byte/signed byte/word/signed word/dword/signed dword) $28 *((byte*) screen#0 + (word/signed dword/dword~) draw_block::$7) ← (byte/signed byte/word/signed word/dword/signed dword) 2 - (word/signed dword/dword~) draw_block::$8 ← (word) draw_block::z#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (word/signed dword/dword~) draw_block::$8 ← (word) draw_block::z#1 + (byte/signed byte/word/signed word/dword/signed dword) $28 *((byte*) colors#0 + (word/signed dword/dword~) draw_block::$8) ← (byte) YELLOW#0 - (word/signed dword/dword~) draw_block::$9 ← (word) draw_block::z#1 + (byte/signed byte/word/signed word/dword/signed dword) 41 + (word/signed dword/dword~) draw_block::$9 ← (word) draw_block::z#1 + (byte/signed byte/word/signed word/dword/signed dword) $29 *((byte*) screen#0 + (word/signed dword/dword~) draw_block::$9) ← (byte/signed byte/word/signed word/dword/signed dword) 3 - (word/signed dword/dword~) draw_block::$10 ← (word) draw_block::z#1 + (byte/signed byte/word/signed word/dword/signed dword) 41 + (word/signed dword/dword~) draw_block::$10 ← (word) draw_block::z#1 + (byte/signed byte/word/signed word/dword/signed dword) $29 *((byte*) colors#0 + (word/signed dword/dword~) draw_block::$10) ← (byte) YELLOW#0 to:draw_block::@return draw_block::@return: scope:[draw_block] from draw_block::@1 @@ -940,71 +940,71 @@ Simple Condition (bool~) fill::$1 [164] if((byte*) fill::addr#1!=(byte*) fill::e Simple Condition (bool~) mul8u::$0 [171] if((byte) mul8u::a#2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u::@2 Simple Condition (bool~) mul8u::$3 [176] if((byte~) mul8u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u::@4 Simple Condition (bool~) main::$3 [211] if((byte) main::y#1<(byte/signed byte/word/signed word/dword/signed dword) 9) goto main::@2 -Simple Condition (bool~) main::$4 [215] if((byte) main::x#1<(byte/signed byte/word/signed word/dword/signed dword) 16) goto main::@1 +Simple Condition (bool~) main::$4 [215] if((byte) main::x#1<(byte/signed byte/word/signed word/dword/signed dword) $10) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -1015,12 +1015,12 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f Constant (const byte) KEY_DEL#0 = 0 Constant (const byte) KEY_RETURN#0 = 1 Constant (const byte) KEY_CRSR_RIGHT#0 = 2 @@ -1031,62 +1031,62 @@ Constant (const byte) KEY_F5#0 = 6 Constant (const byte) KEY_CRSR_DOWN#0 = 7 Constant (const byte) KEY_3#0 = 8 Constant (const byte) KEY_W#0 = 9 -Constant (const byte) KEY_A#0 = 10 -Constant (const byte) KEY_4#0 = 11 -Constant (const byte) KEY_Z#0 = 12 -Constant (const byte) KEY_S#0 = 13 -Constant (const byte) KEY_E#0 = 14 -Constant (const byte) KEY_LSHIFT#0 = 15 -Constant (const byte) KEY_5#0 = 16 -Constant (const byte) KEY_R#0 = 17 -Constant (const byte) KEY_D#0 = 18 -Constant (const byte) KEY_6#0 = 19 -Constant (const byte) KEY_C#0 = 20 -Constant (const byte) KEY_F#0 = 21 -Constant (const byte) KEY_T#0 = 22 -Constant (const byte) KEY_X#0 = 23 -Constant (const byte) KEY_7#0 = 24 -Constant (const byte) KEY_Y#0 = 25 -Constant (const byte) KEY_G#0 = 26 -Constant (const byte) KEY_8#0 = 27 -Constant (const byte) KEY_B#0 = 28 -Constant (const byte) KEY_H#0 = 29 -Constant (const byte) KEY_U#0 = 30 -Constant (const byte) KEY_V#0 = 31 -Constant (const byte) KEY_9#0 = 32 -Constant (const byte) KEY_I#0 = 33 -Constant (const byte) KEY_J#0 = 34 -Constant (const byte) KEY_0#0 = 35 -Constant (const byte) KEY_M#0 = 36 -Constant (const byte) KEY_K#0 = 37 -Constant (const byte) KEY_O#0 = 38 -Constant (const byte) KEY_N#0 = 39 -Constant (const byte) KEY_PLUS#0 = 40 -Constant (const byte) KEY_P#0 = 41 -Constant (const byte) KEY_L#0 = 42 -Constant (const byte) KEY_MINUS#0 = 43 -Constant (const byte) KEY_DOT#0 = 44 -Constant (const byte) KEY_COLON#0 = 45 -Constant (const byte) KEY_AT#0 = 46 -Constant (const byte) KEY_COMMA#0 = 47 -Constant (const byte) KEY_POUND#0 = 48 -Constant (const byte) KEY_ASTERISK#0 = 49 -Constant (const byte) KEY_SEMICOLON#0 = 50 -Constant (const byte) KEY_HOME#0 = 51 -Constant (const byte) KEY_RSHIFT#0 = 52 -Constant (const byte) KEY_EQUALS#0 = 53 -Constant (const byte) KEY_ARROW_UP#0 = 54 -Constant (const byte) KEY_SLASH#0 = 55 -Constant (const byte) KEY_1#0 = 56 -Constant (const byte) KEY_ARROW_LEFT#0 = 57 -Constant (const byte) KEY_CTRL#0 = 58 -Constant (const byte) KEY_2#0 = 59 -Constant (const byte) KEY_SPACE#0 = 60 -Constant (const byte) KEY_COMMODORE#0 = 61 -Constant (const byte) KEY_Q#0 = 62 -Constant (const byte) KEY_RUNSTOP#0 = 63 -Constant (const byte[8]) keyboard_matrix_row_bitmask#0 = { 254, 253, 251, 247, 239, 223, 191, 127 } -Constant (const byte[8]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, 16, 32, 64, 128 } +Constant (const byte) KEY_A#0 = $a +Constant (const byte) KEY_4#0 = $b +Constant (const byte) KEY_Z#0 = $c +Constant (const byte) KEY_S#0 = $d +Constant (const byte) KEY_E#0 = $e +Constant (const byte) KEY_LSHIFT#0 = $f +Constant (const byte) KEY_5#0 = $10 +Constant (const byte) KEY_R#0 = $11 +Constant (const byte) KEY_D#0 = $12 +Constant (const byte) KEY_6#0 = $13 +Constant (const byte) KEY_C#0 = $14 +Constant (const byte) KEY_F#0 = $15 +Constant (const byte) KEY_T#0 = $16 +Constant (const byte) KEY_X#0 = $17 +Constant (const byte) KEY_7#0 = $18 +Constant (const byte) KEY_Y#0 = $19 +Constant (const byte) KEY_G#0 = $1a +Constant (const byte) KEY_8#0 = $1b +Constant (const byte) KEY_B#0 = $1c +Constant (const byte) KEY_H#0 = $1d +Constant (const byte) KEY_U#0 = $1e +Constant (const byte) KEY_V#0 = $1f +Constant (const byte) KEY_9#0 = $20 +Constant (const byte) KEY_I#0 = $21 +Constant (const byte) KEY_J#0 = $22 +Constant (const byte) KEY_0#0 = $23 +Constant (const byte) KEY_M#0 = $24 +Constant (const byte) KEY_K#0 = $25 +Constant (const byte) KEY_O#0 = $26 +Constant (const byte) KEY_N#0 = $27 +Constant (const byte) KEY_PLUS#0 = $28 +Constant (const byte) KEY_P#0 = $29 +Constant (const byte) KEY_L#0 = $2a +Constant (const byte) KEY_MINUS#0 = $2b +Constant (const byte) KEY_DOT#0 = $2c +Constant (const byte) KEY_COLON#0 = $2d +Constant (const byte) KEY_AT#0 = $2e +Constant (const byte) KEY_COMMA#0 = $2f +Constant (const byte) KEY_POUND#0 = $30 +Constant (const byte) KEY_ASTERISK#0 = $31 +Constant (const byte) KEY_SEMICOLON#0 = $32 +Constant (const byte) KEY_HOME#0 = $33 +Constant (const byte) KEY_RSHIFT#0 = $34 +Constant (const byte) KEY_EQUALS#0 = $35 +Constant (const byte) KEY_ARROW_UP#0 = $36 +Constant (const byte) KEY_SLASH#0 = $37 +Constant (const byte) KEY_1#0 = $38 +Constant (const byte) KEY_ARROW_LEFT#0 = $39 +Constant (const byte) KEY_CTRL#0 = $3a +Constant (const byte) KEY_2#0 = $3b +Constant (const byte) KEY_SPACE#0 = $3c +Constant (const byte) KEY_COMMODORE#0 = $3d +Constant (const byte) KEY_Q#0 = $3e +Constant (const byte) KEY_RUNSTOP#0 = $3f +Constant (const byte[8]) keyboard_matrix_row_bitmask#0 = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f } +Constant (const byte[8]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, $10, $20, $40, $80 } Constant (const byte[8]) keyboard_events#0 = { fill( 8, 0) } Constant (const byte) keyboard_events_size#0 = 0 Constant (const byte) keyboard_modifiers#0 = 0 @@ -1096,19 +1096,19 @@ Constant (const byte) KEY_MODIFIER_CTRL#0 = 4 Constant (const byte) KEY_MODIFIER_COMMODORE#0 = 8 Constant (const byte[8]) keyboard_scan_values#0 = { fill( 8, 0) } Constant (const word) mul8u::res#0 = 0 -Constant (const byte*) screen#0 = ((byte*))1024 -Constant (const byte*) charset#0 = ((byte*))8192 -Constant (const byte*) tileset#0 = ((byte*))10240 -Constant (const byte*) colors#0 = ((byte*))55296 -Constant (const byte*) level_address#0 = ((byte*))12288 +Constant (const byte*) screen#0 = ((byte*))$400 +Constant (const byte*) charset#0 = ((byte*))$2000 +Constant (const byte*) tileset#0 = ((byte*))$2800 +Constant (const byte*) colors#0 = ((byte*))$d800 +Constant (const byte*) level_address#0 = ((byte*))$3000 Constant (const byte) main::x#0 = 0 Constant (const byte) main::y#0 = 0 -Constant (const word) fill::size#0 = 1000 +Constant (const word) fill::size#0 = $3e8 Constant (const byte) fill::val#0 = 0 -Constant (const word) fill::size#1 = 1000 -Constant (const byte) mul8u::b#0 = 40 +Constant (const word) fill::size#1 = $3e8 +Constant (const byte) mul8u::b#0 = $28 Successful SSA optimization Pass2ConstantIdentification -Constant (const byte[]) keyboard_char_keycodes#0 = { KEY_AT#0, KEY_A#0, KEY_B#0, KEY_C#0, KEY_D#0, KEY_E#0, KEY_F#0, KEY_G#0, KEY_H#0, KEY_I#0, KEY_J#0, KEY_K#0, KEY_L#0, KEY_M#0, KEY_N#0, KEY_O#0, KEY_P#0, KEY_Q#0, KEY_R#0, KEY_S#0, KEY_T#0, KEY_U#0, KEY_V#0, KEY_W#0, KEY_X#0, KEY_Y#0, KEY_Z#0, 63, KEY_POUND#0, 63, KEY_ARROW_UP#0, KEY_ARROW_LEFT#0, KEY_SPACE#0, 63, 63, 63, 63, 63, 63, 63, 63, 63, KEY_ASTERISK#0, KEY_PLUS#0, KEY_COMMA#0, KEY_MINUS#0, KEY_DOT#0, KEY_SLASH#0, KEY_0#0, KEY_1#0, KEY_2#0, KEY_3#0, KEY_4#0, KEY_5#0, KEY_6#0, KEY_7#0, KEY_8#0, KEY_9#0, KEY_COLON#0, KEY_SEMICOLON#0, 63, KEY_EQUALS#0, 63, 63 } +Constant (const byte[]) keyboard_char_keycodes#0 = { KEY_AT#0, KEY_A#0, KEY_B#0, KEY_C#0, KEY_D#0, KEY_E#0, KEY_F#0, KEY_G#0, KEY_H#0, KEY_I#0, KEY_J#0, KEY_K#0, KEY_L#0, KEY_M#0, KEY_N#0, KEY_O#0, KEY_P#0, KEY_Q#0, KEY_R#0, KEY_S#0, KEY_T#0, KEY_U#0, KEY_V#0, KEY_W#0, KEY_X#0, KEY_Y#0, KEY_Z#0, $3f, KEY_POUND#0, $3f, KEY_ARROW_UP#0, KEY_ARROW_LEFT#0, KEY_SPACE#0, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, KEY_ASTERISK#0, KEY_PLUS#0, KEY_COMMA#0, KEY_MINUS#0, KEY_DOT#0, KEY_SLASH#0, KEY_0#0, KEY_1#0, KEY_2#0, KEY_3#0, KEY_4#0, KEY_5#0, KEY_6#0, KEY_7#0, KEY_8#0, KEY_9#0, KEY_COLON#0, KEY_SEMICOLON#0, $3f, KEY_EQUALS#0, $3f, $3f } Constant (const byte) KEY_MODIFIER_SHIFT#0 = KEY_MODIFIER_LSHIFT#0|KEY_MODIFIER_RSHIFT#0 Constant (const word) mul8u::mb#0 = ((word))mul8u::b#0 Constant (const byte) draw_block::color#0 = YELLOW#0 @@ -1121,23 +1121,23 @@ Successful SSA optimization Pass2ConstantIdentification Constant (const word) init::toD0181_$0#0 = ((word))init::toD0181_screen#0 Constant (const word) init::toD0181_$4#0 = ((word))init::toD0181_gfx#0 Successful SSA optimization Pass2ConstantIdentification -Constant (const word) init::toD0181_$1#0 = init::toD0181_$0#0&16383 +Constant (const word) init::toD0181_$1#0 = init::toD0181_$0#0&$3fff Constant (const byte) init::toD0181_$5#0 = >init::toD0181_$4#0 Successful SSA optimization Pass2ConstantIdentification Constant (const word) init::toD0181_$2#0 = init::toD0181_$1#0<<2 Constant (const byte) init::toD0181_$6#0 = init::toD0181_$5#0>>2 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) init::toD0181_$3#0 = >init::toD0181_$2#0 -Constant (const byte) init::toD0181_$7#0 = init::toD0181_$6#0&15 +Constant (const byte) init::toD0181_$7#0 = init::toD0181_$6#0&$f Successful SSA optimization Pass2ConstantIdentification Constant (const byte) init::toD0181_return#0 = init::toD0181_$3#0|init::toD0181_$7#0 Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in assignment *(screen#0+1 + draw_block::$5) Consolidated array index constant in assignment *(colors#0+1 + draw_block::$6) -Consolidated array index constant in assignment *(screen#0+40 + draw_block::$7) -Consolidated array index constant in assignment *(colors#0+40 + draw_block::$8) -Consolidated array index constant in assignment *(screen#0+41 + draw_block::$9) -Consolidated array index constant in assignment *(colors#0+41 + draw_block::$10) +Consolidated array index constant in assignment *(screen#0+$28 + draw_block::$7) +Consolidated array index constant in assignment *(colors#0+$28 + draw_block::$8) +Consolidated array index constant in assignment *(screen#0+$29 + draw_block::$9) +Consolidated array index constant in assignment *(colors#0+$29 + draw_block::$10) Successful SSA optimization Pass2ConstantAdditionElimination if() condition always true - replacing block destination [29] if(true) goto main::@3 Successful SSA optimization Pass2ConstantIfs @@ -1173,24 +1173,24 @@ Constant inlined init::toD0181_gfx#0 = (const byte*) charset#0 Constant inlined fill::val#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined init::toD0181_$0#0 = ((word))(const byte*) screen#0 Constant inlined mul8u::mb#0 = ((word))(const byte) mul8u::b#0 -Constant inlined init::toD0181_$2#0 = ((word))(const byte*) screen#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined init::toD0181_$1#0 = ((word))(const byte*) screen#0&(word/signed word/dword/signed dword) 16383 +Constant inlined init::toD0181_$2#0 = ((word))(const byte*) screen#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined init::toD0181_$1#0 = ((word))(const byte*) screen#0&(word/signed word/dword/signed dword) $3fff Constant inlined fill::val#1 = (const byte) BLACK#0 Constant inlined init::toD0181_$4#0 = ((word))(const byte*) charset#0 -Constant inlined init::toD0181_$3#0 = >((word))(const byte*) screen#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined fill::size#1 = (word/signed word/dword/signed dword) 1000 +Constant inlined init::toD0181_$3#0 = >((word))(const byte*) screen#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined fill::size#1 = (word/signed word/dword/signed dword) $3e8 Constant inlined init::toD0181_$6#0 = >((word))(const byte*) charset#0>>(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined fill::size#0 = (word/signed word/dword/signed dword) 1000 +Constant inlined fill::size#0 = (word/signed word/dword/signed dword) $3e8 Constant inlined main::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined init::toD0181_$5#0 = >((word))(const byte*) charset#0 Constant inlined main::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined init::toD0181_$7#0 = >((word))(const byte*) charset#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 +Constant inlined init::toD0181_$7#0 = >((word))(const byte*) charset#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) $f Constant inlined mul8u::res#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined fill::start#1 = (const byte*) colors#0 Constant inlined fill::start#0 = (const byte*) screen#0 Constant inlined init::toD0181_screen#0 = (const byte*) screen#0 Successful SSA optimization Pass2ConstantInlining -Identical Phi Values (word) fill::size#2 (word/signed word/dword/signed dword) 1000 +Identical Phi Values (word) fill::size#2 (word/signed word/dword/signed dword) $3e8 Successful SSA optimization Pass2IdenticalPhiElimination Added new block during phi lifting main::@9(between main::@4 and main::@1) Added new block during phi lifting main::@10(between main::@8 and main::@2) @@ -1270,7 +1270,7 @@ main::@8: scope:[main] from main::@2 to:main::@4 main::@4: scope:[main] from main::@8 [16] (byte) main::x#1 ← ++ (byte) main::x#4 - [17] if((byte) main::x#1<(byte/signed byte/word/signed word/dword/signed dword) 16) goto main::@1 + [17] if((byte) main::x#1<(byte/signed byte/word/signed word/dword/signed dword) $10) goto main::@1 to:main::@3 main::@3: scope:[main] from main::@3 main::@4 [18] phi() @@ -1292,10 +1292,10 @@ draw_block::@1: scope:[draw_block] from draw_block [30] *((const byte*) colors#0 + (word) draw_block::z#1) ← (const byte) YELLOW#0 [31] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (word) draw_block::z#1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [32] *((const byte*) colors#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (word) draw_block::z#1) ← (const byte) YELLOW#0 - [33] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (word) draw_block::z#1) ← (byte/signed byte/word/signed word/dword/signed dword) 2 - [34] *((const byte*) colors#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (word) draw_block::z#1) ← (const byte) YELLOW#0 - [35] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 41 + (word) draw_block::z#1) ← (byte/signed byte/word/signed word/dword/signed dword) 3 - [36] *((const byte*) colors#0+(byte/signed byte/word/signed word/dword/signed dword) 41 + (word) draw_block::z#1) ← (const byte) YELLOW#0 + [33] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (word) draw_block::z#1) ← (byte/signed byte/word/signed word/dword/signed dword) 2 + [34] *((const byte*) colors#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (word) draw_block::z#1) ← (const byte) YELLOW#0 + [35] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $29 + (word) draw_block::z#1) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [36] *((const byte*) colors#0+(byte/signed byte/word/signed word/dword/signed dword) $29 + (word) draw_block::z#1) ← (const byte) YELLOW#0 to:draw_block::@return draw_block::@return: scope:[draw_block] from draw_block::@1 [37] return @@ -1354,7 +1354,7 @@ init::@return: scope:[init] from init::@1 fill: scope:[fill] from init::@2 init::@3 [63] (byte) fill::val#3 ← phi( init::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 init::@3/(const byte) BLACK#0 ) [63] (byte*) fill::addr#0 ← phi( init::@2/(const byte*) screen#0 init::@3/(const byte*) colors#0 ) - [64] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 + [64] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) $3e8 to:fill::@1 fill::@1: scope:[fill] from fill fill::@1 [65] (byte*) fill::addr#2 ← phi( fill/(byte*) fill::addr#0 fill::@1/(byte*) fill::addr#1 ) @@ -1795,7 +1795,7 @@ main: { b4: //SEG33 [16] (byte) main::x#1 ← ++ (byte) main::x#4 -- vbuz1=_inc_vbuz1 inc x - //SEG34 [17] if((byte) main::x#1<(byte/signed byte/word/signed word/dword/signed dword) 16) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 + //SEG34 [17] if((byte) main::x#1<(byte/signed byte/word/signed word/dword/signed dword) $10) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 lda x cmp #$10 bcc b1_from_b4 @@ -1917,7 +1917,7 @@ draw_block: { lda #YELLOW !: sta colors+1 - //SEG54 [33] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (word) draw_block::z#1) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- pbuc1_derefidx_vwuz1=vbuc2 + //SEG54 [33] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (word) draw_block::z#1) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- pbuc1_derefidx_vwuz1=vbuc2 lda #((word))(const byte*) screen#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) charset#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte) init::toD0181_return#0 toD0181_return = >((word))(const byte*) screen#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) charset#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) $f (byte*) init::toD0181_screen (void()) init_sprites() (label) init_sprites::@return @@ -3118,7 +3118,7 @@ FINAL SYMBOL TABLE (byte) keyboard_modifiers (byte[8]) keyboard_scan_values (byte*) level_address -(const byte*) level_address#0 level_address = ((byte*))(word/signed word/dword/signed dword) 12288 +(const byte*) level_address#0 level_address = ((byte*))(word/signed word/dword/signed dword) $3000 (void()) main() (label) main::@1 (label) main::@2 @@ -3147,7 +3147,7 @@ FINAL SYMBOL TABLE (byte) mul8u::a#1 reg byte x 2.0 (byte) mul8u::a#2 reg byte x 667.6666666666667 (byte) mul8u::b -(const byte) mul8u::b#0 b = (byte/signed byte/word/signed word/dword/signed dword) 40 +(const byte) mul8u::b#0 b = (byte/signed byte/word/signed word/dword/signed dword) $28 (word) mul8u::mb (word) mul8u::mb#1 mb zp ZP_WORD:6 2002.0 (word) mul8u::mb#2 mb zp ZP_WORD:6 429.0 @@ -3158,9 +3158,9 @@ FINAL SYMBOL TABLE (word) mul8u::return (word) mul8u::return#2 return zp ZP_WORD:4 4.0 (byte*) screen -(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) tileset -(const byte*) tileset#0 tileset = ((byte*))(word/signed word/dword/signed dword) 10240 +(const byte*) tileset#0 tileset = ((byte*))(word/signed word/dword/signed dword) $2800 zp ZP_BYTE:2 [ main::x#4 main::x#1 ] zp ZP_BYTE:3 [ main::y#2 main::y#1 ] @@ -3269,7 +3269,7 @@ main: { //SEG32 main::@4 //SEG33 [16] (byte) main::x#1 ← ++ (byte) main::x#4 -- vbuz1=_inc_vbuz1 inc x - //SEG34 [17] if((byte) main::x#1<(byte/signed byte/word/signed word/dword/signed dword) 16) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 + //SEG34 [17] if((byte) main::x#1<(byte/signed byte/word/signed word/dword/signed dword) $10) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 lda x cmp #$10 bcc b1 @@ -3364,7 +3364,7 @@ draw_block: { lda #YELLOW !: sta colors+1 - //SEG54 [33] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (word) draw_block::z#1) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- pbuc1_derefidx_vwuz1=vbuc2 + //SEG54 [33] *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (word) draw_block::z#1) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- pbuc1_derefidx_vwuz1=vbuc2 lda #((word))(const byte*) screen#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) charset#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 +(const byte) init::toD0181_return#0 toD0181_return = >((word))(const byte*) screen#0&(word/signed word/dword/signed dword) $3fff<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) charset#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) $f (byte*) init::toD0181_screen (void()) init_sprites() (label) init_sprites::@return @@ -233,7 +233,7 @@ (byte) keyboard_modifiers (byte[8]) keyboard_scan_values (byte*) level_address -(const byte*) level_address#0 level_address = ((byte*))(word/signed word/dword/signed dword) 12288 +(const byte*) level_address#0 level_address = ((byte*))(word/signed word/dword/signed dword) $3000 (void()) main() (label) main::@1 (label) main::@2 @@ -262,7 +262,7 @@ (byte) mul8u::a#1 reg byte x 2.0 (byte) mul8u::a#2 reg byte x 667.6666666666667 (byte) mul8u::b -(const byte) mul8u::b#0 b = (byte/signed byte/word/signed word/dword/signed dword) 40 +(const byte) mul8u::b#0 b = (byte/signed byte/word/signed word/dword/signed dword) $28 (word) mul8u::mb (word) mul8u::mb#1 mb zp ZP_WORD:6 2002.0 (word) mul8u::mb#2 mb zp ZP_WORD:6 429.0 @@ -273,9 +273,9 @@ (word) mul8u::return (word) mul8u::return#2 return zp ZP_WORD:4 4.0 (byte*) screen -(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) tileset -(const byte*) tileset#0 tileset = ((byte*))(word/signed word/dword/signed dword) 10240 +(const byte*) tileset#0 tileset = ((byte*))(word/signed word/dword/signed dword) $2800 zp ZP_BYTE:2 [ main::x#4 main::x#1 ] zp ZP_BYTE:3 [ main::y#2 main::y#1 ] diff --git a/src/test/ref/scroll-clobber.log b/src/test/ref/scroll-clobber.log index 095cab288..96f2c8f36 100644 --- a/src/test/ref/scroll-clobber.log +++ b/src/test/ref/scroll-clobber.log @@ -1,8 +1,8 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte*) SCROLL#0 ← ((byte*)) (word/dword/signed dword) 53270 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte*) SCROLL#0 ← ((byte*)) (word/dword/signed dword) $d016 (byte[]) TEXT#0 ← (const string) $0 to:@1 main: scope:[main] from @1 @@ -105,8 +105,8 @@ Redundant Phi (byte*) SCREEN#1 (byte*) SCREEN#4 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) main::$1 [10] if((byte) main::c#0!=(byte) '@') goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) SCREEN#0 = ((byte*))1024 -Constant (const byte*) SCROLL#0 = ((byte*))53270 +Constant (const byte*) SCREEN#0 = ((byte*))$400 +Constant (const byte*) SCROLL#0 = ((byte*))$d016 Constant (const byte[]) TEXT#0 = $0 Constant (const byte) main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification @@ -433,7 +433,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SCROLL (byte[]) TEXT (const byte[]) TEXT#0 TEXT = (string) "01234567@" diff --git a/src/test/ref/scroll-clobber.sym b/src/test/ref/scroll-clobber.sym index 208e54e7c..8d4cd8fb5 100644 --- a/src/test/ref/scroll-clobber.sym +++ b/src/test/ref/scroll-clobber.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SCROLL (byte[]) TEXT (const byte[]) TEXT#0 TEXT = (string) "01234567@" diff --git a/src/test/ref/signed-bytes.cfg b/src/test/ref/signed-bytes.cfg index 71554c819..89b9fc9a9 100644 --- a/src/test/ref/signed-bytes.cfg +++ b/src/test/ref/signed-bytes.cfg @@ -12,8 +12,8 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@2 [5] (byte) main::j#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@2/(byte) main::j#1 ) - [5] (signed byte) main::i#2 ← phi( main/-(byte/signed byte/word/signed word/dword/signed dword) 127 main::@2/(signed byte) main::i#1 ) - [6] if((signed byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) 127) goto main::@2 + [5] (signed byte) main::i#2 ← phi( main/-(byte/signed byte/word/signed word/dword/signed dword) $7f main::@2/(signed byte) main::i#1 ) + [6] if((signed byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) $7f) goto main::@2 to:main::@return main::@return: scope:[main] from main::@1 [7] return diff --git a/src/test/ref/signed-bytes.log b/src/test/ref/signed-bytes.log index b0780c62f..bc013eeef 100644 --- a/src/test/ref/signed-bytes.log +++ b/src/test/ref/signed-bytes.log @@ -3,16 +3,16 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) main::j#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (signed byte/signed word/signed dword~) main::$0 ← - (byte/signed byte/word/signed word/dword/signed dword) 127 + (signed byte/signed word/signed dword~) main::$0 ← - (byte/signed byte/word/signed word/dword/signed dword) $7f (signed byte) main::i#0 ← (signed byte/signed word/signed dword~) main::$0 to:main::@1 main::@1: scope:[main] from main main::@2 (byte) main::j#3 ← phi( main/(byte) main::j#0 main::@2/(byte) main::j#1 ) (byte*) main::screen#2 ← phi( main/(byte*) main::screen#0 main::@2/(byte*) main::screen#1 ) (signed byte) main::i#2 ← phi( main/(signed byte) main::i#0 main::@2/(signed byte) main::i#1 ) - (bool~) main::$1 ← (signed byte) main::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 127 + (bool~) main::$1 ← (signed byte) main::i#2 < (byte/signed byte/word/signed word/dword/signed dword) $7f if((bool~) main::$1) goto main::@2 to:main::@return main::@2: scope:[main] from main::@1 @@ -72,17 +72,17 @@ Self Phi Eliminated (byte*) main::screen#1 Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) main::screen#1 (byte*) main::screen#0 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$1 [6] if((signed byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) 127) goto main::@2 +Simple Condition (bool~) main::$1 [6] if((signed byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) $7f) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) main::screen#0 = ((byte*))1024 +Constant (const byte*) main::screen#0 = ((byte*))$400 Constant (const byte) main::j#0 = 0 -Constant (const signed byte) main::i#0 = -127 +Constant (const signed byte) main::i#0 = -$7f Successful SSA optimization Pass2ConstantIdentification Eliminating Noop Cast (byte~) main::$2 ← ((byte)) (signed byte) main::i#2 Successful SSA optimization Pass2NopCastElimination Inlining constant with var siblings (const byte) main::j#0 Inlining constant with var siblings (const signed byte) main::i#0 -Constant inlined main::i#0 = -(byte/signed byte/word/signed word/dword/signed dword) 127 +Constant inlined main::i#0 = -(byte/signed byte/word/signed word/dword/signed dword) $7f Constant inlined main::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of @begin @@ -116,8 +116,8 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@2 [5] (byte) main::j#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@2/(byte) main::j#1 ) - [5] (signed byte) main::i#2 ← phi( main/-(byte/signed byte/word/signed word/dword/signed dword) 127 main::@2/(signed byte) main::i#1 ) - [6] if((signed byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) 127) goto main::@2 + [5] (signed byte) main::i#2 ← phi( main/-(byte/signed byte/word/signed word/dword/signed dword) $7f main::@2/(signed byte) main::i#1 ) + [6] if((signed byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) $7f) goto main::@2 to:main::@return main::@return: scope:[main] from main::@1 [7] return @@ -181,13 +181,13 @@ main: { //SEG12 [5] phi (byte) main::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 lda #0 sta j - //SEG13 [5] phi (signed byte) main::i#2 = -(byte/signed byte/word/signed word/dword/signed dword) 127 [phi:main->main::@1#1] -- vbsz1=vbsc1 + //SEG13 [5] phi (signed byte) main::i#2 = -(byte/signed byte/word/signed word/dword/signed dword) $7f [phi:main->main::@1#1] -- vbsz1=vbsc1 lda #-$7f sta i jmp b1 //SEG14 main::@1 b1: - //SEG15 [6] if((signed byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) 127) goto main::@2 -- vbsz1_lt_vbuc1_then_la1 + //SEG15 [6] if((signed byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) $7f) goto main::@2 -- vbsz1_lt_vbuc1_then_la1 lda i sec sbc #$7f @@ -218,11 +218,11 @@ main: { } REGISTER UPLIFT POTENTIAL REGISTERS -Statement [6] if((signed byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) 127) goto main::@2 [ main::i#2 main::j#2 ] ( main:2 [ main::i#2 main::j#2 ] ) always clobbers reg byte a +Statement [6] if((signed byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) $7f) goto main::@2 [ main::i#2 main::j#2 ] ( main:2 [ main::i#2 main::j#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ main::j#2 main::j#1 ] Statement [8] *((const byte*) main::screen#0 + (byte) main::j#2) ← (byte)(signed byte) main::i#2 [ main::i#2 main::j#2 ] ( main:2 [ main::i#2 main::j#2 ] ) always clobbers reg byte a -Statement [6] if((signed byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) 127) goto main::@2 [ main::i#2 main::j#2 ] ( main:2 [ main::i#2 main::j#2 ] ) always clobbers reg byte a +Statement [6] if((signed byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) $7f) goto main::@2 [ main::i#2 main::j#2 ] ( main:2 [ main::i#2 main::j#2 ] ) always clobbers reg byte a Statement [8] *((const byte*) main::screen#0 + (byte) main::j#2) ← (byte)(signed byte) main::i#2 [ main::i#2 main::j#2 ] ( main:2 [ main::i#2 main::j#2 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ main::i#2 main::i#1 ] : zp ZP_BYTE:2 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:3 [ main::j#2 main::j#1 ] : zp ZP_BYTE:3 , reg byte x , reg byte y , @@ -264,12 +264,12 @@ main: { b1_from_main: //SEG12 [5] phi (byte) main::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuyy=vbuc1 ldy #0 - //SEG13 [5] phi (signed byte) main::i#2 = -(byte/signed byte/word/signed word/dword/signed dword) 127 [phi:main->main::@1#1] -- vbsxx=vbsc1 + //SEG13 [5] phi (signed byte) main::i#2 = -(byte/signed byte/word/signed word/dword/signed dword) $7f [phi:main->main::@1#1] -- vbsxx=vbsc1 ldx #-$7f jmp b1 //SEG14 main::@1 b1: - //SEG15 [6] if((signed byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) 127) goto main::@2 -- vbsxx_lt_vbuc1_then_la1 + //SEG15 [6] if((signed byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) $7f) goto main::@2 -- vbsxx_lt_vbuc1_then_la1 txa sec sbc #$7f @@ -335,7 +335,7 @@ FINAL SYMBOL TABLE (byte) main::j#1 reg byte y 22.0 (byte) main::j#2 reg byte y 8.25 (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 reg byte x [ main::i#2 main::i#1 ] reg byte y [ main::j#2 main::j#1 ] @@ -363,11 +363,11 @@ main: { //SEG11 [5] phi from main to main::@1 [phi:main->main::@1] //SEG12 [5] phi (byte) main::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuyy=vbuc1 ldy #0 - //SEG13 [5] phi (signed byte) main::i#2 = -(byte/signed byte/word/signed word/dword/signed dword) 127 [phi:main->main::@1#1] -- vbsxx=vbsc1 + //SEG13 [5] phi (signed byte) main::i#2 = -(byte/signed byte/word/signed word/dword/signed dword) $7f [phi:main->main::@1#1] -- vbsxx=vbsc1 ldx #-$7f //SEG14 main::@1 b1: - //SEG15 [6] if((signed byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) 127) goto main::@2 -- vbsxx_lt_vbuc1_then_la1 + //SEG15 [6] if((signed byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) $7f) goto main::@2 -- vbsxx_lt_vbuc1_then_la1 txa sec sbc #$7f diff --git a/src/test/ref/signed-bytes.sym b/src/test/ref/signed-bytes.sym index 1c36cd3e3..4c3649aed 100644 --- a/src/test/ref/signed-bytes.sym +++ b/src/test/ref/signed-bytes.sym @@ -12,7 +12,7 @@ (byte) main::j#1 reg byte y 22.0 (byte) main::j#2 reg byte y 8.25 (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 reg byte x [ main::i#2 main::i#1 ] reg byte y [ main::j#2 main::j#1 ] diff --git a/src/test/ref/signed-words.cfg b/src/test/ref/signed-words.cfg index d188bb996..c629f090d 100644 --- a/src/test/ref/signed-words.cfg +++ b/src/test/ref/signed-words.cfg @@ -12,12 +12,12 @@ main: scope:[main] from @7 [5] call init to:main::@2 main::@2: scope:[main] from main main::@2 main::@3 - [6] (signed word) yvel_init#13 ← phi( main::@3/(signed word) yvel_init#11 main/(byte/signed byte/word/signed word/dword/signed dword) 100 ) - [6] (signed word) xvel#12 ← phi( main::@3/(signed word) xvel#10 main/(byte/word/signed word/dword/signed dword) 200 ) + [6] (signed word) yvel_init#13 ← phi( main::@3/(signed word) yvel_init#11 main/(byte/signed byte/word/signed word/dword/signed dword) $64 ) + [6] (signed word) xvel#12 ← phi( main::@3/(signed word) xvel#10 main/(byte/word/signed word/dword/signed dword) $c8 ) [6] (signed word) ypos#13 ← phi( main::@3/(signed word) ypos#11 main/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [6] (signed word) xpos#12 ← phi( main::@3/(signed word) xpos#10 main/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [6] (signed word) yvel#12 ← phi( main::@3/(signed word) yvel#10 main/(byte/signed byte/word/signed word/dword/signed dword) 100 ) - [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 + [6] (signed word) yvel#12 ← phi( main::@3/(signed word) yvel#10 main/(byte/signed byte/word/signed word/dword/signed dword) $64 ) + [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 [8] phi() @@ -28,11 +28,11 @@ anim: scope:[anim] from main::@3 to:anim::@3 anim::@3: scope:[anim] from anim [11] (signed word) xvel#14 ← - (signed word) xvel#12 - [12] (signed word) yvel_init#3 ← (signed word) yvel_init#13 - (byte/signed byte/word/signed word/dword/signed dword) 10 - [13] if((signed word) yvel_init#3>=-(byte/word/signed word/dword/signed dword) 200) goto anim::@5 + [12] (signed word) yvel_init#3 ← (signed word) yvel_init#13 - (byte/signed byte/word/signed word/dword/signed dword) $a + [13] if((signed word) yvel_init#3>=-(byte/word/signed word/dword/signed dword) $c8) goto anim::@5 to:anim::@2 anim::@2: scope:[anim] from anim::@3 anim::@5 - [14] (signed word) yvel#4 ← phi( anim::@5/(signed word) yvel_init#3 anim::@3/(byte/word/signed word/dword/signed dword) 200 ) + [14] (signed word) yvel#4 ← phi( anim::@5/(signed word) yvel_init#3 anim::@3/(byte/word/signed word/dword/signed dword) $c8 ) [15] (signed word~) yvel#22 ← (signed word) yvel#4 to:anim::@1 anim::@1: scope:[anim] from anim anim::@2 @@ -45,9 +45,9 @@ anim::@1: scope:[anim] from anim anim::@2 [18] (signed word) xpos#10 ← (signed word) xpos#9 + (signed word) xvel#10 [19] (signed word) ypos#11 ← (signed word) ypos#10 + (signed word) yvel#10 [20] (signed word~) anim::$10 ← (signed word) xpos#10 >> (byte/signed byte/word/signed word/dword/signed dword) 7 - [21] (signed word) anim::sprite_x#0 ← (signed word~) anim::$10 + (byte/word/signed word/dword/signed dword) 160 + [21] (signed word) anim::sprite_x#0 ← (signed word~) anim::$10 + (byte/word/signed word/dword/signed dword) $a0 [22] (signed word~) anim::$12 ← (signed word) ypos#11 >> (byte/signed byte/word/signed word/dword/signed dword) 5 - [23] (signed word) anim::sprite_y#0 ← (byte/word/signed word/dword/signed dword) 230 - (signed word~) anim::$12 + [23] (signed word) anim::sprite_y#0 ← (byte/word/signed word/dword/signed dword) $e6 - (signed word~) anim::$12 [24] (byte~) anim::$14 ← ((byte)) (signed word) anim::sprite_x#0 [25] *((const byte*) SPRITES_XPOS#0) ← (byte~) anim::$14 [26] (byte~) anim::$15 ← ((byte)) (signed word) anim::sprite_y#0 @@ -65,22 +65,22 @@ init: scope:[init] from main [32] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [33] *((const byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [34] *((const byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [35] *((const byte*) SPRITES_XPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) 100 - [36] *((const byte*) SPRITES_YPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) 100 + [35] *((const byte*) SPRITES_XPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) $64 + [36] *((const byte*) SPRITES_YPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) $64 [37] *((const byte*) SPRITES_COLS#0) ← (const byte) WHITE#0 - [38] *((const byte*) SPRITES_PTR#0) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 + [38] *((const byte*) SPRITES_PTR#0) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 to:init::@1 init::@1: scope:[init] from init init::@1 [39] (byte*) init::sc#2 ← phi( init/(const byte*) SCREEN#0 init::@1/(byte*) init::sc#1 ) [40] *((byte*) init::sc#2) ← (byte) ' ' [41] (byte*) init::sc#1 ← ++ (byte*) init::sc#2 - [42] if((byte*) init::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto init::@1 + [42] if((byte*) init::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto init::@1 to:init::@2 init::@2: scope:[init] from init::@1 init::@2 [43] (byte) init::i#2 ← phi( init::@2/(byte) init::i#1 init::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [44] *((const byte*) SPRITE#0 + (byte) init::i#2) ← (byte/word/signed word/dword/signed dword) 255 + [44] *((const byte*) SPRITE#0 + (byte) init::i#2) ← (byte/word/signed word/dword/signed dword) $ff [45] (byte) init::i#1 ← ++ (byte) init::i#2 - [46] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 64) goto init::@2 + [46] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $40) goto init::@2 to:init::@return init::@return: scope:[init] from init::@2 [47] return diff --git a/src/test/ref/signed-words.log b/src/test/ref/signed-words.log index 7fd13a059..a467a7871 100644 --- a/src/test/ref/signed-words.log +++ b/src/test/ref/signed-words.log @@ -5,66 +5,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -75,18 +75,18 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@4 @4: scope:[] from @begin - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte*~) $0 ← (byte*) SCREEN#0 + (word/signed word/dword/signed dword) 1016 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte*~) $0 ← (byte*) SCREEN#0 + (word/signed word/dword/signed dword) $3f8 (byte*) SPRITES_PTR#0 ← (byte*~) $0 - (byte*) SPRITE#0 ← ((byte*)) (word/signed word/dword/signed dword) 8192 + (byte*) SPRITE#0 ← ((byte*)) (word/signed word/dword/signed dword) $2000 to:@6 main: scope:[main] from @7 (signed word) yvel_init#20 ← phi( @7/(signed word) yvel_init#16 ) @@ -116,7 +116,7 @@ main::@2: scope:[main] from main::@1 main::@2 main::@5 (signed word) ypos#16 ← phi( main::@1/(signed word) ypos#18 main::@2/(signed word) ypos#16 main::@5/(signed word) ypos#19 ) (signed word) xpos#16 ← phi( main::@1/(signed word) xpos#18 main::@2/(signed word) xpos#16 main::@5/(signed word) xpos#19 ) (signed word) yvel#15 ← phi( main::@1/(signed word) yvel#16 main::@2/(signed word) yvel#15 main::@5/(signed word) yvel#17 ) - (bool~) main::$1 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 255 + (bool~) main::$1 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) $ff if((bool~) main::$1) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 @@ -157,10 +157,10 @@ init: scope:[init] from main *((byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 *((byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - *((byte*) SPRITES_XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte/signed byte/word/signed word/dword/signed dword) 100 - *((byte*) SPRITES_YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte/signed byte/word/signed word/dword/signed dword) 100 + *((byte*) SPRITES_XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte/signed byte/word/signed word/dword/signed dword) $64 + *((byte*) SPRITES_YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte/signed byte/word/signed word/dword/signed dword) $64 *((byte*) SPRITES_COLS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) WHITE#0 - (byte*~) init::$0 ← (byte*) SPRITE#0 / (byte/signed byte/word/signed word/dword/signed dword) 64 + (byte*~) init::$0 ← (byte*) SPRITE#0 / (byte/signed byte/word/signed word/dword/signed dword) $40 (byte~) init::$1 ← ((byte)) (byte*~) init::$0 *((byte*) SPRITES_PTR#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte~) init::$1 (byte*) init::sc#0 ← (byte*) SCREEN#0 @@ -169,7 +169,7 @@ init::@1: scope:[init] from init init::@1 (byte*) init::sc#2 ← phi( init/(byte*) init::sc#0 init::@1/(byte*) init::sc#1 ) *((byte*) init::sc#2) ← (byte) ' ' (byte*) init::sc#1 ← ++ (byte*) init::sc#2 - (byte*~) init::$2 ← (byte*) SCREEN#0 + (word/signed word/dword/signed dword) 1000 + (byte*~) init::$2 ← (byte*) SCREEN#0 + (word/signed word/dword/signed dword) $3e8 (bool~) init::$3 ← (byte*) init::sc#1 != (byte*~) init::$2 if((bool~) init::$3) goto init::@1 to:init::@3 @@ -178,9 +178,9 @@ init::@3: scope:[init] from init::@1 to:init::@2 init::@2: scope:[init] from init::@2 init::@3 (byte) init::i#2 ← phi( init::@2/(byte) init::i#1 init::@3/(byte) init::i#0 ) - *((byte*) SPRITE#0 + (byte) init::i#2) ← (byte/word/signed word/dword/signed dword) 255 - (byte) init::i#1 ← (byte) init::i#2 + rangenext(0,63) - (bool~) init::$4 ← (byte) init::i#1 != rangelast(0,63) + *((byte*) SPRITE#0 + (byte) init::i#2) ← (byte/word/signed word/dword/signed dword) $ff + (byte) init::i#1 ← (byte) init::i#2 + rangenext(0,$3f) + (bool~) init::$4 ← (byte) init::i#1 != rangelast(0,$3f) if((bool~) init::$4) goto init::@2 to:init::@return init::@return: scope:[init] from init::@2 @@ -189,8 +189,8 @@ init::@return: scope:[init] from init::@2 @6: scope:[] from @4 (signed word) xpos#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (signed word) ypos#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (signed word) yvel_init#2 ← (byte/signed byte/word/signed word/dword/signed dword) 100 - (signed word) xvel#2 ← (byte/word/signed word/dword/signed dword) 200 + (signed word) yvel_init#2 ← (byte/signed byte/word/signed word/dword/signed dword) $64 + (signed word) xvel#2 ← (byte/word/signed word/dword/signed dword) $c8 (signed word) yvel#2 ← (signed word) yvel_init#2 (signed byte/signed word/signed dword~) $1 ← - (byte/signed byte/word/signed word/dword/signed dword) 5 (signed word) g#0 ← (signed byte/signed word/signed dword~) $1 @@ -218,10 +218,10 @@ anim::@1: scope:[anim] from anim anim::@2 (signed word~) anim::$9 ← (signed word) ypos#10 + (signed word) yvel#3 (signed word) ypos#3 ← (signed word~) anim::$9 (signed word~) anim::$10 ← (signed word) xpos#3 >> (byte/signed byte/word/signed word/dword/signed dword) 7 - (signed word/signed dword~) anim::$11 ← (signed word~) anim::$10 + (byte/word/signed word/dword/signed dword) 160 + (signed word/signed dword~) anim::$11 ← (signed word~) anim::$10 + (byte/word/signed word/dword/signed dword) $a0 (signed word) anim::sprite_x#0 ← (signed word/signed dword~) anim::$11 (signed word~) anim::$12 ← (signed word) ypos#3 >> (byte/signed byte/word/signed word/dword/signed dword) 5 - (signed word/signed dword~) anim::$13 ← (byte/word/signed word/dword/signed dword) 230 - (signed word~) anim::$12 + (signed word/signed dword~) anim::$13 ← (byte/word/signed word/dword/signed dword) $e6 - (signed word~) anim::$12 (signed word) anim::sprite_y#0 ← (signed word/signed dword~) anim::$13 (byte~) anim::$14 ← ((byte)) (signed word) anim::sprite_x#0 *((byte*) SPRITES_XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte~) anim::$14 @@ -237,9 +237,9 @@ anim::@3: scope:[anim] from anim (signed word) ypos#4 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (signed word~) anim::$2 ← - (signed word) xvel#9 (signed word) xvel#3 ← (signed word~) anim::$2 - (signed word/signed dword~) anim::$3 ← (signed word) yvel_init#9 - (byte/signed byte/word/signed word/dword/signed dword) 10 + (signed word/signed dword~) anim::$3 ← (signed word) yvel_init#9 - (byte/signed byte/word/signed word/dword/signed dword) $a (signed word) yvel_init#3 ← (signed word/signed dword~) anim::$3 - (signed word/signed dword~) anim::$4 ← - (byte/word/signed word/dword/signed dword) 200 + (signed word/signed dword~) anim::$4 ← - (byte/word/signed word/dword/signed dword) $c8 (bool~) anim::$5 ← (signed word) yvel_init#3 < (signed word/signed dword~) anim::$4 (bool~) anim::$6 ← ! (bool~) anim::$5 if((bool~) anim::$6) goto anim::@2 @@ -255,7 +255,7 @@ anim::@4: scope:[anim] from anim::@3 (signed word) ypos#17 ← phi( anim::@3/(signed word) ypos#4 ) (signed word) xvel#17 ← phi( anim::@3/(signed word) xvel#3 ) (signed word) xpos#17 ← phi( anim::@3/(signed word) xpos#4 ) - (signed word) yvel_init#4 ← (byte/word/signed word/dword/signed dword) 200 + (signed word) yvel_init#4 ← (byte/word/signed word/dword/signed dword) $c8 to:anim::@2 anim::@return: scope:[anim] from anim::@1 (signed word) yvel_init#11 ← phi( anim::@1/(signed word) yvel_init#15 ) @@ -704,75 +704,75 @@ Redundant Phi (signed word) ypos#12 (signed word) ypos#0 Redundant Phi (signed word) xvel#11 (signed word) xvel#0 Redundant Phi (signed word) yvel_init#12 (signed word) yvel_init#0 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$1 [89] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 +Simple Condition (bool~) main::$1 [89] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 Simple Condition (bool~) init::$3 [121] if((byte*) init::sc#1!=(byte*~) init::$2) goto init::@1 -Simple Condition (bool~) init::$4 [127] if((byte) init::i#1!=rangelast(0,63)) goto init::@2 +Simple Condition (bool~) init::$4 [127] if((byte) init::i#1!=rangelast(0,$3f)) goto init::@2 Simple Condition (bool~) anim::$1 [139] if((signed word) ypos#13>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto anim::@1 Simple Condition (bool~) anim::$6 [169] if((signed word) yvel_init#3>=(signed word/signed dword~) anim::$4) goto anim::@2 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -783,29 +783,29 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 -Constant (const byte*) SCREEN#0 = ((byte*))1024 -Constant (const byte*) SPRITE#0 = ((byte*))8192 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f +Constant (const byte*) SCREEN#0 = ((byte*))$400 +Constant (const byte*) SPRITE#0 = ((byte*))$2000 Constant (const byte) init::i#0 = 0 Constant (const signed word) xpos#15 = 0 Constant (const signed word) ypos#15 = 0 -Constant (const signed word) yvel#14 = 100 -Constant (const signed word) xvel#15 = 200 +Constant (const signed word) yvel#14 = $64 +Constant (const signed word) xvel#15 = $c8 Constant (const signed word) g#0 = -5 Constant (const signed word) xpos#14 = 0 Constant (const signed word) ypos#14 = 0 -Constant (const signed word/signed dword) anim::$4 = -200 -Constant (const signed word) yvel_init#4 = 200 +Constant (const signed word/signed dword) anim::$4 = -$c8 +Constant (const signed word) yvel_init#4 = $c8 Successful SSA optimization Pass2ConstantIdentification -Constant (const byte*) SPRITES_PTR#0 = SCREEN#0+1016 -Constant (const byte*) init::$0 = SPRITE#0/64 +Constant (const byte*) SPRITES_PTR#0 = SCREEN#0+$3f8 +Constant (const byte*) init::$0 = SPRITE#0/$40 Constant (const byte*) init::sc#0 = SCREEN#0 -Constant (const byte*) init::$2 = SCREEN#0+1000 +Constant (const byte*) init::$2 = SCREEN#0+$3e8 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) init::$1 = ((byte))init::$0 Successful SSA optimization Pass2ConstantIdentification @@ -822,7 +822,7 @@ Successful SSA optimization PassNEliminateUnusedVars Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks Resolved ranged next value init::i#1 ← ++ init::i#2 to ++ -Resolved ranged comparison value if(init::i#1!=rangelast(0,63)) goto init::@2 to (byte/signed byte/word/signed word/dword/signed dword) 64 +Resolved ranged comparison value if(init::i#1!=rangelast(0,$3f)) goto init::@2 to (byte/signed byte/word/signed word/dword/signed dword) $40 Culled Empty Block (label) @4 Culled Empty Block (label) main::@5 Culled Empty Block (label) main::@1 @@ -840,18 +840,18 @@ Inlining constant with var siblings (const signed word) xvel#15 Inlining constant with var siblings (const signed word) xpos#14 Inlining constant with var siblings (const signed word) ypos#14 Inlining constant with var siblings (const signed word) yvel_init#4 -Constant inlined anim::$4 = -(byte/word/signed word/dword/signed dword) 200 +Constant inlined anim::$4 = -(byte/word/signed word/dword/signed dword) $c8 Constant inlined init::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined xvel#15 = (byte/word/signed word/dword/signed dword) 200 +Constant inlined xvel#15 = (byte/word/signed word/dword/signed dword) $c8 Constant inlined ypos#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined yvel#14 = (byte/signed byte/word/signed word/dword/signed dword) 100 -Constant inlined init::$2 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000 +Constant inlined yvel#14 = (byte/signed byte/word/signed word/dword/signed dword) $64 +Constant inlined init::$2 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8 Constant inlined ypos#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined init::$1 = ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 -Constant inlined init::$0 = (const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 +Constant inlined init::$1 = ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 +Constant inlined init::$0 = (const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 Constant inlined xpos#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined xpos#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined yvel_init#4 = (byte/word/signed word/dword/signed dword) 200 +Constant inlined yvel_init#4 = (byte/word/signed word/dword/signed dword) $c8 Constant inlined init::sc#0 = (const byte*) SCREEN#0 Successful SSA optimization Pass2ConstantInlining Simplifying constant plus zero SPRITES_XPOS#0+0 @@ -918,12 +918,12 @@ main: scope:[main] from @7 [5] call init to:main::@2 main::@2: scope:[main] from main main::@2 main::@3 - [6] (signed word) yvel_init#13 ← phi( main::@3/(signed word) yvel_init#11 main/(byte/signed byte/word/signed word/dword/signed dword) 100 ) - [6] (signed word) xvel#12 ← phi( main::@3/(signed word) xvel#10 main/(byte/word/signed word/dword/signed dword) 200 ) + [6] (signed word) yvel_init#13 ← phi( main::@3/(signed word) yvel_init#11 main/(byte/signed byte/word/signed word/dword/signed dword) $64 ) + [6] (signed word) xvel#12 ← phi( main::@3/(signed word) xvel#10 main/(byte/word/signed word/dword/signed dword) $c8 ) [6] (signed word) ypos#13 ← phi( main::@3/(signed word) ypos#11 main/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [6] (signed word) xpos#12 ← phi( main::@3/(signed word) xpos#10 main/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [6] (signed word) yvel#12 ← phi( main::@3/(signed word) yvel#10 main/(byte/signed byte/word/signed word/dword/signed dword) 100 ) - [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 + [6] (signed word) yvel#12 ← phi( main::@3/(signed word) yvel#10 main/(byte/signed byte/word/signed word/dword/signed dword) $64 ) + [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 [8] phi() @@ -934,11 +934,11 @@ anim: scope:[anim] from main::@3 to:anim::@3 anim::@3: scope:[anim] from anim [11] (signed word) xvel#14 ← - (signed word) xvel#12 - [12] (signed word) yvel_init#3 ← (signed word) yvel_init#13 - (byte/signed byte/word/signed word/dword/signed dword) 10 - [13] if((signed word) yvel_init#3>=-(byte/word/signed word/dword/signed dword) 200) goto anim::@5 + [12] (signed word) yvel_init#3 ← (signed word) yvel_init#13 - (byte/signed byte/word/signed word/dword/signed dword) $a + [13] if((signed word) yvel_init#3>=-(byte/word/signed word/dword/signed dword) $c8) goto anim::@5 to:anim::@2 anim::@2: scope:[anim] from anim::@3 anim::@5 - [14] (signed word) yvel#4 ← phi( anim::@5/(signed word) yvel_init#3 anim::@3/(byte/word/signed word/dword/signed dword) 200 ) + [14] (signed word) yvel#4 ← phi( anim::@5/(signed word) yvel_init#3 anim::@3/(byte/word/signed word/dword/signed dword) $c8 ) [15] (signed word~) yvel#22 ← (signed word) yvel#4 to:anim::@1 anim::@1: scope:[anim] from anim anim::@2 @@ -951,9 +951,9 @@ anim::@1: scope:[anim] from anim anim::@2 [18] (signed word) xpos#10 ← (signed word) xpos#9 + (signed word) xvel#10 [19] (signed word) ypos#11 ← (signed word) ypos#10 + (signed word) yvel#10 [20] (signed word~) anim::$10 ← (signed word) xpos#10 >> (byte/signed byte/word/signed word/dword/signed dword) 7 - [21] (signed word) anim::sprite_x#0 ← (signed word~) anim::$10 + (byte/word/signed word/dword/signed dword) 160 + [21] (signed word) anim::sprite_x#0 ← (signed word~) anim::$10 + (byte/word/signed word/dword/signed dword) $a0 [22] (signed word~) anim::$12 ← (signed word) ypos#11 >> (byte/signed byte/word/signed word/dword/signed dword) 5 - [23] (signed word) anim::sprite_y#0 ← (byte/word/signed word/dword/signed dword) 230 - (signed word~) anim::$12 + [23] (signed word) anim::sprite_y#0 ← (byte/word/signed word/dword/signed dword) $e6 - (signed word~) anim::$12 [24] (byte~) anim::$14 ← ((byte)) (signed word) anim::sprite_x#0 [25] *((const byte*) SPRITES_XPOS#0) ← (byte~) anim::$14 [26] (byte~) anim::$15 ← ((byte)) (signed word) anim::sprite_y#0 @@ -971,22 +971,22 @@ init: scope:[init] from main [32] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [33] *((const byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [34] *((const byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [35] *((const byte*) SPRITES_XPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) 100 - [36] *((const byte*) SPRITES_YPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) 100 + [35] *((const byte*) SPRITES_XPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) $64 + [36] *((const byte*) SPRITES_YPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) $64 [37] *((const byte*) SPRITES_COLS#0) ← (const byte) WHITE#0 - [38] *((const byte*) SPRITES_PTR#0) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 + [38] *((const byte*) SPRITES_PTR#0) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 to:init::@1 init::@1: scope:[init] from init init::@1 [39] (byte*) init::sc#2 ← phi( init/(const byte*) SCREEN#0 init::@1/(byte*) init::sc#1 ) [40] *((byte*) init::sc#2) ← (byte) ' ' [41] (byte*) init::sc#1 ← ++ (byte*) init::sc#2 - [42] if((byte*) init::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto init::@1 + [42] if((byte*) init::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto init::@1 to:init::@2 init::@2: scope:[init] from init::@1 init::@2 [43] (byte) init::i#2 ← phi( init::@2/(byte) init::i#1 init::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [44] *((const byte*) SPRITE#0 + (byte) init::i#2) ← (byte/word/signed word/dword/signed dword) 255 + [44] *((const byte*) SPRITE#0 + (byte) init::i#2) ← (byte/word/signed word/dword/signed dword) $ff [45] (byte) init::i#1 ← ++ (byte) init::i#2 - [46] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 64) goto init::@2 + [46] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $40) goto init::@2 to:init::@return init::@return: scope:[init] from init::@2 [47] return @@ -1214,12 +1214,12 @@ main: { jsr init //SEG12 [6] phi from main to main::@2 [phi:main->main::@2] b2_from_main: - //SEG13 [6] phi (signed word) yvel_init#13 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:main->main::@2#0] -- vwsz1=vbuc1 + //SEG13 [6] phi (signed word) yvel_init#13 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:main->main::@2#0] -- vwsz1=vbuc1 lda #<$64 sta yvel_init lda #>$64 sta yvel_init+1 - //SEG14 [6] phi (signed word) xvel#12 = (byte/word/signed word/dword/signed dword) 200 [phi:main->main::@2#1] -- vwsz1=vbuc1 + //SEG14 [6] phi (signed word) xvel#12 = (byte/word/signed word/dword/signed dword) $c8 [phi:main->main::@2#1] -- vwsz1=vbuc1 lda #<$c8 sta xvel lda #>$c8 @@ -1234,7 +1234,7 @@ main: { sta xpos lda #>0 sta xpos+1 - //SEG17 [6] phi (signed word) yvel#12 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:main->main::@2#4] -- vwsz1=vbuc1 + //SEG17 [6] phi (signed word) yvel#12 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:main->main::@2#4] -- vwsz1=vbuc1 lda #<$64 sta yvel_12 lda #>$64 @@ -1245,7 +1245,7 @@ main: { jmp b2 //SEG19 main::@2 b2: - //SEG20 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG20 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b2_from_b2 @@ -1290,7 +1290,7 @@ anim: { eor #$ff adc #0 sta xvel+1 - //SEG34 [12] (signed word) yvel_init#3 ← (signed word) yvel_init#13 - (byte/signed byte/word/signed word/dword/signed dword) 10 -- vwsz1=vwsz1_minus_vbuc1 + //SEG34 [12] (signed word) yvel_init#3 ← (signed word) yvel_init#13 - (byte/signed byte/word/signed word/dword/signed dword) $a -- vwsz1=vwsz1_minus_vbuc1 lda yvel_init sec sbc #<$a @@ -1298,7 +1298,7 @@ anim: { lda yvel_init+1 sbc #>$a sta yvel_init+1 - //SEG35 [13] if((signed word) yvel_init#3>=-(byte/word/signed word/dword/signed dword) 200) goto anim::@5 -- vwsz1_ge_vwsc1_then_la1 + //SEG35 [13] if((signed word) yvel_init#3>=-(byte/word/signed word/dword/signed dword) $c8) goto anim::@5 -- vwsz1_ge_vwsc1_then_la1 lda yvel_init cmp #<-$c8 lda yvel_init+1 @@ -1309,7 +1309,7 @@ anim: { bpl b5_from_b3 //SEG36 [14] phi from anim::@3 to anim::@2 [phi:anim::@3->anim::@2] b2_from_b3: - //SEG37 [14] phi (signed word) yvel#4 = (byte/word/signed word/dword/signed dword) 200 [phi:anim::@3->anim::@2#0] -- vwsz1=vbuc1 + //SEG37 [14] phi (signed word) yvel#4 = (byte/word/signed word/dword/signed dword) $c8 [phi:anim::@3->anim::@2#0] -- vwsz1=vbuc1 lda #<$c8 sta yvel lda #>$c8 @@ -1386,7 +1386,7 @@ anim: { rol $ff rol _10 rol _10+1 - //SEG57 [21] (signed word) anim::sprite_x#0 ← (signed word~) anim::$10 + (byte/word/signed word/dword/signed dword) 160 -- vwsz1=vwsz2_plus_vbuc1 + //SEG57 [21] (signed word) anim::sprite_x#0 ← (signed word~) anim::$10 + (byte/word/signed word/dword/signed dword) $a0 -- vwsz1=vwsz2_plus_vbuc1 lda _10 clc adc #<$a0 @@ -1414,7 +1414,7 @@ anim: { rol $ff rol _12 rol _12+1 - //SEG59 [23] (signed word) anim::sprite_y#0 ← (byte/word/signed word/dword/signed dword) 230 - (signed word~) anim::$12 -- vwsz1=vbuc1_minus_vwsz2 + //SEG59 [23] (signed word) anim::sprite_y#0 ← (byte/word/signed word/dword/signed dword) $e6 - (signed word~) anim::$12 -- vwsz1=vbuc1_minus_vwsz2 lda #<$e6 sec sbc _12 @@ -1469,16 +1469,16 @@ init: { //SEG75 [34] *((const byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SPRITES_EXPAND_Y - //SEG76 [35] *((const byte*) SPRITES_XPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) 100 -- _deref_pbuc1=vbuc2 + //SEG76 [35] *((const byte*) SPRITES_XPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) $64 -- _deref_pbuc1=vbuc2 lda #$64 sta SPRITES_XPOS - //SEG77 [36] *((const byte*) SPRITES_YPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) 100 -- _deref_pbuc1=vbuc2 + //SEG77 [36] *((const byte*) SPRITES_YPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) $64 -- _deref_pbuc1=vbuc2 lda #$64 sta SPRITES_YPOS //SEG78 [37] *((const byte*) SPRITES_COLS#0) ← (const byte) WHITE#0 -- _deref_pbuc1=vbuc2 lda #WHITE sta SPRITES_COLS - //SEG79 [38] *((const byte*) SPRITES_PTR#0) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 -- _deref_pbuc1=vbuc2 + //SEG79 [38] *((const byte*) SPRITES_PTR#0) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 -- _deref_pbuc1=vbuc2 lda #$ff&SPRITE/$40 sta SPRITES_PTR //SEG80 [39] phi from init to init::@1 [phi:init->init::@1] @@ -1504,7 +1504,7 @@ init: { bne !+ inc sc+1 !: - //SEG87 [42] if((byte*) init::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto init::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG87 [42] if((byte*) init::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto init::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>SCREEN+$3e8 bne b1_from_b1 @@ -1523,13 +1523,13 @@ init: { jmp b2 //SEG92 init::@2 b2: - //SEG93 [44] *((const byte*) SPRITE#0 + (byte) init::i#2) ← (byte/word/signed word/dword/signed dword) 255 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG93 [44] *((const byte*) SPRITE#0 + (byte) init::i#2) ← (byte/word/signed word/dword/signed dword) $ff -- pbuc1_derefidx_vbuz1=vbuc2 ldy i lda #$ff sta SPRITE,y //SEG94 [45] (byte) init::i#1 ← ++ (byte) init::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG95 [46] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 64) goto init::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG95 [46] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $40) goto init::@2 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$40 bne b2_from_b2 @@ -1541,59 +1541,59 @@ init: { } REGISTER UPLIFT POTENTIAL REGISTERS -Statement [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) always clobbers reg byte a +Statement [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) always clobbers reg byte a Statement [10] if((signed word) ypos#13>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) always clobbers reg byte a Statement [11] (signed word) xvel#14 ← - (signed word) xvel#12 [ yvel_init#13 xvel#14 ] ( main:2::anim:9 [ yvel_init#13 xvel#14 ] ) always clobbers reg byte a -Statement [12] (signed word) yvel_init#3 ← (signed word) yvel_init#13 - (byte/signed byte/word/signed word/dword/signed dword) 10 [ xvel#14 yvel_init#3 ] ( main:2::anim:9 [ xvel#14 yvel_init#3 ] ) always clobbers reg byte a -Statement [13] if((signed word) yvel_init#3>=-(byte/word/signed word/dword/signed dword) 200) goto anim::@5 [ xvel#14 yvel_init#3 ] ( main:2::anim:9 [ xvel#14 yvel_init#3 ] ) always clobbers reg byte a +Statement [12] (signed word) yvel_init#3 ← (signed word) yvel_init#13 - (byte/signed byte/word/signed word/dword/signed dword) $a [ xvel#14 yvel_init#3 ] ( main:2::anim:9 [ xvel#14 yvel_init#3 ] ) always clobbers reg byte a +Statement [13] if((signed word) yvel_init#3>=-(byte/word/signed word/dword/signed dword) $c8) goto anim::@5 [ xvel#14 yvel_init#3 ] ( main:2::anim:9 [ xvel#14 yvel_init#3 ] ) always clobbers reg byte a Statement [15] (signed word~) yvel#22 ← (signed word) yvel#4 [ xvel#14 yvel#4 yvel#22 ] ( main:2::anim:9 [ xvel#14 yvel#4 yvel#22 ] ) always clobbers reg byte a Statement [17] (signed word) yvel#10 ← (signed word) yvel#9 + (const signed word) g#0 [ yvel#10 xvel#10 yvel_init#11 xpos#9 ypos#10 ] ( main:2::anim:9 [ yvel#10 xvel#10 yvel_init#11 xpos#9 ypos#10 ] ) always clobbers reg byte a Statement [18] (signed word) xpos#10 ← (signed word) xpos#9 + (signed word) xvel#10 [ yvel#10 xpos#10 xvel#10 yvel_init#11 ypos#10 ] ( main:2::anim:9 [ yvel#10 xpos#10 xvel#10 yvel_init#11 ypos#10 ] ) always clobbers reg byte a Statement [19] (signed word) ypos#11 ← (signed word) ypos#10 + (signed word) yvel#10 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 ] ) always clobbers reg byte a Statement [20] (signed word~) anim::$10 ← (signed word) xpos#10 >> (byte/signed byte/word/signed word/dword/signed dword) 7 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::$10 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::$10 ] ) always clobbers reg byte a -Statement [21] (signed word) anim::sprite_x#0 ← (signed word~) anim::$10 + (byte/word/signed word/dword/signed dword) 160 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 ] ) always clobbers reg byte a +Statement [21] (signed word) anim::sprite_x#0 ← (signed word~) anim::$10 + (byte/word/signed word/dword/signed dword) $a0 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 ] ) always clobbers reg byte a Statement [22] (signed word~) anim::$12 ← (signed word) ypos#11 >> (byte/signed byte/word/signed word/dword/signed dword) 5 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::$12 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::$12 ] ) always clobbers reg byte a -Statement [23] (signed word) anim::sprite_y#0 ← (byte/word/signed word/dword/signed dword) 230 - (signed word~) anim::$12 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::sprite_y#0 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::sprite_y#0 ] ) always clobbers reg byte a +Statement [23] (signed word) anim::sprite_y#0 ← (byte/word/signed word/dword/signed dword) $e6 - (signed word~) anim::$12 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::sprite_y#0 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::sprite_y#0 ] ) always clobbers reg byte a Statement [24] (byte~) anim::$14 ← ((byte)) (signed word) anim::sprite_x#0 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::sprite_y#0 anim::$14 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::sprite_y#0 anim::$14 ] ) always clobbers reg byte a Statement [26] (byte~) anim::$15 ← ((byte)) (signed word) anim::sprite_y#0 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::$15 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::$15 ] ) always clobbers reg byte a Statement [28] (byte~) anim::$16 ← > (signed word) anim::sprite_x#0 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::$16 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::$16 ] ) always clobbers reg byte a Statement [32] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2::init:5 [ ] ) always clobbers reg byte a Statement [33] *((const byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::init:5 [ ] ) always clobbers reg byte a Statement [34] *((const byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::init:5 [ ] ) always clobbers reg byte a -Statement [35] *((const byte*) SPRITES_XPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) 100 [ ] ( main:2::init:5 [ ] ) always clobbers reg byte a -Statement [36] *((const byte*) SPRITES_YPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) 100 [ ] ( main:2::init:5 [ ] ) always clobbers reg byte a +Statement [35] *((const byte*) SPRITES_XPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) $64 [ ] ( main:2::init:5 [ ] ) always clobbers reg byte a +Statement [36] *((const byte*) SPRITES_YPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) $64 [ ] ( main:2::init:5 [ ] ) always clobbers reg byte a Statement [37] *((const byte*) SPRITES_COLS#0) ← (const byte) WHITE#0 [ ] ( main:2::init:5 [ ] ) always clobbers reg byte a -Statement [38] *((const byte*) SPRITES_PTR#0) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ ] ( main:2::init:5 [ ] ) always clobbers reg byte a +Statement [38] *((const byte*) SPRITES_PTR#0) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 [ ] ( main:2::init:5 [ ] ) always clobbers reg byte a Statement [40] *((byte*) init::sc#2) ← (byte) ' ' [ init::sc#2 ] ( main:2::init:5 [ init::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [42] if((byte*) init::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto init::@1 [ init::sc#1 ] ( main:2::init:5 [ init::sc#1 ] ) always clobbers reg byte a -Statement [44] *((const byte*) SPRITE#0 + (byte) init::i#2) ← (byte/word/signed word/dword/signed dword) 255 [ init::i#2 ] ( main:2::init:5 [ init::i#2 ] ) always clobbers reg byte a +Statement [42] if((byte*) init::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto init::@1 [ init::sc#1 ] ( main:2::init:5 [ init::sc#1 ] ) always clobbers reg byte a +Statement [44] *((const byte*) SPRITE#0 + (byte) init::i#2) ← (byte/word/signed word/dword/signed dword) $ff [ init::i#2 ] ( main:2::init:5 [ init::i#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:14 [ init::i#2 init::i#1 ] -Statement [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) always clobbers reg byte a +Statement [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) always clobbers reg byte a Statement [10] if((signed word) ypos#13>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ) always clobbers reg byte a Statement [11] (signed word) xvel#14 ← - (signed word) xvel#12 [ yvel_init#13 xvel#14 ] ( main:2::anim:9 [ yvel_init#13 xvel#14 ] ) always clobbers reg byte a -Statement [12] (signed word) yvel_init#3 ← (signed word) yvel_init#13 - (byte/signed byte/word/signed word/dword/signed dword) 10 [ xvel#14 yvel_init#3 ] ( main:2::anim:9 [ xvel#14 yvel_init#3 ] ) always clobbers reg byte a -Statement [13] if((signed word) yvel_init#3>=-(byte/word/signed word/dword/signed dword) 200) goto anim::@5 [ xvel#14 yvel_init#3 ] ( main:2::anim:9 [ xvel#14 yvel_init#3 ] ) always clobbers reg byte a +Statement [12] (signed word) yvel_init#3 ← (signed word) yvel_init#13 - (byte/signed byte/word/signed word/dword/signed dword) $a [ xvel#14 yvel_init#3 ] ( main:2::anim:9 [ xvel#14 yvel_init#3 ] ) always clobbers reg byte a +Statement [13] if((signed word) yvel_init#3>=-(byte/word/signed word/dword/signed dword) $c8) goto anim::@5 [ xvel#14 yvel_init#3 ] ( main:2::anim:9 [ xvel#14 yvel_init#3 ] ) always clobbers reg byte a Statement [15] (signed word~) yvel#22 ← (signed word) yvel#4 [ xvel#14 yvel#4 yvel#22 ] ( main:2::anim:9 [ xvel#14 yvel#4 yvel#22 ] ) always clobbers reg byte a Statement [17] (signed word) yvel#10 ← (signed word) yvel#9 + (const signed word) g#0 [ yvel#10 xvel#10 yvel_init#11 xpos#9 ypos#10 ] ( main:2::anim:9 [ yvel#10 xvel#10 yvel_init#11 xpos#9 ypos#10 ] ) always clobbers reg byte a Statement [18] (signed word) xpos#10 ← (signed word) xpos#9 + (signed word) xvel#10 [ yvel#10 xpos#10 xvel#10 yvel_init#11 ypos#10 ] ( main:2::anim:9 [ yvel#10 xpos#10 xvel#10 yvel_init#11 ypos#10 ] ) always clobbers reg byte a Statement [19] (signed word) ypos#11 ← (signed word) ypos#10 + (signed word) yvel#10 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 ] ) always clobbers reg byte a Statement [20] (signed word~) anim::$10 ← (signed word) xpos#10 >> (byte/signed byte/word/signed word/dword/signed dword) 7 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::$10 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::$10 ] ) always clobbers reg byte a -Statement [21] (signed word) anim::sprite_x#0 ← (signed word~) anim::$10 + (byte/word/signed word/dword/signed dword) 160 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 ] ) always clobbers reg byte a +Statement [21] (signed word) anim::sprite_x#0 ← (signed word~) anim::$10 + (byte/word/signed word/dword/signed dword) $a0 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 ] ) always clobbers reg byte a Statement [22] (signed word~) anim::$12 ← (signed word) ypos#11 >> (byte/signed byte/word/signed word/dword/signed dword) 5 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::$12 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::$12 ] ) always clobbers reg byte a -Statement [23] (signed word) anim::sprite_y#0 ← (byte/word/signed word/dword/signed dword) 230 - (signed word~) anim::$12 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::sprite_y#0 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::sprite_y#0 ] ) always clobbers reg byte a +Statement [23] (signed word) anim::sprite_y#0 ← (byte/word/signed word/dword/signed dword) $e6 - (signed word~) anim::$12 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::sprite_y#0 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::sprite_y#0 ] ) always clobbers reg byte a Statement [24] (byte~) anim::$14 ← ((byte)) (signed word) anim::sprite_x#0 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::sprite_y#0 anim::$14 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::sprite_y#0 anim::$14 ] ) always clobbers reg byte a Statement [26] (byte~) anim::$15 ← ((byte)) (signed word) anim::sprite_y#0 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::$15 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::$15 ] ) always clobbers reg byte a Statement [28] (byte~) anim::$16 ← > (signed word) anim::sprite_x#0 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::$16 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::$16 ] ) always clobbers reg byte a Statement [32] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2::init:5 [ ] ) always clobbers reg byte a Statement [33] *((const byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::init:5 [ ] ) always clobbers reg byte a Statement [34] *((const byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::init:5 [ ] ) always clobbers reg byte a -Statement [35] *((const byte*) SPRITES_XPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) 100 [ ] ( main:2::init:5 [ ] ) always clobbers reg byte a -Statement [36] *((const byte*) SPRITES_YPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) 100 [ ] ( main:2::init:5 [ ] ) always clobbers reg byte a +Statement [35] *((const byte*) SPRITES_XPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) $64 [ ] ( main:2::init:5 [ ] ) always clobbers reg byte a +Statement [36] *((const byte*) SPRITES_YPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) $64 [ ] ( main:2::init:5 [ ] ) always clobbers reg byte a Statement [37] *((const byte*) SPRITES_COLS#0) ← (const byte) WHITE#0 [ ] ( main:2::init:5 [ ] ) always clobbers reg byte a -Statement [38] *((const byte*) SPRITES_PTR#0) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 [ ] ( main:2::init:5 [ ] ) always clobbers reg byte a +Statement [38] *((const byte*) SPRITES_PTR#0) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 [ ] ( main:2::init:5 [ ] ) always clobbers reg byte a Statement [40] *((byte*) init::sc#2) ← (byte) ' ' [ init::sc#2 ] ( main:2::init:5 [ init::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [42] if((byte*) init::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto init::@1 [ init::sc#1 ] ( main:2::init:5 [ init::sc#1 ] ) always clobbers reg byte a -Statement [44] *((const byte*) SPRITE#0 + (byte) init::i#2) ← (byte/word/signed word/dword/signed dword) 255 [ init::i#2 ] ( main:2::init:5 [ init::i#2 ] ) always clobbers reg byte a +Statement [42] if((byte*) init::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto init::@1 [ init::sc#1 ] ( main:2::init:5 [ init::sc#1 ] ) always clobbers reg byte a +Statement [44] *((const byte*) SPRITE#0 + (byte) init::i#2) ← (byte/word/signed word/dword/signed dword) $ff [ init::i#2 ] ( main:2::init:5 [ init::i#2 ] ) always clobbers reg byte a Potential registers zp ZP_WORD:2 [ xvel#12 xvel#10 xvel#14 ] : zp ZP_WORD:2 , Potential registers zp ZP_WORD:4 [ yvel_init#13 yvel_init#11 yvel#4 yvel_init#3 ] : zp ZP_WORD:4 , Potential registers zp ZP_WORD:6 [ yvel#9 yvel#12 yvel#10 yvel#22 ] : zp ZP_WORD:6 , @@ -1676,12 +1676,12 @@ main: { jsr init //SEG12 [6] phi from main to main::@2 [phi:main->main::@2] b2_from_main: - //SEG13 [6] phi (signed word) yvel_init#13 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:main->main::@2#0] -- vwsz1=vbuc1 + //SEG13 [6] phi (signed word) yvel_init#13 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:main->main::@2#0] -- vwsz1=vbuc1 lda #<$64 sta yvel_init lda #>$64 sta yvel_init+1 - //SEG14 [6] phi (signed word) xvel#12 = (byte/word/signed word/dword/signed dword) 200 [phi:main->main::@2#1] -- vwsz1=vbuc1 + //SEG14 [6] phi (signed word) xvel#12 = (byte/word/signed word/dword/signed dword) $c8 [phi:main->main::@2#1] -- vwsz1=vbuc1 lda #<$c8 sta xvel lda #>$c8 @@ -1696,7 +1696,7 @@ main: { sta xpos lda #>0 sta xpos+1 - //SEG17 [6] phi (signed word) yvel#12 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:main->main::@2#4] -- vwsz1=vbuc1 + //SEG17 [6] phi (signed word) yvel#12 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:main->main::@2#4] -- vwsz1=vbuc1 lda #<$64 sta yvel_12 lda #>$64 @@ -1707,7 +1707,7 @@ main: { jmp b2 //SEG19 main::@2 b2: - //SEG20 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG20 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b2_from_b2 @@ -1749,7 +1749,7 @@ anim: { eor #$ff adc #0 sta xvel+1 - //SEG34 [12] (signed word) yvel_init#3 ← (signed word) yvel_init#13 - (byte/signed byte/word/signed word/dword/signed dword) 10 -- vwsz1=vwsz1_minus_vbuc1 + //SEG34 [12] (signed word) yvel_init#3 ← (signed word) yvel_init#13 - (byte/signed byte/word/signed word/dword/signed dword) $a -- vwsz1=vwsz1_minus_vbuc1 lda yvel_init sec sbc #<$a @@ -1757,7 +1757,7 @@ anim: { lda yvel_init+1 sbc #>$a sta yvel_init+1 - //SEG35 [13] if((signed word) yvel_init#3>=-(byte/word/signed word/dword/signed dword) 200) goto anim::@5 -- vwsz1_ge_vwsc1_then_la1 + //SEG35 [13] if((signed word) yvel_init#3>=-(byte/word/signed word/dword/signed dword) $c8) goto anim::@5 -- vwsz1_ge_vwsc1_then_la1 lda yvel_init cmp #<-$c8 lda yvel_init+1 @@ -1768,7 +1768,7 @@ anim: { bpl b5_from_b3 //SEG36 [14] phi from anim::@3 to anim::@2 [phi:anim::@3->anim::@2] b2_from_b3: - //SEG37 [14] phi (signed word) yvel#4 = (byte/word/signed word/dword/signed dword) 200 [phi:anim::@3->anim::@2#0] -- vwsz1=vbuc1 + //SEG37 [14] phi (signed word) yvel#4 = (byte/word/signed word/dword/signed dword) $c8 [phi:anim::@3->anim::@2#0] -- vwsz1=vbuc1 lda #<$c8 sta yvel lda #>$c8 @@ -1845,7 +1845,7 @@ anim: { rol $ff rol _10 rol _10+1 - //SEG57 [21] (signed word) anim::sprite_x#0 ← (signed word~) anim::$10 + (byte/word/signed word/dword/signed dword) 160 -- vwsz1=vwsz1_plus_vbuc1 + //SEG57 [21] (signed word) anim::sprite_x#0 ← (signed word~) anim::$10 + (byte/word/signed word/dword/signed dword) $a0 -- vwsz1=vwsz1_plus_vbuc1 clc lda sprite_x adc #<$a0 @@ -1873,7 +1873,7 @@ anim: { rol $ff rol _12 rol _12+1 - //SEG59 [23] (signed word) anim::sprite_y#0 ← (byte/word/signed word/dword/signed dword) 230 - (signed word~) anim::$12 -- vwsz1=vbuc1_minus_vwsz1 + //SEG59 [23] (signed word) anim::sprite_y#0 ← (byte/word/signed word/dword/signed dword) $e6 - (signed word~) anim::$12 -- vwsz1=vbuc1_minus_vwsz1 lda #<$e6 sec sbc sprite_y @@ -1921,16 +1921,16 @@ init: { //SEG75 [34] *((const byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SPRITES_EXPAND_Y - //SEG76 [35] *((const byte*) SPRITES_XPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) 100 -- _deref_pbuc1=vbuc2 + //SEG76 [35] *((const byte*) SPRITES_XPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) $64 -- _deref_pbuc1=vbuc2 lda #$64 sta SPRITES_XPOS - //SEG77 [36] *((const byte*) SPRITES_YPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) 100 -- _deref_pbuc1=vbuc2 + //SEG77 [36] *((const byte*) SPRITES_YPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) $64 -- _deref_pbuc1=vbuc2 lda #$64 sta SPRITES_YPOS //SEG78 [37] *((const byte*) SPRITES_COLS#0) ← (const byte) WHITE#0 -- _deref_pbuc1=vbuc2 lda #WHITE sta SPRITES_COLS - //SEG79 [38] *((const byte*) SPRITES_PTR#0) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 -- _deref_pbuc1=vbuc2 + //SEG79 [38] *((const byte*) SPRITES_PTR#0) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 -- _deref_pbuc1=vbuc2 lda #$ff&SPRITE/$40 sta SPRITES_PTR //SEG80 [39] phi from init to init::@1 [phi:init->init::@1] @@ -1956,7 +1956,7 @@ init: { bne !+ inc sc+1 !: - //SEG87 [42] if((byte*) init::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto init::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG87 [42] if((byte*) init::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto init::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>SCREEN+$3e8 bne b1_from_b1 @@ -1974,12 +1974,12 @@ init: { jmp b2 //SEG92 init::@2 b2: - //SEG93 [44] *((const byte*) SPRITE#0 + (byte) init::i#2) ← (byte/word/signed word/dword/signed dword) 255 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG93 [44] *((const byte*) SPRITE#0 + (byte) init::i#2) ← (byte/word/signed word/dword/signed dword) $ff -- pbuc1_derefidx_vbuxx=vbuc2 lda #$ff sta SPRITE,x //SEG94 [45] (byte) init::i#1 ← ++ (byte) init::i#2 -- vbuxx=_inc_vbuxx inx - //SEG95 [46] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 64) goto init::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG95 [46] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $40) goto init::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$40 bne b2_from_b2 jmp breturn @@ -2116,32 +2116,32 @@ FINAL SYMBOL TABLE (byte) PROCPORT_RAM_IO (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SPRITE -(const byte*) SPRITE#0 SPRITE = ((byte*))(word/signed word/dword/signed dword) 8192 +(const byte*) SPRITE#0 SPRITE = ((byte*))(word/signed word/dword/signed dword) $2000 (byte*) SPRITES_COLS -(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) 53287 +(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) $d027 (byte*) SPRITES_ENABLE -(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) 53269 +(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) $d015 (byte*) SPRITES_EXPAND_X -(const byte*) SPRITES_EXPAND_X#0 SPRITES_EXPAND_X = ((byte*))(word/dword/signed dword) 53277 +(const byte*) SPRITES_EXPAND_X#0 SPRITES_EXPAND_X = ((byte*))(word/dword/signed dword) $d01d (byte*) SPRITES_EXPAND_Y -(const byte*) SPRITES_EXPAND_Y#0 SPRITES_EXPAND_Y = ((byte*))(word/dword/signed dword) 53271 +(const byte*) SPRITES_EXPAND_Y#0 SPRITES_EXPAND_Y = ((byte*))(word/dword/signed dword) $d017 (byte*) SPRITES_MC (byte*) SPRITES_MC1 (byte*) SPRITES_MC2 (byte*) SPRITES_PRIORITY (byte*) SPRITES_PTR -(const byte*) SPRITES_PTR#0 SPRITES_PTR = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1016 +(const byte*) SPRITES_PTR#0 SPRITES_PTR = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3f8 (byte*) SPRITES_XMSB -(const byte*) SPRITES_XMSB#0 SPRITES_XMSB = ((byte*))(word/dword/signed dword) 53264 +(const byte*) SPRITES_XMSB#0 SPRITES_XMSB = ((byte*))(word/dword/signed dword) $d010 (byte*) SPRITES_XPOS -(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) 53248 +(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) $d000 (byte*) SPRITES_YPOS -(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) 53249 +(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) $d001 (word) SPRITE_PTRS (byte) VIC_BMM (byte*) VIC_CONTROL @@ -2265,12 +2265,12 @@ main: { //SEG11 [5] call init jsr init //SEG12 [6] phi from main to main::@2 [phi:main->main::@2] - //SEG13 [6] phi (signed word) yvel_init#13 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:main->main::@2#0] -- vwsz1=vbuc1 + //SEG13 [6] phi (signed word) yvel_init#13 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:main->main::@2#0] -- vwsz1=vbuc1 lda #<$64 sta yvel_init lda #>$64 sta yvel_init+1 - //SEG14 [6] phi (signed word) xvel#12 = (byte/word/signed word/dword/signed dword) 200 [phi:main->main::@2#1] -- vwsz1=vbuc1 + //SEG14 [6] phi (signed word) xvel#12 = (byte/word/signed word/dword/signed dword) $c8 [phi:main->main::@2#1] -- vwsz1=vbuc1 lda #<$c8 sta xvel lda #>$c8 @@ -2282,7 +2282,7 @@ main: { //SEG16 [6] phi (signed word) xpos#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@2#3] -- vwsz1=vbuc1 sta xpos sta xpos+1 - //SEG17 [6] phi (signed word) yvel#12 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:main->main::@2#4] -- vwsz1=vbuc1 + //SEG17 [6] phi (signed word) yvel#12 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:main->main::@2#4] -- vwsz1=vbuc1 lda #<$64 sta yvel_12 lda #>$64 @@ -2290,7 +2290,7 @@ main: { //SEG18 [6] phi from main::@2 to main::@2 [phi:main::@2->main::@2] //SEG19 main::@2 b2: - //SEG20 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG20 [7] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b2 @@ -2326,7 +2326,7 @@ anim: { eor #$ff adc #0 sta xvel+1 - //SEG34 [12] (signed word) yvel_init#3 ← (signed word) yvel_init#13 - (byte/signed byte/word/signed word/dword/signed dword) 10 -- vwsz1=vwsz1_minus_vbuc1 + //SEG34 [12] (signed word) yvel_init#3 ← (signed word) yvel_init#13 - (byte/signed byte/word/signed word/dword/signed dword) $a -- vwsz1=vwsz1_minus_vbuc1 lda yvel_init sec sbc #<$a @@ -2334,7 +2334,7 @@ anim: { lda yvel_init+1 sbc #>$a sta yvel_init+1 - //SEG35 [13] if((signed word) yvel_init#3>=-(byte/word/signed word/dword/signed dword) 200) goto anim::@5 -- vwsz1_ge_vwsc1_then_la1 + //SEG35 [13] if((signed word) yvel_init#3>=-(byte/word/signed word/dword/signed dword) $c8) goto anim::@5 -- vwsz1_ge_vwsc1_then_la1 lda yvel_init cmp #<-$c8 lda yvel_init+1 @@ -2344,7 +2344,7 @@ anim: { !: bpl b2 //SEG36 [14] phi from anim::@3 to anim::@2 [phi:anim::@3->anim::@2] - //SEG37 [14] phi (signed word) yvel#4 = (byte/word/signed word/dword/signed dword) 200 [phi:anim::@3->anim::@2#0] -- vwsz1=vbuc1 + //SEG37 [14] phi (signed word) yvel#4 = (byte/word/signed word/dword/signed dword) $c8 [phi:anim::@3->anim::@2#0] -- vwsz1=vbuc1 lda #<$c8 sta yvel lda #>$c8 @@ -2413,7 +2413,7 @@ anim: { rol $ff rol _10 rol _10+1 - //SEG57 [21] (signed word) anim::sprite_x#0 ← (signed word~) anim::$10 + (byte/word/signed word/dword/signed dword) 160 -- vwsz1=vwsz1_plus_vbuc1 + //SEG57 [21] (signed word) anim::sprite_x#0 ← (signed word~) anim::$10 + (byte/word/signed word/dword/signed dword) $a0 -- vwsz1=vwsz1_plus_vbuc1 clc lda sprite_x adc #<$a0 @@ -2441,7 +2441,7 @@ anim: { rol $ff rol _12 rol _12+1 - //SEG59 [23] (signed word) anim::sprite_y#0 ← (byte/word/signed word/dword/signed dword) 230 - (signed word~) anim::$12 -- vwsz1=vbuc1_minus_vwsz1 + //SEG59 [23] (signed word) anim::sprite_y#0 ← (byte/word/signed word/dword/signed dword) $e6 - (signed word~) anim::$12 -- vwsz1=vbuc1_minus_vwsz1 lda #<$e6 sec sbc sprite_y @@ -2481,15 +2481,15 @@ init: { sta SPRITES_EXPAND_X //SEG75 [34] *((const byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 sta SPRITES_EXPAND_Y - //SEG76 [35] *((const byte*) SPRITES_XPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) 100 -- _deref_pbuc1=vbuc2 + //SEG76 [35] *((const byte*) SPRITES_XPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) $64 -- _deref_pbuc1=vbuc2 lda #$64 sta SPRITES_XPOS - //SEG77 [36] *((const byte*) SPRITES_YPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) 100 -- _deref_pbuc1=vbuc2 + //SEG77 [36] *((const byte*) SPRITES_YPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) $64 -- _deref_pbuc1=vbuc2 sta SPRITES_YPOS //SEG78 [37] *((const byte*) SPRITES_COLS#0) ← (const byte) WHITE#0 -- _deref_pbuc1=vbuc2 lda #WHITE sta SPRITES_COLS - //SEG79 [38] *((const byte*) SPRITES_PTR#0) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) 64 -- _deref_pbuc1=vbuc2 + //SEG79 [38] *((const byte*) SPRITES_PTR#0) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word/dword/signed dword) $40 -- _deref_pbuc1=vbuc2 lda #$ff&SPRITE/$40 sta SPRITES_PTR //SEG80 [39] phi from init to init::@1 [phi:init->init::@1] @@ -2511,7 +2511,7 @@ init: { bne !+ inc sc+1 !: - //SEG87 [42] if((byte*) init::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto init::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG87 [42] if((byte*) init::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto init::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>SCREEN+$3e8 bne b1 @@ -2525,12 +2525,12 @@ init: { //SEG91 [43] phi (byte) init::i#2 = (byte) init::i#1 [phi:init::@2->init::@2#0] -- register_copy //SEG92 init::@2 b2: - //SEG93 [44] *((const byte*) SPRITE#0 + (byte) init::i#2) ← (byte/word/signed word/dword/signed dword) 255 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG93 [44] *((const byte*) SPRITE#0 + (byte) init::i#2) ← (byte/word/signed word/dword/signed dword) $ff -- pbuc1_derefidx_vbuxx=vbuc2 lda #$ff sta SPRITE,x //SEG94 [45] (byte) init::i#1 ← ++ (byte) init::i#2 -- vbuxx=_inc_vbuxx inx - //SEG95 [46] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 64) goto init::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG95 [46] if((byte) init::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $40) goto init::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$40 bne b2 //SEG96 init::@return diff --git a/src/test/ref/signed-words.sym b/src/test/ref/signed-words.sym index bf74b8b10..09e830575 100644 --- a/src/test/ref/signed-words.sym +++ b/src/test/ref/signed-words.sym @@ -55,32 +55,32 @@ (byte) PROCPORT_RAM_IO (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SPRITE -(const byte*) SPRITE#0 SPRITE = ((byte*))(word/signed word/dword/signed dword) 8192 +(const byte*) SPRITE#0 SPRITE = ((byte*))(word/signed word/dword/signed dword) $2000 (byte*) SPRITES_COLS -(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) 53287 +(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word/dword/signed dword) $d027 (byte*) SPRITES_ENABLE -(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) 53269 +(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word/dword/signed dword) $d015 (byte*) SPRITES_EXPAND_X -(const byte*) SPRITES_EXPAND_X#0 SPRITES_EXPAND_X = ((byte*))(word/dword/signed dword) 53277 +(const byte*) SPRITES_EXPAND_X#0 SPRITES_EXPAND_X = ((byte*))(word/dword/signed dword) $d01d (byte*) SPRITES_EXPAND_Y -(const byte*) SPRITES_EXPAND_Y#0 SPRITES_EXPAND_Y = ((byte*))(word/dword/signed dword) 53271 +(const byte*) SPRITES_EXPAND_Y#0 SPRITES_EXPAND_Y = ((byte*))(word/dword/signed dword) $d017 (byte*) SPRITES_MC (byte*) SPRITES_MC1 (byte*) SPRITES_MC2 (byte*) SPRITES_PRIORITY (byte*) SPRITES_PTR -(const byte*) SPRITES_PTR#0 SPRITES_PTR = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1016 +(const byte*) SPRITES_PTR#0 SPRITES_PTR = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3f8 (byte*) SPRITES_XMSB -(const byte*) SPRITES_XMSB#0 SPRITES_XMSB = ((byte*))(word/dword/signed dword) 53264 +(const byte*) SPRITES_XMSB#0 SPRITES_XMSB = ((byte*))(word/dword/signed dword) $d010 (byte*) SPRITES_XPOS -(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) 53248 +(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word/dword/signed dword) $d000 (byte*) SPRITES_YPOS -(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) 53249 +(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word/dword/signed dword) $d001 (word) SPRITE_PTRS (byte) VIC_BMM (byte*) VIC_CONTROL diff --git a/src/test/ref/sinus-basic.cfg b/src/test/ref/sinus-basic.cfg index 4040d6301..2ec170c5a 100644 --- a/src/test/ref/sinus-basic.cfg +++ b/src/test/ref/sinus-basic.cfg @@ -20,8 +20,8 @@ main::@4: scope:[main] from main::@3 [9] call setMEMtoFAC to:main::@1 main::@1: scope:[main] from main::@17 main::@4 - [10] (byte*) print_line_cursor#13 ← phi( main::@17/(byte*) print_line_cursor#1 main::@4/((byte*))(word/signed word/dword/signed dword) 1024 ) - [10] (byte*) print_char_cursor#32 ← phi( main::@17/(byte*~) print_char_cursor#49 main::@4/((byte*))(word/signed word/dword/signed dword) 1024 ) + [10] (byte*) print_line_cursor#13 ← phi( main::@17/(byte*) print_line_cursor#1 main::@4/((byte*))(word/signed word/dword/signed dword) $400 ) + [10] (byte*) print_char_cursor#32 ← phi( main::@17/(byte*~) print_char_cursor#49 main::@4/((byte*))(word/signed word/dword/signed dword) $400 ) [10] (byte) main::i#10 ← phi( main::@17/(byte) main::i#1 main::@4/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [11] (word) setFAC::w#1 ← ((word)) (byte) main::i#10 [12] call setFAC @@ -69,7 +69,7 @@ main::@15: scope:[main] from main::@14 to:main::@16 main::@16: scope:[main] from main::@15 [34] (byte) main::i#1 ← ++ (byte) main::i#10 - [35] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 26) goto main::@17 + [35] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $1a) goto main::@17 to:main::@return main::@return: scope:[main] from main::@16 [36] return @@ -82,7 +82,7 @@ print_ln: scope:[print_ln] from main::@15 to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [39] (byte*) print_line_cursor#6 ← phi( print_ln/(byte*) print_line_cursor#13 print_ln::@1/(byte*) print_line_cursor#1 ) - [40] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [40] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) $28 [41] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#10) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 @@ -107,7 +107,7 @@ print_byte: scope:[print_byte] from print_word print_word::@1 [51] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [52] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [52] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [53] (byte) print_char::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [54] call print_char to:print_byte::@return @@ -178,7 +178,7 @@ divMEMbyFAC::@return: scope:[divMEMbyFAC] from divMEMbyFAC::@1 [83] return to:@return setFAC: scope:[setFAC] from main main::@1 main::@8 - [84] (word) setFAC::w#3 ← phi( main/(word/signed word/dword/signed dword) 1275 main::@1/(word) setFAC::w#1 main::@8/(byte/signed byte/word/signed word/dword/signed dword) 25 ) + [84] (word) setFAC::w#3 ← phi( main/(word/signed word/dword/signed dword) $4fb main::@1/(word) setFAC::w#1 main::@8/(byte/signed byte/word/signed word/dword/signed dword) $19 ) [85] (byte*~) prepareMEM::mem#7 ← (byte*)(word) setFAC::w#3 [86] call prepareMEM to:setFAC::@1 diff --git a/src/test/ref/sinus-basic.log b/src/test/ref/sinus-basic.log index 373589065..0554410e7 100644 --- a/src/test/ref/sinus-basic.log +++ b/src/test/ref/sinus-basic.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 to:@12 @@ -12,7 +12,7 @@ print_ln: scope:[print_ln] from main::@15 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 (byte*) print_char_cursor#15 ← phi( print_ln/(byte*) print_char_cursor#29 print_ln::@1/(byte*) print_char_cursor#15 ) (byte*) print_line_cursor#6 ← phi( print_ln/(byte*) print_line_cursor#12 print_ln::@1/(byte*) print_line_cursor#1 ) - (byte*~) print_ln::$0 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) print_ln::$0 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) print_line_cursor#1 ← (byte*~) print_ln::$0 (bool~) print_ln::$1 ← (byte*) print_line_cursor#1 < (byte*) print_char_cursor#15 if((bool~) print_ln::$1) goto print_ln::@1 @@ -68,7 +68,7 @@ print_byte::@1: scope:[print_byte] from print_byte (byte) print_byte::b#3 ← phi( print_byte/(byte) print_byte::b#2 ) (byte*) print_char_cursor#20 ← phi( print_byte/(byte*) print_char_cursor#10 ) (byte*) print_char_cursor#6 ← (byte*) print_char_cursor#20 - (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte) print_char::ch#1 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$2) call print_char to:print_byte::@2 @@ -95,8 +95,8 @@ print_char::@return: scope:[print_char] from print_char @19: scope:[] from @12 (byte*) print_line_cursor#16 ← phi( @12/(byte*) print_line_cursor#17 ) (byte*) print_char_cursor#35 ← phi( @12/(byte*) print_char_cursor#36 ) - (byte*) memLo#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) 254 - (byte*) memHi#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) 255 + (byte*) memLo#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) $fe + (byte*) memHi#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) $ff to:@47 prepareMEM: scope:[prepareMEM] from addMEMtoFAC divMEMbyFAC mulFACbyMEM setFAC setMEMtoFAC (byte*) prepareMEM::mem#5 ← phi( addMEMtoFAC/(byte*) prepareMEM::mem#2 divMEMbyFAC/(byte*) prepareMEM::mem#3 mulFACbyMEM/(byte*) prepareMEM::mem#4 setFAC/(byte*) prepareMEM::mem#0 setMEMtoFAC/(byte*) prepareMEM::mem#1 ) @@ -191,8 +191,8 @@ main: scope:[main] from @47 (byte*) print_char_cursor#48 ← phi( @47/(byte*) print_char_cursor#33 ) (byte[]) main::f_i#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) main::f_127#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } - (byte*) main::f_2pi#0 ← ((byte*)) (word/dword/signed dword) 58085 - (word) setFAC::w#0 ← (word/signed word/dword/signed dword) 1275 + (byte*) main::f_2pi#0 ← ((byte*)) (word/dword/signed dword) $e2e5 + (word) setFAC::w#0 ← (word/signed word/dword/signed dword) $4fb call setFAC to:main::@3 main::@3: scope:[main] from main @@ -237,7 +237,7 @@ main::@8: scope:[main] from main::@7 (byte) main::i#11 ← phi( main::@7/(byte) main::i#12 ) (byte*) print_line_cursor#23 ← phi( main::@7/(byte*) print_line_cursor#24 ) (byte*) print_char_cursor#41 ← phi( main::@7/(byte*) print_char_cursor#42 ) - (word) setFAC::w#2 ← (byte/signed byte/word/signed word/dword/signed dword) 25 + (word) setFAC::w#2 ← (byte/signed byte/word/signed word/dword/signed dword) $19 call setFAC to:main::@9 main::@9: scope:[main] from main::@8 @@ -296,8 +296,8 @@ main::@16: scope:[main] from main::@15 (byte*) print_line_cursor#9 ← phi( main::@15/(byte*) print_line_cursor#2 ) (byte*) print_line_cursor#3 ← (byte*) print_line_cursor#9 (byte*) print_char_cursor#12 ← (byte*) print_char_cursor#26 - (byte) main::i#1 ← (byte) main::i#3 + rangenext(1,25) - (bool~) main::$15 ← (byte) main::i#1 != rangelast(1,25) + (byte) main::i#1 ← (byte) main::i#3 + rangenext(1,$19) + (bool~) main::$15 ← (byte) main::i#1 != rangelast(1,$19) if((bool~) main::$15) goto main::@1 to:main::@return main::@return: scope:[main] from main::@16 @@ -602,18 +602,18 @@ Redundant Phi (byte*) print_char_cursor#14 (byte*) print_char_cursor#12 Redundant Phi (byte*) print_line_cursor#11 (byte*) print_line_cursor#10 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) print_ln::$1 [8] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#10) goto print_ln::@1 -Simple Condition (bool~) main::$15 [148] if((byte) main::i#1!=rangelast(1,25)) goto main::@1 +Simple Condition (bool~) main::$15 [148] if((byte) main::i#1!=rangelast(1,$19)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) print_char_cursor#0 = ((byte*))1024 +Constant (const byte*) print_char_cursor#0 = ((byte*))$400 Constant (const byte[]) print_hextab#0 = $0 -Constant (const byte*) memLo#0 = ((byte*))254 -Constant (const byte*) memHi#0 = ((byte*))255 +Constant (const byte*) memLo#0 = ((byte*))$fe +Constant (const byte*) memHi#0 = ((byte*))$ff Constant (const byte[]) main::f_i#0 = { 0, 0, 0, 0, 0 } Constant (const byte[]) main::f_127#0 = { 0, 0, 0, 0, 0 } -Constant (const byte*) main::f_2pi#0 = ((byte*))58085 -Constant (const word) setFAC::w#0 = 1275 +Constant (const byte*) main::f_2pi#0 = ((byte*))$e2e5 +Constant (const word) setFAC::w#0 = $4fb Constant (const byte) main::i#0 = 1 -Constant (const word) setFAC::w#2 = 25 +Constant (const word) setFAC::w#2 = $19 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) setMEMtoFAC::mem#0 = main::f_127#0 Constant (const byte*) mulFACbyMEM::mem#0 = main::f_2pi#0 @@ -630,7 +630,7 @@ Successful SSA optimization Pass2FixInlineConstructors Eliminating Noop Cast (byte*) prepareMEM::mem#0 ← ((byte*)) (word) setFAC::w#3 Successful SSA optimization Pass2NopCastElimination Resolved ranged next value main::i#1 ← ++ main::i#10 to ++ -Resolved ranged comparison value if(main::i#1!=rangelast(1,25)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 26 +Resolved ranged comparison value if(main::i#1!=rangelast(1,$19)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $1a Culled Empty Block (label) print_ln::@2 Culled Empty Block (label) print_word::@2 Culled Empty Block (label) @12 @@ -652,18 +652,18 @@ Inlining constant with var siblings (const byte*) mulFACbyMEM::mem#1 Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte*) print_char_cursor#0 Constant inlined addMEMtoFAC::mem#0 = (const byte[]) main::f_127#0 -Constant inlined setFAC::w#2 = (byte/signed byte/word/signed word/dword/signed dword) 25 +Constant inlined setFAC::w#2 = (byte/signed byte/word/signed word/dword/signed dword) $19 Constant inlined prepareMEM::mem#2 = (const byte[]) main::f_127#0 Constant inlined prepareMEM::mem#3 = (const byte[]) main::f_i#0 Constant inlined $0 = (const byte[]) print_hextab#0 -Constant inlined print_char_cursor#0 = ((byte*))(word/signed word/dword/signed dword) 1024 +Constant inlined print_char_cursor#0 = ((byte*))(word/signed word/dword/signed dword) $400 Constant inlined divMEMbyFAC::mem#0 = (const byte[]) main::f_i#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined setMEMtoFAC::mem#1 = (const byte[]) main::f_i#0 Constant inlined mulFACbyMEM::mem#0 = (const byte*) main::f_2pi#0 Constant inlined setMEMtoFAC::mem#0 = (const byte[]) main::f_127#0 Constant inlined mulFACbyMEM::mem#1 = (const byte[]) main::f_127#0 -Constant inlined setFAC::w#0 = (word/signed word/dword/signed dword) 1275 +Constant inlined setFAC::w#0 = (word/signed word/dword/signed dword) $4fb Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@17(between main::@16 and main::@1) Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1) @@ -756,8 +756,8 @@ main::@4: scope:[main] from main::@3 [9] call setMEMtoFAC to:main::@1 main::@1: scope:[main] from main::@17 main::@4 - [10] (byte*) print_line_cursor#13 ← phi( main::@17/(byte*) print_line_cursor#1 main::@4/((byte*))(word/signed word/dword/signed dword) 1024 ) - [10] (byte*) print_char_cursor#32 ← phi( main::@17/(byte*~) print_char_cursor#49 main::@4/((byte*))(word/signed word/dword/signed dword) 1024 ) + [10] (byte*) print_line_cursor#13 ← phi( main::@17/(byte*) print_line_cursor#1 main::@4/((byte*))(word/signed word/dword/signed dword) $400 ) + [10] (byte*) print_char_cursor#32 ← phi( main::@17/(byte*~) print_char_cursor#49 main::@4/((byte*))(word/signed word/dword/signed dword) $400 ) [10] (byte) main::i#10 ← phi( main::@17/(byte) main::i#1 main::@4/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [11] (word) setFAC::w#1 ← ((word)) (byte) main::i#10 [12] call setFAC @@ -805,7 +805,7 @@ main::@15: scope:[main] from main::@14 to:main::@16 main::@16: scope:[main] from main::@15 [34] (byte) main::i#1 ← ++ (byte) main::i#10 - [35] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 26) goto main::@17 + [35] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $1a) goto main::@17 to:main::@return main::@return: scope:[main] from main::@16 [36] return @@ -818,7 +818,7 @@ print_ln: scope:[print_ln] from main::@15 to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [39] (byte*) print_line_cursor#6 ← phi( print_ln/(byte*) print_line_cursor#13 print_ln::@1/(byte*) print_line_cursor#1 ) - [40] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [40] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) $28 [41] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#10) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 @@ -843,7 +843,7 @@ print_byte: scope:[print_byte] from print_word print_word::@1 [51] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [52] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [52] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [53] (byte) print_char::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [54] call print_char to:print_byte::@return @@ -914,7 +914,7 @@ divMEMbyFAC::@return: scope:[divMEMbyFAC] from divMEMbyFAC::@1 [83] return to:@return setFAC: scope:[setFAC] from main main::@1 main::@8 - [84] (word) setFAC::w#3 ← phi( main/(word/signed word/dword/signed dword) 1275 main::@1/(word) setFAC::w#1 main::@8/(byte/signed byte/word/signed word/dword/signed dword) 25 ) + [84] (word) setFAC::w#3 ← phi( main/(word/signed word/dword/signed dword) $4fb main::@1/(word) setFAC::w#1 main::@8/(byte/signed byte/word/signed word/dword/signed dword) $19 ) [85] (byte*~) prepareMEM::mem#7 ← (byte*)(word) setFAC::w#3 [86] call prepareMEM to:setFAC::@1 @@ -1097,7 +1097,7 @@ main: { //SEG11 [5] call setFAC //SEG12 [84] phi from main to setFAC [phi:main->setFAC] setFAC_from_main: - //SEG13 [84] phi (word) setFAC::w#3 = (word/signed word/dword/signed dword) 1275 [phi:main->setFAC#0] -- vwuz1=vwuc1 + //SEG13 [84] phi (word) setFAC::w#3 = (word/signed word/dword/signed dword) $4fb [phi:main->setFAC#0] -- vwuz1=vwuc1 lda #<$4fb sta setFAC.w lda #>$4fb @@ -1126,12 +1126,12 @@ main: { jsr setMEMtoFAC //SEG22 [10] phi from main::@4 to main::@1 [phi:main::@4->main::@1] b1_from_b4: - //SEG23 [10] phi (byte*) print_line_cursor#13 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::@4->main::@1#0] -- pbuz1=pbuc1 + //SEG23 [10] phi (byte*) print_line_cursor#13 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::@4->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 sta print_line_cursor+1 - //SEG24 [10] phi (byte*) print_char_cursor#32 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::@4->main::@1#1] -- pbuz1=pbuc1 + //SEG24 [10] phi (byte*) print_char_cursor#32 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::@4->main::@1#1] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -1188,7 +1188,7 @@ main: { //SEG43 [18] call setFAC //SEG44 [84] phi from main::@8 to setFAC [phi:main::@8->setFAC] setFAC_from_b8: - //SEG45 [84] phi (word) setFAC::w#3 = (byte/signed byte/word/signed word/dword/signed dword) 25 [phi:main::@8->setFAC#0] -- vwuz1=vbuc1 + //SEG45 [84] phi (word) setFAC::w#3 = (byte/signed byte/word/signed word/dword/signed dword) $19 [phi:main::@8->setFAC#0] -- vwuz1=vbuc1 lda #<$19 sta setFAC.w lda #>$19 @@ -1269,7 +1269,7 @@ main: { b16: //SEG74 [34] (byte) main::i#1 ← ++ (byte) main::i#10 -- vbuz1=_inc_vbuz1 inc i - //SEG75 [35] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 26) goto main::@17 -- vbuz1_neq_vbuc1_then_la1 + //SEG75 [35] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $1a) goto main::@17 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$1a bne b17 @@ -1304,7 +1304,7 @@ print_ln: { jmp b1 //SEG87 print_ln::@1 b1: - //SEG88 [40] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG88 [40] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -1386,7 +1386,7 @@ print_byte: { jmp b1 //SEG113 print_byte::@1 b1: - //SEG114 [52] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG114 [52] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and b sta _2 @@ -1651,13 +1651,13 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ ma Statement [29] (word) getFAC::return#2 ← (word) getFAC::return#0 [ main::i#10 print_char_cursor#32 print_line_cursor#13 getFAC::return#2 ] ( main:2 [ main::i#10 print_char_cursor#32 print_line_cursor#13 getFAC::return#2 ] ) always clobbers reg byte a Statement [30] (word) print_word::w#0 ← (word) getFAC::return#2 [ main::i#10 print_char_cursor#32 print_line_cursor#13 print_word::w#0 ] ( main:2 [ main::i#10 print_char_cursor#32 print_line_cursor#13 print_word::w#0 ] ) always clobbers reg byte a Statement [37] (byte*~) print_char_cursor#49 ← (byte*) print_line_cursor#1 [ main::i#1 print_char_cursor#49 print_line_cursor#1 ] ( main:2 [ main::i#1 print_char_cursor#49 print_line_cursor#1 ] ) always clobbers reg byte a -Statement [40] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#10 ] ( main:2::print_ln:33 [ main::i#10 print_line_cursor#1 print_char_cursor#10 ] ) always clobbers reg byte a +Statement [40] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#1 print_char_cursor#10 ] ( main:2::print_ln:33 [ main::i#10 print_line_cursor#1 print_char_cursor#10 ] ) always clobbers reg byte a Statement [41] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#10) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#10 ] ( main:2::print_ln:33 [ main::i#10 print_line_cursor#1 print_char_cursor#10 ] ) always clobbers reg byte a Statement [43] (byte) print_byte::b#0 ← > (word) print_word::w#0 [ print_char_cursor#32 print_word::w#0 print_byte::b#0 ] ( main:2::print_word:31 [ main::i#10 print_line_cursor#13 print_char_cursor#32 print_word::w#0 print_byte::b#0 ] ) always clobbers reg byte a Statement [45] (byte) print_byte::b#1 ← < (word) print_word::w#0 [ print_char_cursor#10 print_byte::b#1 ] ( main:2::print_word:31 [ main::i#10 print_line_cursor#13 print_char_cursor#10 print_byte::b#1 ] ) always clobbers reg byte a Statement [49] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#2 print_char_cursor#31 print_byte::$0 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_byte::b#2 print_char_cursor#31 print_byte::$0 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_byte::b#2 print_char_cursor#31 print_byte::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] -Statement [52] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 print_byte::$2 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 print_byte::$2 ] ) always clobbers reg byte a +Statement [52] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 print_byte::$2 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 print_byte::$2 ] ) always clobbers reg byte a Statement [57] *((byte*) print_char_cursor#23) ← (byte) print_char::ch#2 [ print_char_cursor#23 ] ( main:2::print_word:31::print_byte:44::print_char:51 [ main::i#10 print_line_cursor#13 print_word::w#0 print_byte::b#2 print_char_cursor#23 ] main:2::print_word:31::print_byte:46::print_char:51 [ main::i#10 print_line_cursor#13 print_byte::b#2 print_char_cursor#23 ] main:2::print_word:31::print_byte:44::print_char:54 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#23 ] main:2::print_word:31::print_byte:46::print_char:54 [ main::i#10 print_line_cursor#13 print_char_cursor#23 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ main::i#10 main::i#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:5 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] @@ -1674,14 +1674,14 @@ Removing always clobbered register reg byte x as potential for zp ZP_BYTE:2 [ ma Statement [11] (word) setFAC::w#1 ← ((word)) (byte) main::i#10 [ main::i#10 print_char_cursor#32 print_line_cursor#13 setFAC::w#1 ] ( main:2 [ main::i#10 print_char_cursor#32 print_line_cursor#13 setFAC::w#1 ] ) always clobbers reg byte a Statement [29] (word) getFAC::return#2 ← (word) getFAC::return#0 [ main::i#10 print_char_cursor#32 print_line_cursor#13 getFAC::return#2 ] ( main:2 [ main::i#10 print_char_cursor#32 print_line_cursor#13 getFAC::return#2 ] ) always clobbers reg byte a Statement [30] (word) print_word::w#0 ← (word) getFAC::return#2 [ main::i#10 print_char_cursor#32 print_line_cursor#13 print_word::w#0 ] ( main:2 [ main::i#10 print_char_cursor#32 print_line_cursor#13 print_word::w#0 ] ) always clobbers reg byte a -Statement [35] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 26) goto main::@17 [ main::i#1 print_line_cursor#1 ] ( main:2 [ main::i#1 print_line_cursor#1 ] ) always clobbers reg byte a +Statement [35] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $1a) goto main::@17 [ main::i#1 print_line_cursor#1 ] ( main:2 [ main::i#1 print_line_cursor#1 ] ) always clobbers reg byte a Statement [37] (byte*~) print_char_cursor#49 ← (byte*) print_line_cursor#1 [ main::i#1 print_char_cursor#49 print_line_cursor#1 ] ( main:2 [ main::i#1 print_char_cursor#49 print_line_cursor#1 ] ) always clobbers reg byte a -Statement [40] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#10 ] ( main:2::print_ln:33 [ main::i#10 print_line_cursor#1 print_char_cursor#10 ] ) always clobbers reg byte a +Statement [40] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#1 print_char_cursor#10 ] ( main:2::print_ln:33 [ main::i#10 print_line_cursor#1 print_char_cursor#10 ] ) always clobbers reg byte a Statement [41] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#10) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#10 ] ( main:2::print_ln:33 [ main::i#10 print_line_cursor#1 print_char_cursor#10 ] ) always clobbers reg byte a Statement [43] (byte) print_byte::b#0 ← > (word) print_word::w#0 [ print_char_cursor#32 print_word::w#0 print_byte::b#0 ] ( main:2::print_word:31 [ main::i#10 print_line_cursor#13 print_char_cursor#32 print_word::w#0 print_byte::b#0 ] ) always clobbers reg byte a Statement [45] (byte) print_byte::b#1 ← < (word) print_word::w#0 [ print_char_cursor#10 print_byte::b#1 ] ( main:2::print_word:31 [ main::i#10 print_line_cursor#13 print_char_cursor#10 print_byte::b#1 ] ) always clobbers reg byte a Statement [49] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#2 print_char_cursor#31 print_byte::$0 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_byte::b#2 print_char_cursor#31 print_byte::$0 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_byte::b#2 print_char_cursor#31 print_byte::$0 ] ) always clobbers reg byte a -Statement [52] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 print_byte::$2 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 print_byte::$2 ] ) always clobbers reg byte a +Statement [52] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 print_byte::$2 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 print_byte::$2 ] ) always clobbers reg byte a Statement [57] *((byte*) print_char_cursor#23) ← (byte) print_char::ch#2 [ print_char_cursor#23 ] ( main:2::print_word:31::print_byte:44::print_char:51 [ main::i#10 print_line_cursor#13 print_word::w#0 print_byte::b#2 print_char_cursor#23 ] main:2::print_word:31::print_byte:46::print_char:51 [ main::i#10 print_line_cursor#13 print_byte::b#2 print_char_cursor#23 ] main:2::print_word:31::print_byte:44::print_char:54 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#23 ] main:2::print_word:31::print_byte:46::print_char:54 [ main::i#10 print_line_cursor#13 print_char_cursor#23 ] ) always clobbers reg byte y Statement [61] (word) getFAC::return#0 ← *((const byte*) memHi#0) w= *((const byte*) memLo#0) [ getFAC::return#0 ] ( main:2::getFAC:28 [ main::i#10 print_char_cursor#32 print_line_cursor#13 getFAC::return#0 ] ) always clobbers reg byte a Statement asm { lda$fe ldy$ff jsr$b867 } always clobbers reg byte a reg byte y @@ -1787,7 +1787,7 @@ main: { //SEG11 [5] call setFAC //SEG12 [84] phi from main to setFAC [phi:main->setFAC] setFAC_from_main: - //SEG13 [84] phi (word) setFAC::w#3 = (word/signed word/dword/signed dword) 1275 [phi:main->setFAC#0] -- vwuz1=vwuc1 + //SEG13 [84] phi (word) setFAC::w#3 = (word/signed word/dword/signed dword) $4fb [phi:main->setFAC#0] -- vwuz1=vwuc1 lda #<$4fb sta setFAC.w lda #>$4fb @@ -1816,12 +1816,12 @@ main: { jsr setMEMtoFAC //SEG22 [10] phi from main::@4 to main::@1 [phi:main::@4->main::@1] b1_from_b4: - //SEG23 [10] phi (byte*) print_line_cursor#13 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::@4->main::@1#0] -- pbuz1=pbuc1 + //SEG23 [10] phi (byte*) print_line_cursor#13 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::@4->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 sta print_line_cursor+1 - //SEG24 [10] phi (byte*) print_char_cursor#32 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::@4->main::@1#1] -- pbuz1=pbuc1 + //SEG24 [10] phi (byte*) print_char_cursor#32 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::@4->main::@1#1] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -1878,7 +1878,7 @@ main: { //SEG43 [18] call setFAC //SEG44 [84] phi from main::@8 to setFAC [phi:main::@8->setFAC] setFAC_from_b8: - //SEG45 [84] phi (word) setFAC::w#3 = (byte/signed byte/word/signed word/dword/signed dword) 25 [phi:main::@8->setFAC#0] -- vwuz1=vbuc1 + //SEG45 [84] phi (word) setFAC::w#3 = (byte/signed byte/word/signed word/dword/signed dword) $19 [phi:main::@8->setFAC#0] -- vwuz1=vbuc1 lda #<$19 sta setFAC.w lda #>$19 @@ -1951,7 +1951,7 @@ main: { b16: //SEG74 [34] (byte) main::i#1 ← ++ (byte) main::i#10 -- vbuz1=_inc_vbuz1 inc i - //SEG75 [35] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 26) goto main::@17 -- vbuz1_neq_vbuc1_then_la1 + //SEG75 [35] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $1a) goto main::@17 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$1a bne b17 @@ -1986,7 +1986,7 @@ print_ln: { jmp b1 //SEG87 print_ln::@1 b1: - //SEG88 [40] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG88 [40] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -2063,7 +2063,7 @@ print_byte: { jmp b1 //SEG113 print_byte::@1 b1: - //SEG114 [52] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG114 [52] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG115 [53] (byte) print_char::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) -- vbuaa=pbuc1_derefidx_vbuaa @@ -2462,16 +2462,16 @@ FINAL SYMBOL TABLE (byte[]) main::f_127 (const byte[]) main::f_127#0 f_127 = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte*) main::f_2pi -(const byte*) main::f_2pi#0 f_2pi = ((byte*))(word/dword/signed dword) 58085 +(const byte*) main::f_2pi#0 f_2pi = ((byte*))(word/dword/signed dword) $e2e5 (byte[]) main::f_i (const byte[]) main::f_i#0 f_i = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte) main::i (byte) main::i#1 i zp ZP_BYTE:2 11.0 (byte) main::i#10 i zp ZP_BYTE:2 1.375 (byte*) memHi -(const byte*) memHi#0 memHi = ((byte*))(byte/word/signed word/dword/signed dword) 255 +(const byte*) memHi#0 memHi = ((byte*))(byte/word/signed word/dword/signed dword) $ff (byte*) memLo -(const byte*) memLo#0 memLo = ((byte*))(byte/word/signed word/dword/signed dword) 254 +(const byte*) memLo#0 memLo = ((byte*))(byte/word/signed word/dword/signed dword) $fe (void()) mulFACbyMEM((byte*) mulFACbyMEM::mem) (label) mulFACbyMEM::@1 (label) mulFACbyMEM::@return @@ -2575,7 +2575,7 @@ main: { .label i = 2 //SEG11 [5] call setFAC //SEG12 [84] phi from main to setFAC [phi:main->setFAC] - //SEG13 [84] phi (word) setFAC::w#3 = (word/signed word/dword/signed dword) 1275 [phi:main->setFAC#0] -- vwuz1=vwuc1 + //SEG13 [84] phi (word) setFAC::w#3 = (word/signed word/dword/signed dword) $4fb [phi:main->setFAC#0] -- vwuz1=vwuc1 lda #<$4fb sta setFAC.w lda #>$4fb @@ -2596,12 +2596,12 @@ main: { sta setMEMtoFAC.mem+1 jsr setMEMtoFAC //SEG22 [10] phi from main::@4 to main::@1 [phi:main::@4->main::@1] - //SEG23 [10] phi (byte*) print_line_cursor#13 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::@4->main::@1#0] -- pbuz1=pbuc1 + //SEG23 [10] phi (byte*) print_line_cursor#13 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::@4->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 sta print_line_cursor+1 - //SEG24 [10] phi (byte*) print_char_cursor#32 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::@4->main::@1#1] -- pbuz1=pbuc1 + //SEG24 [10] phi (byte*) print_char_cursor#32 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::@4->main::@1#1] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -2644,7 +2644,7 @@ main: { //SEG42 main::@8 //SEG43 [18] call setFAC //SEG44 [84] phi from main::@8 to setFAC [phi:main::@8->setFAC] - //SEG45 [84] phi (word) setFAC::w#3 = (byte/signed byte/word/signed word/dword/signed dword) 25 [phi:main::@8->setFAC#0] -- vwuz1=vbuc1 + //SEG45 [84] phi (word) setFAC::w#3 = (byte/signed byte/word/signed word/dword/signed dword) $19 [phi:main::@8->setFAC#0] -- vwuz1=vbuc1 lda #<$19 sta setFAC.w lda #>$19 @@ -2691,7 +2691,7 @@ main: { //SEG73 main::@16 //SEG74 [34] (byte) main::i#1 ← ++ (byte) main::i#10 -- vbuz1=_inc_vbuz1 inc i - //SEG75 [35] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 26) goto main::@17 -- vbuz1_neq_vbuc1_then_la1 + //SEG75 [35] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $1a) goto main::@17 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$1a bne b17 @@ -2720,7 +2720,7 @@ print_ln: { //SEG86 [39] phi (byte*) print_line_cursor#6 = (byte*) print_line_cursor#13 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy //SEG87 print_ln::@1 b1: - //SEG88 [40] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG88 [40] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -2786,7 +2786,7 @@ print_byte: { //SEG112 [56] phi (byte) print_char::ch#2 = (byte) print_char::ch#0 [phi:print_byte->print_char#1] -- register_copy jsr print_char //SEG113 print_byte::@1 - //SEG114 [52] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG114 [52] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG115 [53] (byte) print_char::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) -- vbuaa=pbuc1_derefidx_vbuaa diff --git a/src/test/ref/sinus-basic.sym b/src/test/ref/sinus-basic.sym index 175db2023..a0c2811dc 100644 --- a/src/test/ref/sinus-basic.sym +++ b/src/test/ref/sinus-basic.sym @@ -37,16 +37,16 @@ (byte[]) main::f_127 (const byte[]) main::f_127#0 f_127 = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte*) main::f_2pi -(const byte*) main::f_2pi#0 f_2pi = ((byte*))(word/dword/signed dword) 58085 +(const byte*) main::f_2pi#0 f_2pi = ((byte*))(word/dword/signed dword) $e2e5 (byte[]) main::f_i (const byte[]) main::f_i#0 f_i = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte) main::i (byte) main::i#1 i zp ZP_BYTE:2 11.0 (byte) main::i#10 i zp ZP_BYTE:2 1.375 (byte*) memHi -(const byte*) memHi#0 memHi = ((byte*))(byte/word/signed word/dword/signed dword) 255 +(const byte*) memHi#0 memHi = ((byte*))(byte/word/signed word/dword/signed dword) $ff (byte*) memLo -(const byte*) memLo#0 memLo = ((byte*))(byte/word/signed word/dword/signed dword) 254 +(const byte*) memLo#0 memLo = ((byte*))(byte/word/signed word/dword/signed dword) $fe (void()) mulFACbyMEM((byte*) mulFACbyMEM::mem) (label) mulFACbyMEM::@1 (label) mulFACbyMEM::@return diff --git a/src/test/ref/sinusgen16.cfg b/src/test/ref/sinusgen16.cfg index f33f438b3..39820b086 100644 --- a/src/test/ref/sinusgen16.cfg +++ b/src/test/ref/sinusgen16.cfg @@ -17,7 +17,7 @@ main::@5: scope:[main] from main to:main::@1 main::@1: scope:[main] from main::@5 main::@8 [8] (byte*) print_char_cursor#49 ← phi( main::@5/(const byte*) print_line_cursor#0 main::@8/(byte*) print_char_cursor#2 ) - [8] (signed word*) main::st1#2 ← phi( main::@5/(const signed word[120]) main::sintab1#0 main::@8/(signed word*) main::st1#1 ) + [8] (signed word*) main::st1#2 ← phi( main::@5/(const signed word[$78]) main::sintab1#0 main::@8/(signed word*) main::st1#1 ) [9] (signed word) main::sw#0 ← *((signed word*) main::st1#2) [10] if((signed word) main::sw#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 to:main::@3 @@ -36,7 +36,7 @@ main::@7: scope:[main] from main::@2 to:main::@8 main::@8: scope:[main] from main::@7 [18] (signed word*) main::st1#1 ← (signed word*) main::st1#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [19] if((signed word*) main::st1#1<(const signed word[120]) main::sintab1#0+(const word) main::wavelength#0*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1 + [19] if((signed word*) main::st1#1<(const signed word[$78]) main::sintab1#0+(const word) main::wavelength#0*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1 to:main::@return main::@return: scope:[main] from main::@8 [20] return @@ -95,7 +95,7 @@ print_byte: scope:[print_byte] from print_word print_word::@1 [43] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [44] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [44] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [45] (byte) print_char::ch#2 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [46] call print_char to:print_byte::@return @@ -118,7 +118,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 [53] (byte*) print_cls::sc#2 ← phi( print_cls/(const byte*) print_line_cursor#0 print_cls::@1/(byte*) print_cls::sc#1 ) [54] *((byte*) print_cls::sc#2) ← (byte) ' ' [55] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [56] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [56] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [57] return @@ -133,7 +133,7 @@ sin16s_gen::@3: scope:[sin16s_gen] from sin16s_gen to:sin16s_gen::@1 sin16s_gen::@1: scope:[sin16s_gen] from sin16s_gen::@3 sin16s_gen::@4 [62] (word) sin16s_gen::i#2 ← phi( sin16s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@4/(word) sin16s_gen::i#1 ) - [62] (signed word*) sin16s_gen::sintab#2 ← phi( sin16s_gen::@3/(const signed word[120]) main::sintab1#0 sin16s_gen::@4/(signed word*) sin16s_gen::sintab#0 ) + [62] (signed word*) sin16s_gen::sintab#2 ← phi( sin16s_gen::@3/(const signed word[$78]) main::sintab1#0 sin16s_gen::@4/(signed word*) sin16s_gen::sintab#0 ) [62] (dword) sin16s_gen::x#2 ← phi( sin16s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@4/(dword) sin16s_gen::x#1 ) [63] (dword) sin16s::x#0 ← (dword) sin16s_gen::x#2 [64] call sin16s @@ -221,7 +221,7 @@ sin16s::@15: scope:[sin16s] from sin16s::@12 to:sin16s::@3 mulu16_sel: scope:[mulu16_sel] from sin16s::@10 sin16s::@11 sin16s::@2 sin16s::@8 sin16s::@9 [113] (byte) mulu16_sel::select#5 ← phi( sin16s::@10/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@11/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16s::@9/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [113] (word) mulu16_sel::v2#5 ← phi( sin16s::@10/(word) mulu16_sel::v2#3 sin16s::@11/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@8/(word) mulu16_sel::v2#1 sin16s::@9/(dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 ) + [113] (word) mulu16_sel::v2#5 ← phi( sin16s::@10/(word) mulu16_sel::v2#3 sin16s::@11/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@8/(word) mulu16_sel::v2#1 sin16s::@9/(dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 ) [113] (word) mulu16_sel::v1#5 ← phi( sin16s::@10/(word) mulu16_sel::v1#3 sin16s::@11/(word) mulu16_sel::v1#4 sin16s::@2/(word) mulu16_sel::v1#0 sin16s::@8/(word) mulu16_sel::v1#1 sin16s::@9/(word) mulu16_sel::v1#2 ) [114] (word) mul16u::a#1 ← (word) mulu16_sel::v1#5 [115] (word) mul16u::b#0 ← (word) mulu16_sel::v2#5 @@ -289,7 +289,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 [143] (word) divr16u::rem#5 ← phi( divr16u/(word) divr16u::rem#10 divr16u::@3/(word) divr16u::rem#11 ) [144] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [145] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 - [146] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + [146] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [147] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 to:divr16u::@4 divr16u::@4: scope:[divr16u] from divr16u::@1 @@ -309,7 +309,7 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 [155] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [155] (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) [156] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 - [157] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 + [157] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 to:divr16u::@6 divr16u::@6: scope:[divr16u] from divr16u::@3 [158] (word) rem16u#1 ← (word) divr16u::rem#11 diff --git a/src/test/ref/sinusgen16.log b/src/test/ref/sinusgen16.log index a9d9c92cd..756da8f13 100644 --- a/src/test/ref/sinusgen16.log +++ b/src/test/ref/sinusgen16.log @@ -22,7 +22,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 (word~) divr16u::$0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 (word) divr16u::rem#0 ← (word~) divr16u::$0 (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 - (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 (bool~) divr16u::$3 ← (byte~) divr16u::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) divr16u::$4 ← ! (bool~) divr16u::$3 if((bool~) divr16u::$4) goto divr16u::@2 @@ -56,8 +56,8 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 (word) divr16u::dividend#6 ← phi( divr16u::@2/(word) divr16u::dividend#0 divr16u::@5/(word) divr16u::dividend#8 ) (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) (byte) divr16u::i#2 ← phi( divr16u::@2/(byte) divr16u::i#3 divr16u::@5/(byte) divr16u::i#4 ) - (byte) divr16u::i#1 ← (byte) divr16u::i#2 + rangenext(0,15) - (bool~) divr16u::$11 ← (byte) divr16u::i#1 != rangelast(0,15) + (byte) divr16u::i#1 ← (byte) divr16u::i#2 + rangenext(0,$f) + (bool~) divr16u::$11 ← (byte) divr16u::i#1 != rangelast(0,$f) if((bool~) divr16u::$11) goto divr16u::@1 to:divr16u::@6 divr16u::@5: scope:[divr16u] from divr16u::@2 @@ -183,12 +183,12 @@ mul16u::@return: scope:[mul16u] from mul16u::@3 to:@return @13: scope:[] from @6 (word) rem16u#31 ← phi( @6/(word) rem16u#34 ) - (dword) PI2_u4f28#0 ← (dword/signed dword) 1686629713 - (dword) PI_u4f28#0 ← (dword/signed dword) 843314857 - (dword) PI_HALF_u4f28#0 ← (dword/signed dword) 421657428 - (word) PI2_u4f12#0 ← (word/signed word/dword/signed dword) 25736 - (word) PI_u4f12#0 ← (word/signed word/dword/signed dword) 12868 - (word) PI_HALF_u4f12#0 ← (word/signed word/dword/signed dword) 6434 + (dword) PI2_u4f28#0 ← (dword/signed dword) $6487ed51 + (dword) PI_u4f28#0 ← (dword/signed dword) $3243f6a9 + (dword) PI_HALF_u4f28#0 ← (dword/signed dword) $1921fb54 + (word) PI2_u4f12#0 ← (word/signed word/dword/signed dword) $6488 + (word) PI_u4f12#0 ← (word/signed word/dword/signed dword) $3244 + (word) PI_HALF_u4f12#0 ← (word/signed word/dword/signed dword) $1922 to:@20 sin16s_gen: scope:[sin16s_gen] from main (signed word*) sin16s_gen::sintab#5 ← phi( main/(signed word*) sin16s_gen::sintab#1 ) @@ -294,7 +294,7 @@ sin16s::@9: scope:[sin16s] from sin16s::@8 (word) mulu16_sel::return#8 ← phi( sin16s::@8/(word) mulu16_sel::return#1 ) (word~) sin16s::$9 ← (word) mulu16_sel::return#8 (word) sin16s::x3#0 ← (word~) sin16s::$9 - (word/signed word/dword/signed dword~) sin16s::$10 ← (dword/signed dword) 65536 / (byte/signed byte/word/signed word/dword/signed dword) 6 + (word/signed word/dword/signed dword~) sin16s::$10 ← (dword/signed dword) $10000 / (byte/signed byte/word/signed word/dword/signed dword) 6 (word) mulu16_sel::v1#2 ← (word) sin16s::x3#0 (word) mulu16_sel::v2#2 ← (word/signed word/dword/signed dword~) sin16s::$10 (byte) mulu16_sel::select#2 ← (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -390,7 +390,7 @@ mulu16_sel::@return: scope:[mulu16_sel] from mulu16_sel::@2 to:@return @20: scope:[] from @13 (word) rem16u#29 ← phi( @13/(word) rem16u#31 ) - (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 to:@32 @@ -494,7 +494,7 @@ print_byte::@1: scope:[print_byte] from print_byte (byte) print_byte::b#3 ← phi( print_byte/(byte) print_byte::b#2 ) (byte*) print_char_cursor#30 ← phi( print_byte/(byte*) print_char_cursor#13 ) (byte*) print_char_cursor#9 ← (byte*) print_char_cursor#30 - (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte) print_char::ch#2 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$2) call print_char to:print_byte::@2 @@ -527,7 +527,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 (byte*) print_cls::sc#2 ← phi( print_cls/(byte*) print_cls::sc#0 print_cls::@1/(byte*) print_cls::sc#1 ) *((byte*) print_cls::sc#2) ← (byte) ' ' (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) 1000 + (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) $3e8 (bool~) print_cls::$1 ← (byte*) print_cls::sc#1 != (byte*~) print_cls::$0 if((bool~) print_cls::$1) goto print_cls::@1 to:print_cls::@2 @@ -548,9 +548,9 @@ main: scope:[main] from @40 (byte*) print_line_cursor#13 ← phi( @40/(byte*) print_line_cursor#12 ) (byte*) print_screen#5 ← phi( @40/(byte*) print_screen#6 ) (word) rem16u#23 ← phi( @40/(word) rem16u#25 ) - (word) main::wavelength#0 ← (byte/signed byte/word/signed word/dword/signed dword) 120 - (signed word[120]) main::sintab1#0 ← { fill( 120, 0) } - (signed word*) sin16s_gen::sintab#1 ← (signed word[120]) main::sintab1#0 + (word) main::wavelength#0 ← (byte/signed byte/word/signed word/dword/signed dword) $78 + (signed word[$78]) main::sintab1#0 ← { fill( $78, 0) } + (signed word*) sin16s_gen::sintab#1 ← (signed word[$78]) main::sintab1#0 (word) sin16s_gen::wavelength#0 ← (word) main::wavelength#0 call sin16s_gen to:main::@5 @@ -570,7 +570,7 @@ main::@6: scope:[main] from main::@5 (byte*) print_line_cursor#7 ← phi( main::@5/(byte*) print_line_cursor#2 ) (byte*) print_line_cursor#3 ← (byte*) print_line_cursor#7 (byte*) print_char_cursor#16 ← (byte*) print_char_cursor#36 - (signed word*) main::st1#0 ← (signed word[120]) main::sintab1#0 + (signed word*) main::st1#0 ← (signed word[$78]) main::sintab1#0 to:main::@1 main::@1: scope:[main] from main::@6 main::@8 (byte*) print_line_cursor#17 ← phi( main::@6/(byte*) print_line_cursor#3 main::@8/(byte*) print_line_cursor#11 ) @@ -613,7 +613,7 @@ main::@8: scope:[main] from main::@7 (signed word*~) main::$7 ← (signed word*) main::st1#3 + (byte/signed byte/word/signed word/dword/signed dword) 2 (signed word*) main::st1#1 ← (signed word*~) main::$7 (word/signed dword/dword~) main::$8 ← (word) main::wavelength#1 * (byte/signed byte/word/signed word/dword/signed dword) 2 - (signed word*~) main::$9 ← (signed word[120]) main::sintab1#0 + (word/signed dword/dword~) main::$8 + (signed word*~) main::$9 ← (signed word[$78]) main::sintab1#0 + (word/signed dword/dword~) main::$8 (bool~) main::$10 ← (signed word*) main::st1#1 < (signed word*~) main::$9 if((bool~) main::$10) goto main::@1 to:main::@return @@ -809,8 +809,8 @@ SYMBOL TABLE SSA (label) main::@8 (label) main::@9 (label) main::@return -(signed word[120]) main::sintab1 -(signed word[120]) main::sintab1#0 +(signed word[$78]) main::sintab1 +(signed word[$78]) main::sintab1#0 (signed word*) main::st1 (signed word*) main::st1#0 (signed word*) main::st1#1 @@ -1363,7 +1363,7 @@ Alias (word) main::wavelength#0 = (word) main::wavelength#8 (word) main::wavelen Alias (word) rem16u#17 = (word) rem16u#8 (word) rem16u#35 Alias (byte*) print_line_cursor#3 = (byte*) print_line_cursor#7 Alias (byte*) print_char_cursor#16 = (byte*) print_char_cursor#36 -Alias (signed word[120]) main::sintab1#0 = (signed word*) main::st1#0 +Alias (signed word[$78]) main::sintab1#0 = (signed word*) main::st1#0 Alias (signed word*) main::st1#3 = (signed word*) main::st1#4 (signed word*) main::st1#5 Alias (word) main::wavelength#1 = (word) main::wavelength#2 (word) main::wavelength#3 Alias (word) rem16u#18 = (word) rem16u#27 (word) rem16u#30 (word) rem16u#24 (word) rem16u#9 @@ -1452,7 +1452,7 @@ Redundant Phi (byte*) print_char_cursor#21 (byte*) print_char_cursor#18 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) divr16u::$4 [12] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 Simple Condition (bool~) divr16u::$9 [20] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 -Simple Condition (bool~) divr16u::$11 [27] if((byte) divr16u::i#1!=rangelast(0,15)) goto divr16u::@1 +Simple Condition (bool~) divr16u::$11 [27] if((byte) divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1 Simple Condition (bool~) mul16u::$0 [75] if((word) mul16u::a#2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@2 Simple Condition (bool~) mul16u::$3 [80] if((byte/word~) mul16u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@4 Simple Condition (bool~) sin16s_gen::$4 [125] if((word) sin16s_gen::i#1<(word) sin16s_gen::wavelength#0) goto sin16s_gen::@1 @@ -1473,33 +1473,33 @@ Constant (const word) divr16u::rem#3 = 0 Constant (const signed byte) rem8s#0 = 0 Constant (const signed word) rem16s#0 = 0 Constant (const dword) mul16u::res#0 = 0 -Constant (const dword) PI2_u4f28#0 = 1686629713 -Constant (const dword) PI_u4f28#0 = 843314857 -Constant (const dword) PI_HALF_u4f28#0 = 421657428 -Constant (const word) PI2_u4f12#0 = 25736 -Constant (const word) PI_u4f12#0 = 12868 -Constant (const word) PI_HALF_u4f12#0 = 6434 +Constant (const dword) PI2_u4f28#0 = $6487ed51 +Constant (const dword) PI_u4f28#0 = $3243f6a9 +Constant (const dword) PI_HALF_u4f28#0 = $1921fb54 +Constant (const word) PI2_u4f12#0 = $6488 +Constant (const word) PI_u4f12#0 = $3244 +Constant (const word) PI_HALF_u4f12#0 = $1922 Constant (const dword) sin16s_gen::x#0 = 0 Constant (const word) sin16s_gen::i#0 = 0 Constant (const byte) sin16s::isUpper#0 = 0 Constant (const byte) sin16s::isUpper#1 = 1 Constant (const byte) mulu16_sel::select#0 = 0 Constant (const byte) mulu16_sel::select#1 = 1 -Constant (const word) mulu16_sel::v2#2 = 65536/6 +Constant (const word) mulu16_sel::v2#2 = $10000/6 Constant (const byte) mulu16_sel::select#2 = 1 Constant (const byte) mulu16_sel::select#3 = 0 Constant (const byte) mulu16_sel::select#4 = 0 -Constant (const byte*) print_line_cursor#0 = ((byte*))1024 +Constant (const byte*) print_line_cursor#0 = ((byte*))$400 Constant (const byte) print_char::ch#0 = '-' Constant (const byte[]) print_hextab#0 = $0 -Constant (const word) main::wavelength#0 = 120 -Constant (const signed word[120]) main::sintab1#0 = { fill( 120, 0) } +Constant (const word) main::wavelength#0 = $78 +Constant (const signed word[$78]) main::sintab1#0 = { fill( $78, 0) } Constant (const byte*) print_str::str#1 = main::str Constant (const byte*) print_str::str#2 = main::str1 Successful SSA optimization Pass2ConstantIdentification Constant (const dword) div32u16u::dividend#0 = PI2_u4f28#0 Constant (const byte*) print_cls::sc#0 = print_line_cursor#0 -Constant (const byte*) print_cls::$0 = print_line_cursor#0+1000 +Constant (const byte*) print_cls::$0 = print_line_cursor#0+$3e8 Constant (const signed word*) sin16s_gen::sintab#1 = main::sintab1#0 Constant (const word) sin16s_gen::wavelength#0 = main::wavelength#0 Constant (const word/signed dword/dword) main::$8 = main::wavelength#0*2 @@ -1520,7 +1520,7 @@ Eliminating Noop Cast (signed word~) sin16s::$20 ← ((signed word)) (word) sin1 Eliminating Noop Cast (word) print_word::w#0 ← ((word)) (signed word) print_sword::w#3 Successful SSA optimization Pass2NopCastElimination Resolved ranged next value divr16u::i#1 ← ++ divr16u::i#2 to ++ -Resolved ranged comparison value if(divr16u::i#1!=rangelast(0,15)) goto divr16u::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Culled Empty Block (label) @2 Culled Empty Block (label) @5 Culled Empty Block (label) @6 @@ -1562,7 +1562,7 @@ Inlining constant with var siblings (const byte*) print_str::str#2 Inlining constant with var siblings (const byte) print_char::ch#0 Inlining constant with var siblings (const byte*) print_cls::sc#0 Constant inlined divr16u::rem#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined print_cls::$0 = (const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000 +Constant inlined print_cls::$0 = (const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8 Constant inlined divr16u::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined sin16s_gen::wavelength#0 = (const word) main::wavelength#0 Constant inlined div32u16u::dividend#0 = (const dword) PI2_u4f28#0 @@ -1582,14 +1582,14 @@ Constant inlined sin16s_gen::i#0 = (byte/signed byte/word/signed word/dword/sign Constant inlined print_cls::sc#0 = (const byte*) print_line_cursor#0 Constant inlined divr16u::dividend#1 = >(const dword) PI2_u4f28#0 Constant inlined divr16u::dividend#2 = <(const dword) PI2_u4f28#0 -Constant inlined sin16s_gen::sintab#1 = (const signed word[120]) main::sintab1#0 -Constant inlined mulu16_sel::v2#2 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 +Constant inlined sin16s_gen::sintab#1 = (const signed word[$78]) main::sintab1#0 +Constant inlined mulu16_sel::v2#2 = (dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 Constant inlined print_char::ch#0 = (byte) '-' Constant inlined sin16s_gen::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined print_str::str#2 = (const string) main::str1 Constant inlined div32u16u::divisor#0 = (const word) main::wavelength#0 Constant inlined print_str::str#1 = (const string) main::str -Constant inlined main::$9 = (const signed word[120]) main::sintab1#0+(const word) main::wavelength#0*(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined main::$9 = (const signed word[$78]) main::sintab1#0+(const word) main::wavelength#0*(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined main::$8 = (const word) main::wavelength#0*(byte/signed byte/word/signed word/dword/signed dword) 2 Successful SSA optimization Pass2ConstantInlining Identical Phi Values (word) divr16u::divisor#6 (const word) main::wavelength#0 @@ -1732,7 +1732,7 @@ main::@5: scope:[main] from main to:main::@1 main::@1: scope:[main] from main::@5 main::@8 [8] (byte*) print_char_cursor#49 ← phi( main::@5/(const byte*) print_line_cursor#0 main::@8/(byte*) print_char_cursor#2 ) - [8] (signed word*) main::st1#2 ← phi( main::@5/(const signed word[120]) main::sintab1#0 main::@8/(signed word*) main::st1#1 ) + [8] (signed word*) main::st1#2 ← phi( main::@5/(const signed word[$78]) main::sintab1#0 main::@8/(signed word*) main::st1#1 ) [9] (signed word) main::sw#0 ← *((signed word*) main::st1#2) [10] if((signed word) main::sw#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 to:main::@3 @@ -1751,7 +1751,7 @@ main::@7: scope:[main] from main::@2 to:main::@8 main::@8: scope:[main] from main::@7 [18] (signed word*) main::st1#1 ← (signed word*) main::st1#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [19] if((signed word*) main::st1#1<(const signed word[120]) main::sintab1#0+(const word) main::wavelength#0*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1 + [19] if((signed word*) main::st1#1<(const signed word[$78]) main::sintab1#0+(const word) main::wavelength#0*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1 to:main::@return main::@return: scope:[main] from main::@8 [20] return @@ -1810,7 +1810,7 @@ print_byte: scope:[print_byte] from print_word print_word::@1 [43] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [44] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [44] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [45] (byte) print_char::ch#2 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [46] call print_char to:print_byte::@return @@ -1833,7 +1833,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 [53] (byte*) print_cls::sc#2 ← phi( print_cls/(const byte*) print_line_cursor#0 print_cls::@1/(byte*) print_cls::sc#1 ) [54] *((byte*) print_cls::sc#2) ← (byte) ' ' [55] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [56] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [56] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [57] return @@ -1848,7 +1848,7 @@ sin16s_gen::@3: scope:[sin16s_gen] from sin16s_gen to:sin16s_gen::@1 sin16s_gen::@1: scope:[sin16s_gen] from sin16s_gen::@3 sin16s_gen::@4 [62] (word) sin16s_gen::i#2 ← phi( sin16s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@4/(word) sin16s_gen::i#1 ) - [62] (signed word*) sin16s_gen::sintab#2 ← phi( sin16s_gen::@3/(const signed word[120]) main::sintab1#0 sin16s_gen::@4/(signed word*) sin16s_gen::sintab#0 ) + [62] (signed word*) sin16s_gen::sintab#2 ← phi( sin16s_gen::@3/(const signed word[$78]) main::sintab1#0 sin16s_gen::@4/(signed word*) sin16s_gen::sintab#0 ) [62] (dword) sin16s_gen::x#2 ← phi( sin16s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@4/(dword) sin16s_gen::x#1 ) [63] (dword) sin16s::x#0 ← (dword) sin16s_gen::x#2 [64] call sin16s @@ -1936,7 +1936,7 @@ sin16s::@15: scope:[sin16s] from sin16s::@12 to:sin16s::@3 mulu16_sel: scope:[mulu16_sel] from sin16s::@10 sin16s::@11 sin16s::@2 sin16s::@8 sin16s::@9 [113] (byte) mulu16_sel::select#5 ← phi( sin16s::@10/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@11/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16s::@9/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [113] (word) mulu16_sel::v2#5 ← phi( sin16s::@10/(word) mulu16_sel::v2#3 sin16s::@11/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@8/(word) mulu16_sel::v2#1 sin16s::@9/(dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 ) + [113] (word) mulu16_sel::v2#5 ← phi( sin16s::@10/(word) mulu16_sel::v2#3 sin16s::@11/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@8/(word) mulu16_sel::v2#1 sin16s::@9/(dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 ) [113] (word) mulu16_sel::v1#5 ← phi( sin16s::@10/(word) mulu16_sel::v1#3 sin16s::@11/(word) mulu16_sel::v1#4 sin16s::@2/(word) mulu16_sel::v1#0 sin16s::@8/(word) mulu16_sel::v1#1 sin16s::@9/(word) mulu16_sel::v1#2 ) [114] (word) mul16u::a#1 ← (word) mulu16_sel::v1#5 [115] (word) mul16u::b#0 ← (word) mulu16_sel::v2#5 @@ -2004,7 +2004,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 [143] (word) divr16u::rem#5 ← phi( divr16u/(word) divr16u::rem#10 divr16u::@3/(word) divr16u::rem#11 ) [144] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [145] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 - [146] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + [146] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [147] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 to:divr16u::@4 divr16u::@4: scope:[divr16u] from divr16u::@1 @@ -2024,7 +2024,7 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 [155] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [155] (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) [156] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 - [157] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 + [157] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 to:divr16u::@6 divr16u::@6: scope:[divr16u] from divr16u::@3 [158] (word) rem16u#1 ← (word) divr16u::rem#11 @@ -2081,7 +2081,7 @@ VARIABLE REGISTER WEIGHTS (word) divr16u::return#2 4.0 (word) divr16u::return#3 4.0 (void()) main() -(signed word[120]) main::sintab1 +(signed word[$78]) main::sintab1 (signed word*) main::st1 (signed word*) main::st1#1 16.5 (signed word*) main::st1#2 3.3000000000000003 @@ -2463,7 +2463,7 @@ main: { sta print_char_cursor lda #>print_line_cursor sta print_char_cursor+1 - //SEG19 [8] phi (signed word*) main::st1#2 = (const signed word[120]) main::sintab1#0 [phi:main::@5->main::@1#1] -- pwsz1=pwsc1 + //SEG19 [8] phi (signed word*) main::st1#2 = (const signed word[$78]) main::sintab1#0 [phi:main::@5->main::@1#1] -- pwsz1=pwsc1 lda #sintab1 @@ -2541,7 +2541,7 @@ main: { bcc !+ inc st1+1 !: - //SEG45 [19] if((signed word*) main::st1#1<(const signed word[120]) main::sintab1#0+(const word) main::wavelength#0*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1 -- pwsz1_lt_pwsc1_then_la1 + //SEG45 [19] if((signed word*) main::st1#1<(const signed word[$78]) main::sintab1#0+(const word) main::wavelength#0*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1 -- pwsz1_lt_pwsc1_then_la1 lda st1+1 cmp #>sintab1+wavelength*2 bcc b1_from_b8 @@ -2708,7 +2708,7 @@ print_byte: { jmp b1 //SEG98 print_byte::@1 b1: - //SEG99 [44] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG99 [44] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and b sta _2 @@ -2775,7 +2775,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG120 [56] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG120 [56] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>print_line_cursor+$3e8 bne b1_from_b1 @@ -2831,7 +2831,7 @@ sin16s_gen: { sta i lda #>0 sta i+1 - //SEG131 [62] phi (signed word*) sin16s_gen::sintab#2 = (const signed word[120]) main::sintab1#0 [phi:sin16s_gen::@3->sin16s_gen::@1#1] -- pwsz1=pwsc1 + //SEG131 [62] phi (signed word*) sin16s_gen::sintab#2 = (const signed word[$78]) main::sintab1#0 [phi:sin16s_gen::@3->sin16s_gen::@1#1] -- pwsz1=pwsc1 lda #main.sintab1 @@ -3136,7 +3136,7 @@ sin16s: { //SEG192 [113] phi (byte) mulu16_sel::select#5 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@9->mulu16_sel#0] -- vbuz1=vbuc1 lda #1 sta mulu16_sel.select - //SEG193 [113] phi (word) mulu16_sel::v2#5 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 + //SEG193 [113] phi (word) mulu16_sel::v2#5 = (dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 lda #<$10000/6 sta mulu16_sel.v2 lda #>$10000/6 @@ -3578,7 +3578,7 @@ divr16u: { //SEG298 [145] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 -- vbuz1=_hi_vwuz2 lda dividend+1 sta _1 - //SEG299 [146] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG299 [146] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuz1=vbuz2_band_vbuc1 lda #$80 and _1 sta _2 @@ -3641,7 +3641,7 @@ divr16u: { b3: //SEG316 [156] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG317 [157] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG317 [157] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b3 @@ -3666,7 +3666,7 @@ Statement [9] (signed word) main::sw#0 ← *((signed word*) main::st1#2) [ main: Statement [10] if((signed word) main::sw#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 [ main::st1#2 print_char_cursor#49 main::sw#0 ] ( main:2 [ main::st1#2 print_char_cursor#49 main::sw#0 ] ) always clobbers reg byte a Statement [14] (signed word) print_sword::w#1 ← (signed word) main::sw#0 [ main::st1#2 print_char_cursor#48 print_sword::w#1 ] ( main:2 [ main::st1#2 print_char_cursor#48 print_sword::w#1 ] ) always clobbers reg byte a Statement [18] (signed word*) main::st1#1 ← (signed word*) main::st1#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ main::st1#1 print_char_cursor#2 ] ( main:2 [ main::st1#1 print_char_cursor#2 ] ) always clobbers reg byte a -Statement [19] if((signed word*) main::st1#1<(const signed word[120]) main::sintab1#0+(const word) main::wavelength#0*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1 [ main::st1#1 print_char_cursor#2 ] ( main:2 [ main::st1#1 print_char_cursor#2 ] ) always clobbers reg byte a +Statement [19] if((signed word*) main::st1#1<(const signed word[$78]) main::sintab1#0+(const word) main::wavelength#0*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1 [ main::st1#1 print_char_cursor#2 ] ( main:2 [ main::st1#1 print_char_cursor#2 ] ) always clobbers reg byte a Statement [23] if(*((byte*) print_str::str#3)!=(byte) '@') goto print_str::@2 [ print_char_cursor#2 print_str::str#3 ] ( main:2::print_str:12 [ main::st1#2 main::sw#0 print_char_cursor#2 print_str::str#3 ] main:2::print_str:17 [ main::st1#2 print_char_cursor#2 print_str::str#3 ] ) always clobbers reg byte a reg byte y Statement [25] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#3) [ print_char_cursor#2 print_str::str#3 ] ( main:2::print_str:12 [ main::st1#2 main::sw#0 print_char_cursor#2 print_str::str#3 ] main:2::print_str:17 [ main::st1#2 print_char_cursor#2 print_str::str#3 ] ) always clobbers reg byte a reg byte y Statement [28] if((signed word) print_sword::w#1>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto print_sword::@1 [ print_char_cursor#48 print_sword::w#1 ] ( main:2::print_sword:15 [ main::st1#2 print_char_cursor#48 print_sword::w#1 ] ) always clobbers reg byte a @@ -3675,11 +3675,11 @@ Statement [35] (byte) print_byte::b#0 ← > (word)(signed word) print_sword::w#3 Statement [37] (byte) print_byte::b#1 ← < (word)(signed word) print_sword::w#3 [ print_char_cursor#12 print_byte::b#1 ] ( main:2::print_sword:15::print_word:33 [ main::st1#2 print_char_cursor#12 print_byte::b#1 ] ) always clobbers reg byte a Statement [41] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#2 print_char_cursor#46 print_byte::$0 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_byte::$0 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_byte::b#2 print_char_cursor#46 print_byte::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:8 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] -Statement [44] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#12 print_byte::$2 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 print_byte::$2 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 print_byte::$2 ] ) always clobbers reg byte a +Statement [44] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#12 print_byte::$2 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 print_byte::$2 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 print_byte::$2 ] ) always clobbers reg byte a Statement [49] *((byte*) print_char_cursor#33) ← (byte) print_char::ch#3 [ print_char_cursor#33 ] ( main:2::print_sword:15::print_char:30 [ main::st1#2 print_sword::w#1 print_char_cursor#33 ] main:2::print_sword:15::print_word:33::print_byte:36::print_char:43 [ main::st1#2 print_sword::w#3 print_byte::b#2 print_char_cursor#33 ] main:2::print_sword:15::print_word:33::print_byte:38::print_char:43 [ main::st1#2 print_byte::b#2 print_char_cursor#33 ] main:2::print_sword:15::print_word:33::print_byte:36::print_char:46 [ main::st1#2 print_sword::w#3 print_char_cursor#33 ] main:2::print_sword:15::print_word:33::print_byte:38::print_char:46 [ main::st1#2 print_char_cursor#33 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:8 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] Statement [54] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:7 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [56] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:7 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [56] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:7 [ print_cls::sc#1 ] ) always clobbers reg byte a Statement [60] (dword) div32u16u::return#2 ← (dword) div32u16u::return#0 [ div32u16u::return#2 ] ( main:2::sin16s_gen:5 [ div32u16u::return#2 ] ) always clobbers reg byte a Statement [61] (dword) sin16s_gen::step#0 ← (dword) div32u16u::return#2 [ sin16s_gen::step#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 ] ) always clobbers reg byte a Statement [63] (dword) sin16s::x#0 ← (dword) sin16s_gen::x#2 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] ) always clobbers reg byte a @@ -3740,7 +3740,7 @@ Statement [139] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ d Statement [140] (dword) div32u16u::return#0 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#0 ] ) always clobbers reg byte a Statement [145] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:133 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:50 [ divr16u::i#2 divr16u::i#1 ] -Statement [146] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:133 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a +Statement [146] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:133 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a Statement [148] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:133 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a Statement [152] if((word) divr16u::rem#6<(const word) main::wavelength#0) goto divr16u::@3 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:133 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) always clobbers reg byte a Statement [154] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (const word) main::wavelength#0 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:133 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a @@ -3749,7 +3749,7 @@ Statement [9] (signed word) main::sw#0 ← *((signed word*) main::st1#2) [ main: Statement [10] if((signed word) main::sw#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 [ main::st1#2 print_char_cursor#49 main::sw#0 ] ( main:2 [ main::st1#2 print_char_cursor#49 main::sw#0 ] ) always clobbers reg byte a Statement [14] (signed word) print_sword::w#1 ← (signed word) main::sw#0 [ main::st1#2 print_char_cursor#48 print_sword::w#1 ] ( main:2 [ main::st1#2 print_char_cursor#48 print_sword::w#1 ] ) always clobbers reg byte a Statement [18] (signed word*) main::st1#1 ← (signed word*) main::st1#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ main::st1#1 print_char_cursor#2 ] ( main:2 [ main::st1#1 print_char_cursor#2 ] ) always clobbers reg byte a -Statement [19] if((signed word*) main::st1#1<(const signed word[120]) main::sintab1#0+(const word) main::wavelength#0*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1 [ main::st1#1 print_char_cursor#2 ] ( main:2 [ main::st1#1 print_char_cursor#2 ] ) always clobbers reg byte a +Statement [19] if((signed word*) main::st1#1<(const signed word[$78]) main::sintab1#0+(const word) main::wavelength#0*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1 [ main::st1#1 print_char_cursor#2 ] ( main:2 [ main::st1#1 print_char_cursor#2 ] ) always clobbers reg byte a Statement [23] if(*((byte*) print_str::str#3)!=(byte) '@') goto print_str::@2 [ print_char_cursor#2 print_str::str#3 ] ( main:2::print_str:12 [ main::st1#2 main::sw#0 print_char_cursor#2 print_str::str#3 ] main:2::print_str:17 [ main::st1#2 print_char_cursor#2 print_str::str#3 ] ) always clobbers reg byte a reg byte y Statement [25] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#3) [ print_char_cursor#2 print_str::str#3 ] ( main:2::print_str:12 [ main::st1#2 main::sw#0 print_char_cursor#2 print_str::str#3 ] main:2::print_str:17 [ main::st1#2 print_char_cursor#2 print_str::str#3 ] ) always clobbers reg byte a reg byte y Statement [28] if((signed word) print_sword::w#1>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto print_sword::@1 [ print_char_cursor#48 print_sword::w#1 ] ( main:2::print_sword:15 [ main::st1#2 print_char_cursor#48 print_sword::w#1 ] ) always clobbers reg byte a @@ -3757,10 +3757,10 @@ Statement [31] (signed word) print_sword::w#0 ← - (signed word) print_sword::w Statement [35] (byte) print_byte::b#0 ← > (word)(signed word) print_sword::w#3 [ print_sword::w#3 print_char_cursor#43 print_byte::b#0 ] ( main:2::print_sword:15::print_word:33 [ main::st1#2 print_sword::w#3 print_char_cursor#43 print_byte::b#0 ] ) always clobbers reg byte a Statement [37] (byte) print_byte::b#1 ← < (word)(signed word) print_sword::w#3 [ print_char_cursor#12 print_byte::b#1 ] ( main:2::print_sword:15::print_word:33 [ main::st1#2 print_char_cursor#12 print_byte::b#1 ] ) always clobbers reg byte a Statement [41] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#2 print_char_cursor#46 print_byte::$0 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_byte::$0 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_byte::b#2 print_char_cursor#46 print_byte::$0 ] ) always clobbers reg byte a -Statement [44] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#12 print_byte::$2 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 print_byte::$2 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 print_byte::$2 ] ) always clobbers reg byte a +Statement [44] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#12 print_byte::$2 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 print_byte::$2 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 print_byte::$2 ] ) always clobbers reg byte a Statement [49] *((byte*) print_char_cursor#33) ← (byte) print_char::ch#3 [ print_char_cursor#33 ] ( main:2::print_sword:15::print_char:30 [ main::st1#2 print_sword::w#1 print_char_cursor#33 ] main:2::print_sword:15::print_word:33::print_byte:36::print_char:43 [ main::st1#2 print_sword::w#3 print_byte::b#2 print_char_cursor#33 ] main:2::print_sword:15::print_word:33::print_byte:38::print_char:43 [ main::st1#2 print_byte::b#2 print_char_cursor#33 ] main:2::print_sword:15::print_word:33::print_byte:36::print_char:46 [ main::st1#2 print_sword::w#3 print_char_cursor#33 ] main:2::print_sword:15::print_word:33::print_byte:38::print_char:46 [ main::st1#2 print_char_cursor#33 ] ) always clobbers reg byte y Statement [54] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:7 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [56] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:7 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [56] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:7 [ print_cls::sc#1 ] ) always clobbers reg byte a Statement [60] (dword) div32u16u::return#2 ← (dword) div32u16u::return#0 [ div32u16u::return#2 ] ( main:2::sin16s_gen:5 [ div32u16u::return#2 ] ) always clobbers reg byte a Statement [61] (dword) sin16s_gen::step#0 ← (dword) div32u16u::return#2 [ sin16s_gen::step#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 ] ) always clobbers reg byte a Statement [63] (dword) sin16s::x#0 ← (dword) sin16s_gen::x#2 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] ) always clobbers reg byte a @@ -3817,7 +3817,7 @@ Statement [138] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16 Statement [139] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ) always clobbers reg byte a Statement [140] (dword) div32u16u::return#0 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#0 ] ) always clobbers reg byte a Statement [145] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:133 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a -Statement [146] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:133 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a +Statement [146] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:133 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a Statement [148] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:133 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a Statement [152] if((word) divr16u::rem#6<(const word) main::wavelength#0) goto divr16u::@3 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:133 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) always clobbers reg byte a Statement [154] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (const word) main::wavelength#0 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:133 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a @@ -4020,7 +4020,7 @@ main: { sta print_char_cursor lda #>print_line_cursor sta print_char_cursor+1 - //SEG19 [8] phi (signed word*) main::st1#2 = (const signed word[120]) main::sintab1#0 [phi:main::@5->main::@1#1] -- pwsz1=pwsc1 + //SEG19 [8] phi (signed word*) main::st1#2 = (const signed word[$78]) main::sintab1#0 [phi:main::@5->main::@1#1] -- pwsz1=pwsc1 lda #sintab1 @@ -4094,7 +4094,7 @@ main: { bcc !+ inc st1+1 !: - //SEG45 [19] if((signed word*) main::st1#1<(const signed word[120]) main::sintab1#0+(const word) main::wavelength#0*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1 -- pwsz1_lt_pwsc1_then_la1 + //SEG45 [19] if((signed word*) main::st1#1<(const signed word[$78]) main::sintab1#0+(const word) main::wavelength#0*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1 -- pwsz1_lt_pwsc1_then_la1 lda st1+1 cmp #>sintab1+wavelength*2 bcc b1_from_b8 @@ -4255,7 +4255,7 @@ print_byte: { jmp b1 //SEG98 print_byte::@1 b1: - //SEG99 [44] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG99 [44] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG100 [45] (byte) print_char::ch#2 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) -- vbuaa=pbuc1_derefidx_vbuaa @@ -4318,7 +4318,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG120 [56] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG120 [56] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>print_line_cursor+$3e8 bne b1_from_b1 @@ -4358,7 +4358,7 @@ sin16s_gen: { sta i lda #>0 sta i+1 - //SEG131 [62] phi (signed word*) sin16s_gen::sintab#2 = (const signed word[120]) main::sintab1#0 [phi:sin16s_gen::@3->sin16s_gen::@1#1] -- pwsz1=pwsc1 + //SEG131 [62] phi (signed word*) sin16s_gen::sintab#2 = (const signed word[$78]) main::sintab1#0 [phi:sin16s_gen::@3->sin16s_gen::@1#1] -- pwsz1=pwsc1 lda #main.sintab1 @@ -4625,7 +4625,7 @@ sin16s: { mulu16_sel_from_b9: //SEG192 [113] phi (byte) mulu16_sel::select#5 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@9->mulu16_sel#0] -- vbuxx=vbuc1 ldx #1 - //SEG193 [113] phi (word) mulu16_sel::v2#5 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 + //SEG193 [113] phi (word) mulu16_sel::v2#5 = (dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 lda #<$10000/6 sta mulu16_sel.v2 lda #>$10000/6 @@ -4970,7 +4970,7 @@ divr16u: { rol rem+1 //SEG298 [145] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 -- vbuaa=_hi_vwuz1 lda dividend+1 - //SEG299 [146] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuaa_band_vbuc1 + //SEG299 [146] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 //SEG300 [147] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuaa_eq_0_then_la1 cmp #0 @@ -5030,7 +5030,7 @@ divr16u: { b3: //SEG316 [156] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuxx=_inc_vbuxx inx - //SEG317 [157] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG317 [157] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1_from_b3 jmp b6 @@ -5248,13 +5248,13 @@ FINAL SYMBOL TABLE (label) @end (word) PI2_u4f12 (dword) PI2_u4f28 -(const dword) PI2_u4f28#0 PI2_u4f28 = (dword/signed dword) 1686629713 +(const dword) PI2_u4f28#0 PI2_u4f28 = (dword/signed dword) $6487ed51 (word) PI_HALF_u4f12 (dword) PI_HALF_u4f28 -(const dword) PI_HALF_u4f28#0 PI_HALF_u4f28 = (dword/signed dword) 421657428 +(const dword) PI_HALF_u4f28#0 PI_HALF_u4f28 = (dword/signed dword) $1921fb54 (word) PI_u4f12 (dword) PI_u4f28 -(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) 843314857 +(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) $3243f6a9 (dword()) div32u16u((dword) div32u16u::dividend , (word) div32u16u::divisor) (label) div32u16u::@2 (label) div32u16u::@3 @@ -5312,8 +5312,8 @@ FINAL SYMBOL TABLE (label) main::@7 (label) main::@8 (label) main::@return -(signed word[120]) main::sintab1 -(const signed word[120]) main::sintab1#0 sintab1 = { fill( 120, 0) } +(signed word[$78]) main::sintab1 +(const signed word[$78]) main::sintab1#0 sintab1 = { fill( $78, 0) } (signed word*) main::st1 (signed word*) main::st1#1 st1 zp ZP_WORD:2 16.5 (signed word*) main::st1#2 st1 zp ZP_WORD:2 3.3000000000000003 @@ -5322,7 +5322,7 @@ FINAL SYMBOL TABLE (signed word) main::sw (signed word) main::sw#0 sw zp ZP_WORD:6 6.6000000000000005 (word) main::wavelength -(const word) main::wavelength#0 wavelength = (byte/signed byte/word/signed word/dword/signed dword) 120 +(const word) main::wavelength#0 wavelength = (byte/signed byte/word/signed word/dword/signed dword) $78 (dword()) mul16u((word) mul16u::a , (word) mul16u::b) (byte/word~) mul16u::$1 reg byte a 202.0 (label) mul16u::@1 @@ -5407,7 +5407,7 @@ FINAL SYMBOL TABLE (byte[]) print_hextab (const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor -(const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) print_screen (void()) print_str((byte*) print_str::str) (label) print_str::@1 @@ -5568,7 +5568,7 @@ main: { sta print_char_cursor lda #>print_line_cursor sta print_char_cursor+1 - //SEG19 [8] phi (signed word*) main::st1#2 = (const signed word[120]) main::sintab1#0 [phi:main::@5->main::@1#1] -- pwsz1=pwsc1 + //SEG19 [8] phi (signed word*) main::st1#2 = (const signed word[$78]) main::sintab1#0 [phi:main::@5->main::@1#1] -- pwsz1=pwsc1 lda #sintab1 @@ -5625,7 +5625,7 @@ main: { bcc !+ inc st1+1 !: - //SEG45 [19] if((signed word*) main::st1#1<(const signed word[120]) main::sintab1#0+(const word) main::wavelength#0*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1 -- pwsz1_lt_pwsc1_then_la1 + //SEG45 [19] if((signed word*) main::st1#1<(const signed word[$78]) main::sintab1#0+(const word) main::wavelength#0*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1 -- pwsz1_lt_pwsc1_then_la1 lda st1+1 cmp #>sintab1+wavelength*2 bcc b1 @@ -5758,7 +5758,7 @@ print_byte: { //SEG97 [48] phi (byte) print_char::ch#3 = (byte) print_char::ch#1 [phi:print_byte->print_char#1] -- register_copy jsr print_char //SEG98 print_byte::@1 - //SEG99 [44] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG99 [44] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG100 [45] (byte) print_char::ch#2 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) -- vbuaa=pbuc1_derefidx_vbuaa @@ -5812,7 +5812,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG120 [56] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG120 [56] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>print_line_cursor+$3e8 bne b1 @@ -5845,7 +5845,7 @@ sin16s_gen: { lda #<0 sta i sta i+1 - //SEG131 [62] phi (signed word*) sin16s_gen::sintab#2 = (const signed word[120]) main::sintab1#0 [phi:sin16s_gen::@3->sin16s_gen::@1#1] -- pwsz1=pwsc1 + //SEG131 [62] phi (signed word*) sin16s_gen::sintab#2 = (const signed word[$78]) main::sintab1#0 [phi:sin16s_gen::@3->sin16s_gen::@1#1] -- pwsz1=pwsc1 lda #main.sintab1 @@ -6088,7 +6088,7 @@ sin16s: { //SEG191 [113] phi from sin16s::@9 to mulu16_sel [phi:sin16s::@9->mulu16_sel] //SEG192 [113] phi (byte) mulu16_sel::select#5 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@9->mulu16_sel#0] -- vbuxx=vbuc1 ldx #1 - //SEG193 [113] phi (word) mulu16_sel::v2#5 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 + //SEG193 [113] phi (word) mulu16_sel::v2#5 = (dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 lda #<$10000/6 sta mulu16_sel.v2 lda #>$10000/6 @@ -6386,7 +6386,7 @@ divr16u: { rol rem+1 //SEG298 [145] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 -- vbuaa=_hi_vwuz1 lda dividend+1 - //SEG299 [146] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuaa_band_vbuc1 + //SEG299 [146] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 //SEG300 [147] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuaa_eq_0_then_la1 cmp #0 @@ -6436,7 +6436,7 @@ divr16u: { b3: //SEG316 [156] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuxx=_inc_vbuxx inx - //SEG317 [157] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG317 [157] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1 //SEG318 divr16u::@6 diff --git a/src/test/ref/sinusgen16.sym b/src/test/ref/sinusgen16.sym index 890748780..aa5d526aa 100644 --- a/src/test/ref/sinusgen16.sym +++ b/src/test/ref/sinusgen16.sym @@ -3,13 +3,13 @@ (label) @end (word) PI2_u4f12 (dword) PI2_u4f28 -(const dword) PI2_u4f28#0 PI2_u4f28 = (dword/signed dword) 1686629713 +(const dword) PI2_u4f28#0 PI2_u4f28 = (dword/signed dword) $6487ed51 (word) PI_HALF_u4f12 (dword) PI_HALF_u4f28 -(const dword) PI_HALF_u4f28#0 PI_HALF_u4f28 = (dword/signed dword) 421657428 +(const dword) PI_HALF_u4f28#0 PI_HALF_u4f28 = (dword/signed dword) $1921fb54 (word) PI_u4f12 (dword) PI_u4f28 -(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) 843314857 +(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) $3243f6a9 (dword()) div32u16u((dword) div32u16u::dividend , (word) div32u16u::divisor) (label) div32u16u::@2 (label) div32u16u::@3 @@ -67,8 +67,8 @@ (label) main::@7 (label) main::@8 (label) main::@return -(signed word[120]) main::sintab1 -(const signed word[120]) main::sintab1#0 sintab1 = { fill( 120, 0) } +(signed word[$78]) main::sintab1 +(const signed word[$78]) main::sintab1#0 sintab1 = { fill( $78, 0) } (signed word*) main::st1 (signed word*) main::st1#1 st1 zp ZP_WORD:2 16.5 (signed word*) main::st1#2 st1 zp ZP_WORD:2 3.3000000000000003 @@ -77,7 +77,7 @@ (signed word) main::sw (signed word) main::sw#0 sw zp ZP_WORD:6 6.6000000000000005 (word) main::wavelength -(const word) main::wavelength#0 wavelength = (byte/signed byte/word/signed word/dword/signed dword) 120 +(const word) main::wavelength#0 wavelength = (byte/signed byte/word/signed word/dword/signed dword) $78 (dword()) mul16u((word) mul16u::a , (word) mul16u::b) (byte/word~) mul16u::$1 reg byte a 202.0 (label) mul16u::@1 @@ -162,7 +162,7 @@ (byte[]) print_hextab (const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor -(const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) print_screen (void()) print_str((byte*) print_str::str) (label) print_str::@1 diff --git a/src/test/ref/sinusgen16b.cfg b/src/test/ref/sinusgen16b.cfg index 2f0562ba9..73edea5cf 100644 --- a/src/test/ref/sinusgen16b.cfg +++ b/src/test/ref/sinusgen16b.cfg @@ -22,8 +22,8 @@ main::@6: scope:[main] from main::@5 main::@1: scope:[main] from main::@6 main::@9 [10] (byte) main::i#2 ← phi( main::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@9/(byte) main::i#1 ) [10] (byte*) print_char_cursor#49 ← phi( main::@6/(const byte*) print_line_cursor#0 main::@9/(byte*) print_char_cursor#2 ) - [10] (signed word*) main::st2#2 ← phi( main::@6/(const signed word[120]) main::sintab2#0 main::@9/(signed word*) main::st2#1 ) - [10] (signed word*) main::st1#2 ← phi( main::@6/(const signed word[120]) main::sintab1#0 main::@9/(signed word*) main::st1#1 ) + [10] (signed word*) main::st2#2 ← phi( main::@6/(const signed word[$78]) main::sintab2#0 main::@9/(signed word*) main::st2#1 ) + [10] (signed word*) main::st1#2 ← phi( main::@6/(const signed word[$78]) main::sintab1#0 main::@9/(signed word*) main::st1#1 ) [11] (signed word) main::sw#0 ← *((signed word*) main::st1#2) - *((signed word*) main::st2#2) [12] if((signed word) main::sw#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 to:main::@3 @@ -44,7 +44,7 @@ main::@9: scope:[main] from main::@8 [20] (signed word*) main::st1#1 ← (signed word*) main::st1#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [21] (signed word*) main::st2#1 ← (signed word*) main::st2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [22] (byte) main::i#1 ← ++ (byte) main::i#2 - [23] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 120) goto main::@1 + [23] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $78) goto main::@1 to:main::@return main::@return: scope:[main] from main::@9 [24] return @@ -103,7 +103,7 @@ print_byte: scope:[print_byte] from print_word print_word::@1 [47] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [48] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [48] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [49] (byte) print_char::ch#2 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [50] call print_char to:print_byte::@return @@ -126,7 +126,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 [57] (byte*) print_cls::sc#2 ← phi( print_cls/(const byte*) print_line_cursor#0 print_cls::@1/(byte*) print_cls::sc#1 ) [58] *((byte*) print_cls::sc#2) ← (byte) ' ' [59] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [60] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [60] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [61] return @@ -141,7 +141,7 @@ sin16s_genb::@3: scope:[sin16s_genb] from sin16s_genb to:sin16s_genb::@1 sin16s_genb::@1: scope:[sin16s_genb] from sin16s_genb::@3 sin16s_genb::@4 [66] (word) sin16s_genb::i#2 ← phi( sin16s_genb::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_genb::@4/(word) sin16s_genb::i#1 ) - [66] (signed word*) sin16s_genb::sintab#2 ← phi( sin16s_genb::@3/(const signed word[120]) main::sintab2#0 sin16s_genb::@4/(signed word*) sin16s_genb::sintab#0 ) + [66] (signed word*) sin16s_genb::sintab#2 ← phi( sin16s_genb::@3/(const signed word[$78]) main::sintab2#0 sin16s_genb::@4/(signed word*) sin16s_genb::sintab#0 ) [66] (dword) sin16s_genb::x#2 ← phi( sin16s_genb::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_genb::@4/(dword) sin16s_genb::x#1 ) [67] (word) sin16sb::x#0 ← > (dword) sin16s_genb::x#2 [68] call sin16sb @@ -228,7 +228,7 @@ sin16sb::@15: scope:[sin16sb] from sin16sb::@12 to:sin16sb::@3 mulu16_sel: scope:[mulu16_sel] from sin16s::@10 sin16s::@11 sin16s::@2 sin16s::@8 sin16s::@9 sin16sb::@10 sin16sb::@11 sin16sb::@2 sin16sb::@8 sin16sb::@9 [116] (byte) mulu16_sel::select#10 ← phi( sin16s::@10/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@11/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16s::@9/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16sb::@10/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16sb::@11/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16sb::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16sb::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16sb::@9/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [116] (word) mulu16_sel::v2#10 ← phi( sin16s::@10/(word) mulu16_sel::v2#3 sin16s::@11/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@8/(word) mulu16_sel::v2#1 sin16s::@9/(dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 sin16sb::@10/(word) mulu16_sel::v2#8 sin16sb::@11/(word) mulu16_sel::v2#9 sin16sb::@2/(word) mulu16_sel::v2#5 sin16sb::@8/(word) mulu16_sel::v2#6 sin16sb::@9/(dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 ) + [116] (word) mulu16_sel::v2#10 ← phi( sin16s::@10/(word) mulu16_sel::v2#3 sin16s::@11/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@8/(word) mulu16_sel::v2#1 sin16s::@9/(dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 sin16sb::@10/(word) mulu16_sel::v2#8 sin16sb::@11/(word) mulu16_sel::v2#9 sin16sb::@2/(word) mulu16_sel::v2#5 sin16sb::@8/(word) mulu16_sel::v2#6 sin16sb::@9/(dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 ) [116] (word) mulu16_sel::v1#10 ← phi( sin16s::@10/(word) mulu16_sel::v1#3 sin16s::@11/(word) mulu16_sel::v1#4 sin16s::@2/(word) mulu16_sel::v1#0 sin16s::@8/(word) mulu16_sel::v1#1 sin16s::@9/(word) mulu16_sel::v1#2 sin16sb::@10/(word) mulu16_sel::v1#8 sin16sb::@11/(word) mulu16_sel::v1#9 sin16sb::@2/(word) mulu16_sel::v1#5 sin16sb::@8/(word) mulu16_sel::v1#6 sin16sb::@9/(word) mulu16_sel::v1#7 ) [117] (word) mul16u::a#1 ← (word) mulu16_sel::v1#10 [118] (word) mul16u::b#0 ← (word) mulu16_sel::v2#10 @@ -296,7 +296,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 [146] (word) divr16u::rem#5 ← phi( divr16u/(word) divr16u::rem#10 divr16u::@3/(word) divr16u::rem#11 ) [147] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [148] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 - [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [150] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 to:divr16u::@4 divr16u::@4: scope:[divr16u] from divr16u::@1 @@ -316,7 +316,7 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 [158] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [158] (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) [159] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 - [160] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 + [160] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 to:divr16u::@6 divr16u::@6: scope:[divr16u] from divr16u::@3 [161] (word) rem16u#1 ← (word) divr16u::rem#11 @@ -334,7 +334,7 @@ sin16s_gen::@3: scope:[sin16s_gen] from sin16s_gen to:sin16s_gen::@1 sin16s_gen::@1: scope:[sin16s_gen] from sin16s_gen::@3 sin16s_gen::@4 [167] (word) sin16s_gen::i#2 ← phi( sin16s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@4/(word) sin16s_gen::i#1 ) - [167] (signed word*) sin16s_gen::sintab#2 ← phi( sin16s_gen::@3/(const signed word[120]) main::sintab1#0 sin16s_gen::@4/(signed word*) sin16s_gen::sintab#0 ) + [167] (signed word*) sin16s_gen::sintab#2 ← phi( sin16s_gen::@3/(const signed word[$78]) main::sintab1#0 sin16s_gen::@4/(signed word*) sin16s_gen::sintab#0 ) [167] (dword) sin16s_gen::x#2 ← phi( sin16s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@4/(dword) sin16s_gen::x#1 ) [168] (dword) sin16s::x#0 ← (dword) sin16s_gen::x#2 [169] call sin16s diff --git a/src/test/ref/sinusgen16b.log b/src/test/ref/sinusgen16b.log index 4475cecf5..3797fc91a 100644 --- a/src/test/ref/sinusgen16b.log +++ b/src/test/ref/sinusgen16b.log @@ -22,7 +22,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 (word~) divr16u::$0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 (word) divr16u::rem#0 ← (word~) divr16u::$0 (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 - (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 (bool~) divr16u::$3 ← (byte~) divr16u::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) divr16u::$4 ← ! (bool~) divr16u::$3 if((bool~) divr16u::$4) goto divr16u::@2 @@ -56,8 +56,8 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 (word) divr16u::dividend#6 ← phi( divr16u::@2/(word) divr16u::dividend#0 divr16u::@5/(word) divr16u::dividend#8 ) (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) (byte) divr16u::i#2 ← phi( divr16u::@2/(byte) divr16u::i#3 divr16u::@5/(byte) divr16u::i#4 ) - (byte) divr16u::i#1 ← (byte) divr16u::i#2 + rangenext(0,15) - (bool~) divr16u::$11 ← (byte) divr16u::i#1 != rangelast(0,15) + (byte) divr16u::i#1 ← (byte) divr16u::i#2 + rangenext(0,$f) + (bool~) divr16u::$11 ← (byte) divr16u::i#1 != rangelast(0,$f) if((bool~) divr16u::$11) goto divr16u::@1 to:divr16u::@6 divr16u::@5: scope:[divr16u] from divr16u::@2 @@ -183,12 +183,12 @@ mul16u::@return: scope:[mul16u] from mul16u::@3 to:@return @13: scope:[] from @6 (word) rem16u#40 ← phi( @6/(word) rem16u#43 ) - (dword) PI2_u4f28#0 ← (dword/signed dword) 1686629713 - (dword) PI_u4f28#0 ← (dword/signed dword) 843314857 - (dword) PI_HALF_u4f28#0 ← (dword/signed dword) 421657428 - (word) PI2_u4f12#0 ← (word/signed word/dword/signed dword) 25736 - (word) PI_u4f12#0 ← (word/signed word/dword/signed dword) 12868 - (word) PI_HALF_u4f12#0 ← (word/signed word/dword/signed dword) 6434 + (dword) PI2_u4f28#0 ← (dword/signed dword) $6487ed51 + (dword) PI_u4f28#0 ← (dword/signed dword) $3243f6a9 + (dword) PI_HALF_u4f28#0 ← (dword/signed dword) $1921fb54 + (word) PI2_u4f12#0 ← (word/signed word/dword/signed dword) $6488 + (word) PI_u4f12#0 ← (word/signed word/dword/signed dword) $3244 + (word) PI_HALF_u4f12#0 ← (word/signed word/dword/signed dword) $1922 to:@22 sin16s_gen: scope:[sin16s_gen] from main (signed word*) sin16s_gen::sintab#5 ← phi( main/(signed word*) sin16s_gen::sintab#1 ) @@ -294,7 +294,7 @@ sin16s::@9: scope:[sin16s] from sin16s::@8 (word) mulu16_sel::return#13 ← phi( sin16s::@8/(word) mulu16_sel::return#1 ) (word~) sin16s::$9 ← (word) mulu16_sel::return#13 (word) sin16s::x3#0 ← (word~) sin16s::$9 - (word/signed word/dword/signed dword~) sin16s::$10 ← (dword/signed dword) 65536 / (byte/signed byte/word/signed word/dword/signed dword) 6 + (word/signed word/dword/signed dword~) sin16s::$10 ← (dword/signed dword) $10000 / (byte/signed byte/word/signed word/dword/signed dword) 6 (word) mulu16_sel::v1#2 ← (word) sin16s::x3#0 (word) mulu16_sel::v2#2 ← (word/signed word/dword/signed dword~) sin16s::$10 (byte) mulu16_sel::select#2 ← (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -492,7 +492,7 @@ sin16sb::@9: scope:[sin16sb] from sin16sb::@8 (word) mulu16_sel::return#19 ← phi( sin16sb::@8/(word) mulu16_sel::return#8 ) (word~) sin16sb::$8 ← (word) mulu16_sel::return#19 (word) sin16sb::x3#0 ← (word~) sin16sb::$8 - (word/signed word/dword/signed dword~) sin16sb::$9 ← (dword/signed dword) 65536 / (byte/signed byte/word/signed word/dword/signed dword) 6 + (word/signed word/dword/signed dword~) sin16sb::$9 ← (dword/signed dword) $10000 / (byte/signed byte/word/signed word/dword/signed dword) 6 (word) mulu16_sel::v1#7 ← (word) sin16sb::x3#0 (word) mulu16_sel::v2#7 ← (word/signed word/dword/signed dword~) sin16sb::$9 (byte) mulu16_sel::select#7 ← (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -566,7 +566,7 @@ sin16sb::@return: scope:[sin16sb] from sin16sb::@3 to:@return @22: scope:[] from @13 (word) rem16u#38 ← phi( @13/(word) rem16u#40 ) - (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 to:@34 @@ -670,7 +670,7 @@ print_byte::@1: scope:[print_byte] from print_byte (byte) print_byte::b#3 ← phi( print_byte/(byte) print_byte::b#2 ) (byte*) print_char_cursor#30 ← phi( print_byte/(byte*) print_char_cursor#13 ) (byte*) print_char_cursor#9 ← (byte*) print_char_cursor#30 - (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte) print_char::ch#2 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$2) call print_char to:print_byte::@2 @@ -703,7 +703,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 (byte*) print_cls::sc#2 ← phi( print_cls/(byte*) print_cls::sc#0 print_cls::@1/(byte*) print_cls::sc#1 ) *((byte*) print_cls::sc#2) ← (byte) ' ' (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) 1000 + (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) $3e8 (bool~) print_cls::$1 ← (byte*) print_cls::sc#1 != (byte*~) print_cls::$0 if((bool~) print_cls::$1) goto print_cls::@1 to:print_cls::@2 @@ -724,10 +724,10 @@ main: scope:[main] from @42 (byte*) print_line_cursor#16 ← phi( @42/(byte*) print_line_cursor#12 ) (byte*) print_screen#6 ← phi( @42/(byte*) print_screen#7 ) (word) rem16u#31 ← phi( @42/(word) rem16u#33 ) - (word) main::wavelength#0 ← (byte/signed byte/word/signed word/dword/signed dword) 120 - (signed word[120]) main::sintab1#0 ← { fill( 120, 0) } - (signed word[120]) main::sintab2#0 ← { fill( 120, 0) } - (signed word*) sin16s_gen::sintab#1 ← (signed word[120]) main::sintab1#0 + (word) main::wavelength#0 ← (byte/signed byte/word/signed word/dword/signed dword) $78 + (signed word[$78]) main::sintab1#0 ← { fill( $78, 0) } + (signed word[$78]) main::sintab2#0 ← { fill( $78, 0) } + (signed word*) sin16s_gen::sintab#1 ← (signed word[$78]) main::sintab1#0 (word) sin16s_gen::wavelength#0 ← (word) main::wavelength#0 call sin16s_gen to:main::@5 @@ -738,7 +738,7 @@ main::@5: scope:[main] from main (word) main::wavelength#1 ← phi( main/(word) main::wavelength#0 ) (word) rem16u#22 ← phi( main/(word) rem16u#7 ) (word) rem16u#10 ← (word) rem16u#22 - (signed word*) sin16s_genb::sintab#1 ← (signed word[120]) main::sintab2#0 + (signed word*) sin16s_genb::sintab#1 ← (signed word[$78]) main::sintab2#0 (word) sin16s_genb::wavelength#0 ← (word) main::wavelength#1 call sin16s_genb to:main::@6 @@ -756,8 +756,8 @@ main::@7: scope:[main] from main::@6 (byte*) print_line_cursor#7 ← phi( main::@6/(byte*) print_line_cursor#2 ) (byte*) print_line_cursor#3 ← (byte*) print_line_cursor#7 (byte*) print_char_cursor#16 ← (byte*) print_char_cursor#36 - (signed word*) main::st1#0 ← (signed word[120]) main::sintab1#0 - (signed word*) main::st2#0 ← (signed word[120]) main::sintab2#0 + (signed word*) main::st1#0 ← (signed word[$78]) main::sintab1#0 + (signed word*) main::st2#0 ← (signed word[$78]) main::sintab2#0 (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main::@7 main::@9 @@ -807,8 +807,8 @@ main::@9: scope:[main] from main::@8 (signed word*) main::st1#1 ← (signed word*~) main::$9 (signed word*~) main::$10 ← (signed word*) main::st2#3 + (byte/signed byte/word/signed word/dword/signed dword) 2 (signed word*) main::st2#1 ← (signed word*~) main::$10 - (byte) main::i#1 ← (byte) main::i#2 + rangenext(0,119) - (bool~) main::$11 ← (byte) main::i#1 != rangelast(0,119) + (byte) main::i#1 ← (byte) main::i#2 + rangenext(0,$77) + (bool~) main::$11 ← (byte) main::i#1 != rangelast(0,$77) if((bool~) main::$11) goto main::@1 to:main::@return main::@3: scope:[main] from main::@1 @@ -1019,10 +1019,10 @@ SYMBOL TABLE SSA (byte) main::i#5 (byte) main::i#6 (byte) main::i#7 -(signed word[120]) main::sintab1 -(signed word[120]) main::sintab1#0 -(signed word[120]) main::sintab2 -(signed word[120]) main::sintab2#0 +(signed word[$78]) main::sintab1 +(signed word[$78]) main::sintab1#0 +(signed word[$78]) main::sintab2 +(signed word[$78]) main::sintab2#0 (signed word*) main::st1 (signed word*) main::st1#0 (signed word*) main::st1#1 @@ -1784,8 +1784,8 @@ Alias (word) rem16u#10 = (word) rem16u#22 Alias (word) rem16u#11 = (word) rem16u#23 (word) rem16u#44 Alias (byte*) print_line_cursor#3 = (byte*) print_line_cursor#7 Alias (byte*) print_char_cursor#16 = (byte*) print_char_cursor#36 -Alias (signed word[120]) main::sintab1#0 = (signed word*) main::st1#0 -Alias (signed word[120]) main::sintab2#0 = (signed word*) main::st2#0 +Alias (signed word[$78]) main::sintab1#0 = (signed word*) main::st1#0 +Alias (signed word[$78]) main::sintab2#0 = (signed word*) main::st2#0 Alias (signed word) main::sw#0 = (signed word~) main::$3 (signed word) main::sw#3 (signed word) main::sw#2 Alias (signed word*) main::st1#3 = (signed word*) main::st1#4 (signed word*) main::st1#5 Alias (signed word*) main::st2#3 = (signed word*) main::st2#4 (signed word*) main::st2#5 @@ -1886,7 +1886,7 @@ Redundant Phi (byte*) print_char_cursor#21 (byte*) print_char_cursor#18 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) divr16u::$4 [12] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 Simple Condition (bool~) divr16u::$9 [20] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 -Simple Condition (bool~) divr16u::$11 [27] if((byte) divr16u::i#1!=rangelast(0,15)) goto divr16u::@1 +Simple Condition (bool~) divr16u::$11 [27] if((byte) divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1 Simple Condition (bool~) mul16u::$0 [75] if((word) mul16u::a#2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@2 Simple Condition (bool~) mul16u::$3 [80] if((byte/word~) mul16u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@4 Simple Condition (bool~) sin16s_gen::$4 [125] if((word) sin16s_gen::i#1<(word) sin16s_gen::wavelength#0) goto sin16s_gen::@1 @@ -1901,7 +1901,7 @@ Simple Condition (bool~) print_str::$0 [339] if(*((byte*) print_str::str#3)!=(by Simple Condition (bool~) print_sword::$1 [350] if((signed word) print_sword::w#1>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto print_sword::@1 Simple Condition (bool~) print_cls::$1 [410] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 Simple Condition (bool~) main::$5 [444] if((signed word) main::sw#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 -Simple Condition (bool~) main::$11 [460] if((byte) main::i#1!=rangelast(0,119)) goto main::@1 +Simple Condition (bool~) main::$11 [460] if((byte) main::i#1!=rangelast(0,$77)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte) rem8u#0 = 0 Constant (const word) rem16u#0 = 0 @@ -1911,19 +1911,19 @@ Constant (const word) divr16u::rem#3 = 0 Constant (const signed byte) rem8s#0 = 0 Constant (const signed word) rem16s#0 = 0 Constant (const dword) mul16u::res#0 = 0 -Constant (const dword) PI2_u4f28#0 = 1686629713 -Constant (const dword) PI_u4f28#0 = 843314857 -Constant (const dword) PI_HALF_u4f28#0 = 421657428 -Constant (const word) PI2_u4f12#0 = 25736 -Constant (const word) PI_u4f12#0 = 12868 -Constant (const word) PI_HALF_u4f12#0 = 6434 +Constant (const dword) PI2_u4f28#0 = $6487ed51 +Constant (const dword) PI_u4f28#0 = $3243f6a9 +Constant (const dword) PI_HALF_u4f28#0 = $1921fb54 +Constant (const word) PI2_u4f12#0 = $6488 +Constant (const word) PI_u4f12#0 = $3244 +Constant (const word) PI_HALF_u4f12#0 = $1922 Constant (const dword) sin16s_gen::x#0 = 0 Constant (const word) sin16s_gen::i#0 = 0 Constant (const byte) sin16s::isUpper#0 = 0 Constant (const byte) sin16s::isUpper#1 = 1 Constant (const byte) mulu16_sel::select#0 = 0 Constant (const byte) mulu16_sel::select#1 = 1 -Constant (const word) mulu16_sel::v2#2 = 65536/6 +Constant (const word) mulu16_sel::v2#2 = $10000/6 Constant (const byte) mulu16_sel::select#2 = 1 Constant (const byte) mulu16_sel::select#3 = 0 Constant (const byte) mulu16_sel::select#4 = 0 @@ -1933,16 +1933,16 @@ Constant (const byte) sin16sb::isUpper#0 = 0 Constant (const byte) sin16sb::isUpper#1 = 1 Constant (const byte) mulu16_sel::select#5 = 0 Constant (const byte) mulu16_sel::select#6 = 1 -Constant (const word) mulu16_sel::v2#7 = 65536/6 +Constant (const word) mulu16_sel::v2#7 = $10000/6 Constant (const byte) mulu16_sel::select#7 = 1 Constant (const byte) mulu16_sel::select#8 = 0 Constant (const byte) mulu16_sel::select#9 = 0 -Constant (const byte*) print_line_cursor#0 = ((byte*))1024 +Constant (const byte*) print_line_cursor#0 = ((byte*))$400 Constant (const byte) print_char::ch#0 = '-' Constant (const byte[]) print_hextab#0 = $0 -Constant (const word) main::wavelength#0 = 120 -Constant (const signed word[120]) main::sintab1#0 = { fill( 120, 0) } -Constant (const signed word[120]) main::sintab2#0 = { fill( 120, 0) } +Constant (const word) main::wavelength#0 = $78 +Constant (const signed word[$78]) main::sintab1#0 = { fill( $78, 0) } +Constant (const signed word[$78]) main::sintab2#0 = { fill( $78, 0) } Constant (const byte) main::i#0 = 0 Constant (const byte*) print_str::str#1 = main::str Constant (const byte*) print_str::str#2 = main::str1 @@ -1950,7 +1950,7 @@ Successful SSA optimization Pass2ConstantIdentification Constant (const dword) div32u16u::dividend#0 = PI2_u4f28#0 Constant (const dword) div32u16u::dividend#1 = PI2_u4f28#0 Constant (const byte*) print_cls::sc#0 = print_line_cursor#0 -Constant (const byte*) print_cls::$0 = print_line_cursor#0+1000 +Constant (const byte*) print_cls::$0 = print_line_cursor#0+$3e8 Constant (const signed word*) sin16s_gen::sintab#1 = main::sintab1#0 Constant (const word) sin16s_gen::wavelength#0 = main::wavelength#0 Constant (const signed word*) sin16s_genb::sintab#1 = main::sintab2#0 @@ -1970,9 +1970,9 @@ Eliminating Noop Cast (signed word~) sin16sb::$19 ← ((signed word)) (word) sin Eliminating Noop Cast (word) print_word::w#0 ← ((word)) (signed word) print_sword::w#3 Successful SSA optimization Pass2NopCastElimination Resolved ranged next value divr16u::i#1 ← ++ divr16u::i#2 to ++ -Resolved ranged comparison value if(divr16u::i#1!=rangelast(0,15)) goto divr16u::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ -Resolved ranged comparison value if(main::i#1!=rangelast(0,119)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 120 +Resolved ranged comparison value if(main::i#1!=rangelast(0,$77)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $78 Culled Empty Block (label) @2 Culled Empty Block (label) @5 Culled Empty Block (label) @6 @@ -2026,13 +2026,13 @@ Inlining constant with var siblings (const byte) print_char::ch#0 Inlining constant with var siblings (const byte*) print_cls::sc#0 Inlining constant with var siblings (const byte) main::i#0 Constant inlined divr16u::rem#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined print_cls::$0 = (const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000 +Constant inlined print_cls::$0 = (const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8 Constant inlined divr16u::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined div32u16u::dividend#1 = (const dword) PI2_u4f28#0 Constant inlined sin16s_gen::wavelength#0 = (const word) main::wavelength#0 Constant inlined div32u16u::dividend#0 = (const dword) PI2_u4f28#0 Constant inlined sin16s::isUpper#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mulu16_sel::v2#7 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 +Constant inlined mulu16_sel::v2#7 = (dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 Constant inlined $0 = (const byte[]) print_hextab#0 Constant inlined mulu16_sel::select#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mulu16_sel::select#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -2043,7 +2043,7 @@ Constant inlined mul16u::res#0 = (byte/signed byte/word/signed word/dword/signed Constant inlined mulu16_sel::select#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined sin16s::isUpper#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined mulu16_sel::select#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined sin16s_genb::sintab#1 = (const signed word[120]) main::sintab2#0 +Constant inlined sin16s_genb::sintab#1 = (const signed word[$78]) main::sintab2#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined sin16s_genb::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined sin16sb::isUpper#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -2055,9 +2055,9 @@ Constant inlined print_cls::sc#0 = (const byte*) print_line_cursor#0 Constant inlined mulu16_sel::select#8 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mulu16_sel::select#9 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mulu16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined sin16s_gen::sintab#1 = (const signed word[120]) main::sintab1#0 +Constant inlined sin16s_gen::sintab#1 = (const signed word[$78]) main::sintab1#0 Constant inlined mulu16_sel::select#7 = (byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined mulu16_sel::v2#2 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 +Constant inlined mulu16_sel::v2#2 = (dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 Constant inlined print_char::ch#0 = (byte) '-' Constant inlined sin16s_gen::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined div32u16u::divisor#1 = (const word) main::wavelength#0 @@ -2260,8 +2260,8 @@ main::@6: scope:[main] from main::@5 main::@1: scope:[main] from main::@6 main::@9 [10] (byte) main::i#2 ← phi( main::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@9/(byte) main::i#1 ) [10] (byte*) print_char_cursor#49 ← phi( main::@6/(const byte*) print_line_cursor#0 main::@9/(byte*) print_char_cursor#2 ) - [10] (signed word*) main::st2#2 ← phi( main::@6/(const signed word[120]) main::sintab2#0 main::@9/(signed word*) main::st2#1 ) - [10] (signed word*) main::st1#2 ← phi( main::@6/(const signed word[120]) main::sintab1#0 main::@9/(signed word*) main::st1#1 ) + [10] (signed word*) main::st2#2 ← phi( main::@6/(const signed word[$78]) main::sintab2#0 main::@9/(signed word*) main::st2#1 ) + [10] (signed word*) main::st1#2 ← phi( main::@6/(const signed word[$78]) main::sintab1#0 main::@9/(signed word*) main::st1#1 ) [11] (signed word) main::sw#0 ← *((signed word*) main::st1#2) - *((signed word*) main::st2#2) [12] if((signed word) main::sw#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 to:main::@3 @@ -2282,7 +2282,7 @@ main::@9: scope:[main] from main::@8 [20] (signed word*) main::st1#1 ← (signed word*) main::st1#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [21] (signed word*) main::st2#1 ← (signed word*) main::st2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [22] (byte) main::i#1 ← ++ (byte) main::i#2 - [23] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 120) goto main::@1 + [23] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $78) goto main::@1 to:main::@return main::@return: scope:[main] from main::@9 [24] return @@ -2341,7 +2341,7 @@ print_byte: scope:[print_byte] from print_word print_word::@1 [47] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [48] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [48] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [49] (byte) print_char::ch#2 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [50] call print_char to:print_byte::@return @@ -2364,7 +2364,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 [57] (byte*) print_cls::sc#2 ← phi( print_cls/(const byte*) print_line_cursor#0 print_cls::@1/(byte*) print_cls::sc#1 ) [58] *((byte*) print_cls::sc#2) ← (byte) ' ' [59] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [60] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [60] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [61] return @@ -2379,7 +2379,7 @@ sin16s_genb::@3: scope:[sin16s_genb] from sin16s_genb to:sin16s_genb::@1 sin16s_genb::@1: scope:[sin16s_genb] from sin16s_genb::@3 sin16s_genb::@4 [66] (word) sin16s_genb::i#2 ← phi( sin16s_genb::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_genb::@4/(word) sin16s_genb::i#1 ) - [66] (signed word*) sin16s_genb::sintab#2 ← phi( sin16s_genb::@3/(const signed word[120]) main::sintab2#0 sin16s_genb::@4/(signed word*) sin16s_genb::sintab#0 ) + [66] (signed word*) sin16s_genb::sintab#2 ← phi( sin16s_genb::@3/(const signed word[$78]) main::sintab2#0 sin16s_genb::@4/(signed word*) sin16s_genb::sintab#0 ) [66] (dword) sin16s_genb::x#2 ← phi( sin16s_genb::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_genb::@4/(dword) sin16s_genb::x#1 ) [67] (word) sin16sb::x#0 ← > (dword) sin16s_genb::x#2 [68] call sin16sb @@ -2466,7 +2466,7 @@ sin16sb::@15: scope:[sin16sb] from sin16sb::@12 to:sin16sb::@3 mulu16_sel: scope:[mulu16_sel] from sin16s::@10 sin16s::@11 sin16s::@2 sin16s::@8 sin16s::@9 sin16sb::@10 sin16sb::@11 sin16sb::@2 sin16sb::@8 sin16sb::@9 [116] (byte) mulu16_sel::select#10 ← phi( sin16s::@10/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@11/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16s::@9/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16sb::@10/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16sb::@11/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16sb::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16sb::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16sb::@9/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [116] (word) mulu16_sel::v2#10 ← phi( sin16s::@10/(word) mulu16_sel::v2#3 sin16s::@11/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@8/(word) mulu16_sel::v2#1 sin16s::@9/(dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 sin16sb::@10/(word) mulu16_sel::v2#8 sin16sb::@11/(word) mulu16_sel::v2#9 sin16sb::@2/(word) mulu16_sel::v2#5 sin16sb::@8/(word) mulu16_sel::v2#6 sin16sb::@9/(dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 ) + [116] (word) mulu16_sel::v2#10 ← phi( sin16s::@10/(word) mulu16_sel::v2#3 sin16s::@11/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@8/(word) mulu16_sel::v2#1 sin16s::@9/(dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 sin16sb::@10/(word) mulu16_sel::v2#8 sin16sb::@11/(word) mulu16_sel::v2#9 sin16sb::@2/(word) mulu16_sel::v2#5 sin16sb::@8/(word) mulu16_sel::v2#6 sin16sb::@9/(dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 ) [116] (word) mulu16_sel::v1#10 ← phi( sin16s::@10/(word) mulu16_sel::v1#3 sin16s::@11/(word) mulu16_sel::v1#4 sin16s::@2/(word) mulu16_sel::v1#0 sin16s::@8/(word) mulu16_sel::v1#1 sin16s::@9/(word) mulu16_sel::v1#2 sin16sb::@10/(word) mulu16_sel::v1#8 sin16sb::@11/(word) mulu16_sel::v1#9 sin16sb::@2/(word) mulu16_sel::v1#5 sin16sb::@8/(word) mulu16_sel::v1#6 sin16sb::@9/(word) mulu16_sel::v1#7 ) [117] (word) mul16u::a#1 ← (word) mulu16_sel::v1#10 [118] (word) mul16u::b#0 ← (word) mulu16_sel::v2#10 @@ -2534,7 +2534,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 [146] (word) divr16u::rem#5 ← phi( divr16u/(word) divr16u::rem#10 divr16u::@3/(word) divr16u::rem#11 ) [147] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [148] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 - [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [150] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 to:divr16u::@4 divr16u::@4: scope:[divr16u] from divr16u::@1 @@ -2554,7 +2554,7 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 [158] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [158] (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) [159] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 - [160] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 + [160] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 to:divr16u::@6 divr16u::@6: scope:[divr16u] from divr16u::@3 [161] (word) rem16u#1 ← (word) divr16u::rem#11 @@ -2572,7 +2572,7 @@ sin16s_gen::@3: scope:[sin16s_gen] from sin16s_gen to:sin16s_gen::@1 sin16s_gen::@1: scope:[sin16s_gen] from sin16s_gen::@3 sin16s_gen::@4 [167] (word) sin16s_gen::i#2 ← phi( sin16s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@4/(word) sin16s_gen::i#1 ) - [167] (signed word*) sin16s_gen::sintab#2 ← phi( sin16s_gen::@3/(const signed word[120]) main::sintab1#0 sin16s_gen::@4/(signed word*) sin16s_gen::sintab#0 ) + [167] (signed word*) sin16s_gen::sintab#2 ← phi( sin16s_gen::@3/(const signed word[$78]) main::sintab1#0 sin16s_gen::@4/(signed word*) sin16s_gen::sintab#0 ) [167] (dword) sin16s_gen::x#2 ← phi( sin16s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@4/(dword) sin16s_gen::x#1 ) [168] (dword) sin16s::x#0 ← (dword) sin16s_gen::x#2 [169] call sin16s @@ -2711,8 +2711,8 @@ VARIABLE REGISTER WEIGHTS (byte) main::i (byte) main::i#1 16.5 (byte) main::i#2 1.8333333333333333 -(signed word[120]) main::sintab1 -(signed word[120]) main::sintab2 +(signed word[$78]) main::sintab1 +(signed word[$78]) main::sintab2 (signed word*) main::st1 (signed word*) main::st1#1 5.5 (signed word*) main::st1#2 3.3000000000000003 @@ -3253,12 +3253,12 @@ main: { sta print_char_cursor lda #>print_line_cursor sta print_char_cursor+1 - //SEG24 [10] phi (signed word*) main::st2#2 = (const signed word[120]) main::sintab2#0 [phi:main::@6->main::@1#2] -- pwsz1=pwsc1 + //SEG24 [10] phi (signed word*) main::st2#2 = (const signed word[$78]) main::sintab2#0 [phi:main::@6->main::@1#2] -- pwsz1=pwsc1 lda #sintab2 sta st2+1 - //SEG25 [10] phi (signed word*) main::st1#2 = (const signed word[120]) main::sintab1#0 [phi:main::@6->main::@1#3] -- pwsz1=pwsc1 + //SEG25 [10] phi (signed word*) main::st1#2 = (const signed word[$78]) main::sintab1#0 [phi:main::@6->main::@1#3] -- pwsz1=pwsc1 lda #sintab1 @@ -3351,7 +3351,7 @@ main: { !: //SEG54 [22] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG55 [23] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 120) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG55 [23] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $78) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$78 bne b1_from_b9 @@ -3514,7 +3514,7 @@ print_byte: { jmp b1 //SEG108 print_byte::@1 b1: - //SEG109 [48] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG109 [48] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and b sta _2 @@ -3581,7 +3581,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG130 [60] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG130 [60] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>print_line_cursor+$3e8 bne b1_from_b1 @@ -3637,7 +3637,7 @@ sin16s_genb: { sta i lda #>0 sta i+1 - //SEG141 [66] phi (signed word*) sin16s_genb::sintab#2 = (const signed word[120]) main::sintab2#0 [phi:sin16s_genb::@3->sin16s_genb::@1#1] -- pwsz1=pwsc1 + //SEG141 [66] phi (signed word*) sin16s_genb::sintab#2 = (const signed word[$78]) main::sintab2#0 [phi:sin16s_genb::@3->sin16s_genb::@1#1] -- pwsz1=pwsc1 lda #main.sintab2 @@ -3898,7 +3898,7 @@ sin16sb: { //SEG201 [116] phi (byte) mulu16_sel::select#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16sb::@9->mulu16_sel#0] -- vbuz1=vbuc1 lda #1 sta mulu16_sel.select - //SEG202 [116] phi (word) mulu16_sel::v2#10 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16sb::@9->mulu16_sel#1] -- vwuz1=vwuc1 + //SEG202 [116] phi (word) mulu16_sel::v2#10 = (dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16sb::@9->mulu16_sel#1] -- vwuz1=vwuc1 lda #<$10000/6 sta mulu16_sel.v2 lda #>$10000/6 @@ -4346,7 +4346,7 @@ divr16u: { //SEG307 [148] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 -- vbuz1=_hi_vwuz2 lda dividend+1 sta _1 - //SEG308 [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG308 [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuz1=vbuz2_band_vbuc1 lda #$80 and _1 sta _2 @@ -4409,7 +4409,7 @@ divr16u: { b3: //SEG325 [159] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG326 [160] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG326 [160] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b3 @@ -4470,7 +4470,7 @@ sin16s_gen: { sta i lda #>0 sta i+1 - //SEG339 [167] phi (signed word*) sin16s_gen::sintab#2 = (const signed word[120]) main::sintab1#0 [phi:sin16s_gen::@3->sin16s_gen::@1#1] -- pwsz1=pwsc1 + //SEG339 [167] phi (signed word*) sin16s_gen::sintab#2 = (const signed word[$78]) main::sintab1#0 [phi:sin16s_gen::@3->sin16s_gen::@1#1] -- pwsz1=pwsc1 lda #main.sintab1 @@ -4775,7 +4775,7 @@ sin16s: { //SEG400 [116] phi (byte) mulu16_sel::select#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@9->mulu16_sel#0] -- vbuz1=vbuc1 lda #1 sta mulu16_sel.select - //SEG401 [116] phi (word) mulu16_sel::v2#10 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 + //SEG401 [116] phi (word) mulu16_sel::v2#10 = (dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 lda #<$10000/6 sta mulu16_sel.v2 lda #>$10000/6 @@ -4942,11 +4942,11 @@ Statement [39] (byte) print_byte::b#0 ← > (word)(signed word) print_sword::w#3 Statement [41] (byte) print_byte::b#1 ← < (word)(signed word) print_sword::w#3 [ print_char_cursor#12 print_byte::b#1 ] ( main:2::print_sword:17::print_word:37 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 print_byte::b#1 ] ) always clobbers reg byte a Statement [45] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#2 print_char_cursor#46 print_byte::$0 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_byte::$0 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_byte::b#2 print_char_cursor#46 print_byte::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:11 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] -Statement [48] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#12 print_byte::$2 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 print_byte::$2 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 print_byte::$2 ] ) always clobbers reg byte a +Statement [48] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#12 print_byte::$2 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 print_byte::$2 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 print_byte::$2 ] ) always clobbers reg byte a Statement [53] *((byte*) print_char_cursor#33) ← (byte) print_char::ch#3 [ print_char_cursor#33 ] ( main:2::print_sword:17::print_char:34 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#1 print_char_cursor#33 ] main:2::print_sword:17::print_word:37::print_byte:40::print_char:47 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_byte::b#2 print_char_cursor#33 ] main:2::print_sword:17::print_word:37::print_byte:42::print_char:47 [ main::st1#2 main::st2#2 main::i#2 print_byte::b#2 print_char_cursor#33 ] main:2::print_sword:17::print_word:37::print_byte:40::print_char:50 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#33 ] main:2::print_sword:17::print_word:37::print_byte:42::print_char:50 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#33 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:11 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] Statement [58] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:9 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [60] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:9 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [60] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:9 [ print_cls::sc#1 ] ) always clobbers reg byte a Statement [64] (dword) div32u16u::return#3 ← (dword) div32u16u::return#0 [ div32u16u::return#3 ] ( main:2::sin16s_genb:7 [ div32u16u::return#3 ] ) always clobbers reg byte a Statement [65] (dword) sin16s_genb::step#0 ← (dword) div32u16u::return#3 [ sin16s_genb::step#0 ] ( main:2::sin16s_genb:7 [ sin16s_genb::step#0 ] ) always clobbers reg byte a Statement [67] (word) sin16sb::x#0 ← > (dword) sin16s_genb::x#2 [ sin16s_genb::step#0 sin16s_genb::x#2 sin16s_genb::sintab#2 sin16s_genb::i#2 sin16sb::x#0 ] ( main:2::sin16s_genb:7 [ sin16s_genb::step#0 sin16s_genb::x#2 sin16s_genb::sintab#2 sin16s_genb::i#2 sin16sb::x#0 ] ) always clobbers reg byte a @@ -5007,7 +5007,7 @@ Statement [142] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ d Statement [143] (dword) div32u16u::return#0 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#0 ] ( main:2::sin16s_genb:7::div32u16u:63 [ div32u16u::return#0 ] main:2::sin16s_gen:5::div32u16u:164 [ div32u16u::return#0 ] ) always clobbers reg byte a Statement [148] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_genb:7::div32u16u:63::divr16u:136 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:164::divr16u:136 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_genb:7::div32u16u:63::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:164::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:51 [ divr16u::i#2 divr16u::i#1 ] -Statement [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_genb:7::div32u16u:63::divr16u:136 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:164::divr16u:136 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_genb:7::div32u16u:63::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:164::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a +Statement [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_genb:7::div32u16u:63::divr16u:136 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:164::divr16u:136 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_genb:7::div32u16u:63::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:164::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a Statement [151] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_genb:7::div32u16u:63::divr16u:136 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:164::divr16u:136 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_genb:7::div32u16u:63::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:164::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a Statement [155] if((word) divr16u::rem#6<(const word) main::wavelength#0) goto divr16u::@3 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_genb:7::div32u16u:63::divr16u:136 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:164::divr16u:136 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_genb:7::div32u16u:63::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:164::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) always clobbers reg byte a Statement [157] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (const word) main::wavelength#0 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_genb:7::div32u16u:63::divr16u:136 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:164::divr16u:136 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_genb:7::div32u16u:63::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:164::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a @@ -5064,10 +5064,10 @@ Statement [35] (signed word) print_sword::w#0 ← - (signed word) print_sword::w Statement [39] (byte) print_byte::b#0 ← > (word)(signed word) print_sword::w#3 [ print_sword::w#3 print_char_cursor#43 print_byte::b#0 ] ( main:2::print_sword:17::print_word:37 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#43 print_byte::b#0 ] ) always clobbers reg byte a Statement [41] (byte) print_byte::b#1 ← < (word)(signed word) print_sword::w#3 [ print_char_cursor#12 print_byte::b#1 ] ( main:2::print_sword:17::print_word:37 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 print_byte::b#1 ] ) always clobbers reg byte a Statement [45] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#2 print_char_cursor#46 print_byte::$0 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_byte::$0 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_byte::b#2 print_char_cursor#46 print_byte::$0 ] ) always clobbers reg byte a -Statement [48] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#12 print_byte::$2 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 print_byte::$2 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 print_byte::$2 ] ) always clobbers reg byte a +Statement [48] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#12 print_byte::$2 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 print_byte::$2 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 print_byte::$2 ] ) always clobbers reg byte a Statement [53] *((byte*) print_char_cursor#33) ← (byte) print_char::ch#3 [ print_char_cursor#33 ] ( main:2::print_sword:17::print_char:34 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#1 print_char_cursor#33 ] main:2::print_sword:17::print_word:37::print_byte:40::print_char:47 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_byte::b#2 print_char_cursor#33 ] main:2::print_sword:17::print_word:37::print_byte:42::print_char:47 [ main::st1#2 main::st2#2 main::i#2 print_byte::b#2 print_char_cursor#33 ] main:2::print_sword:17::print_word:37::print_byte:40::print_char:50 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#33 ] main:2::print_sword:17::print_word:37::print_byte:42::print_char:50 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#33 ] ) always clobbers reg byte y Statement [58] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:9 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [60] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:9 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [60] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:9 [ print_cls::sc#1 ] ) always clobbers reg byte a Statement [64] (dword) div32u16u::return#3 ← (dword) div32u16u::return#0 [ div32u16u::return#3 ] ( main:2::sin16s_genb:7 [ div32u16u::return#3 ] ) always clobbers reg byte a Statement [65] (dword) sin16s_genb::step#0 ← (dword) div32u16u::return#3 [ sin16s_genb::step#0 ] ( main:2::sin16s_genb:7 [ sin16s_genb::step#0 ] ) always clobbers reg byte a Statement [67] (word) sin16sb::x#0 ← > (dword) sin16s_genb::x#2 [ sin16s_genb::step#0 sin16s_genb::x#2 sin16s_genb::sintab#2 sin16s_genb::i#2 sin16sb::x#0 ] ( main:2::sin16s_genb:7 [ sin16s_genb::step#0 sin16s_genb::x#2 sin16s_genb::sintab#2 sin16s_genb::i#2 sin16sb::x#0 ] ) always clobbers reg byte a @@ -5123,7 +5123,7 @@ Statement [141] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16 Statement [142] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_genb:7::div32u16u:63 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] main:2::sin16s_gen:5::div32u16u:164 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ) always clobbers reg byte a Statement [143] (dword) div32u16u::return#0 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#0 ] ( main:2::sin16s_genb:7::div32u16u:63 [ div32u16u::return#0 ] main:2::sin16s_gen:5::div32u16u:164 [ div32u16u::return#0 ] ) always clobbers reg byte a Statement [148] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_genb:7::div32u16u:63::divr16u:136 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:164::divr16u:136 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_genb:7::div32u16u:63::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:164::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a -Statement [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_genb:7::div32u16u:63::divr16u:136 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:164::divr16u:136 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_genb:7::div32u16u:63::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:164::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a +Statement [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_genb:7::div32u16u:63::divr16u:136 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:164::divr16u:136 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_genb:7::div32u16u:63::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:164::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a Statement [151] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_genb:7::div32u16u:63::divr16u:136 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:164::divr16u:136 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_genb:7::div32u16u:63::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:164::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a Statement [155] if((word) divr16u::rem#6<(const word) main::wavelength#0) goto divr16u::@3 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_genb:7::div32u16u:63::divr16u:136 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:164::divr16u:136 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_genb:7::div32u16u:63::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:164::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) always clobbers reg byte a Statement [157] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (const word) main::wavelength#0 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_genb:7::div32u16u:63::divr16u:136 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:164::divr16u:136 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_genb:7::div32u16u:63::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:164::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a @@ -5442,12 +5442,12 @@ main: { sta print_char_cursor lda #>print_line_cursor sta print_char_cursor+1 - //SEG24 [10] phi (signed word*) main::st2#2 = (const signed word[120]) main::sintab2#0 [phi:main::@6->main::@1#2] -- pwsz1=pwsc1 + //SEG24 [10] phi (signed word*) main::st2#2 = (const signed word[$78]) main::sintab2#0 [phi:main::@6->main::@1#2] -- pwsz1=pwsc1 lda #sintab2 sta st2+1 - //SEG25 [10] phi (signed word*) main::st1#2 = (const signed word[120]) main::sintab1#0 [phi:main::@6->main::@1#3] -- pwsz1=pwsc1 + //SEG25 [10] phi (signed word*) main::st1#2 = (const signed word[$78]) main::sintab1#0 [phi:main::@6->main::@1#3] -- pwsz1=pwsc1 lda #sintab1 @@ -5536,7 +5536,7 @@ main: { !: //SEG54 [22] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG55 [23] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 120) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG55 [23] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $78) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$78 bne b1_from_b9 jmp breturn @@ -5693,7 +5693,7 @@ print_byte: { jmp b1 //SEG108 print_byte::@1 b1: - //SEG109 [48] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG109 [48] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and b //SEG110 [49] (byte) print_char::ch#2 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) -- vbuaa=pbuc1_derefidx_vbuaa @@ -5756,7 +5756,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG130 [60] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG130 [60] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>print_line_cursor+$3e8 bne b1_from_b1 @@ -5796,7 +5796,7 @@ sin16s_genb: { sta i lda #>0 sta i+1 - //SEG141 [66] phi (signed word*) sin16s_genb::sintab#2 = (const signed word[120]) main::sintab2#0 [phi:sin16s_genb::@3->sin16s_genb::@1#1] -- pwsz1=pwsc1 + //SEG141 [66] phi (signed word*) sin16s_genb::sintab#2 = (const signed word[$78]) main::sintab2#0 [phi:sin16s_genb::@3->sin16s_genb::@1#1] -- pwsz1=pwsc1 lda #main.sintab2 @@ -6023,7 +6023,7 @@ sin16sb: { mulu16_sel_from_b9: //SEG201 [116] phi (byte) mulu16_sel::select#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16sb::@9->mulu16_sel#0] -- vbuxx=vbuc1 ldx #1 - //SEG202 [116] phi (word) mulu16_sel::v2#10 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16sb::@9->mulu16_sel#1] -- vwuz1=vwuc1 + //SEG202 [116] phi (word) mulu16_sel::v2#10 = (dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16sb::@9->mulu16_sel#1] -- vwuz1=vwuc1 lda #<$10000/6 sta mulu16_sel.v2 lda #>$10000/6 @@ -6372,7 +6372,7 @@ divr16u: { rol rem+1 //SEG307 [148] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 -- vbuaa=_hi_vwuz1 lda dividend+1 - //SEG308 [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuaa_band_vbuc1 + //SEG308 [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 //SEG309 [150] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuaa_eq_0_then_la1 cmp #0 @@ -6432,7 +6432,7 @@ divr16u: { b3: //SEG325 [159] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuxx=_inc_vbuxx inx - //SEG326 [160] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG326 [160] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1_from_b3 jmp b6 @@ -6472,7 +6472,7 @@ sin16s_gen: { sta i lda #>0 sta i+1 - //SEG339 [167] phi (signed word*) sin16s_gen::sintab#2 = (const signed word[120]) main::sintab1#0 [phi:sin16s_gen::@3->sin16s_gen::@1#1] -- pwsz1=pwsc1 + //SEG339 [167] phi (signed word*) sin16s_gen::sintab#2 = (const signed word[$78]) main::sintab1#0 [phi:sin16s_gen::@3->sin16s_gen::@1#1] -- pwsz1=pwsc1 lda #main.sintab1 @@ -6739,7 +6739,7 @@ sin16s: { mulu16_sel_from_b9: //SEG400 [116] phi (byte) mulu16_sel::select#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@9->mulu16_sel#0] -- vbuxx=vbuc1 ldx #1 - //SEG401 [116] phi (word) mulu16_sel::v2#10 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 + //SEG401 [116] phi (word) mulu16_sel::v2#10 = (dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 lda #<$10000/6 sta mulu16_sel.v2 lda #>$10000/6 @@ -7111,15 +7111,15 @@ FINAL SYMBOL TABLE (label) @end (word) PI2_u4f12 (dword) PI2_u4f28 -(const dword) PI2_u4f28#0 PI2_u4f28 = (dword/signed dword) 1686629713 +(const dword) PI2_u4f28#0 PI2_u4f28 = (dword/signed dword) $6487ed51 (word) PI_HALF_u4f12 -(const word) PI_HALF_u4f12#0 PI_HALF_u4f12 = (word/signed word/dword/signed dword) 6434 +(const word) PI_HALF_u4f12#0 PI_HALF_u4f12 = (word/signed word/dword/signed dword) $1922 (dword) PI_HALF_u4f28 -(const dword) PI_HALF_u4f28#0 PI_HALF_u4f28 = (dword/signed dword) 421657428 +(const dword) PI_HALF_u4f28#0 PI_HALF_u4f28 = (dword/signed dword) $1921fb54 (word) PI_u4f12 -(const word) PI_u4f12#0 PI_u4f12 = (word/signed word/dword/signed dword) 12868 +(const word) PI_u4f12#0 PI_u4f12 = (word/signed word/dword/signed dword) $3244 (dword) PI_u4f28 -(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) 843314857 +(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) $3243f6a9 (dword()) div32u16u((dword) div32u16u::dividend , (word) div32u16u::divisor) (label) div32u16u::@2 (label) div32u16u::@3 @@ -7182,10 +7182,10 @@ FINAL SYMBOL TABLE (byte) main::i (byte) main::i#1 reg byte x 16.5 (byte) main::i#2 reg byte x 1.8333333333333333 -(signed word[120]) main::sintab1 -(const signed word[120]) main::sintab1#0 sintab1 = { fill( 120, 0) } -(signed word[120]) main::sintab2 -(const signed word[120]) main::sintab2#0 sintab2 = { fill( 120, 0) } +(signed word[$78]) main::sintab1 +(const signed word[$78]) main::sintab1#0 sintab1 = { fill( $78, 0) } +(signed word[$78]) main::sintab2 +(const signed word[$78]) main::sintab2#0 sintab2 = { fill( $78, 0) } (signed word*) main::st1 (signed word*) main::st1#1 st1 zp ZP_WORD:2 5.5 (signed word*) main::st1#2 st1 zp ZP_WORD:2 3.3000000000000003 @@ -7197,7 +7197,7 @@ FINAL SYMBOL TABLE (signed word) main::sw (signed word) main::sw#0 sw zp ZP_WORD:8 6.6000000000000005 (word) main::wavelength -(const word) main::wavelength#0 wavelength = (byte/signed byte/word/signed word/dword/signed dword) 120 +(const word) main::wavelength#0 wavelength = (byte/signed byte/word/signed word/dword/signed dword) $78 (dword()) mul16u((word) mul16u::a , (word) mul16u::b) (byte/word~) mul16u::$1 reg byte a 202.0 (label) mul16u::@1 @@ -7296,7 +7296,7 @@ FINAL SYMBOL TABLE (byte[]) print_hextab (const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor -(const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) print_screen (void()) print_str((byte*) print_str::str) (label) print_str::@1 @@ -7532,12 +7532,12 @@ main: { sta print_char_cursor lda #>print_line_cursor sta print_char_cursor+1 - //SEG24 [10] phi (signed word*) main::st2#2 = (const signed word[120]) main::sintab2#0 [phi:main::@6->main::@1#2] -- pwsz1=pwsc1 + //SEG24 [10] phi (signed word*) main::st2#2 = (const signed word[$78]) main::sintab2#0 [phi:main::@6->main::@1#2] -- pwsz1=pwsc1 lda #sintab2 sta st2+1 - //SEG25 [10] phi (signed word*) main::st1#2 = (const signed word[120]) main::sintab1#0 [phi:main::@6->main::@1#3] -- pwsz1=pwsc1 + //SEG25 [10] phi (signed word*) main::st1#2 = (const signed word[$78]) main::sintab1#0 [phi:main::@6->main::@1#3] -- pwsz1=pwsc1 lda #sintab1 @@ -7609,7 +7609,7 @@ main: { !: //SEG54 [22] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG55 [23] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 120) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG55 [23] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $78) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$78 bne b1 //SEG56 main::@return @@ -7738,7 +7738,7 @@ print_byte: { //SEG107 [52] phi (byte) print_char::ch#3 = (byte) print_char::ch#1 [phi:print_byte->print_char#1] -- register_copy jsr print_char //SEG108 print_byte::@1 - //SEG109 [48] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG109 [48] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and b //SEG110 [49] (byte) print_char::ch#2 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) -- vbuaa=pbuc1_derefidx_vbuaa @@ -7792,7 +7792,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG130 [60] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG130 [60] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>print_line_cursor+$3e8 bne b1 @@ -7825,7 +7825,7 @@ sin16s_genb: { lda #<0 sta i sta i+1 - //SEG141 [66] phi (signed word*) sin16s_genb::sintab#2 = (const signed word[120]) main::sintab2#0 [phi:sin16s_genb::@3->sin16s_genb::@1#1] -- pwsz1=pwsc1 + //SEG141 [66] phi (signed word*) sin16s_genb::sintab#2 = (const signed word[$78]) main::sintab2#0 [phi:sin16s_genb::@3->sin16s_genb::@1#1] -- pwsz1=pwsc1 lda #main.sintab2 @@ -8028,7 +8028,7 @@ sin16sb: { //SEG200 [116] phi from sin16sb::@9 to mulu16_sel [phi:sin16sb::@9->mulu16_sel] //SEG201 [116] phi (byte) mulu16_sel::select#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16sb::@9->mulu16_sel#0] -- vbuxx=vbuc1 ldx #1 - //SEG202 [116] phi (word) mulu16_sel::v2#10 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16sb::@9->mulu16_sel#1] -- vwuz1=vwuc1 + //SEG202 [116] phi (word) mulu16_sel::v2#10 = (dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16sb::@9->mulu16_sel#1] -- vwuz1=vwuc1 lda #<$10000/6 sta mulu16_sel.v2 lda #>$10000/6 @@ -8330,7 +8330,7 @@ divr16u: { rol rem+1 //SEG307 [148] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 -- vbuaa=_hi_vwuz1 lda dividend+1 - //SEG308 [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuaa_band_vbuc1 + //SEG308 [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 //SEG309 [150] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuaa_eq_0_then_la1 cmp #0 @@ -8380,7 +8380,7 @@ divr16u: { b3: //SEG325 [159] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuxx=_inc_vbuxx inx - //SEG326 [160] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG326 [160] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1 //SEG327 divr16u::@6 @@ -8411,7 +8411,7 @@ sin16s_gen: { lda #<0 sta i sta i+1 - //SEG339 [167] phi (signed word*) sin16s_gen::sintab#2 = (const signed word[120]) main::sintab1#0 [phi:sin16s_gen::@3->sin16s_gen::@1#1] -- pwsz1=pwsc1 + //SEG339 [167] phi (signed word*) sin16s_gen::sintab#2 = (const signed word[$78]) main::sintab1#0 [phi:sin16s_gen::@3->sin16s_gen::@1#1] -- pwsz1=pwsc1 lda #main.sintab1 @@ -8654,7 +8654,7 @@ sin16s: { //SEG399 [116] phi from sin16s::@9 to mulu16_sel [phi:sin16s::@9->mulu16_sel] //SEG400 [116] phi (byte) mulu16_sel::select#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@9->mulu16_sel#0] -- vbuxx=vbuc1 ldx #1 - //SEG401 [116] phi (word) mulu16_sel::v2#10 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 + //SEG401 [116] phi (word) mulu16_sel::v2#10 = (dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 lda #<$10000/6 sta mulu16_sel.v2 lda #>$10000/6 diff --git a/src/test/ref/sinusgen16b.sym b/src/test/ref/sinusgen16b.sym index 32bdc874f..220aed498 100644 --- a/src/test/ref/sinusgen16b.sym +++ b/src/test/ref/sinusgen16b.sym @@ -3,15 +3,15 @@ (label) @end (word) PI2_u4f12 (dword) PI2_u4f28 -(const dword) PI2_u4f28#0 PI2_u4f28 = (dword/signed dword) 1686629713 +(const dword) PI2_u4f28#0 PI2_u4f28 = (dword/signed dword) $6487ed51 (word) PI_HALF_u4f12 -(const word) PI_HALF_u4f12#0 PI_HALF_u4f12 = (word/signed word/dword/signed dword) 6434 +(const word) PI_HALF_u4f12#0 PI_HALF_u4f12 = (word/signed word/dword/signed dword) $1922 (dword) PI_HALF_u4f28 -(const dword) PI_HALF_u4f28#0 PI_HALF_u4f28 = (dword/signed dword) 421657428 +(const dword) PI_HALF_u4f28#0 PI_HALF_u4f28 = (dword/signed dword) $1921fb54 (word) PI_u4f12 -(const word) PI_u4f12#0 PI_u4f12 = (word/signed word/dword/signed dword) 12868 +(const word) PI_u4f12#0 PI_u4f12 = (word/signed word/dword/signed dword) $3244 (dword) PI_u4f28 -(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) 843314857 +(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) $3243f6a9 (dword()) div32u16u((dword) div32u16u::dividend , (word) div32u16u::divisor) (label) div32u16u::@2 (label) div32u16u::@3 @@ -74,10 +74,10 @@ (byte) main::i (byte) main::i#1 reg byte x 16.5 (byte) main::i#2 reg byte x 1.8333333333333333 -(signed word[120]) main::sintab1 -(const signed word[120]) main::sintab1#0 sintab1 = { fill( 120, 0) } -(signed word[120]) main::sintab2 -(const signed word[120]) main::sintab2#0 sintab2 = { fill( 120, 0) } +(signed word[$78]) main::sintab1 +(const signed word[$78]) main::sintab1#0 sintab1 = { fill( $78, 0) } +(signed word[$78]) main::sintab2 +(const signed word[$78]) main::sintab2#0 sintab2 = { fill( $78, 0) } (signed word*) main::st1 (signed word*) main::st1#1 st1 zp ZP_WORD:2 5.5 (signed word*) main::st1#2 st1 zp ZP_WORD:2 3.3000000000000003 @@ -89,7 +89,7 @@ (signed word) main::sw (signed word) main::sw#0 sw zp ZP_WORD:8 6.6000000000000005 (word) main::wavelength -(const word) main::wavelength#0 wavelength = (byte/signed byte/word/signed word/dword/signed dword) 120 +(const word) main::wavelength#0 wavelength = (byte/signed byte/word/signed word/dword/signed dword) $78 (dword()) mul16u((word) mul16u::a , (word) mul16u::b) (byte/word~) mul16u::$1 reg byte a 202.0 (label) mul16u::@1 @@ -188,7 +188,7 @@ (byte[]) print_hextab (const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor -(const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) print_screen (void()) print_str((byte*) print_str::str) (label) print_str::@1 diff --git a/src/test/ref/sinusgen8.cfg b/src/test/ref/sinusgen8.cfg index 2155b70fd..07e91d7c1 100644 --- a/src/test/ref/sinusgen8.cfg +++ b/src/test/ref/sinusgen8.cfg @@ -18,7 +18,7 @@ main::@5: scope:[main] from main main::@1: scope:[main] from main::@5 main::@8 [8] (byte*) print_char_cursor#45 ← phi( main::@5/(const byte*) print_line_cursor#0 main::@8/(byte*) print_char_cursor#2 ) [8] (byte) main::i#2 ← phi( main::@5/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@8/(byte) main::i#1 ) - [9] (signed byte) main::sb#0 ← *((const signed byte[192]) main::sintab2#0 + (byte) main::i#2) - (signed byte)*((const byte[]) main::sintabref#0 + (byte) main::i#2) + [9] (signed byte) main::sb#0 ← *((const signed byte[$c0]) main::sintab2#0 + (byte) main::i#2) - (signed byte)*((const byte[]) main::sintabref#0 + (byte) main::i#2) [10] if((signed byte) main::sb#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@1 @@ -36,7 +36,7 @@ main::@7: scope:[main] from main::@2 to:main::@8 main::@8: scope:[main] from main::@7 [18] (byte) main::i#1 ← ++ (byte) main::i#2 - [19] if((byte) main::i#1!=(byte/word/signed word/dword/signed dword) 192) goto main::@1 + [19] if((byte) main::i#1!=(byte/word/signed word/dword/signed dword) $c0) goto main::@1 to:main::@return main::@return: scope:[main] from main::@8 [20] return @@ -94,7 +94,7 @@ print_byte: scope:[print_byte] from print_sbyte::@2 [43] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [44] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [44] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [45] (byte) print_char::ch#3 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [46] call print_char to:print_byte::@return @@ -108,7 +108,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 [49] (byte*) print_cls::sc#2 ← phi( print_cls/(const byte*) print_line_cursor#0 print_cls::@1/(byte*) print_cls::sc#1 ) [50] *((byte*) print_cls::sc#2) ← (byte) ' ' [51] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [52] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [52] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [53] return @@ -123,7 +123,7 @@ sin8s_gen::@3: scope:[sin8s_gen] from sin8s_gen to:sin8s_gen::@1 sin8s_gen::@1: scope:[sin8s_gen] from sin8s_gen::@3 sin8s_gen::@4 [58] (word) sin8s_gen::i#2 ← phi( sin8s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8s_gen::@4/(word) sin8s_gen::i#1 ) - [58] (signed byte*) sin8s_gen::sintab#2 ← phi( sin8s_gen::@3/(const signed byte[192]) main::sintab2#0 sin8s_gen::@4/(signed byte*) sin8s_gen::sintab#0 ) + [58] (signed byte*) sin8s_gen::sintab#2 ← phi( sin8s_gen::@3/(const signed byte[$c0]) main::sintab2#0 sin8s_gen::@4/(signed byte*) sin8s_gen::sintab#0 ) [58] (word) sin8s_gen::x#2 ← phi( sin8s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8s_gen::@4/(word) sin8s_gen::x#1 ) [59] (word) sin8s::x#0 ← (word) sin8s_gen::x#2 [60] call sin8s @@ -195,7 +195,7 @@ sin8s::@14: scope:[sin8s] from sin8s::@13 [101] (byte) sin8s::x5#0 ← (byte) mulu8_sel::return#11 [102] (byte) sin8s::x5_128#0 ← (byte) sin8s::x5#0 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [103] (byte) sin8s::usinx#1 ← (byte) sin8s::usinx#0 + (byte) sin8s::x5_128#0 - [104] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) 128) goto sin8s::@3 + [104] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) $80) goto sin8s::@3 to:sin8s::@7 sin8s::@7: scope:[sin8s] from sin8s::@14 [105] (byte) sin8s::usinx#2 ← -- (byte) sin8s::usinx#1 @@ -278,7 +278,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 [137] (word) divr16u::rem#4 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::rem#10 ) [138] (word) divr16u::rem#0 ← (word) divr16u::rem#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [139] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 - [140] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + [140] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [141] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 to:divr16u::@4 divr16u::@4: scope:[divr16u] from divr16u::@1 @@ -298,7 +298,7 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 [149] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [149] (word) divr16u::rem#10 ← phi( divr16u::@2/(word) divr16u::rem#5 divr16u::@5/(word) divr16u::rem#2 ) [150] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 - [151] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 + [151] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 to:divr16u::@6 divr16u::@6: scope:[divr16u] from divr16u::@3 [152] (word) rem16u#1 ← (word) divr16u::rem#10 diff --git a/src/test/ref/sinusgen8.log b/src/test/ref/sinusgen8.log index 9a60bb97d..e24524d79 100644 --- a/src/test/ref/sinusgen8.log +++ b/src/test/ref/sinusgen8.log @@ -22,7 +22,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 (word~) divr16u::$0 ← (word) divr16u::rem#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 (word) divr16u::rem#0 ← (word~) divr16u::$0 (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 - (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 (bool~) divr16u::$3 ← (byte~) divr16u::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) divr16u::$4 ← ! (bool~) divr16u::$3 if((bool~) divr16u::$4) goto divr16u::@2 @@ -56,8 +56,8 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 (word) divr16u::dividend#5 ← phi( divr16u::@2/(word) divr16u::dividend#0 divr16u::@5/(word) divr16u::dividend#7 ) (word) divr16u::rem#10 ← phi( divr16u::@2/(word) divr16u::rem#5 divr16u::@5/(word) divr16u::rem#2 ) (byte) divr16u::i#2 ← phi( divr16u::@2/(byte) divr16u::i#3 divr16u::@5/(byte) divr16u::i#4 ) - (byte) divr16u::i#1 ← (byte) divr16u::i#2 + rangenext(0,15) - (bool~) divr16u::$11 ← (byte) divr16u::i#1 != rangelast(0,15) + (byte) divr16u::i#1 ← (byte) divr16u::i#2 + rangenext(0,$f) + (bool~) divr16u::$11 ← (byte) divr16u::i#1 != rangelast(0,$f) if((bool~) divr16u::$11) goto divr16u::@1 to:divr16u::@6 divr16u::@5: scope:[divr16u] from divr16u::@2 @@ -164,12 +164,12 @@ mul8u::@return: scope:[mul8u] from mul8u::@3 to:@return @13: scope:[] from @6 (word) rem16u#29 ← phi( @6/(word) rem16u#32 ) - (dword) PI2_u4f28#0 ← (dword/signed dword) 1686629713 - (dword) PI_u4f28#0 ← (dword/signed dword) 843314857 - (dword) PI_HALF_u4f28#0 ← (dword/signed dword) 421657428 - (word) PI2_u4f12#0 ← (word/signed word/dword/signed dword) 25736 - (word) PI_u4f12#0 ← (word/signed word/dword/signed dword) 12868 - (word) PI_HALF_u4f12#0 ← (word/signed word/dword/signed dword) 6434 + (dword) PI2_u4f28#0 ← (dword/signed dword) $6487ed51 + (dword) PI_u4f28#0 ← (dword/signed dword) $3243f6a9 + (dword) PI_HALF_u4f28#0 ← (dword/signed dword) $1921fb54 + (word) PI2_u4f12#0 ← (word/signed word/dword/signed dword) $6488 + (word) PI_u4f12#0 ← (word/signed word/dword/signed dword) $3244 + (word) PI_HALF_u4f12#0 ← (word/signed word/dword/signed dword) $1922 to:@20 sin8s_gen: scope:[sin8s_gen] from main (signed byte*) sin8s_gen::sintab#5 ← phi( main/(signed byte*) sin8s_gen::sintab#1 ) @@ -274,7 +274,7 @@ sin8s::@11: scope:[sin8s] from sin8s::@10 (byte) mulu8_sel::return#8 ← phi( sin8s::@10/(byte) mulu8_sel::return#1 ) (byte~) sin8s::$9 ← (byte) mulu8_sel::return#8 (byte) sin8s::x3#0 ← (byte~) sin8s::$9 - (byte) sin8s::DIV_6#0 ← (byte/signed byte/word/signed word/dword/signed dword) 43 + (byte) sin8s::DIV_6#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2b (byte) mulu8_sel::v1#2 ← (byte) sin8s::x3#0 (byte) mulu8_sel::v2#2 ← (byte) sin8s::DIV_6#0 (byte) mulu8_sel::select#2 ← (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -319,7 +319,7 @@ sin8s::@14: scope:[sin8s] from sin8s::@13 (byte) sin8s::x5_128#0 ← (byte~) sin8s::$14 (byte~) sin8s::$15 ← (byte) sin8s::usinx#3 + (byte) sin8s::x5_128#0 (byte) sin8s::usinx#1 ← (byte~) sin8s::$15 - (bool~) sin8s::$16 ← (byte) sin8s::usinx#1 >= (byte/word/signed word/dword/signed dword) 128 + (bool~) sin8s::$16 ← (byte) sin8s::usinx#1 >= (byte/word/signed word/dword/signed dword) $80 (bool~) sin8s::$17 ← ! (bool~) sin8s::$16 if((bool~) sin8s::$17) goto sin8s::@3 to:sin8s::@7 @@ -382,7 +382,7 @@ mulu8_sel::@return: scope:[mulu8_sel] from mulu8_sel::@2 to:@return @20: scope:[] from @13 (word) rem16u#27 ← phi( @13/(word) rem16u#29 ) - (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 to:@32 @@ -472,7 +472,7 @@ print_byte::@1: scope:[print_byte] from print_byte (byte) print_byte::b#2 ← phi( print_byte/(byte) print_byte::b#1 ) (byte*) print_char_cursor#26 ← phi( print_byte/(byte*) print_char_cursor#11 ) (byte*) print_char_cursor#7 ← (byte*) print_char_cursor#26 - (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte) print_char::ch#3 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$2) call print_char to:print_byte::@2 @@ -505,7 +505,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 (byte*) print_cls::sc#2 ← phi( print_cls/(byte*) print_cls::sc#0 print_cls::@1/(byte*) print_cls::sc#1 ) *((byte*) print_cls::sc#2) ← (byte) ' ' (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) 1000 + (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) $3e8 (bool~) print_cls::$1 ← (byte*) print_cls::sc#1 != (byte*~) print_cls::$0 if((bool~) print_cls::$1) goto print_cls::@1 to:print_cls::@2 @@ -526,10 +526,10 @@ main: scope:[main] from @40 (byte*) print_line_cursor#13 ← phi( @40/(byte*) print_line_cursor#12 ) (byte*) print_screen#5 ← phi( @40/(byte*) print_screen#6 ) (word) rem16u#21 ← phi( @40/(word) rem16u#23 ) - (word) main::wavelength#0 ← (byte/word/signed word/dword/signed dword) 192 - (signed byte[192]) main::sintab2#0 ← { fill( 192, 0) } - (byte[]) main::sintabref#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (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) 12, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 21, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 29, (byte/signed byte/word/signed word/dword/signed dword) 33, (byte/signed byte/word/signed word/dword/signed dword) 37, (byte/signed byte/word/signed word/dword/signed dword) 41, (byte/signed byte/word/signed word/dword/signed dword) 45, (byte/signed byte/word/signed word/dword/signed dword) 49, (byte/signed byte/word/signed word/dword/signed dword) 53, (byte/signed byte/word/signed word/dword/signed dword) 56, (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/signed byte/word/signed word/dword/signed dword) 67, (byte/signed byte/word/signed word/dword/signed dword) 71, (byte/signed byte/word/signed word/dword/signed dword) 74, (byte/signed byte/word/signed word/dword/signed dword) 78, (byte/signed byte/word/signed word/dword/signed dword) 81, (byte/signed byte/word/signed word/dword/signed dword) 84, (byte/signed byte/word/signed word/dword/signed dword) 87, (byte/signed byte/word/signed word/dword/signed dword) 90, (byte/signed byte/word/signed word/dword/signed dword) 93, (byte/signed byte/word/signed word/dword/signed dword) 96, (byte/signed byte/word/signed word/dword/signed dword) 99, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 104, (byte/signed byte/word/signed word/dword/signed dword) 106, (byte/signed byte/word/signed word/dword/signed dword) 108, (byte/signed byte/word/signed word/dword/signed dword) 110, (byte/signed byte/word/signed word/dword/signed dword) 112, (byte/signed byte/word/signed word/dword/signed dword) 114, (byte/signed byte/word/signed word/dword/signed dword) 116, (byte/signed byte/word/signed word/dword/signed dword) 118, (byte/signed byte/word/signed word/dword/signed dword) 119, (byte/signed byte/word/signed word/dword/signed dword) 121, (byte/signed byte/word/signed word/dword/signed dword) 122, (byte/signed byte/word/signed word/dword/signed dword) 123, (byte/signed byte/word/signed word/dword/signed dword) 124, (byte/signed byte/word/signed word/dword/signed dword) 125, (byte/signed byte/word/signed word/dword/signed dword) 126, (byte/signed byte/word/signed word/dword/signed dword) 126, (byte/signed byte/word/signed word/dword/signed dword) 127, (byte/signed byte/word/signed word/dword/signed dword) 127, (byte/signed byte/word/signed word/dword/signed dword) 127, (byte/word/signed word/dword/signed dword) 128, (byte/signed byte/word/signed word/dword/signed dword) 127, (byte/signed byte/word/signed word/dword/signed dword) 127, (byte/signed byte/word/signed word/dword/signed dword) 127, (byte/signed byte/word/signed word/dword/signed dword) 126, (byte/signed byte/word/signed word/dword/signed dword) 126, (byte/signed byte/word/signed word/dword/signed dword) 125, (byte/signed byte/word/signed word/dword/signed dword) 124, (byte/signed byte/word/signed word/dword/signed dword) 123, (byte/signed byte/word/signed word/dword/signed dword) 122, (byte/signed byte/word/signed word/dword/signed dword) 121, (byte/signed byte/word/signed word/dword/signed dword) 119, (byte/signed byte/word/signed word/dword/signed dword) 118, (byte/signed byte/word/signed word/dword/signed dword) 116, (byte/signed byte/word/signed word/dword/signed dword) 114, (byte/signed byte/word/signed word/dword/signed dword) 112, (byte/signed byte/word/signed word/dword/signed dword) 110, (byte/signed byte/word/signed word/dword/signed dword) 108, (byte/signed byte/word/signed word/dword/signed dword) 106, (byte/signed byte/word/signed word/dword/signed dword) 104, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 99, (byte/signed byte/word/signed word/dword/signed dword) 96, (byte/signed byte/word/signed word/dword/signed dword) 93, (byte/signed byte/word/signed word/dword/signed dword) 90, (byte/signed byte/word/signed word/dword/signed dword) 87, (byte/signed byte/word/signed word/dword/signed dword) 84, (byte/signed byte/word/signed word/dword/signed dword) 81, (byte/signed byte/word/signed word/dword/signed dword) 78, (byte/signed byte/word/signed word/dword/signed dword) 74, (byte/signed byte/word/signed word/dword/signed dword) 71, (byte/signed byte/word/signed word/dword/signed dword) 67, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 56, (byte/signed byte/word/signed word/dword/signed dword) 53, (byte/signed byte/word/signed word/dword/signed dword) 49, (byte/signed byte/word/signed word/dword/signed dword) 45, (byte/signed byte/word/signed word/dword/signed dword) 41, (byte/signed byte/word/signed word/dword/signed dword) 37, (byte/signed byte/word/signed word/dword/signed dword) 33, (byte/signed byte/word/signed word/dword/signed dword) 29, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 21, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 252, (byte/word/signed word/dword/signed dword) 248, (byte/word/signed word/dword/signed dword) 244, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 235, (byte/word/signed word/dword/signed dword) 231, (byte/word/signed word/dword/signed dword) 227, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 219, (byte/word/signed word/dword/signed dword) 215, (byte/word/signed word/dword/signed dword) 211, (byte/word/signed word/dword/signed dword) 207, (byte/word/signed word/dword/signed dword) 203, (byte/word/signed word/dword/signed dword) 200, (byte/word/signed word/dword/signed dword) 196, (byte/word/signed word/dword/signed dword) 192, (byte/word/signed word/dword/signed dword) 189, (byte/word/signed word/dword/signed dword) 185, (byte/word/signed word/dword/signed dword) 182, (byte/word/signed word/dword/signed dword) 178, (byte/word/signed word/dword/signed dword) 175, (byte/word/signed word/dword/signed dword) 172, (byte/word/signed word/dword/signed dword) 169, (byte/word/signed word/dword/signed dword) 166, (byte/word/signed word/dword/signed dword) 163, (byte/word/signed word/dword/signed dword) 160, (byte/word/signed word/dword/signed dword) 157, (byte/word/signed word/dword/signed dword) 155, (byte/word/signed word/dword/signed dword) 152, (byte/word/signed word/dword/signed dword) 150, (byte/word/signed word/dword/signed dword) 148, (byte/word/signed word/dword/signed dword) 146, (byte/word/signed word/dword/signed dword) 144, (byte/word/signed word/dword/signed dword) 142, (byte/word/signed word/dword/signed dword) 140, (byte/word/signed word/dword/signed dword) 138, (byte/word/signed word/dword/signed dword) 137, (byte/word/signed word/dword/signed dword) 135, (byte/word/signed word/dword/signed dword) 134, (byte/word/signed word/dword/signed dword) 133, (byte/word/signed word/dword/signed dword) 132, (byte/word/signed word/dword/signed dword) 131, (byte/word/signed word/dword/signed dword) 130, (byte/word/signed word/dword/signed dword) 130, (byte/word/signed word/dword/signed dword) 129, (byte/word/signed word/dword/signed dword) 129, (byte/word/signed word/dword/signed dword) 129, (byte/word/signed word/dword/signed dword) 129, (byte/word/signed word/dword/signed dword) 129, (byte/word/signed word/dword/signed dword) 129, (byte/word/signed word/dword/signed dword) 129, (byte/word/signed word/dword/signed dword) 130, (byte/word/signed word/dword/signed dword) 130, (byte/word/signed word/dword/signed dword) 131, (byte/word/signed word/dword/signed dword) 132, (byte/word/signed word/dword/signed dword) 133, (byte/word/signed word/dword/signed dword) 134, (byte/word/signed word/dword/signed dword) 135, (byte/word/signed word/dword/signed dword) 137, (byte/word/signed word/dword/signed dword) 138, (byte/word/signed word/dword/signed dword) 140, (byte/word/signed word/dword/signed dword) 142, (byte/word/signed word/dword/signed dword) 144, (byte/word/signed word/dword/signed dword) 146, (byte/word/signed word/dword/signed dword) 148, (byte/word/signed word/dword/signed dword) 150, (byte/word/signed word/dword/signed dword) 152, (byte/word/signed word/dword/signed dword) 155, (byte/word/signed word/dword/signed dword) 157, (byte/word/signed word/dword/signed dword) 160, (byte/word/signed word/dword/signed dword) 163, (byte/word/signed word/dword/signed dword) 166, (byte/word/signed word/dword/signed dword) 169, (byte/word/signed word/dword/signed dword) 172, (byte/word/signed word/dword/signed dword) 175, (byte/word/signed word/dword/signed dword) 178, (byte/word/signed word/dword/signed dword) 182, (byte/word/signed word/dword/signed dword) 185, (byte/word/signed word/dword/signed dword) 189, (byte/word/signed word/dword/signed dword) 192, (byte/word/signed word/dword/signed dword) 196, (byte/word/signed word/dword/signed dword) 200, (byte/word/signed word/dword/signed dword) 203, (byte/word/signed word/dword/signed dword) 207, (byte/word/signed word/dword/signed dword) 211, (byte/word/signed word/dword/signed dword) 215, (byte/word/signed word/dword/signed dword) 219, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 227, (byte/word/signed word/dword/signed dword) 231, (byte/word/signed word/dword/signed dword) 235, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 244, (byte/word/signed word/dword/signed dword) 248, (byte/word/signed word/dword/signed dword) 252 } - (signed byte*) sin8s_gen::sintab#1 ← (signed byte[192]) main::sintab2#0 + (word) main::wavelength#0 ← (byte/word/signed word/dword/signed dword) $c0 + (signed byte[$c0]) main::sintab2#0 ← { fill( $c0, 0) } + (byte[]) main::sintabref#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (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) $c, (byte/signed byte/word/signed word/dword/signed dword) $11, (byte/signed byte/word/signed word/dword/signed dword) $15, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $1d, (byte/signed byte/word/signed word/dword/signed dword) $21, (byte/signed byte/word/signed word/dword/signed dword) $25, (byte/signed byte/word/signed word/dword/signed dword) $29, (byte/signed byte/word/signed word/dword/signed dword) $2d, (byte/signed byte/word/signed word/dword/signed dword) $31, (byte/signed byte/word/signed word/dword/signed dword) $35, (byte/signed byte/word/signed word/dword/signed dword) $38, (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/signed byte/word/signed word/dword/signed dword) $43, (byte/signed byte/word/signed word/dword/signed dword) $47, (byte/signed byte/word/signed word/dword/signed dword) $4a, (byte/signed byte/word/signed word/dword/signed dword) $4e, (byte/signed byte/word/signed word/dword/signed dword) $51, (byte/signed byte/word/signed word/dword/signed dword) $54, (byte/signed byte/word/signed word/dword/signed dword) $57, (byte/signed byte/word/signed word/dword/signed dword) $5a, (byte/signed byte/word/signed word/dword/signed dword) $5d, (byte/signed byte/word/signed word/dword/signed dword) $60, (byte/signed byte/word/signed word/dword/signed dword) $63, (byte/signed byte/word/signed word/dword/signed dword) $65, (byte/signed byte/word/signed word/dword/signed dword) $68, (byte/signed byte/word/signed word/dword/signed dword) $6a, (byte/signed byte/word/signed word/dword/signed dword) $6c, (byte/signed byte/word/signed word/dword/signed dword) $6e, (byte/signed byte/word/signed word/dword/signed dword) $70, (byte/signed byte/word/signed word/dword/signed dword) $72, (byte/signed byte/word/signed word/dword/signed dword) $74, (byte/signed byte/word/signed word/dword/signed dword) $76, (byte/signed byte/word/signed word/dword/signed dword) $77, (byte/signed byte/word/signed word/dword/signed dword) $79, (byte/signed byte/word/signed word/dword/signed dword) $7a, (byte/signed byte/word/signed word/dword/signed dword) $7b, (byte/signed byte/word/signed word/dword/signed dword) $7c, (byte/signed byte/word/signed word/dword/signed dword) $7d, (byte/signed byte/word/signed word/dword/signed dword) $7e, (byte/signed byte/word/signed word/dword/signed dword) $7e, (byte/signed byte/word/signed word/dword/signed dword) $7f, (byte/signed byte/word/signed word/dword/signed dword) $7f, (byte/signed byte/word/signed word/dword/signed dword) $7f, (byte/word/signed word/dword/signed dword) $80, (byte/signed byte/word/signed word/dword/signed dword) $7f, (byte/signed byte/word/signed word/dword/signed dword) $7f, (byte/signed byte/word/signed word/dword/signed dword) $7f, (byte/signed byte/word/signed word/dword/signed dword) $7e, (byte/signed byte/word/signed word/dword/signed dword) $7e, (byte/signed byte/word/signed word/dword/signed dword) $7d, (byte/signed byte/word/signed word/dword/signed dword) $7c, (byte/signed byte/word/signed word/dword/signed dword) $7b, (byte/signed byte/word/signed word/dword/signed dword) $7a, (byte/signed byte/word/signed word/dword/signed dword) $79, (byte/signed byte/word/signed word/dword/signed dword) $77, (byte/signed byte/word/signed word/dword/signed dword) $76, (byte/signed byte/word/signed word/dword/signed dword) $74, (byte/signed byte/word/signed word/dword/signed dword) $72, (byte/signed byte/word/signed word/dword/signed dword) $70, (byte/signed byte/word/signed word/dword/signed dword) $6e, (byte/signed byte/word/signed word/dword/signed dword) $6c, (byte/signed byte/word/signed word/dword/signed dword) $6a, (byte/signed byte/word/signed word/dword/signed dword) $68, (byte/signed byte/word/signed word/dword/signed dword) $65, (byte/signed byte/word/signed word/dword/signed dword) $63, (byte/signed byte/word/signed word/dword/signed dword) $60, (byte/signed byte/word/signed word/dword/signed dword) $5d, (byte/signed byte/word/signed word/dword/signed dword) $5a, (byte/signed byte/word/signed word/dword/signed dword) $57, (byte/signed byte/word/signed word/dword/signed dword) $54, (byte/signed byte/word/signed word/dword/signed dword) $51, (byte/signed byte/word/signed word/dword/signed dword) $4e, (byte/signed byte/word/signed word/dword/signed dword) $4a, (byte/signed byte/word/signed word/dword/signed dword) $47, (byte/signed byte/word/signed word/dword/signed dword) $43, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $38, (byte/signed byte/word/signed word/dword/signed dword) $35, (byte/signed byte/word/signed word/dword/signed dword) $31, (byte/signed byte/word/signed word/dword/signed dword) $2d, (byte/signed byte/word/signed word/dword/signed dword) $29, (byte/signed byte/word/signed word/dword/signed dword) $25, (byte/signed byte/word/signed word/dword/signed dword) $21, (byte/signed byte/word/signed word/dword/signed dword) $1d, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $15, (byte/signed byte/word/signed word/dword/signed dword) $11, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $fc, (byte/word/signed word/dword/signed dword) $f8, (byte/word/signed word/dword/signed dword) $f4, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $eb, (byte/word/signed word/dword/signed dword) $e7, (byte/word/signed word/dword/signed dword) $e3, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $db, (byte/word/signed word/dword/signed dword) $d7, (byte/word/signed word/dword/signed dword) $d3, (byte/word/signed word/dword/signed dword) $cf, (byte/word/signed word/dword/signed dword) $cb, (byte/word/signed word/dword/signed dword) $c8, (byte/word/signed word/dword/signed dword) $c4, (byte/word/signed word/dword/signed dword) $c0, (byte/word/signed word/dword/signed dword) $bd, (byte/word/signed word/dword/signed dword) $b9, (byte/word/signed word/dword/signed dword) $b6, (byte/word/signed word/dword/signed dword) $b2, (byte/word/signed word/dword/signed dword) $af, (byte/word/signed word/dword/signed dword) $ac, (byte/word/signed word/dword/signed dword) $a9, (byte/word/signed word/dword/signed dword) $a6, (byte/word/signed word/dword/signed dword) $a3, (byte/word/signed word/dword/signed dword) $a0, (byte/word/signed word/dword/signed dword) $9d, (byte/word/signed word/dword/signed dword) $9b, (byte/word/signed word/dword/signed dword) $98, (byte/word/signed word/dword/signed dword) $96, (byte/word/signed word/dword/signed dword) $94, (byte/word/signed word/dword/signed dword) $92, (byte/word/signed word/dword/signed dword) $90, (byte/word/signed word/dword/signed dword) $8e, (byte/word/signed word/dword/signed dword) $8c, (byte/word/signed word/dword/signed dword) $8a, (byte/word/signed word/dword/signed dword) $89, (byte/word/signed word/dword/signed dword) $87, (byte/word/signed word/dword/signed dword) $86, (byte/word/signed word/dword/signed dword) $85, (byte/word/signed word/dword/signed dword) $84, (byte/word/signed word/dword/signed dword) $83, (byte/word/signed word/dword/signed dword) $82, (byte/word/signed word/dword/signed dword) $82, (byte/word/signed word/dword/signed dword) $81, (byte/word/signed word/dword/signed dword) $81, (byte/word/signed word/dword/signed dword) $81, (byte/word/signed word/dword/signed dword) $81, (byte/word/signed word/dword/signed dword) $81, (byte/word/signed word/dword/signed dword) $81, (byte/word/signed word/dword/signed dword) $81, (byte/word/signed word/dword/signed dword) $82, (byte/word/signed word/dword/signed dword) $82, (byte/word/signed word/dword/signed dword) $83, (byte/word/signed word/dword/signed dword) $84, (byte/word/signed word/dword/signed dword) $85, (byte/word/signed word/dword/signed dword) $86, (byte/word/signed word/dword/signed dword) $87, (byte/word/signed word/dword/signed dword) $89, (byte/word/signed word/dword/signed dword) $8a, (byte/word/signed word/dword/signed dword) $8c, (byte/word/signed word/dword/signed dword) $8e, (byte/word/signed word/dword/signed dword) $90, (byte/word/signed word/dword/signed dword) $92, (byte/word/signed word/dword/signed dword) $94, (byte/word/signed word/dword/signed dword) $96, (byte/word/signed word/dword/signed dword) $98, (byte/word/signed word/dword/signed dword) $9b, (byte/word/signed word/dword/signed dword) $9d, (byte/word/signed word/dword/signed dword) $a0, (byte/word/signed word/dword/signed dword) $a3, (byte/word/signed word/dword/signed dword) $a6, (byte/word/signed word/dword/signed dword) $a9, (byte/word/signed word/dword/signed dword) $ac, (byte/word/signed word/dword/signed dword) $af, (byte/word/signed word/dword/signed dword) $b2, (byte/word/signed word/dword/signed dword) $b6, (byte/word/signed word/dword/signed dword) $b9, (byte/word/signed word/dword/signed dword) $bd, (byte/word/signed word/dword/signed dword) $c0, (byte/word/signed word/dword/signed dword) $c4, (byte/word/signed word/dword/signed dword) $c8, (byte/word/signed word/dword/signed dword) $cb, (byte/word/signed word/dword/signed dword) $cf, (byte/word/signed word/dword/signed dword) $d3, (byte/word/signed word/dword/signed dword) $d7, (byte/word/signed word/dword/signed dword) $db, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $e3, (byte/word/signed word/dword/signed dword) $e7, (byte/word/signed word/dword/signed dword) $eb, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $f4, (byte/word/signed word/dword/signed dword) $f8, (byte/word/signed word/dword/signed dword) $fc } + (signed byte*) sin8s_gen::sintab#1 ← (signed byte[$c0]) main::sintab2#0 (word) sin8s_gen::wavelength#0 ← (word) main::wavelength#0 call sin8s_gen to:main::@5 @@ -555,7 +555,7 @@ main::@1: scope:[main] from main::@6 main::@8 (byte*) print_char_cursor#50 ← phi( main::@6/(byte*) print_char_cursor#14 main::@8/(byte*) print_char_cursor#16 ) (byte) main::i#2 ← phi( main::@6/(byte) main::i#0 main::@8/(byte) main::i#1 ) (signed byte~) main::$2 ← ((signed byte)) *((byte[]) main::sintabref#0 + (byte) main::i#2) - (signed byte~) main::$3 ← *((signed byte[192]) main::sintab2#0 + (byte) main::i#2) - (signed byte~) main::$2 + (signed byte~) main::$3 ← *((signed byte[$c0]) main::sintab2#0 + (byte) main::i#2) - (signed byte~) main::$2 (signed byte) main::sb#0 ← (signed byte~) main::$3 (bool~) main::$4 ← (signed byte) main::sb#0 >= (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) main::$5 ← ! (bool~) main::$4 @@ -585,8 +585,8 @@ main::@8: scope:[main] from main::@7 (byte) main::i#3 ← phi( main::@7/(byte) main::i#4 ) (byte*) print_char_cursor#34 ← phi( main::@7/(byte*) print_char_cursor#2 ) (byte*) print_char_cursor#16 ← (byte*) print_char_cursor#34 - (byte) main::i#1 ← (byte) main::i#3 + rangenext(0,191) - (bool~) main::$9 ← (byte) main::i#1 != rangelast(0,191) + (byte) main::i#1 ← (byte) main::i#3 + rangenext(0,$bf) + (bool~) main::$9 ← (byte) main::i#1 != rangelast(0,$bf) if((bool~) main::$9) goto main::@1 to:main::@return main::@3: scope:[main] from main::@1 @@ -774,8 +774,8 @@ SYMBOL TABLE SSA (signed byte) main::sb#1 (signed byte) main::sb#2 (signed byte) main::sb#3 -(signed byte[192]) main::sintab2 -(signed byte[192]) main::sintab2#0 +(signed byte[$c0]) main::sintab2 +(signed byte[$c0]) main::sintab2#0 (byte[]) main::sintabref (byte[]) main::sintabref#0 (const string) main::str = (string) " @" @@ -1200,7 +1200,7 @@ Inversing boolean not [19] (bool~) divr16u::$9 ← (word) divr16u::rem#5 < (word Inversing boolean not [66] (bool~) mul8u::$3 ← (byte~) mul8u::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [65] (bool~) mul8u::$2 ← (byte~) mul8u::$1 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not [118] (bool~) sin8s::$1 ← (word) sin8s::x#3 < (word) PI_u4f12#0 from [117] (bool~) sin8s::$0 ← (word) sin8s::x#3 >= (word) PI_u4f12#0 Inversing boolean not [122] (bool~) sin8s::$4 ← (word) sin8s::x#4 < (word) PI_HALF_u4f12#0 from [121] (bool~) sin8s::$3 ← (word) sin8s::x#4 >= (word) PI_HALF_u4f12#0 -Inversing boolean not [180] (bool~) sin8s::$17 ← (byte) sin8s::usinx#1 < (byte/word/signed word/dword/signed dword) 128 from [179] (bool~) sin8s::$16 ← (byte) sin8s::usinx#1 >= (byte/word/signed word/dword/signed dword) 128 +Inversing boolean not [180] (bool~) sin8s::$17 ← (byte) sin8s::usinx#1 < (byte/word/signed word/dword/signed dword) $80 from [179] (bool~) sin8s::$16 ← (byte) sin8s::usinx#1 >= (byte/word/signed word/dword/signed dword) $80 Inversing boolean not [189] (bool~) sin8s::$20 ← (byte) sin8s::isUpper#2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [188] (bool~) sin8s::$19 ← (byte) sin8s::isUpper#2 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not [310] (bool~) main::$5 ← (signed byte) main::sb#0 < (byte/signed byte/word/signed word/dword/signed dword) 0 from [309] (bool~) main::$4 ← (signed byte) main::sb#0 >= (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2UnaryNotSimplification @@ -1375,19 +1375,19 @@ Redundant Phi (byte*) print_char_cursor#41 (byte*) print_char_cursor#10 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) divr16u::$4 [12] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 Simple Condition (bool~) divr16u::$9 [20] if((word) divr16u::rem#5<(word) divr16u::divisor#0) goto divr16u::@3 -Simple Condition (bool~) divr16u::$11 [27] if((byte) divr16u::i#1!=rangelast(0,15)) goto divr16u::@1 +Simple Condition (bool~) divr16u::$11 [27] if((byte) divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1 Simple Condition (bool~) mul8u::$0 [62] if((byte) mul8u::a#2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u::@2 Simple Condition (bool~) mul8u::$3 [67] if((byte~) mul8u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u::@4 Simple Condition (bool~) sin8s_gen::$3 [111] if((word) sin8s_gen::i#1<(word) sin8s_gen::wavelength#0) goto sin8s_gen::@1 Simple Condition (bool~) sin8s::$1 [119] if((word) sin8s::x#0<(word) PI_u4f12#0) goto sin8s::@1 Simple Condition (bool~) sin8s::$4 [123] if((word) sin8s::x#4<(word) PI_HALF_u4f12#0) goto sin8s::@2 -Simple Condition (bool~) sin8s::$17 [181] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) 128) goto sin8s::@3 +Simple Condition (bool~) sin8s::$17 [181] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) $80) goto sin8s::@3 Simple Condition (bool~) sin8s::$20 [190] if((byte) sin8s::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin8s::@4 Simple Condition (bool~) print_str::$0 [222] if(*((byte*) print_str::str#3)!=(byte) '@') goto print_str::@2 Simple Condition (bool~) print_sbyte::$0 [232] if((signed byte) print_sbyte::b#1<(byte/signed byte/word/signed word/dword/signed dword) 0) goto print_sbyte::@1 Simple Condition (bool~) print_cls::$1 [283] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 Simple Condition (bool~) main::$5 [311] if((signed byte) main::sb#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 -Simple Condition (bool~) main::$9 [323] if((byte) main::i#1!=rangelast(0,191)) goto main::@1 +Simple Condition (bool~) main::$9 [323] if((byte) main::i#1!=rangelast(0,$bf)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte) rem8u#0 = 0 Constant (const word) rem16u#0 = 0 @@ -1397,29 +1397,29 @@ Constant (const word) divr16u::rem#3 = 0 Constant (const signed byte) rem8s#0 = 0 Constant (const signed word) rem16s#0 = 0 Constant (const word) mul8u::res#0 = 0 -Constant (const dword) PI2_u4f28#0 = 1686629713 -Constant (const dword) PI_u4f28#0 = 843314857 -Constant (const dword) PI_HALF_u4f28#0 = 421657428 -Constant (const word) PI2_u4f12#0 = 25736 -Constant (const word) PI_u4f12#0 = 12868 -Constant (const word) PI_HALF_u4f12#0 = 6434 +Constant (const dword) PI2_u4f28#0 = $6487ed51 +Constant (const dword) PI_u4f28#0 = $3243f6a9 +Constant (const dword) PI_HALF_u4f28#0 = $1921fb54 +Constant (const word) PI2_u4f12#0 = $6488 +Constant (const word) PI_u4f12#0 = $3244 +Constant (const word) PI_HALF_u4f12#0 = $1922 Constant (const word) sin8s_gen::x#0 = 0 Constant (const word) sin8s_gen::i#0 = 0 Constant (const byte) sin8s::isUpper#0 = 0 Constant (const byte) sin8s::isUpper#1 = 1 Constant (const byte) mulu8_sel::select#0 = 0 Constant (const byte) mulu8_sel::select#1 = 1 -Constant (const byte) sin8s::DIV_6#0 = 43 +Constant (const byte) sin8s::DIV_6#0 = $2b Constant (const byte) mulu8_sel::select#2 = 1 Constant (const byte) mulu8_sel::select#3 = 0 Constant (const byte) mulu8_sel::select#4 = 0 -Constant (const byte*) print_line_cursor#0 = ((byte*))1024 +Constant (const byte*) print_line_cursor#0 = ((byte*))$400 Constant (const byte) print_char::ch#0 = '-' Constant (const byte) print_char::ch#1 = ' ' Constant (const byte[]) print_hextab#0 = $0 -Constant (const word) main::wavelength#0 = 192 -Constant (const signed byte[192]) main::sintab2#0 = { fill( 192, 0) } -Constant (const byte[]) main::sintabref#0 = { 0, 4, 8, 12, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 56, 60, 64, 67, 71, 74, 78, 81, 84, 87, 90, 93, 96, 99, 101, 104, 106, 108, 110, 112, 114, 116, 118, 119, 121, 122, 123, 124, 125, 126, 126, 127, 127, 127, 128, 127, 127, 127, 126, 126, 125, 124, 123, 122, 121, 119, 118, 116, 114, 112, 110, 108, 106, 104, 101, 99, 96, 93, 90, 87, 84, 81, 78, 74, 71, 67, 64, 60, 56, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 12, 8, 4, 0, 252, 248, 244, 239, 235, 231, 227, 223, 219, 215, 211, 207, 203, 200, 196, 192, 189, 185, 182, 178, 175, 172, 169, 166, 163, 160, 157, 155, 152, 150, 148, 146, 144, 142, 140, 138, 137, 135, 134, 133, 132, 131, 130, 130, 129, 129, 129, 129, 129, 129, 129, 130, 130, 131, 132, 133, 134, 135, 137, 138, 140, 142, 144, 146, 148, 150, 152, 155, 157, 160, 163, 166, 169, 172, 175, 178, 182, 185, 189, 192, 196, 200, 203, 207, 211, 215, 219, 223, 227, 231, 235, 239, 244, 248, 252 } +Constant (const word) main::wavelength#0 = $c0 +Constant (const signed byte[$c0]) main::sintab2#0 = { fill( $c0, 0) } +Constant (const byte[]) main::sintabref#0 = { 0, 4, 8, $c, $11, $15, $19, $1d, $21, $25, $29, $2d, $31, $35, $38, $3c, $40, $43, $47, $4a, $4e, $51, $54, $57, $5a, $5d, $60, $63, $65, $68, $6a, $6c, $6e, $70, $72, $74, $76, $77, $79, $7a, $7b, $7c, $7d, $7e, $7e, $7f, $7f, $7f, $80, $7f, $7f, $7f, $7e, $7e, $7d, $7c, $7b, $7a, $79, $77, $76, $74, $72, $70, $6e, $6c, $6a, $68, $65, $63, $60, $5d, $5a, $57, $54, $51, $4e, $4a, $47, $43, $40, $3c, $38, $35, $31, $2d, $29, $25, $21, $1d, $19, $15, $11, $c, 8, 4, 0, $fc, $f8, $f4, $ef, $eb, $e7, $e3, $df, $db, $d7, $d3, $cf, $cb, $c8, $c4, $c0, $bd, $b9, $b6, $b2, $af, $ac, $a9, $a6, $a3, $a0, $9d, $9b, $98, $96, $94, $92, $90, $8e, $8c, $8a, $89, $87, $86, $85, $84, $83, $82, $82, $81, $81, $81, $81, $81, $81, $81, $82, $82, $83, $84, $85, $86, $87, $89, $8a, $8c, $8e, $90, $92, $94, $96, $98, $9b, $9d, $a0, $a3, $a6, $a9, $ac, $af, $b2, $b6, $b9, $bd, $c0, $c4, $c8, $cb, $cf, $d3, $d7, $db, $df, $e3, $e7, $eb, $ef, $f4, $f8, $fc } Constant (const byte) main::i#0 = 0 Constant (const byte*) print_str::str#1 = main::str Constant (const byte*) print_str::str#2 = main::str1 @@ -1427,7 +1427,7 @@ Successful SSA optimization Pass2ConstantIdentification Constant (const word) div16u::dividend#0 = PI2_u4f12#0 Constant (const byte) mulu8_sel::v2#2 = sin8s::DIV_6#0 Constant (const byte*) print_cls::sc#0 = print_line_cursor#0 -Constant (const byte*) print_cls::$0 = print_line_cursor#0+1000 +Constant (const byte*) print_cls::$0 = print_line_cursor#0+$3e8 Constant (const signed byte*) sin8s_gen::sintab#1 = main::sintab2#0 Constant (const word) sin8s_gen::wavelength#0 = main::wavelength#0 Successful SSA optimization Pass2ConstantIdentification @@ -1443,9 +1443,9 @@ Eliminating Noop Cast (byte) print_byte::b#0 ← ((byte)) (signed byte) print_sb Eliminating Noop Cast (signed byte~) main::$2 ← ((signed byte)) *((const byte[]) main::sintabref#0 + (byte) main::i#2) Successful SSA optimization Pass2NopCastElimination Resolved ranged next value divr16u::i#1 ← ++ divr16u::i#2 to ++ -Resolved ranged comparison value if(divr16u::i#1!=rangelast(0,15)) goto divr16u::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ -Resolved ranged comparison value if(main::i#1!=rangelast(0,191)) goto main::@1 to (byte/word/signed word/dword/signed dword) 192 +Resolved ranged comparison value if(main::i#1!=rangelast(0,$bf)) goto main::@1 to (byte/word/signed word/dword/signed dword) $c0 Culled Empty Block (label) @2 Culled Empty Block (label) @5 Culled Empty Block (label) @6 @@ -1484,7 +1484,7 @@ Inlining constant with var siblings (const byte) print_char::ch#1 Inlining constant with var siblings (const byte*) print_cls::sc#0 Inlining constant with var siblings (const byte) main::i#0 Constant inlined divr16u::rem#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined print_cls::$0 = (const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000 +Constant inlined print_cls::$0 = (const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8 Constant inlined divr16u::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined $0 = (const byte[]) print_hextab#0 Constant inlined sin8s::isUpper#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -1506,7 +1506,7 @@ Constant inlined mulu8_sel::v2#2 = (const byte) sin8s::DIV_6#0 Constant inlined mul8u::res#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined print_char::ch#1 = (byte) ' ' Constant inlined print_char::ch#0 = (byte) '-' -Constant inlined sin8s_gen::sintab#1 = (const signed byte[192]) main::sintab2#0 +Constant inlined sin8s_gen::sintab#1 = (const signed byte[$c0]) main::sintab2#0 Constant inlined sin8s_gen::wavelength#0 = (const word) main::wavelength#0 Constant inlined print_str::str#2 = (const string) main::str1 Constant inlined print_str::str#1 = (const string) main::str @@ -1647,7 +1647,7 @@ main::@5: scope:[main] from main main::@1: scope:[main] from main::@5 main::@8 [8] (byte*) print_char_cursor#45 ← phi( main::@5/(const byte*) print_line_cursor#0 main::@8/(byte*) print_char_cursor#2 ) [8] (byte) main::i#2 ← phi( main::@5/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@8/(byte) main::i#1 ) - [9] (signed byte) main::sb#0 ← *((const signed byte[192]) main::sintab2#0 + (byte) main::i#2) - (signed byte)*((const byte[]) main::sintabref#0 + (byte) main::i#2) + [9] (signed byte) main::sb#0 ← *((const signed byte[$c0]) main::sintab2#0 + (byte) main::i#2) - (signed byte)*((const byte[]) main::sintabref#0 + (byte) main::i#2) [10] if((signed byte) main::sb#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@1 @@ -1665,7 +1665,7 @@ main::@7: scope:[main] from main::@2 to:main::@8 main::@8: scope:[main] from main::@7 [18] (byte) main::i#1 ← ++ (byte) main::i#2 - [19] if((byte) main::i#1!=(byte/word/signed word/dword/signed dword) 192) goto main::@1 + [19] if((byte) main::i#1!=(byte/word/signed word/dword/signed dword) $c0) goto main::@1 to:main::@return main::@return: scope:[main] from main::@8 [20] return @@ -1723,7 +1723,7 @@ print_byte: scope:[print_byte] from print_sbyte::@2 [43] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [44] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [44] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [45] (byte) print_char::ch#3 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [46] call print_char to:print_byte::@return @@ -1737,7 +1737,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 [49] (byte*) print_cls::sc#2 ← phi( print_cls/(const byte*) print_line_cursor#0 print_cls::@1/(byte*) print_cls::sc#1 ) [50] *((byte*) print_cls::sc#2) ← (byte) ' ' [51] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [52] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [52] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [53] return @@ -1752,7 +1752,7 @@ sin8s_gen::@3: scope:[sin8s_gen] from sin8s_gen to:sin8s_gen::@1 sin8s_gen::@1: scope:[sin8s_gen] from sin8s_gen::@3 sin8s_gen::@4 [58] (word) sin8s_gen::i#2 ← phi( sin8s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8s_gen::@4/(word) sin8s_gen::i#1 ) - [58] (signed byte*) sin8s_gen::sintab#2 ← phi( sin8s_gen::@3/(const signed byte[192]) main::sintab2#0 sin8s_gen::@4/(signed byte*) sin8s_gen::sintab#0 ) + [58] (signed byte*) sin8s_gen::sintab#2 ← phi( sin8s_gen::@3/(const signed byte[$c0]) main::sintab2#0 sin8s_gen::@4/(signed byte*) sin8s_gen::sintab#0 ) [58] (word) sin8s_gen::x#2 ← phi( sin8s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8s_gen::@4/(word) sin8s_gen::x#1 ) [59] (word) sin8s::x#0 ← (word) sin8s_gen::x#2 [60] call sin8s @@ -1824,7 +1824,7 @@ sin8s::@14: scope:[sin8s] from sin8s::@13 [101] (byte) sin8s::x5#0 ← (byte) mulu8_sel::return#11 [102] (byte) sin8s::x5_128#0 ← (byte) sin8s::x5#0 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [103] (byte) sin8s::usinx#1 ← (byte) sin8s::usinx#0 + (byte) sin8s::x5_128#0 - [104] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) 128) goto sin8s::@3 + [104] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) $80) goto sin8s::@3 to:sin8s::@7 sin8s::@7: scope:[sin8s] from sin8s::@14 [105] (byte) sin8s::usinx#2 ← -- (byte) sin8s::usinx#1 @@ -1907,7 +1907,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 [137] (word) divr16u::rem#4 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::rem#10 ) [138] (word) divr16u::rem#0 ← (word) divr16u::rem#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [139] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 - [140] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + [140] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [141] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 to:divr16u::@4 divr16u::@4: scope:[divr16u] from divr16u::@1 @@ -1927,7 +1927,7 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 [149] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [149] (word) divr16u::rem#10 ← phi( divr16u::@2/(word) divr16u::rem#5 divr16u::@5/(word) divr16u::rem#2 ) [150] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 - [151] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 + [151] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 to:divr16u::@6 divr16u::@6: scope:[divr16u] from divr16u::@3 [152] (word) rem16u#1 ← (word) divr16u::rem#10 @@ -1980,7 +1980,7 @@ VARIABLE REGISTER WEIGHTS (byte) main::i#2 3.3000000000000003 (signed byte) main::sb (signed byte) main::sb#0 6.6000000000000005 -(signed byte[192]) main::sintab2 +(signed byte[$c0]) main::sintab2 (byte[]) main::sintabref (word) main::wavelength (word()) mul8u((byte) mul8u::a , (byte) mul8u::b) @@ -2352,7 +2352,7 @@ main: { jmp b1 //SEG23 main::@1 b1: - //SEG24 [9] (signed byte) main::sb#0 ← *((const signed byte[192]) main::sintab2#0 + (byte) main::i#2) - (signed byte)*((const byte[]) main::sintabref#0 + (byte) main::i#2) -- vbsz1=pbsc1_derefidx_vbuz2_minus_pbsc2_derefidx_vbuz2 + //SEG24 [9] (signed byte) main::sb#0 ← *((const signed byte[$c0]) main::sintab2#0 + (byte) main::i#2) - (signed byte)*((const byte[]) main::sintabref#0 + (byte) main::i#2) -- vbsz1=pbsc1_derefidx_vbuz2_minus_pbsc2_derefidx_vbuz2 ldy i sec lda sintab2,y @@ -2408,7 +2408,7 @@ main: { b8: //SEG44 [18] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG45 [19] if((byte) main::i#1!=(byte/word/signed word/dword/signed dword) 192) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG45 [19] if((byte) main::i#1!=(byte/word/signed word/dword/signed dword) $c0) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$c0 bne b1_from_b8 @@ -2569,7 +2569,7 @@ print_byte: { jmp b1 //SEG94 print_byte::@1 b1: - //SEG95 [44] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG95 [44] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and print_sbyte.b sta _2 @@ -2616,7 +2616,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG111 [52] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG111 [52] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>print_line_cursor+$3e8 bne b1_from_b1 @@ -2664,7 +2664,7 @@ sin8s_gen: { sta i lda #>0 sta i+1 - //SEG122 [58] phi (signed byte*) sin8s_gen::sintab#2 = (const signed byte[192]) main::sintab2#0 [phi:sin8s_gen::@3->sin8s_gen::@1#1] -- pbsz1=pbsc1 + //SEG122 [58] phi (signed byte*) sin8s_gen::sintab#2 = (const signed byte[$c0]) main::sintab2#0 [phi:sin8s_gen::@3->sin8s_gen::@1#1] -- pbsz1=pbsc1 lda #main.sintab2 @@ -2976,7 +2976,7 @@ sin8s: { clc adc x5_128 sta usinx_1 - //SEG212 [104] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) 128) goto sin8s::@3 -- vbuz1_lt_vbuc1_then_la1 + //SEG212 [104] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) $80) goto sin8s::@3 -- vbuz1_lt_vbuc1_then_la1 lda usinx_1 cmp #$80 bcc b3_from_b14 @@ -3241,7 +3241,7 @@ divr16u: { //SEG284 [139] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 -- vbuz1=_hi_vwuz2 lda dividend+1 sta _1 - //SEG285 [140] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG285 [140] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuz1=vbuz2_band_vbuc1 lda #$80 and _1 sta _2 @@ -3304,7 +3304,7 @@ divr16u: { b3: //SEG302 [150] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG303 [151] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG303 [151] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b3 @@ -3325,7 +3325,7 @@ divr16u: { print_hextab: .text "0123456789abcdef" REGISTER UPLIFT POTENTIAL REGISTERS -Statement [9] (signed byte) main::sb#0 ← *((const signed byte[192]) main::sintab2#0 + (byte) main::i#2) - (signed byte)*((const byte[]) main::sintabref#0 + (byte) main::i#2) [ main::i#2 print_char_cursor#45 main::sb#0 ] ( main:2 [ main::i#2 print_char_cursor#45 main::sb#0 ] ) always clobbers reg byte a +Statement [9] (signed byte) main::sb#0 ← *((const signed byte[$c0]) main::sintab2#0 + (byte) main::i#2) - (signed byte)*((const byte[]) main::sintabref#0 + (byte) main::i#2) [ main::i#2 print_char_cursor#45 main::sb#0 ] ( main:2 [ main::i#2 print_char_cursor#45 main::sb#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Statement [23] if(*((byte*) print_str::str#3)!=(byte) '@') goto print_str::@2 [ print_char_cursor#2 print_str::str#3 ] ( main:2::print_str:12 [ main::i#2 main::sb#0 print_char_cursor#2 print_str::str#3 ] main:2::print_str:17 [ main::i#2 print_char_cursor#2 print_str::str#3 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ main::i#2 main::i#1 ] @@ -3337,9 +3337,9 @@ Statement [38] *((byte*) print_char_cursor#29) ← (byte) print_char::ch#4 [ pri Removing always clobbered register reg byte y as potential for zp ZP_BYTE:5 [ print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 ] Statement [41] (byte~) print_byte::$0 ← (byte)(signed byte) print_sbyte::b#4 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_char_cursor#10 print_sbyte::b#4 print_byte::$0 ] ( main:2::print_sbyte:15::print_byte:32 [ main::i#2 print_char_cursor#10 print_sbyte::b#4 print_byte::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 ] -Statement [44] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_sbyte:15::print_byte:32 [ main::i#2 print_char_cursor#10 print_byte::$2 ] ) always clobbers reg byte a +Statement [44] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_sbyte:15::print_byte:32 [ main::i#2 print_char_cursor#10 print_byte::$2 ] ) always clobbers reg byte a Statement [50] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:7 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [52] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:7 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [52] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:7 [ print_cls::sc#1 ] ) always clobbers reg byte a Statement [56] (word) div16u::return#2 ← (word) div16u::return#0 [ div16u::return#2 ] ( main:2::sin8s_gen:5 [ div16u::return#2 ] ) always clobbers reg byte a Statement [57] (word) sin8s_gen::step#0 ← (word) div16u::return#2 [ sin8s_gen::step#0 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 ] ) always clobbers reg byte a Statement [59] (word) sin8s::x#0 ← (word) sin8s_gen::x#2 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::x#0 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::x#0 ] ) always clobbers reg byte a @@ -3373,20 +3373,20 @@ Statement [133] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u: Statement [134] (word) div16u::return#0 ← (word) divr16u::return#2 [ div16u::return#0 ] ( main:2::sin8s_gen:5::div16u:55 [ div16u::return#0 ] ) always clobbers reg byte a Statement [139] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin8s_gen:5::div16u:55::divr16u:132 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:36 [ divr16u::i#2 divr16u::i#1 ] -Statement [140] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin8s_gen:5::div16u:55::divr16u:132 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a +Statement [140] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin8s_gen:5::div16u:55::divr16u:132 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a Statement [142] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin8s_gen:5::div16u:55::divr16u:132 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a Statement [146] if((word) divr16u::rem#5<(const word) main::wavelength#0) goto divr16u::@3 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] ( main:2::sin8s_gen:5::div16u:55::divr16u:132 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] ) always clobbers reg byte a Statement [148] (word) divr16u::rem#2 ← (word) divr16u::rem#5 - (const word) main::wavelength#0 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin8s_gen:5::div16u:55::divr16u:132 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a Statement [152] (word) rem16u#1 ← (word) divr16u::rem#10 [ divr16u::return#0 ] ( main:2::sin8s_gen:5::div16u:55::divr16u:132 [ divr16u::return#0 ] ) always clobbers reg byte a -Statement [9] (signed byte) main::sb#0 ← *((const signed byte[192]) main::sintab2#0 + (byte) main::i#2) - (signed byte)*((const byte[]) main::sintabref#0 + (byte) main::i#2) [ main::i#2 print_char_cursor#45 main::sb#0 ] ( main:2 [ main::i#2 print_char_cursor#45 main::sb#0 ] ) always clobbers reg byte a +Statement [9] (signed byte) main::sb#0 ← *((const signed byte[$c0]) main::sintab2#0 + (byte) main::i#2) - (signed byte)*((const byte[]) main::sintabref#0 + (byte) main::i#2) [ main::i#2 print_char_cursor#45 main::sb#0 ] ( main:2 [ main::i#2 print_char_cursor#45 main::sb#0 ] ) always clobbers reg byte a Statement [23] if(*((byte*) print_str::str#3)!=(byte) '@') goto print_str::@2 [ print_char_cursor#2 print_str::str#3 ] ( main:2::print_str:12 [ main::i#2 main::sb#0 print_char_cursor#2 print_str::str#3 ] main:2::print_str:17 [ main::i#2 print_char_cursor#2 print_str::str#3 ] ) always clobbers reg byte a reg byte y Statement [25] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#3) [ print_char_cursor#2 print_str::str#3 ] ( main:2::print_str:12 [ main::i#2 main::sb#0 print_char_cursor#2 print_str::str#3 ] main:2::print_str:17 [ main::i#2 print_char_cursor#2 print_str::str#3 ] ) always clobbers reg byte a reg byte y Statement [36] (signed byte) print_sbyte::b#0 ← - (signed byte) print_sbyte::b#1 [ print_char_cursor#10 print_sbyte::b#0 ] ( main:2::print_sbyte:15 [ main::i#2 print_char_cursor#10 print_sbyte::b#0 ] ) always clobbers reg byte a Statement [38] *((byte*) print_char_cursor#29) ← (byte) print_char::ch#4 [ print_char_cursor#29 ] ( main:2::print_sbyte:15::print_char:30 [ main::i#2 print_sbyte::b#1 print_char_cursor#29 ] main:2::print_sbyte:15::print_char:35 [ main::i#2 print_sbyte::b#1 print_char_cursor#29 ] main:2::print_sbyte:15::print_byte:32::print_char:43 [ main::i#2 print_sbyte::b#4 print_char_cursor#29 ] main:2::print_sbyte:15::print_byte:32::print_char:46 [ main::i#2 print_char_cursor#29 ] ) always clobbers reg byte y Statement [41] (byte~) print_byte::$0 ← (byte)(signed byte) print_sbyte::b#4 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_char_cursor#10 print_sbyte::b#4 print_byte::$0 ] ( main:2::print_sbyte:15::print_byte:32 [ main::i#2 print_char_cursor#10 print_sbyte::b#4 print_byte::$0 ] ) always clobbers reg byte a -Statement [44] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_sbyte:15::print_byte:32 [ main::i#2 print_char_cursor#10 print_byte::$2 ] ) always clobbers reg byte a +Statement [44] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_sbyte:15::print_byte:32 [ main::i#2 print_char_cursor#10 print_byte::$2 ] ) always clobbers reg byte a Statement [50] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:7 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [52] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:7 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [52] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:7 [ print_cls::sc#1 ] ) always clobbers reg byte a Statement [56] (word) div16u::return#2 ← (word) div16u::return#0 [ div16u::return#2 ] ( main:2::sin8s_gen:5 [ div16u::return#2 ] ) always clobbers reg byte a Statement [57] (word) sin8s_gen::step#0 ← (word) div16u::return#2 [ sin8s_gen::step#0 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 ] ) always clobbers reg byte a Statement [59] (word) sin8s::x#0 ← (word) sin8s_gen::x#2 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::x#0 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::x#0 ] ) always clobbers reg byte a @@ -3413,7 +3413,7 @@ Statement [127] (word) mul8u::res#1 ← (word) mul8u::res#2 + (word) mul8u::mb#2 Statement [133] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 ] ( main:2::sin8s_gen:5::div16u:55 [ divr16u::return#2 ] ) always clobbers reg byte a Statement [134] (word) div16u::return#0 ← (word) divr16u::return#2 [ div16u::return#0 ] ( main:2::sin8s_gen:5::div16u:55 [ div16u::return#0 ] ) always clobbers reg byte a Statement [139] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin8s_gen:5::div16u:55::divr16u:132 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a -Statement [140] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin8s_gen:5::div16u:55::divr16u:132 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a +Statement [140] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin8s_gen:5::div16u:55::divr16u:132 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a Statement [142] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin8s_gen:5::div16u:55::divr16u:132 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a Statement [146] if((word) divr16u::rem#5<(const word) main::wavelength#0) goto divr16u::@3 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] ( main:2::sin8s_gen:5::div16u:55::divr16u:132 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] ) always clobbers reg byte a Statement [148] (word) divr16u::rem#2 ← (word) divr16u::rem#5 - (const word) main::wavelength#0 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin8s_gen:5::div16u:55::divr16u:132 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a @@ -3631,7 +3631,7 @@ main: { jmp b1 //SEG23 main::@1 b1: - //SEG24 [9] (signed byte) main::sb#0 ← *((const signed byte[192]) main::sintab2#0 + (byte) main::i#2) - (signed byte)*((const byte[]) main::sintabref#0 + (byte) main::i#2) -- vbsz1=pbsc1_derefidx_vbuxx_minus_pbsc2_derefidx_vbuxx + //SEG24 [9] (signed byte) main::sb#0 ← *((const signed byte[$c0]) main::sintab2#0 + (byte) main::i#2) - (signed byte)*((const byte[]) main::sintabref#0 + (byte) main::i#2) -- vbsz1=pbsc1_derefidx_vbuxx_minus_pbsc2_derefidx_vbuxx sec lda sintab2,x sbc sintabref,x @@ -3684,7 +3684,7 @@ main: { b8: //SEG44 [18] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG45 [19] if((byte) main::i#1!=(byte/word/signed word/dword/signed dword) 192) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG45 [19] if((byte) main::i#1!=(byte/word/signed word/dword/signed dword) $c0) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$c0 bne b1_from_b8 jmp breturn @@ -3836,7 +3836,7 @@ print_byte: { jmp b1 //SEG94 print_byte::@1 b1: - //SEG95 [44] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG95 [44] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and print_sbyte.b //SEG96 [45] (byte) print_char::ch#3 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) -- vbuaa=pbuc1_derefidx_vbuaa @@ -3881,7 +3881,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG111 [52] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG111 [52] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>print_line_cursor+$3e8 bne b1_from_b1 @@ -3920,7 +3920,7 @@ sin8s_gen: { sta i lda #>0 sta i+1 - //SEG122 [58] phi (signed byte*) sin8s_gen::sintab#2 = (const signed byte[192]) main::sintab2#0 [phi:sin8s_gen::@3->sin8s_gen::@1#1] -- pbsz1=pbsc1 + //SEG122 [58] phi (signed byte*) sin8s_gen::sintab#2 = (const signed byte[$c0]) main::sintab2#0 [phi:sin8s_gen::@3->sin8s_gen::@1#1] -- pbsz1=pbsc1 lda #main.sintab2 @@ -4179,7 +4179,7 @@ sin8s: { clc adc usinx tax - //SEG212 [104] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) 128) goto sin8s::@3 -- vbuxx_lt_vbuc1_then_la1 + //SEG212 [104] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) $80) goto sin8s::@3 -- vbuxx_lt_vbuc1_then_la1 cpx #$80 bcc b3_from_b14 jmp b7 @@ -4397,7 +4397,7 @@ divr16u: { rol rem+1 //SEG284 [139] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 -- vbuaa=_hi_vwuz1 lda dividend+1 - //SEG285 [140] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuaa_band_vbuc1 + //SEG285 [140] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 //SEG286 [141] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuaa_eq_0_then_la1 cmp #0 @@ -4457,7 +4457,7 @@ divr16u: { b3: //SEG302 [150] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuxx=_inc_vbuxx inx - //SEG303 [151] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG303 [151] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1_from_b3 jmp b6 @@ -4671,13 +4671,13 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (word) PI2_u4f12 -(const word) PI2_u4f12#0 PI2_u4f12 = (word/signed word/dword/signed dword) 25736 +(const word) PI2_u4f12#0 PI2_u4f12 = (word/signed word/dword/signed dword) $6488 (dword) PI2_u4f28 (word) PI_HALF_u4f12 -(const word) PI_HALF_u4f12#0 PI_HALF_u4f12 = (word/signed word/dword/signed dword) 6434 +(const word) PI_HALF_u4f12#0 PI_HALF_u4f12 = (word/signed word/dword/signed dword) $1922 (dword) PI_HALF_u4f28 (word) PI_u4f12 -(const word) PI_u4f12#0 PI_u4f12 = (word/signed word/dword/signed dword) 12868 +(const word) PI_u4f12#0 PI_u4f12 = (word/signed word/dword/signed dword) $3244 (dword) PI_u4f28 (word()) div16u((word) div16u::dividend , (word) div16u::divisor) (label) div16u::@2 @@ -4731,14 +4731,14 @@ FINAL SYMBOL TABLE (byte) main::i#2 reg byte x 3.3000000000000003 (signed byte) main::sb (signed byte) main::sb#0 sb zp ZP_BYTE:4 6.6000000000000005 -(signed byte[192]) main::sintab2 -(const signed byte[192]) main::sintab2#0 sintab2 = { fill( 192, 0) } +(signed byte[$c0]) main::sintab2 +(const signed byte[$c0]) main::sintab2#0 sintab2 = { fill( $c0, 0) } (byte[]) main::sintabref -(const byte[]) main::sintabref#0 sintabref = { (byte/signed byte/word/signed word/dword/signed dword) 0, (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) 12, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 21, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 29, (byte/signed byte/word/signed word/dword/signed dword) 33, (byte/signed byte/word/signed word/dword/signed dword) 37, (byte/signed byte/word/signed word/dword/signed dword) 41, (byte/signed byte/word/signed word/dword/signed dword) 45, (byte/signed byte/word/signed word/dword/signed dword) 49, (byte/signed byte/word/signed word/dword/signed dword) 53, (byte/signed byte/word/signed word/dword/signed dword) 56, (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/signed byte/word/signed word/dword/signed dword) 67, (byte/signed byte/word/signed word/dword/signed dword) 71, (byte/signed byte/word/signed word/dword/signed dword) 74, (byte/signed byte/word/signed word/dword/signed dword) 78, (byte/signed byte/word/signed word/dword/signed dword) 81, (byte/signed byte/word/signed word/dword/signed dword) 84, (byte/signed byte/word/signed word/dword/signed dword) 87, (byte/signed byte/word/signed word/dword/signed dword) 90, (byte/signed byte/word/signed word/dword/signed dword) 93, (byte/signed byte/word/signed word/dword/signed dword) 96, (byte/signed byte/word/signed word/dword/signed dword) 99, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 104, (byte/signed byte/word/signed word/dword/signed dword) 106, (byte/signed byte/word/signed word/dword/signed dword) 108, (byte/signed byte/word/signed word/dword/signed dword) 110, (byte/signed byte/word/signed word/dword/signed dword) 112, (byte/signed byte/word/signed word/dword/signed dword) 114, (byte/signed byte/word/signed word/dword/signed dword) 116, (byte/signed byte/word/signed word/dword/signed dword) 118, (byte/signed byte/word/signed word/dword/signed dword) 119, (byte/signed byte/word/signed word/dword/signed dword) 121, (byte/signed byte/word/signed word/dword/signed dword) 122, (byte/signed byte/word/signed word/dword/signed dword) 123, (byte/signed byte/word/signed word/dword/signed dword) 124, (byte/signed byte/word/signed word/dword/signed dword) 125, (byte/signed byte/word/signed word/dword/signed dword) 126, (byte/signed byte/word/signed word/dword/signed dword) 126, (byte/signed byte/word/signed word/dword/signed dword) 127, (byte/signed byte/word/signed word/dword/signed dword) 127, (byte/signed byte/word/signed word/dword/signed dword) 127, (byte/word/signed word/dword/signed dword) 128, (byte/signed byte/word/signed word/dword/signed dword) 127, (byte/signed byte/word/signed word/dword/signed dword) 127, (byte/signed byte/word/signed word/dword/signed dword) 127, (byte/signed byte/word/signed word/dword/signed dword) 126, (byte/signed byte/word/signed word/dword/signed dword) 126, (byte/signed byte/word/signed word/dword/signed dword) 125, (byte/signed byte/word/signed word/dword/signed dword) 124, (byte/signed byte/word/signed word/dword/signed dword) 123, (byte/signed byte/word/signed word/dword/signed dword) 122, (byte/signed byte/word/signed word/dword/signed dword) 121, (byte/signed byte/word/signed word/dword/signed dword) 119, (byte/signed byte/word/signed word/dword/signed dword) 118, (byte/signed byte/word/signed word/dword/signed dword) 116, (byte/signed byte/word/signed word/dword/signed dword) 114, (byte/signed byte/word/signed word/dword/signed dword) 112, (byte/signed byte/word/signed word/dword/signed dword) 110, (byte/signed byte/word/signed word/dword/signed dword) 108, (byte/signed byte/word/signed word/dword/signed dword) 106, (byte/signed byte/word/signed word/dword/signed dword) 104, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 99, (byte/signed byte/word/signed word/dword/signed dword) 96, (byte/signed byte/word/signed word/dword/signed dword) 93, (byte/signed byte/word/signed word/dword/signed dword) 90, (byte/signed byte/word/signed word/dword/signed dword) 87, (byte/signed byte/word/signed word/dword/signed dword) 84, (byte/signed byte/word/signed word/dword/signed dword) 81, (byte/signed byte/word/signed word/dword/signed dword) 78, (byte/signed byte/word/signed word/dword/signed dword) 74, (byte/signed byte/word/signed word/dword/signed dword) 71, (byte/signed byte/word/signed word/dword/signed dword) 67, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 56, (byte/signed byte/word/signed word/dword/signed dword) 53, (byte/signed byte/word/signed word/dword/signed dword) 49, (byte/signed byte/word/signed word/dword/signed dword) 45, (byte/signed byte/word/signed word/dword/signed dword) 41, (byte/signed byte/word/signed word/dword/signed dword) 37, (byte/signed byte/word/signed word/dword/signed dword) 33, (byte/signed byte/word/signed word/dword/signed dword) 29, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 21, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 252, (byte/word/signed word/dword/signed dword) 248, (byte/word/signed word/dword/signed dword) 244, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 235, (byte/word/signed word/dword/signed dword) 231, (byte/word/signed word/dword/signed dword) 227, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 219, (byte/word/signed word/dword/signed dword) 215, (byte/word/signed word/dword/signed dword) 211, (byte/word/signed word/dword/signed dword) 207, (byte/word/signed word/dword/signed dword) 203, (byte/word/signed word/dword/signed dword) 200, (byte/word/signed word/dword/signed dword) 196, (byte/word/signed word/dword/signed dword) 192, (byte/word/signed word/dword/signed dword) 189, (byte/word/signed word/dword/signed dword) 185, (byte/word/signed word/dword/signed dword) 182, (byte/word/signed word/dword/signed dword) 178, (byte/word/signed word/dword/signed dword) 175, (byte/word/signed word/dword/signed dword) 172, (byte/word/signed word/dword/signed dword) 169, (byte/word/signed word/dword/signed dword) 166, (byte/word/signed word/dword/signed dword) 163, (byte/word/signed word/dword/signed dword) 160, (byte/word/signed word/dword/signed dword) 157, (byte/word/signed word/dword/signed dword) 155, (byte/word/signed word/dword/signed dword) 152, (byte/word/signed word/dword/signed dword) 150, (byte/word/signed word/dword/signed dword) 148, (byte/word/signed word/dword/signed dword) 146, (byte/word/signed word/dword/signed dword) 144, (byte/word/signed word/dword/signed dword) 142, (byte/word/signed word/dword/signed dword) 140, (byte/word/signed word/dword/signed dword) 138, (byte/word/signed word/dword/signed dword) 137, (byte/word/signed word/dword/signed dword) 135, (byte/word/signed word/dword/signed dword) 134, (byte/word/signed word/dword/signed dword) 133, (byte/word/signed word/dword/signed dword) 132, (byte/word/signed word/dword/signed dword) 131, (byte/word/signed word/dword/signed dword) 130, (byte/word/signed word/dword/signed dword) 130, (byte/word/signed word/dword/signed dword) 129, (byte/word/signed word/dword/signed dword) 129, (byte/word/signed word/dword/signed dword) 129, (byte/word/signed word/dword/signed dword) 129, (byte/word/signed word/dword/signed dword) 129, (byte/word/signed word/dword/signed dword) 129, (byte/word/signed word/dword/signed dword) 129, (byte/word/signed word/dword/signed dword) 130, (byte/word/signed word/dword/signed dword) 130, (byte/word/signed word/dword/signed dword) 131, (byte/word/signed word/dword/signed dword) 132, (byte/word/signed word/dword/signed dword) 133, (byte/word/signed word/dword/signed dword) 134, (byte/word/signed word/dword/signed dword) 135, (byte/word/signed word/dword/signed dword) 137, (byte/word/signed word/dword/signed dword) 138, (byte/word/signed word/dword/signed dword) 140, (byte/word/signed word/dword/signed dword) 142, (byte/word/signed word/dword/signed dword) 144, (byte/word/signed word/dword/signed dword) 146, (byte/word/signed word/dword/signed dword) 148, (byte/word/signed word/dword/signed dword) 150, (byte/word/signed word/dword/signed dword) 152, (byte/word/signed word/dword/signed dword) 155, (byte/word/signed word/dword/signed dword) 157, (byte/word/signed word/dword/signed dword) 160, (byte/word/signed word/dword/signed dword) 163, (byte/word/signed word/dword/signed dword) 166, (byte/word/signed word/dword/signed dword) 169, (byte/word/signed word/dword/signed dword) 172, (byte/word/signed word/dword/signed dword) 175, (byte/word/signed word/dword/signed dword) 178, (byte/word/signed word/dword/signed dword) 182, (byte/word/signed word/dword/signed dword) 185, (byte/word/signed word/dword/signed dword) 189, (byte/word/signed word/dword/signed dword) 192, (byte/word/signed word/dword/signed dword) 196, (byte/word/signed word/dword/signed dword) 200, (byte/word/signed word/dword/signed dword) 203, (byte/word/signed word/dword/signed dword) 207, (byte/word/signed word/dword/signed dword) 211, (byte/word/signed word/dword/signed dword) 215, (byte/word/signed word/dword/signed dword) 219, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 227, (byte/word/signed word/dword/signed dword) 231, (byte/word/signed word/dword/signed dword) 235, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 244, (byte/word/signed word/dword/signed dword) 248, (byte/word/signed word/dword/signed dword) 252 } +(const byte[]) main::sintabref#0 sintabref = { (byte/signed byte/word/signed word/dword/signed dword) 0, (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) $c, (byte/signed byte/word/signed word/dword/signed dword) $11, (byte/signed byte/word/signed word/dword/signed dword) $15, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $1d, (byte/signed byte/word/signed word/dword/signed dword) $21, (byte/signed byte/word/signed word/dword/signed dword) $25, (byte/signed byte/word/signed word/dword/signed dword) $29, (byte/signed byte/word/signed word/dword/signed dword) $2d, (byte/signed byte/word/signed word/dword/signed dword) $31, (byte/signed byte/word/signed word/dword/signed dword) $35, (byte/signed byte/word/signed word/dword/signed dword) $38, (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/signed byte/word/signed word/dword/signed dword) $43, (byte/signed byte/word/signed word/dword/signed dword) $47, (byte/signed byte/word/signed word/dword/signed dword) $4a, (byte/signed byte/word/signed word/dword/signed dword) $4e, (byte/signed byte/word/signed word/dword/signed dword) $51, (byte/signed byte/word/signed word/dword/signed dword) $54, (byte/signed byte/word/signed word/dword/signed dword) $57, (byte/signed byte/word/signed word/dword/signed dword) $5a, (byte/signed byte/word/signed word/dword/signed dword) $5d, (byte/signed byte/word/signed word/dword/signed dword) $60, (byte/signed byte/word/signed word/dword/signed dword) $63, (byte/signed byte/word/signed word/dword/signed dword) $65, (byte/signed byte/word/signed word/dword/signed dword) $68, (byte/signed byte/word/signed word/dword/signed dword) $6a, (byte/signed byte/word/signed word/dword/signed dword) $6c, (byte/signed byte/word/signed word/dword/signed dword) $6e, (byte/signed byte/word/signed word/dword/signed dword) $70, (byte/signed byte/word/signed word/dword/signed dword) $72, (byte/signed byte/word/signed word/dword/signed dword) $74, (byte/signed byte/word/signed word/dword/signed dword) $76, (byte/signed byte/word/signed word/dword/signed dword) $77, (byte/signed byte/word/signed word/dword/signed dword) $79, (byte/signed byte/word/signed word/dword/signed dword) $7a, (byte/signed byte/word/signed word/dword/signed dword) $7b, (byte/signed byte/word/signed word/dword/signed dword) $7c, (byte/signed byte/word/signed word/dword/signed dword) $7d, (byte/signed byte/word/signed word/dword/signed dword) $7e, (byte/signed byte/word/signed word/dword/signed dword) $7e, (byte/signed byte/word/signed word/dword/signed dword) $7f, (byte/signed byte/word/signed word/dword/signed dword) $7f, (byte/signed byte/word/signed word/dword/signed dword) $7f, (byte/word/signed word/dword/signed dword) $80, (byte/signed byte/word/signed word/dword/signed dword) $7f, (byte/signed byte/word/signed word/dword/signed dword) $7f, (byte/signed byte/word/signed word/dword/signed dword) $7f, (byte/signed byte/word/signed word/dword/signed dword) $7e, (byte/signed byte/word/signed word/dword/signed dword) $7e, (byte/signed byte/word/signed word/dword/signed dword) $7d, (byte/signed byte/word/signed word/dword/signed dword) $7c, (byte/signed byte/word/signed word/dword/signed dword) $7b, (byte/signed byte/word/signed word/dword/signed dword) $7a, (byte/signed byte/word/signed word/dword/signed dword) $79, (byte/signed byte/word/signed word/dword/signed dword) $77, (byte/signed byte/word/signed word/dword/signed dword) $76, (byte/signed byte/word/signed word/dword/signed dword) $74, (byte/signed byte/word/signed word/dword/signed dword) $72, (byte/signed byte/word/signed word/dword/signed dword) $70, (byte/signed byte/word/signed word/dword/signed dword) $6e, (byte/signed byte/word/signed word/dword/signed dword) $6c, (byte/signed byte/word/signed word/dword/signed dword) $6a, (byte/signed byte/word/signed word/dword/signed dword) $68, (byte/signed byte/word/signed word/dword/signed dword) $65, (byte/signed byte/word/signed word/dword/signed dword) $63, (byte/signed byte/word/signed word/dword/signed dword) $60, (byte/signed byte/word/signed word/dword/signed dword) $5d, (byte/signed byte/word/signed word/dword/signed dword) $5a, (byte/signed byte/word/signed word/dword/signed dword) $57, (byte/signed byte/word/signed word/dword/signed dword) $54, (byte/signed byte/word/signed word/dword/signed dword) $51, (byte/signed byte/word/signed word/dword/signed dword) $4e, (byte/signed byte/word/signed word/dword/signed dword) $4a, (byte/signed byte/word/signed word/dword/signed dword) $47, (byte/signed byte/word/signed word/dword/signed dword) $43, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $38, (byte/signed byte/word/signed word/dword/signed dword) $35, (byte/signed byte/word/signed word/dword/signed dword) $31, (byte/signed byte/word/signed word/dword/signed dword) $2d, (byte/signed byte/word/signed word/dword/signed dword) $29, (byte/signed byte/word/signed word/dword/signed dword) $25, (byte/signed byte/word/signed word/dword/signed dword) $21, (byte/signed byte/word/signed word/dword/signed dword) $1d, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $15, (byte/signed byte/word/signed word/dword/signed dword) $11, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $fc, (byte/word/signed word/dword/signed dword) $f8, (byte/word/signed word/dword/signed dword) $f4, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $eb, (byte/word/signed word/dword/signed dword) $e7, (byte/word/signed word/dword/signed dword) $e3, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $db, (byte/word/signed word/dword/signed dword) $d7, (byte/word/signed word/dword/signed dword) $d3, (byte/word/signed word/dword/signed dword) $cf, (byte/word/signed word/dword/signed dword) $cb, (byte/word/signed word/dword/signed dword) $c8, (byte/word/signed word/dword/signed dword) $c4, (byte/word/signed word/dword/signed dword) $c0, (byte/word/signed word/dword/signed dword) $bd, (byte/word/signed word/dword/signed dword) $b9, (byte/word/signed word/dword/signed dword) $b6, (byte/word/signed word/dword/signed dword) $b2, (byte/word/signed word/dword/signed dword) $af, (byte/word/signed word/dword/signed dword) $ac, (byte/word/signed word/dword/signed dword) $a9, (byte/word/signed word/dword/signed dword) $a6, (byte/word/signed word/dword/signed dword) $a3, (byte/word/signed word/dword/signed dword) $a0, (byte/word/signed word/dword/signed dword) $9d, (byte/word/signed word/dword/signed dword) $9b, (byte/word/signed word/dword/signed dword) $98, (byte/word/signed word/dword/signed dword) $96, (byte/word/signed word/dword/signed dword) $94, (byte/word/signed word/dword/signed dword) $92, (byte/word/signed word/dword/signed dword) $90, (byte/word/signed word/dword/signed dword) $8e, (byte/word/signed word/dword/signed dword) $8c, (byte/word/signed word/dword/signed dword) $8a, (byte/word/signed word/dword/signed dword) $89, (byte/word/signed word/dword/signed dword) $87, (byte/word/signed word/dword/signed dword) $86, (byte/word/signed word/dword/signed dword) $85, (byte/word/signed word/dword/signed dword) $84, (byte/word/signed word/dword/signed dword) $83, (byte/word/signed word/dword/signed dword) $82, (byte/word/signed word/dword/signed dword) $82, (byte/word/signed word/dword/signed dword) $81, (byte/word/signed word/dword/signed dword) $81, (byte/word/signed word/dword/signed dword) $81, (byte/word/signed word/dword/signed dword) $81, (byte/word/signed word/dword/signed dword) $81, (byte/word/signed word/dword/signed dword) $81, (byte/word/signed word/dword/signed dword) $81, (byte/word/signed word/dword/signed dword) $82, (byte/word/signed word/dword/signed dword) $82, (byte/word/signed word/dword/signed dword) $83, (byte/word/signed word/dword/signed dword) $84, (byte/word/signed word/dword/signed dword) $85, (byte/word/signed word/dword/signed dword) $86, (byte/word/signed word/dword/signed dword) $87, (byte/word/signed word/dword/signed dword) $89, (byte/word/signed word/dword/signed dword) $8a, (byte/word/signed word/dword/signed dword) $8c, (byte/word/signed word/dword/signed dword) $8e, (byte/word/signed word/dword/signed dword) $90, (byte/word/signed word/dword/signed dword) $92, (byte/word/signed word/dword/signed dword) $94, (byte/word/signed word/dword/signed dword) $96, (byte/word/signed word/dword/signed dword) $98, (byte/word/signed word/dword/signed dword) $9b, (byte/word/signed word/dword/signed dword) $9d, (byte/word/signed word/dword/signed dword) $a0, (byte/word/signed word/dword/signed dword) $a3, (byte/word/signed word/dword/signed dword) $a6, (byte/word/signed word/dword/signed dword) $a9, (byte/word/signed word/dword/signed dword) $ac, (byte/word/signed word/dword/signed dword) $af, (byte/word/signed word/dword/signed dword) $b2, (byte/word/signed word/dword/signed dword) $b6, (byte/word/signed word/dword/signed dword) $b9, (byte/word/signed word/dword/signed dword) $bd, (byte/word/signed word/dword/signed dword) $c0, (byte/word/signed word/dword/signed dword) $c4, (byte/word/signed word/dword/signed dword) $c8, (byte/word/signed word/dword/signed dword) $cb, (byte/word/signed word/dword/signed dword) $cf, (byte/word/signed word/dword/signed dword) $d3, (byte/word/signed word/dword/signed dword) $d7, (byte/word/signed word/dword/signed dword) $db, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $e3, (byte/word/signed word/dword/signed dword) $e7, (byte/word/signed word/dword/signed dword) $eb, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $f4, (byte/word/signed word/dword/signed dword) $f8, (byte/word/signed word/dword/signed dword) $fc } (const string) main::str str = (string) " @" (const string) main::str1 str1 = (string) " @" (word) main::wavelength -(const word) main::wavelength#0 wavelength = (byte/word/signed word/dword/signed dword) 192 +(const word) main::wavelength#0 wavelength = (byte/word/signed word/dword/signed dword) $c0 (word()) mul8u((byte) mul8u::a , (byte) mul8u::b) (byte~) mul8u::$1 reg byte a 202.0 (label) mul8u::@1 @@ -4818,7 +4818,7 @@ FINAL SYMBOL TABLE (byte[]) print_hextab (const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor -(const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) $400 (void()) print_sbyte((signed byte) print_sbyte::b) (label) print_sbyte::@1 (label) print_sbyte::@2 @@ -4861,7 +4861,7 @@ FINAL SYMBOL TABLE (label) sin8s::@8 (label) sin8s::@return (byte) sin8s::DIV_6 -(const byte) sin8s::DIV_6#0 DIV_6 = (byte/signed byte/word/signed word/dword/signed dword) 43 +(const byte) sin8s::DIV_6#0 DIV_6 = (byte/signed byte/word/signed word/dword/signed dword) $2b (byte) sin8s::isUpper (byte) sin8s::isUpper#10 isUpper zp ZP_BYTE:4 0.05555555555555555 (signed byte) sin8s::return @@ -5004,7 +5004,7 @@ main: { //SEG22 [8] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@8->main::@1#1] -- register_copy //SEG23 main::@1 b1: - //SEG24 [9] (signed byte) main::sb#0 ← *((const signed byte[192]) main::sintab2#0 + (byte) main::i#2) - (signed byte)*((const byte[]) main::sintabref#0 + (byte) main::i#2) -- vbsz1=pbsc1_derefidx_vbuxx_minus_pbsc2_derefidx_vbuxx + //SEG24 [9] (signed byte) main::sb#0 ← *((const signed byte[$c0]) main::sintab2#0 + (byte) main::i#2) - (signed byte)*((const byte[]) main::sintabref#0 + (byte) main::i#2) -- vbsz1=pbsc1_derefidx_vbuxx_minus_pbsc2_derefidx_vbuxx sec lda sintab2,x sbc sintabref,x @@ -5043,7 +5043,7 @@ main: { //SEG43 main::@8 //SEG44 [18] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG45 [19] if((byte) main::i#1!=(byte/word/signed word/dword/signed dword) 192) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG45 [19] if((byte) main::i#1!=(byte/word/signed word/dword/signed dword) $c0) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$c0 bne b1 //SEG46 main::@return @@ -5168,7 +5168,7 @@ print_byte: { //SEG93 [37] phi (byte) print_char::ch#4 = (byte) print_char::ch#2 [phi:print_byte->print_char#1] -- register_copy jsr print_char //SEG94 print_byte::@1 - //SEG95 [44] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG95 [44] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and print_sbyte.b //SEG96 [45] (byte) print_char::ch#3 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) -- vbuaa=pbuc1_derefidx_vbuaa @@ -5206,7 +5206,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG111 [52] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG111 [52] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>print_line_cursor+$3e8 bne b1 @@ -5238,7 +5238,7 @@ sin8s_gen: { lda #<0 sta i sta i+1 - //SEG122 [58] phi (signed byte*) sin8s_gen::sintab#2 = (const signed byte[192]) main::sintab2#0 [phi:sin8s_gen::@3->sin8s_gen::@1#1] -- pbsz1=pbsc1 + //SEG122 [58] phi (signed byte*) sin8s_gen::sintab#2 = (const signed byte[$c0]) main::sintab2#0 [phi:sin8s_gen::@3->sin8s_gen::@1#1] -- pbsz1=pbsc1 lda #main.sintab2 @@ -5465,7 +5465,7 @@ sin8s: { clc adc usinx tax - //SEG212 [104] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) 128) goto sin8s::@3 -- vbuxx_lt_vbuc1_then_la1 + //SEG212 [104] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) $80) goto sin8s::@3 -- vbuxx_lt_vbuc1_then_la1 cpx #$80 bcc b3 //SEG213 sin8s::@7 @@ -5644,7 +5644,7 @@ divr16u: { rol rem+1 //SEG284 [139] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 -- vbuaa=_hi_vwuz1 lda dividend+1 - //SEG285 [140] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuaa_band_vbuc1 + //SEG285 [140] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 //SEG286 [141] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuaa_eq_0_then_la1 cmp #0 @@ -5694,7 +5694,7 @@ divr16u: { b3: //SEG302 [150] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuxx=_inc_vbuxx inx - //SEG303 [151] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG303 [151] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1 //SEG304 divr16u::@6 diff --git a/src/test/ref/sinusgen8.sym b/src/test/ref/sinusgen8.sym index 84e955bd0..71aa6087b 100644 --- a/src/test/ref/sinusgen8.sym +++ b/src/test/ref/sinusgen8.sym @@ -2,13 +2,13 @@ (label) @begin (label) @end (word) PI2_u4f12 -(const word) PI2_u4f12#0 PI2_u4f12 = (word/signed word/dword/signed dword) 25736 +(const word) PI2_u4f12#0 PI2_u4f12 = (word/signed word/dword/signed dword) $6488 (dword) PI2_u4f28 (word) PI_HALF_u4f12 -(const word) PI_HALF_u4f12#0 PI_HALF_u4f12 = (word/signed word/dword/signed dword) 6434 +(const word) PI_HALF_u4f12#0 PI_HALF_u4f12 = (word/signed word/dword/signed dword) $1922 (dword) PI_HALF_u4f28 (word) PI_u4f12 -(const word) PI_u4f12#0 PI_u4f12 = (word/signed word/dword/signed dword) 12868 +(const word) PI_u4f12#0 PI_u4f12 = (word/signed word/dword/signed dword) $3244 (dword) PI_u4f28 (word()) div16u((word) div16u::dividend , (word) div16u::divisor) (label) div16u::@2 @@ -62,14 +62,14 @@ (byte) main::i#2 reg byte x 3.3000000000000003 (signed byte) main::sb (signed byte) main::sb#0 sb zp ZP_BYTE:4 6.6000000000000005 -(signed byte[192]) main::sintab2 -(const signed byte[192]) main::sintab2#0 sintab2 = { fill( 192, 0) } +(signed byte[$c0]) main::sintab2 +(const signed byte[$c0]) main::sintab2#0 sintab2 = { fill( $c0, 0) } (byte[]) main::sintabref -(const byte[]) main::sintabref#0 sintabref = { (byte/signed byte/word/signed word/dword/signed dword) 0, (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) 12, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 21, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 29, (byte/signed byte/word/signed word/dword/signed dword) 33, (byte/signed byte/word/signed word/dword/signed dword) 37, (byte/signed byte/word/signed word/dword/signed dword) 41, (byte/signed byte/word/signed word/dword/signed dword) 45, (byte/signed byte/word/signed word/dword/signed dword) 49, (byte/signed byte/word/signed word/dword/signed dword) 53, (byte/signed byte/word/signed word/dword/signed dword) 56, (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/signed byte/word/signed word/dword/signed dword) 67, (byte/signed byte/word/signed word/dword/signed dword) 71, (byte/signed byte/word/signed word/dword/signed dword) 74, (byte/signed byte/word/signed word/dword/signed dword) 78, (byte/signed byte/word/signed word/dword/signed dword) 81, (byte/signed byte/word/signed word/dword/signed dword) 84, (byte/signed byte/word/signed word/dword/signed dword) 87, (byte/signed byte/word/signed word/dword/signed dword) 90, (byte/signed byte/word/signed word/dword/signed dword) 93, (byte/signed byte/word/signed word/dword/signed dword) 96, (byte/signed byte/word/signed word/dword/signed dword) 99, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 104, (byte/signed byte/word/signed word/dword/signed dword) 106, (byte/signed byte/word/signed word/dword/signed dword) 108, (byte/signed byte/word/signed word/dword/signed dword) 110, (byte/signed byte/word/signed word/dword/signed dword) 112, (byte/signed byte/word/signed word/dword/signed dword) 114, (byte/signed byte/word/signed word/dword/signed dword) 116, (byte/signed byte/word/signed word/dword/signed dword) 118, (byte/signed byte/word/signed word/dword/signed dword) 119, (byte/signed byte/word/signed word/dword/signed dword) 121, (byte/signed byte/word/signed word/dword/signed dword) 122, (byte/signed byte/word/signed word/dword/signed dword) 123, (byte/signed byte/word/signed word/dword/signed dword) 124, (byte/signed byte/word/signed word/dword/signed dword) 125, (byte/signed byte/word/signed word/dword/signed dword) 126, (byte/signed byte/word/signed word/dword/signed dword) 126, (byte/signed byte/word/signed word/dword/signed dword) 127, (byte/signed byte/word/signed word/dword/signed dword) 127, (byte/signed byte/word/signed word/dword/signed dword) 127, (byte/word/signed word/dword/signed dword) 128, (byte/signed byte/word/signed word/dword/signed dword) 127, (byte/signed byte/word/signed word/dword/signed dword) 127, (byte/signed byte/word/signed word/dword/signed dword) 127, (byte/signed byte/word/signed word/dword/signed dword) 126, (byte/signed byte/word/signed word/dword/signed dword) 126, (byte/signed byte/word/signed word/dword/signed dword) 125, (byte/signed byte/word/signed word/dword/signed dword) 124, (byte/signed byte/word/signed word/dword/signed dword) 123, (byte/signed byte/word/signed word/dword/signed dword) 122, (byte/signed byte/word/signed word/dword/signed dword) 121, (byte/signed byte/word/signed word/dword/signed dword) 119, (byte/signed byte/word/signed word/dword/signed dword) 118, (byte/signed byte/word/signed word/dword/signed dword) 116, (byte/signed byte/word/signed word/dword/signed dword) 114, (byte/signed byte/word/signed word/dword/signed dword) 112, (byte/signed byte/word/signed word/dword/signed dword) 110, (byte/signed byte/word/signed word/dword/signed dword) 108, (byte/signed byte/word/signed word/dword/signed dword) 106, (byte/signed byte/word/signed word/dword/signed dword) 104, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 99, (byte/signed byte/word/signed word/dword/signed dword) 96, (byte/signed byte/word/signed word/dword/signed dword) 93, (byte/signed byte/word/signed word/dword/signed dword) 90, (byte/signed byte/word/signed word/dword/signed dword) 87, (byte/signed byte/word/signed word/dword/signed dword) 84, (byte/signed byte/word/signed word/dword/signed dword) 81, (byte/signed byte/word/signed word/dword/signed dword) 78, (byte/signed byte/word/signed word/dword/signed dword) 74, (byte/signed byte/word/signed word/dword/signed dword) 71, (byte/signed byte/word/signed word/dword/signed dword) 67, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/signed byte/word/signed word/dword/signed dword) 60, (byte/signed byte/word/signed word/dword/signed dword) 56, (byte/signed byte/word/signed word/dword/signed dword) 53, (byte/signed byte/word/signed word/dword/signed dword) 49, (byte/signed byte/word/signed word/dword/signed dword) 45, (byte/signed byte/word/signed word/dword/signed dword) 41, (byte/signed byte/word/signed word/dword/signed dword) 37, (byte/signed byte/word/signed word/dword/signed dword) 33, (byte/signed byte/word/signed word/dword/signed dword) 29, (byte/signed byte/word/signed word/dword/signed dword) 25, (byte/signed byte/word/signed word/dword/signed dword) 21, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 12, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) 252, (byte/word/signed word/dword/signed dword) 248, (byte/word/signed word/dword/signed dword) 244, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 235, (byte/word/signed word/dword/signed dword) 231, (byte/word/signed word/dword/signed dword) 227, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 219, (byte/word/signed word/dword/signed dword) 215, (byte/word/signed word/dword/signed dword) 211, (byte/word/signed word/dword/signed dword) 207, (byte/word/signed word/dword/signed dword) 203, (byte/word/signed word/dword/signed dword) 200, (byte/word/signed word/dword/signed dword) 196, (byte/word/signed word/dword/signed dword) 192, (byte/word/signed word/dword/signed dword) 189, (byte/word/signed word/dword/signed dword) 185, (byte/word/signed word/dword/signed dword) 182, (byte/word/signed word/dword/signed dword) 178, (byte/word/signed word/dword/signed dword) 175, (byte/word/signed word/dword/signed dword) 172, (byte/word/signed word/dword/signed dword) 169, (byte/word/signed word/dword/signed dword) 166, (byte/word/signed word/dword/signed dword) 163, (byte/word/signed word/dword/signed dword) 160, (byte/word/signed word/dword/signed dword) 157, (byte/word/signed word/dword/signed dword) 155, (byte/word/signed word/dword/signed dword) 152, (byte/word/signed word/dword/signed dword) 150, (byte/word/signed word/dword/signed dword) 148, (byte/word/signed word/dword/signed dword) 146, (byte/word/signed word/dword/signed dword) 144, (byte/word/signed word/dword/signed dword) 142, (byte/word/signed word/dword/signed dword) 140, (byte/word/signed word/dword/signed dword) 138, (byte/word/signed word/dword/signed dword) 137, (byte/word/signed word/dword/signed dword) 135, (byte/word/signed word/dword/signed dword) 134, (byte/word/signed word/dword/signed dword) 133, (byte/word/signed word/dword/signed dword) 132, (byte/word/signed word/dword/signed dword) 131, (byte/word/signed word/dword/signed dword) 130, (byte/word/signed word/dword/signed dword) 130, (byte/word/signed word/dword/signed dword) 129, (byte/word/signed word/dword/signed dword) 129, (byte/word/signed word/dword/signed dword) 129, (byte/word/signed word/dword/signed dword) 129, (byte/word/signed word/dword/signed dword) 129, (byte/word/signed word/dword/signed dword) 129, (byte/word/signed word/dword/signed dword) 129, (byte/word/signed word/dword/signed dword) 130, (byte/word/signed word/dword/signed dword) 130, (byte/word/signed word/dword/signed dword) 131, (byte/word/signed word/dword/signed dword) 132, (byte/word/signed word/dword/signed dword) 133, (byte/word/signed word/dword/signed dword) 134, (byte/word/signed word/dword/signed dword) 135, (byte/word/signed word/dword/signed dword) 137, (byte/word/signed word/dword/signed dword) 138, (byte/word/signed word/dword/signed dword) 140, (byte/word/signed word/dword/signed dword) 142, (byte/word/signed word/dword/signed dword) 144, (byte/word/signed word/dword/signed dword) 146, (byte/word/signed word/dword/signed dword) 148, (byte/word/signed word/dword/signed dword) 150, (byte/word/signed word/dword/signed dword) 152, (byte/word/signed word/dword/signed dword) 155, (byte/word/signed word/dword/signed dword) 157, (byte/word/signed word/dword/signed dword) 160, (byte/word/signed word/dword/signed dword) 163, (byte/word/signed word/dword/signed dword) 166, (byte/word/signed word/dword/signed dword) 169, (byte/word/signed word/dword/signed dword) 172, (byte/word/signed word/dword/signed dword) 175, (byte/word/signed word/dword/signed dword) 178, (byte/word/signed word/dword/signed dword) 182, (byte/word/signed word/dword/signed dword) 185, (byte/word/signed word/dword/signed dword) 189, (byte/word/signed word/dword/signed dword) 192, (byte/word/signed word/dword/signed dword) 196, (byte/word/signed word/dword/signed dword) 200, (byte/word/signed word/dword/signed dword) 203, (byte/word/signed word/dword/signed dword) 207, (byte/word/signed word/dword/signed dword) 211, (byte/word/signed word/dword/signed dword) 215, (byte/word/signed word/dword/signed dword) 219, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 227, (byte/word/signed word/dword/signed dword) 231, (byte/word/signed word/dword/signed dword) 235, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 244, (byte/word/signed word/dword/signed dword) 248, (byte/word/signed word/dword/signed dword) 252 } +(const byte[]) main::sintabref#0 sintabref = { (byte/signed byte/word/signed word/dword/signed dword) 0, (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) $c, (byte/signed byte/word/signed word/dword/signed dword) $11, (byte/signed byte/word/signed word/dword/signed dword) $15, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $1d, (byte/signed byte/word/signed word/dword/signed dword) $21, (byte/signed byte/word/signed word/dword/signed dword) $25, (byte/signed byte/word/signed word/dword/signed dword) $29, (byte/signed byte/word/signed word/dword/signed dword) $2d, (byte/signed byte/word/signed word/dword/signed dword) $31, (byte/signed byte/word/signed word/dword/signed dword) $35, (byte/signed byte/word/signed word/dword/signed dword) $38, (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/signed byte/word/signed word/dword/signed dword) $43, (byte/signed byte/word/signed word/dword/signed dword) $47, (byte/signed byte/word/signed word/dword/signed dword) $4a, (byte/signed byte/word/signed word/dword/signed dword) $4e, (byte/signed byte/word/signed word/dword/signed dword) $51, (byte/signed byte/word/signed word/dword/signed dword) $54, (byte/signed byte/word/signed word/dword/signed dword) $57, (byte/signed byte/word/signed word/dword/signed dword) $5a, (byte/signed byte/word/signed word/dword/signed dword) $5d, (byte/signed byte/word/signed word/dword/signed dword) $60, (byte/signed byte/word/signed word/dword/signed dword) $63, (byte/signed byte/word/signed word/dword/signed dword) $65, (byte/signed byte/word/signed word/dword/signed dword) $68, (byte/signed byte/word/signed word/dword/signed dword) $6a, (byte/signed byte/word/signed word/dword/signed dword) $6c, (byte/signed byte/word/signed word/dword/signed dword) $6e, (byte/signed byte/word/signed word/dword/signed dword) $70, (byte/signed byte/word/signed word/dword/signed dword) $72, (byte/signed byte/word/signed word/dword/signed dword) $74, (byte/signed byte/word/signed word/dword/signed dword) $76, (byte/signed byte/word/signed word/dword/signed dword) $77, (byte/signed byte/word/signed word/dword/signed dword) $79, (byte/signed byte/word/signed word/dword/signed dword) $7a, (byte/signed byte/word/signed word/dword/signed dword) $7b, (byte/signed byte/word/signed word/dword/signed dword) $7c, (byte/signed byte/word/signed word/dword/signed dword) $7d, (byte/signed byte/word/signed word/dword/signed dword) $7e, (byte/signed byte/word/signed word/dword/signed dword) $7e, (byte/signed byte/word/signed word/dword/signed dword) $7f, (byte/signed byte/word/signed word/dword/signed dword) $7f, (byte/signed byte/word/signed word/dword/signed dword) $7f, (byte/word/signed word/dword/signed dword) $80, (byte/signed byte/word/signed word/dword/signed dword) $7f, (byte/signed byte/word/signed word/dword/signed dword) $7f, (byte/signed byte/word/signed word/dword/signed dword) $7f, (byte/signed byte/word/signed word/dword/signed dword) $7e, (byte/signed byte/word/signed word/dword/signed dword) $7e, (byte/signed byte/word/signed word/dword/signed dword) $7d, (byte/signed byte/word/signed word/dword/signed dword) $7c, (byte/signed byte/word/signed word/dword/signed dword) $7b, (byte/signed byte/word/signed word/dword/signed dword) $7a, (byte/signed byte/word/signed word/dword/signed dword) $79, (byte/signed byte/word/signed word/dword/signed dword) $77, (byte/signed byte/word/signed word/dword/signed dword) $76, (byte/signed byte/word/signed word/dword/signed dword) $74, (byte/signed byte/word/signed word/dword/signed dword) $72, (byte/signed byte/word/signed word/dword/signed dword) $70, (byte/signed byte/word/signed word/dword/signed dword) $6e, (byte/signed byte/word/signed word/dword/signed dword) $6c, (byte/signed byte/word/signed word/dword/signed dword) $6a, (byte/signed byte/word/signed word/dword/signed dword) $68, (byte/signed byte/word/signed word/dword/signed dword) $65, (byte/signed byte/word/signed word/dword/signed dword) $63, (byte/signed byte/word/signed word/dword/signed dword) $60, (byte/signed byte/word/signed word/dword/signed dword) $5d, (byte/signed byte/word/signed word/dword/signed dword) $5a, (byte/signed byte/word/signed word/dword/signed dword) $57, (byte/signed byte/word/signed word/dword/signed dword) $54, (byte/signed byte/word/signed word/dword/signed dword) $51, (byte/signed byte/word/signed word/dword/signed dword) $4e, (byte/signed byte/word/signed word/dword/signed dword) $4a, (byte/signed byte/word/signed word/dword/signed dword) $47, (byte/signed byte/word/signed word/dword/signed dword) $43, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/signed byte/word/signed word/dword/signed dword) $3c, (byte/signed byte/word/signed word/dword/signed dword) $38, (byte/signed byte/word/signed word/dword/signed dword) $35, (byte/signed byte/word/signed word/dword/signed dword) $31, (byte/signed byte/word/signed word/dword/signed dword) $2d, (byte/signed byte/word/signed word/dword/signed dword) $29, (byte/signed byte/word/signed word/dword/signed dword) $25, (byte/signed byte/word/signed word/dword/signed dword) $21, (byte/signed byte/word/signed word/dword/signed dword) $1d, (byte/signed byte/word/signed word/dword/signed dword) $19, (byte/signed byte/word/signed word/dword/signed dword) $15, (byte/signed byte/word/signed word/dword/signed dword) $11, (byte/signed byte/word/signed word/dword/signed dword) $c, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/word/signed word/dword/signed dword) $fc, (byte/word/signed word/dword/signed dword) $f8, (byte/word/signed word/dword/signed dword) $f4, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $eb, (byte/word/signed word/dword/signed dword) $e7, (byte/word/signed word/dword/signed dword) $e3, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $db, (byte/word/signed word/dword/signed dword) $d7, (byte/word/signed word/dword/signed dword) $d3, (byte/word/signed word/dword/signed dword) $cf, (byte/word/signed word/dword/signed dword) $cb, (byte/word/signed word/dword/signed dword) $c8, (byte/word/signed word/dword/signed dword) $c4, (byte/word/signed word/dword/signed dword) $c0, (byte/word/signed word/dword/signed dword) $bd, (byte/word/signed word/dword/signed dword) $b9, (byte/word/signed word/dword/signed dword) $b6, (byte/word/signed word/dword/signed dword) $b2, (byte/word/signed word/dword/signed dword) $af, (byte/word/signed word/dword/signed dword) $ac, (byte/word/signed word/dword/signed dword) $a9, (byte/word/signed word/dword/signed dword) $a6, (byte/word/signed word/dword/signed dword) $a3, (byte/word/signed word/dword/signed dword) $a0, (byte/word/signed word/dword/signed dword) $9d, (byte/word/signed word/dword/signed dword) $9b, (byte/word/signed word/dword/signed dword) $98, (byte/word/signed word/dword/signed dword) $96, (byte/word/signed word/dword/signed dword) $94, (byte/word/signed word/dword/signed dword) $92, (byte/word/signed word/dword/signed dword) $90, (byte/word/signed word/dword/signed dword) $8e, (byte/word/signed word/dword/signed dword) $8c, (byte/word/signed word/dword/signed dword) $8a, (byte/word/signed word/dword/signed dword) $89, (byte/word/signed word/dword/signed dword) $87, (byte/word/signed word/dword/signed dword) $86, (byte/word/signed word/dword/signed dword) $85, (byte/word/signed word/dword/signed dword) $84, (byte/word/signed word/dword/signed dword) $83, (byte/word/signed word/dword/signed dword) $82, (byte/word/signed word/dword/signed dword) $82, (byte/word/signed word/dword/signed dword) $81, (byte/word/signed word/dword/signed dword) $81, (byte/word/signed word/dword/signed dword) $81, (byte/word/signed word/dword/signed dword) $81, (byte/word/signed word/dword/signed dword) $81, (byte/word/signed word/dword/signed dword) $81, (byte/word/signed word/dword/signed dword) $81, (byte/word/signed word/dword/signed dword) $82, (byte/word/signed word/dword/signed dword) $82, (byte/word/signed word/dword/signed dword) $83, (byte/word/signed word/dword/signed dword) $84, (byte/word/signed word/dword/signed dword) $85, (byte/word/signed word/dword/signed dword) $86, (byte/word/signed word/dword/signed dword) $87, (byte/word/signed word/dword/signed dword) $89, (byte/word/signed word/dword/signed dword) $8a, (byte/word/signed word/dword/signed dword) $8c, (byte/word/signed word/dword/signed dword) $8e, (byte/word/signed word/dword/signed dword) $90, (byte/word/signed word/dword/signed dword) $92, (byte/word/signed word/dword/signed dword) $94, (byte/word/signed word/dword/signed dword) $96, (byte/word/signed word/dword/signed dword) $98, (byte/word/signed word/dword/signed dword) $9b, (byte/word/signed word/dword/signed dword) $9d, (byte/word/signed word/dword/signed dword) $a0, (byte/word/signed word/dword/signed dword) $a3, (byte/word/signed word/dword/signed dword) $a6, (byte/word/signed word/dword/signed dword) $a9, (byte/word/signed word/dword/signed dword) $ac, (byte/word/signed word/dword/signed dword) $af, (byte/word/signed word/dword/signed dword) $b2, (byte/word/signed word/dword/signed dword) $b6, (byte/word/signed word/dword/signed dword) $b9, (byte/word/signed word/dword/signed dword) $bd, (byte/word/signed word/dword/signed dword) $c0, (byte/word/signed word/dword/signed dword) $c4, (byte/word/signed word/dword/signed dword) $c8, (byte/word/signed word/dword/signed dword) $cb, (byte/word/signed word/dword/signed dword) $cf, (byte/word/signed word/dword/signed dword) $d3, (byte/word/signed word/dword/signed dword) $d7, (byte/word/signed word/dword/signed dword) $db, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $e3, (byte/word/signed word/dword/signed dword) $e7, (byte/word/signed word/dword/signed dword) $eb, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $f4, (byte/word/signed word/dword/signed dword) $f8, (byte/word/signed word/dword/signed dword) $fc } (const string) main::str str = (string) " @" (const string) main::str1 str1 = (string) " @" (word) main::wavelength -(const word) main::wavelength#0 wavelength = (byte/word/signed word/dword/signed dword) 192 +(const word) main::wavelength#0 wavelength = (byte/word/signed word/dword/signed dword) $c0 (word()) mul8u((byte) mul8u::a , (byte) mul8u::b) (byte~) mul8u::$1 reg byte a 202.0 (label) mul8u::@1 @@ -149,7 +149,7 @@ (byte[]) print_hextab (const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor -(const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) $400 (void()) print_sbyte((signed byte) print_sbyte::b) (label) print_sbyte::@1 (label) print_sbyte::@2 @@ -192,7 +192,7 @@ (label) sin8s::@8 (label) sin8s::@return (byte) sin8s::DIV_6 -(const byte) sin8s::DIV_6#0 DIV_6 = (byte/signed byte/word/signed word/dword/signed dword) 43 +(const byte) sin8s::DIV_6#0 DIV_6 = (byte/signed byte/word/signed word/dword/signed dword) $2b (byte) sin8s::isUpper (byte) sin8s::isUpper#10 isUpper zp ZP_BYTE:4 0.05555555555555555 (signed byte) sin8s::return diff --git a/src/test/ref/sinusgen8b.cfg b/src/test/ref/sinusgen8b.cfg index d86e500c0..921819449 100644 --- a/src/test/ref/sinusgen8b.cfg +++ b/src/test/ref/sinusgen8b.cfg @@ -22,10 +22,10 @@ main::@6: scope:[main] from main::@5 main::@1: scope:[main] from main::@6 main::@9 [10] (byte*) print_char_cursor#45 ← phi( main::@6/(const byte*) print_line_cursor#0 main::@9/(byte*) print_char_cursor#2 ) [10] (byte) main::i#2 ← phi( main::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@9/(byte) main::i#1 ) - [11] (signed byte) main::sb#0 ← *((const signed byte[192]) main::sintabb#0 + (byte) main::i#2) + [11] (signed byte) main::sb#0 ← *((const signed byte[$c0]) main::sintabb#0 + (byte) main::i#2) [12] (word~) main::$3 ← ((word)) (byte) main::i#2 [13] (word~) main::$4 ← (word~) main::$3 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [14] (signed word*~) main::$5 ← (const signed word[192]) main::sintabw#0 + (word~) main::$4 + [14] (signed word*~) main::$5 ← (const signed word[$c0]) main::sintabw#0 + (word~) main::$4 [15] (signed word) main::sw#0 ← *((signed word*~) main::$5) [16] (byte~) main::$6 ← > (signed word) main::sw#0 [17] (signed byte) main::sd#0 ← (signed byte) main::sb#0 - (signed byte)(byte~) main::$6 @@ -46,7 +46,7 @@ main::@8: scope:[main] from main::@2 to:main::@9 main::@9: scope:[main] from main::@8 [26] (byte) main::i#1 ← ++ (byte) main::i#2 - [27] if((byte) main::i#1!=(byte/word/signed word/dword/signed dword) 192) goto main::@1 + [27] if((byte) main::i#1!=(byte/word/signed word/dword/signed dword) $c0) goto main::@1 to:main::@return main::@return: scope:[main] from main::@9 [28] return @@ -104,7 +104,7 @@ print_byte: scope:[print_byte] from print_sbyte::@2 [51] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [52] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [52] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [53] (byte) print_char::ch#3 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [54] call print_char to:print_byte::@return @@ -118,7 +118,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 [57] (byte*) print_cls::sc#2 ← phi( print_cls/(const byte*) print_line_cursor#0 print_cls::@1/(byte*) print_cls::sc#1 ) [58] *((byte*) print_cls::sc#2) ← (byte) ' ' [59] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [60] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [60] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [61] return @@ -133,7 +133,7 @@ sin16s_gen::@3: scope:[sin16s_gen] from sin16s_gen to:sin16s_gen::@1 sin16s_gen::@1: scope:[sin16s_gen] from sin16s_gen::@3 sin16s_gen::@4 [66] (word) sin16s_gen::i#2 ← phi( sin16s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@4/(word) sin16s_gen::i#1 ) - [66] (signed word*) sin16s_gen::sintab#2 ← phi( sin16s_gen::@3/(const signed word[192]) main::sintabw#0 sin16s_gen::@4/(signed word*) sin16s_gen::sintab#0 ) + [66] (signed word*) sin16s_gen::sintab#2 ← phi( sin16s_gen::@3/(const signed word[$c0]) main::sintabw#0 sin16s_gen::@4/(signed word*) sin16s_gen::sintab#0 ) [66] (dword) sin16s_gen::x#2 ← phi( sin16s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@4/(dword) sin16s_gen::x#1 ) [67] (dword) sin16s::x#0 ← (dword) sin16s_gen::x#2 [68] call sin16s @@ -221,7 +221,7 @@ sin16s::@15: scope:[sin16s] from sin16s::@12 to:sin16s::@3 mulu16_sel: scope:[mulu16_sel] from sin16s::@10 sin16s::@11 sin16s::@2 sin16s::@8 sin16s::@9 [117] (byte) mulu16_sel::select#5 ← phi( sin16s::@10/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@11/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16s::@9/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [117] (word) mulu16_sel::v2#5 ← phi( sin16s::@10/(word) mulu16_sel::v2#3 sin16s::@11/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@8/(word) mulu16_sel::v2#1 sin16s::@9/(dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 ) + [117] (word) mulu16_sel::v2#5 ← phi( sin16s::@10/(word) mulu16_sel::v2#3 sin16s::@11/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@8/(word) mulu16_sel::v2#1 sin16s::@9/(dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 ) [117] (word) mulu16_sel::v1#5 ← phi( sin16s::@10/(word) mulu16_sel::v1#3 sin16s::@11/(word) mulu16_sel::v1#4 sin16s::@2/(word) mulu16_sel::v1#0 sin16s::@8/(word) mulu16_sel::v1#1 sin16s::@9/(word) mulu16_sel::v1#2 ) [118] (word) mul16u::a#1 ← (word) mulu16_sel::v1#5 [119] (word) mul16u::b#0 ← (word) mulu16_sel::v2#5 @@ -289,7 +289,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 [147] (word) divr16u::rem#6 ← phi( divr16u/(word) divr16u::rem#11 divr16u::@3/(word) divr16u::rem#10 ) [148] (word) divr16u::rem#0 ← (word) divr16u::rem#6 << (byte/signed byte/word/signed word/dword/signed dword) 1 [149] (byte~) divr16u::$1 ← > (word) divr16u::dividend#4 - [150] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + [150] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [151] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 to:divr16u::@4 divr16u::@4: scope:[divr16u] from divr16u::@1 @@ -309,7 +309,7 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 [159] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [159] (word) divr16u::rem#10 ← phi( divr16u::@2/(word) divr16u::rem#7 divr16u::@5/(word) divr16u::rem#2 ) [160] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 - [161] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 + [161] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 to:divr16u::@6 divr16u::@6: scope:[divr16u] from divr16u::@3 [162] (word) rem16u#1 ← (word) divr16u::rem#10 @@ -327,7 +327,7 @@ sin8s_gen::@3: scope:[sin8s_gen] from sin8s_gen to:sin8s_gen::@1 sin8s_gen::@1: scope:[sin8s_gen] from sin8s_gen::@3 sin8s_gen::@4 [168] (word) sin8s_gen::i#2 ← phi( sin8s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8s_gen::@4/(word) sin8s_gen::i#1 ) - [168] (signed byte*) sin8s_gen::sintab#2 ← phi( sin8s_gen::@3/(const signed byte[192]) main::sintabb#0 sin8s_gen::@4/(signed byte*) sin8s_gen::sintab#0 ) + [168] (signed byte*) sin8s_gen::sintab#2 ← phi( sin8s_gen::@3/(const signed byte[$c0]) main::sintabb#0 sin8s_gen::@4/(signed byte*) sin8s_gen::sintab#0 ) [168] (word) sin8s_gen::x#2 ← phi( sin8s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8s_gen::@4/(word) sin8s_gen::x#1 ) [169] (word) sin8s::x#0 ← (word) sin8s_gen::x#2 [170] call sin8s @@ -399,7 +399,7 @@ sin8s::@14: scope:[sin8s] from sin8s::@13 [211] (byte) sin8s::x5#0 ← (byte) mulu8_sel::return#11 [212] (byte) sin8s::x5_128#0 ← (byte) sin8s::x5#0 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [213] (byte) sin8s::usinx#1 ← (byte) sin8s::usinx#0 + (byte) sin8s::x5_128#0 - [214] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) 128) goto sin8s::@3 + [214] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) $80) goto sin8s::@3 to:sin8s::@7 sin8s::@7: scope:[sin8s] from sin8s::@14 [215] (byte) sin8s::usinx#2 ← -- (byte) sin8s::usinx#1 diff --git a/src/test/ref/sinusgen8b.log b/src/test/ref/sinusgen8b.log index 53f251e10..ad6a91299 100644 --- a/src/test/ref/sinusgen8b.log +++ b/src/test/ref/sinusgen8b.log @@ -22,7 +22,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 (word~) divr16u::$0 ← (word) divr16u::rem#6 << (byte/signed byte/word/signed word/dword/signed dword) 1 (word) divr16u::rem#0 ← (word~) divr16u::$0 (byte~) divr16u::$1 ← > (word) divr16u::dividend#4 - (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 (bool~) divr16u::$3 ← (byte~) divr16u::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) divr16u::$4 ← ! (bool~) divr16u::$3 if((bool~) divr16u::$4) goto divr16u::@2 @@ -56,8 +56,8 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 (word) divr16u::dividend#7 ← phi( divr16u::@2/(word) divr16u::dividend#0 divr16u::@5/(word) divr16u::dividend#9 ) (word) divr16u::rem#12 ← phi( divr16u::@2/(word) divr16u::rem#7 divr16u::@5/(word) divr16u::rem#2 ) (byte) divr16u::i#2 ← phi( divr16u::@2/(byte) divr16u::i#3 divr16u::@5/(byte) divr16u::i#4 ) - (byte) divr16u::i#1 ← (byte) divr16u::i#2 + rangenext(0,15) - (bool~) divr16u::$11 ← (byte) divr16u::i#1 != rangelast(0,15) + (byte) divr16u::i#1 ← (byte) divr16u::i#2 + rangenext(0,$f) + (bool~) divr16u::$11 ← (byte) divr16u::i#1 != rangelast(0,$f) if((bool~) divr16u::$11) goto divr16u::@1 to:divr16u::@6 divr16u::@5: scope:[divr16u] from divr16u::@2 @@ -254,12 +254,12 @@ mul16u::@return: scope:[mul16u] from mul16u::@3 to:@return @13: scope:[] from @6 (word) rem16u#45 ← phi( @6/(word) rem16u#48 ) - (dword) PI2_u4f28#0 ← (dword/signed dword) 1686629713 - (dword) PI_u4f28#0 ← (dword/signed dword) 843314857 - (dword) PI_HALF_u4f28#0 ← (dword/signed dword) 421657428 - (word) PI2_u4f12#0 ← (word/signed word/dword/signed dword) 25736 - (word) PI_u4f12#0 ← (word/signed word/dword/signed dword) 12868 - (word) PI_HALF_u4f12#0 ← (word/signed word/dword/signed dword) 6434 + (dword) PI2_u4f28#0 ← (dword/signed dword) $6487ed51 + (dword) PI_u4f28#0 ← (dword/signed dword) $3243f6a9 + (dword) PI_HALF_u4f28#0 ← (dword/signed dword) $1921fb54 + (word) PI2_u4f12#0 ← (word/signed word/dword/signed dword) $6488 + (word) PI_u4f12#0 ← (word/signed word/dword/signed dword) $3244 + (word) PI_HALF_u4f12#0 ← (word/signed word/dword/signed dword) $1922 to:@20 sin16s_gen: scope:[sin16s_gen] from main::@5 (signed word*) sin16s_gen::sintab#5 ← phi( main::@5/(signed word*) sin16s_gen::sintab#1 ) @@ -418,7 +418,7 @@ sin16s::@9: scope:[sin16s] from sin16s::@8 (word) mulu16_sel::return#8 ← phi( sin16s::@8/(word) mulu16_sel::return#1 ) (word~) sin16s::$9 ← (word) mulu16_sel::return#8 (word) sin16s::x3#0 ← (word~) sin16s::$9 - (word/signed word/dword/signed dword~) sin16s::$10 ← (dword/signed dword) 65536 / (byte/signed byte/word/signed word/dword/signed dword) 6 + (word/signed word/dword/signed dword~) sin16s::$10 ← (dword/signed dword) $10000 / (byte/signed byte/word/signed word/dword/signed dword) 6 (word) mulu16_sel::v1#2 ← (word) sin16s::x3#0 (word) mulu16_sel::v2#2 ← (word/signed word/dword/signed dword~) sin16s::$10 (byte) mulu16_sel::select#2 ← (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -540,7 +540,7 @@ sin8s::@11: scope:[sin8s] from sin8s::@10 (byte) mulu8_sel::return#8 ← phi( sin8s::@10/(byte) mulu8_sel::return#1 ) (byte~) sin8s::$9 ← (byte) mulu8_sel::return#8 (byte) sin8s::x3#0 ← (byte~) sin8s::$9 - (byte) sin8s::DIV_6#0 ← (byte/signed byte/word/signed word/dword/signed dword) 43 + (byte) sin8s::DIV_6#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2b (byte) mulu8_sel::v1#2 ← (byte) sin8s::x3#0 (byte) mulu8_sel::v2#2 ← (byte) sin8s::DIV_6#0 (byte) mulu8_sel::select#2 ← (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -585,7 +585,7 @@ sin8s::@14: scope:[sin8s] from sin8s::@13 (byte) sin8s::x5_128#0 ← (byte~) sin8s::$14 (byte~) sin8s::$15 ← (byte) sin8s::usinx#3 + (byte) sin8s::x5_128#0 (byte) sin8s::usinx#1 ← (byte~) sin8s::$15 - (bool~) sin8s::$16 ← (byte) sin8s::usinx#1 >= (byte/word/signed word/dword/signed dword) 128 + (bool~) sin8s::$16 ← (byte) sin8s::usinx#1 >= (byte/word/signed word/dword/signed dword) $80 (bool~) sin8s::$17 ← ! (bool~) sin8s::$16 if((bool~) sin8s::$17) goto sin8s::@3 to:sin8s::@7 @@ -670,7 +670,7 @@ mulu8_sel::@return: scope:[mulu8_sel] from mulu8_sel::@2 to:@return @20: scope:[] from @13 (word) rem16u#43 ← phi( @13/(word) rem16u#45 ) - (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 to:@32 @@ -760,7 +760,7 @@ print_byte::@1: scope:[print_byte] from print_byte (byte) print_byte::b#2 ← phi( print_byte/(byte) print_byte::b#1 ) (byte*) print_char_cursor#26 ← phi( print_byte/(byte*) print_char_cursor#11 ) (byte*) print_char_cursor#7 ← (byte*) print_char_cursor#26 - (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte) print_char::ch#3 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$2) call print_char to:print_byte::@2 @@ -793,7 +793,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 (byte*) print_cls::sc#2 ← phi( print_cls/(byte*) print_cls::sc#0 print_cls::@1/(byte*) print_cls::sc#1 ) *((byte*) print_cls::sc#2) ← (byte) ' ' (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) 1000 + (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) $3e8 (bool~) print_cls::$1 ← (byte*) print_cls::sc#1 != (byte*~) print_cls::$0 if((bool~) print_cls::$1) goto print_cls::@1 to:print_cls::@2 @@ -814,9 +814,9 @@ main: scope:[main] from @40 (byte*) print_line_cursor#16 ← phi( @40/(byte*) print_line_cursor#12 ) (byte*) print_screen#6 ← phi( @40/(byte*) print_screen#7 ) (word) rem16u#36 ← phi( @40/(word) rem16u#38 ) - (word) main::wavelength#0 ← (byte/word/signed word/dword/signed dword) 192 - (signed byte[192]) main::sintabb#0 ← { fill( 192, 0) } - (signed byte*) sin8s_gen::sintab#1 ← (signed byte[192]) main::sintabb#0 + (word) main::wavelength#0 ← (byte/word/signed word/dword/signed dword) $c0 + (signed byte[$c0]) main::sintabb#0 ← { fill( $c0, 0) } + (signed byte*) sin8s_gen::sintab#1 ← (signed byte[$c0]) main::sintabb#0 (word) sin8s_gen::wavelength#0 ← (word) main::wavelength#0 call sin8s_gen to:main::@5 @@ -827,8 +827,8 @@ main::@5: scope:[main] from main (word) main::wavelength#1 ← phi( main/(word) main::wavelength#0 ) (word) rem16u#26 ← phi( main/(word) rem16u#11 ) (word) rem16u#12 ← (word) rem16u#26 - (signed word[192]) main::sintabw#0 ← { fill( 192, 0) } - (signed word*) sin16s_gen::sintab#1 ← (signed word[192]) main::sintabw#0 + (signed word[$c0]) main::sintabw#0 ← { fill( $c0, 0) } + (signed word*) sin16s_gen::sintab#1 ← (signed word[$c0]) main::sintabw#0 (word) sin16s_gen::wavelength#0 ← (word) main::wavelength#1 call sin16s_gen to:main::@6 @@ -853,10 +853,10 @@ main::@1: scope:[main] from main::@7 main::@9 (word) rem16u#46 ← phi( main::@7/(word) rem16u#49 main::@9/(word) rem16u#37 ) (byte*) print_char_cursor#50 ← phi( main::@7/(byte*) print_char_cursor#14 main::@9/(byte*) print_char_cursor#16 ) (byte) main::i#2 ← phi( main::@7/(byte) main::i#0 main::@9/(byte) main::i#1 ) - (signed byte) main::sb#0 ← *((signed byte[192]) main::sintabb#0 + (byte) main::i#2) + (signed byte) main::sb#0 ← *((signed byte[$c0]) main::sintabb#0 + (byte) main::i#2) (word~) main::$3 ← ((word)) (byte) main::i#2 (word~) main::$4 ← (word~) main::$3 << (byte/signed byte/word/signed word/dword/signed dword) 1 - (signed word*~) main::$5 ← (signed word[192]) main::sintabw#0 + (word~) main::$4 + (signed word*~) main::$5 ← (signed word[$c0]) main::sintabw#0 + (word~) main::$4 (signed word) main::sw#0 ← *((signed word*~) main::$5) (byte~) main::$6 ← > (signed word) main::sw#0 (signed byte~) main::$7 ← ((signed byte)) (byte~) main::$6 @@ -890,8 +890,8 @@ main::@9: scope:[main] from main::@8 (byte) main::i#3 ← phi( main::@8/(byte) main::i#4 ) (byte*) print_char_cursor#34 ← phi( main::@8/(byte*) print_char_cursor#2 ) (byte*) print_char_cursor#16 ← (byte*) print_char_cursor#34 - (byte) main::i#1 ← (byte) main::i#3 + rangenext(0,191) - (bool~) main::$14 ← (byte) main::i#1 != rangelast(0,191) + (byte) main::i#1 ← (byte) main::i#3 + rangenext(0,$bf) + (bool~) main::$14 ← (byte) main::i#1 != rangelast(0,$bf) if((bool~) main::$14) goto main::@1 to:main::@return main::@3: scope:[main] from main::@1 @@ -1125,10 +1125,10 @@ SYMBOL TABLE SSA (signed byte) main::sd#1 (signed byte) main::sd#2 (signed byte) main::sd#3 -(signed byte[192]) main::sintabb -(signed byte[192]) main::sintabb#0 -(signed word[192]) main::sintabw -(signed word[192]) main::sintabw#0 +(signed byte[$c0]) main::sintabb +(signed byte[$c0]) main::sintabb#0 +(signed word[$c0]) main::sintabw +(signed word[$c0]) main::sintabw#0 (const string) main::str = (string) " @" (const string) main::str1 = (string) " @" (signed word) main::sw @@ -1792,7 +1792,7 @@ Inversing boolean not [201] (bool~) sin16s::$4 ← (dword) sin16s::x#4 < (dword) Inversing boolean not [261] (bool~) sin16s::$19 ← (byte) sin16s::isUpper#2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [260] (bool~) sin16s::$18 ← (byte) sin16s::isUpper#2 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not [278] (bool~) sin8s::$1 ← (word) sin8s::x#3 < (word) PI_u4f12#0 from [277] (bool~) sin8s::$0 ← (word) sin8s::x#3 >= (word) PI_u4f12#0 Inversing boolean not [282] (bool~) sin8s::$4 ← (word) sin8s::x#4 < (word) PI_HALF_u4f12#0 from [281] (bool~) sin8s::$3 ← (word) sin8s::x#4 >= (word) PI_HALF_u4f12#0 -Inversing boolean not [340] (bool~) sin8s::$17 ← (byte) sin8s::usinx#1 < (byte/word/signed word/dword/signed dword) 128 from [339] (bool~) sin8s::$16 ← (byte) sin8s::usinx#1 >= (byte/word/signed word/dword/signed dword) 128 +Inversing boolean not [340] (bool~) sin8s::$17 ← (byte) sin8s::usinx#1 < (byte/word/signed word/dword/signed dword) $80 from [339] (bool~) sin8s::$16 ← (byte) sin8s::usinx#1 >= (byte/word/signed word/dword/signed dword) $80 Inversing boolean not [349] (bool~) sin8s::$20 ← (byte) sin8s::isUpper#2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [348] (bool~) sin8s::$19 ← (byte) sin8s::isUpper#2 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not [494] (bool~) main::$10 ← (signed byte) main::sd#0 < (byte/signed byte/word/signed word/dword/signed dword) 0 from [493] (bool~) main::$9 ← (signed byte) main::sd#0 >= (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2UnaryNotSimplification @@ -2046,7 +2046,7 @@ Redundant Phi (byte*) print_char_cursor#41 (byte*) print_char_cursor#10 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) divr16u::$4 [12] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 Simple Condition (bool~) divr16u::$9 [20] if((word) divr16u::rem#7<(word) divr16u::divisor#7) goto divr16u::@3 -Simple Condition (bool~) divr16u::$11 [27] if((byte) divr16u::i#1!=rangelast(0,15)) goto divr16u::@1 +Simple Condition (bool~) divr16u::$11 [27] if((byte) divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1 Simple Condition (bool~) mul8u::$0 [89] if((byte) mul8u::a#2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u::@2 Simple Condition (bool~) mul8u::$3 [94] if((byte~) mul8u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u::@4 Simple Condition (bool~) mul16u::$0 [113] if((word) mul16u::a#2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@2 @@ -2058,13 +2058,13 @@ Simple Condition (bool~) sin16s::$4 [202] if((dword) sin16s::x#4<(dword) PI_HALF Simple Condition (bool~) sin16s::$19 [262] if((byte) sin16s::isUpper#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@3 Simple Condition (bool~) sin8s::$1 [279] if((word) sin8s::x#0<(word) PI_u4f12#0) goto sin8s::@1 Simple Condition (bool~) sin8s::$4 [283] if((word) sin8s::x#4<(word) PI_HALF_u4f12#0) goto sin8s::@2 -Simple Condition (bool~) sin8s::$17 [341] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) 128) goto sin8s::@3 +Simple Condition (bool~) sin8s::$17 [341] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) $80) goto sin8s::@3 Simple Condition (bool~) sin8s::$20 [350] if((byte) sin8s::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin8s::@4 Simple Condition (bool~) print_str::$0 [395] if(*((byte*) print_str::str#3)!=(byte) '@') goto print_str::@2 Simple Condition (bool~) print_sbyte::$0 [405] if((signed byte) print_sbyte::b#1<(byte/signed byte/word/signed word/dword/signed dword) 0) goto print_sbyte::@1 Simple Condition (bool~) print_cls::$1 [456] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 Simple Condition (bool~) main::$10 [495] if((signed byte) main::sd#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 -Simple Condition (bool~) main::$14 [507] if((byte) main::i#1!=rangelast(0,191)) goto main::@1 +Simple Condition (bool~) main::$14 [507] if((byte) main::i#1!=rangelast(0,$bf)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte) rem8u#0 = 0 Constant (const word) rem16u#0 = 0 @@ -2076,12 +2076,12 @@ Constant (const signed byte) rem8s#0 = 0 Constant (const signed word) rem16s#0 = 0 Constant (const word) mul8u::res#0 = 0 Constant (const dword) mul16u::res#0 = 0 -Constant (const dword) PI2_u4f28#0 = 1686629713 -Constant (const dword) PI_u4f28#0 = 843314857 -Constant (const dword) PI_HALF_u4f28#0 = 421657428 -Constant (const word) PI2_u4f12#0 = 25736 -Constant (const word) PI_u4f12#0 = 12868 -Constant (const word) PI_HALF_u4f12#0 = 6434 +Constant (const dword) PI2_u4f28#0 = $6487ed51 +Constant (const dword) PI_u4f28#0 = $3243f6a9 +Constant (const dword) PI_HALF_u4f28#0 = $1921fb54 +Constant (const word) PI2_u4f12#0 = $6488 +Constant (const word) PI_u4f12#0 = $3244 +Constant (const word) PI_HALF_u4f12#0 = $1922 Constant (const dword) sin16s_gen::x#0 = 0 Constant (const word) sin16s_gen::i#0 = 0 Constant (const word) sin8s_gen::x#0 = 0 @@ -2090,7 +2090,7 @@ Constant (const byte) sin16s::isUpper#0 = 0 Constant (const byte) sin16s::isUpper#1 = 1 Constant (const byte) mulu16_sel::select#0 = 0 Constant (const byte) mulu16_sel::select#1 = 1 -Constant (const word) mulu16_sel::v2#2 = 65536/6 +Constant (const word) mulu16_sel::v2#2 = $10000/6 Constant (const byte) mulu16_sel::select#2 = 1 Constant (const byte) mulu16_sel::select#3 = 0 Constant (const byte) mulu16_sel::select#4 = 0 @@ -2098,17 +2098,17 @@ Constant (const byte) sin8s::isUpper#0 = 0 Constant (const byte) sin8s::isUpper#1 = 1 Constant (const byte) mulu8_sel::select#0 = 0 Constant (const byte) mulu8_sel::select#1 = 1 -Constant (const byte) sin8s::DIV_6#0 = 43 +Constant (const byte) sin8s::DIV_6#0 = $2b Constant (const byte) mulu8_sel::select#2 = 1 Constant (const byte) mulu8_sel::select#3 = 0 Constant (const byte) mulu8_sel::select#4 = 0 -Constant (const byte*) print_line_cursor#0 = ((byte*))1024 +Constant (const byte*) print_line_cursor#0 = ((byte*))$400 Constant (const byte) print_char::ch#0 = '-' Constant (const byte) print_char::ch#1 = ' ' Constant (const byte[]) print_hextab#0 = $0 -Constant (const word) main::wavelength#0 = 192 -Constant (const signed byte[192]) main::sintabb#0 = { fill( 192, 0) } -Constant (const signed word[192]) main::sintabw#0 = { fill( 192, 0) } +Constant (const word) main::wavelength#0 = $c0 +Constant (const signed byte[$c0]) main::sintabb#0 = { fill( $c0, 0) } +Constant (const signed word[$c0]) main::sintabw#0 = { fill( $c0, 0) } Constant (const byte) main::i#0 = 0 Constant (const byte*) print_str::str#1 = main::str Constant (const byte*) print_str::str#2 = main::str1 @@ -2117,7 +2117,7 @@ Constant (const dword) div32u16u::dividend#0 = PI2_u4f28#0 Constant (const word) div16u::dividend#0 = PI2_u4f12#0 Constant (const byte) mulu8_sel::v2#2 = sin8s::DIV_6#0 Constant (const byte*) print_cls::sc#0 = print_line_cursor#0 -Constant (const byte*) print_cls::$0 = print_line_cursor#0+1000 +Constant (const byte*) print_cls::$0 = print_line_cursor#0+$3e8 Constant (const signed byte*) sin8s_gen::sintab#1 = main::sintabb#0 Constant (const word) sin8s_gen::wavelength#0 = main::wavelength#0 Constant (const signed word*) sin16s_gen::sintab#1 = main::sintabw#0 @@ -2144,9 +2144,9 @@ Eliminating Noop Cast (byte) print_byte::b#0 ← ((byte)) (signed byte) print_sb Eliminating Noop Cast (signed byte~) main::$7 ← ((signed byte)) (byte~) main::$6 Successful SSA optimization Pass2NopCastElimination Resolved ranged next value divr16u::i#1 ← ++ divr16u::i#2 to ++ -Resolved ranged comparison value if(divr16u::i#1!=rangelast(0,15)) goto divr16u::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ -Resolved ranged comparison value if(main::i#1!=rangelast(0,191)) goto main::@1 to (byte/word/signed word/dword/signed dword) 192 +Resolved ranged comparison value if(main::i#1!=rangelast(0,$bf)) goto main::@1 to (byte/word/signed word/dword/signed dword) $c0 Culled Empty Block (label) @2 Culled Empty Block (label) @5 Culled Empty Block (label) @6 @@ -2206,7 +2206,7 @@ Inlining constant with var siblings (const byte) print_char::ch#1 Inlining constant with var siblings (const byte*) print_cls::sc#0 Inlining constant with var siblings (const byte) main::i#0 Constant inlined divr16u::rem#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined print_cls::$0 = (const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000 +Constant inlined print_cls::$0 = (const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8 Constant inlined divr16u::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined divr16u::rem#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined sin16s_gen::wavelength#0 = (const word) main::wavelength#0 @@ -2240,13 +2240,13 @@ Constant inlined divr16u::dividend#1 = (const word) PI2_u4f12#0 Constant inlined print_cls::sc#0 = (const byte*) print_line_cursor#0 Constant inlined divr16u::dividend#2 = >(const dword) PI2_u4f28#0 Constant inlined divr16u::dividend#3 = <(const dword) PI2_u4f28#0 -Constant inlined sin16s_gen::sintab#1 = (const signed word[192]) main::sintabw#0 +Constant inlined sin16s_gen::sintab#1 = (const signed word[$c0]) main::sintabw#0 Constant inlined mulu8_sel::v2#2 = (const byte) sin8s::DIV_6#0 Constant inlined mul8u::res#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined print_char::ch#1 = (byte) ' ' -Constant inlined mulu16_sel::v2#2 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 +Constant inlined mulu16_sel::v2#2 = (dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 Constant inlined print_char::ch#0 = (byte) '-' -Constant inlined sin8s_gen::sintab#1 = (const signed byte[192]) main::sintabb#0 +Constant inlined sin8s_gen::sintab#1 = (const signed byte[$c0]) main::sintabb#0 Constant inlined sin16s_gen::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined sin8s_gen::wavelength#0 = (const word) main::wavelength#0 Constant inlined print_str::str#2 = (const string) main::str1 @@ -2440,10 +2440,10 @@ main::@6: scope:[main] from main::@5 main::@1: scope:[main] from main::@6 main::@9 [10] (byte*) print_char_cursor#45 ← phi( main::@6/(const byte*) print_line_cursor#0 main::@9/(byte*) print_char_cursor#2 ) [10] (byte) main::i#2 ← phi( main::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@9/(byte) main::i#1 ) - [11] (signed byte) main::sb#0 ← *((const signed byte[192]) main::sintabb#0 + (byte) main::i#2) + [11] (signed byte) main::sb#0 ← *((const signed byte[$c0]) main::sintabb#0 + (byte) main::i#2) [12] (word~) main::$3 ← ((word)) (byte) main::i#2 [13] (word~) main::$4 ← (word~) main::$3 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [14] (signed word*~) main::$5 ← (const signed word[192]) main::sintabw#0 + (word~) main::$4 + [14] (signed word*~) main::$5 ← (const signed word[$c0]) main::sintabw#0 + (word~) main::$4 [15] (signed word) main::sw#0 ← *((signed word*~) main::$5) [16] (byte~) main::$6 ← > (signed word) main::sw#0 [17] (signed byte) main::sd#0 ← (signed byte) main::sb#0 - (signed byte)(byte~) main::$6 @@ -2464,7 +2464,7 @@ main::@8: scope:[main] from main::@2 to:main::@9 main::@9: scope:[main] from main::@8 [26] (byte) main::i#1 ← ++ (byte) main::i#2 - [27] if((byte) main::i#1!=(byte/word/signed word/dword/signed dword) 192) goto main::@1 + [27] if((byte) main::i#1!=(byte/word/signed word/dword/signed dword) $c0) goto main::@1 to:main::@return main::@return: scope:[main] from main::@9 [28] return @@ -2522,7 +2522,7 @@ print_byte: scope:[print_byte] from print_sbyte::@2 [51] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [52] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [52] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [53] (byte) print_char::ch#3 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [54] call print_char to:print_byte::@return @@ -2536,7 +2536,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 [57] (byte*) print_cls::sc#2 ← phi( print_cls/(const byte*) print_line_cursor#0 print_cls::@1/(byte*) print_cls::sc#1 ) [58] *((byte*) print_cls::sc#2) ← (byte) ' ' [59] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [60] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [60] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [61] return @@ -2551,7 +2551,7 @@ sin16s_gen::@3: scope:[sin16s_gen] from sin16s_gen to:sin16s_gen::@1 sin16s_gen::@1: scope:[sin16s_gen] from sin16s_gen::@3 sin16s_gen::@4 [66] (word) sin16s_gen::i#2 ← phi( sin16s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@4/(word) sin16s_gen::i#1 ) - [66] (signed word*) sin16s_gen::sintab#2 ← phi( sin16s_gen::@3/(const signed word[192]) main::sintabw#0 sin16s_gen::@4/(signed word*) sin16s_gen::sintab#0 ) + [66] (signed word*) sin16s_gen::sintab#2 ← phi( sin16s_gen::@3/(const signed word[$c0]) main::sintabw#0 sin16s_gen::@4/(signed word*) sin16s_gen::sintab#0 ) [66] (dword) sin16s_gen::x#2 ← phi( sin16s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@4/(dword) sin16s_gen::x#1 ) [67] (dword) sin16s::x#0 ← (dword) sin16s_gen::x#2 [68] call sin16s @@ -2639,7 +2639,7 @@ sin16s::@15: scope:[sin16s] from sin16s::@12 to:sin16s::@3 mulu16_sel: scope:[mulu16_sel] from sin16s::@10 sin16s::@11 sin16s::@2 sin16s::@8 sin16s::@9 [117] (byte) mulu16_sel::select#5 ← phi( sin16s::@10/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@11/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16s::@9/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [117] (word) mulu16_sel::v2#5 ← phi( sin16s::@10/(word) mulu16_sel::v2#3 sin16s::@11/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@8/(word) mulu16_sel::v2#1 sin16s::@9/(dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 ) + [117] (word) mulu16_sel::v2#5 ← phi( sin16s::@10/(word) mulu16_sel::v2#3 sin16s::@11/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@8/(word) mulu16_sel::v2#1 sin16s::@9/(dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 ) [117] (word) mulu16_sel::v1#5 ← phi( sin16s::@10/(word) mulu16_sel::v1#3 sin16s::@11/(word) mulu16_sel::v1#4 sin16s::@2/(word) mulu16_sel::v1#0 sin16s::@8/(word) mulu16_sel::v1#1 sin16s::@9/(word) mulu16_sel::v1#2 ) [118] (word) mul16u::a#1 ← (word) mulu16_sel::v1#5 [119] (word) mul16u::b#0 ← (word) mulu16_sel::v2#5 @@ -2707,7 +2707,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 [147] (word) divr16u::rem#6 ← phi( divr16u/(word) divr16u::rem#11 divr16u::@3/(word) divr16u::rem#10 ) [148] (word) divr16u::rem#0 ← (word) divr16u::rem#6 << (byte/signed byte/word/signed word/dword/signed dword) 1 [149] (byte~) divr16u::$1 ← > (word) divr16u::dividend#4 - [150] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + [150] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [151] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 to:divr16u::@4 divr16u::@4: scope:[divr16u] from divr16u::@1 @@ -2727,7 +2727,7 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 [159] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [159] (word) divr16u::rem#10 ← phi( divr16u::@2/(word) divr16u::rem#7 divr16u::@5/(word) divr16u::rem#2 ) [160] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 - [161] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 + [161] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 to:divr16u::@6 divr16u::@6: scope:[divr16u] from divr16u::@3 [162] (word) rem16u#1 ← (word) divr16u::rem#10 @@ -2745,7 +2745,7 @@ sin8s_gen::@3: scope:[sin8s_gen] from sin8s_gen to:sin8s_gen::@1 sin8s_gen::@1: scope:[sin8s_gen] from sin8s_gen::@3 sin8s_gen::@4 [168] (word) sin8s_gen::i#2 ← phi( sin8s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8s_gen::@4/(word) sin8s_gen::i#1 ) - [168] (signed byte*) sin8s_gen::sintab#2 ← phi( sin8s_gen::@3/(const signed byte[192]) main::sintabb#0 sin8s_gen::@4/(signed byte*) sin8s_gen::sintab#0 ) + [168] (signed byte*) sin8s_gen::sintab#2 ← phi( sin8s_gen::@3/(const signed byte[$c0]) main::sintabb#0 sin8s_gen::@4/(signed byte*) sin8s_gen::sintab#0 ) [168] (word) sin8s_gen::x#2 ← phi( sin8s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8s_gen::@4/(word) sin8s_gen::x#1 ) [169] (word) sin8s::x#0 ← (word) sin8s_gen::x#2 [170] call sin8s @@ -2817,7 +2817,7 @@ sin8s::@14: scope:[sin8s] from sin8s::@13 [211] (byte) sin8s::x5#0 ← (byte) mulu8_sel::return#11 [212] (byte) sin8s::x5_128#0 ← (byte) sin8s::x5#0 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [213] (byte) sin8s::usinx#1 ← (byte) sin8s::usinx#0 + (byte) sin8s::x5_128#0 - [214] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) 128) goto sin8s::@3 + [214] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) $80) goto sin8s::@3 to:sin8s::@7 sin8s::@7: scope:[sin8s] from sin8s::@14 [215] (byte) sin8s::usinx#2 ← -- (byte) sin8s::usinx#1 @@ -2957,8 +2957,8 @@ VARIABLE REGISTER WEIGHTS (signed byte) main::sb#0 3.6666666666666665 (signed byte) main::sd (signed byte) main::sd#0 6.6000000000000005 -(signed byte[192]) main::sintabb -(signed word[192]) main::sintabw +(signed byte[$c0]) main::sintabb +(signed word[$c0]) main::sintabw (signed word) main::sw (signed word) main::sw#0 22.0 (word) main::wavelength @@ -3586,7 +3586,7 @@ main: { jmp b1 //SEG27 main::@1 b1: - //SEG28 [11] (signed byte) main::sb#0 ← *((const signed byte[192]) main::sintabb#0 + (byte) main::i#2) -- vbsz1=pbsc1_derefidx_vbuz2 + //SEG28 [11] (signed byte) main::sb#0 ← *((const signed byte[$c0]) main::sintabb#0 + (byte) main::i#2) -- vbsz1=pbsc1_derefidx_vbuz2 ldy i lda sintabb,y sta sb @@ -3602,7 +3602,7 @@ main: { lda _3+1 rol sta _4+1 - //SEG31 [14] (signed word*~) main::$5 ← (const signed word[192]) main::sintabw#0 + (word~) main::$4 -- pwsz1=pwsc1_plus_vwuz2 + //SEG31 [14] (signed word*~) main::$5 ← (const signed word[$c0]) main::sintabw#0 + (word~) main::$4 -- pwsz1=pwsc1_plus_vwuz2 lda _4 clc adc #print_line_cursor+$3e8 bne b1_from_b1 @@ -3938,7 +3938,7 @@ sin16s_gen: { sta i lda #>0 sta i+1 - //SEG132 [66] phi (signed word*) sin16s_gen::sintab#2 = (const signed word[192]) main::sintabw#0 [phi:sin16s_gen::@3->sin16s_gen::@1#1] -- pwsz1=pwsc1 + //SEG132 [66] phi (signed word*) sin16s_gen::sintab#2 = (const signed word[$c0]) main::sintabw#0 [phi:sin16s_gen::@3->sin16s_gen::@1#1] -- pwsz1=pwsc1 lda #main.sintabw @@ -4243,7 +4243,7 @@ sin16s: { //SEG193 [117] phi (byte) mulu16_sel::select#5 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@9->mulu16_sel#0] -- vbuz1=vbuc1 lda #1 sta mulu16_sel.select - //SEG194 [117] phi (word) mulu16_sel::v2#5 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 + //SEG194 [117] phi (word) mulu16_sel::v2#5 = (dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 lda #<$10000/6 sta mulu16_sel.v2 lda #>$10000/6 @@ -4686,7 +4686,7 @@ divr16u: { //SEG299 [149] (byte~) divr16u::$1 ← > (word) divr16u::dividend#4 -- vbuz1=_hi_vwuz2 lda dividend+1 sta _1 - //SEG300 [150] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG300 [150] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuz1=vbuz2_band_vbuc1 lda #$80 and _1 sta _2 @@ -4749,7 +4749,7 @@ divr16u: { b3: //SEG317 [160] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG318 [161] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG318 [161] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b3 @@ -4802,7 +4802,7 @@ sin8s_gen: { sta i lda #>0 sta i+1 - //SEG331 [168] phi (signed byte*) sin8s_gen::sintab#2 = (const signed byte[192]) main::sintabb#0 [phi:sin8s_gen::@3->sin8s_gen::@1#1] -- pbsz1=pbsc1 + //SEG331 [168] phi (signed byte*) sin8s_gen::sintab#2 = (const signed byte[$c0]) main::sintabb#0 [phi:sin8s_gen::@3->sin8s_gen::@1#1] -- pbsz1=pbsc1 lda #main.sintabb @@ -5114,7 +5114,7 @@ sin8s: { clc adc x5_128 sta usinx_1 - //SEG421 [214] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) 128) goto sin8s::@3 -- vbuz1_lt_vbuc1_then_la1 + //SEG421 [214] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) $80) goto sin8s::@3 -- vbuz1_lt_vbuc1_then_la1 lda usinx_1 cmp #$80 bcc b3_from_b14 @@ -5345,7 +5345,7 @@ Statement [12] (word~) main::$3 ← ((word)) (byte) main::i#2 [ main::i#2 print_ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:67 [ main::sb#0 ] Statement [13] (word~) main::$4 ← (word~) main::$3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::i#2 print_char_cursor#45 main::sb#0 main::$4 ] ( main:2 [ main::i#2 print_char_cursor#45 main::sb#0 main::$4 ] ) always clobbers reg byte a -Statement [14] (signed word*~) main::$5 ← (const signed word[192]) main::sintabw#0 + (word~) main::$4 [ main::i#2 print_char_cursor#45 main::sb#0 main::$5 ] ( main:2 [ main::i#2 print_char_cursor#45 main::sb#0 main::$5 ] ) always clobbers reg byte a +Statement [14] (signed word*~) main::$5 ← (const signed word[$c0]) main::sintabw#0 + (word~) main::$4 [ main::i#2 print_char_cursor#45 main::sb#0 main::$5 ] ( main:2 [ main::i#2 print_char_cursor#45 main::sb#0 main::$5 ] ) always clobbers reg byte a Statement [15] (signed word) main::sw#0 ← *((signed word*~) main::$5) [ main::i#2 print_char_cursor#45 main::sb#0 main::sw#0 ] ( main:2 [ main::i#2 print_char_cursor#45 main::sb#0 main::sw#0 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:67 [ main::sb#0 ] @@ -5360,9 +5360,9 @@ Statement [46] *((byte*) print_char_cursor#29) ← (byte) print_char::ch#4 [ pri Removing always clobbered register reg byte y as potential for zp ZP_BYTE:5 [ print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 ] Statement [49] (byte~) print_byte::$0 ← (byte)(signed byte) print_sbyte::b#4 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_char_cursor#10 print_sbyte::b#4 print_byte::$0 ] ( main:2::print_sbyte:23::print_byte:40 [ main::i#2 print_char_cursor#10 print_sbyte::b#4 print_byte::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 ] -Statement [52] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_sbyte:23::print_byte:40 [ main::i#2 print_char_cursor#10 print_byte::$2 ] ) always clobbers reg byte a +Statement [52] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_sbyte:23::print_byte:40 [ main::i#2 print_char_cursor#10 print_byte::$2 ] ) always clobbers reg byte a Statement [58] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:9 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [60] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:9 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [60] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:9 [ print_cls::sc#1 ] ) always clobbers reg byte a Statement [64] (dword) div32u16u::return#2 ← (dword) div32u16u::return#0 [ div32u16u::return#2 ] ( main:2::sin16s_gen:7 [ div32u16u::return#2 ] ) always clobbers reg byte a Statement [65] (dword) sin16s_gen::step#0 ← (dword) div32u16u::return#2 [ sin16s_gen::step#0 ] ( main:2::sin16s_gen:7 [ sin16s_gen::step#0 ] ) always clobbers reg byte a Statement [67] (dword) sin16s::x#0 ← (dword) sin16s_gen::x#2 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] ( main:2::sin16s_gen:7 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] ) always clobbers reg byte a @@ -5423,7 +5423,7 @@ Statement [143] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#4 [ d Statement [144] (dword) div32u16u::return#0 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#0 ] ( main:2::sin16s_gen:7::div32u16u:63 [ div32u16u::return#0 ] ) always clobbers reg byte a Statement [149] (byte~) divr16u::$1 ← > (word) divr16u::dividend#4 [ divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:7::div32u16u:63::divr16u:137 [ divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:7::div32u16u:63::divr16u:141 [ div32u16u::quotient_hi#0 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin8s_gen:5::div16u:165::divr16u:242 [ divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:47 [ divr16u::i#2 divr16u::i#1 ] -Statement [150] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:7::div32u16u:63::divr16u:137 [ divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:7::div32u16u:63::divr16u:141 [ div32u16u::quotient_hi#0 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin8s_gen:5::div16u:165::divr16u:242 [ divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a +Statement [150] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [ divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:7::div32u16u:63::divr16u:137 [ divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:7::div32u16u:63::divr16u:141 [ div32u16u::quotient_hi#0 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin8s_gen:5::div16u:165::divr16u:242 [ divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a Statement [152] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:7::div32u16u:63::divr16u:137 [ divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:7::div32u16u:63::divr16u:141 [ div32u16u::quotient_hi#0 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin8s_gen:5::div16u:165::divr16u:242 [ divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a Statement [156] if((word) divr16u::rem#7<(const word) main::wavelength#0) goto divr16u::@3 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#7 divr16u::quotient#1 ] ( main:2::sin16s_gen:7::div32u16u:63::divr16u:137 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#7 divr16u::quotient#1 ] main:2::sin16s_gen:7::div32u16u:63::divr16u:141 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#7 divr16u::quotient#1 ] main:2::sin8s_gen:5::div16u:165::divr16u:242 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#7 divr16u::quotient#1 ] ) always clobbers reg byte a Statement [158] (word) divr16u::rem#2 ← (word) divr16u::rem#7 - (const word) main::wavelength#0 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:7::div32u16u:63::divr16u:137 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:7::div32u16u:63::divr16u:141 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin8s_gen:5::div16u:165::divr16u:242 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a @@ -5459,10 +5459,10 @@ Statement [235] (byte~) mul8u::$1 ← (byte) mul8u::a#2 & (byte/signed byte/word Statement [237] (word) mul8u::res#1 ← (word) mul8u::res#2 + (word) mul8u::mb#2 [ mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] ( main:2::sin8s_gen:5::sin8s:170::mulu8_sel:189::mul8u:225 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] main:2::sin8s_gen:5::sin8s:170::mulu8_sel:194::mul8u:225 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] main:2::sin8s_gen:5::sin8s:170::mulu8_sel:198::mul8u:225 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] main:2::sin8s_gen:5::sin8s:170::mulu8_sel:204::mul8u:225 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] main:2::sin8s_gen:5::sin8s:170::mulu8_sel:209::mul8u:225 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] ) always clobbers reg byte a Statement [243] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 ] ( main:2::sin8s_gen:5::div16u:165 [ divr16u::return#2 ] ) always clobbers reg byte a Statement [244] (word) div16u::return#0 ← (word) divr16u::return#2 [ div16u::return#0 ] ( main:2::sin8s_gen:5::div16u:165 [ div16u::return#0 ] ) always clobbers reg byte a -Statement [11] (signed byte) main::sb#0 ← *((const signed byte[192]) main::sintabb#0 + (byte) main::i#2) [ main::i#2 print_char_cursor#45 main::sb#0 ] ( main:2 [ main::i#2 print_char_cursor#45 main::sb#0 ] ) always clobbers reg byte a +Statement [11] (signed byte) main::sb#0 ← *((const signed byte[$c0]) main::sintabb#0 + (byte) main::i#2) [ main::i#2 print_char_cursor#45 main::sb#0 ] ( main:2 [ main::i#2 print_char_cursor#45 main::sb#0 ] ) always clobbers reg byte a Statement [12] (word~) main::$3 ← ((word)) (byte) main::i#2 [ main::i#2 print_char_cursor#45 main::sb#0 main::$3 ] ( main:2 [ main::i#2 print_char_cursor#45 main::sb#0 main::$3 ] ) always clobbers reg byte a Statement [13] (word~) main::$4 ← (word~) main::$3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::i#2 print_char_cursor#45 main::sb#0 main::$4 ] ( main:2 [ main::i#2 print_char_cursor#45 main::sb#0 main::$4 ] ) always clobbers reg byte a -Statement [14] (signed word*~) main::$5 ← (const signed word[192]) main::sintabw#0 + (word~) main::$4 [ main::i#2 print_char_cursor#45 main::sb#0 main::$5 ] ( main:2 [ main::i#2 print_char_cursor#45 main::sb#0 main::$5 ] ) always clobbers reg byte a +Statement [14] (signed word*~) main::$5 ← (const signed word[$c0]) main::sintabw#0 + (word~) main::$4 [ main::i#2 print_char_cursor#45 main::sb#0 main::$5 ] ( main:2 [ main::i#2 print_char_cursor#45 main::sb#0 main::$5 ] ) always clobbers reg byte a Statement [15] (signed word) main::sw#0 ← *((signed word*~) main::$5) [ main::i#2 print_char_cursor#45 main::sb#0 main::sw#0 ] ( main:2 [ main::i#2 print_char_cursor#45 main::sb#0 main::sw#0 ] ) always clobbers reg byte a reg byte y Statement [16] (byte~) main::$6 ← > (signed word) main::sw#0 [ main::i#2 print_char_cursor#45 main::sb#0 main::$6 ] ( main:2 [ main::i#2 print_char_cursor#45 main::sb#0 main::$6 ] ) always clobbers reg byte a Statement [17] (signed byte) main::sd#0 ← (signed byte) main::sb#0 - (signed byte)(byte~) main::$6 [ main::i#2 print_char_cursor#45 main::sd#0 ] ( main:2 [ main::i#2 print_char_cursor#45 main::sd#0 ] ) always clobbers reg byte a @@ -5471,9 +5471,9 @@ Statement [33] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#3) [ Statement [44] (signed byte) print_sbyte::b#0 ← - (signed byte) print_sbyte::b#1 [ print_char_cursor#10 print_sbyte::b#0 ] ( main:2::print_sbyte:23 [ main::i#2 print_char_cursor#10 print_sbyte::b#0 ] ) always clobbers reg byte a Statement [46] *((byte*) print_char_cursor#29) ← (byte) print_char::ch#4 [ print_char_cursor#29 ] ( main:2::print_sbyte:23::print_char:38 [ main::i#2 print_sbyte::b#1 print_char_cursor#29 ] main:2::print_sbyte:23::print_char:43 [ main::i#2 print_sbyte::b#1 print_char_cursor#29 ] main:2::print_sbyte:23::print_byte:40::print_char:51 [ main::i#2 print_sbyte::b#4 print_char_cursor#29 ] main:2::print_sbyte:23::print_byte:40::print_char:54 [ main::i#2 print_char_cursor#29 ] ) always clobbers reg byte y Statement [49] (byte~) print_byte::$0 ← (byte)(signed byte) print_sbyte::b#4 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_char_cursor#10 print_sbyte::b#4 print_byte::$0 ] ( main:2::print_sbyte:23::print_byte:40 [ main::i#2 print_char_cursor#10 print_sbyte::b#4 print_byte::$0 ] ) always clobbers reg byte a -Statement [52] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_sbyte:23::print_byte:40 [ main::i#2 print_char_cursor#10 print_byte::$2 ] ) always clobbers reg byte a +Statement [52] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_sbyte:23::print_byte:40 [ main::i#2 print_char_cursor#10 print_byte::$2 ] ) always clobbers reg byte a Statement [58] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:9 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [60] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:9 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [60] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:9 [ print_cls::sc#1 ] ) always clobbers reg byte a Statement [64] (dword) div32u16u::return#2 ← (dword) div32u16u::return#0 [ div32u16u::return#2 ] ( main:2::sin16s_gen:7 [ div32u16u::return#2 ] ) always clobbers reg byte a Statement [65] (dword) sin16s_gen::step#0 ← (dword) div32u16u::return#2 [ sin16s_gen::step#0 ] ( main:2::sin16s_gen:7 [ sin16s_gen::step#0 ] ) always clobbers reg byte a Statement [67] (dword) sin16s::x#0 ← (dword) sin16s_gen::x#2 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] ( main:2::sin16s_gen:7 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] ) always clobbers reg byte a @@ -5530,7 +5530,7 @@ Statement [142] (word) divr16u::return#4 ← (word) divr16u::return#0 [ div32u16 Statement [143] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#4 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:7::div32u16u:63 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ) always clobbers reg byte a Statement [144] (dword) div32u16u::return#0 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#0 ] ( main:2::sin16s_gen:7::div32u16u:63 [ div32u16u::return#0 ] ) always clobbers reg byte a Statement [149] (byte~) divr16u::$1 ← > (word) divr16u::dividend#4 [ divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:7::div32u16u:63::divr16u:137 [ divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:7::div32u16u:63::divr16u:141 [ div32u16u::quotient_hi#0 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin8s_gen:5::div16u:165::divr16u:242 [ divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a -Statement [150] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:7::div32u16u:63::divr16u:137 [ divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:7::div32u16u:63::divr16u:141 [ div32u16u::quotient_hi#0 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin8s_gen:5::div16u:165::divr16u:242 [ divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a +Statement [150] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [ divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:7::div32u16u:63::divr16u:137 [ divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:7::div32u16u:63::divr16u:141 [ div32u16u::quotient_hi#0 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin8s_gen:5::div16u:165::divr16u:242 [ divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a Statement [152] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:7::div32u16u:63::divr16u:137 [ divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:7::div32u16u:63::divr16u:141 [ div32u16u::quotient_hi#0 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin8s_gen:5::div16u:165::divr16u:242 [ divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a Statement [156] if((word) divr16u::rem#7<(const word) main::wavelength#0) goto divr16u::@3 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#7 divr16u::quotient#1 ] ( main:2::sin16s_gen:7::div32u16u:63::divr16u:137 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#7 divr16u::quotient#1 ] main:2::sin16s_gen:7::div32u16u:63::divr16u:141 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#7 divr16u::quotient#1 ] main:2::sin8s_gen:5::div16u:165::divr16u:242 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#7 divr16u::quotient#1 ] ) always clobbers reg byte a Statement [158] (word) divr16u::rem#2 ← (word) divr16u::rem#7 - (const word) main::wavelength#0 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:7::div32u16u:63::divr16u:137 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:7::div32u16u:63::divr16u:141 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin8s_gen:5::div16u:165::divr16u:242 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a @@ -5900,7 +5900,7 @@ main: { jmp b1 //SEG27 main::@1 b1: - //SEG28 [11] (signed byte) main::sb#0 ← *((const signed byte[192]) main::sintabb#0 + (byte) main::i#2) -- vbsz1=pbsc1_derefidx_vbuxx + //SEG28 [11] (signed byte) main::sb#0 ← *((const signed byte[$c0]) main::sintabb#0 + (byte) main::i#2) -- vbsz1=pbsc1_derefidx_vbuxx lda sintabb,x sta sb //SEG29 [12] (word~) main::$3 ← ((word)) (byte) main::i#2 -- vwuz1=_word_vbuxx @@ -5911,7 +5911,7 @@ main: { //SEG30 [13] (word~) main::$4 ← (word~) main::$3 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vwuz1=vwuz1_rol_1 asl _4 rol _4+1 - //SEG31 [14] (signed word*~) main::$5 ← (const signed word[192]) main::sintabw#0 + (word~) main::$4 -- pwsz1=pwsc1_plus_vwuz1 + //SEG31 [14] (signed word*~) main::$5 ← (const signed word[$c0]) main::sintabw#0 + (word~) main::$4 -- pwsz1=pwsc1_plus_vwuz1 clc lda _5 adc #print_line_cursor+$3e8 bne b1_from_b1 @@ -6217,7 +6217,7 @@ sin16s_gen: { sta i lda #>0 sta i+1 - //SEG132 [66] phi (signed word*) sin16s_gen::sintab#2 = (const signed word[192]) main::sintabw#0 [phi:sin16s_gen::@3->sin16s_gen::@1#1] -- pwsz1=pwsc1 + //SEG132 [66] phi (signed word*) sin16s_gen::sintab#2 = (const signed word[$c0]) main::sintabw#0 [phi:sin16s_gen::@3->sin16s_gen::@1#1] -- pwsz1=pwsc1 lda #main.sintabw @@ -6484,7 +6484,7 @@ sin16s: { mulu16_sel_from_b9: //SEG193 [117] phi (byte) mulu16_sel::select#5 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@9->mulu16_sel#0] -- vbuxx=vbuc1 ldx #1 - //SEG194 [117] phi (word) mulu16_sel::v2#5 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 + //SEG194 [117] phi (word) mulu16_sel::v2#5 = (dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 lda #<$10000/6 sta mulu16_sel.v2 lda #>$10000/6 @@ -6829,7 +6829,7 @@ divr16u: { rol rem+1 //SEG299 [149] (byte~) divr16u::$1 ← > (word) divr16u::dividend#4 -- vbuaa=_hi_vwuz1 lda dividend+1 - //SEG300 [150] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuaa_band_vbuc1 + //SEG300 [150] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 //SEG301 [151] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuaa_eq_0_then_la1 cmp #0 @@ -6889,7 +6889,7 @@ divr16u: { b3: //SEG317 [160] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuxx=_inc_vbuxx inx - //SEG318 [161] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG318 [161] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1_from_b3 jmp b6 @@ -6928,7 +6928,7 @@ sin8s_gen: { sta i lda #>0 sta i+1 - //SEG331 [168] phi (signed byte*) sin8s_gen::sintab#2 = (const signed byte[192]) main::sintabb#0 [phi:sin8s_gen::@3->sin8s_gen::@1#1] -- pbsz1=pbsc1 + //SEG331 [168] phi (signed byte*) sin8s_gen::sintab#2 = (const signed byte[$c0]) main::sintabb#0 [phi:sin8s_gen::@3->sin8s_gen::@1#1] -- pbsz1=pbsc1 lda #main.sintabb @@ -7187,7 +7187,7 @@ sin8s: { clc adc usinx tax - //SEG421 [214] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) 128) goto sin8s::@3 -- vbuxx_lt_vbuc1_then_la1 + //SEG421 [214] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) $80) goto sin8s::@3 -- vbuxx_lt_vbuc1_then_la1 cpx #$80 bcc b3_from_b14 jmp b7 @@ -7658,17 +7658,17 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (word) PI2_u4f12 -(const word) PI2_u4f12#0 PI2_u4f12 = (word/signed word/dword/signed dword) 25736 +(const word) PI2_u4f12#0 PI2_u4f12 = (word/signed word/dword/signed dword) $6488 (dword) PI2_u4f28 -(const dword) PI2_u4f28#0 PI2_u4f28 = (dword/signed dword) 1686629713 +(const dword) PI2_u4f28#0 PI2_u4f28 = (dword/signed dword) $6487ed51 (word) PI_HALF_u4f12 -(const word) PI_HALF_u4f12#0 PI_HALF_u4f12 = (word/signed word/dword/signed dword) 6434 +(const word) PI_HALF_u4f12#0 PI_HALF_u4f12 = (word/signed word/dword/signed dword) $1922 (dword) PI_HALF_u4f28 -(const dword) PI_HALF_u4f28#0 PI_HALF_u4f28 = (dword/signed dword) 421657428 +(const dword) PI_HALF_u4f28#0 PI_HALF_u4f28 = (dword/signed dword) $1921fb54 (word) PI_u4f12 -(const word) PI_u4f12#0 PI_u4f12 = (word/signed word/dword/signed dword) 12868 +(const word) PI_u4f12#0 PI_u4f12 = (word/signed word/dword/signed dword) $3244 (dword) PI_u4f28 -(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) 843314857 +(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) $3243f6a9 (word()) div16u((word) div16u::dividend , (word) div16u::divisor) (label) div16u::@2 (label) div16u::@return @@ -7747,16 +7747,16 @@ FINAL SYMBOL TABLE (signed byte) main::sb#0 sb zp ZP_BYTE:4 3.6666666666666665 (signed byte) main::sd (signed byte) main::sd#0 sd zp ZP_BYTE:4 6.6000000000000005 -(signed byte[192]) main::sintabb -(const signed byte[192]) main::sintabb#0 sintabb = { fill( 192, 0) } -(signed word[192]) main::sintabw -(const signed word[192]) main::sintabw#0 sintabw = { fill( 192, 0) } +(signed byte[$c0]) main::sintabb +(const signed byte[$c0]) main::sintabb#0 sintabb = { fill( $c0, 0) } +(signed word[$c0]) main::sintabw +(const signed word[$c0]) main::sintabw#0 sintabw = { fill( $c0, 0) } (const string) main::str str = (string) " @" (const string) main::str1 str1 = (string) " @" (signed word) main::sw (signed word) main::sw#0 sw zp ZP_WORD:15 22.0 (word) main::wavelength -(const word) main::wavelength#0 wavelength = (byte/word/signed word/dword/signed dword) 192 +(const word) main::wavelength#0 wavelength = (byte/word/signed word/dword/signed dword) $c0 (dword()) mul16u((word) mul16u::a , (word) mul16u::b) (byte/word~) mul16u::$1 reg byte a 202.0 (label) mul16u::@1 @@ -7886,7 +7886,7 @@ FINAL SYMBOL TABLE (byte[]) print_hextab (const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor -(const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) $400 (void()) print_sbyte((signed byte) print_sbyte::b) (label) print_sbyte::@1 (label) print_sbyte::@2 @@ -7993,7 +7993,7 @@ FINAL SYMBOL TABLE (label) sin8s::@8 (label) sin8s::@return (byte) sin8s::DIV_6 -(const byte) sin8s::DIV_6#0 DIV_6 = (byte/signed byte/word/signed word/dword/signed dword) 43 +(const byte) sin8s::DIV_6#0 DIV_6 = (byte/signed byte/word/signed word/dword/signed dword) $2b (byte) sin8s::isUpper (byte) sin8s::isUpper#10 isUpper zp ZP_BYTE:4 0.05555555555555555 (signed byte) sin8s::return @@ -8160,7 +8160,7 @@ main: { //SEG26 [10] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@9->main::@1#1] -- register_copy //SEG27 main::@1 b1: - //SEG28 [11] (signed byte) main::sb#0 ← *((const signed byte[192]) main::sintabb#0 + (byte) main::i#2) -- vbsz1=pbsc1_derefidx_vbuxx + //SEG28 [11] (signed byte) main::sb#0 ← *((const signed byte[$c0]) main::sintabb#0 + (byte) main::i#2) -- vbsz1=pbsc1_derefidx_vbuxx lda sintabb,x sta sb //SEG29 [12] (word~) main::$3 ← ((word)) (byte) main::i#2 -- vwuz1=_word_vbuxx @@ -8171,7 +8171,7 @@ main: { //SEG30 [13] (word~) main::$4 ← (word~) main::$3 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vwuz1=vwuz1_rol_1 asl _4 rol _4+1 - //SEG31 [14] (signed word*~) main::$5 ← (const signed word[192]) main::sintabw#0 + (word~) main::$4 -- pwsz1=pwsc1_plus_vwuz1 + //SEG31 [14] (signed word*~) main::$5 ← (const signed word[$c0]) main::sintabw#0 + (word~) main::$4 -- pwsz1=pwsc1_plus_vwuz1 clc lda _5 adc #print_char#1] -- register_copy jsr print_char //SEG104 print_byte::@1 - //SEG105 [52] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG105 [52] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and print_sbyte.b //SEG106 [53] (byte) print_char::ch#3 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) -- vbuaa=pbuc1_derefidx_vbuaa @@ -8388,7 +8388,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG121 [60] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG121 [60] if((byte*) print_cls::sc#1!=(const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>print_line_cursor+$3e8 bne b1 @@ -8421,7 +8421,7 @@ sin16s_gen: { lda #<0 sta i sta i+1 - //SEG132 [66] phi (signed word*) sin16s_gen::sintab#2 = (const signed word[192]) main::sintabw#0 [phi:sin16s_gen::@3->sin16s_gen::@1#1] -- pwsz1=pwsc1 + //SEG132 [66] phi (signed word*) sin16s_gen::sintab#2 = (const signed word[$c0]) main::sintabw#0 [phi:sin16s_gen::@3->sin16s_gen::@1#1] -- pwsz1=pwsc1 lda #main.sintabw @@ -8664,7 +8664,7 @@ sin16s: { //SEG192 [117] phi from sin16s::@9 to mulu16_sel [phi:sin16s::@9->mulu16_sel] //SEG193 [117] phi (byte) mulu16_sel::select#5 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@9->mulu16_sel#0] -- vbuxx=vbuc1 ldx #1 - //SEG194 [117] phi (word) mulu16_sel::v2#5 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 + //SEG194 [117] phi (word) mulu16_sel::v2#5 = (dword/signed dword) $10000/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mulu16_sel#1] -- vwuz1=vwuc1 lda #<$10000/6 sta mulu16_sel.v2 lda #>$10000/6 @@ -8962,7 +8962,7 @@ divr16u: { rol rem+1 //SEG299 [149] (byte~) divr16u::$1 ← > (word) divr16u::dividend#4 -- vbuaa=_hi_vwuz1 lda dividend+1 - //SEG300 [150] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuaa_band_vbuc1 + //SEG300 [150] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 //SEG301 [151] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuaa_eq_0_then_la1 cmp #0 @@ -9012,7 +9012,7 @@ divr16u: { b3: //SEG317 [160] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuxx=_inc_vbuxx inx - //SEG318 [161] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG318 [161] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1 //SEG319 divr16u::@6 @@ -9042,7 +9042,7 @@ sin8s_gen: { lda #<0 sta i sta i+1 - //SEG331 [168] phi (signed byte*) sin8s_gen::sintab#2 = (const signed byte[192]) main::sintabb#0 [phi:sin8s_gen::@3->sin8s_gen::@1#1] -- pbsz1=pbsc1 + //SEG331 [168] phi (signed byte*) sin8s_gen::sintab#2 = (const signed byte[$c0]) main::sintabb#0 [phi:sin8s_gen::@3->sin8s_gen::@1#1] -- pbsz1=pbsc1 lda #main.sintabb @@ -9269,7 +9269,7 @@ sin8s: { clc adc usinx tax - //SEG421 [214] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) 128) goto sin8s::@3 -- vbuxx_lt_vbuc1_then_la1 + //SEG421 [214] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) $80) goto sin8s::@3 -- vbuxx_lt_vbuc1_then_la1 cpx #$80 bcc b3 //SEG422 sin8s::@7 diff --git a/src/test/ref/sinusgen8b.sym b/src/test/ref/sinusgen8b.sym index 96b10fd53..d4ebe349a 100644 --- a/src/test/ref/sinusgen8b.sym +++ b/src/test/ref/sinusgen8b.sym @@ -2,17 +2,17 @@ (label) @begin (label) @end (word) PI2_u4f12 -(const word) PI2_u4f12#0 PI2_u4f12 = (word/signed word/dword/signed dword) 25736 +(const word) PI2_u4f12#0 PI2_u4f12 = (word/signed word/dword/signed dword) $6488 (dword) PI2_u4f28 -(const dword) PI2_u4f28#0 PI2_u4f28 = (dword/signed dword) 1686629713 +(const dword) PI2_u4f28#0 PI2_u4f28 = (dword/signed dword) $6487ed51 (word) PI_HALF_u4f12 -(const word) PI_HALF_u4f12#0 PI_HALF_u4f12 = (word/signed word/dword/signed dword) 6434 +(const word) PI_HALF_u4f12#0 PI_HALF_u4f12 = (word/signed word/dword/signed dword) $1922 (dword) PI_HALF_u4f28 -(const dword) PI_HALF_u4f28#0 PI_HALF_u4f28 = (dword/signed dword) 421657428 +(const dword) PI_HALF_u4f28#0 PI_HALF_u4f28 = (dword/signed dword) $1921fb54 (word) PI_u4f12 -(const word) PI_u4f12#0 PI_u4f12 = (word/signed word/dword/signed dword) 12868 +(const word) PI_u4f12#0 PI_u4f12 = (word/signed word/dword/signed dword) $3244 (dword) PI_u4f28 -(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) 843314857 +(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) $3243f6a9 (word()) div16u((word) div16u::dividend , (word) div16u::divisor) (label) div16u::@2 (label) div16u::@return @@ -91,16 +91,16 @@ (signed byte) main::sb#0 sb zp ZP_BYTE:4 3.6666666666666665 (signed byte) main::sd (signed byte) main::sd#0 sd zp ZP_BYTE:4 6.6000000000000005 -(signed byte[192]) main::sintabb -(const signed byte[192]) main::sintabb#0 sintabb = { fill( 192, 0) } -(signed word[192]) main::sintabw -(const signed word[192]) main::sintabw#0 sintabw = { fill( 192, 0) } +(signed byte[$c0]) main::sintabb +(const signed byte[$c0]) main::sintabb#0 sintabb = { fill( $c0, 0) } +(signed word[$c0]) main::sintabw +(const signed word[$c0]) main::sintabw#0 sintabw = { fill( $c0, 0) } (const string) main::str str = (string) " @" (const string) main::str1 str1 = (string) " @" (signed word) main::sw (signed word) main::sw#0 sw zp ZP_WORD:15 22.0 (word) main::wavelength -(const word) main::wavelength#0 wavelength = (byte/word/signed word/dword/signed dword) 192 +(const word) main::wavelength#0 wavelength = (byte/word/signed word/dword/signed dword) $c0 (dword()) mul16u((word) mul16u::a , (word) mul16u::b) (byte/word~) mul16u::$1 reg byte a 202.0 (label) mul16u::@1 @@ -230,7 +230,7 @@ (byte[]) print_hextab (const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor -(const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) $400 (void()) print_sbyte((signed byte) print_sbyte::b) (label) print_sbyte::@1 (label) print_sbyte::@2 @@ -337,7 +337,7 @@ (label) sin8s::@8 (label) sin8s::@return (byte) sin8s::DIV_6 -(const byte) sin8s::DIV_6#0 DIV_6 = (byte/signed byte/word/signed word/dword/signed dword) 43 +(const byte) sin8s::DIV_6#0 DIV_6 = (byte/signed byte/word/signed word/dword/signed dword) $2b (byte) sin8s::isUpper (byte) sin8s::isUpper#10 isUpper zp ZP_BYTE:4 0.05555555555555555 (signed byte) sin8s::return diff --git a/src/test/ref/sinusgenscale8.cfg b/src/test/ref/sinusgenscale8.cfg index 44547f80f..61b6109b7 100644 --- a/src/test/ref/sinusgenscale8.cfg +++ b/src/test/ref/sinusgenscale8.cfg @@ -69,7 +69,7 @@ sin8u_table::@13: scope:[sin8u_table] from sin8u_table::@12 to:sin8u_table::@1 sin8u_table::@1: scope:[sin8u_table] from sin8u_table::@13 sin8u_table::@25 [34] (word) sin8u_table::i#10 ← phi( sin8u_table::@13/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8u_table::@25/(word) sin8u_table::i#1 ) - [34] (byte*) sin8u_table::sintab#2 ← phi( sin8u_table::@13/(const byte[20]) main::sintab#0 sin8u_table::@25/(byte*) sin8u_table::sintab#1 ) + [34] (byte*) sin8u_table::sintab#2 ← phi( sin8u_table::@13/(const byte[$14]) main::sintab#0 sin8u_table::@25/(byte*) sin8u_table::sintab#1 ) [34] (word) sin8u_table::x#10 ← phi( sin8u_table::@13/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8u_table::@25/(word) sin8u_table::x#1 ) [35] (word) sin8s::x#2 ← (word) sin8u_table::x#10 [36] call sin8s @@ -131,11 +131,11 @@ sin8u_table::@return: scope:[sin8u_table] from sin8u_table::@25 [68] return to:@return print_ln: scope:[print_ln] from sin8u_table::@13 sin8u_table::@24 - [69] (byte*) print_line_cursor#23 ← phi( sin8u_table::@13/((byte*))(word/signed word/dword/signed dword) 1024 sin8u_table::@24/(byte*) print_line_cursor#1 ) + [69] (byte*) print_line_cursor#23 ← phi( sin8u_table::@13/((byte*))(word/signed word/dword/signed dword) $400 sin8u_table::@24/(byte*) print_line_cursor#1 ) to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [70] (byte*) print_line_cursor#12 ← phi( print_ln/(byte*) print_line_cursor#23 print_ln::@1/(byte*) print_line_cursor#1 ) - [71] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#12 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [71] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#12 + (byte/signed byte/word/signed word/dword/signed dword) $28 [72] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#18) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 @@ -149,7 +149,7 @@ print_byte: scope:[print_byte] from print_sbyte::@2 print_word print_word::@1 s [77] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [78] (byte~) print_byte::$2 ← (byte) print_byte::b#8 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [78] (byte~) print_byte::$2 ← (byte) print_byte::b#8 & (byte/signed byte/word/signed word/dword/signed dword) $f [79] (byte) print_char::ch#4 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [80] call print_char to:print_byte::@return @@ -166,7 +166,7 @@ print_char::@return: scope:[print_char] from print_char [85] return to:@return print_str: scope:[print_str] from sin8u_table::@11 sin8u_table::@16 sin8u_table::@18 sin8u_table::@20 sin8u_table::@22 sin8u_table::@3 sin8u_table::@5 sin8u_table::@7 sin8u_table::@9 - [86] (byte*) print_char_cursor#105 ← phi( sin8u_table::@11/(byte*) print_char_cursor#18 sin8u_table::@16/(byte*~) print_char_cursor#126 sin8u_table::@18/(byte*) print_char_cursor#18 sin8u_table::@20/(byte*) print_char_cursor#18 sin8u_table::@22/(byte*) print_char_cursor#18 sin8u_table::@3/((byte*))(word/signed word/dword/signed dword) 1024 sin8u_table::@5/(byte*) print_char_cursor#18 sin8u_table::@7/(byte*) print_char_cursor#18 sin8u_table::@9/(byte*) print_char_cursor#18 ) + [86] (byte*) print_char_cursor#105 ← phi( sin8u_table::@11/(byte*) print_char_cursor#18 sin8u_table::@16/(byte*~) print_char_cursor#126 sin8u_table::@18/(byte*) print_char_cursor#18 sin8u_table::@20/(byte*) print_char_cursor#18 sin8u_table::@22/(byte*) print_char_cursor#18 sin8u_table::@3/((byte*))(word/signed word/dword/signed dword) $400 sin8u_table::@5/(byte*) print_char_cursor#18 sin8u_table::@7/(byte*) print_char_cursor#18 sin8u_table::@9/(byte*) print_char_cursor#18 ) [86] (byte*) print_str::str#12 ← phi( sin8u_table::@11/(const string) sin8u_table::str4 sin8u_table::@16/(const string) sin8u_table::str5 sin8u_table::@18/(const string) sin8u_table::str6 sin8u_table::@20/(const string) sin8u_table::str7 sin8u_table::@22/(const string) sin8u_table::str8 sin8u_table::@3/(const string) sin8u_table::str sin8u_table::@5/(const string) sin8u_table::str1 sin8u_table::@7/(const string) sin8u_table::str2 sin8u_table::@9/(const string) sin8u_table::str3 ) to:print_str::@1 print_str::@1: scope:[print_str] from print_str print_str::@2 @@ -337,7 +337,7 @@ sin8s::@14: scope:[sin8s] from sin8s::@13 [170] (byte) sin8s::x5#0 ← (byte) mulu8_sel::return#11 [171] (byte) sin8s::x5_128#0 ← (byte) sin8s::x5#0 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [172] (byte) sin8s::usinx#1 ← (byte) sin8s::usinx#0 + (byte) sin8s::x5_128#0 - [173] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) 128) goto sin8s::@3 + [173] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) $80) goto sin8s::@3 to:sin8s::@7 sin8s::@7: scope:[sin8s] from sin8s::@14 [174] (byte) sin8s::usinx#2 ← -- (byte) sin8s::usinx#1 @@ -396,7 +396,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 [196] (word) divr16u::rem#4 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::rem#10 ) [197] (word) divr16u::rem#0 ← (word) divr16u::rem#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [198] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 - [199] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + [199] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [200] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 to:divr16u::@4 divr16u::@4: scope:[divr16u] from divr16u::@1 @@ -416,7 +416,7 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 [208] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [208] (word) divr16u::rem#10 ← phi( divr16u::@2/(word) divr16u::rem#5 divr16u::@5/(word) divr16u::rem#2 ) [209] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 - [210] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 + [210] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 to:divr16u::@6 divr16u::@6: scope:[divr16u] from divr16u::@3 [211] (word) rem16u#1 ← (word) divr16u::rem#10 @@ -428,10 +428,10 @@ print_cls: scope:[print_cls] from main [213] phi() to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 - [214] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) 1024 print_cls::@1/(byte*) print_cls::sc#1 ) + [214] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) $400 print_cls::@1/(byte*) print_cls::sc#1 ) [215] *((byte*) print_cls::sc#2) ← (byte) ' ' [216] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [217] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [217] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [218] return diff --git a/src/test/ref/sinusgenscale8.log b/src/test/ref/sinusgenscale8.log index a7a7e18ea..a03b1c06f 100644 --- a/src/test/ref/sinusgenscale8.log +++ b/src/test/ref/sinusgenscale8.log @@ -22,7 +22,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 (word~) divr16u::$0 ← (word) divr16u::rem#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 (word) divr16u::rem#0 ← (word~) divr16u::$0 (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 - (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 (bool~) divr16u::$3 ← (byte~) divr16u::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) divr16u::$4 ← ! (bool~) divr16u::$3 if((bool~) divr16u::$4) goto divr16u::@2 @@ -56,8 +56,8 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 (word) divr16u::dividend#5 ← phi( divr16u::@2/(word) divr16u::dividend#0 divr16u::@5/(word) divr16u::dividend#7 ) (word) divr16u::rem#10 ← phi( divr16u::@2/(word) divr16u::rem#5 divr16u::@5/(word) divr16u::rem#2 ) (byte) divr16u::i#2 ← phi( divr16u::@2/(byte) divr16u::i#3 divr16u::@5/(byte) divr16u::i#4 ) - (byte) divr16u::i#1 ← (byte) divr16u::i#2 + rangenext(0,15) - (bool~) divr16u::$11 ← (byte) divr16u::i#1 != rangelast(0,15) + (byte) divr16u::i#1 ← (byte) divr16u::i#2 + rangenext(0,$f) + (bool~) divr16u::$11 ← (byte) divr16u::i#1 != rangelast(0,$f) if((bool~) divr16u::$11) goto divr16u::@1 to:divr16u::@6 divr16u::@5: scope:[divr16u] from divr16u::@2 @@ -203,12 +203,12 @@ mul8su::@return: scope:[mul8su] from mul8su::@1 to:@return @13: scope:[] from @6 (word) rem16u#28 ← phi( @6/(word) rem16u#30 ) - (dword) PI2_u4f28#0 ← (dword/signed dword) 1686629713 - (dword) PI_u4f28#0 ← (dword/signed dword) 843314857 - (dword) PI_HALF_u4f28#0 ← (dword/signed dword) 421657428 - (word) PI2_u4f12#0 ← (word/signed word/dword/signed dword) 25736 - (word) PI_u4f12#0 ← (word/signed word/dword/signed dword) 12868 - (word) PI_HALF_u4f12#0 ← (word/signed word/dword/signed dword) 6434 + (dword) PI2_u4f28#0 ← (dword/signed dword) $6487ed51 + (dword) PI_u4f28#0 ← (dword/signed dword) $3243f6a9 + (dword) PI_HALF_u4f28#0 ← (dword/signed dword) $1921fb54 + (word) PI2_u4f12#0 ← (word/signed word/dword/signed dword) $6488 + (word) PI_u4f12#0 ← (word/signed word/dword/signed dword) $3244 + (word) PI_HALF_u4f12#0 ← (word/signed word/dword/signed dword) $1922 to:@20 sin8s: scope:[sin8s] from sin8u_table::@1 (word) sin8s::x#3 ← phi( sin8u_table::@1/(word) sin8s::x#2 ) @@ -260,7 +260,7 @@ sin8s::@11: scope:[sin8s] from sin8s::@10 (byte) mulu8_sel::return#8 ← phi( sin8s::@10/(byte) mulu8_sel::return#1 ) (byte~) sin8s::$9 ← (byte) mulu8_sel::return#8 (byte) sin8s::x3#0 ← (byte~) sin8s::$9 - (byte) sin8s::DIV_6#0 ← (byte/signed byte/word/signed word/dword/signed dword) 43 + (byte) sin8s::DIV_6#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2b (byte) mulu8_sel::v1#2 ← (byte) sin8s::x3#0 (byte) mulu8_sel::v2#2 ← (byte) sin8s::DIV_6#0 (byte) mulu8_sel::select#2 ← (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -305,7 +305,7 @@ sin8s::@14: scope:[sin8s] from sin8s::@13 (byte) sin8s::x5_128#0 ← (byte~) sin8s::$14 (byte~) sin8s::$15 ← (byte) sin8s::usinx#3 + (byte) sin8s::x5_128#0 (byte) sin8s::usinx#1 ← (byte~) sin8s::$15 - (bool~) sin8s::$16 ← (byte) sin8s::usinx#1 >= (byte/word/signed word/dword/signed dword) 128 + (bool~) sin8s::$16 ← (byte) sin8s::usinx#1 >= (byte/word/signed word/dword/signed dword) $80 (bool~) sin8s::$17 ← ! (bool~) sin8s::$16 if((bool~) sin8s::$17) goto sin8s::@3 to:sin8s::@7 @@ -368,7 +368,7 @@ mulu8_sel::@return: scope:[mulu8_sel] from mulu8_sel::@2 to:@return @20: scope:[] from @13 (word) rem16u#26 ← phi( @13/(word) rem16u#28 ) - (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 to:@32 @@ -401,7 +401,7 @@ print_ln: scope:[print_ln] from sin8u_table::@13 sin8u_table::@24 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 (byte*) print_char_cursor#49 ← phi( print_ln/(byte*) print_char_cursor#93 print_ln::@1/(byte*) print_char_cursor#49 ) (byte*) print_line_cursor#12 ← phi( print_ln/(byte*) print_line_cursor#23 print_ln::@1/(byte*) print_line_cursor#1 ) - (byte*~) print_ln::$0 ← (byte*) print_line_cursor#12 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) print_ln::$0 ← (byte*) print_line_cursor#12 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) print_line_cursor#1 ← (byte*~) print_ln::$0 (bool~) print_ln::$1 ← (byte*) print_line_cursor#1 < (byte*) print_char_cursor#49 if((bool~) print_ln::$1) goto print_ln::@1 @@ -541,7 +541,7 @@ print_byte::@1: scope:[print_byte] from print_byte (byte) print_byte::b#9 ← phi( print_byte/(byte) print_byte::b#8 ) (byte*) print_char_cursor#61 ← phi( print_byte/(byte*) print_char_cursor#19 ) (byte*) print_char_cursor#15 ← (byte*) print_char_cursor#61 - (byte~) print_byte::$2 ← (byte) print_byte::b#9 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) print_byte::$2 ← (byte) print_byte::b#9 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte) print_char::ch#4 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$2) call print_char to:print_byte::@2 @@ -574,7 +574,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 (byte*) print_cls::sc#2 ← phi( print_cls/(byte*) print_cls::sc#0 print_cls::@1/(byte*) print_cls::sc#1 ) *((byte*) print_cls::sc#2) ← (byte) ' ' (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) 1000 + (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) $3e8 (bool~) print_cls::$1 ← (byte*) print_cls::sc#1 != (byte*~) print_cls::$0 if((bool~) print_cls::$1) goto print_cls::@1 to:print_cls::@2 @@ -595,8 +595,8 @@ main: scope:[main] from @41 (byte*) print_char_cursor#101 ← phi( @41/(byte*) print_char_cursor#104 ) (byte*) print_line_cursor#24 ← phi( @41/(byte*) print_line_cursor#27 ) (byte*) print_screen#4 ← phi( @41/(byte*) print_screen#5 ) - (word) main::tabsize#0 ← (byte/signed byte/word/signed word/dword/signed dword) 20 - (byte[20]) main::sintab#0 ← { fill( 20, 0) } + (word) main::tabsize#0 ← (byte/signed byte/word/signed word/dword/signed dword) $14 + (byte[$14]) main::sintab#0 ← { fill( $14, 0) } call print_cls to:main::@1 main::@1: scope:[main] from main @@ -606,10 +606,10 @@ main::@1: scope:[main] from main (byte*) print_line_cursor#16 ← phi( main/(byte*) print_line_cursor#4 ) (byte*) print_line_cursor#5 ← (byte*) print_line_cursor#16 (byte*) print_char_cursor#22 ← (byte*) print_char_cursor#67 - (byte*) sin8u_table::sintab#0 ← (byte[20]) main::sintab#0 + (byte*) sin8u_table::sintab#0 ← (byte[$14]) main::sintab#0 (word) sin8u_table::tabsize#0 ← (word) main::tabsize#1 - (byte) sin8u_table::min#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) sin8u_table::max#0 ← (byte/word/signed word/dword/signed dword) 255 + (byte) sin8u_table::min#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) sin8u_table::max#0 ← (byte/word/signed word/dword/signed dword) $ff call sin8u_table to:main::@2 main::@2: scope:[main] from main::@1 @@ -1173,8 +1173,8 @@ SYMBOL TABLE SSA (label) main::@1 (label) main::@2 (label) main::@return -(byte[20]) main::sintab -(byte[20]) main::sintab#0 +(byte[$14]) main::sintab +(byte[$14]) main::sintab#0 (word) main::tabsize (word) main::tabsize#0 (word) main::tabsize#1 @@ -2005,7 +2005,7 @@ Inversing boolean not [66] (bool~) mul8u::$3 ← (byte~) mul8u::$1 == (byte/sign Inversing boolean not [92] (bool~) mul8su::$4 ← (signed byte) mul8su::a#2 >= (byte/signed byte/word/signed word/dword/signed dword) 0 from [91] (bool~) mul8su::$3 ← (signed byte) mul8su::a#2 < (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not [116] (bool~) sin8s::$1 ← (word) sin8s::x#3 < (word) PI_u4f12#0 from [115] (bool~) sin8s::$0 ← (word) sin8s::x#3 >= (word) PI_u4f12#0 Inversing boolean not [120] (bool~) sin8s::$4 ← (word) sin8s::x#4 < (word) PI_HALF_u4f12#0 from [119] (bool~) sin8s::$3 ← (word) sin8s::x#4 >= (word) PI_HALF_u4f12#0 -Inversing boolean not [178] (bool~) sin8s::$17 ← (byte) sin8s::usinx#1 < (byte/word/signed word/dword/signed dword) 128 from [177] (bool~) sin8s::$16 ← (byte) sin8s::usinx#1 >= (byte/word/signed word/dword/signed dword) 128 +Inversing boolean not [178] (bool~) sin8s::$17 ← (byte) sin8s::usinx#1 < (byte/word/signed word/dword/signed dword) $80 from [177] (bool~) sin8s::$16 ← (byte) sin8s::usinx#1 >= (byte/word/signed word/dword/signed dword) $80 Inversing boolean not [187] (bool~) sin8s::$20 ← (byte) sin8s::isUpper#2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [186] (bool~) sin8s::$19 ← (byte) sin8s::isUpper#2 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not [242] (bool~) print_sword::$1 ← (signed word) print_sword::w#2 >= (byte/signed byte/word/signed word/dword/signed dword) 0 from [241] (bool~) print_sword::$0 ← (signed word) print_sword::w#2 < (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2UnaryNotSimplification @@ -2259,13 +2259,13 @@ Redundant Phi (byte*) print_line_cursor#26 (byte*) print_line_cursor#1 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) divr16u::$4 [12] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 Simple Condition (bool~) divr16u::$9 [20] if((word) divr16u::rem#5<(word) divr16u::divisor#0) goto divr16u::@3 -Simple Condition (bool~) divr16u::$11 [27] if((byte) divr16u::i#1!=rangelast(0,15)) goto divr16u::@1 +Simple Condition (bool~) divr16u::$11 [27] if((byte) divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1 Simple Condition (bool~) mul8u::$0 [62] if((byte) mul8u::a#3!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u::@2 Simple Condition (bool~) mul8u::$3 [67] if((byte~) mul8u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u::@4 Simple Condition (bool~) mul8su::$4 [93] if((signed byte) mul8su::a#0>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8su::@1 Simple Condition (bool~) sin8s::$1 [117] if((word) sin8s::x#2<(word) PI_u4f12#0) goto sin8s::@1 Simple Condition (bool~) sin8s::$4 [121] if((word) sin8s::x#4<(word) PI_HALF_u4f12#0) goto sin8s::@2 -Simple Condition (bool~) sin8s::$17 [179] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) 128) goto sin8s::@3 +Simple Condition (bool~) sin8s::$17 [179] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) $80) goto sin8s::@3 Simple Condition (bool~) sin8s::$20 [188] if((byte) sin8s::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin8s::@4 Simple Condition (bool~) print_str::$0 [220] if(*((byte*) print_str::str#10)!=(byte) '@') goto print_str::@2 Simple Condition (bool~) print_ln::$1 [233] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#18) goto print_ln::@1 @@ -2282,29 +2282,29 @@ Constant (const word) divr16u::rem#3 = 0 Constant (const signed byte) rem8s#0 = 0 Constant (const signed word) rem16s#0 = 0 Constant (const word) mul8u::res#0 = 0 -Constant (const dword) PI2_u4f28#0 = 1686629713 -Constant (const dword) PI_u4f28#0 = 843314857 -Constant (const dword) PI_HALF_u4f28#0 = 421657428 -Constant (const word) PI2_u4f12#0 = 25736 -Constant (const word) PI_u4f12#0 = 12868 -Constant (const word) PI_HALF_u4f12#0 = 6434 +Constant (const dword) PI2_u4f28#0 = $6487ed51 +Constant (const dword) PI_u4f28#0 = $3243f6a9 +Constant (const dword) PI_HALF_u4f28#0 = $1921fb54 +Constant (const word) PI2_u4f12#0 = $6488 +Constant (const word) PI_u4f12#0 = $3244 +Constant (const word) PI_HALF_u4f12#0 = $1922 Constant (const byte) sin8s::isUpper#0 = 0 Constant (const byte) sin8s::isUpper#1 = 1 Constant (const byte) mulu8_sel::select#0 = 0 Constant (const byte) mulu8_sel::select#1 = 1 -Constant (const byte) sin8s::DIV_6#0 = 43 +Constant (const byte) sin8s::DIV_6#0 = $2b Constant (const byte) mulu8_sel::select#2 = 1 Constant (const byte) mulu8_sel::select#3 = 0 Constant (const byte) mulu8_sel::select#4 = 0 -Constant (const byte*) print_line_cursor#0 = ((byte*))1024 +Constant (const byte*) print_line_cursor#0 = ((byte*))$400 Constant (const byte) print_char::ch#0 = '-' Constant (const byte) print_char::ch#1 = '-' Constant (const byte) print_char::ch#2 = ' ' Constant (const byte[]) print_hextab#0 = $0 -Constant (const word) main::tabsize#0 = 20 -Constant (const byte[20]) main::sintab#0 = { fill( 20, 0) } -Constant (const byte) sin8u_table::min#0 = 10 -Constant (const byte) sin8u_table::max#0 = 255 +Constant (const word) main::tabsize#0 = $14 +Constant (const byte[$14]) main::sintab#0 = { fill( $14, 0) } +Constant (const byte) sin8u_table::min#0 = $a +Constant (const byte) sin8u_table::max#0 = $ff Constant (const byte*) print_str::str#1 = sin8u_table::str Constant (const byte*) print_str::str#2 = sin8u_table::str1 Constant (const byte*) print_str::str#3 = sin8u_table::str2 @@ -2319,7 +2319,7 @@ Constant (const byte*) print_str::str#9 = sin8u_table::str8 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) mulu8_sel::v2#2 = sin8s::DIV_6#0 Constant (const byte*) print_cls::sc#0 = print_line_cursor#0 -Constant (const byte*) print_cls::$0 = print_line_cursor#0+1000 +Constant (const byte*) print_cls::$0 = print_line_cursor#0+$3e8 Constant (const byte*) sin8u_table::sintab#0 = main::sintab#0 Constant (const word) sin8u_table::tabsize#0 = main::tabsize#0 Constant (const byte) sin8u_table::amplitude#0 = sin8u_table::max#0-sin8u_table::min#0 @@ -2354,7 +2354,7 @@ Eliminating Noop Cast (word) print_word::w#0 ← ((word)) (signed word) print_sw Eliminating Noop Cast (byte) print_byte::b#0 ← ((byte)) (signed byte) print_sbyte::b#4 Successful SSA optimization Pass2NopCastElimination Resolved ranged next value divr16u::i#1 ← ++ divr16u::i#2 to ++ -Resolved ranged comparison value if(divr16u::i#1!=rangelast(0,15)) goto divr16u::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Culled Empty Block (label) @2 Culled Empty Block (label) @5 Culled Empty Block (label) @6 @@ -2409,10 +2409,10 @@ Inlining constant with var siblings (const word) sin8u_table::i#0 Inlining constant with var siblings (const byte*) sin8u_table::sintab#0 Inlining constant with var siblings (const byte*) print_line_cursor#0 Constant inlined divr16u::rem#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000 +Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8 Constant inlined divr16u::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined sin8u_table::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined sin8u_table::sintab#0 = (const byte[20]) main::sintab#0 +Constant inlined sin8u_table::sintab#0 = (const byte[$14]) main::sintab#0 Constant inlined $0 = (const byte[]) print_hextab#0 Constant inlined sin8s::isUpper#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined sin8s::isUpper#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -2430,13 +2430,13 @@ Constant inlined mulu8_sel::select#1 = (byte/signed byte/word/signed word/dword/ Constant inlined mulu8_sel::select#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mulu8_sel::select#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined sin8u_table::tabsize#0 = (const word) main::tabsize#0 -Constant inlined print_line_cursor#0 = ((byte*))(word/signed word/dword/signed dword) 1024 +Constant inlined print_line_cursor#0 = ((byte*))(word/signed word/dword/signed dword) $400 Constant inlined print_byte::b#4 = (const byte) sin8u_table::max#0 Constant inlined print_byte::b#3 = (const byte) sin8u_table::min#0 Constant inlined print_byte::b#6 = (const byte) sin8u_table::mid#0 Constant inlined print_byte::b#5 = (const byte) sin8u_table::amplitude#0 Constant inlined divr16u::dividend#1 = (const word) PI2_u4f12#0 -Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword) 1024 +Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword) $400 Constant inlined print_char::ch#2 = (byte) ' ' Constant inlined mulu8_sel::v2#2 = (const byte) sin8s::DIV_6#0 Constant inlined print_str::str#9 = (const string) sin8u_table::str8 @@ -2688,7 +2688,7 @@ sin8u_table::@13: scope:[sin8u_table] from sin8u_table::@12 to:sin8u_table::@1 sin8u_table::@1: scope:[sin8u_table] from sin8u_table::@13 sin8u_table::@25 [34] (word) sin8u_table::i#10 ← phi( sin8u_table::@13/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8u_table::@25/(word) sin8u_table::i#1 ) - [34] (byte*) sin8u_table::sintab#2 ← phi( sin8u_table::@13/(const byte[20]) main::sintab#0 sin8u_table::@25/(byte*) sin8u_table::sintab#1 ) + [34] (byte*) sin8u_table::sintab#2 ← phi( sin8u_table::@13/(const byte[$14]) main::sintab#0 sin8u_table::@25/(byte*) sin8u_table::sintab#1 ) [34] (word) sin8u_table::x#10 ← phi( sin8u_table::@13/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8u_table::@25/(word) sin8u_table::x#1 ) [35] (word) sin8s::x#2 ← (word) sin8u_table::x#10 [36] call sin8s @@ -2750,11 +2750,11 @@ sin8u_table::@return: scope:[sin8u_table] from sin8u_table::@25 [68] return to:@return print_ln: scope:[print_ln] from sin8u_table::@13 sin8u_table::@24 - [69] (byte*) print_line_cursor#23 ← phi( sin8u_table::@13/((byte*))(word/signed word/dword/signed dword) 1024 sin8u_table::@24/(byte*) print_line_cursor#1 ) + [69] (byte*) print_line_cursor#23 ← phi( sin8u_table::@13/((byte*))(word/signed word/dword/signed dword) $400 sin8u_table::@24/(byte*) print_line_cursor#1 ) to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [70] (byte*) print_line_cursor#12 ← phi( print_ln/(byte*) print_line_cursor#23 print_ln::@1/(byte*) print_line_cursor#1 ) - [71] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#12 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [71] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#12 + (byte/signed byte/word/signed word/dword/signed dword) $28 [72] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#18) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 @@ -2768,7 +2768,7 @@ print_byte: scope:[print_byte] from print_sbyte::@2 print_word print_word::@1 s [77] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [78] (byte~) print_byte::$2 ← (byte) print_byte::b#8 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [78] (byte~) print_byte::$2 ← (byte) print_byte::b#8 & (byte/signed byte/word/signed word/dword/signed dword) $f [79] (byte) print_char::ch#4 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [80] call print_char to:print_byte::@return @@ -2785,7 +2785,7 @@ print_char::@return: scope:[print_char] from print_char [85] return to:@return print_str: scope:[print_str] from sin8u_table::@11 sin8u_table::@16 sin8u_table::@18 sin8u_table::@20 sin8u_table::@22 sin8u_table::@3 sin8u_table::@5 sin8u_table::@7 sin8u_table::@9 - [86] (byte*) print_char_cursor#105 ← phi( sin8u_table::@11/(byte*) print_char_cursor#18 sin8u_table::@16/(byte*~) print_char_cursor#126 sin8u_table::@18/(byte*) print_char_cursor#18 sin8u_table::@20/(byte*) print_char_cursor#18 sin8u_table::@22/(byte*) print_char_cursor#18 sin8u_table::@3/((byte*))(word/signed word/dword/signed dword) 1024 sin8u_table::@5/(byte*) print_char_cursor#18 sin8u_table::@7/(byte*) print_char_cursor#18 sin8u_table::@9/(byte*) print_char_cursor#18 ) + [86] (byte*) print_char_cursor#105 ← phi( sin8u_table::@11/(byte*) print_char_cursor#18 sin8u_table::@16/(byte*~) print_char_cursor#126 sin8u_table::@18/(byte*) print_char_cursor#18 sin8u_table::@20/(byte*) print_char_cursor#18 sin8u_table::@22/(byte*) print_char_cursor#18 sin8u_table::@3/((byte*))(word/signed word/dword/signed dword) $400 sin8u_table::@5/(byte*) print_char_cursor#18 sin8u_table::@7/(byte*) print_char_cursor#18 sin8u_table::@9/(byte*) print_char_cursor#18 ) [86] (byte*) print_str::str#12 ← phi( sin8u_table::@11/(const string) sin8u_table::str4 sin8u_table::@16/(const string) sin8u_table::str5 sin8u_table::@18/(const string) sin8u_table::str6 sin8u_table::@20/(const string) sin8u_table::str7 sin8u_table::@22/(const string) sin8u_table::str8 sin8u_table::@3/(const string) sin8u_table::str sin8u_table::@5/(const string) sin8u_table::str1 sin8u_table::@7/(const string) sin8u_table::str2 sin8u_table::@9/(const string) sin8u_table::str3 ) to:print_str::@1 print_str::@1: scope:[print_str] from print_str print_str::@2 @@ -2956,7 +2956,7 @@ sin8s::@14: scope:[sin8s] from sin8s::@13 [170] (byte) sin8s::x5#0 ← (byte) mulu8_sel::return#11 [171] (byte) sin8s::x5_128#0 ← (byte) sin8s::x5#0 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [172] (byte) sin8s::usinx#1 ← (byte) sin8s::usinx#0 + (byte) sin8s::x5_128#0 - [173] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) 128) goto sin8s::@3 + [173] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) $80) goto sin8s::@3 to:sin8s::@7 sin8s::@7: scope:[sin8s] from sin8s::@14 [174] (byte) sin8s::usinx#2 ← -- (byte) sin8s::usinx#1 @@ -3015,7 +3015,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 [196] (word) divr16u::rem#4 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::rem#10 ) [197] (word) divr16u::rem#0 ← (word) divr16u::rem#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [198] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 - [199] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + [199] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [200] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 to:divr16u::@4 divr16u::@4: scope:[divr16u] from divr16u::@1 @@ -3035,7 +3035,7 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 [208] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [208] (word) divr16u::rem#10 ← phi( divr16u::@2/(word) divr16u::rem#5 divr16u::@5/(word) divr16u::rem#2 ) [209] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 - [210] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 + [210] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 to:divr16u::@6 divr16u::@6: scope:[divr16u] from divr16u::@3 [211] (word) rem16u#1 ← (word) divr16u::rem#10 @@ -3047,10 +3047,10 @@ print_cls: scope:[print_cls] from main [213] phi() to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 - [214] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) 1024 print_cls::@1/(byte*) print_cls::sc#1 ) + [214] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) $400 print_cls::@1/(byte*) print_cls::sc#1 ) [215] *((byte*) print_cls::sc#2) ← (byte) ' ' [216] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [217] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [217] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [218] return @@ -3095,7 +3095,7 @@ VARIABLE REGISTER WEIGHTS (word) divr16u::return#0 5.833333333333333 (word) divr16u::return#2 4.0 (void()) main() -(byte[20]) main::sintab +(byte[$14]) main::sintab (word) main::tabsize (signed word()) mul8su((signed byte) mul8su::a , (byte) mul8su::b) (byte~) mul8su::$10 4.0 @@ -3576,7 +3576,7 @@ sin8u_table: { //SEG25 [13] call print_str //SEG26 [86] phi from sin8u_table::@3 to print_str [phi:sin8u_table::@3->print_str] print_str_from_b3: - //SEG27 [86] phi (byte*) print_char_cursor#105 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:sin8u_table::@3->print_str#0] -- pbuz1=pbuc1 + //SEG27 [86] phi (byte*) print_char_cursor#105 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:sin8u_table::@3->print_str#0] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -3721,7 +3721,7 @@ sin8u_table: { //SEG85 [33] call print_ln //SEG86 [69] phi from sin8u_table::@13 to print_ln [phi:sin8u_table::@13->print_ln] print_ln_from_b13: - //SEG87 [69] phi (byte*) print_line_cursor#23 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:sin8u_table::@13->print_ln#0] -- pbuz1=pbuc1 + //SEG87 [69] phi (byte*) print_line_cursor#23 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:sin8u_table::@13->print_ln#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -3734,7 +3734,7 @@ sin8u_table: { sta i lda #>0 sta i+1 - //SEG90 [34] phi (byte*) sin8u_table::sintab#2 = (const byte[20]) main::sintab#0 [phi:sin8u_table::@13->sin8u_table::@1#1] -- pbuz1=pbuc1 + //SEG90 [34] phi (byte*) sin8u_table::sintab#2 = (const byte[$14]) main::sintab#0 [phi:sin8u_table::@13->sin8u_table::@1#1] -- pbuz1=pbuc1 lda #main.sintab @@ -3969,7 +3969,7 @@ print_ln: { jmp b1 //SEG166 print_ln::@1 b1: - //SEG167 [71] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#12 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG167 [71] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#12 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -4019,7 +4019,7 @@ print_byte: { jmp b1 //SEG178 print_byte::@1 b1: - //SEG179 [78] (byte~) print_byte::$2 ← (byte) print_byte::b#8 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG179 [78] (byte~) print_byte::$2 ← (byte) print_byte::b#8 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and b sta _2 @@ -4639,7 +4639,7 @@ sin8s: { clc adc x5_128 sta usinx_1 - //SEG379 [173] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) 128) goto sin8s::@3 -- vbuz1_lt_vbuc1_then_la1 + //SEG379 [173] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) $80) goto sin8s::@3 -- vbuz1_lt_vbuc1_then_la1 lda usinx_1 cmp #$80 bcc b3_from_b14 @@ -4832,7 +4832,7 @@ divr16u: { //SEG430 [198] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 -- vbuz1=_hi_vwuz2 lda dividend+1 sta _1 - //SEG431 [199] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG431 [199] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuz1=vbuz2_band_vbuc1 lda #$80 and _1 sta _2 @@ -4895,7 +4895,7 @@ divr16u: { b3: //SEG448 [209] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG449 [210] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG449 [210] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b3 @@ -4919,7 +4919,7 @@ print_cls: { .label sc = $2c //SEG455 [214] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] b1_from_print_cls: - //SEG456 [214] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG456 [214] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -4940,7 +4940,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG462 [217] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG462 [217] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1_from_b1 @@ -4974,11 +4974,11 @@ Statement [49] (word) print_word::w#2 ← (word) sin8u_table::x#10 [ sin8u_table Statement [57] (signed word) print_sword::w#1 ← (signed word) sin8u_table::sinx_sc#0 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_sword::w#1 print_char_cursor#2 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_sword::w#1 print_char_cursor#2 ] ) always clobbers reg byte a Statement [65] (word) sin8u_table::x#1 ← (word) sin8u_table::x#10 + (word) sin8u_table::step#0 [ sin8u_table::step#0 sin8u_table::i#10 sin8u_table::x#1 sin8u_table::sintab#1 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::i#10 sin8u_table::x#1 sin8u_table::sintab#1 print_line_cursor#1 ] ) always clobbers reg byte a Statement [67] if((word) sin8u_table::i#1<(const word) main::tabsize#0) goto sin8u_table::@1 [ sin8u_table::step#0 sin8u_table::x#1 sin8u_table::sintab#1 sin8u_table::i#1 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#1 sin8u_table::sintab#1 sin8u_table::i#1 print_line_cursor#1 ] ) always clobbers reg byte a -Statement [71] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#12 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#18 ] ( main:2::sin8u_table:7::print_ln:33 [ sin8u_table::step#0 print_line_cursor#1 print_char_cursor#18 ] main:2::sin8u_table:7::print_ln:64 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#18 ] ) always clobbers reg byte a +Statement [71] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#12 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#1 print_char_cursor#18 ] ( main:2::sin8u_table:7::print_ln:33 [ sin8u_table::step#0 print_line_cursor#1 print_char_cursor#18 ] main:2::sin8u_table:7::print_ln:64 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#18 ] ) always clobbers reg byte a Statement [72] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#18) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#18 ] ( main:2::sin8u_table:7::print_ln:33 [ sin8u_table::step#0 print_line_cursor#1 print_char_cursor#18 ] main:2::sin8u_table:7::print_ln:64 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#18 ] ) always clobbers reg byte a Statement [75] (byte~) print_byte::$0 ← (byte) print_byte::b#8 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#8 print_char_cursor#100 print_byte::$0 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#100 print_byte::$0 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#100 print_byte::$0 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#100 print_byte::$0 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#100 print_byte::$0 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_byte::b#8 print_char_cursor#100 print_byte::$0 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_byte::b#8 print_char_cursor#100 print_byte::$0 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#100 print_byte::$0 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#100 print_byte::$0 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#100 print_byte::$0 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#100 print_byte::$0 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#100 print_byte::$0 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:112 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#100 print_byte::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:10 [ print_byte::b#8 print_byte::b#10 print_byte::b#1 print_byte::b#2 print_byte::b#7 ] -Statement [78] (byte~) print_byte::$2 ← (byte) print_byte::b#8 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#18 print_byte::$2 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:112 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] ) always clobbers reg byte a +Statement [78] (byte~) print_byte::$2 ← (byte) print_byte::b#8 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#18 print_byte::$2 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:112 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] ) always clobbers reg byte a Statement [83] *((byte*) print_char_cursor#64) ← (byte) print_char::ch#5 [ print_char_cursor#64 ] ( main:2::sin8u_table:7::print_byte:19::print_char:77 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#64 ] main:2::sin8u_table:7::print_byte:23::print_char:77 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#64 ] main:2::sin8u_table:7::print_byte:27::print_char:77 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#64 ] main:2::sin8u_table:7::print_byte:31::print_char:77 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#64 ] main:2::sin8u_table:7::print_byte:62::print_char:77 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_byte::b#8 print_char_cursor#64 ] main:2::sin8u_table:7::print_word:15::print_byte:103::print_char:77 [ sin8u_table::step#0 print_word::w#3 print_byte::b#8 print_char_cursor#64 ] main:2::sin8u_table:7::print_word:50::print_byte:103::print_char:77 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#64 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103::print_char:77 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#64 ] main:2::sin8u_table:7::print_word:15::print_byte:105::print_char:77 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#64 ] main:2::sin8u_table:7::print_word:50::print_byte:105::print_char:77 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#64 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105::print_char:77 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#64 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:112::print_char:77 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#64 ] main:2::sin8u_table:7::print_byte:19::print_char:80 [ sin8u_table::step#0 print_char_cursor#64 ] main:2::sin8u_table:7::print_byte:23::print_char:80 [ sin8u_table::step#0 print_char_cursor#64 ] main:2::sin8u_table:7::print_byte:27::print_char:80 [ sin8u_table::step#0 print_char_cursor#64 ] main:2::sin8u_table:7::print_byte:31::print_char:80 [ sin8u_table::step#0 print_char_cursor#64 ] main:2::sin8u_table:7::print_byte:62::print_char:80 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#64 ] main:2::sin8u_table:7::print_word:15::print_byte:103::print_char:80 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#64 ] main:2::sin8u_table:7::print_word:50::print_byte:103::print_char:80 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#64 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103::print_char:80 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#64 ] main:2::sin8u_table:7::print_word:15::print_byte:105::print_char:80 [ sin8u_table::step#0 print_char_cursor#64 ] main:2::sin8u_table:7::print_word:50::print_byte:105::print_char:80 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#64 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105::print_char:80 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#64 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:112::print_char:80 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#64 ] main:2::sin8u_table:7::print_sword:58::print_char:95 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_sword::w#1 print_char_cursor#64 ] main:2::sin8u_table:7::print_sbyte:54::print_char:109 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_sbyte::b#1 print_char_cursor#64 ] main:2::sin8u_table:7::print_sbyte:54::print_char:115 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_sbyte::b#1 print_char_cursor#64 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:10 [ print_byte::b#8 print_byte::b#10 print_byte::b#1 print_byte::b#2 print_byte::b#7 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:20 [ print_sbyte::b#4 print_sbyte::b#0 print_sbyte::b#1 ] @@ -5022,13 +5022,13 @@ Statement [192] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u: Statement [193] (word) div16u::return#0 ← (word) divr16u::return#2 [ div16u::return#0 ] ( main:2::sin8u_table:7::div16u:10 [ div16u::return#0 ] ) always clobbers reg byte a Statement [198] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin8u_table:7::div16u:10::divr16u:191 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:43 [ divr16u::i#2 divr16u::i#1 ] -Statement [199] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin8u_table:7::div16u:10::divr16u:191 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a +Statement [199] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin8u_table:7::div16u:10::divr16u:191 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a Statement [201] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin8u_table:7::div16u:10::divr16u:191 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a Statement [205] if((word) divr16u::rem#5<(const word) main::tabsize#0) goto divr16u::@3 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] ( main:2::sin8u_table:7::div16u:10::divr16u:191 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] ) always clobbers reg byte a Statement [207] (word) divr16u::rem#2 ← (word) divr16u::rem#5 - (const word) main::tabsize#0 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin8u_table:7::div16u:10::divr16u:191 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a Statement [211] (word) rem16u#1 ← (word) divr16u::rem#10 [ divr16u::return#0 ] ( main:2::sin8u_table:7::div16u:10::divr16u:191 [ divr16u::return#0 ] ) always clobbers reg byte a Statement [215] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [217] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [217] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a Statement [11] (word) div16u::return#2 ← (word) div16u::return#0 [ div16u::return#2 ] ( main:2::sin8u_table:7 [ div16u::return#2 ] ) always clobbers reg byte a Statement [12] (word) sin8u_table::step#0 ← (word) div16u::return#2 [ sin8u_table::step#0 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 ] ) always clobbers reg byte a Statement [14] (word) print_word::w#1 ← (word) sin8u_table::step#0 [ sin8u_table::step#0 print_word::w#1 print_char_cursor#2 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 print_word::w#1 print_char_cursor#2 ] ) always clobbers reg byte a @@ -5042,10 +5042,10 @@ Statement [49] (word) print_word::w#2 ← (word) sin8u_table::x#10 [ sin8u_table Statement [57] (signed word) print_sword::w#1 ← (signed word) sin8u_table::sinx_sc#0 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_sword::w#1 print_char_cursor#2 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_sword::w#1 print_char_cursor#2 ] ) always clobbers reg byte a Statement [65] (word) sin8u_table::x#1 ← (word) sin8u_table::x#10 + (word) sin8u_table::step#0 [ sin8u_table::step#0 sin8u_table::i#10 sin8u_table::x#1 sin8u_table::sintab#1 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::i#10 sin8u_table::x#1 sin8u_table::sintab#1 print_line_cursor#1 ] ) always clobbers reg byte a Statement [67] if((word) sin8u_table::i#1<(const word) main::tabsize#0) goto sin8u_table::@1 [ sin8u_table::step#0 sin8u_table::x#1 sin8u_table::sintab#1 sin8u_table::i#1 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#1 sin8u_table::sintab#1 sin8u_table::i#1 print_line_cursor#1 ] ) always clobbers reg byte a -Statement [71] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#12 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#18 ] ( main:2::sin8u_table:7::print_ln:33 [ sin8u_table::step#0 print_line_cursor#1 print_char_cursor#18 ] main:2::sin8u_table:7::print_ln:64 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#18 ] ) always clobbers reg byte a +Statement [71] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#12 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#1 print_char_cursor#18 ] ( main:2::sin8u_table:7::print_ln:33 [ sin8u_table::step#0 print_line_cursor#1 print_char_cursor#18 ] main:2::sin8u_table:7::print_ln:64 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#18 ] ) always clobbers reg byte a Statement [72] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#18) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#18 ] ( main:2::sin8u_table:7::print_ln:33 [ sin8u_table::step#0 print_line_cursor#1 print_char_cursor#18 ] main:2::sin8u_table:7::print_ln:64 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#18 ] ) always clobbers reg byte a Statement [75] (byte~) print_byte::$0 ← (byte) print_byte::b#8 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#8 print_char_cursor#100 print_byte::$0 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#100 print_byte::$0 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#100 print_byte::$0 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#100 print_byte::$0 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#100 print_byte::$0 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_byte::b#8 print_char_cursor#100 print_byte::$0 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_byte::b#8 print_char_cursor#100 print_byte::$0 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#100 print_byte::$0 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#100 print_byte::$0 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#100 print_byte::$0 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#100 print_byte::$0 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#100 print_byte::$0 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:112 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#100 print_byte::$0 ] ) always clobbers reg byte a -Statement [78] (byte~) print_byte::$2 ← (byte) print_byte::b#8 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#18 print_byte::$2 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:112 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] ) always clobbers reg byte a +Statement [78] (byte~) print_byte::$2 ← (byte) print_byte::b#8 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#18 print_byte::$2 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:112 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] ) always clobbers reg byte a Statement [83] *((byte*) print_char_cursor#64) ← (byte) print_char::ch#5 [ print_char_cursor#64 ] ( main:2::sin8u_table:7::print_byte:19::print_char:77 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#64 ] main:2::sin8u_table:7::print_byte:23::print_char:77 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#64 ] main:2::sin8u_table:7::print_byte:27::print_char:77 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#64 ] main:2::sin8u_table:7::print_byte:31::print_char:77 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#64 ] main:2::sin8u_table:7::print_byte:62::print_char:77 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_byte::b#8 print_char_cursor#64 ] main:2::sin8u_table:7::print_word:15::print_byte:103::print_char:77 [ sin8u_table::step#0 print_word::w#3 print_byte::b#8 print_char_cursor#64 ] main:2::sin8u_table:7::print_word:50::print_byte:103::print_char:77 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#64 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103::print_char:77 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#64 ] main:2::sin8u_table:7::print_word:15::print_byte:105::print_char:77 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#64 ] main:2::sin8u_table:7::print_word:50::print_byte:105::print_char:77 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#64 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105::print_char:77 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#64 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:112::print_char:77 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#64 ] main:2::sin8u_table:7::print_byte:19::print_char:80 [ sin8u_table::step#0 print_char_cursor#64 ] main:2::sin8u_table:7::print_byte:23::print_char:80 [ sin8u_table::step#0 print_char_cursor#64 ] main:2::sin8u_table:7::print_byte:27::print_char:80 [ sin8u_table::step#0 print_char_cursor#64 ] main:2::sin8u_table:7::print_byte:31::print_char:80 [ sin8u_table::step#0 print_char_cursor#64 ] main:2::sin8u_table:7::print_byte:62::print_char:80 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#64 ] main:2::sin8u_table:7::print_word:15::print_byte:103::print_char:80 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#64 ] main:2::sin8u_table:7::print_word:50::print_byte:103::print_char:80 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#64 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103::print_char:80 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#64 ] main:2::sin8u_table:7::print_word:15::print_byte:105::print_char:80 [ sin8u_table::step#0 print_char_cursor#64 ] main:2::sin8u_table:7::print_word:50::print_byte:105::print_char:80 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#64 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105::print_char:80 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#64 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:112::print_char:80 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#64 ] main:2::sin8u_table:7::print_sword:58::print_char:95 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_sword::w#1 print_char_cursor#64 ] main:2::sin8u_table:7::print_sbyte:54::print_char:109 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_sbyte::b#1 print_char_cursor#64 ] main:2::sin8u_table:7::print_sbyte:54::print_char:115 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_sbyte::b#1 print_char_cursor#64 ] ) always clobbers reg byte y Statement [88] if(*((byte*) print_str::str#10)!=(byte) '@') goto print_str::@2 [ print_char_cursor#2 print_str::str#10 ] ( main:2::sin8u_table:7::print_str:13 [ sin8u_table::step#0 print_char_cursor#2 print_str::str#10 ] main:2::sin8u_table:7::print_str:17 [ sin8u_table::step#0 print_char_cursor#2 print_str::str#10 ] main:2::sin8u_table:7::print_str:21 [ sin8u_table::step#0 print_char_cursor#2 print_str::str#10 ] main:2::sin8u_table:7::print_str:25 [ sin8u_table::step#0 print_char_cursor#2 print_str::str#10 ] main:2::sin8u_table:7::print_str:29 [ sin8u_table::step#0 print_char_cursor#2 print_str::str#10 ] main:2::sin8u_table:7::print_str:48 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::sin8u_table:7::print_str:52 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::sin8u_table:7::print_str:56 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::sin8u_table:7::print_str:60 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y Statement [90] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#10) [ print_char_cursor#2 print_str::str#10 ] ( main:2::sin8u_table:7::print_str:13 [ sin8u_table::step#0 print_char_cursor#2 print_str::str#10 ] main:2::sin8u_table:7::print_str:17 [ sin8u_table::step#0 print_char_cursor#2 print_str::str#10 ] main:2::sin8u_table:7::print_str:21 [ sin8u_table::step#0 print_char_cursor#2 print_str::str#10 ] main:2::sin8u_table:7::print_str:25 [ sin8u_table::step#0 print_char_cursor#2 print_str::str#10 ] main:2::sin8u_table:7::print_str:29 [ sin8u_table::step#0 print_char_cursor#2 print_str::str#10 ] main:2::sin8u_table:7::print_str:48 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::sin8u_table:7::print_str:52 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::sin8u_table:7::print_str:56 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::sin8u_table:7::print_str:60 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y @@ -5079,13 +5079,13 @@ Statement [188] (byte) mulu8_sel::return#12 ← > (word~) mulu8_sel::$1 [ mulu8_ Statement [192] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 ] ( main:2::sin8u_table:7::div16u:10 [ divr16u::return#2 ] ) always clobbers reg byte a Statement [193] (word) div16u::return#0 ← (word) divr16u::return#2 [ div16u::return#0 ] ( main:2::sin8u_table:7::div16u:10 [ div16u::return#0 ] ) always clobbers reg byte a Statement [198] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin8u_table:7::div16u:10::divr16u:191 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a -Statement [199] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin8u_table:7::div16u:10::divr16u:191 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a +Statement [199] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin8u_table:7::div16u:10::divr16u:191 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a Statement [201] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin8u_table:7::div16u:10::divr16u:191 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a Statement [205] if((word) divr16u::rem#5<(const word) main::tabsize#0) goto divr16u::@3 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] ( main:2::sin8u_table:7::div16u:10::divr16u:191 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] ) always clobbers reg byte a Statement [207] (word) divr16u::rem#2 ← (word) divr16u::rem#5 - (const word) main::tabsize#0 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin8u_table:7::div16u:10::divr16u:191 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a Statement [211] (word) rem16u#1 ← (word) divr16u::rem#10 [ divr16u::return#0 ] ( main:2::sin8u_table:7::div16u:10::divr16u:191 [ divr16u::return#0 ] ) always clobbers reg byte a Statement [215] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [217] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [217] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a Potential registers zp ZP_WORD:2 [ sin8u_table::x#10 sin8u_table::x#1 ] : zp ZP_WORD:2 , Potential registers zp ZP_WORD:4 [ sin8u_table::sintab#2 sin8u_table::sintab#1 ] : zp ZP_WORD:4 , Potential registers zp ZP_WORD:6 [ sin8u_table::i#10 sin8u_table::i#1 ] : zp ZP_WORD:6 , @@ -5343,7 +5343,7 @@ sin8u_table: { //SEG25 [13] call print_str //SEG26 [86] phi from sin8u_table::@3 to print_str [phi:sin8u_table::@3->print_str] print_str_from_b3: - //SEG27 [86] phi (byte*) print_char_cursor#105 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:sin8u_table::@3->print_str#0] -- pbuz1=pbuc1 + //SEG27 [86] phi (byte*) print_char_cursor#105 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:sin8u_table::@3->print_str#0] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -5488,7 +5488,7 @@ sin8u_table: { //SEG85 [33] call print_ln //SEG86 [69] phi from sin8u_table::@13 to print_ln [phi:sin8u_table::@13->print_ln] print_ln_from_b13: - //SEG87 [69] phi (byte*) print_line_cursor#23 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:sin8u_table::@13->print_ln#0] -- pbuz1=pbuc1 + //SEG87 [69] phi (byte*) print_line_cursor#23 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:sin8u_table::@13->print_ln#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -5501,7 +5501,7 @@ sin8u_table: { sta i lda #>0 sta i+1 - //SEG90 [34] phi (byte*) sin8u_table::sintab#2 = (const byte[20]) main::sintab#0 [phi:sin8u_table::@13->sin8u_table::@1#1] -- pbuz1=pbuc1 + //SEG90 [34] phi (byte*) sin8u_table::sintab#2 = (const byte[$14]) main::sintab#0 [phi:sin8u_table::@13->sin8u_table::@1#1] -- pbuz1=pbuc1 lda #main.sintab @@ -5721,7 +5721,7 @@ print_ln: { jmp b1 //SEG166 print_ln::@1 b1: - //SEG167 [71] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#12 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG167 [71] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#12 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -5767,7 +5767,7 @@ print_byte: { jmp b1 //SEG178 print_byte::@1 b1: - //SEG179 [78] (byte~) print_byte::$2 ← (byte) print_byte::b#8 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG179 [78] (byte~) print_byte::$2 ← (byte) print_byte::b#8 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and b //SEG180 [79] (byte) print_char::ch#4 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) -- vbuaa=pbuc1_derefidx_vbuaa @@ -6304,7 +6304,7 @@ sin8s: { clc adc usinx tax - //SEG379 [173] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) 128) goto sin8s::@3 -- vbuxx_lt_vbuc1_then_la1 + //SEG379 [173] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) $80) goto sin8s::@3 -- vbuxx_lt_vbuc1_then_la1 cpx #$80 bcc b3_from_b14 jmp b7 @@ -6455,7 +6455,7 @@ divr16u: { rol rem+1 //SEG430 [198] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 -- vbuaa=_hi_vwuz1 lda dividend+1 - //SEG431 [199] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuaa_band_vbuc1 + //SEG431 [199] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 //SEG432 [200] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuaa_eq_0_then_la1 cmp #0 @@ -6515,7 +6515,7 @@ divr16u: { b3: //SEG448 [209] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuxx=_inc_vbuxx inx - //SEG449 [210] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG449 [210] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1_from_b3 jmp b6 @@ -6534,7 +6534,7 @@ print_cls: { .label sc = 2 //SEG455 [214] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] b1_from_print_cls: - //SEG456 [214] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG456 [214] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -6555,7 +6555,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG462 [217] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG462 [217] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1_from_b1 @@ -6862,13 +6862,13 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (word) PI2_u4f12 -(const word) PI2_u4f12#0 PI2_u4f12 = (word/signed word/dword/signed dword) 25736 +(const word) PI2_u4f12#0 PI2_u4f12 = (word/signed word/dword/signed dword) $6488 (dword) PI2_u4f28 (word) PI_HALF_u4f12 -(const word) PI_HALF_u4f12#0 PI_HALF_u4f12 = (word/signed word/dword/signed dword) 6434 +(const word) PI_HALF_u4f12#0 PI_HALF_u4f12 = (word/signed word/dword/signed dword) $1922 (dword) PI_HALF_u4f28 (word) PI_u4f12 -(const word) PI_u4f12#0 PI_u4f12 = (word/signed word/dword/signed dword) 12868 +(const word) PI_u4f12#0 PI_u4f12 = (word/signed word/dword/signed dword) $3244 (dword) PI_u4f28 (word()) div16u((word) div16u::dividend , (word) div16u::divisor) (label) div16u::@2 @@ -6912,10 +6912,10 @@ FINAL SYMBOL TABLE (void()) main() (label) main::@1 (label) main::@return -(byte[20]) main::sintab -(const byte[20]) main::sintab#0 sintab = { fill( 20, 0) } +(byte[$14]) main::sintab +(const byte[$14]) main::sintab#0 sintab = { fill( $14, 0) } (word) main::tabsize -(const word) main::tabsize#0 tabsize = (byte/signed byte/word/signed word/dword/signed dword) 20 +(const word) main::tabsize#0 tabsize = (byte/signed byte/word/signed word/dword/signed dword) $14 (signed word()) mul8su((signed byte) mul8su::a , (byte) mul8su::b) (byte~) mul8su::$10 reg byte a 4.0 (byte~) mul8su::$6 reg byte a 4.0 @@ -7088,7 +7088,7 @@ FINAL SYMBOL TABLE (label) sin8s::@8 (label) sin8s::@return (byte) sin8s::DIV_6 -(const byte) sin8s::DIV_6#0 DIV_6 = (byte/signed byte/word/signed word/dword/signed dword) 43 +(const byte) sin8s::DIV_6#0 DIV_6 = (byte/signed byte/word/signed word/dword/signed dword) $2b (byte) sin8s::isUpper (byte) sin8s::isUpper#10 isUpper zp ZP_BYTE:10 0.05555555555555555 (signed byte) sin8s::return @@ -7154,11 +7154,11 @@ FINAL SYMBOL TABLE (word) sin8u_table::i#1 i zp ZP_WORD:6 16.5 (word) sin8u_table::i#10 i zp ZP_WORD:6 0.6875 (byte) sin8u_table::max -(const byte) sin8u_table::max#0 max = (byte/word/signed word/dword/signed dword) 255 +(const byte) sin8u_table::max#0 max = (byte/word/signed word/dword/signed dword) $ff (byte) sin8u_table::mid (const byte) sin8u_table::mid#0 mid = ((byte))(const word) sin8u_table::sum#0>>(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1 (byte) sin8u_table::min -(const byte) sin8u_table::min#0 min = (byte/signed byte/word/signed word/dword/signed dword) 10 +(const byte) sin8u_table::min#0 min = (byte/signed byte/word/signed word/dword/signed dword) $a (byte*) sin8u_table::sintab (byte*) sin8u_table::sintab#1 sintab zp ZP_WORD:4 1.0 (byte*) sin8u_table::sintab#2 sintab zp ZP_WORD:4 2.75 @@ -7299,7 +7299,7 @@ sin8u_table: { //SEG24 [12] (word) sin8u_table::step#0 ← (word) div16u::return#2 //SEG25 [13] call print_str //SEG26 [86] phi from sin8u_table::@3 to print_str [phi:sin8u_table::@3->print_str] - //SEG27 [86] phi (byte*) print_char_cursor#105 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:sin8u_table::@3->print_str#0] -- pbuz1=pbuc1 + //SEG27 [86] phi (byte*) print_char_cursor#105 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:sin8u_table::@3->print_str#0] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -7405,7 +7405,7 @@ sin8u_table: { //SEG84 sin8u_table::@13 //SEG85 [33] call print_ln //SEG86 [69] phi from sin8u_table::@13 to print_ln [phi:sin8u_table::@13->print_ln] - //SEG87 [69] phi (byte*) print_line_cursor#23 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:sin8u_table::@13->print_ln#0] -- pbuz1=pbuc1 + //SEG87 [69] phi (byte*) print_line_cursor#23 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:sin8u_table::@13->print_ln#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -7416,7 +7416,7 @@ sin8u_table: { lda #<0 sta i sta i+1 - //SEG90 [34] phi (byte*) sin8u_table::sintab#2 = (const byte[20]) main::sintab#0 [phi:sin8u_table::@13->sin8u_table::@1#1] -- pbuz1=pbuc1 + //SEG90 [34] phi (byte*) sin8u_table::sintab#2 = (const byte[$14]) main::sintab#0 [phi:sin8u_table::@13->sin8u_table::@1#1] -- pbuz1=pbuc1 lda #main.sintab @@ -7598,7 +7598,7 @@ print_ln: { //SEG165 [70] phi (byte*) print_line_cursor#12 = (byte*) print_line_cursor#23 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy //SEG166 print_ln::@1 b1: - //SEG167 [71] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#12 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG167 [71] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#12 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -7639,7 +7639,7 @@ print_byte: { //SEG177 [82] phi (byte) print_char::ch#5 = (byte) print_char::ch#3 [phi:print_byte->print_char#1] -- register_copy jsr print_char //SEG178 print_byte::@1 - //SEG179 [78] (byte~) print_byte::$2 ← (byte) print_byte::b#8 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG179 [78] (byte~) print_byte::$2 ← (byte) print_byte::b#8 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and b //SEG180 [79] (byte) print_char::ch#4 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) -- vbuaa=pbuc1_derefidx_vbuaa @@ -8086,7 +8086,7 @@ sin8s: { clc adc usinx tax - //SEG379 [173] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) 128) goto sin8s::@3 -- vbuxx_lt_vbuc1_then_la1 + //SEG379 [173] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) $80) goto sin8s::@3 -- vbuxx_lt_vbuc1_then_la1 cpx #$80 bcc b3 //SEG380 sin8s::@7 @@ -8209,7 +8209,7 @@ divr16u: { rol rem+1 //SEG430 [198] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 -- vbuaa=_hi_vwuz1 lda dividend+1 - //SEG431 [199] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuaa_band_vbuc1 + //SEG431 [199] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 //SEG432 [200] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuaa_eq_0_then_la1 cmp #0 @@ -8259,7 +8259,7 @@ divr16u: { b3: //SEG448 [209] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuxx=_inc_vbuxx inx - //SEG449 [210] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG449 [210] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1 //SEG450 divr16u::@6 @@ -8273,7 +8273,7 @@ divr16u: { print_cls: { .label sc = 2 //SEG455 [214] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] - //SEG456 [214] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG456 [214] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -8291,7 +8291,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG462 [217] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG462 [217] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1 diff --git a/src/test/ref/sinusgenscale8.sym b/src/test/ref/sinusgenscale8.sym index 6934f8e7f..d07fcc834 100644 --- a/src/test/ref/sinusgenscale8.sym +++ b/src/test/ref/sinusgenscale8.sym @@ -2,13 +2,13 @@ (label) @begin (label) @end (word) PI2_u4f12 -(const word) PI2_u4f12#0 PI2_u4f12 = (word/signed word/dword/signed dword) 25736 +(const word) PI2_u4f12#0 PI2_u4f12 = (word/signed word/dword/signed dword) $6488 (dword) PI2_u4f28 (word) PI_HALF_u4f12 -(const word) PI_HALF_u4f12#0 PI_HALF_u4f12 = (word/signed word/dword/signed dword) 6434 +(const word) PI_HALF_u4f12#0 PI_HALF_u4f12 = (word/signed word/dword/signed dword) $1922 (dword) PI_HALF_u4f28 (word) PI_u4f12 -(const word) PI_u4f12#0 PI_u4f12 = (word/signed word/dword/signed dword) 12868 +(const word) PI_u4f12#0 PI_u4f12 = (word/signed word/dword/signed dword) $3244 (dword) PI_u4f28 (word()) div16u((word) div16u::dividend , (word) div16u::divisor) (label) div16u::@2 @@ -52,10 +52,10 @@ (void()) main() (label) main::@1 (label) main::@return -(byte[20]) main::sintab -(const byte[20]) main::sintab#0 sintab = { fill( 20, 0) } +(byte[$14]) main::sintab +(const byte[$14]) main::sintab#0 sintab = { fill( $14, 0) } (word) main::tabsize -(const word) main::tabsize#0 tabsize = (byte/signed byte/word/signed word/dword/signed dword) 20 +(const word) main::tabsize#0 tabsize = (byte/signed byte/word/signed word/dword/signed dword) $14 (signed word()) mul8su((signed byte) mul8su::a , (byte) mul8su::b) (byte~) mul8su::$10 reg byte a 4.0 (byte~) mul8su::$6 reg byte a 4.0 @@ -228,7 +228,7 @@ (label) sin8s::@8 (label) sin8s::@return (byte) sin8s::DIV_6 -(const byte) sin8s::DIV_6#0 DIV_6 = (byte/signed byte/word/signed word/dword/signed dword) 43 +(const byte) sin8s::DIV_6#0 DIV_6 = (byte/signed byte/word/signed word/dword/signed dword) $2b (byte) sin8s::isUpper (byte) sin8s::isUpper#10 isUpper zp ZP_BYTE:10 0.05555555555555555 (signed byte) sin8s::return @@ -294,11 +294,11 @@ (word) sin8u_table::i#1 i zp ZP_WORD:6 16.5 (word) sin8u_table::i#10 i zp ZP_WORD:6 0.6875 (byte) sin8u_table::max -(const byte) sin8u_table::max#0 max = (byte/word/signed word/dword/signed dword) 255 +(const byte) sin8u_table::max#0 max = (byte/word/signed word/dword/signed dword) $ff (byte) sin8u_table::mid (const byte) sin8u_table::mid#0 mid = ((byte))(const word) sin8u_table::sum#0>>(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1 (byte) sin8u_table::min -(const byte) sin8u_table::min#0 min = (byte/signed byte/word/signed word/dword/signed dword) 10 +(const byte) sin8u_table::min#0 min = (byte/signed byte/word/signed word/dword/signed dword) $a (byte*) sin8u_table::sintab (byte*) sin8u_table::sintab#1 sintab zp ZP_WORD:4 1.0 (byte*) sin8u_table::sintab#2 sintab zp ZP_WORD:4 2.75 diff --git a/src/test/ref/string-const-consolidation-noroot.cfg b/src/test/ref/string-const-consolidation-noroot.cfg index b18175747..127493cbe 100644 --- a/src/test/ref/string-const-consolidation-noroot.cfg +++ b/src/test/ref/string-const-consolidation-noroot.cfg @@ -23,7 +23,7 @@ main::@return: scope:[main] from main::@2 [10] return to:@return print: scope:[print] from main main::@1 main::@2 - [11] (byte*) screen#18 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@1/(byte*) screen#12 main::@2/(byte*) screen#12 ) + [11] (byte*) screen#18 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@1/(byte*) screen#12 main::@2/(byte*) screen#12 ) to:print::@1 print::@1: scope:[print] from print print::@2 [12] (byte*) screen#12 ← phi( print/(byte*) screen#18 print::@2/(byte*) screen#5 ) diff --git a/src/test/ref/string-const-consolidation-noroot.log b/src/test/ref/string-const-consolidation-noroot.log index a2082a03d..cbce130a4 100644 --- a/src/test/ref/string-const-consolidation-noroot.log +++ b/src/test/ref/string-const-consolidation-noroot.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@2 main: scope:[main] from @2 (byte*) screen#15 ← phi( @2/(byte*) screen#17 ) @@ -130,7 +130,7 @@ Redundant Phi (byte*) screen#14 (byte*) screen#10 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) print::$0 [22] if(*((byte*) print::string#4)!=(byte) '@') goto print::@2 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) screen#0 = ((byte*))1024 +Constant (const byte*) screen#0 = ((byte*))$400 Constant (const byte[]) main::rex1#0 = main::$3 Constant (const byte[]) main::rex2#0 = main::$4 Constant (const byte*) print::string#2 = main::string @@ -151,7 +151,7 @@ Constant inlined print::string#0 = (const byte[]) main::rex1#0 Constant inlined main::$4 = (const byte[]) main::rex2#0 Constant inlined print::string#1 = (const byte[]) main::rex2#0 Constant inlined print::string#2 = (const string) main::string -Constant inlined screen#0 = ((byte*))(word/signed word/dword/signed dword) 1024 +Constant inlined screen#0 = ((byte*))(word/signed word/dword/signed dword) $400 Successful SSA optimization Pass2ConstantInlining Successful SSA optimization Pass2ConstantStringConsolidation Constant inlined main::rex1#0 = (const string) main::string @@ -207,7 +207,7 @@ main::@return: scope:[main] from main::@2 [10] return to:@return print: scope:[print] from main main::@1 main::@2 - [11] (byte*) screen#18 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@1/(byte*) screen#12 main::@2/(byte*) screen#12 ) + [11] (byte*) screen#18 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@1/(byte*) screen#12 main::@2/(byte*) screen#12 ) to:print::@1 print::@1: scope:[print] from print print::@2 [12] (byte*) screen#12 ← phi( print/(byte*) screen#18 print::@2/(byte*) screen#5 ) @@ -276,7 +276,7 @@ main: { //SEG11 [5] call print //SEG12 [11] phi from main to print [phi:main->print] print_from_main: - //SEG13 [11] phi (byte*) screen#18 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->print#0] -- pbuz1=pbuc1 + //SEG13 [11] phi (byte*) screen#18 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->print#0] -- pbuz1=pbuc1 lda #<$400 sta screen lda #>$400 @@ -403,7 +403,7 @@ main: { //SEG11 [5] call print //SEG12 [11] phi from main to print [phi:main->print] print_from_main: - //SEG13 [11] phi (byte*) screen#18 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->print#0] -- pbuz1=pbuc1 + //SEG13 [11] phi (byte*) screen#18 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->print#0] -- pbuz1=pbuc1 lda #<$400 sta screen lda #>$400 @@ -569,7 +569,7 @@ Score: 675 main: { //SEG11 [5] call print //SEG12 [11] phi from main to print [phi:main->print] - //SEG13 [11] phi (byte*) screen#18 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->print#0] -- pbuz1=pbuc1 + //SEG13 [11] phi (byte*) screen#18 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->print#0] -- pbuz1=pbuc1 lda #<$400 sta screen lda #>$400 diff --git a/src/test/ref/string-const-consolidation.cfg b/src/test/ref/string-const-consolidation.cfg index 5ba86fd2c..185690db9 100644 --- a/src/test/ref/string-const-consolidation.cfg +++ b/src/test/ref/string-const-consolidation.cfg @@ -23,7 +23,7 @@ main::@return: scope:[main] from main::@2 [10] return to:@return print: scope:[print] from main main::@1 main::@2 - [11] (byte*) screen#18 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@1/(byte*) screen#12 main::@2/(byte*) screen#12 ) + [11] (byte*) screen#18 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@1/(byte*) screen#12 main::@2/(byte*) screen#12 ) to:print::@1 print::@1: scope:[print] from print print::@2 [12] (byte*) screen#12 ← phi( print/(byte*) screen#18 print::@2/(byte*) screen#5 ) diff --git a/src/test/ref/string-const-consolidation.log b/src/test/ref/string-const-consolidation.log index 0b67a95b1..497853b74 100644 --- a/src/test/ref/string-const-consolidation.log +++ b/src/test/ref/string-const-consolidation.log @@ -2,7 +2,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from (byte[]) rex1#0 ← (const string) $0 - (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@2 main: scope:[main] from @2 (byte*) screen#15 ← phi( @2/(byte*) screen#17 ) @@ -131,7 +131,7 @@ Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) print::$0 [22] if(*((byte*) print::string#4)!=(byte) '@') goto print::@2 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte[]) rex1#0 = $0 -Constant (const byte*) screen#0 = ((byte*))1024 +Constant (const byte*) screen#0 = ((byte*))$400 Constant (const byte[]) main::rex2#0 = main::$3 Constant (const byte*) print::string#2 = main::string Successful SSA optimization Pass2ConstantIdentification @@ -151,7 +151,7 @@ Constant inlined print::string#0 = (const byte[]) rex1#0 Constant inlined print::string#1 = (const byte[]) main::rex2#0 Constant inlined $0 = (const byte[]) rex1#0 Constant inlined print::string#2 = (const string) main::string -Constant inlined screen#0 = ((byte*))(word/signed word/dword/signed dword) 1024 +Constant inlined screen#0 = ((byte*))(word/signed word/dword/signed dword) $400 Successful SSA optimization Pass2ConstantInlining Successful SSA optimization Pass2ConstantStringConsolidation Constant inlined main::rex2#0 = (const byte[]) rex1#0 @@ -207,7 +207,7 @@ main::@return: scope:[main] from main::@2 [10] return to:@return print: scope:[print] from main main::@1 main::@2 - [11] (byte*) screen#18 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@1/(byte*) screen#12 main::@2/(byte*) screen#12 ) + [11] (byte*) screen#18 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@1/(byte*) screen#12 main::@2/(byte*) screen#12 ) to:print::@1 print::@1: scope:[print] from print print::@2 [12] (byte*) screen#12 ← phi( print/(byte*) screen#18 print::@2/(byte*) screen#5 ) @@ -276,7 +276,7 @@ main: { //SEG11 [5] call print //SEG12 [11] phi from main to print [phi:main->print] print_from_main: - //SEG13 [11] phi (byte*) screen#18 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->print#0] -- pbuz1=pbuc1 + //SEG13 [11] phi (byte*) screen#18 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->print#0] -- pbuz1=pbuc1 lda #<$400 sta screen lda #>$400 @@ -403,7 +403,7 @@ main: { //SEG11 [5] call print //SEG12 [11] phi from main to print [phi:main->print] print_from_main: - //SEG13 [11] phi (byte*) screen#18 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->print#0] -- pbuz1=pbuc1 + //SEG13 [11] phi (byte*) screen#18 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->print#0] -- pbuz1=pbuc1 lda #<$400 sta screen lda #>$400 @@ -569,7 +569,7 @@ Score: 675 main: { //SEG11 [5] call print //SEG12 [11] phi from main to print [phi:main->print] - //SEG13 [11] phi (byte*) screen#18 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->print#0] -- pbuz1=pbuc1 + //SEG13 [11] phi (byte*) screen#18 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->print#0] -- pbuz1=pbuc1 lda #<$400 sta screen lda #>$400 diff --git a/src/test/ref/summin.cfg b/src/test/ref/summin.cfg index 4951c2f10..7754a56a9 100644 --- a/src/test/ref/summin.cfg +++ b/src/test/ref/summin.cfg @@ -32,7 +32,7 @@ main::@return: scope:[main] from main::@3 [17] return to:@return sum: scope:[sum] from main main::@1 main::@2 - [18] (byte) sum::b#3 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 2 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 4 main::@2/(byte/signed byte/word/signed word/dword/signed dword) 13 ) + [18] (byte) sum::b#3 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 2 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 4 main::@2/(byte/signed byte/word/signed word/dword/signed dword) $d ) [18] (byte) sum::a#3 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 1 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@2/(byte/signed byte/word/signed word/dword/signed dword) 9 ) [19] (byte) sum::return#3 ← (byte) sum::a#3 + (byte) sum::b#3 to:sum::@return diff --git a/src/test/ref/summin.log b/src/test/ref/summin.log index ed4f0863a..ea36b240b 100644 --- a/src/test/ref/summin.log +++ b/src/test/ref/summin.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@2 main: scope:[main] from @2 (byte*) screen#4 ← phi( @2/(byte*) screen#5 ) @@ -27,7 +27,7 @@ main::@2: scope:[main] from main::@1 (byte~) main::$1 ← (byte) sum::return#6 (byte) main::s2#0 ← (byte~) main::$1 (byte) sum::a#2 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) sum::b#2 ← (byte/signed byte/word/signed word/dword/signed dword) 13 + (byte) sum::b#2 ← (byte/signed byte/word/signed word/dword/signed dword) $d call sum (byte) sum::return#2 ← (byte) sum::return#4 to:main::@3 @@ -137,13 +137,13 @@ Alias (byte*) screen#0 = (byte*) screen#5 Successful SSA optimization Pass2AliasElimination Redundant Phi (byte*) screen#1 (byte*) screen#0 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte*) screen#0 = ((byte*))1024 +Constant (const byte*) screen#0 = ((byte*))$400 Constant (const byte) sum::a#0 = 1 Constant (const byte) sum::b#0 = 2 Constant (const byte) sum::a#1 = 3 Constant (const byte) sum::b#1 = 4 Constant (const byte) sum::a#2 = 9 -Constant (const byte) sum::b#2 = 13 +Constant (const byte) sum::b#2 = $d Successful SSA optimization Pass2ConstantIdentification Inlining constant with var siblings (const byte) sum::a#0 Inlining constant with var siblings (const byte) sum::b#0 @@ -155,7 +155,7 @@ Constant inlined sum::b#1 = (byte/signed byte/word/signed word/dword/signed dwor Constant inlined sum::a#2 = (byte/signed byte/word/signed word/dword/signed dword) 9 Constant inlined sum::b#0 = (byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined sum::a#1 = (byte/signed byte/word/signed word/dword/signed dword) 3 -Constant inlined sum::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 13 +Constant inlined sum::b#2 = (byte/signed byte/word/signed word/dword/signed dword) $d Constant inlined sum::a#0 = (byte/signed byte/word/signed word/dword/signed dword) 1 Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of @begin @@ -208,7 +208,7 @@ main::@return: scope:[main] from main::@3 [17] return to:@return sum: scope:[sum] from main main::@1 main::@2 - [18] (byte) sum::b#3 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 2 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 4 main::@2/(byte/signed byte/word/signed word/dword/signed dword) 13 ) + [18] (byte) sum::b#3 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 2 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 4 main::@2/(byte/signed byte/word/signed word/dword/signed dword) $d ) [18] (byte) sum::a#3 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 1 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@2/(byte/signed byte/word/signed word/dword/signed dword) 9 ) [19] (byte) sum::return#3 ← (byte) sum::a#3 + (byte) sum::b#3 to:sum::@return @@ -348,7 +348,7 @@ main: { //SEG25 [11] call sum //SEG26 [18] phi from main::@2 to sum [phi:main::@2->sum] sum_from_b2: - //SEG27 [18] phi (byte) sum::b#3 = (byte/signed byte/word/signed word/dword/signed dword) 13 [phi:main::@2->sum#0] -- vbuz1=vbuc1 + //SEG27 [18] phi (byte) sum::b#3 = (byte/signed byte/word/signed word/dword/signed dword) $d [phi:main::@2->sum#0] -- vbuz1=vbuc1 lda #$d sta sum.b //SEG28 [18] phi (byte) sum::a#3 = (byte/signed byte/word/signed word/dword/signed dword) 9 [phi:main::@2->sum#1] -- vbuz1=vbuc1 @@ -508,7 +508,7 @@ main: { //SEG25 [11] call sum //SEG26 [18] phi from main::@2 to sum [phi:main::@2->sum] sum_from_b2: - //SEG27 [18] phi (byte) sum::b#3 = (byte/signed byte/word/signed word/dword/signed dword) 13 [phi:main::@2->sum#0] -- vbuaa=vbuc1 + //SEG27 [18] phi (byte) sum::b#3 = (byte/signed byte/word/signed word/dword/signed dword) $d [phi:main::@2->sum#0] -- vbuaa=vbuc1 lda #$d //SEG28 [18] phi (byte) sum::a#3 = (byte/signed byte/word/signed word/dword/signed dword) 9 [phi:main::@2->sum#1] -- vbuyy=vbuc1 ldy #9 @@ -597,7 +597,7 @@ FINAL SYMBOL TABLE (byte) main::s4 (byte) main::s4#0 reg byte a 4.0 (byte*) screen -(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 (byte()) sum((byte) sum::a , (byte) sum::b) (label) sum::@return (byte) sum::a @@ -668,7 +668,7 @@ main: { tax //SEG25 [11] call sum //SEG26 [18] phi from main::@2 to sum [phi:main::@2->sum] - //SEG27 [18] phi (byte) sum::b#3 = (byte/signed byte/word/signed word/dword/signed dword) 13 [phi:main::@2->sum#0] -- vbuaa=vbuc1 + //SEG27 [18] phi (byte) sum::b#3 = (byte/signed byte/word/signed word/dword/signed dword) $d [phi:main::@2->sum#0] -- vbuaa=vbuc1 lda #$d //SEG28 [18] phi (byte) sum::a#3 = (byte/signed byte/word/signed word/dword/signed dword) 9 [phi:main::@2->sum#1] -- vbuyy=vbuc1 ldy #9 diff --git a/src/test/ref/summin.sym b/src/test/ref/summin.sym index 1000bb767..2e718680b 100644 --- a/src/test/ref/summin.sym +++ b/src/test/ref/summin.sym @@ -16,7 +16,7 @@ (byte) main::s4 (byte) main::s4#0 reg byte a 4.0 (byte*) screen -(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 (byte()) sum((byte) sum::a , (byte) sum::b) (label) sum::@return (byte) sum::a diff --git a/src/test/ref/test-address-of-param.log b/src/test/ref/test-address-of-param.log index 5e7da97db..798383902 100644 --- a/src/test/ref/test-address-of-param.log +++ b/src/test/ref/test-address-of-param.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@2 main: scope:[main] from @2 - (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) main::b1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) main::b2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) main::b3#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -115,7 +115,7 @@ Alias (byte*) main::SCREEN#0 = (byte*) main::SCREEN#3 (byte*) main::SCREEN#2 (by Alias (byte*) setByte::ptr#1 = (byte*~) main::$2 Alias (byte*) setByte::ptr#2 = (byte*~) main::$4 Successful SSA optimization Pass2AliasElimination -Constant (const byte*) main::SCREEN#0 = ((byte*))1024 +Constant (const byte*) main::SCREEN#0 = ((byte*))$400 Constant (const byte*) setByte::ptr#0 = &main::b1#0 Constant (const byte) setByte::b#0 = 'c' Constant (const byte*) setByte::ptr#1 = &main::b2#0 @@ -536,7 +536,7 @@ FINAL SYMBOL TABLE (label) main::@3 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::b1 (byte) main::b1#0 b1 zp ZP_BYTE:4 0.36363636363636365 (byte) main::b2 diff --git a/src/test/ref/test-address-of-param.sym b/src/test/ref/test-address-of-param.sym index 93f7b5853..1ef79db02 100644 --- a/src/test/ref/test-address-of-param.sym +++ b/src/test/ref/test-address-of-param.sym @@ -7,7 +7,7 @@ (label) main::@3 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::b1 (byte) main::b1#0 b1 zp ZP_BYTE:4 0.36363636363636365 (byte) main::b2 diff --git a/src/test/ref/test-address-of.cfg b/src/test/ref/test-address-of.cfg index 942257e14..dbc8955b5 100644 --- a/src/test/ref/test-address-of.cfg +++ b/src/test/ref/test-address-of.cfg @@ -15,7 +15,7 @@ main::@1: scope:[main] from main main::@1 [6] (byte) main::c#0 ← *((const byte*) main::bp#0) + (byte/signed byte/word/signed word/dword/signed dword) 1 [7] *((const byte*) main::SCREEN#0 + (byte) main::b#2) ← (byte) main::c#0 [8] (byte) main::b#1 ← ++ (byte) main::b#2 - [9] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 + [9] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [10] return diff --git a/src/test/ref/test-address-of.log b/src/test/ref/test-address-of.log index 25f347159..cdfcdb0c6 100644 --- a/src/test/ref/test-address-of.log +++ b/src/test/ref/test-address-of.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) main::b#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main main::@1 @@ -14,8 +14,8 @@ main::@1: scope:[main] from main main::@1 (byte/signed word/word/dword/signed dword~) main::$1 ← *((byte*) main::bp#0) + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) main::c#0 ← (byte/signed word/word/dword/signed dword~) main::$1 *((byte*) main::SCREEN#1 + (byte) main::b#2) ← (byte) main::c#0 - (byte) main::b#1 ← (byte) main::b#2 + rangenext(0,10) - (bool~) main::$2 ← (byte) main::b#1 != rangelast(0,10) + (byte) main::b#1 ← (byte) main::b#2 + rangenext(0,$a) + (bool~) main::$2 ← (byte) main::b#1 != rangelast(0,$a) if((bool~) main::$2) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 @@ -60,14 +60,14 @@ Self Phi Eliminated (byte*) main::SCREEN#1 Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) main::SCREEN#1 (byte*) main::SCREEN#0 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$2 [10] if((byte) main::b#1!=rangelast(0,10)) goto main::@1 +Simple Condition (bool~) main::$2 [10] if((byte) main::b#1!=rangelast(0,$a)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) main::SCREEN#0 = ((byte*))1024 +Constant (const byte*) main::SCREEN#0 = ((byte*))$400 Constant (const byte) main::b#0 = 0 Constant (const byte*) main::bp#0 = &main::b#2 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::b#1 ← ++ main::b#2 to ++ -Resolved ranged comparison value if(main::b#1!=rangelast(0,10)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 11 +Resolved ranged comparison value if(main::b#1!=rangelast(0,$a)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $b Inlining constant with var siblings (const byte) main::b#0 Constant inlined main::b#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining @@ -106,7 +106,7 @@ main::@1: scope:[main] from main main::@1 [6] (byte) main::c#0 ← *((const byte*) main::bp#0) + (byte/signed byte/word/signed word/dword/signed dword) 1 [7] *((const byte*) main::SCREEN#0 + (byte) main::b#2) ← (byte) main::c#0 [8] (byte) main::b#1 ← ++ (byte) main::b#2 - [9] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 + [9] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [10] return @@ -183,7 +183,7 @@ main: { sta SCREEN,y //SEG18 [8] (byte) main::b#1 ← ++ (byte) main::b#2 -- vbuz1=_inc_vbuz1 inc b - //SEG19 [9] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG19 [9] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda b cmp #$b bne b1_from_b1 @@ -196,7 +196,7 @@ main: { REGISTER UPLIFT POTENTIAL REGISTERS Statement [7] *((const byte*) main::SCREEN#0 + (byte) main::b#2) ← (byte) main::c#0 [ main::b#2 ] ( main:2 [ main::b#2 ] ) always clobbers reg byte y -Statement [9] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 [ main::b#1 ] ( main:2 [ main::b#1 ] ) always clobbers reg byte a +Statement [9] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 [ main::b#1 ] ( main:2 [ main::b#1 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ main::b#2 main::b#1 ] : zp ZP_BYTE:2 , Potential registers zp ZP_BYTE:3 [ main::c#0 ] : zp ZP_BYTE:3 , reg byte a , reg byte x , reg byte y , @@ -258,7 +258,7 @@ main: { sta SCREEN,y //SEG18 [8] (byte) main::b#1 ← ++ (byte) main::b#2 -- vbuz1=_inc_vbuz1 inc b - //SEG19 [9] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG19 [9] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda b cmp #$b bne b1_from_b1 @@ -302,7 +302,7 @@ FINAL SYMBOL TABLE (label) main::@1 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::b (byte) main::b#1 b zp ZP_BYTE:2 16.5 (byte) main::b#2 b zp ZP_BYTE:2 11.0 @@ -353,7 +353,7 @@ main: { sta SCREEN,y //SEG18 [8] (byte) main::b#1 ← ++ (byte) main::b#2 -- vbuz1=_inc_vbuz1 inc b - //SEG19 [9] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG19 [9] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda b cmp #$b bne b1 diff --git a/src/test/ref/test-address-of.sym b/src/test/ref/test-address-of.sym index 0f8b3ded1..d33c9cfc7 100644 --- a/src/test/ref/test-address-of.sym +++ b/src/test/ref/test-address-of.sym @@ -5,7 +5,7 @@ (label) main::@1 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::b (byte) main::b#1 b zp ZP_BYTE:2 16.5 (byte) main::b#2 b zp ZP_BYTE:2 11.0 diff --git a/src/test/ref/test-comments-block.cfg b/src/test/ref/test-comments-block.cfg index 0b97fde48..c1d0e8bab 100644 --- a/src/test/ref/test-comments-block.cfg +++ b/src/test/ref/test-comments-block.cfg @@ -22,7 +22,7 @@ main::@3: scope:[main] from main::@1 [10] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte~) main::$0 [11] (byte) main::i#1 ← ++ (byte) main::i#2 [12] (byte) main::b#1 ← ++ (byte) main::b#2 - [13] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 + [13] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 to:main::@return main::@return: scope:[main] from main::@3 [14] return diff --git a/src/test/ref/test-comments-block.log b/src/test/ref/test-comments-block.log index 343b68802..44af5acb5 100644 --- a/src/test/ref/test-comments-block.log +++ b/src/test/ref/test-comments-block.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) a#0 ← (byte) 'a' to:@2 main: scope:[main] from @2 @@ -26,8 +26,8 @@ main::@3: scope:[main] from main::@1 (byte~) main::$0 ← (byte) sum::return#3 *((byte*) SCREEN#0 + (byte) main::i#2) ← (byte~) main::$0 (byte) main::i#1 ← ++ (byte) main::i#2 - (byte) main::b#1 ← (byte) main::b#3 + rangenext(0,10) - (bool~) main::$1 ← (byte) main::b#1 != rangelast(0,10) + (byte) main::b#1 ← (byte) main::b#3 + rangenext(0,$a) + (bool~) main::$1 ← (byte) main::b#1 != rangelast(0,$a) if((bool~) main::$1) goto main::@1 to:main::@return main::@return: scope:[main] from main::@3 @@ -116,9 +116,9 @@ Redundant Phi (byte) a#1 (byte) a#2 Redundant Phi (byte) sum::a#1 (byte) sum::a#0 Redundant Phi (byte) sum::b#1 (byte) sum::b#0 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$1 [16] if((byte) main::b#1!=rangelast(0,10)) goto main::@1 +Simple Condition (bool~) main::$1 [16] if((byte) main::b#1!=rangelast(0,$a)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Constant (const byte) a#0 = 'a' Constant (const byte) main::i#0 = 0 Constant (const byte) main::b#0 = 0 @@ -126,7 +126,7 @@ Successful SSA optimization Pass2ConstantIdentification Constant (const byte) sum::a#0 = a#0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::b#1 ← ++ main::b#2 to ++ -Resolved ranged comparison value if(main::b#1!=rangelast(0,10)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 11 +Resolved ranged comparison value if(main::b#1!=rangelast(0,$a)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $b Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte) main::b#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -177,7 +177,7 @@ main::@3: scope:[main] from main::@1 [10] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte~) main::$0 [11] (byte) main::i#1 ← ++ (byte) main::i#2 [12] (byte) main::b#1 ← ++ (byte) main::b#2 - [13] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 + [13] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 to:main::@return main::@return: scope:[main] from main::@3 [14] return @@ -307,7 +307,7 @@ main: { inc i //SEG25 [12] (byte) main::b#1 ← ++ (byte) main::b#2 -- vbuz1=_inc_vbuz1 inc b - //SEG26 [13] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG26 [13] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda b cmp #$b bne b1_from_b3 @@ -424,7 +424,7 @@ main: { inx //SEG25 [12] (byte) main::b#1 ← ++ (byte) main::b#2 -- vbuyy=_inc_vbuyy iny - //SEG26 [13] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuyy_neq_vbuc1_then_la1 + //SEG26 [13] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuyy_neq_vbuc1_then_la1 cpy #$b bne b1_from_b3 jmp breturn @@ -486,7 +486,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) a (const byte) a#0 a = (byte) 'a' (void()) main() @@ -568,7 +568,7 @@ main: { inx //SEG25 [12] (byte) main::b#1 ← ++ (byte) main::b#2 -- vbuyy=_inc_vbuyy iny - //SEG26 [13] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuyy_neq_vbuc1_then_la1 + //SEG26 [13] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuyy_neq_vbuc1_then_la1 cpy #$b bne b1 //SEG27 main::@return diff --git a/src/test/ref/test-comments-block.sym b/src/test/ref/test-comments-block.sym index f4ddc32dd..fb683c67a 100644 --- a/src/test/ref/test-comments-block.sym +++ b/src/test/ref/test-comments-block.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) a (const byte) a#0 a = (byte) 'a' (void()) main() diff --git a/src/test/ref/test-comments-loop.cfg b/src/test/ref/test-comments-loop.cfg index fe9d7b95b..cfd8007dc 100644 --- a/src/test/ref/test-comments-loop.cfg +++ b/src/test/ref/test-comments-loop.cfg @@ -14,7 +14,7 @@ main::@1: scope:[main] from main main::@1 [5] (byte) main::b#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::b#1 ) [6] *((const byte*) main::SCREEN#0 + (byte) main::b#2) ← (byte) 'a' [7] (byte) main::b#1 ← ++ (byte) main::b#2 - [8] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 + [8] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [9] return diff --git a/src/test/ref/test-comments-loop.log b/src/test/ref/test-comments-loop.log index 6283c291d..2852d4b6b 100644 --- a/src/test/ref/test-comments-loop.log +++ b/src/test/ref/test-comments-loop.log @@ -3,14 +3,14 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) main::b#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main main::@1 (byte) main::b#2 ← phi( main/(byte) main::b#0 main::@1/(byte) main::b#1 ) *((byte*) main::SCREEN#0 + (byte) main::b#2) ← (byte) 'a' - (byte) main::b#1 ← (byte) main::b#2 + rangenext(0,10) - (bool~) main::$0 ← (byte) main::b#1 != rangelast(0,10) + (byte) main::b#1 ← (byte) main::b#2 + rangenext(0,$a) + (bool~) main::$0 ← (byte) main::b#1 != rangelast(0,$a) if((bool~) main::$0) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 @@ -41,13 +41,13 @@ SYMBOL TABLE SSA Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks -Simple Condition (bool~) main::$0 [6] if((byte) main::b#1!=rangelast(0,10)) goto main::@1 +Simple Condition (bool~) main::$0 [6] if((byte) main::b#1!=rangelast(0,$a)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) main::SCREEN#0 = ((byte*))1024 +Constant (const byte*) main::SCREEN#0 = ((byte*))$400 Constant (const byte) main::b#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::b#1 ← ++ main::b#2 to ++ -Resolved ranged comparison value if(main::b#1!=rangelast(0,10)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 11 +Resolved ranged comparison value if(main::b#1!=rangelast(0,$a)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $b Inlining constant with var siblings (const byte) main::b#0 Constant inlined main::b#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining @@ -85,7 +85,7 @@ main::@1: scope:[main] from main main::@1 [5] (byte) main::b#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::b#1 ) [6] *((const byte*) main::SCREEN#0 + (byte) main::b#2) ← (byte) 'a' [7] (byte) main::b#1 ← ++ (byte) main::b#2 - [8] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 + [8] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [9] return @@ -151,7 +151,7 @@ main: { sta SCREEN,y //SEG17 [7] (byte) main::b#1 ← ++ (byte) main::b#2 -- vbuz1=_inc_vbuz1 inc b - //SEG18 [8] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG18 [8] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda b cmp #$b bne b1_from_b1 @@ -218,7 +218,7 @@ main: { sta SCREEN,x //SEG17 [7] (byte) main::b#1 ← ++ (byte) main::b#2 -- vbuxx=_inc_vbuxx inx - //SEG18 [8] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG18 [8] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$b bne b1_from_b1 jmp breturn @@ -261,7 +261,7 @@ FINAL SYMBOL TABLE (label) main::@1 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::b (byte) main::b#1 reg byte x 16.5 (byte) main::b#2 reg byte x 16.5 @@ -301,7 +301,7 @@ main: { sta SCREEN,x //SEG17 [7] (byte) main::b#1 ← ++ (byte) main::b#2 -- vbuxx=_inc_vbuxx inx - //SEG18 [8] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG18 [8] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$b bne b1 //SEG19 main::@return diff --git a/src/test/ref/test-comments-loop.sym b/src/test/ref/test-comments-loop.sym index 5a3776e0f..0a0c6999c 100644 --- a/src/test/ref/test-comments-loop.sym +++ b/src/test/ref/test-comments-loop.sym @@ -5,7 +5,7 @@ (label) main::@1 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::b (byte) main::b#1 reg byte x 16.5 (byte) main::b#2 reg byte x 16.5 diff --git a/src/test/ref/test-comments-single.cfg b/src/test/ref/test-comments-single.cfg index 0b97fde48..c1d0e8bab 100644 --- a/src/test/ref/test-comments-single.cfg +++ b/src/test/ref/test-comments-single.cfg @@ -22,7 +22,7 @@ main::@3: scope:[main] from main::@1 [10] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte~) main::$0 [11] (byte) main::i#1 ← ++ (byte) main::i#2 [12] (byte) main::b#1 ← ++ (byte) main::b#2 - [13] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 + [13] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 to:main::@return main::@return: scope:[main] from main::@3 [14] return diff --git a/src/test/ref/test-comments-single.log b/src/test/ref/test-comments-single.log index 4ba69b024..5dcb14a15 100644 --- a/src/test/ref/test-comments-single.log +++ b/src/test/ref/test-comments-single.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) a#0 ← (byte) 'a' to:@2 main: scope:[main] from @2 @@ -26,8 +26,8 @@ main::@3: scope:[main] from main::@1 (byte~) main::$0 ← (byte) sum::return#3 *((byte*) SCREEN#0 + (byte) main::i#2) ← (byte~) main::$0 (byte) main::i#1 ← ++ (byte) main::i#2 - (byte) main::b#1 ← (byte) main::b#3 + rangenext(0,10) - (bool~) main::$1 ← (byte) main::b#1 != rangelast(0,10) + (byte) main::b#1 ← (byte) main::b#3 + rangenext(0,$a) + (bool~) main::$1 ← (byte) main::b#1 != rangelast(0,$a) if((bool~) main::$1) goto main::@1 to:main::@return main::@return: scope:[main] from main::@3 @@ -116,9 +116,9 @@ Redundant Phi (byte) a#1 (byte) a#2 Redundant Phi (byte) sum::a#1 (byte) sum::a#0 Redundant Phi (byte) sum::b#1 (byte) sum::b#0 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$1 [16] if((byte) main::b#1!=rangelast(0,10)) goto main::@1 +Simple Condition (bool~) main::$1 [16] if((byte) main::b#1!=rangelast(0,$a)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Constant (const byte) a#0 = 'a' Constant (const byte) main::i#0 = 0 Constant (const byte) main::b#0 = 0 @@ -126,7 +126,7 @@ Successful SSA optimization Pass2ConstantIdentification Constant (const byte) sum::a#0 = a#0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::b#1 ← ++ main::b#2 to ++ -Resolved ranged comparison value if(main::b#1!=rangelast(0,10)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 11 +Resolved ranged comparison value if(main::b#1!=rangelast(0,$a)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $b Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte) main::b#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -177,7 +177,7 @@ main::@3: scope:[main] from main::@1 [10] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte~) main::$0 [11] (byte) main::i#1 ← ++ (byte) main::i#2 [12] (byte) main::b#1 ← ++ (byte) main::b#2 - [13] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 + [13] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 to:main::@return main::@return: scope:[main] from main::@3 [14] return @@ -306,7 +306,7 @@ main: { inc i //SEG25 [12] (byte) main::b#1 ← ++ (byte) main::b#2 -- vbuz1=_inc_vbuz1 inc b - //SEG26 [13] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG26 [13] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda b cmp #$b bne b1_from_b3 @@ -421,7 +421,7 @@ main: { inx //SEG25 [12] (byte) main::b#1 ← ++ (byte) main::b#2 -- vbuyy=_inc_vbuyy iny - //SEG26 [13] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuyy_neq_vbuc1_then_la1 + //SEG26 [13] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuyy_neq_vbuc1_then_la1 cpy #$b bne b1_from_b3 jmp breturn @@ -482,7 +482,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) a (const byte) a#0 a = (byte) 'a' (void()) main() @@ -563,7 +563,7 @@ main: { inx //SEG25 [12] (byte) main::b#1 ← ++ (byte) main::b#2 -- vbuyy=_inc_vbuyy iny - //SEG26 [13] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuyy_neq_vbuc1_then_la1 + //SEG26 [13] if((byte) main::b#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuyy_neq_vbuc1_then_la1 cpy #$b bne b1 //SEG27 main::@return diff --git a/src/test/ref/test-comments-single.sym b/src/test/ref/test-comments-single.sym index f4ddc32dd..fb683c67a 100644 --- a/src/test/ref/test-comments-single.sym +++ b/src/test/ref/test-comments-single.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) a (const byte) a#0 a = (byte) 'a' (void()) main() diff --git a/src/test/ref/test-comments-usage.log b/src/test/ref/test-comments-usage.log index 2a7941ade..c3cc8e5a7 100644 --- a/src/test/ref/test-comments-usage.log +++ b/src/test/ref/test-comments-usage.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@1 main: scope:[main] from @1 *((byte*) SCREEN#0) ← (byte) 'a' @@ -28,7 +28,7 @@ SYMBOL TABLE SSA Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Successful SSA optimization Pass2ConstantIdentification Adding NOP phi() at start of @begin Adding NOP phi() at start of @1 @@ -172,7 +172,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@return diff --git a/src/test/ref/test-comments-usage.sym b/src/test/ref/test-comments-usage.sym index a5a6b884e..bae27d9bf 100644 --- a/src/test/ref/test-comments-usage.sym +++ b/src/test/ref/test-comments-usage.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@return diff --git a/src/test/ref/test-comparisons.cfg b/src/test/ref/test-comparisons.cfg index e1a643d5f..0c7dcfc1b 100644 --- a/src/test/ref/test-comparisons.cfg +++ b/src/test/ref/test-comparisons.cfg @@ -12,11 +12,11 @@ main: scope:[main] from @21 [5] call print_cls to:main::@1 main::@1: scope:[main] from main main::@71 - [6] (byte*) print_line_cursor#27 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@71/(byte*) print_line_cursor#1 ) + [6] (byte*) print_line_cursor#27 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@71/(byte*) print_line_cursor#1 ) [6] (byte) main::i#10 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@71/(byte) main::i#1 ) - [6] (byte*) print_char_cursor#120 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@71/(byte*~) print_char_cursor#142 ) + [6] (byte*) print_char_cursor#120 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@71/(byte*~) print_char_cursor#142 ) [6] (byte) main::a#10 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 7 main::@71/(byte) main::a#1 ) - [7] (byte) main::b#0 ← (byte/word/signed word/dword/signed dword) 206 - (byte) main::a#10 + [7] (byte) main::b#0 ← (byte/word/signed word/dword/signed dword) $ce - (byte) main::a#10 [8] if((byte) main::a#10>=(byte) main::b#0) goto main::@2 to:main::@23 main::@23: scope:[main] from main::@1 @@ -30,7 +30,7 @@ main::@2: scope:[main] from main::@1 main::@23 [14] call printu to:main::@46 main::@46: scope:[main] from main::@2 - [15] if((byte) main::a#10>=(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@3 + [15] if((byte) main::a#10>=(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@3 to:main::@24 main::@24: scope:[main] from main::@46 [16] phi() @@ -86,7 +86,7 @@ main::@6: scope:[main] from main::@27 main::@50 [44] call printu to:main::@51 main::@51: scope:[main] from main::@6 - [45] if((byte) main::a#10<=(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@7 + [45] if((byte) main::a#10<=(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@7 to:main::@28 main::@28: scope:[main] from main::@51 [46] phi() @@ -142,7 +142,7 @@ main::@10: scope:[main] from main::@31 main::@55 [74] call printu to:main::@56 main::@56: scope:[main] from main::@10 - [75] if((byte) main::a#10>(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@11 + [75] if((byte) main::a#10>(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@11 to:main::@32 main::@32: scope:[main] from main::@56 [76] phi() @@ -198,7 +198,7 @@ main::@14: scope:[main] from main::@35 main::@60 [104] call printu to:main::@61 main::@61: scope:[main] from main::@14 - [105] if((byte) main::a#10<(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@15 + [105] if((byte) main::a#10<(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@15 to:main::@36 main::@36: scope:[main] from main::@61 [106] phi() @@ -254,7 +254,7 @@ main::@18: scope:[main] from main::@39 main::@65 [134] call printu to:main::@66 main::@66: scope:[main] from main::@18 - [135] if((byte) main::a#10!=(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@19 + [135] if((byte) main::a#10!=(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@19 to:main::@40 main::@40: scope:[main] from main::@66 [136] phi() @@ -296,7 +296,7 @@ main::@69: scope:[main] from main::@21 [156] call print_ln to:main::@70 main::@70: scope:[main] from main::@69 - [157] (byte) main::a#1 ← (byte) main::a#10 + (byte/signed byte/word/signed word/dword/signed dword) 48 + [157] (byte) main::a#1 ← (byte) main::a#10 + (byte/signed byte/word/signed word/dword/signed dword) $30 [158] (byte) main::i#1 ← ++ (byte) main::i#10 [159] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto main::@71 to:main::@22 @@ -311,7 +311,7 @@ print_ln: scope:[print_ln] from main::@49 main::@54 main::@59 main::@64 main::@ to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [163] (byte*) print_line_cursor#13 ← phi( print_ln/(byte*) print_line_cursor#25 print_ln::@1/(byte*) print_line_cursor#1 ) - [164] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [164] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 [165] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#55) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 @@ -319,7 +319,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 to:@return printu: scope:[printu] from main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@17 main::@18 main::@19 main::@2 main::@20 main::@21 main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 [167] (byte) printu::res#20 ← phi( main::@10/(byte) printu::res#8 main::@11/(byte) printu::res#9 main::@12/(byte) printu::res#10 main::@13/(byte) printu::res#11 main::@14/(byte) printu::res#12 main::@15/(byte) printu::res#13 main::@16/(byte) printu::res#14 main::@17/(byte) printu::res#15 main::@18/(byte) printu::res#16 main::@19/(byte) printu::res#17 main::@2/(byte) printu::res#0 main::@20/(byte) printu::res#18 main::@21/(byte) printu::res#19 main::@3/(byte) printu::res#1 main::@4/(byte) printu::res#2 main::@5/(byte) printu::res#3 main::@6/(byte) printu::res#4 main::@7/(byte) printu::res#5 main::@8/(byte) printu::res#6 main::@9/(byte) printu::res#7 ) - [167] (byte) printu::b#20 ← phi( main::@10/(byte) printu::b#8 main::@11/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@12/(byte) printu::b#10 main::@13/(byte) printu::b#11 main::@14/(byte) printu::b#12 main::@15/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@16/(byte) printu::b#14 main::@17/(byte) printu::b#15 main::@18/(byte) printu::b#16 main::@19/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@2/(byte) printu::b#0 main::@20/(byte) printu::b#18 main::@21/(byte) printu::b#19 main::@3/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@4/(byte) printu::b#2 main::@5/(byte) printu::b#3 main::@6/(byte) printu::b#4 main::@7/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@8/(byte) printu::b#6 main::@9/(byte) printu::b#7 ) + [167] (byte) printu::b#20 ← phi( main::@10/(byte) printu::b#8 main::@11/(byte/signed byte/word/signed word/dword/signed dword) $37 main::@12/(byte) printu::b#10 main::@13/(byte) printu::b#11 main::@14/(byte) printu::b#12 main::@15/(byte/signed byte/word/signed word/dword/signed dword) $37 main::@16/(byte) printu::b#14 main::@17/(byte) printu::b#15 main::@18/(byte) printu::b#16 main::@19/(byte/signed byte/word/signed word/dword/signed dword) $37 main::@2/(byte) printu::b#0 main::@20/(byte) printu::b#18 main::@21/(byte) printu::b#19 main::@3/(byte/signed byte/word/signed word/dword/signed dword) $37 main::@4/(byte) printu::b#2 main::@5/(byte) printu::b#3 main::@6/(byte) printu::b#4 main::@7/(byte/signed byte/word/signed word/dword/signed dword) $37 main::@8/(byte) printu::b#6 main::@9/(byte) printu::b#7 ) [167] (byte[]) printu::op#20 ← phi( main::@10/(const string) main::op8 main::@11/(const string) main::op8 main::@12/(const string) main::op8 main::@13/(const string) main::op8 main::@14/(const string) main::op12 main::@15/(const string) main::op12 main::@16/(const string) main::op12 main::@17/(const string) main::op12 main::@18/(const string) main::op16 main::@19/(const string) main::op16 main::@2/(const string) main::op main::@20/(const string) main::op16 main::@21/(const string) main::op16 main::@3/(const string) main::op main::@4/(const string) main::op main::@5/(const string) main::op main::@6/(const string) main::op4 main::@7/(const string) main::op4 main::@8/(const string) main::op4 main::@9/(const string) main::op4 ) [167] (byte) printu::a#20 ← phi( main::@10/(byte) printu::a#8 main::@11/(byte) printu::a#9 main::@12/(byte) printu::a#10 main::@13/(byte) printu::a#11 main::@14/(byte) printu::a#12 main::@15/(byte) printu::a#13 main::@16/(byte) printu::a#14 main::@17/(byte) printu::a#15 main::@18/(byte) printu::a#16 main::@19/(byte) printu::a#17 main::@2/(byte) printu::a#0 main::@20/(byte) printu::a#18 main::@21/(byte) printu::a#19 main::@3/(byte) printu::a#1 main::@4/(byte) printu::a#2 main::@5/(byte) printu::a#3 main::@6/(byte) printu::a#4 main::@7/(byte) printu::a#5 main::@8/(byte) printu::a#6 main::@9/(byte) printu::a#7 ) [167] (byte*) print_char_cursor#95 ← phi( main::@10/(byte*~) print_char_cursor#143 main::@11/(byte*) print_char_cursor#55 main::@12/(byte*) print_char_cursor#55 main::@13/(byte*) print_char_cursor#55 main::@14/(byte*~) print_char_cursor#147 main::@15/(byte*) print_char_cursor#55 main::@16/(byte*) print_char_cursor#55 main::@17/(byte*) print_char_cursor#55 main::@18/(byte*~) print_char_cursor#151 main::@19/(byte*) print_char_cursor#55 main::@2/(byte*) print_char_cursor#120 main::@20/(byte*) print_char_cursor#55 main::@21/(byte*) print_char_cursor#55 main::@3/(byte*) print_char_cursor#55 main::@4/(byte*) print_char_cursor#55 main::@5/(byte*) print_char_cursor#55 main::@6/(byte*~) print_char_cursor#159 main::@7/(byte*) print_char_cursor#55 main::@8/(byte*) print_char_cursor#55 main::@9/(byte*) print_char_cursor#55 ) @@ -365,7 +365,7 @@ print_byte: scope:[print_byte] from printu::@1 printu::@3 [187] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [188] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [188] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [189] (byte) print_char::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [190] call print_char to:print_byte::@return @@ -392,10 +392,10 @@ print_cls: scope:[print_cls] from main [199] phi() to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 - [200] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) 1024 print_cls::@1/(byte*) print_cls::sc#1 ) + [200] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) $400 print_cls::@1/(byte*) print_cls::sc#1 ) [201] *((byte*) print_cls::sc#2) ← (byte) ' ' [202] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [203] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [203] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [204] return diff --git a/src/test/ref/test-comparisons.log b/src/test/ref/test-comparisons.log index 5ef85d739..47fb142aa 100644 --- a/src/test/ref/test-comparisons.log +++ b/src/test/ref/test-comparisons.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 to:@12 @@ -34,7 +34,7 @@ print_ln: scope:[print_ln] from main::@49 main::@54 main::@59 main::@64 main::@ print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 (byte*) print_char_cursor#49 ← phi( print_ln/(byte*) print_char_cursor#93 print_ln::@1/(byte*) print_char_cursor#49 ) (byte*) print_line_cursor#13 ← phi( print_ln/(byte*) print_line_cursor#25 print_ln::@1/(byte*) print_line_cursor#1 ) - (byte*~) print_ln::$0 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) print_ln::$0 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) print_line_cursor#1 ← (byte*~) print_ln::$0 (bool~) print_ln::$1 ← (byte*) print_line_cursor#1 < (byte*) print_char_cursor#49 if((bool~) print_ln::$1) goto print_ln::@1 @@ -67,7 +67,7 @@ print_byte::@1: scope:[print_byte] from print_byte (byte) print_byte::b#3 ← phi( print_byte/(byte) print_byte::b#2 ) (byte*) print_char_cursor#51 ← phi( print_byte/(byte*) print_char_cursor#9 ) (byte*) print_char_cursor#5 ← (byte*) print_char_cursor#51 - (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte) print_char::ch#1 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$2) call print_char to:print_byte::@2 @@ -100,7 +100,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 (byte*) print_cls::sc#2 ← phi( print_cls/(byte*) print_cls::sc#0 print_cls::@1/(byte*) print_cls::sc#1 ) *((byte*) print_cls::sc#2) ← (byte) ' ' (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) 1000 + (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) $3e8 (bool~) print_cls::$1 ← (byte*) print_cls::sc#1 != (byte*~) print_cls::$0 if((bool~) print_cls::$1) goto print_cls::@1 to:print_cls::@2 @@ -136,9 +136,9 @@ main::@1: scope:[main] from main::@45 main::@70 (byte*) print_char_cursor#120 ← phi( main::@45/(byte*) print_char_cursor#12 main::@70/(byte*) print_char_cursor#37 ) (byte) main::a#2 ← phi( main::@45/(byte) main::a#0 main::@70/(byte) main::a#1 ) (byte) main::r#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte/word/signed word/dword/signed dword~) main::$1 ← (byte/word/signed word/dword/signed dword) 206 - (byte) main::a#2 + (byte/word/signed word/dword/signed dword~) main::$1 ← (byte/word/signed word/dword/signed dword) $ce - (byte) main::a#2 (byte) main::b#0 ← (byte/word/signed word/dword/signed dword~) main::$1 - (byte[5]) main::cs#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 199, (byte/signed byte/word/signed word/dword/signed dword) 55, (byte/word/signed word/dword/signed dword) 151, (byte/signed byte/word/signed word/dword/signed dword) 103 } + (byte[5]) main::cs#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) $c7, (byte/signed byte/word/signed word/dword/signed dword) $37, (byte/word/signed word/dword/signed dword) $97, (byte/signed byte/word/signed word/dword/signed dword) $67 } (byte) main::r#1 ← (byte) '-' (bool~) main::$2 ← (byte) main::a#2 < (byte) main::b#0 (bool~) main::$3 ← ! (bool~) main::$2 @@ -165,7 +165,7 @@ main::@46: scope:[main] from main::@2 (byte*) print_char_cursor#58 ← phi( main::@2/(byte*) print_char_cursor#45 ) (byte*) print_char_cursor#13 ← (byte*) print_char_cursor#58 (byte) main::r#2 ← (byte) '-' - (bool~) main::$5 ← (byte) main::a#4 < (byte/signed byte/word/signed word/dword/signed dword) 55 + (bool~) main::$5 ← (byte) main::a#4 < (byte/signed byte/word/signed word/dword/signed dword) $37 (bool~) main::$6 ← ! (bool~) main::$5 if((bool~) main::$6) goto main::@3 to:main::@24 @@ -186,7 +186,7 @@ main::@3: scope:[main] from main::@24 main::@46 (byte) main::a#5 ← phi( main::@24/(byte) main::a#44 main::@46/(byte) main::a#4 ) (byte) printu::a#1 ← (byte) main::a#5 (byte[]) printu::op#1 ← (const string) main::op1 - (byte) printu::b#1 ← (byte/signed byte/word/signed word/dword/signed dword) 55 + (byte) printu::b#1 ← (byte/signed byte/word/signed word/dword/signed dword) $37 (byte) printu::res#1 ← (byte) main::r#42 call printu to:main::@47 @@ -307,7 +307,7 @@ main::@51: scope:[main] from main::@6 (byte*) print_char_cursor#63 ← phi( main::@6/(byte*) print_char_cursor#45 ) (byte*) print_char_cursor#18 ← (byte*) print_char_cursor#63 (byte) main::r#10 ← (byte) '-' - (bool~) main::$18 ← (byte) main::a#12 > (byte/signed byte/word/signed word/dword/signed dword) 55 + (bool~) main::$18 ← (byte) main::a#12 > (byte/signed byte/word/signed word/dword/signed dword) $37 (bool~) main::$19 ← ! (bool~) main::$18 if((bool~) main::$19) goto main::@7 to:main::@28 @@ -328,7 +328,7 @@ main::@7: scope:[main] from main::@28 main::@51 (byte) main::a#13 ← phi( main::@28/(byte) main::a#49 main::@51/(byte) main::a#12 ) (byte) printu::a#5 ← (byte) main::a#13 (byte[]) printu::op#5 ← (const string) main::op5 - (byte) printu::b#5 ← (byte/signed byte/word/signed word/dword/signed dword) 55 + (byte) printu::b#5 ← (byte/signed byte/word/signed word/dword/signed dword) $37 (byte) printu::res#5 ← (byte) main::r#46 call printu to:main::@52 @@ -449,7 +449,7 @@ main::@56: scope:[main] from main::@10 (byte*) print_char_cursor#68 ← phi( main::@10/(byte*) print_char_cursor#45 ) (byte*) print_char_cursor#23 ← (byte*) print_char_cursor#68 (byte) main::r#18 ← (byte) '-' - (bool~) main::$31 ← (byte) main::a#20 <= (byte/signed byte/word/signed word/dword/signed dword) 55 + (bool~) main::$31 ← (byte) main::a#20 <= (byte/signed byte/word/signed word/dword/signed dword) $37 (bool~) main::$32 ← ! (bool~) main::$31 if((bool~) main::$32) goto main::@11 to:main::@32 @@ -470,7 +470,7 @@ main::@11: scope:[main] from main::@32 main::@56 (byte) main::a#21 ← phi( main::@32/(byte) main::a#54 main::@56/(byte) main::a#20 ) (byte) printu::a#9 ← (byte) main::a#21 (byte[]) printu::op#9 ← (const string) main::op9 - (byte) printu::b#9 ← (byte/signed byte/word/signed word/dword/signed dword) 55 + (byte) printu::b#9 ← (byte/signed byte/word/signed word/dword/signed dword) $37 (byte) printu::res#9 ← (byte) main::r#50 call printu to:main::@57 @@ -591,7 +591,7 @@ main::@61: scope:[main] from main::@14 (byte*) print_char_cursor#73 ← phi( main::@14/(byte*) print_char_cursor#45 ) (byte*) print_char_cursor#28 ← (byte*) print_char_cursor#73 (byte) main::r#26 ← (byte) '-' - (bool~) main::$44 ← (byte) main::a#28 >= (byte/signed byte/word/signed word/dword/signed dword) 55 + (bool~) main::$44 ← (byte) main::a#28 >= (byte/signed byte/word/signed word/dword/signed dword) $37 (bool~) main::$45 ← ! (bool~) main::$44 if((bool~) main::$45) goto main::@15 to:main::@36 @@ -612,7 +612,7 @@ main::@15: scope:[main] from main::@36 main::@61 (byte) main::a#29 ← phi( main::@36/(byte) main::a#59 main::@61/(byte) main::a#28 ) (byte) printu::a#13 ← (byte) main::a#29 (byte[]) printu::op#13 ← (const string) main::op13 - (byte) printu::b#13 ← (byte/signed byte/word/signed word/dword/signed dword) 55 + (byte) printu::b#13 ← (byte/signed byte/word/signed word/dword/signed dword) $37 (byte) printu::res#13 ← (byte) main::r#54 call printu to:main::@62 @@ -732,7 +732,7 @@ main::@66: scope:[main] from main::@18 (byte*) print_char_cursor#78 ← phi( main::@18/(byte*) print_char_cursor#45 ) (byte*) print_char_cursor#33 ← (byte*) print_char_cursor#78 (byte) main::r#34 ← (byte) '-' - (bool~) main::$57 ← (byte) main::a#36 == (byte/signed byte/word/signed word/dword/signed dword) 55 + (bool~) main::$57 ← (byte) main::a#36 == (byte/signed byte/word/signed word/dword/signed dword) $37 (bool~) main::$58 ← ! (bool~) main::$57 if((bool~) main::$58) goto main::@19 to:main::@40 @@ -752,7 +752,7 @@ main::@19: scope:[main] from main::@40 main::@66 (byte) main::a#37 ← phi( main::@40/(byte) main::a#64 main::@66/(byte) main::a#36 ) (byte) printu::a#17 ← (byte) main::a#37 (byte[]) printu::op#17 ← (const string) main::op17 - (byte) printu::b#17 ← (byte/signed byte/word/signed word/dword/signed dword) 55 + (byte) printu::b#17 ← (byte/signed byte/word/signed word/dword/signed dword) $37 (byte) printu::res#17 ← (byte) main::r#58 call printu to:main::@67 @@ -831,7 +831,7 @@ main::@70: scope:[main] from main::@69 (byte*) print_line_cursor#22 ← phi( main::@69/(byte*) print_line_cursor#2 ) (byte*) print_line_cursor#10 ← (byte*) print_line_cursor#22 (byte*) print_char_cursor#37 ← (byte*) print_char_cursor#82 - (byte/signed word/word/dword/signed dword~) main::$67 ← (byte) main::a#42 + (byte/signed byte/word/signed word/dword/signed dword) 48 + (byte/signed word/word/dword/signed dword~) main::$67 ← (byte) main::a#42 + (byte/signed byte/word/signed word/dword/signed dword) $30 (byte) main::a#1 ← (byte/signed word/word/dword/signed dword~) main::$67 (byte) main::i#1 ← (byte) main::i#12 + rangenext(0,4) (bool~) main::$68 ← (byte) main::i#1 != rangelast(0,4) @@ -1728,23 +1728,23 @@ SYMBOL TABLE SSA (byte) printu::res#9 Inversing boolean not [77] (bool~) main::$3 ← (byte) main::a#2 >= (byte) main::b#0 from [76] (bool~) main::$2 ← (byte) main::a#2 < (byte) main::b#0 -Inversing boolean not [89] (bool~) main::$6 ← (byte) main::a#4 >= (byte/signed byte/word/signed word/dword/signed dword) 55 from [88] (bool~) main::$5 ← (byte) main::a#4 < (byte/signed byte/word/signed word/dword/signed dword) 55 +Inversing boolean not [89] (bool~) main::$6 ← (byte) main::a#4 >= (byte/signed byte/word/signed word/dword/signed dword) $37 from [88] (bool~) main::$5 ← (byte) main::a#4 < (byte/signed byte/word/signed word/dword/signed dword) $37 Inversing boolean not [103] (bool~) main::$9 ← (byte) main::a#6 >= *((byte[5]) main::cs#0 + (byte) main::i#2) from [102] (bool~) main::$8 ← (byte) main::a#6 < *((byte[5]) main::cs#0 + (byte) main::i#2) Inversing boolean not [117] (bool~) main::$12 ← (byte) main::a#8 >= (byte) main::a#8 from [116] (bool~) main::$11 ← (byte) main::a#8 < (byte) main::a#8 Inversing boolean not [135] (bool~) main::$16 ← (byte) main::a#10 <= (byte) main::b#2 from [134] (bool~) main::$15 ← (byte) main::a#10 > (byte) main::b#2 -Inversing boolean not [149] (bool~) main::$19 ← (byte) main::a#12 <= (byte/signed byte/word/signed word/dword/signed dword) 55 from [148] (bool~) main::$18 ← (byte) main::a#12 > (byte/signed byte/word/signed word/dword/signed dword) 55 +Inversing boolean not [149] (bool~) main::$19 ← (byte) main::a#12 <= (byte/signed byte/word/signed word/dword/signed dword) $37 from [148] (bool~) main::$18 ← (byte) main::a#12 > (byte/signed byte/word/signed word/dword/signed dword) $37 Inversing boolean not [163] (bool~) main::$22 ← (byte) main::a#14 <= *((byte[5]) main::cs#0 + (byte) main::i#4) from [162] (bool~) main::$21 ← (byte) main::a#14 > *((byte[5]) main::cs#0 + (byte) main::i#4) Inversing boolean not [177] (bool~) main::$25 ← (byte) main::a#16 <= (byte) main::a#16 from [176] (bool~) main::$24 ← (byte) main::a#16 > (byte) main::a#16 Inversing boolean not [195] (bool~) main::$29 ← (byte) main::a#18 > (byte) main::b#4 from [194] (bool~) main::$28 ← (byte) main::a#18 <= (byte) main::b#4 -Inversing boolean not [209] (bool~) main::$32 ← (byte) main::a#20 > (byte/signed byte/word/signed word/dword/signed dword) 55 from [208] (bool~) main::$31 ← (byte) main::a#20 <= (byte/signed byte/word/signed word/dword/signed dword) 55 +Inversing boolean not [209] (bool~) main::$32 ← (byte) main::a#20 > (byte/signed byte/word/signed word/dword/signed dword) $37 from [208] (bool~) main::$31 ← (byte) main::a#20 <= (byte/signed byte/word/signed word/dword/signed dword) $37 Inversing boolean not [223] (bool~) main::$35 ← (byte) main::a#22 > *((byte[5]) main::cs#0 + (byte) main::i#6) from [222] (bool~) main::$34 ← (byte) main::a#22 <= *((byte[5]) main::cs#0 + (byte) main::i#6) Inversing boolean not [237] (bool~) main::$38 ← (byte) main::a#24 > (byte) main::a#24 from [236] (bool~) main::$37 ← (byte) main::a#24 <= (byte) main::a#24 Inversing boolean not [255] (bool~) main::$42 ← (byte) main::a#26 < (byte) main::b#6 from [254] (bool~) main::$41 ← (byte) main::a#26 >= (byte) main::b#6 -Inversing boolean not [269] (bool~) main::$45 ← (byte) main::a#28 < (byte/signed byte/word/signed word/dword/signed dword) 55 from [268] (bool~) main::$44 ← (byte) main::a#28 >= (byte/signed byte/word/signed word/dword/signed dword) 55 +Inversing boolean not [269] (bool~) main::$45 ← (byte) main::a#28 < (byte/signed byte/word/signed word/dword/signed dword) $37 from [268] (bool~) main::$44 ← (byte) main::a#28 >= (byte/signed byte/word/signed word/dword/signed dword) $37 Inversing boolean not [283] (bool~) main::$48 ← (byte) main::a#30 < *((byte[5]) main::cs#0 + (byte) main::i#8) from [282] (bool~) main::$47 ← (byte) main::a#30 >= *((byte[5]) main::cs#0 + (byte) main::i#8) Inversing boolean not [297] (bool~) main::$51 ← (byte) main::a#32 < (byte) main::a#32 from [296] (bool~) main::$50 ← (byte) main::a#32 >= (byte) main::a#32 Inversing boolean not [315] (bool~) main::$55 ← (byte) main::a#34 != (byte) main::b#8 from [314] (bool~) main::$54 ← (byte) main::a#34 == (byte) main::b#8 -Inversing boolean not [329] (bool~) main::$58 ← (byte) main::a#36 != (byte/signed byte/word/signed word/dword/signed dword) 55 from [328] (bool~) main::$57 ← (byte) main::a#36 == (byte/signed byte/word/signed word/dword/signed dword) 55 +Inversing boolean not [329] (bool~) main::$58 ← (byte) main::a#36 != (byte/signed byte/word/signed word/dword/signed dword) $37 from [328] (bool~) main::$57 ← (byte) main::a#36 == (byte/signed byte/word/signed word/dword/signed dword) $37 Inversing boolean not [343] (bool~) main::$61 ← (byte) main::a#38 != *((byte[5]) main::cs#0 + (byte) main::i#10) from [342] (bool~) main::$60 ← (byte) main::a#38 == *((byte[5]) main::cs#0 + (byte) main::i#10) Inversing boolean not [357] (bool~) main::$64 ← (byte) main::a#40 != (byte) main::a#40 from [356] (bool~) main::$63 ← (byte) main::a#40 == (byte) main::a#40 Successful SSA optimization Pass2UnaryNotSimplification @@ -1979,39 +1979,39 @@ Simple Condition (bool~) print_str::$0 [6] if(*((byte*) print_str::str#2)!=(byte Simple Condition (bool~) print_ln::$1 [19] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#55) goto print_ln::@1 Simple Condition (bool~) print_cls::$1 [55] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 Simple Condition (bool~) main::$3 [78] if((byte) main::a#10>=(byte) main::b#0) goto main::@2 -Simple Condition (bool~) main::$6 [90] if((byte) main::a#10>=(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@3 +Simple Condition (bool~) main::$6 [90] if((byte) main::a#10>=(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@3 Simple Condition (bool~) main::$9 [104] if((byte) main::a#10>=*((byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@4 Simple Condition (bool~) main::$12 [118] if((byte) main::a#10>=(byte) main::a#10) goto main::@5 Simple Condition (bool~) main::$16 [136] if((byte) main::a#10<=(byte) main::b#0) goto main::@6 -Simple Condition (bool~) main::$19 [150] if((byte) main::a#10<=(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@7 +Simple Condition (bool~) main::$19 [150] if((byte) main::a#10<=(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@7 Simple Condition (bool~) main::$22 [164] if((byte) main::a#10<=*((byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@8 Simple Condition (bool~) main::$25 [178] if((byte) main::a#10<=(byte) main::a#10) goto main::@9 Simple Condition (bool~) main::$29 [196] if((byte) main::a#10>(byte) main::b#0) goto main::@10 -Simple Condition (bool~) main::$32 [210] if((byte) main::a#10>(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@11 +Simple Condition (bool~) main::$32 [210] if((byte) main::a#10>(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@11 Simple Condition (bool~) main::$35 [224] if((byte) main::a#10>*((byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@12 Simple Condition (bool~) main::$38 [238] if((byte) main::a#10>(byte) main::a#10) goto main::@13 Simple Condition (bool~) main::$42 [256] if((byte) main::a#10<(byte) main::b#0) goto main::@14 -Simple Condition (bool~) main::$45 [270] if((byte) main::a#10<(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@15 +Simple Condition (bool~) main::$45 [270] if((byte) main::a#10<(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@15 Simple Condition (bool~) main::$48 [284] if((byte) main::a#10<*((byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@16 Simple Condition (bool~) main::$51 [298] if((byte) main::a#10<(byte) main::a#10) goto main::@17 Simple Condition (bool~) main::$55 [316] if((byte) main::a#10!=(byte) main::b#0) goto main::@18 -Simple Condition (bool~) main::$58 [330] if((byte) main::a#10!=(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@19 +Simple Condition (bool~) main::$58 [330] if((byte) main::a#10!=(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@19 Simple Condition (bool~) main::$61 [344] if((byte) main::a#10!=*((byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@20 Simple Condition (bool~) main::$64 [358] if((byte) main::a#10!=(byte) main::a#10) goto main::@21 Simple Condition (bool~) main::$68 [377] if((byte) main::i#1!=rangelast(0,4)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) print_line_cursor#0 = ((byte*))1024 +Constant (const byte*) print_line_cursor#0 = ((byte*))$400 Constant (const byte[]) print_hextab#0 = $0 Constant (const byte) main::a#0 = 7 Constant (const byte) main::i#0 = 0 Constant (const byte) main::r#0 = 0 -Constant (const byte[5]) main::cs#0 = { 7, 199, 55, 151, 103 } +Constant (const byte[5]) main::cs#0 = { 7, $c7, $37, $97, $67 } Constant (const byte) main::r#1 = '-' Constant (const byte[]) printu::op#0 = main::op Constant (const byte) main::r#2 = '-' Constant (const byte) main::r#3 = '+' Constant (const byte[]) printu::op#1 = main::op1 -Constant (const byte) printu::b#1 = 55 +Constant (const byte) printu::b#1 = $37 Constant (const byte) main::r#4 = '-' Constant (const byte) main::r#5 = '+' Constant (const byte[]) printu::op#2 = main::op2 @@ -2024,7 +2024,7 @@ Constant (const byte[]) printu::op#4 = main::op4 Constant (const byte) main::r#10 = '-' Constant (const byte) main::r#11 = '+' Constant (const byte[]) printu::op#5 = main::op5 -Constant (const byte) printu::b#5 = 55 +Constant (const byte) printu::b#5 = $37 Constant (const byte) main::r#12 = '-' Constant (const byte) main::r#13 = '+' Constant (const byte[]) printu::op#6 = main::op6 @@ -2037,7 +2037,7 @@ Constant (const byte[]) printu::op#8 = main::op8 Constant (const byte) main::r#18 = '-' Constant (const byte) main::r#19 = '+' Constant (const byte[]) printu::op#9 = main::op9 -Constant (const byte) printu::b#9 = 55 +Constant (const byte) printu::b#9 = $37 Constant (const byte) main::r#20 = '-' Constant (const byte) main::r#21 = '+' Constant (const byte[]) printu::op#10 = main::op10 @@ -2050,7 +2050,7 @@ Constant (const byte[]) printu::op#12 = main::op12 Constant (const byte) main::r#26 = '-' Constant (const byte) main::r#27 = '+' Constant (const byte[]) printu::op#13 = main::op13 -Constant (const byte) printu::b#13 = 55 +Constant (const byte) printu::b#13 = $37 Constant (const byte) main::r#28 = '-' Constant (const byte) main::r#29 = '+' Constant (const byte[]) printu::op#14 = main::op14 @@ -2063,7 +2063,7 @@ Constant (const byte[]) printu::op#16 = main::op16 Constant (const byte) main::r#34 = '-' Constant (const byte) main::r#35 = '+' Constant (const byte[]) printu::op#17 = main::op17 -Constant (const byte) printu::b#17 = 55 +Constant (const byte) printu::b#17 = $37 Constant (const byte) main::r#36 = '-' Constant (const byte) main::r#37 = '+' Constant (const byte[]) printu::op#18 = main::op18 @@ -2075,7 +2075,7 @@ Constant (const byte) print_char::ch#2 = ' ' Constant (const byte) print_char::ch#3 = ' ' Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) print_cls::sc#0 = print_line_cursor#0 -Constant (const byte*) print_cls::$0 = print_line_cursor#0+1000 +Constant (const byte*) print_cls::$0 = print_line_cursor#0+$3e8 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [154] if(true) goto main::@22 Successful SSA optimization Pass2ConstantIfs @@ -2186,15 +2186,15 @@ Constant inlined main::r#35 = (byte) '+' Constant inlined main::r#36 = (byte) '-' Constant inlined main::r#30 = (byte) '-' Constant inlined main::op11 = (const string) main::op8 -Constant inlined printu::b#17 = (byte/signed byte/word/signed word/dword/signed dword) 55 +Constant inlined printu::b#17 = (byte/signed byte/word/signed word/dword/signed dword) $37 Constant inlined main::op10 = (const string) main::op8 Constant inlined main::op15 = (const string) main::op12 -Constant inlined printu::b#13 = (byte/signed byte/word/signed word/dword/signed dword) 55 +Constant inlined printu::b#13 = (byte/signed byte/word/signed word/dword/signed dword) $37 Constant inlined main::op13 = (const string) main::op12 -Constant inlined print_line_cursor#0 = ((byte*))(word/signed word/dword/signed dword) 1024 +Constant inlined print_line_cursor#0 = ((byte*))(word/signed word/dword/signed dword) $400 Constant inlined main::op14 = (const string) main::op12 Constant inlined main::r#40 = (byte) '+' -Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000 +Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8 Constant inlined printu::op#17 = (const string) main::op16 Constant inlined main::r#19 = (byte) '+' Constant inlined printu::op#18 = (const string) main::op16 @@ -2220,15 +2220,15 @@ Constant inlined main::r#6 = (byte) '-' Constant inlined main::r#28 = (byte) '-' Constant inlined main::r#7 = (byte) '+' Constant inlined main::r#29 = (byte) '+' -Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword) 1024 +Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword) $400 Constant inlined main::r#4 = (byte) '-' -Constant inlined printu::b#9 = (byte/signed byte/word/signed word/dword/signed dword) 55 +Constant inlined printu::b#9 = (byte/signed byte/word/signed word/dword/signed dword) $37 Constant inlined main::r#5 = (byte) '+' Constant inlined main::r#2 = (byte) '-' Constant inlined main::r#3 = (byte) '+' Constant inlined print_char::ch#3 = (byte) ' ' Constant inlined main::r#22 = (byte) '-' -Constant inlined printu::b#5 = (byte/signed byte/word/signed word/dword/signed dword) 55 +Constant inlined printu::b#5 = (byte/signed byte/word/signed word/dword/signed dword) $37 Constant inlined main::op1 = (const string) main::op Constant inlined printu::op#10 = (const string) main::op8 Constant inlined print_char::ch#2 = (byte) ' ' @@ -2239,7 +2239,7 @@ Constant inlined printu::op#12 = (const string) main::op12 Constant inlined main::r#21 = (byte) '+' Constant inlined printu::op#13 = (const string) main::op12 Constant inlined main::r#26 = (byte) '-' -Constant inlined printu::b#1 = (byte/signed byte/word/signed word/dword/signed dword) 55 +Constant inlined printu::b#1 = (byte/signed byte/word/signed word/dword/signed dword) $37 Constant inlined printu::op#14 = (const string) main::op12 Constant inlined main::r#27 = (byte) '+' Constant inlined printu::op#15 = (const string) main::op12 @@ -2444,11 +2444,11 @@ main: scope:[main] from @21 [5] call print_cls to:main::@1 main::@1: scope:[main] from main main::@71 - [6] (byte*) print_line_cursor#27 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@71/(byte*) print_line_cursor#1 ) + [6] (byte*) print_line_cursor#27 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@71/(byte*) print_line_cursor#1 ) [6] (byte) main::i#10 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@71/(byte) main::i#1 ) - [6] (byte*) print_char_cursor#120 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@71/(byte*~) print_char_cursor#142 ) + [6] (byte*) print_char_cursor#120 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@71/(byte*~) print_char_cursor#142 ) [6] (byte) main::a#10 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 7 main::@71/(byte) main::a#1 ) - [7] (byte) main::b#0 ← (byte/word/signed word/dword/signed dword) 206 - (byte) main::a#10 + [7] (byte) main::b#0 ← (byte/word/signed word/dword/signed dword) $ce - (byte) main::a#10 [8] if((byte) main::a#10>=(byte) main::b#0) goto main::@2 to:main::@23 main::@23: scope:[main] from main::@1 @@ -2462,7 +2462,7 @@ main::@2: scope:[main] from main::@1 main::@23 [14] call printu to:main::@46 main::@46: scope:[main] from main::@2 - [15] if((byte) main::a#10>=(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@3 + [15] if((byte) main::a#10>=(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@3 to:main::@24 main::@24: scope:[main] from main::@46 [16] phi() @@ -2518,7 +2518,7 @@ main::@6: scope:[main] from main::@27 main::@50 [44] call printu to:main::@51 main::@51: scope:[main] from main::@6 - [45] if((byte) main::a#10<=(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@7 + [45] if((byte) main::a#10<=(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@7 to:main::@28 main::@28: scope:[main] from main::@51 [46] phi() @@ -2574,7 +2574,7 @@ main::@10: scope:[main] from main::@31 main::@55 [74] call printu to:main::@56 main::@56: scope:[main] from main::@10 - [75] if((byte) main::a#10>(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@11 + [75] if((byte) main::a#10>(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@11 to:main::@32 main::@32: scope:[main] from main::@56 [76] phi() @@ -2630,7 +2630,7 @@ main::@14: scope:[main] from main::@35 main::@60 [104] call printu to:main::@61 main::@61: scope:[main] from main::@14 - [105] if((byte) main::a#10<(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@15 + [105] if((byte) main::a#10<(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@15 to:main::@36 main::@36: scope:[main] from main::@61 [106] phi() @@ -2686,7 +2686,7 @@ main::@18: scope:[main] from main::@39 main::@65 [134] call printu to:main::@66 main::@66: scope:[main] from main::@18 - [135] if((byte) main::a#10!=(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@19 + [135] if((byte) main::a#10!=(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@19 to:main::@40 main::@40: scope:[main] from main::@66 [136] phi() @@ -2728,7 +2728,7 @@ main::@69: scope:[main] from main::@21 [156] call print_ln to:main::@70 main::@70: scope:[main] from main::@69 - [157] (byte) main::a#1 ← (byte) main::a#10 + (byte/signed byte/word/signed word/dword/signed dword) 48 + [157] (byte) main::a#1 ← (byte) main::a#10 + (byte/signed byte/word/signed word/dword/signed dword) $30 [158] (byte) main::i#1 ← ++ (byte) main::i#10 [159] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto main::@71 to:main::@22 @@ -2743,7 +2743,7 @@ print_ln: scope:[print_ln] from main::@49 main::@54 main::@59 main::@64 main::@ to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [163] (byte*) print_line_cursor#13 ← phi( print_ln/(byte*) print_line_cursor#25 print_ln::@1/(byte*) print_line_cursor#1 ) - [164] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [164] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 [165] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#55) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 @@ -2751,7 +2751,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 to:@return printu: scope:[printu] from main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@17 main::@18 main::@19 main::@2 main::@20 main::@21 main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 [167] (byte) printu::res#20 ← phi( main::@10/(byte) printu::res#8 main::@11/(byte) printu::res#9 main::@12/(byte) printu::res#10 main::@13/(byte) printu::res#11 main::@14/(byte) printu::res#12 main::@15/(byte) printu::res#13 main::@16/(byte) printu::res#14 main::@17/(byte) printu::res#15 main::@18/(byte) printu::res#16 main::@19/(byte) printu::res#17 main::@2/(byte) printu::res#0 main::@20/(byte) printu::res#18 main::@21/(byte) printu::res#19 main::@3/(byte) printu::res#1 main::@4/(byte) printu::res#2 main::@5/(byte) printu::res#3 main::@6/(byte) printu::res#4 main::@7/(byte) printu::res#5 main::@8/(byte) printu::res#6 main::@9/(byte) printu::res#7 ) - [167] (byte) printu::b#20 ← phi( main::@10/(byte) printu::b#8 main::@11/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@12/(byte) printu::b#10 main::@13/(byte) printu::b#11 main::@14/(byte) printu::b#12 main::@15/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@16/(byte) printu::b#14 main::@17/(byte) printu::b#15 main::@18/(byte) printu::b#16 main::@19/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@2/(byte) printu::b#0 main::@20/(byte) printu::b#18 main::@21/(byte) printu::b#19 main::@3/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@4/(byte) printu::b#2 main::@5/(byte) printu::b#3 main::@6/(byte) printu::b#4 main::@7/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@8/(byte) printu::b#6 main::@9/(byte) printu::b#7 ) + [167] (byte) printu::b#20 ← phi( main::@10/(byte) printu::b#8 main::@11/(byte/signed byte/word/signed word/dword/signed dword) $37 main::@12/(byte) printu::b#10 main::@13/(byte) printu::b#11 main::@14/(byte) printu::b#12 main::@15/(byte/signed byte/word/signed word/dword/signed dword) $37 main::@16/(byte) printu::b#14 main::@17/(byte) printu::b#15 main::@18/(byte) printu::b#16 main::@19/(byte/signed byte/word/signed word/dword/signed dword) $37 main::@2/(byte) printu::b#0 main::@20/(byte) printu::b#18 main::@21/(byte) printu::b#19 main::@3/(byte/signed byte/word/signed word/dword/signed dword) $37 main::@4/(byte) printu::b#2 main::@5/(byte) printu::b#3 main::@6/(byte) printu::b#4 main::@7/(byte/signed byte/word/signed word/dword/signed dword) $37 main::@8/(byte) printu::b#6 main::@9/(byte) printu::b#7 ) [167] (byte[]) printu::op#20 ← phi( main::@10/(const string) main::op8 main::@11/(const string) main::op8 main::@12/(const string) main::op8 main::@13/(const string) main::op8 main::@14/(const string) main::op12 main::@15/(const string) main::op12 main::@16/(const string) main::op12 main::@17/(const string) main::op12 main::@18/(const string) main::op16 main::@19/(const string) main::op16 main::@2/(const string) main::op main::@20/(const string) main::op16 main::@21/(const string) main::op16 main::@3/(const string) main::op main::@4/(const string) main::op main::@5/(const string) main::op main::@6/(const string) main::op4 main::@7/(const string) main::op4 main::@8/(const string) main::op4 main::@9/(const string) main::op4 ) [167] (byte) printu::a#20 ← phi( main::@10/(byte) printu::a#8 main::@11/(byte) printu::a#9 main::@12/(byte) printu::a#10 main::@13/(byte) printu::a#11 main::@14/(byte) printu::a#12 main::@15/(byte) printu::a#13 main::@16/(byte) printu::a#14 main::@17/(byte) printu::a#15 main::@18/(byte) printu::a#16 main::@19/(byte) printu::a#17 main::@2/(byte) printu::a#0 main::@20/(byte) printu::a#18 main::@21/(byte) printu::a#19 main::@3/(byte) printu::a#1 main::@4/(byte) printu::a#2 main::@5/(byte) printu::a#3 main::@6/(byte) printu::a#4 main::@7/(byte) printu::a#5 main::@8/(byte) printu::a#6 main::@9/(byte) printu::a#7 ) [167] (byte*) print_char_cursor#95 ← phi( main::@10/(byte*~) print_char_cursor#143 main::@11/(byte*) print_char_cursor#55 main::@12/(byte*) print_char_cursor#55 main::@13/(byte*) print_char_cursor#55 main::@14/(byte*~) print_char_cursor#147 main::@15/(byte*) print_char_cursor#55 main::@16/(byte*) print_char_cursor#55 main::@17/(byte*) print_char_cursor#55 main::@18/(byte*~) print_char_cursor#151 main::@19/(byte*) print_char_cursor#55 main::@2/(byte*) print_char_cursor#120 main::@20/(byte*) print_char_cursor#55 main::@21/(byte*) print_char_cursor#55 main::@3/(byte*) print_char_cursor#55 main::@4/(byte*) print_char_cursor#55 main::@5/(byte*) print_char_cursor#55 main::@6/(byte*~) print_char_cursor#159 main::@7/(byte*) print_char_cursor#55 main::@8/(byte*) print_char_cursor#55 main::@9/(byte*) print_char_cursor#55 ) @@ -2797,7 +2797,7 @@ print_byte: scope:[print_byte] from printu::@1 printu::@3 [187] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [188] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [188] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [189] (byte) print_char::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [190] call print_char to:print_byte::@return @@ -2824,10 +2824,10 @@ print_cls: scope:[print_cls] from main [199] phi() to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 - [200] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) 1024 print_cls::@1/(byte*) print_cls::sc#1 ) + [200] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) $400 print_cls::@1/(byte*) print_cls::sc#1 ) [201] *((byte*) print_cls::sc#2) ← (byte) ' ' [202] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [203] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [203] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [204] return @@ -3138,7 +3138,7 @@ main: { jsr print_cls //SEG13 [6] phi from main to main::@1 [phi:main->main::@1] b1_from_main: - //SEG14 [6] phi (byte*) print_line_cursor#27 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + //SEG14 [6] phi (byte*) print_line_cursor#27 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -3146,7 +3146,7 @@ main: { //SEG15 [6] phi (byte) main::i#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#1] -- vbuz1=vbuc1 lda #0 sta i - //SEG16 [6] phi (byte*) print_char_cursor#120 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#2] -- pbuz1=pbuc1 + //SEG16 [6] phi (byte*) print_char_cursor#120 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#2] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -3157,7 +3157,7 @@ main: { jmp b1 //SEG18 main::@1 b1: - //SEG19 [7] (byte) main::b#0 ← (byte/word/signed word/dword/signed dword) 206 - (byte) main::a#10 -- vbuz1=vbuc1_minus_vbuz2 + //SEG19 [7] (byte) main::b#0 ← (byte/word/signed word/dword/signed dword) $ce - (byte) main::a#10 -- vbuz1=vbuc1_minus_vbuz2 lda #$ce sec sbc a @@ -3210,7 +3210,7 @@ main: { jmp b46 //SEG38 main::@46 b46: - //SEG39 [15] if((byte) main::a#10>=(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@3 -- vbuz1_ge_vbuc1_then_la1 + //SEG39 [15] if((byte) main::a#10>=(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@3 -- vbuz1_ge_vbuc1_then_la1 lda a cmp #$37 bcs b3_from_b46 @@ -3243,7 +3243,7 @@ main: { //SEG50 [167] phi from main::@3 to printu [phi:main::@3->printu] printu_from_b3: //SEG51 [167] phi (byte) printu::res#20 = (byte) printu::res#1 [phi:main::@3->printu#0] -- register_copy - //SEG52 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@3->printu#1] -- vbuz1=vbuc1 + //SEG52 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) $37 [phi:main::@3->printu#1] -- vbuz1=vbuc1 lda #$37 sta printu.b //SEG53 [167] phi (byte[]) printu::op#20 = (const string) main::op [phi:main::@3->printu#2] -- pbuz1=pbuc1 @@ -3418,7 +3418,7 @@ main: { jmp b51 //SEG119 main::@51 b51: - //SEG120 [45] if((byte) main::a#10<=(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@7 -- vbuz1_le_vbuc1_then_la1 + //SEG120 [45] if((byte) main::a#10<=(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@7 -- vbuz1_le_vbuc1_then_la1 lda #$37 cmp a bcs b7_from_b51 @@ -3451,7 +3451,7 @@ main: { //SEG131 [167] phi from main::@7 to printu [phi:main::@7->printu] printu_from_b7: //SEG132 [167] phi (byte) printu::res#20 = (byte) printu::res#5 [phi:main::@7->printu#0] -- register_copy - //SEG133 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@7->printu#1] -- vbuz1=vbuc1 + //SEG133 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) $37 [phi:main::@7->printu#1] -- vbuz1=vbuc1 lda #$37 sta printu.b //SEG134 [167] phi (byte[]) printu::op#20 = (const string) main::op4 [phi:main::@7->printu#2] -- pbuz1=pbuc1 @@ -3626,7 +3626,7 @@ main: { jmp b56 //SEG200 main::@56 b56: - //SEG201 [75] if((byte) main::a#10>(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@11 -- vbuz1_gt_vbuc1_then_la1 + //SEG201 [75] if((byte) main::a#10>(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@11 -- vbuz1_gt_vbuc1_then_la1 lda a cmp #$37 beq !+ @@ -3661,7 +3661,7 @@ main: { //SEG212 [167] phi from main::@11 to printu [phi:main::@11->printu] printu_from_b11: //SEG213 [167] phi (byte) printu::res#20 = (byte) printu::res#9 [phi:main::@11->printu#0] -- register_copy - //SEG214 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@11->printu#1] -- vbuz1=vbuc1 + //SEG214 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) $37 [phi:main::@11->printu#1] -- vbuz1=vbuc1 lda #$37 sta printu.b //SEG215 [167] phi (byte[]) printu::op#20 = (const string) main::op8 [phi:main::@11->printu#2] -- pbuz1=pbuc1 @@ -3836,7 +3836,7 @@ main: { jmp b61 //SEG281 main::@61 b61: - //SEG282 [105] if((byte) main::a#10<(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@15 -- vbuz1_lt_vbuc1_then_la1 + //SEG282 [105] if((byte) main::a#10<(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@15 -- vbuz1_lt_vbuc1_then_la1 lda a cmp #$37 bcc b15_from_b61 @@ -3869,7 +3869,7 @@ main: { //SEG293 [167] phi from main::@15 to printu [phi:main::@15->printu] printu_from_b15: //SEG294 [167] phi (byte) printu::res#20 = (byte) printu::res#13 [phi:main::@15->printu#0] -- register_copy - //SEG295 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@15->printu#1] -- vbuz1=vbuc1 + //SEG295 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) $37 [phi:main::@15->printu#1] -- vbuz1=vbuc1 lda #$37 sta printu.b //SEG296 [167] phi (byte[]) printu::op#20 = (const string) main::op12 [phi:main::@15->printu#2] -- pbuz1=pbuc1 @@ -4044,7 +4044,7 @@ main: { jmp b66 //SEG362 main::@66 b66: - //SEG363 [135] if((byte) main::a#10!=(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@19 -- vbuz1_neq_vbuc1_then_la1 + //SEG363 [135] if((byte) main::a#10!=(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@19 -- vbuz1_neq_vbuc1_then_la1 lda a cmp #$37 bne b19_from_b66 @@ -4077,7 +4077,7 @@ main: { //SEG374 [167] phi from main::@19 to printu [phi:main::@19->printu] printu_from_b19: //SEG375 [167] phi (byte) printu::res#20 = (byte) printu::res#17 [phi:main::@19->printu#0] -- register_copy - //SEG376 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@19->printu#1] -- vbuz1=vbuc1 + //SEG376 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) $37 [phi:main::@19->printu#1] -- vbuz1=vbuc1 lda #$37 sta printu.b //SEG377 [167] phi (byte[]) printu::op#20 = (const string) main::op16 [phi:main::@19->printu#2] -- pbuz1=pbuc1 @@ -4199,7 +4199,7 @@ main: { jmp b70 //SEG423 main::@70 b70: - //SEG424 [157] (byte) main::a#1 ← (byte) main::a#10 + (byte/signed byte/word/signed word/dword/signed dword) 48 -- vbuz1=vbuz1_plus_vbuc1 + //SEG424 [157] (byte) main::a#1 ← (byte) main::a#10 + (byte/signed byte/word/signed word/dword/signed dword) $30 -- vbuz1=vbuz1_plus_vbuc1 lda #$30 clc adc a @@ -4248,7 +4248,7 @@ print_ln: { jmp b1 //SEG439 print_ln::@1 b1: - //SEG440 [164] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG440 [164] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -4400,7 +4400,7 @@ print_byte: { jmp b1 //SEG491 print_byte::@1 b1: - //SEG492 [188] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG492 [188] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and b sta _2 @@ -4468,7 +4468,7 @@ print_cls: { .label sc = $25 //SEG513 [200] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] b1_from_print_cls: - //SEG514 [200] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG514 [200] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -4489,7 +4489,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG520 [203] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG520 [203] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1_from_b1 @@ -4505,7 +4505,7 @@ print_cls: { print_hextab: .text "0123456789abcdef" REGISTER UPLIFT POTENTIAL REGISTERS -Statement [7] (byte) main::b#0 ← (byte/word/signed word/dword/signed dword) 206 - (byte) main::a#10 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 main::b#0 ] ( main:2 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 main::b#0 ] ) always clobbers reg byte a +Statement [7] (byte) main::b#0 ← (byte/word/signed word/dword/signed dword) $ce - (byte) main::a#10 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 main::b#0 ] ( main:2 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 main::b#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::a#10 main::a#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ main::i#10 main::i#1 ] Statement [21] if((byte) main::a#10>=*((const byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@4 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a @@ -4518,7 +4518,7 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:30 [ p Statement [51] if((byte) main::a#10<=*((const byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@8 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a Statement [58] if((byte) main::a#10<=(byte) main::a#10) goto main::@9 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a Statement [73] (byte*~) print_char_cursor#143 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#143 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#143 ] ) always clobbers reg byte a -Statement [75] if((byte) main::a#10>(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@11 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a +Statement [75] if((byte) main::a#10>(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@11 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a Statement [81] if((byte) main::a#10>*((const byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@12 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a Statement [88] if((byte) main::a#10>(byte) main::a#10) goto main::@13 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a Statement [103] (byte*~) print_char_cursor#147 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#147 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#147 ] ) always clobbers reg byte a @@ -4527,9 +4527,9 @@ Statement [118] if((byte) main::a#10<(byte) main::a#10) goto main::@17 [ main::a Statement [133] (byte*~) print_char_cursor#151 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#151 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#151 ] ) always clobbers reg byte a Statement [141] if((byte) main::a#10!=*((const byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@20 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) always clobbers reg byte a Statement [148] if((byte) main::a#10!=(byte) main::a#10) goto main::@21 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) always clobbers reg byte a -Statement [157] (byte) main::a#1 ← (byte) main::a#10 + (byte/signed byte/word/signed word/dword/signed dword) 48 [ main::i#10 main::a#1 print_line_cursor#1 ] ( main:2 [ main::i#10 main::a#1 print_line_cursor#1 ] ) always clobbers reg byte a +Statement [157] (byte) main::a#1 ← (byte) main::a#10 + (byte/signed byte/word/signed word/dword/signed dword) $30 [ main::i#10 main::a#1 print_line_cursor#1 ] ( main:2 [ main::i#10 main::a#1 print_line_cursor#1 ] ) always clobbers reg byte a Statement [161] (byte*~) print_char_cursor#142 ← (byte*) print_line_cursor#1 [ main::a#1 print_char_cursor#142 main::i#1 print_line_cursor#1 ] ( main:2 [ main::a#1 print_char_cursor#142 main::i#1 print_line_cursor#1 ] ) always clobbers reg byte a -Statement [164] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#55 ] ( main:2::print_ln:36 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:66 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:96 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:126 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:156 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) always clobbers reg byte a +Statement [164] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#1 print_char_cursor#55 ] ( main:2::print_ln:36 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:66 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:96 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:126 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:156 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) always clobbers reg byte a Statement [165] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#55) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#55 ] ( main:2::print_ln:36 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:66 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:96 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:126 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:156 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) always clobbers reg byte a Statement [171] (byte*) print_str::str#1 ← (byte[]) printu::op#20 [ print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] ( main:2::printu:14 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:20 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:27 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:34 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:44 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:50 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:57 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:64 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:74 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:80 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:87 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:94 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:104 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:110 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:117 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:124 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:134 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:140 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:147 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:154 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] ) always clobbers reg byte a Statement [181] *((byte*) print_char_cursor#54) ← (byte) print_char::ch#5 [ print_char_cursor#54 ] ( main:2::printu:14::print_char:168 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:20::print_char:168 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:27::print_char:168 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:34::print_char:168 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:44::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:50::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:57::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:64::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:74::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:80::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:87::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:94::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:104::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:110::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:117::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:124::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:134::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:140::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:147::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:154::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:14::print_char:176 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:20::print_char:176 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:27::print_char:176 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:34::print_char:176 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:44::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:50::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:57::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:64::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:74::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:80::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:87::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:94::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:104::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:110::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:117::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:124::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:134::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#54 ] main:2::printu:140::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#54 ] main:2::printu:147::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#54 ] main:2::printu:154::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#54 ] main:2::printu:14::print_char:178 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#54 ] main:2::printu:20::print_char:178 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#54 ] main:2::printu:27::print_char:178 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#54 ] main:2::printu:34::print_char:178 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#54 ] main:2::printu:44::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:50::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:57::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:64::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:74::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:80::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:87::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:94::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:104::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:110::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:117::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:124::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:134::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#54 ] main:2::printu:140::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#54 ] main:2::printu:147::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#54 ] main:2::printu:154::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#54 ] main:2::printu:14::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:20::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:27::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:34::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:44::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:50::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:57::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:64::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:74::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:80::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:87::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:94::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:104::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:110::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:117::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:124::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:134::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:140::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:147::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:154::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:14::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:20::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:27::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:34::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:44::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:50::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:57::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:64::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:74::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:80::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:87::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:94::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:104::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:110::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:117::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:124::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:134::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:140::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:147::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:154::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:14::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:20::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:27::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:34::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:44::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:50::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:57::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:64::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:74::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:80::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:87::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:94::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:104::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:110::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:117::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:124::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:134::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:140::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:147::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:154::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:14::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:20::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:27::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:34::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:44::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:50::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:57::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:64::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:74::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:80::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:87::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:94::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:104::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:110::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:117::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:124::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:134::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#54 ] main:2::printu:140::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#54 ] main:2::printu:147::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#54 ] main:2::printu:154::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#54 ] ) always clobbers reg byte y @@ -4542,12 +4542,12 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:30 [ p Removing always clobbered register reg byte y as potential for zp ZP_BYTE:34 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] Statement [185] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_char_cursor#94 print_byte::b#2 print_byte::$0 ] ( main:2::printu:14::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:20::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:27::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:34::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:44::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:50::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:57::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:64::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:74::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:80::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:87::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:94::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:104::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:110::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:117::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:124::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:134::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:140::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:147::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:154::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:14::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:20::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:27::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:34::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:44::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:50::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:57::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:64::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:74::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:80::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:87::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:94::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:104::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:110::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:117::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:124::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:134::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:140::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:147::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:154::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:34 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] -Statement [188] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#55 print_byte::$2 ] ( main:2::printu:14::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:20::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:27::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:34::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:44::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:50::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:57::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:64::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:74::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:80::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:87::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:94::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:104::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:110::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:117::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:124::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:134::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:140::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:147::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:154::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:14::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:20::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:27::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:34::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:44::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:50::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:57::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:64::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:74::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:80::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:87::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:94::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:104::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:110::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:117::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:124::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:134::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:140::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:147::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:154::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] ) always clobbers reg byte a +Statement [188] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#55 print_byte::$2 ] ( main:2::printu:14::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:20::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:27::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:34::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:44::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:50::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:57::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:64::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:74::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:80::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:87::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:94::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:104::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:110::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:117::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:124::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:134::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:140::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:147::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:154::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:14::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:20::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:27::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:34::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:44::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:50::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:57::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:64::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:74::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:80::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:87::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:94::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:104::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:110::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:117::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:124::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:134::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:140::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:147::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:154::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] ) always clobbers reg byte a Statement [194] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2 [ print_char_cursor#2 print_str::str#2 ] ( main:2::printu:14::print_str:172 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:20::print_str:172 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:27::print_str:172 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:34::print_str:172 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:44::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:50::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:57::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:64::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:74::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:80::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:87::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:94::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:104::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:110::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:117::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:124::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:134::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:140::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:147::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:154::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] ) always clobbers reg byte a reg byte y Statement [196] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#2) [ print_char_cursor#2 print_str::str#2 ] ( main:2::printu:14::print_str:172 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:20::print_str:172 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:27::print_str:172 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:34::print_str:172 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:44::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:50::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:57::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:64::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:74::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:80::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:87::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:94::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:104::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:110::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:117::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:124::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:134::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:140::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:147::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:154::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] ) always clobbers reg byte a reg byte y Statement [201] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [203] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a -Statement [7] (byte) main::b#0 ← (byte/word/signed word/dword/signed dword) 206 - (byte) main::a#10 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 main::b#0 ] ( main:2 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 main::b#0 ] ) always clobbers reg byte a +Statement [203] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [7] (byte) main::b#0 ← (byte/word/signed word/dword/signed dword) $ce - (byte) main::a#10 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 main::b#0 ] ( main:2 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 main::b#0 ] ) always clobbers reg byte a Statement [21] if((byte) main::a#10>=*((const byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@4 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a reg byte y Statement [25] (byte) printu::b#2 ← *((const byte[5]) main::cs#0 + (byte) main::i#10) [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 main::r#43 printu::a#2 printu::b#2 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 main::r#43 printu::a#2 printu::b#2 print_char_cursor#55 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:6 [ main::r#43 ] @@ -4558,7 +4558,7 @@ Statement [55] (byte) printu::b#6 ← *((const byte[5]) main::cs#0 + (byte) main Removing always clobbered register reg byte a as potential for zp ZP_BYTE:10 [ main::r#47 ] Statement [58] if((byte) main::a#10<=(byte) main::a#10) goto main::@9 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a Statement [73] (byte*~) print_char_cursor#143 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#143 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#143 ] ) always clobbers reg byte a -Statement [75] if((byte) main::a#10>(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@11 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a +Statement [75] if((byte) main::a#10>(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@11 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a Statement [81] if((byte) main::a#10>*((const byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@12 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a Statement [85] (byte) printu::b#10 ← *((const byte[5]) main::cs#0 + (byte) main::i#10) [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#51 printu::a#10 printu::b#10 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#51 printu::a#10 printu::b#10 print_char_cursor#55 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:14 [ main::r#51 ] @@ -4573,19 +4573,19 @@ Statement [141] if((byte) main::a#10!=*((const byte[5]) main::cs#0 + (byte) main Statement [145] (byte) printu::b#18 ← *((const byte[5]) main::cs#0 + (byte) main::i#10) [ main::a#10 main::i#10 print_line_cursor#1 main::r#59 printu::a#18 printu::b#18 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::r#59 printu::a#18 printu::b#18 print_char_cursor#55 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:22 [ main::r#59 ] Statement [148] if((byte) main::a#10!=(byte) main::a#10) goto main::@21 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) always clobbers reg byte a -Statement [157] (byte) main::a#1 ← (byte) main::a#10 + (byte/signed byte/word/signed word/dword/signed dword) 48 [ main::i#10 main::a#1 print_line_cursor#1 ] ( main:2 [ main::i#10 main::a#1 print_line_cursor#1 ] ) always clobbers reg byte a +Statement [157] (byte) main::a#1 ← (byte) main::a#10 + (byte/signed byte/word/signed word/dword/signed dword) $30 [ main::i#10 main::a#1 print_line_cursor#1 ] ( main:2 [ main::i#10 main::a#1 print_line_cursor#1 ] ) always clobbers reg byte a Statement [161] (byte*~) print_char_cursor#142 ← (byte*) print_line_cursor#1 [ main::a#1 print_char_cursor#142 main::i#1 print_line_cursor#1 ] ( main:2 [ main::a#1 print_char_cursor#142 main::i#1 print_line_cursor#1 ] ) always clobbers reg byte a -Statement [164] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#55 ] ( main:2::print_ln:36 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:66 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:96 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:126 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:156 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) always clobbers reg byte a +Statement [164] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#1 print_char_cursor#55 ] ( main:2::print_ln:36 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:66 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:96 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:126 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:156 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) always clobbers reg byte a Statement [165] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#55) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#55 ] ( main:2::print_ln:36 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:66 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:96 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:126 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:156 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) always clobbers reg byte a Statement [171] (byte*) print_str::str#1 ← (byte[]) printu::op#20 [ print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] ( main:2::printu:14 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:20 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:27 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:34 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:44 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:50 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:57 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:64 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:74 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:80 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:87 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:94 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:104 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:110 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:117 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:124 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:134 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:140 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:147 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:154 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] ) always clobbers reg byte a Statement [181] *((byte*) print_char_cursor#54) ← (byte) print_char::ch#5 [ print_char_cursor#54 ] ( main:2::printu:14::print_char:168 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:20::print_char:168 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:27::print_char:168 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:34::print_char:168 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:44::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:50::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:57::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:64::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:74::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:80::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:87::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:94::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:104::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:110::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:117::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:124::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:134::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:140::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:147::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:154::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:14::print_char:176 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:20::print_char:176 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:27::print_char:176 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:34::print_char:176 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:44::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:50::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:57::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:64::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:74::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:80::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:87::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:94::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:104::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:110::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:117::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:124::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:134::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#54 ] main:2::printu:140::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#54 ] main:2::printu:147::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#54 ] main:2::printu:154::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#54 ] main:2::printu:14::print_char:178 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#54 ] main:2::printu:20::print_char:178 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#54 ] main:2::printu:27::print_char:178 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#54 ] main:2::printu:34::print_char:178 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#54 ] main:2::printu:44::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:50::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:57::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:64::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:74::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:80::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:87::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:94::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:104::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:110::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:117::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:124::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:134::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#54 ] main:2::printu:140::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#54 ] main:2::printu:147::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#54 ] main:2::printu:154::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#54 ] main:2::printu:14::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:20::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:27::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:34::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:44::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:50::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:57::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:64::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:74::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:80::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:87::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:94::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:104::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:110::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:117::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:124::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:134::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:140::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:147::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:154::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:14::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:20::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:27::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:34::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:44::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:50::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:57::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:64::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:74::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:80::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:87::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:94::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:104::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:110::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:117::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:124::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:134::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:140::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:147::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:154::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:14::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:20::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:27::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:34::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:44::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:50::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:57::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:64::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:74::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:80::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:87::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:94::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:104::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:110::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:117::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:124::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:134::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:140::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:147::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:154::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:14::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:20::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:27::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:34::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:44::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:50::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:57::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:64::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:74::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:80::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:87::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:94::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:104::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:110::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:117::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:124::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:134::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#54 ] main:2::printu:140::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#54 ] main:2::printu:147::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#54 ] main:2::printu:154::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#54 ] ) always clobbers reg byte y Statement [185] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_char_cursor#94 print_byte::b#2 print_byte::$0 ] ( main:2::printu:14::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:20::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:27::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:34::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:44::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:50::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:57::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:64::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:74::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:80::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:87::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:94::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:104::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:110::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:117::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:124::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:134::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:140::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:147::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:154::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:14::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:20::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:27::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:34::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:44::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:50::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:57::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:64::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:74::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:80::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:87::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:94::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:104::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:110::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:117::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:124::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:134::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:140::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:147::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:154::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] ) always clobbers reg byte a -Statement [188] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#55 print_byte::$2 ] ( main:2::printu:14::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:20::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:27::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:34::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:44::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:50::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:57::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:64::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:74::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:80::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:87::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:94::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:104::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:110::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:117::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:124::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:134::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:140::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:147::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:154::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:14::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:20::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:27::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:34::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:44::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:50::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:57::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:64::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:74::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:80::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:87::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:94::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:104::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:110::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:117::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:124::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:134::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:140::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:147::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:154::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] ) always clobbers reg byte a +Statement [188] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#55 print_byte::$2 ] ( main:2::printu:14::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:20::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:27::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:34::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:44::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:50::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:57::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:64::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:74::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:80::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:87::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:94::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:104::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:110::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:117::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:124::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:134::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:140::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:147::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:154::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:14::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:20::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:27::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:34::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:44::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:50::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:57::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:64::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:74::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:80::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:87::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:94::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:104::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:110::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:117::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:124::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:134::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:140::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:147::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:154::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] ) always clobbers reg byte a Statement [194] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2 [ print_char_cursor#2 print_str::str#2 ] ( main:2::printu:14::print_str:172 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:20::print_str:172 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:27::print_str:172 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:34::print_str:172 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:44::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:50::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:57::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:64::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:74::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:80::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:87::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:94::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:104::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:110::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:117::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:124::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:134::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:140::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:147::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:154::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] ) always clobbers reg byte a reg byte y Statement [196] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#2) [ print_char_cursor#2 print_str::str#2 ] ( main:2::printu:14::print_str:172 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:20::print_str:172 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:27::print_str:172 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:34::print_str:172 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:44::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:50::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:57::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:64::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:74::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:80::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:87::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:94::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:104::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:110::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:117::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:124::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:134::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:140::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:147::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:154::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] ) always clobbers reg byte a reg byte y Statement [201] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [203] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a -Statement [7] (byte) main::b#0 ← (byte/word/signed word/dword/signed dword) 206 - (byte) main::a#10 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 main::b#0 ] ( main:2 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 main::b#0 ] ) always clobbers reg byte a +Statement [203] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [7] (byte) main::b#0 ← (byte/word/signed word/dword/signed dword) $ce - (byte) main::a#10 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 main::b#0 ] ( main:2 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 main::b#0 ] ) always clobbers reg byte a Statement [21] if((byte) main::a#10>=*((const byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@4 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a reg byte y Statement [25] (byte) printu::b#2 ← *((const byte[5]) main::cs#0 + (byte) main::i#10) [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 main::r#43 printu::a#2 printu::b#2 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 main::r#43 printu::a#2 printu::b#2 print_char_cursor#55 ] ) always clobbers reg byte a Statement [28] if((byte) main::a#10>=(byte) main::a#10) goto main::@5 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a @@ -4594,7 +4594,7 @@ Statement [51] if((byte) main::a#10<=*((const byte[5]) main::cs#0 + (byte) main: Statement [55] (byte) printu::b#6 ← *((const byte[5]) main::cs#0 + (byte) main::i#10) [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#47 printu::a#6 printu::b#6 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#47 printu::a#6 printu::b#6 print_char_cursor#55 ] ) always clobbers reg byte a Statement [58] if((byte) main::a#10<=(byte) main::a#10) goto main::@9 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a Statement [73] (byte*~) print_char_cursor#143 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#143 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#143 ] ) always clobbers reg byte a -Statement [75] if((byte) main::a#10>(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@11 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a +Statement [75] if((byte) main::a#10>(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@11 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a Statement [81] if((byte) main::a#10>*((const byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@12 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a Statement [85] (byte) printu::b#10 ← *((const byte[5]) main::cs#0 + (byte) main::i#10) [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#51 printu::a#10 printu::b#10 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#51 printu::a#10 printu::b#10 print_char_cursor#55 ] ) always clobbers reg byte a Statement [88] if((byte) main::a#10>(byte) main::a#10) goto main::@13 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a @@ -4606,18 +4606,18 @@ Statement [133] (byte*~) print_char_cursor#151 ← (byte*) print_line_cursor#1 [ Statement [141] if((byte) main::a#10!=*((const byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@20 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) always clobbers reg byte a Statement [145] (byte) printu::b#18 ← *((const byte[5]) main::cs#0 + (byte) main::i#10) [ main::a#10 main::i#10 print_line_cursor#1 main::r#59 printu::a#18 printu::b#18 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::r#59 printu::a#18 printu::b#18 print_char_cursor#55 ] ) always clobbers reg byte a Statement [148] if((byte) main::a#10!=(byte) main::a#10) goto main::@21 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) always clobbers reg byte a -Statement [157] (byte) main::a#1 ← (byte) main::a#10 + (byte/signed byte/word/signed word/dword/signed dword) 48 [ main::i#10 main::a#1 print_line_cursor#1 ] ( main:2 [ main::i#10 main::a#1 print_line_cursor#1 ] ) always clobbers reg byte a +Statement [157] (byte) main::a#1 ← (byte) main::a#10 + (byte/signed byte/word/signed word/dword/signed dword) $30 [ main::i#10 main::a#1 print_line_cursor#1 ] ( main:2 [ main::i#10 main::a#1 print_line_cursor#1 ] ) always clobbers reg byte a Statement [161] (byte*~) print_char_cursor#142 ← (byte*) print_line_cursor#1 [ main::a#1 print_char_cursor#142 main::i#1 print_line_cursor#1 ] ( main:2 [ main::a#1 print_char_cursor#142 main::i#1 print_line_cursor#1 ] ) always clobbers reg byte a -Statement [164] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#55 ] ( main:2::print_ln:36 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:66 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:96 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:126 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:156 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) always clobbers reg byte a +Statement [164] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#1 print_char_cursor#55 ] ( main:2::print_ln:36 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:66 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:96 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:126 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:156 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) always clobbers reg byte a Statement [165] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#55) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#55 ] ( main:2::print_ln:36 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:66 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:96 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:126 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:156 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) always clobbers reg byte a Statement [171] (byte*) print_str::str#1 ← (byte[]) printu::op#20 [ print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] ( main:2::printu:14 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:20 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:27 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:34 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:44 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:50 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:57 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:64 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:74 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:80 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:87 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:94 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:104 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:110 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:117 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:124 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:134 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:140 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:147 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:154 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] ) always clobbers reg byte a Statement [181] *((byte*) print_char_cursor#54) ← (byte) print_char::ch#5 [ print_char_cursor#54 ] ( main:2::printu:14::print_char:168 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:20::print_char:168 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:27::print_char:168 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:34::print_char:168 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:44::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:50::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:57::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:64::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:74::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:80::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:87::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:94::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:104::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:110::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:117::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:124::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:134::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:140::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:147::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:154::print_char:168 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#20 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:14::print_char:176 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:20::print_char:176 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:27::print_char:176 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:34::print_char:176 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:44::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:50::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:57::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:64::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:74::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:80::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:87::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:94::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:104::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:110::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:117::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:124::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:134::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#54 ] main:2::printu:140::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#54 ] main:2::printu:147::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#54 ] main:2::printu:154::print_char:176 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#54 ] main:2::printu:14::print_char:178 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#54 ] main:2::printu:20::print_char:178 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#54 ] main:2::printu:27::print_char:178 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#54 ] main:2::printu:34::print_char:178 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#54 ] main:2::printu:44::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:50::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:57::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:64::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:74::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:80::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:87::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:94::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:104::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:110::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:117::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:124::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#54 ] main:2::printu:134::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#54 ] main:2::printu:140::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#54 ] main:2::printu:147::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#54 ] main:2::printu:154::print_char:178 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#54 ] main:2::printu:14::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:20::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:27::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:34::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:44::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:50::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:57::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:64::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:74::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:80::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:87::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:94::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:104::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:110::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:117::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:124::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:134::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:140::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:147::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:154::print_byte:170::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:14::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:20::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:27::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:34::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:44::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:50::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:57::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:64::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:74::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:80::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:87::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:94::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:104::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:110::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:117::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:124::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:134::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:140::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:147::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:154::print_byte:174::print_char:187 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_byte::b#2 print_char_cursor#54 ] main:2::printu:14::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:20::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:27::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:34::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:44::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:50::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:57::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:64::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:74::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:80::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:87::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:94::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:104::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:110::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:117::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:124::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:134::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:140::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:147::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:154::print_byte:170::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#54 ] main:2::printu:14::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:20::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:27::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:34::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:44::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:50::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:57::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:64::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:74::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:80::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:87::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:94::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:104::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:110::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:117::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:124::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#54 ] main:2::printu:134::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#54 ] main:2::printu:140::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#54 ] main:2::printu:147::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#54 ] main:2::printu:154::print_byte:174::print_char:190 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#54 ] ) always clobbers reg byte y Statement [185] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_char_cursor#94 print_byte::b#2 print_byte::$0 ] ( main:2::printu:14::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:20::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:27::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:34::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:44::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:50::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:57::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:64::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:74::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:80::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:87::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:94::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:104::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:110::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:117::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:124::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:134::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:140::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:147::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:154::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:14::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:20::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:27::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:34::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:44::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:50::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:57::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:64::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:74::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:80::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:87::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:94::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:104::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:110::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:117::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:124::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:134::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:140::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:147::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:154::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] ) always clobbers reg byte a -Statement [188] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#55 print_byte::$2 ] ( main:2::printu:14::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:20::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:27::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:34::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:44::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:50::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:57::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:64::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:74::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:80::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:87::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:94::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:104::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:110::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:117::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:124::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:134::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:140::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:147::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:154::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:14::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:20::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:27::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:34::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:44::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:50::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:57::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:64::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:74::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:80::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:87::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:94::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:104::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:110::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:117::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:124::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:134::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:140::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:147::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:154::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] ) always clobbers reg byte a +Statement [188] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#55 print_byte::$2 ] ( main:2::printu:14::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:20::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:27::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:34::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:44::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:50::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:57::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:64::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:74::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:80::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:87::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:94::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:104::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:110::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:117::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:124::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:134::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:140::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:147::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:154::print_byte:170 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:14::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:20::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:27::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:34::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:44::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:50::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:57::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:64::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:74::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:80::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:87::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:94::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:104::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:110::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:117::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:124::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:134::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:140::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:147::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:154::print_byte:174 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] ) always clobbers reg byte a Statement [194] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2 [ print_char_cursor#2 print_str::str#2 ] ( main:2::printu:14::print_str:172 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:20::print_str:172 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:27::print_str:172 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:34::print_str:172 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:44::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:50::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:57::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:64::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:74::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:80::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:87::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:94::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:104::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:110::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:117::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:124::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:134::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:140::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:147::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:154::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] ) always clobbers reg byte a reg byte y Statement [196] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#2) [ print_char_cursor#2 print_str::str#2 ] ( main:2::printu:14::print_str:172 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:20::print_str:172 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:27::print_str:172 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:34::print_str:172 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:44::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:50::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:57::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:64::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:74::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:80::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:87::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:94::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:104::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:110::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:117::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:124::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:134::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:140::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:147::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] main:2::printu:154::print_str:172 [ main::a#10 main::i#10 print_line_cursor#1 printu::b#20 printu::res#20 print_char_cursor#2 print_str::str#2 ] ) always clobbers reg byte a reg byte y Statement [201] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [203] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [203] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ main::a#10 main::a#1 ] : zp ZP_BYTE:2 , reg byte x , Potential registers zp ZP_BYTE:3 [ main::i#10 main::i#1 ] : zp ZP_BYTE:3 , reg byte x , Potential registers zp ZP_BYTE:4 [ main::r#41 ] : zp ZP_BYTE:4 , reg byte a , reg byte x , reg byte y , @@ -4772,7 +4772,7 @@ main: { jsr print_cls //SEG13 [6] phi from main to main::@1 [phi:main->main::@1] b1_from_main: - //SEG14 [6] phi (byte*) print_line_cursor#27 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + //SEG14 [6] phi (byte*) print_line_cursor#27 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -4780,7 +4780,7 @@ main: { //SEG15 [6] phi (byte) main::i#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#1] -- vbuz1=vbuc1 lda #0 sta i - //SEG16 [6] phi (byte*) print_char_cursor#120 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#2] -- pbuz1=pbuc1 + //SEG16 [6] phi (byte*) print_char_cursor#120 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#2] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -4791,7 +4791,7 @@ main: { jmp b1 //SEG18 main::@1 b1: - //SEG19 [7] (byte) main::b#0 ← (byte/word/signed word/dword/signed dword) 206 - (byte) main::a#10 -- vbuz1=vbuc1_minus_vbuz2 + //SEG19 [7] (byte) main::b#0 ← (byte/word/signed word/dword/signed dword) $ce - (byte) main::a#10 -- vbuz1=vbuc1_minus_vbuz2 lda #$ce sec sbc a @@ -4838,7 +4838,7 @@ main: { jmp b46 //SEG38 main::@46 b46: - //SEG39 [15] if((byte) main::a#10>=(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@3 -- vbuz1_ge_vbuc1_then_la1 + //SEG39 [15] if((byte) main::a#10>=(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@3 -- vbuz1_ge_vbuc1_then_la1 lda a cmp #$37 bcs b3_from_b46 @@ -4865,7 +4865,7 @@ main: { //SEG50 [167] phi from main::@3 to printu [phi:main::@3->printu] printu_from_b3: //SEG51 [167] phi (byte) printu::res#20 = (byte) printu::res#1 [phi:main::@3->printu#0] -- register_copy - //SEG52 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@3->printu#1] -- vbuz1=vbuc1 + //SEG52 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) $37 [phi:main::@3->printu#1] -- vbuz1=vbuc1 lda #$37 sta printu.b //SEG53 [167] phi (byte[]) printu::op#20 = (const string) main::op [phi:main::@3->printu#2] -- pbuz1=pbuc1 @@ -5022,7 +5022,7 @@ main: { jmp b51 //SEG119 main::@51 b51: - //SEG120 [45] if((byte) main::a#10<=(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@7 -- vbuz1_le_vbuc1_then_la1 + //SEG120 [45] if((byte) main::a#10<=(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@7 -- vbuz1_le_vbuc1_then_la1 lda #$37 cmp a bcs b7_from_b51 @@ -5049,7 +5049,7 @@ main: { //SEG131 [167] phi from main::@7 to printu [phi:main::@7->printu] printu_from_b7: //SEG132 [167] phi (byte) printu::res#20 = (byte) printu::res#5 [phi:main::@7->printu#0] -- register_copy - //SEG133 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@7->printu#1] -- vbuz1=vbuc1 + //SEG133 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) $37 [phi:main::@7->printu#1] -- vbuz1=vbuc1 lda #$37 sta printu.b //SEG134 [167] phi (byte[]) printu::op#20 = (const string) main::op4 [phi:main::@7->printu#2] -- pbuz1=pbuc1 @@ -5206,7 +5206,7 @@ main: { jmp b56 //SEG200 main::@56 b56: - //SEG201 [75] if((byte) main::a#10>(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@11 -- vbuz1_gt_vbuc1_then_la1 + //SEG201 [75] if((byte) main::a#10>(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@11 -- vbuz1_gt_vbuc1_then_la1 lda a cmp #$37 beq !+ @@ -5235,7 +5235,7 @@ main: { //SEG212 [167] phi from main::@11 to printu [phi:main::@11->printu] printu_from_b11: //SEG213 [167] phi (byte) printu::res#20 = (byte) printu::res#9 [phi:main::@11->printu#0] -- register_copy - //SEG214 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@11->printu#1] -- vbuz1=vbuc1 + //SEG214 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) $37 [phi:main::@11->printu#1] -- vbuz1=vbuc1 lda #$37 sta printu.b //SEG215 [167] phi (byte[]) printu::op#20 = (const string) main::op8 [phi:main::@11->printu#2] -- pbuz1=pbuc1 @@ -5392,7 +5392,7 @@ main: { jmp b61 //SEG281 main::@61 b61: - //SEG282 [105] if((byte) main::a#10<(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@15 -- vbuz1_lt_vbuc1_then_la1 + //SEG282 [105] if((byte) main::a#10<(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@15 -- vbuz1_lt_vbuc1_then_la1 lda a cmp #$37 bcc b15_from_b61 @@ -5419,7 +5419,7 @@ main: { //SEG293 [167] phi from main::@15 to printu [phi:main::@15->printu] printu_from_b15: //SEG294 [167] phi (byte) printu::res#20 = (byte) printu::res#13 [phi:main::@15->printu#0] -- register_copy - //SEG295 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@15->printu#1] -- vbuz1=vbuc1 + //SEG295 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) $37 [phi:main::@15->printu#1] -- vbuz1=vbuc1 lda #$37 sta printu.b //SEG296 [167] phi (byte[]) printu::op#20 = (const string) main::op12 [phi:main::@15->printu#2] -- pbuz1=pbuc1 @@ -5576,7 +5576,7 @@ main: { jmp b66 //SEG362 main::@66 b66: - //SEG363 [135] if((byte) main::a#10!=(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@19 -- vbuz1_neq_vbuc1_then_la1 + //SEG363 [135] if((byte) main::a#10!=(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@19 -- vbuz1_neq_vbuc1_then_la1 lda a cmp #$37 bne b19_from_b66 @@ -5603,7 +5603,7 @@ main: { //SEG374 [167] phi from main::@19 to printu [phi:main::@19->printu] printu_from_b19: //SEG375 [167] phi (byte) printu::res#20 = (byte) printu::res#17 [phi:main::@19->printu#0] -- register_copy - //SEG376 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@19->printu#1] -- vbuz1=vbuc1 + //SEG376 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) $37 [phi:main::@19->printu#1] -- vbuz1=vbuc1 lda #$37 sta printu.b //SEG377 [167] phi (byte[]) printu::op#20 = (const string) main::op16 [phi:main::@19->printu#2] -- pbuz1=pbuc1 @@ -5713,7 +5713,7 @@ main: { jmp b70 //SEG423 main::@70 b70: - //SEG424 [157] (byte) main::a#1 ← (byte) main::a#10 + (byte/signed byte/word/signed word/dword/signed dword) 48 -- vbuz1=vbuz1_plus_vbuc1 + //SEG424 [157] (byte) main::a#1 ← (byte) main::a#10 + (byte/signed byte/word/signed word/dword/signed dword) $30 -- vbuz1=vbuz1_plus_vbuc1 lda #$30 clc adc a @@ -5762,7 +5762,7 @@ print_ln: { jmp b1 //SEG439 print_ln::@1 b1: - //SEG440 [164] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG440 [164] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -5900,7 +5900,7 @@ print_byte: { jmp b1 //SEG491 print_byte::@1 b1: - //SEG492 [188] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG492 [188] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and b //SEG493 [189] (byte) print_char::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) -- vbuaa=pbuc1_derefidx_vbuaa @@ -5966,7 +5966,7 @@ print_cls: { .label sc = 4 //SEG513 [200] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] b1_from_print_cls: - //SEG514 [200] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG514 [200] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -5987,7 +5987,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG520 [203] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG520 [203] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1_from_b1 @@ -6358,7 +6358,7 @@ FINAL SYMBOL TABLE (byte) main::b (byte) main::b#0 b zp ZP_BYTE:12 0.9758064516129035 (byte[5]) main::cs -(const byte[5]) main::cs#0 cs = { (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 199, (byte/signed byte/word/signed word/dword/signed dword) 55, (byte/word/signed word/dword/signed dword) 151, (byte/signed byte/word/signed word/dword/signed dword) 103 } +(const byte[5]) main::cs#0 cs = { (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) $c7, (byte/signed byte/word/signed word/dword/signed dword) $37, (byte/word/signed word/dword/signed dword) $97, (byte/signed byte/word/signed word/dword/signed dword) $67 } (byte) main::i (byte) main::i#1 i zp ZP_BYTE:3 11.0 (byte) main::i#10 i zp ZP_BYTE:3 0.8684210526315792 @@ -6574,7 +6574,7 @@ main: { //SEG12 [199] phi from main to print_cls [phi:main->print_cls] jsr print_cls //SEG13 [6] phi from main to main::@1 [phi:main->main::@1] - //SEG14 [6] phi (byte*) print_line_cursor#27 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + //SEG14 [6] phi (byte*) print_line_cursor#27 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -6582,7 +6582,7 @@ main: { //SEG15 [6] phi (byte) main::i#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#1] -- vbuz1=vbuc1 lda #0 sta i - //SEG16 [6] phi (byte*) print_char_cursor#120 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#2] -- pbuz1=pbuc1 + //SEG16 [6] phi (byte*) print_char_cursor#120 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#2] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -6592,7 +6592,7 @@ main: { sta a //SEG18 main::@1 b1: - //SEG19 [7] (byte) main::b#0 ← (byte/word/signed word/dword/signed dword) 206 - (byte) main::a#10 -- vbuz1=vbuc1_minus_vbuz2 + //SEG19 [7] (byte) main::b#0 ← (byte/word/signed word/dword/signed dword) $ce - (byte) main::a#10 -- vbuz1=vbuc1_minus_vbuz2 lda #$ce sec sbc a @@ -6631,7 +6631,7 @@ main: { //SEG37 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#120 [phi:main::@2->printu#4] -- register_copy jsr printu //SEG38 main::@46 - //SEG39 [15] if((byte) main::a#10>=(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@3 -- vbuz1_ge_vbuc1_then_la1 + //SEG39 [15] if((byte) main::a#10>=(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@3 -- vbuz1_ge_vbuc1_then_la1 lda a cmp #$37 bcs b24 @@ -6652,7 +6652,7 @@ main: { //SEG49 [20] call printu //SEG50 [167] phi from main::@3 to printu [phi:main::@3->printu] //SEG51 [167] phi (byte) printu::res#20 = (byte) printu::res#1 [phi:main::@3->printu#0] -- register_copy - //SEG52 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@3->printu#1] -- vbuz1=vbuc1 + //SEG52 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) $37 [phi:main::@3->printu#1] -- vbuz1=vbuc1 lda #$37 sta printu.b //SEG53 [167] phi (byte[]) printu::op#20 = (const string) main::op [phi:main::@3->printu#2] -- pbuz1=pbuc1 @@ -6779,7 +6779,7 @@ main: { //SEG118 [167] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#159 [phi:main::@6->printu#4] -- register_copy jsr printu //SEG119 main::@51 - //SEG120 [45] if((byte) main::a#10<=(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@7 -- vbuz1_le_vbuc1_then_la1 + //SEG120 [45] if((byte) main::a#10<=(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@7 -- vbuz1_le_vbuc1_then_la1 lda #$37 cmp a bcs b28 @@ -6800,7 +6800,7 @@ main: { //SEG130 [50] call printu //SEG131 [167] phi from main::@7 to printu [phi:main::@7->printu] //SEG132 [167] phi (byte) printu::res#20 = (byte) printu::res#5 [phi:main::@7->printu#0] -- register_copy - //SEG133 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@7->printu#1] -- vbuz1=vbuc1 + //SEG133 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) $37 [phi:main::@7->printu#1] -- vbuz1=vbuc1 lda #$37 sta printu.b //SEG134 [167] phi (byte[]) printu::op#20 = (const string) main::op4 [phi:main::@7->printu#2] -- pbuz1=pbuc1 @@ -6927,7 +6927,7 @@ main: { //SEG199 [167] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#143 [phi:main::@10->printu#4] -- register_copy jsr printu //SEG200 main::@56 - //SEG201 [75] if((byte) main::a#10>(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@11 -- vbuz1_gt_vbuc1_then_la1 + //SEG201 [75] if((byte) main::a#10>(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@11 -- vbuz1_gt_vbuc1_then_la1 lda a cmp #$37 beq !+ @@ -6950,7 +6950,7 @@ main: { //SEG211 [80] call printu //SEG212 [167] phi from main::@11 to printu [phi:main::@11->printu] //SEG213 [167] phi (byte) printu::res#20 = (byte) printu::res#9 [phi:main::@11->printu#0] -- register_copy - //SEG214 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@11->printu#1] -- vbuz1=vbuc1 + //SEG214 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) $37 [phi:main::@11->printu#1] -- vbuz1=vbuc1 lda #$37 sta printu.b //SEG215 [167] phi (byte[]) printu::op#20 = (const string) main::op8 [phi:main::@11->printu#2] -- pbuz1=pbuc1 @@ -7077,7 +7077,7 @@ main: { //SEG280 [167] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#147 [phi:main::@14->printu#4] -- register_copy jsr printu //SEG281 main::@61 - //SEG282 [105] if((byte) main::a#10<(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@15 -- vbuz1_lt_vbuc1_then_la1 + //SEG282 [105] if((byte) main::a#10<(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@15 -- vbuz1_lt_vbuc1_then_la1 lda a cmp #$37 bcc b36 @@ -7098,7 +7098,7 @@ main: { //SEG292 [110] call printu //SEG293 [167] phi from main::@15 to printu [phi:main::@15->printu] //SEG294 [167] phi (byte) printu::res#20 = (byte) printu::res#13 [phi:main::@15->printu#0] -- register_copy - //SEG295 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@15->printu#1] -- vbuz1=vbuc1 + //SEG295 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) $37 [phi:main::@15->printu#1] -- vbuz1=vbuc1 lda #$37 sta printu.b //SEG296 [167] phi (byte[]) printu::op#20 = (const string) main::op12 [phi:main::@15->printu#2] -- pbuz1=pbuc1 @@ -7225,7 +7225,7 @@ main: { //SEG361 [167] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#151 [phi:main::@18->printu#4] -- register_copy jsr printu //SEG362 main::@66 - //SEG363 [135] if((byte) main::a#10!=(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@19 -- vbuz1_neq_vbuc1_then_la1 + //SEG363 [135] if((byte) main::a#10!=(byte/signed byte/word/signed word/dword/signed dword) $37) goto main::@19 -- vbuz1_neq_vbuc1_then_la1 lda a cmp #$37 bne b40 @@ -7246,7 +7246,7 @@ main: { //SEG373 [140] call printu //SEG374 [167] phi from main::@19 to printu [phi:main::@19->printu] //SEG375 [167] phi (byte) printu::res#20 = (byte) printu::res#17 [phi:main::@19->printu#0] -- register_copy - //SEG376 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@19->printu#1] -- vbuz1=vbuc1 + //SEG376 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) $37 [phi:main::@19->printu#1] -- vbuz1=vbuc1 lda #$37 sta printu.b //SEG377 [167] phi (byte[]) printu::op#20 = (const string) main::op16 [phi:main::@19->printu#2] -- pbuz1=pbuc1 @@ -7334,7 +7334,7 @@ main: { //SEG422 [162] phi (byte*) print_line_cursor#25 = (byte*) print_line_cursor#1 [phi:main::@69->print_ln#0] -- register_copy jsr print_ln //SEG423 main::@70 - //SEG424 [157] (byte) main::a#1 ← (byte) main::a#10 + (byte/signed byte/word/signed word/dword/signed dword) 48 -- vbuz1=vbuz1_plus_vbuc1 + //SEG424 [157] (byte) main::a#1 ← (byte) main::a#10 + (byte/signed byte/word/signed word/dword/signed dword) $30 -- vbuz1=vbuz1_plus_vbuc1 lda #$30 clc adc a @@ -7376,7 +7376,7 @@ print_ln: { //SEG438 [163] phi (byte*) print_line_cursor#13 = (byte*) print_line_cursor#25 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy //SEG439 print_ln::@1 b1: - //SEG440 [164] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG440 [164] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -7488,7 +7488,7 @@ print_byte: { //SEG490 [180] phi (byte) print_char::ch#5 = (byte) print_char::ch#0 [phi:print_byte->print_char#1] -- register_copy jsr print_char //SEG491 print_byte::@1 - //SEG492 [188] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG492 [188] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and b //SEG493 [189] (byte) print_char::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) -- vbuaa=pbuc1_derefidx_vbuaa @@ -7544,7 +7544,7 @@ print_str: { print_cls: { .label sc = 4 //SEG513 [200] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] - //SEG514 [200] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG514 [200] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -7562,7 +7562,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG520 [203] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG520 [203] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1 diff --git a/src/test/ref/test-comparisons.sym b/src/test/ref/test-comparisons.sym index d00d61444..356db65bc 100644 --- a/src/test/ref/test-comparisons.sym +++ b/src/test/ref/test-comparisons.sym @@ -76,7 +76,7 @@ (byte) main::b (byte) main::b#0 b zp ZP_BYTE:12 0.9758064516129035 (byte[5]) main::cs -(const byte[5]) main::cs#0 cs = { (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 199, (byte/signed byte/word/signed word/dword/signed dword) 55, (byte/word/signed word/dword/signed dword) 151, (byte/signed byte/word/signed word/dword/signed dword) 103 } +(const byte[5]) main::cs#0 cs = { (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) $c7, (byte/signed byte/word/signed word/dword/signed dword) $37, (byte/word/signed word/dword/signed dword) $97, (byte/signed byte/word/signed word/dword/signed dword) $67 } (byte) main::i (byte) main::i#1 i zp ZP_BYTE:3 11.0 (byte) main::i#10 i zp ZP_BYTE:3 0.8684210526315792 diff --git a/src/test/ref/test-division.cfg b/src/test/ref/test-division.cfg index f56cb6daa..4d526c286 100644 --- a/src/test/ref/test-division.cfg +++ b/src/test/ref/test-division.cfg @@ -78,7 +78,7 @@ test_16s::@10: scope:[test_16s] from test_16s::@9 to:test_16s::@11 test_16s::@11: scope:[test_16s] from test_16s::@10 [41] (byte) test_16s::i#1 ← (byte) test_16s::i#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [42] if((byte) test_16s::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 12) goto test_16s::@1 + [42] if((byte) test_16s::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $c) goto test_16s::@1 to:test_16s::@return test_16s::@return: scope:[test_16s] from test_16s::@11 [43] return @@ -88,7 +88,7 @@ print_ln: scope:[print_ln] from test_16s::@10 test_16u::@10 test_8s::@10 test_8 to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [45] (byte*) print_line_cursor#20 ← phi( print_ln/(byte*) print_line_cursor#39 print_ln::@1/(byte*) print_line_cursor#1 ) - [46] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#20 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [46] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#20 + (byte/signed byte/word/signed word/dword/signed dword) $28 [47] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#18) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 @@ -136,7 +136,7 @@ print_byte: scope:[print_byte] from print_sbyte::@2 print_word print_word::@1 t [67] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [68] (byte~) print_byte::$2 ← (byte) print_byte::b#7 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [68] (byte~) print_byte::$2 ← (byte) print_byte::b#7 & (byte/signed byte/word/signed word/dword/signed dword) $f [69] (byte) print_char::ch#4 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [70] call print_char to:print_byte::@return @@ -242,7 +242,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 [114] (word) divr16u::rem#5 ← phi( divr16u/(word) divr16u::rem#10 divr16u::@3/(word) divr16u::rem#11 ) [115] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [116] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 - [117] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + [117] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [118] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 to:divr16u::@4 divr16u::@4: scope:[divr16u] from divr16u::@1 @@ -262,7 +262,7 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 [126] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [126] (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) [127] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 - [128] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 + [128] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 to:divr16u::@6 divr16u::@6: scope:[divr16u] from divr16u::@3 [129] (word) rem16u#1 ← (word) divr16u::rem#11 @@ -418,7 +418,7 @@ divr8u::@1: scope:[divr8u] from divr8u divr8u::@3 [202] (byte) divr8u::dividend#2 ← phi( divr8u/(byte) divr8u::dividend#0 divr8u::@3/(byte) divr8u::dividend#1 ) [202] (byte) divr8u::rem#4 ← phi( divr8u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr8u::@3/(byte) divr8u::rem#10 ) [203] (byte) divr8u::rem#1 ← (byte) divr8u::rem#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [204] (byte~) divr8u::$1 ← (byte) divr8u::dividend#2 & (byte/word/signed word/dword/signed dword) 128 + [204] (byte~) divr8u::$1 ← (byte) divr8u::dividend#2 & (byte/word/signed word/dword/signed dword) $80 [205] if((byte~) divr8u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr8u::@2 to:divr8u::@4 divr8u::@4: scope:[divr8u] from divr8u::@1 @@ -494,7 +494,7 @@ test_16u::@10: scope:[test_16u] from test_16u::@9 to:test_16u::@11 test_16u::@11: scope:[test_16u] from test_16u::@10 [244] (byte) test_16u::i#1 ← (byte) test_16u::i#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [245] if((byte) test_16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 12) goto test_16u::@1 + [245] if((byte) test_16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $c) goto test_16u::@1 to:test_16u::@return test_16u::@return: scope:[test_16u] from test_16u::@11 [246] return @@ -515,8 +515,8 @@ test_8u: scope:[test_8u] from main::@1 [253] phi() to:test_8u::@1 test_8u::@1: scope:[test_8u] from test_8u test_8u::@12 - [254] (byte*) print_line_cursor#41 ← phi( test_8u/((byte*))(word/signed word/dword/signed dword) 1024 test_8u::@12/(byte*) print_line_cursor#1 ) - [254] (byte*) print_char_cursor#138 ← phi( test_8u/((byte*))(word/signed word/dword/signed dword) 1024 test_8u::@12/(byte*~) print_char_cursor#188 ) + [254] (byte*) print_line_cursor#41 ← phi( test_8u/((byte*))(word/signed word/dword/signed dword) $400 test_8u::@12/(byte*) print_line_cursor#1 ) + [254] (byte*) print_char_cursor#138 ← phi( test_8u/((byte*))(word/signed word/dword/signed dword) $400 test_8u::@12/(byte*~) print_char_cursor#188 ) [254] (byte) test_8u::i#10 ← phi( test_8u/(byte/signed byte/word/signed word/dword/signed dword) 0 test_8u::@12/(byte) test_8u::i#1 ) [255] (byte) test_8u::dividend#0 ← *((const byte[]) test_8u::dividends#0 + (byte) test_8u::i#10) [256] (byte) test_8u::divisor#0 ← *((const byte[]) test_8u::divisors#0 + (byte) test_8u::i#10) @@ -572,10 +572,10 @@ print_cls: scope:[print_cls] from main [282] phi() to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 - [283] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) 1024 print_cls::@1/(byte*) print_cls::sc#1 ) + [283] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) $400 print_cls::@1/(byte*) print_cls::sc#1 ) [284] *((byte*) print_cls::sc#2) ← (byte) ' ' [285] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [286] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [286] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [287] return diff --git a/src/test/ref/test-division.log b/src/test/ref/test-division.log index 41116bb61..647775730 100644 --- a/src/test/ref/test-division.log +++ b/src/test/ref/test-division.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 to:@12 @@ -34,7 +34,7 @@ print_ln: scope:[print_ln] from test_16s::@10 test_16u::@10 test_8s::@10 test_8 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 (byte*) print_char_cursor#67 ← phi( print_ln/(byte*) print_char_cursor#129 print_ln::@1/(byte*) print_char_cursor#67 ) (byte*) print_line_cursor#20 ← phi( print_ln/(byte*) print_line_cursor#39 print_ln::@1/(byte*) print_line_cursor#1 ) - (byte*~) print_ln::$0 ← (byte*) print_line_cursor#20 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) print_ln::$0 ← (byte*) print_line_cursor#20 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) print_line_cursor#1 ← (byte*~) print_ln::$0 (bool~) print_ln::$1 ← (byte*) print_line_cursor#1 < (byte*) print_char_cursor#67 if((bool~) print_ln::$1) goto print_ln::@1 @@ -173,7 +173,7 @@ print_byte::@1: scope:[print_byte] from print_byte (byte) print_byte::b#8 ← phi( print_byte/(byte) print_byte::b#7 ) (byte*) print_char_cursor#79 ← phi( print_byte/(byte*) print_char_cursor#19 ) (byte*) print_char_cursor#15 ← (byte*) print_char_cursor#79 - (byte~) print_byte::$2 ← (byte) print_byte::b#8 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) print_byte::$2 ← (byte) print_byte::b#8 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte) print_char::ch#4 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$2) call print_char to:print_byte::@2 @@ -206,7 +206,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 (byte*) print_cls::sc#2 ← phi( print_cls/(byte*) print_cls::sc#0 print_cls::@1/(byte*) print_cls::sc#1 ) *((byte*) print_cls::sc#2) ← (byte) ' ' (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) 1000 + (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) $3e8 (bool~) print_cls::$1 ← (byte*) print_cls::sc#1 != (byte*~) print_cls::$0 if((bool~) print_cls::$1) goto print_cls::@1 to:print_cls::@2 @@ -267,7 +267,7 @@ divr8u::@1: scope:[divr8u] from divr8u divr8u::@3 (byte) divr8u::rem#4 ← phi( divr8u/(byte) divr8u::rem#9 divr8u::@3/(byte) divr8u::rem#10 ) (byte~) divr8u::$0 ← (byte) divr8u::rem#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) divr8u::rem#1 ← (byte~) divr8u::$0 - (byte~) divr8u::$1 ← (byte) divr8u::dividend#2 & (byte/word/signed word/dword/signed dword) 128 + (byte~) divr8u::$1 ← (byte) divr8u::dividend#2 & (byte/word/signed word/dword/signed dword) $80 (bool~) divr8u::$2 ← (byte~) divr8u::$1 != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) divr8u::$3 ← ! (bool~) divr8u::$2 if((bool~) divr8u::$3) goto divr8u::@2 @@ -351,7 +351,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 (word~) divr16u::$0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 (word) divr16u::rem#0 ← (word~) divr16u::$0 (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 - (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 (bool~) divr16u::$3 ← (byte~) divr16u::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) divr16u::$4 ← ! (bool~) divr16u::$3 if((bool~) divr16u::$4) goto divr16u::@2 @@ -385,8 +385,8 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 (word) divr16u::dividend#6 ← phi( divr16u::@2/(word) divr16u::dividend#0 divr16u::@5/(word) divr16u::dividend#8 ) (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) (byte) divr16u::i#2 ← phi( divr16u::@2/(byte) divr16u::i#3 divr16u::@5/(byte) divr16u::i#4 ) - (byte) divr16u::i#1 ← (byte) divr16u::i#2 + rangenext(0,15) - (bool~) divr16u::$11 ← (byte) divr16u::i#1 != rangelast(0,15) + (byte) divr16u::i#1 ← (byte) divr16u::i#2 + rangenext(0,$f) + (bool~) divr16u::$11 ← (byte) divr16u::i#1 != rangelast(0,$f) if((bool~) divr16u::$11) goto divr16u::@1 to:divr16u::@6 divr16u::@5: scope:[divr16u] from divr16u::@2 @@ -789,8 +789,8 @@ test_8u: scope:[test_8u] from main::@1 (byte*) print_line_cursor#83 ← phi( main::@1/(byte*) print_line_cursor#5 ) (byte*) print_char_cursor#152 ← phi( main::@1/(byte*) print_char_cursor#22 ) (byte) rem8u#45 ← phi( main::@1/(byte) rem8u#33 ) - (byte[]) test_8u::dividends#0 ← { (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255 } - (byte[]) test_8u::divisors#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 19 } + (byte[]) test_8u::dividends#0 ← { (byte/word/signed word/dword/signed dword) $ff, (byte/word/signed word/dword/signed dword) $ff, (byte/word/signed word/dword/signed dword) $ff, (byte/word/signed word/dword/signed dword) $ff, (byte/word/signed word/dword/signed dword) $ff, (byte/word/signed word/dword/signed dword) $ff } + (byte[]) test_8u::divisors#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $11, (byte/signed byte/word/signed word/dword/signed dword) $13 } (byte) test_8u::rem#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) test_8u::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:test_8u::@1 @@ -912,8 +912,8 @@ test_16u: scope:[test_16u] from main::@2 (byte*) print_line_cursor#84 ← phi( main::@2/(byte*) print_line_cursor#6 ) (byte*) print_char_cursor#153 ← phi( main::@2/(byte*) print_char_cursor#23 ) (word) rem16u#49 ← phi( main::@2/(word) rem16u#38 ) - (word[]) test_16u::dividends#0 ← { (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535 } - (word[]) test_16u::divisors#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 19 } + (word[]) test_16u::dividends#0 ← { (word/dword/signed dword) $ffff, (word/dword/signed dword) $ffff, (word/dword/signed dword) $ffff, (word/dword/signed dword) $ffff, (word/dword/signed dword) $ffff, (word/dword/signed dword) $ffff } + (word[]) test_16u::divisors#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $11, (byte/signed byte/word/signed word/dword/signed dword) $13 } (byte) test_16u::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:test_16u::@1 test_16u::@1: scope:[test_16u] from test_16u test_16u::@11 @@ -1019,7 +1019,7 @@ test_16u::@11: scope:[test_16u] from test_16u::@10 (byte*) print_char_cursor#44 ← (byte*) print_char_cursor#107 (byte/signed word/word/dword/signed dword~) test_16u::$9 ← (byte) test_16u::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) test_16u::i#1 ← (byte/signed word/word/dword/signed dword~) test_16u::$9 - (bool~) test_16u::$10 ← (byte) test_16u::i#1 != (byte/signed byte/word/signed word/dword/signed dword) 12 + (bool~) test_16u::$10 ← (byte) test_16u::i#1 != (byte/signed byte/word/signed word/dword/signed dword) $c if((bool~) test_16u::$10) goto test_16u::@1 to:test_16u::@return test_16u::@return: scope:[test_16u] from test_16u::@11 @@ -1036,12 +1036,12 @@ test_8s: scope:[test_8s] from main::@3 (byte*) print_char_cursor#154 ← phi( main::@3/(byte*) print_char_cursor#24 ) (signed byte) rem8s#23 ← phi( main::@3/(signed byte) rem8s#16 ) (byte) rem8u#48 ← phi( main::@3/(byte) rem8u#34 ) - (signed byte/signed word/signed dword~) test_8s::$0 ← - (byte/signed byte/word/signed word/dword/signed dword) 127 - (signed byte/signed word/signed dword~) test_8s::$1 ← - (byte/signed byte/word/signed word/dword/signed dword) 127 - (signed byte[]) test_8s::dividends#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 127, (signed byte/signed word/signed dword~) test_8s::$0, (signed byte/signed word/signed dword~) test_8s::$1, (byte/signed byte/word/signed word/dword/signed dword) 127, (byte/signed byte/word/signed word/dword/signed dword) 127, (byte/signed byte/word/signed word/dword/signed dword) 127 } - (signed byte/signed word/signed dword~) test_8s::$2 ← - (byte/signed byte/word/signed word/dword/signed dword) 11 - (signed byte/signed word/signed dword~) test_8s::$3 ← - (byte/signed byte/word/signed word/dword/signed dword) 13 - (signed byte[]) test_8s::divisors#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (signed byte/signed word/signed dword~) test_8s::$2, (signed byte/signed word/signed dword~) test_8s::$3, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 19 } + (signed byte/signed word/signed dword~) test_8s::$0 ← - (byte/signed byte/word/signed word/dword/signed dword) $7f + (signed byte/signed word/signed dword~) test_8s::$1 ← - (byte/signed byte/word/signed word/dword/signed dword) $7f + (signed byte[]) test_8s::dividends#0 ← { (byte/signed byte/word/signed word/dword/signed dword) $7f, (signed byte/signed word/signed dword~) test_8s::$0, (signed byte/signed word/signed dword~) test_8s::$1, (byte/signed byte/word/signed word/dword/signed dword) $7f, (byte/signed byte/word/signed word/dword/signed dword) $7f, (byte/signed byte/word/signed word/dword/signed dword) $7f } + (signed byte/signed word/signed dword~) test_8s::$2 ← - (byte/signed byte/word/signed word/dword/signed dword) $b + (signed byte/signed word/signed dword~) test_8s::$3 ← - (byte/signed byte/word/signed word/dword/signed dword) $d + (signed byte[]) test_8s::divisors#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (signed byte/signed word/signed dword~) test_8s::$2, (signed byte/signed word/signed dword~) test_8s::$3, (byte/signed byte/word/signed word/dword/signed dword) $11, (byte/signed byte/word/signed word/dword/signed dword) $13 } (byte) test_8s::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:test_8s::@1 test_8s::@1: scope:[test_8s] from test_8s test_8s::@11 @@ -1176,14 +1176,14 @@ test_16s: scope:[test_16s] from main::@4 (byte*) print_char_cursor#155 ← phi( main::@4/(byte*) print_char_cursor#25 ) (signed word) rem16s#27 ← phi( main::@4/(signed word) rem16s#21 ) (word) rem16u#52 ← phi( main::@4/(word) rem16u#39 ) - (signed word/signed dword~) test_16s::$0 ← - (word/signed word/dword/signed dword) 32767 - (signed word/signed dword~) test_16s::$1 ← - (word/signed word/dword/signed dword) 32767 - (signed word/signed dword~) test_16s::$2 ← - (word/signed word/dword/signed dword) 32767 - (signed word[]) test_16s::dividends#0 ← { (word/signed word/dword/signed dword) 32767, (word/signed word/dword/signed dword) 32767, (signed word/signed dword~) test_16s::$0, (signed word/signed dword~) test_16s::$1, (word/signed word/dword/signed dword) 32767, (signed word/signed dword~) test_16s::$2 } + (signed word/signed dword~) test_16s::$0 ← - (word/signed word/dword/signed dword) $7fff + (signed word/signed dword~) test_16s::$1 ← - (word/signed word/dword/signed dword) $7fff + (signed word/signed dword~) test_16s::$2 ← - (word/signed word/dword/signed dword) $7fff + (signed word[]) test_16s::dividends#0 ← { (word/signed word/dword/signed dword) $7fff, (word/signed word/dword/signed dword) $7fff, (signed word/signed dword~) test_16s::$0, (signed word/signed dword~) test_16s::$1, (word/signed word/dword/signed dword) $7fff, (signed word/signed dword~) test_16s::$2 } (signed byte/signed word/signed dword~) test_16s::$3 ← - (byte/signed byte/word/signed word/dword/signed dword) 7 - (signed byte/signed word/signed dword~) test_16s::$4 ← - (byte/signed byte/word/signed word/dword/signed dword) 13 - (signed byte/signed word/signed dword~) test_16s::$5 ← - (byte/signed byte/word/signed word/dword/signed dword) 17 - (signed word[]) test_16s::divisors#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 5, (signed byte/signed word/signed dword~) test_16s::$3, (byte/signed byte/word/signed word/dword/signed dword) 11, (signed byte/signed word/signed dword~) test_16s::$4, (signed byte/signed word/signed dword~) test_16s::$5, (byte/signed byte/word/signed word/dword/signed dword) 19 } + (signed byte/signed word/signed dword~) test_16s::$4 ← - (byte/signed byte/word/signed word/dword/signed dword) $d + (signed byte/signed word/signed dword~) test_16s::$5 ← - (byte/signed byte/word/signed word/dword/signed dword) $11 + (signed word[]) test_16s::divisors#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 5, (signed byte/signed word/signed dword~) test_16s::$3, (byte/signed byte/word/signed word/dword/signed dword) $b, (signed byte/signed word/signed dword~) test_16s::$4, (signed byte/signed word/signed dword~) test_16s::$5, (byte/signed byte/word/signed word/dword/signed dword) $13 } (byte) test_16s::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:test_16s::@1 test_16s::@1: scope:[test_16s] from test_16s test_16s::@11 @@ -1300,7 +1300,7 @@ test_16s::@11: scope:[test_16s] from test_16s::@10 (byte*) print_char_cursor#62 ← (byte*) print_char_cursor#125 (byte/signed word/word/dword/signed dword~) test_16s::$15 ← (byte) test_16s::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) test_16s::i#1 ← (byte/signed word/word/dword/signed dword~) test_16s::$15 - (bool~) test_16s::$16 ← (byte) test_16s::i#1 != (byte/signed byte/word/signed word/dword/signed dword) 12 + (bool~) test_16s::$16 ← (byte) test_16s::i#1 != (byte/signed byte/word/signed word/dword/signed dword) $c if((bool~) test_16s::$16) goto test_16s::@1 to:test_16s::@return test_16s::@return: scope:[test_16s] from test_16s::@11 @@ -2923,20 +2923,20 @@ Simple Condition (bool~) divr8u::$8 [154] if((byte) divr8u::rem#5<(byte) divr8u: Simple Condition (bool~) divr8u::$10 [161] if((byte) divr8u::i#1!=rangelast(0,7)) goto divr8u::@1 Simple Condition (bool~) divr16u::$4 [185] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 Simple Condition (bool~) divr16u::$9 [193] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 -Simple Condition (bool~) divr16u::$11 [200] if((byte) divr16u::i#1!=rangelast(0,15)) goto divr16u::@1 +Simple Condition (bool~) divr16u::$11 [200] if((byte) divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1 Simple Condition (bool~) div8s::$0 [232] if((signed byte) div8s::dividend#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto div8s::@1 Simple Condition (bool~) div8s::$4 [244] if((signed byte) div8s::divisor#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto div8s::@3 Simple Condition (bool~) div8s::$10 [264] if((byte) div8s::neg#4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto div8s::@5 Simple Condition (bool~) divr16s::$9 [308] if((signed word) divr16s::divisor#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16s::@3 Simple Condition (bool~) divr16s::$15 [329] if((byte) divr16s::neg#4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16s::@5 Simple Condition (bool~) test_8u::$9 [448] if((byte) test_8u::i#1!=rangelast(0,5)) goto test_8u::@1 -Simple Condition (bool~) test_16u::$10 [504] if((byte) test_16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 12) goto test_16u::@1 +Simple Condition (bool~) test_16u::$10 [504] if((byte) test_16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $c) goto test_16u::@1 Simple Condition (bool~) test_8s::$13 [564] if((byte) test_8s::i#1!=rangelast(0,5)) goto test_8s::@1 -Simple Condition (bool~) test_16s::$16 [628] if((byte) test_16s::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 12) goto test_16s::@1 +Simple Condition (bool~) test_16s::$16 [628] if((byte) test_16s::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $c) goto test_16s::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Rewriting || if()-condition to two if()s [290] (bool~) divr16s::$2 ← (bool~) divr16s::$0 || (bool~) divr16s::$1 Successful SSA optimization Pass2ConditionalAndOrRewriting -Constant (const byte*) print_line_cursor#0 = ((byte*))1024 +Constant (const byte*) print_line_cursor#0 = ((byte*))$400 Constant (const byte) print_char::ch#0 = '-' Constant (const byte) print_char::ch#1 = '-' Constant (const byte) print_char::ch#2 = ' ' @@ -2961,47 +2961,47 @@ Constant (const word) divr16s::remu#0 = 0 Constant (const byte) divr16s::neg#1 = 1 Constant (const word) divr16s::divisoru#0 = 0 Constant (const signed word) divr16s::rem#0 = 0 -Constant (const byte[]) test_8u::dividends#0 = { 255, 255, 255, 255, 255, 255 } -Constant (const byte[]) test_8u::divisors#0 = { 5, 7, 11, 13, 17, 19 } +Constant (const byte[]) test_8u::dividends#0 = { $ff, $ff, $ff, $ff, $ff, $ff } +Constant (const byte[]) test_8u::divisors#0 = { 5, 7, $b, $d, $11, $13 } Constant (const byte) test_8u::rem#0 = 0 Constant (const byte) test_8u::i#0 = 0 Constant (const byte*) print_str::str#1 = test_8u::str Constant (const byte*) print_str::str#2 = test_8u::str1 Constant (const byte*) print_str::str#3 = test_8u::str2 -Constant (const word[]) test_16u::dividends#0 = { 65535, 65535, 65535, 65535, 65535, 65535 } -Constant (const word[]) test_16u::divisors#0 = { 5, 7, 11, 13, 17, 19 } +Constant (const word[]) test_16u::dividends#0 = { $ffff, $ffff, $ffff, $ffff, $ffff, $ffff } +Constant (const word[]) test_16u::divisors#0 = { 5, 7, $b, $d, $11, $13 } Constant (const byte) test_16u::i#0 = 0 Constant (const byte*) print_str::str#4 = test_16u::str Constant (const byte*) print_str::str#5 = test_16u::str1 Constant (const byte*) print_str::str#6 = test_16u::str2 -Constant (const signed byte/signed word/signed dword) test_8s::$0 = -127 -Constant (const signed byte/signed word/signed dword) test_8s::$1 = -127 -Constant (const signed byte/signed word/signed dword) test_8s::$2 = -11 -Constant (const signed byte/signed word/signed dword) test_8s::$3 = -13 +Constant (const signed byte/signed word/signed dword) test_8s::$0 = -$7f +Constant (const signed byte/signed word/signed dword) test_8s::$1 = -$7f +Constant (const signed byte/signed word/signed dword) test_8s::$2 = -$b +Constant (const signed byte/signed word/signed dword) test_8s::$3 = -$d Constant (const byte) test_8s::i#0 = 0 Constant (const byte*) print_str::str#7 = test_8s::str Constant (const byte*) print_str::str#8 = test_8s::str1 Constant (const byte*) print_str::str#9 = test_8s::str2 -Constant (const signed word/signed dword) test_16s::$0 = -32767 -Constant (const signed word/signed dword) test_16s::$1 = -32767 -Constant (const signed word/signed dword) test_16s::$2 = -32767 +Constant (const signed word/signed dword) test_16s::$0 = -$7fff +Constant (const signed word/signed dword) test_16s::$1 = -$7fff +Constant (const signed word/signed dword) test_16s::$2 = -$7fff Constant (const signed byte/signed word/signed dword) test_16s::$3 = -7 -Constant (const signed byte/signed word/signed dword) test_16s::$4 = -13 -Constant (const signed byte/signed word/signed dword) test_16s::$5 = -17 +Constant (const signed byte/signed word/signed dword) test_16s::$4 = -$d +Constant (const signed byte/signed word/signed dword) test_16s::$5 = -$11 Constant (const byte) test_16s::i#0 = 0 Constant (const byte*) print_str::str#10 = test_16s::str Constant (const byte*) print_str::str#11 = test_16s::str1 Constant (const byte*) print_str::str#12 = test_16s::str2 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) print_cls::sc#0 = print_line_cursor#0 -Constant (const byte*) print_cls::$0 = print_line_cursor#0+1000 +Constant (const byte*) print_cls::$0 = print_line_cursor#0+$3e8 Constant (const bool) divr16s::$1 = divr16s::rem#0<0 Constant (const signed word) divr16s::$7 = -divr16s::rem#0 Constant (const word) divr16s::remu#2 = ((word))divr16s::rem#0 -Constant (const signed byte[]) test_8s::dividends#0 = { 127, test_8s::$0, test_8s::$1, 127, 127, 127 } -Constant (const signed byte[]) test_8s::divisors#0 = { 5, 7, test_8s::$2, test_8s::$3, 17, 19 } -Constant (const signed word[]) test_16s::dividends#0 = { 32767, 32767, test_16s::$0, test_16s::$1, 32767, test_16s::$2 } -Constant (const signed word[]) test_16s::divisors#0 = { 5, test_16s::$3, 11, test_16s::$4, test_16s::$5, 19 } +Constant (const signed byte[]) test_8s::dividends#0 = { $7f, test_8s::$0, test_8s::$1, $7f, $7f, $7f } +Constant (const signed byte[]) test_8s::divisors#0 = { 5, 7, test_8s::$2, test_8s::$3, $11, $13 } +Constant (const signed word[]) test_16s::dividends#0 = { $7fff, $7fff, test_16s::$0, test_16s::$1, $7fff, test_16s::$2 } +Constant (const signed word[]) test_16s::divisors#0 = { 5, test_16s::$3, $b, test_16s::$4, test_16s::$5, $13 } Successful SSA optimization Pass2ConstantIdentification Constant (const word) divr16s::remu#1 = ((word))divr16s::$7 Successful SSA optimization Pass2ConstantIdentification @@ -3033,7 +3033,7 @@ Successful SSA optimization Pass2NopCastElimination Resolved ranged next value divr8u::i#1 ← ++ divr8u::i#2 to ++ Resolved ranged comparison value if(divr8u::i#1!=rangelast(0,7)) goto divr8u::@1 to (byte/signed byte/word/signed word/dword/signed dword) 8 Resolved ranged next value divr16u::i#1 ← ++ divr16u::i#2 to ++ -Resolved ranged comparison value if(divr16u::i#1!=rangelast(0,15)) goto divr16u::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value test_8u::i#1 ← ++ test_8u::i#10 to ++ Resolved ranged comparison value if(test_8u::i#1!=rangelast(0,5)) goto test_8u::@1 to (byte/signed byte/word/signed word/dword/signed dword) 6 Resolved ranged next value test_8s::i#1 ← ++ test_8s::i#10 to ++ @@ -3102,12 +3102,12 @@ Constant inlined $0 = (const byte[]) print_hextab#0 Constant inlined divr8u::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined test_16u::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined test_8u::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined test_8s::$3 = -(byte/signed byte/word/signed word/dword/signed dword) 13 -Constant inlined test_8s::$2 = -(byte/signed byte/word/signed word/dword/signed dword) 11 -Constant inlined test_8s::$1 = -(byte/signed byte/word/signed word/dword/signed dword) 127 -Constant inlined test_8s::$0 = -(byte/signed byte/word/signed word/dword/signed dword) 127 +Constant inlined test_8s::$3 = -(byte/signed byte/word/signed word/dword/signed dword) $d +Constant inlined test_8s::$2 = -(byte/signed byte/word/signed word/dword/signed dword) $b +Constant inlined test_8s::$1 = -(byte/signed byte/word/signed word/dword/signed dword) $7f +Constant inlined test_8s::$0 = -(byte/signed byte/word/signed word/dword/signed dword) $7f Constant inlined test_16s::str1 = (const string) str1 -Constant inlined print_line_cursor#0 = ((byte*))(word/signed word/dword/signed dword) 1024 +Constant inlined print_line_cursor#0 = ((byte*))(word/signed word/dword/signed dword) $400 Constant inlined test_16s::str2 = (const string) str2 Constant inlined test_16s::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined divr8u::rem#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -3124,7 +3124,7 @@ Constant inlined test_8u::str = (const string) str Constant inlined print_str::str#6 = (const string) str2 Constant inlined print_str::str#5 = (const string) str1 Constant inlined test_16s::str = (const string) str -Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000 +Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8 Constant inlined divr16u::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined print_str::str#12 = (const string) str2 Constant inlined print_str::str#11 = (const string) str1 @@ -3137,9 +3137,9 @@ Constant inlined divr16u::quotient#0 = (byte/signed byte/word/signed word/dword/ Constant inlined test_8u::str1 = (const string) str1 Constant inlined test_8s::str = (const string) str Constant inlined test_16s::$3 = -(byte/signed byte/word/signed word/dword/signed dword) 7 -Constant inlined test_16s::$4 = -(byte/signed byte/word/signed word/dword/signed dword) 13 -Constant inlined test_16s::$5 = -(byte/signed byte/word/signed word/dword/signed dword) 17 -Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword) 1024 +Constant inlined test_16s::$4 = -(byte/signed byte/word/signed word/dword/signed dword) $d +Constant inlined test_16s::$5 = -(byte/signed byte/word/signed word/dword/signed dword) $11 +Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword) $400 Constant inlined divr8u::quotient#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined test_16u::str1 = (const string) str1 Constant inlined print_char::ch#2 = (byte) ' ' @@ -3147,11 +3147,11 @@ Constant inlined test_16u::str = (const string) str Constant inlined test_16u::str2 = (const string) str2 Constant inlined print_char::ch#1 = (byte) '-' Constant inlined print_char::ch#0 = (byte) '-' -Constant inlined test_16s::$0 = -(word/signed word/dword/signed dword) 32767 -Constant inlined test_16s::$1 = -(word/signed word/dword/signed dword) 32767 +Constant inlined test_16s::$0 = -(word/signed word/dword/signed dword) $7fff +Constant inlined test_16s::$1 = -(word/signed word/dword/signed dword) $7fff Constant inlined divr16s::remu#1 = ((word))-(const signed word) divr16s::rem#0 Constant inlined test_8s::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined test_16s::$2 = -(word/signed word/dword/signed dword) 32767 +Constant inlined test_16s::$2 = -(word/signed word/dword/signed dword) $7fff Constant inlined divr16s::remu#2 = ((word))(const signed word) divr16s::rem#0 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting test_16s::@12(between test_16s::@11 and test_16s::@1) @@ -3455,7 +3455,7 @@ test_16s::@10: scope:[test_16s] from test_16s::@9 to:test_16s::@11 test_16s::@11: scope:[test_16s] from test_16s::@10 [41] (byte) test_16s::i#1 ← (byte) test_16s::i#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [42] if((byte) test_16s::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 12) goto test_16s::@1 + [42] if((byte) test_16s::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $c) goto test_16s::@1 to:test_16s::@return test_16s::@return: scope:[test_16s] from test_16s::@11 [43] return @@ -3465,7 +3465,7 @@ print_ln: scope:[print_ln] from test_16s::@10 test_16u::@10 test_8s::@10 test_8 to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [45] (byte*) print_line_cursor#20 ← phi( print_ln/(byte*) print_line_cursor#39 print_ln::@1/(byte*) print_line_cursor#1 ) - [46] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#20 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [46] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#20 + (byte/signed byte/word/signed word/dword/signed dword) $28 [47] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#18) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 @@ -3513,7 +3513,7 @@ print_byte: scope:[print_byte] from print_sbyte::@2 print_word print_word::@1 t [67] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [68] (byte~) print_byte::$2 ← (byte) print_byte::b#7 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [68] (byte~) print_byte::$2 ← (byte) print_byte::b#7 & (byte/signed byte/word/signed word/dword/signed dword) $f [69] (byte) print_char::ch#4 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [70] call print_char to:print_byte::@return @@ -3619,7 +3619,7 @@ divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 [114] (word) divr16u::rem#5 ← phi( divr16u/(word) divr16u::rem#10 divr16u::@3/(word) divr16u::rem#11 ) [115] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [116] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 - [117] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 + [117] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [118] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 to:divr16u::@4 divr16u::@4: scope:[divr16u] from divr16u::@1 @@ -3639,7 +3639,7 @@ divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 [126] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [126] (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) [127] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 - [128] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 + [128] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 to:divr16u::@6 divr16u::@6: scope:[divr16u] from divr16u::@3 [129] (word) rem16u#1 ← (word) divr16u::rem#11 @@ -3795,7 +3795,7 @@ divr8u::@1: scope:[divr8u] from divr8u divr8u::@3 [202] (byte) divr8u::dividend#2 ← phi( divr8u/(byte) divr8u::dividend#0 divr8u::@3/(byte) divr8u::dividend#1 ) [202] (byte) divr8u::rem#4 ← phi( divr8u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr8u::@3/(byte) divr8u::rem#10 ) [203] (byte) divr8u::rem#1 ← (byte) divr8u::rem#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [204] (byte~) divr8u::$1 ← (byte) divr8u::dividend#2 & (byte/word/signed word/dword/signed dword) 128 + [204] (byte~) divr8u::$1 ← (byte) divr8u::dividend#2 & (byte/word/signed word/dword/signed dword) $80 [205] if((byte~) divr8u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr8u::@2 to:divr8u::@4 divr8u::@4: scope:[divr8u] from divr8u::@1 @@ -3871,7 +3871,7 @@ test_16u::@10: scope:[test_16u] from test_16u::@9 to:test_16u::@11 test_16u::@11: scope:[test_16u] from test_16u::@10 [244] (byte) test_16u::i#1 ← (byte) test_16u::i#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [245] if((byte) test_16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 12) goto test_16u::@1 + [245] if((byte) test_16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $c) goto test_16u::@1 to:test_16u::@return test_16u::@return: scope:[test_16u] from test_16u::@11 [246] return @@ -3892,8 +3892,8 @@ test_8u: scope:[test_8u] from main::@1 [253] phi() to:test_8u::@1 test_8u::@1: scope:[test_8u] from test_8u test_8u::@12 - [254] (byte*) print_line_cursor#41 ← phi( test_8u/((byte*))(word/signed word/dword/signed dword) 1024 test_8u::@12/(byte*) print_line_cursor#1 ) - [254] (byte*) print_char_cursor#138 ← phi( test_8u/((byte*))(word/signed word/dword/signed dword) 1024 test_8u::@12/(byte*~) print_char_cursor#188 ) + [254] (byte*) print_line_cursor#41 ← phi( test_8u/((byte*))(word/signed word/dword/signed dword) $400 test_8u::@12/(byte*) print_line_cursor#1 ) + [254] (byte*) print_char_cursor#138 ← phi( test_8u/((byte*))(word/signed word/dword/signed dword) $400 test_8u::@12/(byte*~) print_char_cursor#188 ) [254] (byte) test_8u::i#10 ← phi( test_8u/(byte/signed byte/word/signed word/dword/signed dword) 0 test_8u::@12/(byte) test_8u::i#1 ) [255] (byte) test_8u::dividend#0 ← *((const byte[]) test_8u::dividends#0 + (byte) test_8u::i#10) [256] (byte) test_8u::divisor#0 ← *((const byte[]) test_8u::divisors#0 + (byte) test_8u::i#10) @@ -3949,10 +3949,10 @@ print_cls: scope:[print_cls] from main [282] phi() to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 - [283] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) 1024 print_cls::@1/(byte*) print_cls::sc#1 ) + [283] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) $400 print_cls::@1/(byte*) print_cls::sc#1 ) [284] *((byte*) print_cls::sc#2) ← (byte) ' ' [285] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [286] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [286] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [287] return @@ -4737,7 +4737,7 @@ test_16s: { clc adc #2 sta i - //SEG91 [42] if((byte) test_16s::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 12) goto test_16s::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG91 [42] if((byte) test_16s::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $c) goto test_16s::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$c bne b1_from_b11 @@ -4759,7 +4759,7 @@ print_ln: { jmp b1 //SEG97 print_ln::@1 b1: - //SEG98 [46] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#20 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG98 [46] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#20 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -4900,7 +4900,7 @@ print_byte: { jmp b1 //SEG144 print_byte::@1 b1: - //SEG145 [68] (byte~) print_byte::$2 ← (byte) print_byte::b#7 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG145 [68] (byte~) print_byte::$2 ← (byte) print_byte::b#7 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and b sta _2 @@ -5272,7 +5272,7 @@ divr16u: { //SEG242 [116] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 -- vbuz1=_hi_vwuz2 lda dividend+1 sta _1 - //SEG243 [117] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG243 [117] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuz1=vbuz2_band_vbuc1 lda #$80 and _1 sta _2 @@ -5335,7 +5335,7 @@ divr16u: { b3: //SEG260 [127] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG261 [128] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG261 [128] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b3 @@ -5805,7 +5805,7 @@ divr8u: { b1: //SEG423 [203] (byte) divr8u::rem#1 ← (byte) divr8u::rem#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 asl rem - //SEG424 [204] (byte~) divr8u::$1 ← (byte) divr8u::dividend#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG424 [204] (byte~) divr8u::$1 ← (byte) divr8u::dividend#2 & (byte/word/signed word/dword/signed dword) $80 -- vbuz1=vbuz2_band_vbuc1 lda #$80 and dividend sta _1 @@ -6044,7 +6044,7 @@ test_16u: { clc adc #2 sta i - //SEG507 [245] if((byte) test_16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 12) goto test_16u::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG507 [245] if((byte) test_16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $c) goto test_16u::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$c bne b1_from_b11 @@ -6115,12 +6115,12 @@ test_8u: { .label i = $31 //SEG524 [254] phi from test_8u to test_8u::@1 [phi:test_8u->test_8u::@1] b1_from_test_8u: - //SEG525 [254] phi (byte*) print_line_cursor#41 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:test_8u->test_8u::@1#0] -- pbuz1=pbuc1 + //SEG525 [254] phi (byte*) print_line_cursor#41 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:test_8u->test_8u::@1#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 sta print_line_cursor+1 - //SEG526 [254] phi (byte*) print_char_cursor#138 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:test_8u->test_8u::@1#1] -- pbuz1=pbuc1 + //SEG526 [254] phi (byte*) print_char_cursor#138 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:test_8u->test_8u::@1#1] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -6293,7 +6293,7 @@ print_cls: { .label sc = $32 //SEG595 [283] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] b1_from_print_cls: - //SEG596 [283] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG596 [283] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -6314,7 +6314,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG602 [286] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG602 [286] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1_from_b1 @@ -6345,7 +6345,7 @@ Statement [25] (byte*~) print_char_cursor#159 ← (byte*) print_line_cursor#1 [ Statement [29] (signed word) print_sword::w#2 ← (signed word) test_16s::divisor#0 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 print_sword::w#2 rem16s#11 print_char_cursor#128 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 print_sword::w#2 rem16s#11 print_char_cursor#128 ] ) always clobbers reg byte a Statement [33] (signed word) print_sword::w#3 ← (signed word) test_16s::res#0 [ test_16s::i#10 print_line_cursor#1 print_sword::w#3 rem16s#11 print_char_cursor#128 ] ( main:2::test_16s:13 [ test_16s::i#10 print_line_cursor#1 print_sword::w#3 rem16s#11 print_char_cursor#128 ] ) always clobbers reg byte a Statement [37] (signed word) print_sword::w#4 ← (signed word) rem16s#11 [ test_16s::i#10 print_line_cursor#1 print_sword::w#4 print_char_cursor#128 ] ( main:2::test_16s:13 [ test_16s::i#10 print_line_cursor#1 print_sword::w#4 print_char_cursor#128 ] ) always clobbers reg byte a -Statement [46] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#20 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#18 ] ( main:2::test_16s:13::print_ln:40 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#18 ] main:2::test_8s:11::print_ln:156 [ test_8s::i#10 print_line_cursor#1 print_char_cursor#18 ] main:2::test_16u:9::print_ln:243 [ test_16u::i#10 print_line_cursor#1 print_char_cursor#18 ] main:2::test_8u:7::print_ln:277 [ test_8u::i#10 print_line_cursor#1 print_char_cursor#18 ] ) always clobbers reg byte a +Statement [46] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#20 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#1 print_char_cursor#18 ] ( main:2::test_16s:13::print_ln:40 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#18 ] main:2::test_8s:11::print_ln:156 [ test_8s::i#10 print_line_cursor#1 print_char_cursor#18 ] main:2::test_16u:9::print_ln:243 [ test_16u::i#10 print_line_cursor#1 print_char_cursor#18 ] main:2::test_8u:7::print_ln:277 [ test_8u::i#10 print_line_cursor#1 print_char_cursor#18 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:35 [ test_8s::i#10 test_8s::i#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:48 [ test_16u::i#10 test_16u::i#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:49 [ test_8u::i#10 test_8u::i#1 ] @@ -6363,7 +6363,7 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:41 [ r Removing always clobbered register reg byte a as potential for zp ZP_BYTE:100 [ rem8u#17 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:118 [ test_8u::divisor#0 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:120 [ test_8u::res#0 ] -Statement [68] (byte~) print_byte::$2 ← (byte) print_byte::b#7 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#18 print_byte::$2 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#11 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#11 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#11 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:229::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:233::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:237::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:241::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#11 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#11 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#11 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:229::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:233::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:237::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:241::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#18 print_byte::$2 ] main:2::test_8s:11::print_sbyte:142::print_byte:166 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#18 print_byte::$2 ] main:2::test_8s:11::print_sbyte:146::print_byte:166 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#18 print_byte::$2 ] main:2::test_8s:11::print_sbyte:150::print_byte:166 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#18 print_byte::$2 ] main:2::test_8s:11::print_sbyte:154::print_byte:166 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#18 print_byte::$2 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#18 print_byte::$2 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#18 print_byte::$2 ] main:2::test_8u:7::print_byte:271 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#18 print_byte::$2 ] main:2::test_8u:7::print_byte:275 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#18 print_byte::$2 ] ) always clobbers reg byte a +Statement [68] (byte~) print_byte::$2 ← (byte) print_byte::b#7 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#18 print_byte::$2 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#11 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#11 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#11 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:229::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:233::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:237::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:241::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#11 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#11 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#11 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:229::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:233::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:237::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:241::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#18 print_byte::$2 ] main:2::test_8s:11::print_sbyte:142::print_byte:166 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#18 print_byte::$2 ] main:2::test_8s:11::print_sbyte:146::print_byte:166 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#18 print_byte::$2 ] main:2::test_8s:11::print_sbyte:150::print_byte:166 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#18 print_byte::$2 ] main:2::test_8s:11::print_sbyte:154::print_byte:166 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#18 print_byte::$2 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#18 print_byte::$2 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#18 print_byte::$2 ] main:2::test_8u:7::print_byte:271 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#18 print_byte::$2 ] main:2::test_8u:7::print_byte:275 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#18 print_byte::$2 ] ) always clobbers reg byte a Statement [73] *((byte*) print_char_cursor#82) ← (byte) print_char::ch#5 [ print_char_cursor#82 ] ( main:2::test_16s:13::print_sword:26::print_char:52 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#11 print_sword::w#5 print_char_cursor#82 ] main:2::test_16s:13::print_sword:30::print_char:52 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#11 print_sword::w#5 print_char_cursor#82 ] main:2::test_16s:13::print_sword:34::print_char:52 [ test_16s::i#10 print_line_cursor#1 rem16s#11 print_sword::w#5 print_char_cursor#82 ] main:2::test_16s:13::print_sword:38::print_char:52 [ test_16s::i#10 print_line_cursor#1 print_sword::w#5 print_char_cursor#82 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60::print_char:67 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#11 print_word::w#5 print_byte::b#7 print_char_cursor#82 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60::print_char:67 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#11 print_word::w#5 print_byte::b#7 print_char_cursor#82 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60::print_char:67 [ test_16s::i#10 print_line_cursor#1 rem16s#11 print_word::w#5 print_byte::b#7 print_char_cursor#82 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60::print_char:67 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_byte::b#7 print_char_cursor#82 ] main:2::test_16u:9::print_word:229::print_byte:60::print_char:67 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#82 ] main:2::test_16u:9::print_word:233::print_byte:60::print_char:67 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#82 ] main:2::test_16u:9::print_word:237::print_byte:60::print_char:67 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#82 ] main:2::test_16u:9::print_word:241::print_byte:60::print_char:67 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#82 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62::print_char:67 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#11 print_byte::b#7 print_char_cursor#82 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62::print_char:67 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#11 print_byte::b#7 print_char_cursor#82 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62::print_char:67 [ test_16s::i#10 print_line_cursor#1 rem16s#11 print_byte::b#7 print_char_cursor#82 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62::print_char:67 [ test_16s::i#10 print_line_cursor#1 print_byte::b#7 print_char_cursor#82 ] main:2::test_16u:9::print_word:229::print_byte:62::print_char:67 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_byte::b#7 print_char_cursor#82 ] main:2::test_16u:9::print_word:233::print_byte:62::print_char:67 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_byte::b#7 print_char_cursor#82 ] main:2::test_16u:9::print_word:237::print_byte:62::print_char:67 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_byte::b#7 print_char_cursor#82 ] main:2::test_16u:9::print_word:241::print_byte:62::print_char:67 [ print_line_cursor#1 test_16u::i#10 print_byte::b#7 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:142::print_byte:166::print_char:67 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:146::print_byte:166::print_char:67 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:150::print_byte:166::print_char:67 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_byte::b#7 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:154::print_byte:166::print_char:67 [ print_line_cursor#1 test_8s::i#10 print_byte::b#7 print_char_cursor#82 ] main:2::test_8u:7::print_byte:263::print_char:67 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_byte::b#7 print_char_cursor#82 ] main:2::test_8u:7::print_byte:267::print_char:67 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_byte::b#7 print_char_cursor#82 ] main:2::test_8u:7::print_byte:271::print_char:67 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_byte::b#7 print_char_cursor#82 ] main:2::test_8u:7::print_byte:275::print_char:67 [ print_line_cursor#41 test_8u::i#10 print_byte::b#7 print_char_cursor#82 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60::print_char:70 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#11 print_word::w#5 print_char_cursor#82 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60::print_char:70 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#11 print_word::w#5 print_char_cursor#82 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60::print_char:70 [ test_16s::i#10 print_line_cursor#1 rem16s#11 print_word::w#5 print_char_cursor#82 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60::print_char:70 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#82 ] main:2::test_16u:9::print_word:229::print_byte:60::print_char:70 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#82 ] main:2::test_16u:9::print_word:233::print_byte:60::print_char:70 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#82 ] main:2::test_16u:9::print_word:237::print_byte:60::print_char:70 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#82 ] main:2::test_16u:9::print_word:241::print_byte:60::print_char:70 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#82 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62::print_char:70 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#11 print_char_cursor#82 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62::print_char:70 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#11 print_char_cursor#82 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62::print_char:70 [ test_16s::i#10 print_line_cursor#1 rem16s#11 print_char_cursor#82 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62::print_char:70 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#82 ] main:2::test_16u:9::print_word:229::print_byte:62::print_char:70 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#82 ] main:2::test_16u:9::print_word:233::print_byte:62::print_char:70 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#82 ] main:2::test_16u:9::print_word:237::print_byte:62::print_char:70 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#82 ] main:2::test_16u:9::print_word:241::print_byte:62::print_char:70 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:142::print_byte:166::print_char:70 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:146::print_byte:166::print_char:70 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:150::print_byte:166::print_char:70 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:154::print_byte:166::print_char:70 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#82 ] main:2::test_8u:7::print_byte:263::print_char:70 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#82 ] main:2::test_8u:7::print_byte:267::print_char:70 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#82 ] main:2::test_8u:7::print_byte:271::print_char:70 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#82 ] main:2::test_8u:7::print_byte:275::print_char:70 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:142::print_char:163 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_sbyte::b#10 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:146::print_char:163 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_sbyte::b#10 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:150::print_char:163 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_sbyte::b#10 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:154::print_char:163 [ print_line_cursor#1 test_8s::i#10 print_sbyte::b#10 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:142::print_char:169 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_sbyte::b#10 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:146::print_char:169 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_sbyte::b#10 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:150::print_char:169 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_sbyte::b#10 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:154::print_char:169 [ print_line_cursor#1 test_8s::i#10 print_sbyte::b#10 print_char_cursor#82 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ test_16s::i#10 test_16s::i#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:9 [ print_byte::b#7 print_byte::b#9 print_byte::b#1 print_byte::b#2 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#6 ] @@ -6404,7 +6404,7 @@ Statement [111] (signed word~) divr16s::$5 ← - (signed word) divr16s::dividend Statement [112] (word~) divr16s::dividendu#7 ← (word)(signed word~) divr16s::$5 [ divr16s::divisor#0 divr16s::dividendu#7 ] ( main:2::test_16s:13::div16s:21::divr16s:85 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 divr16s::divisor#0 divr16s::dividendu#7 ] ) always clobbers reg byte a Statement [116] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::test_16s:13::div16s:21::divr16s:85::divr16u:98 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 divr16s::neg#4 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::test_16u:9::div16u:224::divr16u:249 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:34 [ divr16u::i#2 divr16u::i#1 ] -Statement [117] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::test_16s:13::div16s:21::divr16s:85::divr16u:98 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 divr16s::neg#4 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::test_16u:9::div16u:224::divr16u:249 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a +Statement [117] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::test_16s:13::div16s:21::divr16s:85::divr16u:98 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 divr16s::neg#4 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::test_16u:9::div16u:224::divr16u:249 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a Statement [119] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::test_16s:13::div16s:21::divr16s:85::divr16u:98 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 divr16s::neg#4 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::test_16u:9::div16u:224::divr16u:249 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a Statement [123] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::test_16s:13::div16s:21::divr16s:85::divr16u:98 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 divr16s::neg#4 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::test_16u:9::div16u:224::divr16u:249 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) always clobbers reg byte a Statement [125] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::test_16s:13::div16s:21::divr16s:85::divr16u:98 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 divr16s::neg#4 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::test_16u:9::div16u:224::divr16u:249 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a @@ -6424,7 +6424,7 @@ Statement [190] (byte) div8s::neg#2 ← (byte) div8s::neg#3 ^ (byte/signed byte/ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:94 [ div8s::$6 ] Statement [192] (signed byte~) div8s::$2 ← - (signed byte) div8s::dividend#0 [ div8s::divisor#0 div8s::$2 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::divisor#0 div8s::$2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:89 [ div8s::divisor#0 ] -Statement [204] (byte~) divr8u::$1 ← (byte) divr8u::dividend#2 & (byte/word/signed word/dword/signed dword) 128 [ divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 divr8u::$1 ] ( main:2::test_8s:11::div8s:137::div8u:179::divr8u:197 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 divr8u::$1 ] main:2::test_8u:7::div8u:259::divr8u:197 [ print_line_cursor#41 print_char_cursor#138 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 divr8u::$1 ] ) always clobbers reg byte a +Statement [204] (byte~) divr8u::$1 ← (byte) divr8u::dividend#2 & (byte/word/signed word/dword/signed dword) $80 [ divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 divr8u::$1 ] ( main:2::test_8s:11::div8s:137::div8u:179::divr8u:197 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 divr8u::$1 ] main:2::test_8u:7::div8u:259::divr8u:197 [ print_line_cursor#41 print_char_cursor#138 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 divr8u::$1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:96 [ divr8u::divisor#0 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:45 [ divr8u::dividend#2 divr8u::dividend#0 divr8u::dividend#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:46 [ divr8u::quotient#3 divr8u::return#1 divr8u::quotient#1 divr8u::quotient#2 ] @@ -6451,7 +6451,7 @@ Statement [251] (word) div16u::return#0 ← (word) divr16u::return#2 [ rem16u#1 Statement [256] (byte) test_8u::divisor#0 ← *((const byte[]) test_8u::divisors#0 + (byte) test_8u::i#10) [ print_line_cursor#41 print_char_cursor#138 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 ] ( main:2::test_8u:7 [ print_line_cursor#41 print_char_cursor#138 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 ] ) always clobbers reg byte a Statement [281] (byte*~) print_char_cursor#188 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#188 ] ( main:2::test_8u:7 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#188 ] ) always clobbers reg byte a Statement [284] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [286] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [286] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a Statement [17] (signed word) test_16s::dividend#0 ← *((const signed word[]) test_16s::dividends#0 + (byte) test_16s::i#10) [ test_16s::i#10 test_16s::dividend#0 print_line_cursor#1 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::dividend#0 print_line_cursor#1 ] ) always clobbers reg byte a Statement [18] (signed word) test_16s::divisor#0 ← *((const signed word[]) test_16s::divisors#0 + (byte) test_16s::i#10) [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 ] ) always clobbers reg byte a Statement [19] (signed word) div16s::dividend#0 ← (signed word) test_16s::dividend#0 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 div16s::dividend#0 print_line_cursor#1 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 div16s::dividend#0 print_line_cursor#1 ] ) always clobbers reg byte a @@ -6463,7 +6463,7 @@ Statement [25] (byte*~) print_char_cursor#159 ← (byte*) print_line_cursor#1 [ Statement [29] (signed word) print_sword::w#2 ← (signed word) test_16s::divisor#0 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 print_sword::w#2 rem16s#11 print_char_cursor#128 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 print_sword::w#2 rem16s#11 print_char_cursor#128 ] ) always clobbers reg byte a Statement [33] (signed word) print_sword::w#3 ← (signed word) test_16s::res#0 [ test_16s::i#10 print_line_cursor#1 print_sword::w#3 rem16s#11 print_char_cursor#128 ] ( main:2::test_16s:13 [ test_16s::i#10 print_line_cursor#1 print_sword::w#3 rem16s#11 print_char_cursor#128 ] ) always clobbers reg byte a Statement [37] (signed word) print_sword::w#4 ← (signed word) rem16s#11 [ test_16s::i#10 print_line_cursor#1 print_sword::w#4 print_char_cursor#128 ] ( main:2::test_16s:13 [ test_16s::i#10 print_line_cursor#1 print_sword::w#4 print_char_cursor#128 ] ) always clobbers reg byte a -Statement [46] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#20 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#18 ] ( main:2::test_16s:13::print_ln:40 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#18 ] main:2::test_8s:11::print_ln:156 [ test_8s::i#10 print_line_cursor#1 print_char_cursor#18 ] main:2::test_16u:9::print_ln:243 [ test_16u::i#10 print_line_cursor#1 print_char_cursor#18 ] main:2::test_8u:7::print_ln:277 [ test_8u::i#10 print_line_cursor#1 print_char_cursor#18 ] ) always clobbers reg byte a +Statement [46] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#20 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#1 print_char_cursor#18 ] ( main:2::test_16s:13::print_ln:40 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#18 ] main:2::test_8s:11::print_ln:156 [ test_8s::i#10 print_line_cursor#1 print_char_cursor#18 ] main:2::test_16u:9::print_ln:243 [ test_16u::i#10 print_line_cursor#1 print_char_cursor#18 ] main:2::test_8u:7::print_ln:277 [ test_8u::i#10 print_line_cursor#1 print_char_cursor#18 ] ) always clobbers reg byte a Statement [47] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#18) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#18 ] ( main:2::test_16s:13::print_ln:40 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#18 ] main:2::test_8s:11::print_ln:156 [ test_8s::i#10 print_line_cursor#1 print_char_cursor#18 ] main:2::test_16u:9::print_ln:243 [ test_16u::i#10 print_line_cursor#1 print_char_cursor#18 ] main:2::test_8u:7::print_ln:277 [ test_8u::i#10 print_line_cursor#1 print_char_cursor#18 ] ) always clobbers reg byte a Statement [50] if((signed word) print_sword::w#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto print_sword::@1 [ print_sword::w#5 print_char_cursor#131 ] ( main:2::test_16s:13::print_sword:26 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#11 print_sword::w#5 print_char_cursor#131 ] main:2::test_16s:13::print_sword:30 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#11 print_sword::w#5 print_char_cursor#131 ] main:2::test_16s:13::print_sword:34 [ test_16s::i#10 print_line_cursor#1 rem16s#11 print_sword::w#5 print_char_cursor#131 ] main:2::test_16s:13::print_sword:38 [ test_16s::i#10 print_line_cursor#1 print_sword::w#5 print_char_cursor#131 ] ) always clobbers reg byte a Statement [53] (signed word) print_sword::w#0 ← - (signed word) print_sword::w#5 [ print_char_cursor#18 print_sword::w#0 ] ( main:2::test_16s:13::print_sword:26 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#11 print_char_cursor#18 print_sword::w#0 ] main:2::test_16s:13::print_sword:30 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#11 print_char_cursor#18 print_sword::w#0 ] main:2::test_16s:13::print_sword:34 [ test_16s::i#10 print_line_cursor#1 rem16s#11 print_char_cursor#18 print_sword::w#0 ] main:2::test_16s:13::print_sword:38 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#18 print_sword::w#0 ] ) always clobbers reg byte a @@ -6471,7 +6471,7 @@ Statement [55] (word~) print_word::w#7 ← (word)(signed word) print_sword::w#6 Statement [59] (byte) print_byte::b#1 ← > (word) print_word::w#5 [ print_word::w#5 print_char_cursor#135 print_byte::b#1 ] ( main:2::test_16s:13::print_sword:26::print_word:56 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#11 print_word::w#5 print_char_cursor#135 print_byte::b#1 ] main:2::test_16s:13::print_sword:30::print_word:56 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#11 print_word::w#5 print_char_cursor#135 print_byte::b#1 ] main:2::test_16s:13::print_sword:34::print_word:56 [ test_16s::i#10 print_line_cursor#1 rem16s#11 print_word::w#5 print_char_cursor#135 print_byte::b#1 ] main:2::test_16s:13::print_sword:38::print_word:56 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#135 print_byte::b#1 ] main:2::test_16u:9::print_word:229 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#135 print_byte::b#1 ] main:2::test_16u:9::print_word:233 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#135 print_byte::b#1 ] main:2::test_16u:9::print_word:237 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#135 print_byte::b#1 ] main:2::test_16u:9::print_word:241 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#135 print_byte::b#1 ] ) always clobbers reg byte a Statement [61] (byte) print_byte::b#2 ← < (word) print_word::w#5 [ print_char_cursor#18 print_byte::b#2 ] ( main:2::test_16s:13::print_sword:26::print_word:56 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#11 print_char_cursor#18 print_byte::b#2 ] main:2::test_16s:13::print_sword:30::print_word:56 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#11 print_char_cursor#18 print_byte::b#2 ] main:2::test_16s:13::print_sword:34::print_word:56 [ test_16s::i#10 print_line_cursor#1 rem16s#11 print_char_cursor#18 print_byte::b#2 ] main:2::test_16s:13::print_sword:38::print_word:56 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#18 print_byte::b#2 ] main:2::test_16u:9::print_word:229 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#18 print_byte::b#2 ] main:2::test_16u:9::print_word:233 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#18 print_byte::b#2 ] main:2::test_16u:9::print_word:237 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#18 print_byte::b#2 ] main:2::test_16u:9::print_word:241 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#18 print_byte::b#2 ] ) always clobbers reg byte a Statement [65] (byte~) print_byte::$0 ← (byte) print_byte::b#7 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#7 print_char_cursor#136 print_byte::$0 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#11 print_word::w#5 print_byte::b#7 print_char_cursor#136 print_byte::$0 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#11 print_word::w#5 print_byte::b#7 print_char_cursor#136 print_byte::$0 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#11 print_word::w#5 print_byte::b#7 print_char_cursor#136 print_byte::$0 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_byte::b#7 print_char_cursor#136 print_byte::$0 ] main:2::test_16u:9::print_word:229::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#136 print_byte::$0 ] main:2::test_16u:9::print_word:233::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#136 print_byte::$0 ] main:2::test_16u:9::print_word:237::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#136 print_byte::$0 ] main:2::test_16u:9::print_word:241::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#136 print_byte::$0 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#11 print_byte::b#7 print_char_cursor#136 print_byte::$0 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#11 print_byte::b#7 print_char_cursor#136 print_byte::$0 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#11 print_byte::b#7 print_char_cursor#136 print_byte::$0 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_byte::b#7 print_char_cursor#136 print_byte::$0 ] main:2::test_16u:9::print_word:229::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_byte::b#7 print_char_cursor#136 print_byte::$0 ] main:2::test_16u:9::print_word:233::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_byte::b#7 print_char_cursor#136 print_byte::$0 ] main:2::test_16u:9::print_word:237::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_byte::b#7 print_char_cursor#136 print_byte::$0 ] main:2::test_16u:9::print_word:241::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_byte::b#7 print_char_cursor#136 print_byte::$0 ] main:2::test_8s:11::print_sbyte:142::print_byte:166 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#136 print_byte::$0 ] main:2::test_8s:11::print_sbyte:146::print_byte:166 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#136 print_byte::$0 ] main:2::test_8s:11::print_sbyte:150::print_byte:166 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_byte::b#7 print_char_cursor#136 print_byte::$0 ] main:2::test_8s:11::print_sbyte:154::print_byte:166 [ print_line_cursor#1 test_8s::i#10 print_byte::b#7 print_char_cursor#136 print_byte::$0 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_byte::b#7 print_char_cursor#136 print_byte::$0 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_byte::b#7 print_char_cursor#136 print_byte::$0 ] main:2::test_8u:7::print_byte:271 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_byte::b#7 print_char_cursor#136 print_byte::$0 ] main:2::test_8u:7::print_byte:275 [ print_line_cursor#41 test_8u::i#10 print_byte::b#7 print_char_cursor#136 print_byte::$0 ] ) always clobbers reg byte a -Statement [68] (byte~) print_byte::$2 ← (byte) print_byte::b#7 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#18 print_byte::$2 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#11 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#11 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#11 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:229::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:233::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:237::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:241::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#11 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#11 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#11 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:229::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:233::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:237::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:241::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#18 print_byte::$2 ] main:2::test_8s:11::print_sbyte:142::print_byte:166 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#18 print_byte::$2 ] main:2::test_8s:11::print_sbyte:146::print_byte:166 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#18 print_byte::$2 ] main:2::test_8s:11::print_sbyte:150::print_byte:166 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#18 print_byte::$2 ] main:2::test_8s:11::print_sbyte:154::print_byte:166 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#18 print_byte::$2 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#18 print_byte::$2 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#18 print_byte::$2 ] main:2::test_8u:7::print_byte:271 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#18 print_byte::$2 ] main:2::test_8u:7::print_byte:275 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#18 print_byte::$2 ] ) always clobbers reg byte a +Statement [68] (byte~) print_byte::$2 ← (byte) print_byte::b#7 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#18 print_byte::$2 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#11 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#11 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#11 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:229::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:233::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:237::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:241::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#11 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#11 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#11 print_char_cursor#18 print_byte::$2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:229::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:233::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:237::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#18 print_byte::$2 ] main:2::test_16u:9::print_word:241::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#18 print_byte::$2 ] main:2::test_8s:11::print_sbyte:142::print_byte:166 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#18 print_byte::$2 ] main:2::test_8s:11::print_sbyte:146::print_byte:166 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#18 print_byte::$2 ] main:2::test_8s:11::print_sbyte:150::print_byte:166 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#18 print_byte::$2 ] main:2::test_8s:11::print_sbyte:154::print_byte:166 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#18 print_byte::$2 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#18 print_byte::$2 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#18 print_byte::$2 ] main:2::test_8u:7::print_byte:271 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#18 print_byte::$2 ] main:2::test_8u:7::print_byte:275 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#18 print_byte::$2 ] ) always clobbers reg byte a Statement [73] *((byte*) print_char_cursor#82) ← (byte) print_char::ch#5 [ print_char_cursor#82 ] ( main:2::test_16s:13::print_sword:26::print_char:52 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#11 print_sword::w#5 print_char_cursor#82 ] main:2::test_16s:13::print_sword:30::print_char:52 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#11 print_sword::w#5 print_char_cursor#82 ] main:2::test_16s:13::print_sword:34::print_char:52 [ test_16s::i#10 print_line_cursor#1 rem16s#11 print_sword::w#5 print_char_cursor#82 ] main:2::test_16s:13::print_sword:38::print_char:52 [ test_16s::i#10 print_line_cursor#1 print_sword::w#5 print_char_cursor#82 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60::print_char:67 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#11 print_word::w#5 print_byte::b#7 print_char_cursor#82 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60::print_char:67 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#11 print_word::w#5 print_byte::b#7 print_char_cursor#82 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60::print_char:67 [ test_16s::i#10 print_line_cursor#1 rem16s#11 print_word::w#5 print_byte::b#7 print_char_cursor#82 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60::print_char:67 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_byte::b#7 print_char_cursor#82 ] main:2::test_16u:9::print_word:229::print_byte:60::print_char:67 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#82 ] main:2::test_16u:9::print_word:233::print_byte:60::print_char:67 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#82 ] main:2::test_16u:9::print_word:237::print_byte:60::print_char:67 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#82 ] main:2::test_16u:9::print_word:241::print_byte:60::print_char:67 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#82 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62::print_char:67 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#11 print_byte::b#7 print_char_cursor#82 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62::print_char:67 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#11 print_byte::b#7 print_char_cursor#82 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62::print_char:67 [ test_16s::i#10 print_line_cursor#1 rem16s#11 print_byte::b#7 print_char_cursor#82 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62::print_char:67 [ test_16s::i#10 print_line_cursor#1 print_byte::b#7 print_char_cursor#82 ] main:2::test_16u:9::print_word:229::print_byte:62::print_char:67 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_byte::b#7 print_char_cursor#82 ] main:2::test_16u:9::print_word:233::print_byte:62::print_char:67 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_byte::b#7 print_char_cursor#82 ] main:2::test_16u:9::print_word:237::print_byte:62::print_char:67 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_byte::b#7 print_char_cursor#82 ] main:2::test_16u:9::print_word:241::print_byte:62::print_char:67 [ print_line_cursor#1 test_16u::i#10 print_byte::b#7 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:142::print_byte:166::print_char:67 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:146::print_byte:166::print_char:67 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:150::print_byte:166::print_char:67 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_byte::b#7 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:154::print_byte:166::print_char:67 [ print_line_cursor#1 test_8s::i#10 print_byte::b#7 print_char_cursor#82 ] main:2::test_8u:7::print_byte:263::print_char:67 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_byte::b#7 print_char_cursor#82 ] main:2::test_8u:7::print_byte:267::print_char:67 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_byte::b#7 print_char_cursor#82 ] main:2::test_8u:7::print_byte:271::print_char:67 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_byte::b#7 print_char_cursor#82 ] main:2::test_8u:7::print_byte:275::print_char:67 [ print_line_cursor#41 test_8u::i#10 print_byte::b#7 print_char_cursor#82 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60::print_char:70 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#11 print_word::w#5 print_char_cursor#82 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60::print_char:70 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#11 print_word::w#5 print_char_cursor#82 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60::print_char:70 [ test_16s::i#10 print_line_cursor#1 rem16s#11 print_word::w#5 print_char_cursor#82 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60::print_char:70 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#82 ] main:2::test_16u:9::print_word:229::print_byte:60::print_char:70 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#82 ] main:2::test_16u:9::print_word:233::print_byte:60::print_char:70 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#82 ] main:2::test_16u:9::print_word:237::print_byte:60::print_char:70 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#82 ] main:2::test_16u:9::print_word:241::print_byte:60::print_char:70 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#82 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62::print_char:70 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#11 print_char_cursor#82 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62::print_char:70 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#11 print_char_cursor#82 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62::print_char:70 [ test_16s::i#10 print_line_cursor#1 rem16s#11 print_char_cursor#82 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62::print_char:70 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#82 ] main:2::test_16u:9::print_word:229::print_byte:62::print_char:70 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#82 ] main:2::test_16u:9::print_word:233::print_byte:62::print_char:70 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#82 ] main:2::test_16u:9::print_word:237::print_byte:62::print_char:70 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#82 ] main:2::test_16u:9::print_word:241::print_byte:62::print_char:70 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:142::print_byte:166::print_char:70 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:146::print_byte:166::print_char:70 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:150::print_byte:166::print_char:70 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:154::print_byte:166::print_char:70 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#82 ] main:2::test_8u:7::print_byte:263::print_char:70 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#82 ] main:2::test_8u:7::print_byte:267::print_char:70 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#82 ] main:2::test_8u:7::print_byte:271::print_char:70 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#82 ] main:2::test_8u:7::print_byte:275::print_char:70 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:142::print_char:163 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_sbyte::b#10 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:146::print_char:163 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_sbyte::b#10 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:150::print_char:163 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_sbyte::b#10 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:154::print_char:163 [ print_line_cursor#1 test_8s::i#10 print_sbyte::b#10 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:142::print_char:169 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_sbyte::b#10 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:146::print_char:169 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_sbyte::b#10 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:150::print_char:169 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_sbyte::b#10 print_char_cursor#82 ] main:2::test_8s:11::print_sbyte:154::print_char:169 [ print_line_cursor#1 test_8s::i#10 print_sbyte::b#10 print_char_cursor#82 ] ) always clobbers reg byte y Statement [78] if(*((byte*) print_str::str#13)!=(byte) '@') goto print_str::@2 [ print_char_cursor#128 print_str::str#13 ] ( main:2::test_16s:13::print_str:28 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#11 print_char_cursor#128 print_str::str#13 ] main:2::test_16s:13::print_str:32 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#11 print_char_cursor#128 print_str::str#13 ] main:2::test_16s:13::print_str:36 [ test_16s::i#10 print_line_cursor#1 rem16s#11 print_char_cursor#128 print_str::str#13 ] main:2::test_8s:11::print_str:144 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#128 print_str::str#13 ] main:2::test_8s:11::print_str:148 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#128 print_str::str#13 ] main:2::test_8s:11::print_str:152 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#128 print_str::str#13 ] main:2::test_16u:9::print_str:231 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#128 print_str::str#13 ] main:2::test_16u:9::print_str:235 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#128 print_str::str#13 ] main:2::test_16u:9::print_str:239 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#128 print_str::str#13 ] main:2::test_8u:7::print_str:265 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#128 print_str::str#13 ] main:2::test_8u:7::print_str:269 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#128 print_str::str#13 ] main:2::test_8u:7::print_str:273 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#128 print_str::str#13 ] ) always clobbers reg byte a reg byte y Statement [80] *((byte*) print_char_cursor#128) ← *((byte*) print_str::str#13) [ print_char_cursor#128 print_str::str#13 ] ( main:2::test_16s:13::print_str:28 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#11 print_char_cursor#128 print_str::str#13 ] main:2::test_16s:13::print_str:32 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#11 print_char_cursor#128 print_str::str#13 ] main:2::test_16s:13::print_str:36 [ test_16s::i#10 print_line_cursor#1 rem16s#11 print_char_cursor#128 print_str::str#13 ] main:2::test_8s:11::print_str:144 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#128 print_str::str#13 ] main:2::test_8s:11::print_str:148 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#128 print_str::str#13 ] main:2::test_8s:11::print_str:152 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#128 print_str::str#13 ] main:2::test_16u:9::print_str:231 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#128 print_str::str#13 ] main:2::test_16u:9::print_str:235 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#128 print_str::str#13 ] main:2::test_16u:9::print_str:239 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#128 print_str::str#13 ] main:2::test_8u:7::print_str:265 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#128 print_str::str#13 ] main:2::test_8u:7::print_str:269 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#128 print_str::str#13 ] main:2::test_8u:7::print_str:273 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#128 print_str::str#13 ] ) always clobbers reg byte a reg byte y @@ -6498,7 +6498,7 @@ Statement [110] (word~) divr16s::divisoru#4 ← (word)(signed word~) divr16s::$1 Statement [111] (signed word~) divr16s::$5 ← - (signed word) divr16s::dividend#0 [ divr16s::divisor#0 divr16s::$5 ] ( main:2::test_16s:13::div16s:21::divr16s:85 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 divr16s::divisor#0 divr16s::$5 ] ) always clobbers reg byte a Statement [112] (word~) divr16s::dividendu#7 ← (word)(signed word~) divr16s::$5 [ divr16s::divisor#0 divr16s::dividendu#7 ] ( main:2::test_16s:13::div16s:21::divr16s:85 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 divr16s::divisor#0 divr16s::dividendu#7 ] ) always clobbers reg byte a Statement [116] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::test_16s:13::div16s:21::divr16s:85::divr16u:98 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 divr16s::neg#4 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::test_16u:9::div16u:224::divr16u:249 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a -Statement [117] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::test_16s:13::div16s:21::divr16s:85::divr16u:98 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 divr16s::neg#4 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::test_16u:9::div16u:224::divr16u:249 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a +Statement [117] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::test_16s:13::div16s:21::divr16s:85::divr16u:98 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 divr16s::neg#4 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::test_16u:9::div16u:224::divr16u:249 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a Statement [119] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::test_16s:13::div16s:21::divr16s:85::divr16u:98 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 divr16s::neg#4 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::test_16u:9::div16u:224::divr16u:249 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a Statement [123] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::test_16s:13::div16s:21::divr16s:85::divr16u:98 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 divr16s::neg#4 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::test_16u:9::div16u:224::divr16u:249 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) always clobbers reg byte a Statement [125] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::test_16s:13::div16s:21::divr16s:85::divr16u:98 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 divr16s::neg#4 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::test_16u:9::div16u:224::divr16u:249 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a @@ -6511,7 +6511,7 @@ Statement [184] (signed byte) div8s::return#1 ← - (signed byte)(byte) div8s::r Statement [189] (signed byte~) div8s::$6 ← - (signed byte) div8s::divisor#0 [ div8s::neg#3 div8s::dividendu#3 div8s::$6 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#3 div8s::dividendu#3 div8s::$6 ] ) always clobbers reg byte a Statement [190] (byte) div8s::neg#2 ← (byte) div8s::neg#3 ^ (byte/signed byte/word/signed word/dword/signed dword) 1 [ div8s::dividendu#3 div8s::neg#2 div8s::$6 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::dividendu#3 div8s::neg#2 div8s::$6 ] ) always clobbers reg byte a Statement [192] (signed byte~) div8s::$2 ← - (signed byte) div8s::dividend#0 [ div8s::divisor#0 div8s::$2 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::divisor#0 div8s::$2 ] ) always clobbers reg byte a -Statement [204] (byte~) divr8u::$1 ← (byte) divr8u::dividend#2 & (byte/word/signed word/dword/signed dword) 128 [ divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 divr8u::$1 ] ( main:2::test_8s:11::div8s:137::div8u:179::divr8u:197 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 divr8u::$1 ] main:2::test_8u:7::div8u:259::divr8u:197 [ print_line_cursor#41 print_char_cursor#138 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 divr8u::$1 ] ) always clobbers reg byte a +Statement [204] (byte~) divr8u::$1 ← (byte) divr8u::dividend#2 & (byte/word/signed word/dword/signed dword) $80 [ divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 divr8u::$1 ] ( main:2::test_8s:11::div8s:137::div8u:179::divr8u:197 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 divr8u::$1 ] main:2::test_8u:7::div8u:259::divr8u:197 [ print_line_cursor#41 print_char_cursor#138 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 divr8u::$1 ] ) always clobbers reg byte a Statement [206] (byte) divr8u::rem#2 ← (byte) divr8u::rem#1 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#2 ] ( main:2::test_8s:11::div8s:137::div8u:179::divr8u:197 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#2 ] main:2::test_8u:7::div8u:259::divr8u:197 [ print_line_cursor#41 print_char_cursor#138 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#2 ] ) always clobbers reg byte a Statement [212] (byte) divr8u::rem#3 ← (byte) divr8u::rem#5 - (byte) divr8u::divisor#0 [ divr8u::divisor#0 divr8u::i#2 divr8u::dividend#1 divr8u::quotient#2 divr8u::rem#3 ] ( main:2::test_8s:11::div8s:137::div8u:179::divr8u:197 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::i#2 divr8u::dividend#1 divr8u::quotient#2 divr8u::rem#3 ] main:2::test_8u:7::div8u:259::divr8u:197 [ print_line_cursor#41 print_char_cursor#138 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::i#2 divr8u::dividend#1 divr8u::quotient#2 divr8u::rem#3 ] ) always clobbers reg byte a Statement [220] (word) test_16u::dividend#0 ← *((const word[]) test_16u::dividends#0 + (byte) test_16u::i#10) [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 ] ) always clobbers reg byte a @@ -6532,7 +6532,7 @@ Statement [251] (word) div16u::return#0 ← (word) divr16u::return#2 [ rem16u#1 Statement [256] (byte) test_8u::divisor#0 ← *((const byte[]) test_8u::divisors#0 + (byte) test_8u::i#10) [ print_line_cursor#41 print_char_cursor#138 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 ] ( main:2::test_8u:7 [ print_line_cursor#41 print_char_cursor#138 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 ] ) always clobbers reg byte a Statement [281] (byte*~) print_char_cursor#188 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#188 ] ( main:2::test_8u:7 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#188 ] ) always clobbers reg byte a Statement [284] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [286] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [286] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ test_16s::i#10 test_16s::i#1 ] : zp ZP_BYTE:2 , reg byte x , Potential registers zp ZP_WORD:3 [ print_line_cursor#20 print_line_cursor#39 print_line_cursor#1 print_line_cursor#41 ] : zp ZP_WORD:3 , Potential registers zp ZP_WORD:5 [ print_sword::w#6 print_sword::w#5 print_sword::w#1 print_sword::w#2 print_sword::w#3 print_sword::w#4 print_sword::w#0 ] : zp ZP_WORD:5 , @@ -6991,7 +6991,7 @@ test_16s: { clc adc #2 sta i - //SEG91 [42] if((byte) test_16s::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 12) goto test_16s::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG91 [42] if((byte) test_16s::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $c) goto test_16s::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$c bne b1_from_b11 @@ -7013,7 +7013,7 @@ print_ln: { jmp b1 //SEG97 print_ln::@1 b1: - //SEG98 [46] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#20 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG98 [46] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#20 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -7145,7 +7145,7 @@ print_byte: { jmp b1 //SEG144 print_byte::@1 b1: - //SEG145 [68] (byte~) print_byte::$2 ← (byte) print_byte::b#7 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG145 [68] (byte~) print_byte::$2 ← (byte) print_byte::b#7 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and b //SEG146 [69] (byte) print_char::ch#4 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) -- vbuaa=pbuc1_derefidx_vbuaa @@ -7448,7 +7448,7 @@ divr16u: { rol rem+1 //SEG242 [116] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 -- vbuaa=_hi_vwuz1 lda dividend+1 - //SEG243 [117] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuaa_band_vbuc1 + //SEG243 [117] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 //SEG244 [118] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuaa_eq_0_then_la1 cmp #0 @@ -7508,7 +7508,7 @@ divr16u: { b3: //SEG260 [127] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuxx=_inc_vbuxx inx - //SEG261 [128] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG261 [128] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1_from_b3 jmp b6 @@ -7920,7 +7920,7 @@ divr8u: { tya asl tay - //SEG424 [204] (byte~) divr8u::$1 ← (byte) divr8u::dividend#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG424 [204] (byte~) divr8u::$1 ← (byte) divr8u::dividend#2 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuz1_band_vbuc1 lda #$80 and dividend //SEG425 [205] if((byte~) divr8u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr8u::@2 -- vbuaa_eq_0_then_la1 @@ -8135,7 +8135,7 @@ test_16u: { clc adc #2 sta i - //SEG507 [245] if((byte) test_16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 12) goto test_16u::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG507 [245] if((byte) test_16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $c) goto test_16u::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$c bne b1_from_b11 @@ -8193,12 +8193,12 @@ test_8u: { .label i = 2 //SEG524 [254] phi from test_8u to test_8u::@1 [phi:test_8u->test_8u::@1] b1_from_test_8u: - //SEG525 [254] phi (byte*) print_line_cursor#41 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:test_8u->test_8u::@1#0] -- pbuz1=pbuc1 + //SEG525 [254] phi (byte*) print_line_cursor#41 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:test_8u->test_8u::@1#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 sta print_line_cursor+1 - //SEG526 [254] phi (byte*) print_char_cursor#138 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:test_8u->test_8u::@1#1] -- pbuz1=pbuc1 + //SEG526 [254] phi (byte*) print_char_cursor#138 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:test_8u->test_8u::@1#1] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -8363,7 +8363,7 @@ print_cls: { .label sc = 3 //SEG595 [283] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] b1_from_print_cls: - //SEG596 [283] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG596 [283] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -8384,7 +8384,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG602 [286] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG602 [286] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1_from_b1 @@ -9087,11 +9087,11 @@ FINAL SYMBOL TABLE (signed word) test_16s::dividend (signed word) test_16s::dividend#0 dividend zp ZP_WORD:5 4.714285714285714 (signed word[]) test_16s::dividends -(const signed word[]) test_16s::dividends#0 dividends = { (word/signed word/dword/signed dword) 32767, (word/signed word/dword/signed dword) 32767, -(word/signed word/dword/signed dword) 32767, -(word/signed word/dword/signed dword) 32767, (word/signed word/dword/signed dword) 32767, -(word/signed word/dword/signed dword) 32767 } +(const signed word[]) test_16s::dividends#0 dividends = { (word/signed word/dword/signed dword) $7fff, (word/signed word/dword/signed dword) $7fff, -(word/signed word/dword/signed dword) $7fff, -(word/signed word/dword/signed dword) $7fff, (word/signed word/dword/signed dword) $7fff, -(word/signed word/dword/signed dword) $7fff } (signed word) test_16s::divisor (signed word) test_16s::divisor#0 divisor zp ZP_WORD:19 3.0 (signed word[]) test_16s::divisors -(const signed word[]) test_16s::divisors#0 divisors = { (byte/signed byte/word/signed word/dword/signed dword) 5, -(byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 11, -(byte/signed byte/word/signed word/dword/signed dword) 13, -(byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 19 } +(const signed word[]) test_16s::divisors#0 divisors = { (byte/signed byte/word/signed word/dword/signed dword) 5, -(byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) $b, -(byte/signed byte/word/signed word/dword/signed dword) $d, -(byte/signed byte/word/signed word/dword/signed dword) $11, (byte/signed byte/word/signed word/dword/signed dword) $13 } (byte) test_16s::i (byte) test_16s::i#1 i zp ZP_BYTE:2 16.5 (byte) test_16s::i#10 i zp ZP_BYTE:2 1.76 @@ -9112,11 +9112,11 @@ FINAL SYMBOL TABLE (word) test_16u::dividend (word) test_16u::dividend#0 dividend zp ZP_WORD:5 4.714285714285714 (word[]) test_16u::dividends -(const word[]) test_16u::dividends#0 dividends = { (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535 } +(const word[]) test_16u::dividends#0 dividends = { (word/dword/signed dword) $ffff, (word/dword/signed dword) $ffff, (word/dword/signed dword) $ffff, (word/dword/signed dword) $ffff, (word/dword/signed dword) $ffff, (word/dword/signed dword) $ffff } (word) test_16u::divisor (word) test_16u::divisor#0 divisor zp ZP_WORD:12 3.0 (word[]) test_16u::divisors -(const word[]) test_16u::divisors#0 divisors = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 19 } +(const word[]) test_16u::divisors#0 divisors = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $11, (byte/signed byte/word/signed word/dword/signed dword) $13 } (byte) test_16u::i (byte) test_16u::i#1 i zp ZP_BYTE:2 16.5 (byte) test_16u::i#10 i zp ZP_BYTE:2 1.76 @@ -9137,11 +9137,11 @@ FINAL SYMBOL TABLE (signed byte) test_8s::dividend (signed byte) test_8s::dividend#0 dividend zp ZP_BYTE:7 4.714285714285714 (signed byte[]) test_8s::dividends -(const signed byte[]) test_8s::dividends#0 dividends = { (byte/signed byte/word/signed word/dword/signed dword) 127, -(byte/signed byte/word/signed word/dword/signed dword) 127, -(byte/signed byte/word/signed word/dword/signed dword) 127, (byte/signed byte/word/signed word/dword/signed dword) 127, (byte/signed byte/word/signed word/dword/signed dword) 127, (byte/signed byte/word/signed word/dword/signed dword) 127 } +(const signed byte[]) test_8s::dividends#0 dividends = { (byte/signed byte/word/signed word/dword/signed dword) $7f, -(byte/signed byte/word/signed word/dword/signed dword) $7f, -(byte/signed byte/word/signed word/dword/signed dword) $7f, (byte/signed byte/word/signed word/dword/signed dword) $7f, (byte/signed byte/word/signed word/dword/signed dword) $7f, (byte/signed byte/word/signed word/dword/signed dword) $7f } (signed byte) test_8s::divisor (signed byte) test_8s::divisor#0 divisor zp ZP_BYTE:21 3.0 (signed byte[]) test_8s::divisors -(const signed byte[]) test_8s::divisors#0 divisors = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, -(byte/signed byte/word/signed word/dword/signed dword) 11, -(byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 19 } +(const signed byte[]) test_8s::divisors#0 divisors = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, -(byte/signed byte/word/signed word/dword/signed dword) $b, -(byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $11, (byte/signed byte/word/signed word/dword/signed dword) $13 } (byte) test_8s::i (byte) test_8s::i#1 i zp ZP_BYTE:2 16.5 (byte) test_8s::i#10 i zp ZP_BYTE:2 1.76 @@ -9163,11 +9163,11 @@ FINAL SYMBOL TABLE (byte) test_8u::dividend (byte) test_8u::dividend#0 dividend zp ZP_BYTE:7 4.714285714285714 (byte[]) test_8u::dividends -(const byte[]) test_8u::dividends#0 dividends = { (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255 } +(const byte[]) test_8u::dividends#0 dividends = { (byte/word/signed word/dword/signed dword) $ff, (byte/word/signed word/dword/signed dword) $ff, (byte/word/signed word/dword/signed dword) $ff, (byte/word/signed word/dword/signed dword) $ff, (byte/word/signed word/dword/signed dword) $ff, (byte/word/signed word/dword/signed dword) $ff } (byte) test_8u::divisor (byte) test_8u::divisor#0 divisor zp ZP_BYTE:16 3.3000000000000003 (byte[]) test_8u::divisors -(const byte[]) test_8u::divisors#0 divisors = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 19 } +(const byte[]) test_8u::divisors#0 divisors = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $11, (byte/signed byte/word/signed word/dword/signed dword) $13 } (byte) test_8u::i (byte) test_8u::i#1 i zp ZP_BYTE:2 11.0 (byte) test_8u::i#10 i zp ZP_BYTE:2 1.8333333333333333 @@ -9386,7 +9386,7 @@ test_16s: { clc adc #2 sta i - //SEG91 [42] if((byte) test_16s::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 12) goto test_16s::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG91 [42] if((byte) test_16s::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $c) goto test_16s::@1 -- vbuz1_neq_vbuc1_then_la1 cmp #$c bne b1 //SEG92 test_16s::@return @@ -9402,7 +9402,7 @@ print_ln: { //SEG96 [45] phi (byte*) print_line_cursor#20 = (byte*) print_line_cursor#39 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy //SEG97 print_ln::@1 b1: - //SEG98 [46] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#20 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG98 [46] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#20 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -9511,7 +9511,7 @@ print_byte: { //SEG143 [72] phi (byte) print_char::ch#5 = (byte) print_char::ch#3 [phi:print_byte->print_char#1] -- register_copy jsr print_char //SEG144 print_byte::@1 - //SEG145 [68] (byte~) print_byte::$2 ← (byte) print_byte::b#7 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG145 [68] (byte~) print_byte::$2 ← (byte) print_byte::b#7 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and b //SEG146 [69] (byte) print_char::ch#4 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) -- vbuaa=pbuc1_derefidx_vbuaa @@ -9774,7 +9774,7 @@ divr16u: { rol rem+1 //SEG242 [116] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 -- vbuaa=_hi_vwuz1 lda dividend+1 - //SEG243 [117] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuaa_band_vbuc1 + //SEG243 [117] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 //SEG244 [118] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuaa_eq_0_then_la1 cmp #0 @@ -9824,7 +9824,7 @@ divr16u: { b3: //SEG260 [127] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuxx=_inc_vbuxx inx - //SEG261 [128] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG261 [128] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1 //SEG262 divr16u::@6 @@ -10153,7 +10153,7 @@ divr8u: { tya asl tay - //SEG424 [204] (byte~) divr8u::$1 ← (byte) divr8u::dividend#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG424 [204] (byte~) divr8u::$1 ← (byte) divr8u::dividend#2 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuz1_band_vbuc1 lda #$80 and dividend //SEG425 [205] if((byte~) divr8u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr8u::@2 -- vbuaa_eq_0_then_la1 @@ -10319,7 +10319,7 @@ test_16u: { clc adc #2 sta i - //SEG507 [245] if((byte) test_16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 12) goto test_16u::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG507 [245] if((byte) test_16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $c) goto test_16u::@1 -- vbuz1_neq_vbuc1_then_la1 cmp #$c bne b1 //SEG508 test_16u::@return @@ -10367,12 +10367,12 @@ test_8u: { .label res = $11 .label i = 2 //SEG524 [254] phi from test_8u to test_8u::@1 [phi:test_8u->test_8u::@1] - //SEG525 [254] phi (byte*) print_line_cursor#41 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:test_8u->test_8u::@1#0] -- pbuz1=pbuc1 + //SEG525 [254] phi (byte*) print_line_cursor#41 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:test_8u->test_8u::@1#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 sta print_line_cursor+1 - //SEG526 [254] phi (byte*) print_char_cursor#138 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:test_8u->test_8u::@1#1] -- pbuz1=pbuc1 + //SEG526 [254] phi (byte*) print_char_cursor#138 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:test_8u->test_8u::@1#1] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -10500,7 +10500,7 @@ test_8u: { print_cls: { .label sc = 3 //SEG595 [283] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] - //SEG596 [283] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG596 [283] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -10518,7 +10518,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG602 [286] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG602 [286] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1 diff --git a/src/test/ref/test-division.sym b/src/test/ref/test-division.sym index f7f6fd013..d043877dd 100644 --- a/src/test/ref/test-division.sym +++ b/src/test/ref/test-division.sym @@ -317,11 +317,11 @@ (signed word) test_16s::dividend (signed word) test_16s::dividend#0 dividend zp ZP_WORD:5 4.714285714285714 (signed word[]) test_16s::dividends -(const signed word[]) test_16s::dividends#0 dividends = { (word/signed word/dword/signed dword) 32767, (word/signed word/dword/signed dword) 32767, -(word/signed word/dword/signed dword) 32767, -(word/signed word/dword/signed dword) 32767, (word/signed word/dword/signed dword) 32767, -(word/signed word/dword/signed dword) 32767 } +(const signed word[]) test_16s::dividends#0 dividends = { (word/signed word/dword/signed dword) $7fff, (word/signed word/dword/signed dword) $7fff, -(word/signed word/dword/signed dword) $7fff, -(word/signed word/dword/signed dword) $7fff, (word/signed word/dword/signed dword) $7fff, -(word/signed word/dword/signed dword) $7fff } (signed word) test_16s::divisor (signed word) test_16s::divisor#0 divisor zp ZP_WORD:19 3.0 (signed word[]) test_16s::divisors -(const signed word[]) test_16s::divisors#0 divisors = { (byte/signed byte/word/signed word/dword/signed dword) 5, -(byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 11, -(byte/signed byte/word/signed word/dword/signed dword) 13, -(byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 19 } +(const signed word[]) test_16s::divisors#0 divisors = { (byte/signed byte/word/signed word/dword/signed dword) 5, -(byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) $b, -(byte/signed byte/word/signed word/dword/signed dword) $d, -(byte/signed byte/word/signed word/dword/signed dword) $11, (byte/signed byte/word/signed word/dword/signed dword) $13 } (byte) test_16s::i (byte) test_16s::i#1 i zp ZP_BYTE:2 16.5 (byte) test_16s::i#10 i zp ZP_BYTE:2 1.76 @@ -342,11 +342,11 @@ (word) test_16u::dividend (word) test_16u::dividend#0 dividend zp ZP_WORD:5 4.714285714285714 (word[]) test_16u::dividends -(const word[]) test_16u::dividends#0 dividends = { (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535 } +(const word[]) test_16u::dividends#0 dividends = { (word/dword/signed dword) $ffff, (word/dword/signed dword) $ffff, (word/dword/signed dword) $ffff, (word/dword/signed dword) $ffff, (word/dword/signed dword) $ffff, (word/dword/signed dword) $ffff } (word) test_16u::divisor (word) test_16u::divisor#0 divisor zp ZP_WORD:12 3.0 (word[]) test_16u::divisors -(const word[]) test_16u::divisors#0 divisors = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 19 } +(const word[]) test_16u::divisors#0 divisors = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $11, (byte/signed byte/word/signed word/dword/signed dword) $13 } (byte) test_16u::i (byte) test_16u::i#1 i zp ZP_BYTE:2 16.5 (byte) test_16u::i#10 i zp ZP_BYTE:2 1.76 @@ -367,11 +367,11 @@ (signed byte) test_8s::dividend (signed byte) test_8s::dividend#0 dividend zp ZP_BYTE:7 4.714285714285714 (signed byte[]) test_8s::dividends -(const signed byte[]) test_8s::dividends#0 dividends = { (byte/signed byte/word/signed word/dword/signed dword) 127, -(byte/signed byte/word/signed word/dword/signed dword) 127, -(byte/signed byte/word/signed word/dword/signed dword) 127, (byte/signed byte/word/signed word/dword/signed dword) 127, (byte/signed byte/word/signed word/dword/signed dword) 127, (byte/signed byte/word/signed word/dword/signed dword) 127 } +(const signed byte[]) test_8s::dividends#0 dividends = { (byte/signed byte/word/signed word/dword/signed dword) $7f, -(byte/signed byte/word/signed word/dword/signed dword) $7f, -(byte/signed byte/word/signed word/dword/signed dword) $7f, (byte/signed byte/word/signed word/dword/signed dword) $7f, (byte/signed byte/word/signed word/dword/signed dword) $7f, (byte/signed byte/word/signed word/dword/signed dword) $7f } (signed byte) test_8s::divisor (signed byte) test_8s::divisor#0 divisor zp ZP_BYTE:21 3.0 (signed byte[]) test_8s::divisors -(const signed byte[]) test_8s::divisors#0 divisors = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, -(byte/signed byte/word/signed word/dword/signed dword) 11, -(byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 19 } +(const signed byte[]) test_8s::divisors#0 divisors = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, -(byte/signed byte/word/signed word/dword/signed dword) $b, -(byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $11, (byte/signed byte/word/signed word/dword/signed dword) $13 } (byte) test_8s::i (byte) test_8s::i#1 i zp ZP_BYTE:2 16.5 (byte) test_8s::i#10 i zp ZP_BYTE:2 1.76 @@ -393,11 +393,11 @@ (byte) test_8u::dividend (byte) test_8u::dividend#0 dividend zp ZP_BYTE:7 4.714285714285714 (byte[]) test_8u::dividends -(const byte[]) test_8u::dividends#0 dividends = { (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255 } +(const byte[]) test_8u::dividends#0 dividends = { (byte/word/signed word/dword/signed dword) $ff, (byte/word/signed word/dword/signed dword) $ff, (byte/word/signed word/dword/signed dword) $ff, (byte/word/signed word/dword/signed dword) $ff, (byte/word/signed word/dword/signed dword) $ff, (byte/word/signed word/dword/signed dword) $ff } (byte) test_8u::divisor (byte) test_8u::divisor#0 divisor zp ZP_BYTE:16 3.3000000000000003 (byte[]) test_8u::divisors -(const byte[]) test_8u::divisors#0 divisors = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 19 } +(const byte[]) test_8u::divisors#0 divisors = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) $b, (byte/signed byte/word/signed word/dword/signed dword) $d, (byte/signed byte/word/signed word/dword/signed dword) $11, (byte/signed byte/word/signed word/dword/signed dword) $13 } (byte) test_8u::i (byte) test_8u::i#1 i zp ZP_BYTE:2 11.0 (byte) test_8u::i#10 i zp ZP_BYTE:2 1.8333333333333333 diff --git a/src/test/ref/test-interrupt-notype.log b/src/test/ref/test-interrupt-notype.log index 7496478ee..dc18ef46c 100644 --- a/src/test/ref/test-interrupt-notype.log +++ b/src/test/ref/test-interrupt-notype.log @@ -2,9 +2,9 @@ Resolved forward reference irq to interrupt(KERNEL_MIN)(void()) irq() CONTROL FLOW GRAPH SSA @begin: scope:[] from - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) FGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) FGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 to:@2 main: scope:[main] from @2 (void()*~) main::$0 ← & interrupt(KERNEL_MIN)(void()) irq() @@ -54,9 +54,9 @@ interrupt(KERNEL_MIN)(void()) irq() Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const byte*) BGCOL#0 = ((byte*))53280 -Constant (const byte*) FGCOL#0 = ((byte*))53281 +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const byte*) BGCOL#0 = ((byte*))$d020 +Constant (const byte*) FGCOL#0 = ((byte*))$d021 Constant (const void()*) main::$0 = &irq Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [1] if(true) goto main::@2 @@ -255,11 +255,11 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d020 (byte*) FGCOL -(const byte*) FGCOL#0 FGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) FGCOL#0 FGCOL = ((byte*))(word/dword/signed dword) $d021 (void()**) KERNEL_IRQ -(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) 788 +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) $314 interrupt(KERNEL_MIN)(void()) irq() (label) irq::@return (void()) main() diff --git a/src/test/ref/test-interrupt-notype.sym b/src/test/ref/test-interrupt-notype.sym index 536f88f86..4601bdd4e 100644 --- a/src/test/ref/test-interrupt-notype.sym +++ b/src/test/ref/test-interrupt-notype.sym @@ -2,11 +2,11 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d020 (byte*) FGCOL -(const byte*) FGCOL#0 FGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) FGCOL#0 FGCOL = ((byte*))(word/dword/signed dword) $d021 (void()**) KERNEL_IRQ -(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) 788 +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) $314 interrupt(KERNEL_MIN)(void()) irq() (label) irq::@return (void()) main() diff --git a/src/test/ref/test-interrupt-volatile-write.cfg b/src/test/ref/test-interrupt-volatile-write.cfg index 6aeca221c..260fa2f52 100644 --- a/src/test/ref/test-interrupt-volatile-write.cfg +++ b/src/test/ref/test-interrupt-volatile-write.cfg @@ -14,7 +14,7 @@ main::@1: scope:[main] from main main::@2 main::@7 [5] (byte) col#14 ← phi( main/(byte) col#0 main::@7/(byte) col#1 ) to:main::@2 main::@2: scope:[main] from main::@1 - [6] if((byte) col#14<=(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@1 + [6] if((byte) col#14<=(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@1 to:main::@7 main::@7: scope:[main] from main::@2 [7] (byte) col#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 diff --git a/src/test/ref/test-interrupt-volatile-write.log b/src/test/ref/test-interrupt-volatile-write.log index 29fc29e6a..f471c5e3a 100644 --- a/src/test/ref/test-interrupt-volatile-write.log +++ b/src/test/ref/test-interrupt-volatile-write.log @@ -2,8 +2,8 @@ Resolved forward reference irq to interrupt(KERNEL_MIN)(void()) irq() CONTROL FLOW GRAPH SSA @begin: scope:[] from - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 (byte) col#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:@2 main: scope:[main] from @2 @@ -17,7 +17,7 @@ main::@1: scope:[main] from main main::@4 main::@7 to:main::@return main::@2: scope:[main] from main::@1 (byte) col#7 ← phi( main::@1/(byte) col#14 ) - (bool~) main::$1 ← (byte) col#7 > (byte/signed byte/word/signed word/dword/signed dword) 10 + (bool~) main::$1 ← (byte) col#7 > (byte/signed byte/word/signed word/dword/signed dword) $a (bool~) main::$2 ← ! (bool~) main::$1 if((bool~) main::$2) goto main::@4 to:main::@7 @@ -105,7 +105,7 @@ interrupt(KERNEL_MIN)(void()) irq() (label) main::@7 (label) main::@return -Inversing boolean not [10] (bool~) main::$2 ← (byte) col#7 <= (byte/signed byte/word/signed word/dword/signed dword) 10 from [9] (bool~) main::$1 ← (byte) col#7 > (byte/signed byte/word/signed word/dword/signed dword) 10 +Inversing boolean not [10] (bool~) main::$2 ← (byte) col#7 <= (byte/signed byte/word/signed word/dword/signed dword) $a from [9] (bool~) main::$1 ← (byte) col#7 > (byte/signed byte/word/signed word/dword/signed dword) $a Successful SSA optimization Pass2UnaryNotSimplification Alias (byte) col#14 = (byte) col#7 (byte) col#17 (byte) col#8 (byte) col#2 Alias (byte) col#10 = (byte) col#9 (byte) col#11 @@ -119,11 +119,11 @@ Redundant Phi (byte) col#16 (byte) col#0 Redundant Phi (byte) col#10 (byte) col#0 Redundant Phi (byte) col#13 (byte) col#14 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$2 [11] if((byte) col#14<=(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@4 +Simple Condition (bool~) main::$2 [11] if((byte) col#14<=(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@4 Simple Condition (bool~) irq::$0 [21] if((byte) col#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto irq::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const byte*) BGCOL#0 = ((byte*))53280 +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const byte*) BGCOL#0 = ((byte*))$d020 Constant (const void()*) main::$0 = &irq Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [3] if(true) goto main::@2 @@ -165,7 +165,7 @@ main::@1: scope:[main] from main main::@2 main::@7 [5] (byte) col#14 ← phi( main/(byte) col#0 main::@7/(byte) col#1 ) to:main::@2 main::@2: scope:[main] from main::@1 - [6] if((byte) col#14<=(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@1 + [6] if((byte) col#14<=(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@1 to:main::@7 main::@7: scope:[main] from main::@2 [7] (byte) col#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -261,7 +261,7 @@ main: { jmp b2 //SEG16 main::@2 b2: - //SEG17 [6] if((byte) col#14<=(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@1 -- vbuz1_le_vbuc1_then_la1 + //SEG17 [6] if((byte) col#14<=(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@1 -- vbuz1_le_vbuc1_then_la1 lda #$a cmp col bcs b1_from_b2 @@ -310,7 +310,7 @@ irq: { REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] (byte) col#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ col#0 ] ( ) always clobbers reg byte a Statement [4] *((const void()**) KERNEL_IRQ#0) ← &interrupt(KERNEL_MIN)(void()) irq() [ col#0 ] ( main:2 [ col#0 ] ) always clobbers reg byte a -Statement [6] if((byte) col#14<=(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@1 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [6] if((byte) col#14<=(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@1 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [7] (byte) col#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ col#1 ] ( main:2 [ col#1 ] ) always clobbers reg byte a Statement asm { lda$dc0d } always clobbers reg byte a Statement [9] *((const byte*) BGCOL#0) ← (byte) col#0 [ col#0 ] ( [ col#0 ] ) always clobbers reg byte a @@ -387,7 +387,7 @@ main: { jmp b2 //SEG16 main::@2 b2: - //SEG17 [6] if((byte) col#14<=(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@1 -- vbuz1_le_vbuc1_then_la1 + //SEG17 [6] if((byte) col#14<=(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@1 -- vbuz1_le_vbuc1_then_la1 lda #$a cmp col bcs b1_from_b2 @@ -472,9 +472,9 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d020 (void()**) KERNEL_IRQ -(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) 788 +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) $314 (byte) col (byte) col#0 col zp ZP_BYTE:2 1.9999999999999998 (byte) col#1 col zp ZP_BYTE:2 22.0 @@ -531,7 +531,7 @@ main: { //SEG15 main::@1 //SEG16 main::@2 b2: - //SEG17 [6] if((byte) col#14<=(byte/signed byte/word/signed word/dword/signed dword) 10) goto main::@1 -- vbuz1_le_vbuc1_then_la1 + //SEG17 [6] if((byte) col#14<=(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@1 -- vbuz1_le_vbuc1_then_la1 lda #$a cmp col bcs b2 diff --git a/src/test/ref/test-interrupt-volatile-write.sym b/src/test/ref/test-interrupt-volatile-write.sym index b2cb87b29..08a3f1c88 100644 --- a/src/test/ref/test-interrupt-volatile-write.sym +++ b/src/test/ref/test-interrupt-volatile-write.sym @@ -2,9 +2,9 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d020 (void()**) KERNEL_IRQ -(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) 788 +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) $314 (byte) col (byte) col#0 col zp ZP_BYTE:2 1.9999999999999998 (byte) col#1 col zp ZP_BYTE:2 22.0 diff --git a/src/test/ref/test-interrupt-volatile.log b/src/test/ref/test-interrupt-volatile.log index b297c53d6..eaa0ebdaa 100644 --- a/src/test/ref/test-interrupt-volatile.log +++ b/src/test/ref/test-interrupt-volatile.log @@ -2,8 +2,8 @@ Resolved forward reference irq to interrupt(KERNEL_MIN)(void()) irq() CONTROL FLOW GRAPH SSA @begin: scope:[] from - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 (byte) col#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:@2 main: scope:[main] from @2 @@ -79,8 +79,8 @@ Redundant Phi (byte) col#10 (byte) col#0 Redundant Phi (byte) col#6 (byte) col#0 Redundant Phi (byte) col#3 (byte) col#2 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const byte*) BGCOL#0 = ((byte*))53280 +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const byte*) BGCOL#0 = ((byte*))$d020 Constant (const void()*) main::$0 = &irq Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [3] if(true) goto main::@2 @@ -315,9 +315,9 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d020 (void()**) KERNEL_IRQ -(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) 788 +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) $314 (byte) col (byte) col#0 col zp ZP_BYTE:2 1.5 (byte) col#1 col zp ZP_BYTE:2 22.0 diff --git a/src/test/ref/test-interrupt-volatile.sym b/src/test/ref/test-interrupt-volatile.sym index 18646070f..205ac614c 100644 --- a/src/test/ref/test-interrupt-volatile.sym +++ b/src/test/ref/test-interrupt-volatile.sym @@ -2,9 +2,9 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d020 (void()**) KERNEL_IRQ -(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) 788 +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) $314 (byte) col (byte) col#0 col zp ZP_BYTE:2 1.5 (byte) col#1 col zp ZP_BYTE:2 22.0 diff --git a/src/test/ref/test-interrupt.log b/src/test/ref/test-interrupt.log index 7496478ee..dc18ef46c 100644 --- a/src/test/ref/test-interrupt.log +++ b/src/test/ref/test-interrupt.log @@ -2,9 +2,9 @@ Resolved forward reference irq to interrupt(KERNEL_MIN)(void()) irq() CONTROL FLOW GRAPH SSA @begin: scope:[] from - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) FGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) FGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 to:@2 main: scope:[main] from @2 (void()*~) main::$0 ← & interrupt(KERNEL_MIN)(void()) irq() @@ -54,9 +54,9 @@ interrupt(KERNEL_MIN)(void()) irq() Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const byte*) BGCOL#0 = ((byte*))53280 -Constant (const byte*) FGCOL#0 = ((byte*))53281 +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const byte*) BGCOL#0 = ((byte*))$d020 +Constant (const byte*) FGCOL#0 = ((byte*))$d021 Constant (const void()*) main::$0 = &irq Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [1] if(true) goto main::@2 @@ -255,11 +255,11 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d020 (byte*) FGCOL -(const byte*) FGCOL#0 FGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) FGCOL#0 FGCOL = ((byte*))(word/dword/signed dword) $d021 (void()**) KERNEL_IRQ -(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) 788 +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) $314 interrupt(KERNEL_MIN)(void()) irq() (label) irq::@return (void()) main() diff --git a/src/test/ref/test-interrupt.sym b/src/test/ref/test-interrupt.sym index 536f88f86..4601bdd4e 100644 --- a/src/test/ref/test-interrupt.sym +++ b/src/test/ref/test-interrupt.sym @@ -2,11 +2,11 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d020 (byte*) FGCOL -(const byte*) FGCOL#0 FGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) FGCOL#0 FGCOL = ((byte*))(word/dword/signed dword) $d021 (void()**) KERNEL_IRQ -(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) 788 +(const void()**) KERNEL_IRQ#0 KERNEL_IRQ = ((void()**))(word/signed word/dword/signed dword) $314 interrupt(KERNEL_MIN)(void()) irq() (label) irq::@return (void()) main() diff --git a/src/test/ref/test-kasm-pc.log b/src/test/ref/test-kasm-pc.log index d6850f3ea..b7f9d180b 100644 --- a/src/test/ref/test-kasm-pc.log +++ b/src/test/ref/test-kasm-pc.log @@ -1,11 +1,11 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) TABLE#0 ← ((byte*)) (word/signed word/dword/signed dword) 8192 + (byte*) TABLE#0 ← ((byte*)) (word/signed word/dword/signed dword) $2000 to:@1 main: scope:[main] from @1 (byte*) TABLE#4 ← phi( @1/(byte*) TABLE#2 ) - (byte*) main::BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 + (byte*) main::BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main main::@2 @@ -73,8 +73,8 @@ Redundant Phi (byte*) TABLE#4 (byte*) TABLE#0 Redundant Phi (byte*) TABLE#1 (byte*) TABLE#4 Redundant Phi (byte*) main::BORDERCOL#1 (byte*) main::BORDERCOL#0 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte*) TABLE#0 = ((byte*))8192 -Constant (const byte*) main::BORDERCOL#0 = ((byte*))53280 +Constant (const byte*) TABLE#0 = ((byte*))$2000 +Constant (const byte*) main::BORDERCOL#0 = ((byte*))$d020 Constant (const byte) main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [1] if(true) goto main::@2 @@ -279,12 +279,12 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) TABLE -(const byte*) TABLE#0 TABLE = ((byte*))(word/signed word/dword/signed dword) 8192 +(const byte*) TABLE#0 TABLE = ((byte*))(word/signed word/dword/signed dword) $2000 (void()) main() (label) main::@1 (label) main::@2 (byte*) main::BORDERCOL -(const byte*) main::BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) main::BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) main::i (byte) main::i#1 reg byte x 22.0 (byte) main::i#2 reg byte x 16.5 diff --git a/src/test/ref/test-kasm-pc.sym b/src/test/ref/test-kasm-pc.sym index cdb798be9..0dfb0ff47 100644 --- a/src/test/ref/test-kasm-pc.sym +++ b/src/test/ref/test-kasm-pc.sym @@ -2,12 +2,12 @@ (label) @begin (label) @end (byte*) TABLE -(const byte*) TABLE#0 TABLE = ((byte*))(word/signed word/dword/signed dword) 8192 +(const byte*) TABLE#0 TABLE = ((byte*))(word/signed word/dword/signed dword) $2000 (void()) main() (label) main::@1 (label) main::@2 (byte*) main::BORDERCOL -(const byte*) main::BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(const byte*) main::BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) $d020 (byte) main::i (byte) main::i#1 reg byte x 22.0 (byte) main::i#2 reg byte x 16.5 diff --git a/src/test/ref/test-keyboard-space.cfg b/src/test/ref/test-keyboard-space.cfg index dfc712c55..b2276b4da 100644 --- a/src/test/ref/test-keyboard-space.cfg +++ b/src/test/ref/test-keyboard-space.cfg @@ -12,7 +12,7 @@ main: scope:[main] from @12 [5] call keyboard_init to:main::@4 main::@4: scope:[main] from main main::@10 main::@4 main::@5 - [6] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 + [6] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 to:main::@9 main::@9: scope:[main] from main::@4 [7] phi() @@ -49,7 +49,7 @@ keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matri [22] return to:@return keyboard_init: scope:[keyboard_init] from main - [23] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 + [23] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) $ff [24] *((const 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 diff --git a/src/test/ref/test-keyboard-space.log b/src/test/ref/test-keyboard-space.log index 1f9979e03..47c5b20b9 100644 --- a/src/test/ref/test-keyboard-space.log +++ b/src/test/ref/test-keyboard-space.log @@ -5,66 +5,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -75,12 +75,12 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@4 @4: scope:[] from @begin (byte) KEY_DEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -93,66 +93,66 @@ CONTROL FLOW GRAPH SSA (byte) KEY_CRSR_DOWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) KEY_3#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) KEY_W#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) KEY_A#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) KEY_4#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) KEY_Z#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) KEY_S#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) KEY_E#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) KEY_LSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) KEY_5#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte) KEY_R#0 ← (byte/signed byte/word/signed word/dword/signed dword) 17 - (byte) KEY_D#0 ← (byte/signed byte/word/signed word/dword/signed dword) 18 - (byte) KEY_6#0 ← (byte/signed byte/word/signed word/dword/signed dword) 19 - (byte) KEY_C#0 ← (byte/signed byte/word/signed word/dword/signed dword) 20 - (byte) KEY_F#0 ← (byte/signed byte/word/signed word/dword/signed dword) 21 - (byte) KEY_T#0 ← (byte/signed byte/word/signed word/dword/signed dword) 22 - (byte) KEY_X#0 ← (byte/signed byte/word/signed word/dword/signed dword) 23 - (byte) KEY_7#0 ← (byte/signed byte/word/signed word/dword/signed dword) 24 - (byte) KEY_Y#0 ← (byte/signed byte/word/signed word/dword/signed dword) 25 - (byte) KEY_G#0 ← (byte/signed byte/word/signed word/dword/signed dword) 26 - (byte) KEY_8#0 ← (byte/signed byte/word/signed word/dword/signed dword) 27 - (byte) KEY_B#0 ← (byte/signed byte/word/signed word/dword/signed dword) 28 - (byte) KEY_H#0 ← (byte/signed byte/word/signed word/dword/signed dword) 29 - (byte) KEY_U#0 ← (byte/signed byte/word/signed word/dword/signed dword) 30 - (byte) KEY_V#0 ← (byte/signed byte/word/signed word/dword/signed dword) 31 - (byte) KEY_9#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) KEY_I#0 ← (byte/signed byte/word/signed word/dword/signed dword) 33 - (byte) KEY_J#0 ← (byte/signed byte/word/signed word/dword/signed dword) 34 - (byte) KEY_0#0 ← (byte/signed byte/word/signed word/dword/signed dword) 35 - (byte) KEY_M#0 ← (byte/signed byte/word/signed word/dword/signed dword) 36 - (byte) KEY_K#0 ← (byte/signed byte/word/signed word/dword/signed dword) 37 - (byte) KEY_O#0 ← (byte/signed byte/word/signed word/dword/signed dword) 38 - (byte) KEY_N#0 ← (byte/signed byte/word/signed word/dword/signed dword) 39 - (byte) KEY_PLUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte) KEY_P#0 ← (byte/signed byte/word/signed word/dword/signed dword) 41 - (byte) KEY_L#0 ← (byte/signed byte/word/signed word/dword/signed dword) 42 - (byte) KEY_MINUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 43 - (byte) KEY_DOT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 44 - (byte) KEY_COLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) 45 - (byte) KEY_AT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 46 - (byte) KEY_COMMA#0 ← (byte/signed byte/word/signed word/dword/signed dword) 47 - (byte) KEY_POUND#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) KEY_ASTERISK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) KEY_SEMICOLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 - (byte) KEY_HOME#0 ← (byte/signed byte/word/signed word/dword/signed dword) 51 - (byte) KEY_RSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 52 - (byte) KEY_EQUALS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) KEY_ARROW_UP#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) KEY_SLASH#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte) KEY_1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 56 - (byte) KEY_ARROW_LEFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 57 - (byte) KEY_CTRL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 58 - (byte) KEY_2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 59 - (byte) KEY_SPACE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 60 - (byte) KEY_COMMODORE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 61 - (byte) KEY_Q#0 ← (byte/signed byte/word/signed word/dword/signed dword) 62 - (byte) KEY_RUNSTOP#0 ← (byte/signed byte/word/signed word/dword/signed dword) 63 - (byte[]) keyboard_char_keycodes#0 ← { (byte) KEY_AT#0, (byte) KEY_A#0, (byte) KEY_B#0, (byte) KEY_C#0, (byte) KEY_D#0, (byte) KEY_E#0, (byte) KEY_F#0, (byte) KEY_G#0, (byte) KEY_H#0, (byte) KEY_I#0, (byte) KEY_J#0, (byte) KEY_K#0, (byte) KEY_L#0, (byte) KEY_M#0, (byte) KEY_N#0, (byte) KEY_O#0, (byte) KEY_P#0, (byte) KEY_Q#0, (byte) KEY_R#0, (byte) KEY_S#0, (byte) KEY_T#0, (byte) KEY_U#0, (byte) KEY_V#0, (byte) KEY_W#0, (byte) KEY_X#0, (byte) KEY_Y#0, (byte) KEY_Z#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP#0, (byte) KEY_ARROW_LEFT#0, (byte) KEY_SPACE#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK#0, (byte) KEY_PLUS#0, (byte) KEY_COMMA#0, (byte) KEY_MINUS#0, (byte) KEY_DOT#0, (byte) KEY_SLASH#0, (byte) KEY_0#0, (byte) KEY_1#0, (byte) KEY_2#0, (byte) KEY_3#0, (byte) KEY_4#0, (byte) KEY_5#0, (byte) KEY_6#0, (byte) KEY_7#0, (byte) KEY_8#0, (byte) KEY_9#0, (byte) KEY_COLON#0, (byte) KEY_SEMICOLON#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } - (byte[8]) keyboard_matrix_row_bitmask#0 ← { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } - (byte[8]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } + (byte) KEY_A#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) KEY_4#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) KEY_Z#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) KEY_S#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) KEY_E#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) KEY_LSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f + (byte) KEY_5#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte) KEY_R#0 ← (byte/signed byte/word/signed word/dword/signed dword) $11 + (byte) KEY_D#0 ← (byte/signed byte/word/signed word/dword/signed dword) $12 + (byte) KEY_6#0 ← (byte/signed byte/word/signed word/dword/signed dword) $13 + (byte) KEY_C#0 ← (byte/signed byte/word/signed word/dword/signed dword) $14 + (byte) KEY_F#0 ← (byte/signed byte/word/signed word/dword/signed dword) $15 + (byte) KEY_T#0 ← (byte/signed byte/word/signed word/dword/signed dword) $16 + (byte) KEY_X#0 ← (byte/signed byte/word/signed word/dword/signed dword) $17 + (byte) KEY_7#0 ← (byte/signed byte/word/signed word/dword/signed dword) $18 + (byte) KEY_Y#0 ← (byte/signed byte/word/signed word/dword/signed dword) $19 + (byte) KEY_G#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1a + (byte) KEY_8#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1b + (byte) KEY_B#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1c + (byte) KEY_H#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1d + (byte) KEY_U#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1e + (byte) KEY_V#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1f + (byte) KEY_9#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) KEY_I#0 ← (byte/signed byte/word/signed word/dword/signed dword) $21 + (byte) KEY_J#0 ← (byte/signed byte/word/signed word/dword/signed dword) $22 + (byte) KEY_0#0 ← (byte/signed byte/word/signed word/dword/signed dword) $23 + (byte) KEY_M#0 ← (byte/signed byte/word/signed word/dword/signed dword) $24 + (byte) KEY_K#0 ← (byte/signed byte/word/signed word/dword/signed dword) $25 + (byte) KEY_O#0 ← (byte/signed byte/word/signed word/dword/signed dword) $26 + (byte) KEY_N#0 ← (byte/signed byte/word/signed word/dword/signed dword) $27 + (byte) KEY_PLUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) KEY_P#0 ← (byte/signed byte/word/signed word/dword/signed dword) $29 + (byte) KEY_L#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2a + (byte) KEY_MINUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2b + (byte) KEY_DOT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2c + (byte) KEY_COLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2d + (byte) KEY_AT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2e + (byte) KEY_COMMA#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2f + (byte) KEY_POUND#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) KEY_ASTERISK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) KEY_SEMICOLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) $32 + (byte) KEY_HOME#0 ← (byte/signed byte/word/signed word/dword/signed dword) $33 + (byte) KEY_RSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $34 + (byte) KEY_EQUALS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) KEY_ARROW_UP#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) KEY_SLASH#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte) KEY_1#0 ← (byte/signed byte/word/signed word/dword/signed dword) $38 + (byte) KEY_ARROW_LEFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $39 + (byte) KEY_CTRL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3a + (byte) KEY_2#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3b + (byte) KEY_SPACE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3c + (byte) KEY_COMMODORE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3d + (byte) KEY_Q#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3e + (byte) KEY_RUNSTOP#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3f + (byte[]) keyboard_char_keycodes#0 ← { (byte) KEY_AT#0, (byte) KEY_A#0, (byte) KEY_B#0, (byte) KEY_C#0, (byte) KEY_D#0, (byte) KEY_E#0, (byte) KEY_F#0, (byte) KEY_G#0, (byte) KEY_H#0, (byte) KEY_I#0, (byte) KEY_J#0, (byte) KEY_K#0, (byte) KEY_L#0, (byte) KEY_M#0, (byte) KEY_N#0, (byte) KEY_O#0, (byte) KEY_P#0, (byte) KEY_Q#0, (byte) KEY_R#0, (byte) KEY_S#0, (byte) KEY_T#0, (byte) KEY_U#0, (byte) KEY_V#0, (byte) KEY_W#0, (byte) KEY_X#0, (byte) KEY_Y#0, (byte) KEY_Z#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_POUND#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_ARROW_UP#0, (byte) KEY_ARROW_LEFT#0, (byte) KEY_SPACE#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_ASTERISK#0, (byte) KEY_PLUS#0, (byte) KEY_COMMA#0, (byte) KEY_MINUS#0, (byte) KEY_DOT#0, (byte) KEY_SLASH#0, (byte) KEY_0#0, (byte) KEY_1#0, (byte) KEY_2#0, (byte) KEY_3#0, (byte) KEY_4#0, (byte) KEY_5#0, (byte) KEY_6#0, (byte) KEY_7#0, (byte) KEY_8#0, (byte) KEY_9#0, (byte) KEY_COLON#0, (byte) KEY_SEMICOLON#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_EQUALS#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f } + (byte[8]) keyboard_matrix_row_bitmask#0 ← { (byte/word/signed word/dword/signed dword) $fe, (byte/word/signed word/dword/signed dword) $fd, (byte/word/signed word/dword/signed dword) $fb, (byte/word/signed word/dword/signed dword) $f7, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $bf, (byte/signed byte/word/signed word/dword/signed dword) $7f } + (byte[8]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $10, (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/word/signed word/dword/signed dword) $80 } to:@8 keyboard_init: scope:[keyboard_init] from main - *((byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 + *((byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) $ff *((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 @@ -215,7 +215,7 @@ main::@1: scope:[main] from main::@10 main::@13 main::@5 main::@2: scope:[main] from main::@1 to:main::@4 main::@4: scope:[main] from main::@2 main::@4 - (bool~) main::$1 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 255 + (bool~) main::$1 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) $ff if((bool~) main::$1) goto main::@4 to:main::@9 main::@9: scope:[main] from main::@4 @@ -629,72 +629,72 @@ Successful SSA optimization Pass2AliasElimination Redundant Phi (byte) keyboard_matrix_read::rowid#1 (byte) keyboard_matrix_read::rowid#0 Redundant Phi (byte) keyboard_key_pressed::key#1 (byte) keyboard_key_pressed::key#0 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$1 [185] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 +Simple Condition (bool~) main::$1 [185] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 Simple Condition (bool~) main::$3 [192] if((byte~) main::$2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@5 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -705,12 +705,12 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f Constant (const byte) KEY_DEL#0 = 0 Constant (const byte) KEY_RETURN#0 = 1 Constant (const byte) KEY_CRSR_RIGHT#0 = 2 @@ -721,62 +721,62 @@ Constant (const byte) KEY_F5#0 = 6 Constant (const byte) KEY_CRSR_DOWN#0 = 7 Constant (const byte) KEY_3#0 = 8 Constant (const byte) KEY_W#0 = 9 -Constant (const byte) KEY_A#0 = 10 -Constant (const byte) KEY_4#0 = 11 -Constant (const byte) KEY_Z#0 = 12 -Constant (const byte) KEY_S#0 = 13 -Constant (const byte) KEY_E#0 = 14 -Constant (const byte) KEY_LSHIFT#0 = 15 -Constant (const byte) KEY_5#0 = 16 -Constant (const byte) KEY_R#0 = 17 -Constant (const byte) KEY_D#0 = 18 -Constant (const byte) KEY_6#0 = 19 -Constant (const byte) KEY_C#0 = 20 -Constant (const byte) KEY_F#0 = 21 -Constant (const byte) KEY_T#0 = 22 -Constant (const byte) KEY_X#0 = 23 -Constant (const byte) KEY_7#0 = 24 -Constant (const byte) KEY_Y#0 = 25 -Constant (const byte) KEY_G#0 = 26 -Constant (const byte) KEY_8#0 = 27 -Constant (const byte) KEY_B#0 = 28 -Constant (const byte) KEY_H#0 = 29 -Constant (const byte) KEY_U#0 = 30 -Constant (const byte) KEY_V#0 = 31 -Constant (const byte) KEY_9#0 = 32 -Constant (const byte) KEY_I#0 = 33 -Constant (const byte) KEY_J#0 = 34 -Constant (const byte) KEY_0#0 = 35 -Constant (const byte) KEY_M#0 = 36 -Constant (const byte) KEY_K#0 = 37 -Constant (const byte) KEY_O#0 = 38 -Constant (const byte) KEY_N#0 = 39 -Constant (const byte) KEY_PLUS#0 = 40 -Constant (const byte) KEY_P#0 = 41 -Constant (const byte) KEY_L#0 = 42 -Constant (const byte) KEY_MINUS#0 = 43 -Constant (const byte) KEY_DOT#0 = 44 -Constant (const byte) KEY_COLON#0 = 45 -Constant (const byte) KEY_AT#0 = 46 -Constant (const byte) KEY_COMMA#0 = 47 -Constant (const byte) KEY_POUND#0 = 48 -Constant (const byte) KEY_ASTERISK#0 = 49 -Constant (const byte) KEY_SEMICOLON#0 = 50 -Constant (const byte) KEY_HOME#0 = 51 -Constant (const byte) KEY_RSHIFT#0 = 52 -Constant (const byte) KEY_EQUALS#0 = 53 -Constant (const byte) KEY_ARROW_UP#0 = 54 -Constant (const byte) KEY_SLASH#0 = 55 -Constant (const byte) KEY_1#0 = 56 -Constant (const byte) KEY_ARROW_LEFT#0 = 57 -Constant (const byte) KEY_CTRL#0 = 58 -Constant (const byte) KEY_2#0 = 59 -Constant (const byte) KEY_SPACE#0 = 60 -Constant (const byte) KEY_COMMODORE#0 = 61 -Constant (const byte) KEY_Q#0 = 62 -Constant (const byte) KEY_RUNSTOP#0 = 63 -Constant (const byte[8]) keyboard_matrix_row_bitmask#0 = { 254, 253, 251, 247, 239, 223, 191, 127 } -Constant (const byte[8]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, 16, 32, 64, 128 } +Constant (const byte) KEY_A#0 = $a +Constant (const byte) KEY_4#0 = $b +Constant (const byte) KEY_Z#0 = $c +Constant (const byte) KEY_S#0 = $d +Constant (const byte) KEY_E#0 = $e +Constant (const byte) KEY_LSHIFT#0 = $f +Constant (const byte) KEY_5#0 = $10 +Constant (const byte) KEY_R#0 = $11 +Constant (const byte) KEY_D#0 = $12 +Constant (const byte) KEY_6#0 = $13 +Constant (const byte) KEY_C#0 = $14 +Constant (const byte) KEY_F#0 = $15 +Constant (const byte) KEY_T#0 = $16 +Constant (const byte) KEY_X#0 = $17 +Constant (const byte) KEY_7#0 = $18 +Constant (const byte) KEY_Y#0 = $19 +Constant (const byte) KEY_G#0 = $1a +Constant (const byte) KEY_8#0 = $1b +Constant (const byte) KEY_B#0 = $1c +Constant (const byte) KEY_H#0 = $1d +Constant (const byte) KEY_U#0 = $1e +Constant (const byte) KEY_V#0 = $1f +Constant (const byte) KEY_9#0 = $20 +Constant (const byte) KEY_I#0 = $21 +Constant (const byte) KEY_J#0 = $22 +Constant (const byte) KEY_0#0 = $23 +Constant (const byte) KEY_M#0 = $24 +Constant (const byte) KEY_K#0 = $25 +Constant (const byte) KEY_O#0 = $26 +Constant (const byte) KEY_N#0 = $27 +Constant (const byte) KEY_PLUS#0 = $28 +Constant (const byte) KEY_P#0 = $29 +Constant (const byte) KEY_L#0 = $2a +Constant (const byte) KEY_MINUS#0 = $2b +Constant (const byte) KEY_DOT#0 = $2c +Constant (const byte) KEY_COLON#0 = $2d +Constant (const byte) KEY_AT#0 = $2e +Constant (const byte) KEY_COMMA#0 = $2f +Constant (const byte) KEY_POUND#0 = $30 +Constant (const byte) KEY_ASTERISK#0 = $31 +Constant (const byte) KEY_SEMICOLON#0 = $32 +Constant (const byte) KEY_HOME#0 = $33 +Constant (const byte) KEY_RSHIFT#0 = $34 +Constant (const byte) KEY_EQUALS#0 = $35 +Constant (const byte) KEY_ARROW_UP#0 = $36 +Constant (const byte) KEY_SLASH#0 = $37 +Constant (const byte) KEY_1#0 = $38 +Constant (const byte) KEY_ARROW_LEFT#0 = $39 +Constant (const byte) KEY_CTRL#0 = $3a +Constant (const byte) KEY_2#0 = $3b +Constant (const byte) KEY_SPACE#0 = $3c +Constant (const byte) KEY_COMMODORE#0 = $3d +Constant (const byte) KEY_Q#0 = $3e +Constant (const byte) KEY_RUNSTOP#0 = $3f +Constant (const byte[8]) keyboard_matrix_row_bitmask#0 = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f } +Constant (const byte[8]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, $10, $20, $40, $80 } Constant (const byte[8]) keyboard_events#0 = { fill( 8, 0) } Constant (const byte) keyboard_events_size#0 = 0 Constant (const byte) keyboard_modifiers#0 = 0 @@ -786,7 +786,7 @@ Constant (const byte) KEY_MODIFIER_CTRL#0 = 4 Constant (const byte) KEY_MODIFIER_COMMODORE#0 = 8 Constant (const byte[8]) keyboard_scan_values#0 = { fill( 8, 0) } Successful SSA optimization Pass2ConstantIdentification -Constant (const byte[]) keyboard_char_keycodes#0 = { KEY_AT#0, KEY_A#0, KEY_B#0, KEY_C#0, KEY_D#0, KEY_E#0, KEY_F#0, KEY_G#0, KEY_H#0, KEY_I#0, KEY_J#0, KEY_K#0, KEY_L#0, KEY_M#0, KEY_N#0, KEY_O#0, KEY_P#0, KEY_Q#0, KEY_R#0, KEY_S#0, KEY_T#0, KEY_U#0, KEY_V#0, KEY_W#0, KEY_X#0, KEY_Y#0, KEY_Z#0, 63, KEY_POUND#0, 63, KEY_ARROW_UP#0, KEY_ARROW_LEFT#0, KEY_SPACE#0, 63, 63, 63, 63, 63, 63, 63, 63, 63, KEY_ASTERISK#0, KEY_PLUS#0, KEY_COMMA#0, KEY_MINUS#0, KEY_DOT#0, KEY_SLASH#0, KEY_0#0, KEY_1#0, KEY_2#0, KEY_3#0, KEY_4#0, KEY_5#0, KEY_6#0, KEY_7#0, KEY_8#0, KEY_9#0, KEY_COLON#0, KEY_SEMICOLON#0, 63, KEY_EQUALS#0, 63, 63 } +Constant (const byte[]) keyboard_char_keycodes#0 = { KEY_AT#0, KEY_A#0, KEY_B#0, KEY_C#0, KEY_D#0, KEY_E#0, KEY_F#0, KEY_G#0, KEY_H#0, KEY_I#0, KEY_J#0, KEY_K#0, KEY_L#0, KEY_M#0, KEY_N#0, KEY_O#0, KEY_P#0, KEY_Q#0, KEY_R#0, KEY_S#0, KEY_T#0, KEY_U#0, KEY_V#0, KEY_W#0, KEY_X#0, KEY_Y#0, KEY_Z#0, $3f, KEY_POUND#0, $3f, KEY_ARROW_UP#0, KEY_ARROW_LEFT#0, KEY_SPACE#0, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, KEY_ASTERISK#0, KEY_PLUS#0, KEY_COMMA#0, KEY_MINUS#0, KEY_DOT#0, KEY_SLASH#0, KEY_0#0, KEY_1#0, KEY_2#0, KEY_3#0, KEY_4#0, KEY_5#0, KEY_6#0, KEY_7#0, KEY_8#0, KEY_9#0, KEY_COLON#0, KEY_SEMICOLON#0, $3f, KEY_EQUALS#0, $3f, $3f } Constant (const byte) KEY_MODIFIER_SHIFT#0 = KEY_MODIFIER_LSHIFT#0|KEY_MODIFIER_RSHIFT#0 Constant (const byte) keyboard_key_pressed::key#0 = KEY_SPACE#0 Successful SSA optimization Pass2ConstantIdentification @@ -846,7 +846,7 @@ main: scope:[main] from @12 [5] call keyboard_init to:main::@4 main::@4: scope:[main] from main main::@10 main::@4 main::@5 - [6] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 + [6] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 to:main::@9 main::@9: scope:[main] from main::@4 [7] phi() @@ -883,7 +883,7 @@ keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matri [22] return to:@return keyboard_init: scope:[keyboard_init] from main - [23] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 + [23] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) $ff [24] *((const 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 @@ -1131,7 +1131,7 @@ main: { jmp b4 //SEG12 main::@4 b4: - //SEG13 [6] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG13 [6] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -1228,7 +1228,7 @@ keyboard_matrix_read: { //SEG39 keyboard_init // Initialize keyboard reading by setting CIA#$ Data Direction Registers keyboard_init: { - //SEG40 [23] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 -- _deref_pbuc1=vbuc2 + //SEG40 [23] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) $ff -- _deref_pbuc1=vbuc2 // Keyboard Matrix Columns Write Mode lda #$ff sta CIA1_PORT_A_DDR @@ -1248,13 +1248,13 @@ keyboard_init: { keyboard_matrix_col_bitmask: .byte 1, 2, 4, 8, $10, $20, $40, $80 REGISTER UPLIFT POTENTIAL REGISTERS -Statement [6] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [6] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [12] *((const byte*) BGCOL#0) ← (const byte) BLUE#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [13] *((const byte*) BGCOL#0) ← (const byte) GREEN#0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [18] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0+(const byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:8 [ keyboard_key_pressed::return#0 ] ) always clobbers reg byte a Statement [20] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0+(const byte) keyboard_key_pressed::rowidx#0) [ ] ( main:2::keyboard_key_pressed:8::keyboard_matrix_read:15 [ ] ) always clobbers reg byte a Statement [21] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_key_pressed:8::keyboard_matrix_read:15 [ keyboard_matrix_read::return#0 ] ) always clobbers reg byte a -Statement [23] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:2::keyboard_init:5 [ ] ) always clobbers reg byte a +Statement [23] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) $ff [ ] ( main:2::keyboard_init:5 [ ] ) always clobbers reg byte a Statement [24] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::keyboard_init:5 [ ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ keyboard_key_pressed::return#2 ] : zp ZP_BYTE:2 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:3 [ main::$2 ] : zp ZP_BYTE:3 , reg byte a , reg byte x , reg byte y , @@ -1320,7 +1320,7 @@ main: { jmp b4 //SEG12 main::@4 b4: - //SEG13 [6] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG13 [6] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -1400,7 +1400,7 @@ keyboard_matrix_read: { //SEG39 keyboard_init // Initialize keyboard reading by setting CIA#$ Data Direction Registers keyboard_init: { - //SEG40 [23] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 -- _deref_pbuc1=vbuc2 + //SEG40 [23] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) $ff -- _deref_pbuc1=vbuc2 // Keyboard Matrix Columns Write Mode lda #$ff sta CIA1_PORT_A_DDR @@ -1458,7 +1458,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL1 (byte*) BGCOL2 (byte*) BGCOL3 @@ -1471,13 +1471,13 @@ FINAL SYMBOL TABLE (byte*) CHARGEN (byte*) CIA1_INTERRUPT (byte*) CIA1_PORT_A -(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) 56320 +(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) $dc00 (byte*) CIA1_PORT_A_DDR -(const byte*) CIA1_PORT_A_DDR#0 CIA1_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56322 +(const byte*) CIA1_PORT_A_DDR#0 CIA1_PORT_A_DDR = ((byte*))(word/dword/signed dword) $dc02 (byte*) CIA1_PORT_B -(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) 56321 +(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) $dc01 (byte*) CIA1_PORT_B_DDR -(const byte*) CIA1_PORT_B_DDR#0 CIA1_PORT_B_DDR = ((byte*))(word/dword/signed dword) 56323 +(const byte*) CIA1_PORT_B_DDR#0 CIA1_PORT_B_DDR = ((byte*))(word/dword/signed dword) $dc03 (byte*) CIA2_INTERRUPT (byte*) CIA2_PORT_A (byte*) CIA2_PORT_A_DDR @@ -1563,7 +1563,7 @@ FINAL SYMBOL TABLE (byte) KEY_SEMICOLON (byte) KEY_SLASH (byte) KEY_SPACE -(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) 60 +(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) $3c (byte) KEY_T (byte) KEY_U (byte) KEY_V @@ -1588,7 +1588,7 @@ FINAL SYMBOL TABLE (byte) PROCPORT_RAM_IO (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE @@ -1632,7 +1632,7 @@ FINAL SYMBOL TABLE (byte) keyboard_key_pressed::rowidx (const byte) keyboard_key_pressed::rowidx#0 rowidx = (const byte) KEY_SPACE#0>>(byte/signed byte/word/signed word/dword/signed dword) 3 (byte[8]) keyboard_matrix_col_bitmask -(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $10, (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/word/signed word/dword/signed dword) $80 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (label) keyboard_matrix_read::@return (byte) keyboard_matrix_read::return @@ -1641,7 +1641,7 @@ FINAL SYMBOL TABLE (byte) keyboard_matrix_read::row_pressed_bits (byte) keyboard_matrix_read::rowid (byte[8]) keyboard_matrix_row_bitmask -(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } +(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) $fe, (byte/word/signed word/dword/signed dword) $fd, (byte/word/signed word/dword/signed dword) $fb, (byte/word/signed word/dword/signed dword) $f7, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $bf, (byte/signed byte/word/signed word/dword/signed dword) $7f } (byte) keyboard_modifiers (byte[8]) keyboard_scan_values (void()) main() @@ -1696,7 +1696,7 @@ main: { jsr keyboard_init //SEG12 main::@4 b4: - //SEG13 [6] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG13 [6] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 @@ -1762,7 +1762,7 @@ keyboard_matrix_read: { //SEG39 keyboard_init // Initialize keyboard reading by setting CIA#$ Data Direction Registers keyboard_init: { - //SEG40 [23] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 -- _deref_pbuc1=vbuc2 + //SEG40 [23] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) $ff -- _deref_pbuc1=vbuc2 // Keyboard Matrix Columns Write Mode lda #$ff sta CIA1_PORT_A_DDR diff --git a/src/test/ref/test-keyboard-space.sym b/src/test/ref/test-keyboard-space.sym index 2aa3fa979..8ef41ec78 100644 --- a/src/test/ref/test-keyboard-space.sym +++ b/src/test/ref/test-keyboard-space.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (byte*) BGCOL1 (byte*) BGCOL2 (byte*) BGCOL3 @@ -15,13 +15,13 @@ (byte*) CHARGEN (byte*) CIA1_INTERRUPT (byte*) CIA1_PORT_A -(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) 56320 +(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) $dc00 (byte*) CIA1_PORT_A_DDR -(const byte*) CIA1_PORT_A_DDR#0 CIA1_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56322 +(const byte*) CIA1_PORT_A_DDR#0 CIA1_PORT_A_DDR = ((byte*))(word/dword/signed dword) $dc02 (byte*) CIA1_PORT_B -(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) 56321 +(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) $dc01 (byte*) CIA1_PORT_B_DDR -(const byte*) CIA1_PORT_B_DDR#0 CIA1_PORT_B_DDR = ((byte*))(word/dword/signed dword) 56323 +(const byte*) CIA1_PORT_B_DDR#0 CIA1_PORT_B_DDR = ((byte*))(word/dword/signed dword) $dc03 (byte*) CIA2_INTERRUPT (byte*) CIA2_PORT_A (byte*) CIA2_PORT_A_DDR @@ -107,7 +107,7 @@ (byte) KEY_SEMICOLON (byte) KEY_SLASH (byte) KEY_SPACE -(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) 60 +(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) $3c (byte) KEY_T (byte) KEY_U (byte) KEY_V @@ -132,7 +132,7 @@ (byte) PROCPORT_RAM_IO (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE @@ -176,7 +176,7 @@ (byte) keyboard_key_pressed::rowidx (const byte) keyboard_key_pressed::rowidx#0 rowidx = (const byte) KEY_SPACE#0>>(byte/signed byte/word/signed word/dword/signed dword) 3 (byte[8]) keyboard_matrix_col_bitmask -(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $10, (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/word/signed word/dword/signed dword) $80 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (label) keyboard_matrix_read::@return (byte) keyboard_matrix_read::return @@ -185,7 +185,7 @@ (byte) keyboard_matrix_read::row_pressed_bits (byte) keyboard_matrix_read::rowid (byte[8]) keyboard_matrix_row_bitmask -(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } +(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) $fe, (byte/word/signed word/dword/signed dword) $fd, (byte/word/signed word/dword/signed dword) $fb, (byte/word/signed word/dword/signed dword) $f7, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $bf, (byte/signed byte/word/signed word/dword/signed dword) $7f } (byte) keyboard_modifiers (byte[8]) keyboard_scan_values (void()) main() diff --git a/src/test/ref/test-keyboard.cfg b/src/test/ref/test-keyboard.cfg index d1c1eb0bb..a62cb5863 100644 --- a/src/test/ref/test-keyboard.cfg +++ b/src/test/ref/test-keyboard.cfg @@ -11,20 +11,20 @@ main: scope:[main] from @12 [4] phi() 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 ) + [5] (byte*) main::sc#2 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@1/(byte*) main::sc#1 ) [6] *((byte*) main::sc#2) ← (byte) ' ' [7] (byte*) main::sc#1 ← ++ (byte*) main::sc#2 - [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto main::@1 + [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto main::@1 to:main::@14 main::@14: scope:[main] from main::@1 [9] phi() [10] call keyboard_init to:main::@5 main::@5: scope:[main] from main::@13 main::@14 main::@5 - [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 + [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@5 to:main::@6 main::@6: scope:[main] from main::@20 main::@5 - [12] (byte*) main::screen#13 ← phi( main::@5/((byte*))(word/signed word/dword/signed dword) 1024 main::@20/(byte*) main::screen#1 ) + [12] (byte*) main::screen#13 ← phi( main::@5/((byte*))(word/signed word/dword/signed dword) $400 main::@20/(byte*) main::screen#1 ) [12] (byte) main::row#2 ← phi( main::@5/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@20/(byte) main::row#1 ) [13] (byte) keyboard_matrix_read::rowid#1 ← (byte) main::row#2 [14] call keyboard_matrix_read @@ -36,7 +36,7 @@ main::@28: scope:[main] from main::@6 main::@7: scope:[main] from main::@28 main::@9 [17] (byte) main::col#2 ← phi( main::@28/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@9/(byte) main::col#1 ) [17] (byte) main::row_pressed_bits#2 ← phi( main::@28/(byte) main::row_pressed_bits#0 main::@9/(byte) main::row_pressed_bits#1 ) - [18] (byte~) main::$5 ← (byte) main::row_pressed_bits#2 & (byte/word/signed word/dword/signed dword) 128 + [18] (byte~) main::$5 ← (byte) main::row_pressed_bits#2 & (byte/word/signed word/dword/signed dword) $80 [19] if((byte~) main::$5!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@8 to:main::@18 main::@18: scope:[main] from main::@7 @@ -48,12 +48,12 @@ main::@9: scope:[main] from main::@18 main::@8 [23] if((byte) main::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@7 to:main::@20 main::@20: scope:[main] from main::@9 - [24] (byte*) main::screen#1 ← (byte*) main::screen#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [24] (byte*) main::screen#1 ← (byte*) main::screen#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 [25] (byte) main::row#1 ← ++ (byte) main::row#2 [26] if((byte) main::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@6 to:main::@21 main::@21: scope:[main] from main::@20 - [27] (byte*) main::screen#2 ← (byte*) main::screen#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [27] (byte*) main::screen#2 ← (byte*) main::screen#1 + (byte/signed byte/word/signed word/dword/signed dword) $28 to:main::@10 main::@10: scope:[main] from main::@11 main::@21 [28] (byte) main::i#10 ← phi( main::@11/(byte) main::i#6 main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 ) @@ -64,7 +64,7 @@ main::@10: scope:[main] from main::@11 main::@21 to:main::@29 main::@29: scope:[main] from main::@10 [32] (byte) main::key#0 ← (byte) keyboard_get_keycode::return#2 - [33] if((byte) main::key#0==(byte/signed byte/word/signed word/dword/signed dword) 63) goto main::@11 + [33] if((byte) main::key#0==(byte/signed byte/word/signed word/dword/signed dword) $3f) goto main::@11 to:main::@22 main::@22: scope:[main] from main::@29 [34] (byte) keyboard_key_pressed::key#0 ← (byte) main::key#0 @@ -82,7 +82,7 @@ main::@23: scope:[main] from main::@30 main::@11: scope:[main] from main::@23 main::@29 main::@30 [41] (byte) main::i#6 ← phi( main::@30/(byte) main::i#10 main::@23/(byte) main::i#1 main::@29/(byte) main::i#10 ) [42] (byte) main::ch#1 ← ++ (byte) main::ch#2 - [43] if((byte) main::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) 64) goto main::@10 + [43] if((byte) main::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) $40) goto main::@10 to:main::@13 main::@13: scope:[main] from main::@11 main::@13 [44] (byte) main::i#4 ← phi( main::@11/(byte) main::i#6 main::@13/(byte) main::i#2 ) @@ -122,7 +122,7 @@ keyboard_get_keycode::@return: scope:[keyboard_get_keycode] from keyboard_get_k [62] return to:@return keyboard_init: scope:[keyboard_init] from main::@14 - [63] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 + [63] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) $ff [64] *((const 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 diff --git a/src/test/ref/test-keyboard.log b/src/test/ref/test-keyboard.log index 2f549dac0..f95aec3d3 100644 --- a/src/test/ref/test-keyboard.log +++ b/src/test/ref/test-keyboard.log @@ -5,66 +5,66 @@ CONTROL FLOW GRAPH SSA (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) 53248 - (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) 1016 - (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) 53248 - (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) 53249 - (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) 53264 - (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 - (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53269 - (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) 53271 - (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) 53275 - (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) 53276 - (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) 53277 - (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) 53281 - (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) 53282 - (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) 53283 - (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) 53284 - (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) 53285 - (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) 53286 - (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) 53287 - (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) 53265 - (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) 128 - (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64 - (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) PROCPORT_RAM_ALL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) PROCPORT_RAM_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) PROCPORT_RAM_CHARROM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) PROCPORT_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) PROCPORT_BASIC_KERNEL_IO#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte*) CHARGEN#0 ← ((byte*)) (word/dword/signed dword) $d000 + (word) SPRITE_PTRS#0 ← (word/signed word/dword/signed dword) $3f8 + (byte*) SPRITES_XPOS#0 ← ((byte*)) (word/dword/signed dword) $d000 + (byte*) SPRITES_YPOS#0 ← ((byte*)) (word/dword/signed dword) $d001 + (byte*) SPRITES_XMSB#0 ← ((byte*)) (word/dword/signed dword) $d010 + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) $d012 + (byte*) SPRITES_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d015 + (byte*) SPRITES_EXPAND_Y#0 ← ((byte*)) (word/dword/signed dword) $d017 + (byte*) SPRITES_PRIORITY#0 ← ((byte*)) (word/dword/signed dword) $d01b + (byte*) SPRITES_MC#0 ← ((byte*)) (word/dword/signed dword) $d01c + (byte*) SPRITES_EXPAND_X#0 ← ((byte*)) (word/dword/signed dword) $d01d + (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) $d020 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL1#0 ← ((byte*)) (word/dword/signed dword) $d021 + (byte*) BGCOL2#0 ← ((byte*)) (word/dword/signed dword) $d022 + (byte*) BGCOL3#0 ← ((byte*)) (word/dword/signed dword) $d023 + (byte*) BGCOL4#0 ← ((byte*)) (word/dword/signed dword) $d024 + (byte*) SPRITES_MC1#0 ← ((byte*)) (word/dword/signed dword) $d025 + (byte*) SPRITES_MC2#0 ← ((byte*)) (word/dword/signed dword) $d026 + (byte*) SPRITES_COLS#0 ← ((byte*)) (word/dword/signed dword) $d027 + (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte*) D011#0 ← ((byte*)) (word/dword/signed dword) $d011 + (byte) VIC_RST8#0 ← (byte/word/signed word/dword/signed dword) $80 + (byte) VIC_ECM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $40 + (byte) VIC_BMM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) VIC_DEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_RSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) 53270 - (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) VIC_CONTROL2#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte*) D016#0 ← ((byte*)) (word/dword/signed dword) $d016 + (byte) VIC_MCM#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) VIC_CSEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) 53272 - (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) 53267 - (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) 53268 - (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) 53273 - (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) 53274 + (byte*) D018#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) VIC_MEMORY#0 ← ((byte*)) (word/dword/signed dword) $d018 + (byte*) LIGHTPEN_X#0 ← ((byte*)) (word/dword/signed dword) $d013 + (byte*) LIGHTPEN_Y#0 ← ((byte*)) (word/dword/signed dword) $d014 + (byte*) IRQ_STATUS#0 ← ((byte*)) (word/dword/signed dword) $d019 + (byte*) IRQ_ENABLE#0 ← ((byte*)) (word/dword/signed dword) $d01a (byte) IRQ_RASTER#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) IRQ_COLLISION_BG#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) IRQ_COLLISION_SPRITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) IRQ_LIGHTPEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (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 - (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56333 - (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 127 - (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) 56576 - (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) 56577 - (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) 56578 - (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) 56579 - (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) 56589 - (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) 788 - (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) 65534 + (byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte*) CIA1_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dc00 + (byte*) CIA1_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dc01 + (byte*) CIA1_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc02 + (byte*) CIA1_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dc03 + (byte*) CIA1_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dc0d + (byte) CIA_INTERRUPT_CLEAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) $7f + (byte*) CIA2_PORT_A#0 ← ((byte*)) (word/dword/signed dword) $dd00 + (byte*) CIA2_PORT_B#0 ← ((byte*)) (word/dword/signed dword) $dd01 + (byte*) CIA2_PORT_A_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd02 + (byte*) CIA2_PORT_B_DDR#0 ← ((byte*)) (word/dword/signed dword) $dd03 + (byte*) CIA2_INTERRUPT#0 ← ((byte*)) (word/dword/signed dword) $dd0d + (void()**) KERNEL_IRQ#0 ← ((void()**)) (word/signed word/dword/signed dword) $314 + (void()**) HARDWARE_IRQ#0 ← ((void()**)) (word/dword/signed dword) $fffe (byte) BLACK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) WHITE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -75,12 +75,12 @@ CONTROL FLOW GRAPH SSA (byte) YELLOW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) ORANGE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) BROWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) PINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) LIGHT_GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f to:@4 @4: scope:[] from @begin (byte) KEY_DEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -93,66 +93,66 @@ CONTROL FLOW GRAPH SSA (byte) KEY_CRSR_DOWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) KEY_3#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) KEY_W#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 - (byte) KEY_A#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 - (byte) KEY_4#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 - (byte) KEY_Z#0 ← (byte/signed byte/word/signed word/dword/signed dword) 12 - (byte) KEY_S#0 ← (byte/signed byte/word/signed word/dword/signed dword) 13 - (byte) KEY_E#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte) KEY_LSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) KEY_5#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 - (byte) KEY_R#0 ← (byte/signed byte/word/signed word/dword/signed dword) 17 - (byte) KEY_D#0 ← (byte/signed byte/word/signed word/dword/signed dword) 18 - (byte) KEY_6#0 ← (byte/signed byte/word/signed word/dword/signed dword) 19 - (byte) KEY_C#0 ← (byte/signed byte/word/signed word/dword/signed dword) 20 - (byte) KEY_F#0 ← (byte/signed byte/word/signed word/dword/signed dword) 21 - (byte) KEY_T#0 ← (byte/signed byte/word/signed word/dword/signed dword) 22 - (byte) KEY_X#0 ← (byte/signed byte/word/signed word/dword/signed dword) 23 - (byte) KEY_7#0 ← (byte/signed byte/word/signed word/dword/signed dword) 24 - (byte) KEY_Y#0 ← (byte/signed byte/word/signed word/dword/signed dword) 25 - (byte) KEY_G#0 ← (byte/signed byte/word/signed word/dword/signed dword) 26 - (byte) KEY_8#0 ← (byte/signed byte/word/signed word/dword/signed dword) 27 - (byte) KEY_B#0 ← (byte/signed byte/word/signed word/dword/signed dword) 28 - (byte) KEY_H#0 ← (byte/signed byte/word/signed word/dword/signed dword) 29 - (byte) KEY_U#0 ← (byte/signed byte/word/signed word/dword/signed dword) 30 - (byte) KEY_V#0 ← (byte/signed byte/word/signed word/dword/signed dword) 31 - (byte) KEY_9#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - (byte) KEY_I#0 ← (byte/signed byte/word/signed word/dword/signed dword) 33 - (byte) KEY_J#0 ← (byte/signed byte/word/signed word/dword/signed dword) 34 - (byte) KEY_0#0 ← (byte/signed byte/word/signed word/dword/signed dword) 35 - (byte) KEY_M#0 ← (byte/signed byte/word/signed word/dword/signed dword) 36 - (byte) KEY_K#0 ← (byte/signed byte/word/signed word/dword/signed dword) 37 - (byte) KEY_O#0 ← (byte/signed byte/word/signed word/dword/signed dword) 38 - (byte) KEY_N#0 ← (byte/signed byte/word/signed word/dword/signed dword) 39 - (byte) KEY_PLUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte) KEY_P#0 ← (byte/signed byte/word/signed word/dword/signed dword) 41 - (byte) KEY_L#0 ← (byte/signed byte/word/signed word/dword/signed dword) 42 - (byte) KEY_MINUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 43 - (byte) KEY_DOT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 44 - (byte) KEY_COLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) 45 - (byte) KEY_AT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 46 - (byte) KEY_COMMA#0 ← (byte/signed byte/word/signed word/dword/signed dword) 47 - (byte) KEY_POUND#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 - (byte) KEY_ASTERISK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 - (byte) KEY_SEMICOLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 - (byte) KEY_HOME#0 ← (byte/signed byte/word/signed word/dword/signed dword) 51 - (byte) KEY_RSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 52 - (byte) KEY_EQUALS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 53 - (byte) KEY_ARROW_UP#0 ← (byte/signed byte/word/signed word/dword/signed dword) 54 - (byte) KEY_SLASH#0 ← (byte/signed byte/word/signed word/dword/signed dword) 55 - (byte) KEY_1#0 ← (byte/signed byte/word/signed word/dword/signed dword) 56 - (byte) KEY_ARROW_LEFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 57 - (byte) KEY_CTRL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 58 - (byte) KEY_2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 59 - (byte) KEY_SPACE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 60 - (byte) KEY_COMMODORE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 61 - (byte) KEY_Q#0 ← (byte/signed byte/word/signed word/dword/signed dword) 62 - (byte) KEY_RUNSTOP#0 ← (byte/signed byte/word/signed word/dword/signed dword) 63 - (byte[]) keyboard_char_keycodes#0 ← { (byte) KEY_AT#0, (byte) KEY_A#0, (byte) KEY_B#0, (byte) KEY_C#0, (byte) KEY_D#0, (byte) KEY_E#0, (byte) KEY_F#0, (byte) KEY_G#0, (byte) KEY_H#0, (byte) KEY_I#0, (byte) KEY_J#0, (byte) KEY_K#0, (byte) KEY_L#0, (byte) KEY_M#0, (byte) KEY_N#0, (byte) KEY_O#0, (byte) KEY_P#0, (byte) KEY_Q#0, (byte) KEY_R#0, (byte) KEY_S#0, (byte) KEY_T#0, (byte) KEY_U#0, (byte) KEY_V#0, (byte) KEY_W#0, (byte) KEY_X#0, (byte) KEY_Y#0, (byte) KEY_Z#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP#0, (byte) KEY_ARROW_LEFT#0, (byte) KEY_SPACE#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK#0, (byte) KEY_PLUS#0, (byte) KEY_COMMA#0, (byte) KEY_MINUS#0, (byte) KEY_DOT#0, (byte) KEY_SLASH#0, (byte) KEY_0#0, (byte) KEY_1#0, (byte) KEY_2#0, (byte) KEY_3#0, (byte) KEY_4#0, (byte) KEY_5#0, (byte) KEY_6#0, (byte) KEY_7#0, (byte) KEY_8#0, (byte) KEY_9#0, (byte) KEY_COLON#0, (byte) KEY_SEMICOLON#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } - (byte[8]) keyboard_matrix_row_bitmask#0 ← { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } - (byte[8]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } + (byte) KEY_A#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a + (byte) KEY_4#0 ← (byte/signed byte/word/signed word/dword/signed dword) $b + (byte) KEY_Z#0 ← (byte/signed byte/word/signed word/dword/signed dword) $c + (byte) KEY_S#0 ← (byte/signed byte/word/signed word/dword/signed dword) $d + (byte) KEY_E#0 ← (byte/signed byte/word/signed word/dword/signed dword) $e + (byte) KEY_LSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $f + (byte) KEY_5#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 + (byte) KEY_R#0 ← (byte/signed byte/word/signed word/dword/signed dword) $11 + (byte) KEY_D#0 ← (byte/signed byte/word/signed word/dword/signed dword) $12 + (byte) KEY_6#0 ← (byte/signed byte/word/signed word/dword/signed dword) $13 + (byte) KEY_C#0 ← (byte/signed byte/word/signed word/dword/signed dword) $14 + (byte) KEY_F#0 ← (byte/signed byte/word/signed word/dword/signed dword) $15 + (byte) KEY_T#0 ← (byte/signed byte/word/signed word/dword/signed dword) $16 + (byte) KEY_X#0 ← (byte/signed byte/word/signed word/dword/signed dword) $17 + (byte) KEY_7#0 ← (byte/signed byte/word/signed word/dword/signed dword) $18 + (byte) KEY_Y#0 ← (byte/signed byte/word/signed word/dword/signed dword) $19 + (byte) KEY_G#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1a + (byte) KEY_8#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1b + (byte) KEY_B#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1c + (byte) KEY_H#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1d + (byte) KEY_U#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1e + (byte) KEY_V#0 ← (byte/signed byte/word/signed word/dword/signed dword) $1f + (byte) KEY_9#0 ← (byte/signed byte/word/signed word/dword/signed dword) $20 + (byte) KEY_I#0 ← (byte/signed byte/word/signed word/dword/signed dword) $21 + (byte) KEY_J#0 ← (byte/signed byte/word/signed word/dword/signed dword) $22 + (byte) KEY_0#0 ← (byte/signed byte/word/signed word/dword/signed dword) $23 + (byte) KEY_M#0 ← (byte/signed byte/word/signed word/dword/signed dword) $24 + (byte) KEY_K#0 ← (byte/signed byte/word/signed word/dword/signed dword) $25 + (byte) KEY_O#0 ← (byte/signed byte/word/signed word/dword/signed dword) $26 + (byte) KEY_N#0 ← (byte/signed byte/word/signed word/dword/signed dword) $27 + (byte) KEY_PLUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) KEY_P#0 ← (byte/signed byte/word/signed word/dword/signed dword) $29 + (byte) KEY_L#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2a + (byte) KEY_MINUS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2b + (byte) KEY_DOT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2c + (byte) KEY_COLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2d + (byte) KEY_AT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2e + (byte) KEY_COMMA#0 ← (byte/signed byte/word/signed word/dword/signed dword) $2f + (byte) KEY_POUND#0 ← (byte/signed byte/word/signed word/dword/signed dword) $30 + (byte) KEY_ASTERISK#0 ← (byte/signed byte/word/signed word/dword/signed dword) $31 + (byte) KEY_SEMICOLON#0 ← (byte/signed byte/word/signed word/dword/signed dword) $32 + (byte) KEY_HOME#0 ← (byte/signed byte/word/signed word/dword/signed dword) $33 + (byte) KEY_RSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $34 + (byte) KEY_EQUALS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $35 + (byte) KEY_ARROW_UP#0 ← (byte/signed byte/word/signed word/dword/signed dword) $36 + (byte) KEY_SLASH#0 ← (byte/signed byte/word/signed word/dword/signed dword) $37 + (byte) KEY_1#0 ← (byte/signed byte/word/signed word/dword/signed dword) $38 + (byte) KEY_ARROW_LEFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) $39 + (byte) KEY_CTRL#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3a + (byte) KEY_2#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3b + (byte) KEY_SPACE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3c + (byte) KEY_COMMODORE#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3d + (byte) KEY_Q#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3e + (byte) KEY_RUNSTOP#0 ← (byte/signed byte/word/signed word/dword/signed dword) $3f + (byte[]) keyboard_char_keycodes#0 ← { (byte) KEY_AT#0, (byte) KEY_A#0, (byte) KEY_B#0, (byte) KEY_C#0, (byte) KEY_D#0, (byte) KEY_E#0, (byte) KEY_F#0, (byte) KEY_G#0, (byte) KEY_H#0, (byte) KEY_I#0, (byte) KEY_J#0, (byte) KEY_K#0, (byte) KEY_L#0, (byte) KEY_M#0, (byte) KEY_N#0, (byte) KEY_O#0, (byte) KEY_P#0, (byte) KEY_Q#0, (byte) KEY_R#0, (byte) KEY_S#0, (byte) KEY_T#0, (byte) KEY_U#0, (byte) KEY_V#0, (byte) KEY_W#0, (byte) KEY_X#0, (byte) KEY_Y#0, (byte) KEY_Z#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_POUND#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_ARROW_UP#0, (byte) KEY_ARROW_LEFT#0, (byte) KEY_SPACE#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_ASTERISK#0, (byte) KEY_PLUS#0, (byte) KEY_COMMA#0, (byte) KEY_MINUS#0, (byte) KEY_DOT#0, (byte) KEY_SLASH#0, (byte) KEY_0#0, (byte) KEY_1#0, (byte) KEY_2#0, (byte) KEY_3#0, (byte) KEY_4#0, (byte) KEY_5#0, (byte) KEY_6#0, (byte) KEY_7#0, (byte) KEY_8#0, (byte) KEY_9#0, (byte) KEY_COLON#0, (byte) KEY_SEMICOLON#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte) KEY_EQUALS#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f } + (byte[8]) keyboard_matrix_row_bitmask#0 ← { (byte/word/signed word/dword/signed dword) $fe, (byte/word/signed word/dword/signed dword) $fd, (byte/word/signed word/dword/signed dword) $fb, (byte/word/signed word/dword/signed dword) $f7, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $bf, (byte/signed byte/word/signed word/dword/signed dword) $7f } + (byte[8]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $10, (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/word/signed word/dword/signed dword) $80 } to:@8 keyboard_init: scope:[keyboard_init] from main::@14 - *((byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 + *((byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) $ff *((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 @@ -214,13 +214,13 @@ keyboard_get_keycode::@return: scope:[keyboard_get_keycode] from keyboard_get_k (byte[8]) keyboard_scan_values#0 ← { fill( 8, 0) } to:@12 main: scope:[main] from @12 - (byte*) main::sc#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::sc#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 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 + (word/signed word/dword/signed dword~) main::$0 ← (word/signed word/dword/signed dword) $400 + (word/signed word/dword/signed dword) $3e8 (bool~) main::$1 ← (byte*) main::sc#1 < (word/signed word/dword/signed dword~) main::$0 if((bool~) main::$1) goto main::@1 to:main::@14 @@ -235,11 +235,11 @@ main::@2: scope:[main] from main::@13 main::@27 main::@3: scope:[main] from main::@2 to:main::@5 main::@5: scope:[main] from main::@3 main::@5 - (bool~) main::$3 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 255 + (bool~) main::$3 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) $ff if((bool~) main::$3) goto main::@5 to:main::@17 main::@17: scope:[main] from main::@5 - (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) main::row#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@6 main::@6: scope:[main] from main::@17 main::@20 @@ -262,7 +262,7 @@ main::@7: scope:[main] from main::@28 main::@9 (byte) main::col#5 ← phi( main::@28/(byte) main::col#0 main::@9/(byte) main::col#1 ) (byte*) main::screen#9 ← phi( main::@28/(byte*) main::screen#13 main::@9/(byte*) main::screen#10 ) (byte) main::row_pressed_bits#2 ← phi( main::@28/(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 + (byte~) main::$5 ← (byte) main::row_pressed_bits#2 & (byte/word/signed word/dword/signed dword) $80 (bool~) main::$6 ← (byte~) main::$5 != (byte/signed byte/word/signed word/dword/signed dword) 0 if((bool~) main::$6) goto main::@8 to:main::@18 @@ -294,7 +294,7 @@ main::@9: scope:[main] from main::@18 main::@8 main::@20: 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::$9 ← (byte*) main::screen#5 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) main::$9 ← (byte*) main::screen#5 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) main::screen#1 ← (byte*~) main::$9 (byte) main::row#1 ← (byte) main::row#3 + rangenext(0,7) (bool~) main::$10 ← (byte) main::row#1 != rangelast(0,7) @@ -302,7 +302,7 @@ main::@20: scope:[main] from main::@9 to:main::@21 main::@21: scope:[main] from main::@20 (byte*) main::screen#6 ← phi( main::@20/(byte*) main::screen#1 ) - (byte*~) main::$11 ← (byte*) main::screen#6 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) main::$11 ← (byte*) main::screen#6 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) main::screen#2 ← (byte*~) main::$11 (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) main::ch#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -322,7 +322,7 @@ main::@29: scope:[main] from main::@10 (byte) keyboard_get_keycode::return#4 ← phi( main::@10/(byte) keyboard_get_keycode::return#2 ) (byte~) main::$12 ← (byte) keyboard_get_keycode::return#4 (byte) main::key#0 ← (byte~) main::$12 - (bool~) main::$13 ← (byte) main::key#0 != (byte/signed byte/word/signed word/dword/signed dword) 63 + (bool~) main::$13 ← (byte) main::key#0 != (byte/signed byte/word/signed word/dword/signed dword) $3f (bool~) main::$14 ← ! (bool~) main::$13 if((bool~) main::$14) goto main::@11 to:main::@22 @@ -330,8 +330,8 @@ main::@11: scope:[main] from main::@12 main::@23 main::@29 (byte) main::i#6 ← phi( main::@12/(byte) main::i#7 main::@23/(byte) main::i#1 main::@29/(byte) main::i#8 ) (byte*) main::screen#12 ← phi( main::@12/(byte*) main::screen#14 main::@23/(byte*) main::screen#7 main::@29/(byte*) main::screen#15 ) (byte) main::ch#3 ← phi( main::@12/(byte) main::ch#5 main::@23/(byte) main::ch#4 main::@29/(byte) main::ch#6 ) - (byte) main::ch#1 ← (byte) main::ch#3 + rangenext(0,63) - (bool~) main::$18 ← (byte) main::ch#1 != rangelast(0,63) + (byte) main::ch#1 ← (byte) main::ch#3 + rangenext(0,$3f) + (bool~) main::$18 ← (byte) main::ch#1 != rangelast(0,$3f) if((bool~) main::$18) goto main::@10 to:main::@13 main::@22: scope:[main] from main::@29 @@ -874,7 +874,7 @@ Culled Empty Block (label) main::@27 Culled Empty Block (label) main::@3 Culled Empty Block (label) @13 Successful SSA optimization Pass2CullEmptyBlocks -Inversing boolean not [241] (bool~) main::$14 ← (byte) main::key#0 == (byte/signed byte/word/signed word/dword/signed dword) 63 from [240] (bool~) main::$13 ← (byte) main::key#0 != (byte/signed byte/word/signed word/dword/signed dword) 63 +Inversing boolean not [241] (bool~) main::$14 ← (byte) main::key#0 == (byte/signed byte/word/signed word/dword/signed dword) $3f from [240] (bool~) main::$13 ← (byte) main::key#0 != (byte/signed byte/word/signed word/dword/signed dword) $3f Inversing boolean not [254] (bool~) main::$17 ← (byte~) main::$15 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [253] (bool~) main::$16 ← (byte~) main::$15 != (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2UnaryNotSimplification Alias (byte) keyboard_matrix_read::return#0 = (byte) keyboard_matrix_read::row_pressed_bits#0 (byte~) keyboard_matrix_read::$0 (byte) keyboard_matrix_read::return#4 (byte) keyboard_matrix_read::return#1 @@ -924,78 +924,78 @@ Redundant Phi (byte*) main::screen#11 (byte*) main::screen#2 Redundant Phi (byte*) main::screen#8 (byte*) main::screen#11 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) main::$1 [193] if((byte*) main::sc#1<(word/signed word/dword/signed dword~) main::$0) goto main::@1 -Simple Condition (bool~) main::$3 [197] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 +Simple Condition (bool~) main::$3 [197] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@5 Simple Condition (bool~) main::$6 [211] if((byte~) main::$5!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@8 Simple Condition (bool~) main::$8 [221] if((byte) main::col#1!=rangelast(0,7)) goto main::@7 Simple Condition (bool~) main::$10 [227] if((byte) main::row#1!=rangelast(0,7)) goto main::@6 -Simple Condition (bool~) main::$14 [242] if((byte) main::key#0==(byte/signed byte/word/signed word/dword/signed dword) 63) goto main::@11 -Simple Condition (bool~) main::$18 [246] if((byte) main::ch#1!=rangelast(0,63)) goto main::@10 +Simple Condition (bool~) main::$14 [242] if((byte) main::key#0==(byte/signed byte/word/signed word/dword/signed dword) $3f) goto main::@11 +Simple Condition (bool~) main::$18 [246] if((byte) main::ch#1!=rangelast(0,$3f)) goto main::@10 Simple Condition (bool~) main::$17 [255] if((byte~) main::$15==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@12 Simple Condition (bool~) main::$19 [264] if((byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) 5) goto main::@13 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 -Constant (const byte) PROCPORT_RAM_ALL#0 = 48 -Constant (const byte) PROCPORT_RAM_IO#0 = 53 -Constant (const byte) PROCPORT_RAM_CHARROM#0 = 49 -Constant (const byte) PROCPORT_KERNEL_IO#0 = 54 -Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = 55 -Constant (const byte*) CHARGEN#0 = ((byte*))53248 -Constant (const word) SPRITE_PTRS#0 = 1016 -Constant (const byte*) SPRITES_XPOS#0 = ((byte*))53248 -Constant (const byte*) SPRITES_YPOS#0 = ((byte*))53249 -Constant (const byte*) SPRITES_XMSB#0 = ((byte*))53264 -Constant (const byte*) RASTER#0 = ((byte*))53266 -Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))53269 -Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))53271 -Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))53275 -Constant (const byte*) SPRITES_MC#0 = ((byte*))53276 -Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))53277 -Constant (const byte*) BORDERCOL#0 = ((byte*))53280 -Constant (const byte*) BGCOL#0 = ((byte*))53281 -Constant (const byte*) BGCOL1#0 = ((byte*))53281 -Constant (const byte*) BGCOL2#0 = ((byte*))53282 -Constant (const byte*) BGCOL3#0 = ((byte*))53283 -Constant (const byte*) BGCOL4#0 = ((byte*))53284 -Constant (const byte*) SPRITES_MC1#0 = ((byte*))53285 -Constant (const byte*) SPRITES_MC2#0 = ((byte*))53286 -Constant (const byte*) SPRITES_COLS#0 = ((byte*))53287 -Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 -Constant (const byte*) D011#0 = ((byte*))53265 -Constant (const byte) VIC_RST8#0 = 128 -Constant (const byte) VIC_ECM#0 = 64 -Constant (const byte) VIC_BMM#0 = 32 -Constant (const byte) VIC_DEN#0 = 16 +Constant (const byte) PROCPORT_RAM_ALL#0 = $30 +Constant (const byte) PROCPORT_RAM_IO#0 = $35 +Constant (const byte) PROCPORT_RAM_CHARROM#0 = $31 +Constant (const byte) PROCPORT_KERNEL_IO#0 = $36 +Constant (const byte) PROCPORT_BASIC_KERNEL_IO#0 = $37 +Constant (const byte*) CHARGEN#0 = ((byte*))$d000 +Constant (const word) SPRITE_PTRS#0 = $3f8 +Constant (const byte*) SPRITES_XPOS#0 = ((byte*))$d000 +Constant (const byte*) SPRITES_YPOS#0 = ((byte*))$d001 +Constant (const byte*) SPRITES_XMSB#0 = ((byte*))$d010 +Constant (const byte*) RASTER#0 = ((byte*))$d012 +Constant (const byte*) SPRITES_ENABLE#0 = ((byte*))$d015 +Constant (const byte*) SPRITES_EXPAND_Y#0 = ((byte*))$d017 +Constant (const byte*) SPRITES_PRIORITY#0 = ((byte*))$d01b +Constant (const byte*) SPRITES_MC#0 = ((byte*))$d01c +Constant (const byte*) SPRITES_EXPAND_X#0 = ((byte*))$d01d +Constant (const byte*) BORDERCOL#0 = ((byte*))$d020 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 +Constant (const byte*) BGCOL1#0 = ((byte*))$d021 +Constant (const byte*) BGCOL2#0 = ((byte*))$d022 +Constant (const byte*) BGCOL3#0 = ((byte*))$d023 +Constant (const byte*) BGCOL4#0 = ((byte*))$d024 +Constant (const byte*) SPRITES_MC1#0 = ((byte*))$d025 +Constant (const byte*) SPRITES_MC2#0 = ((byte*))$d026 +Constant (const byte*) SPRITES_COLS#0 = ((byte*))$d027 +Constant (const byte*) VIC_CONTROL#0 = ((byte*))$d011 +Constant (const byte*) D011#0 = ((byte*))$d011 +Constant (const byte) VIC_RST8#0 = $80 +Constant (const byte) VIC_ECM#0 = $40 +Constant (const byte) VIC_BMM#0 = $20 +Constant (const byte) VIC_DEN#0 = $10 Constant (const byte) VIC_RSEL#0 = 8 -Constant (const byte*) VIC_CONTROL2#0 = ((byte*))53270 -Constant (const byte*) D016#0 = ((byte*))53270 -Constant (const byte) VIC_MCM#0 = 16 +Constant (const byte*) VIC_CONTROL2#0 = ((byte*))$d016 +Constant (const byte*) D016#0 = ((byte*))$d016 +Constant (const byte) VIC_MCM#0 = $10 Constant (const byte) VIC_CSEL#0 = 8 -Constant (const byte*) D018#0 = ((byte*))53272 -Constant (const byte*) VIC_MEMORY#0 = ((byte*))53272 -Constant (const byte*) LIGHTPEN_X#0 = ((byte*))53267 -Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))53268 -Constant (const byte*) IRQ_STATUS#0 = ((byte*))53273 -Constant (const byte*) IRQ_ENABLE#0 = ((byte*))53274 +Constant (const byte*) D018#0 = ((byte*))$d018 +Constant (const byte*) VIC_MEMORY#0 = ((byte*))$d018 +Constant (const byte*) LIGHTPEN_X#0 = ((byte*))$d013 +Constant (const byte*) LIGHTPEN_Y#0 = ((byte*))$d014 +Constant (const byte*) IRQ_STATUS#0 = ((byte*))$d019 +Constant (const byte*) IRQ_ENABLE#0 = ((byte*))$d01a Constant (const byte) IRQ_RASTER#0 = 1 Constant (const byte) IRQ_COLLISION_BG#0 = 2 Constant (const byte) IRQ_COLLISION_SPRITE#0 = 4 Constant (const byte) IRQ_LIGHTPEN#0 = 8 -Constant (const byte*) COLS#0 = ((byte*))55296 -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*) CIA1_INTERRUPT#0 = ((byte*))56333 -Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 -Constant (const byte*) CIA2_PORT_A#0 = ((byte*))56576 -Constant (const byte*) CIA2_PORT_B#0 = ((byte*))56577 -Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))56578 -Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))56579 -Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))56589 -Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 -Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 +Constant (const byte*) COLS#0 = ((byte*))$d800 +Constant (const byte*) CIA1_PORT_A#0 = ((byte*))$dc00 +Constant (const byte*) CIA1_PORT_B#0 = ((byte*))$dc01 +Constant (const byte*) CIA1_PORT_A_DDR#0 = ((byte*))$dc02 +Constant (const byte*) CIA1_PORT_B_DDR#0 = ((byte*))$dc03 +Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))$dc0d +Constant (const byte) CIA_INTERRUPT_CLEAR#0 = $7f +Constant (const byte*) CIA2_PORT_A#0 = ((byte*))$dd00 +Constant (const byte*) CIA2_PORT_B#0 = ((byte*))$dd01 +Constant (const byte*) CIA2_PORT_A_DDR#0 = ((byte*))$dd02 +Constant (const byte*) CIA2_PORT_B_DDR#0 = ((byte*))$dd03 +Constant (const byte*) CIA2_INTERRUPT#0 = ((byte*))$dd0d +Constant (const void()**) KERNEL_IRQ#0 = ((void()**))$314 +Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))$fffe Constant (const byte) BLACK#0 = 0 Constant (const byte) WHITE#0 = 1 Constant (const byte) RED#0 = 2 @@ -1006,12 +1006,12 @@ Constant (const byte) BLUE#0 = 6 Constant (const byte) YELLOW#0 = 7 Constant (const byte) ORANGE#0 = 8 Constant (const byte) BROWN#0 = 9 -Constant (const byte) PINK#0 = 10 -Constant (const byte) DARK_GREY#0 = 11 -Constant (const byte) GREY#0 = 12 -Constant (const byte) LIGHT_GREEN#0 = 13 -Constant (const byte) LIGHT_BLUE#0 = 14 -Constant (const byte) LIGHT_GREY#0 = 15 +Constant (const byte) PINK#0 = $a +Constant (const byte) DARK_GREY#0 = $b +Constant (const byte) GREY#0 = $c +Constant (const byte) LIGHT_GREEN#0 = $d +Constant (const byte) LIGHT_BLUE#0 = $e +Constant (const byte) LIGHT_GREY#0 = $f Constant (const byte) KEY_DEL#0 = 0 Constant (const byte) KEY_RETURN#0 = 1 Constant (const byte) KEY_CRSR_RIGHT#0 = 2 @@ -1022,62 +1022,62 @@ Constant (const byte) KEY_F5#0 = 6 Constant (const byte) KEY_CRSR_DOWN#0 = 7 Constant (const byte) KEY_3#0 = 8 Constant (const byte) KEY_W#0 = 9 -Constant (const byte) KEY_A#0 = 10 -Constant (const byte) KEY_4#0 = 11 -Constant (const byte) KEY_Z#0 = 12 -Constant (const byte) KEY_S#0 = 13 -Constant (const byte) KEY_E#0 = 14 -Constant (const byte) KEY_LSHIFT#0 = 15 -Constant (const byte) KEY_5#0 = 16 -Constant (const byte) KEY_R#0 = 17 -Constant (const byte) KEY_D#0 = 18 -Constant (const byte) KEY_6#0 = 19 -Constant (const byte) KEY_C#0 = 20 -Constant (const byte) KEY_F#0 = 21 -Constant (const byte) KEY_T#0 = 22 -Constant (const byte) KEY_X#0 = 23 -Constant (const byte) KEY_7#0 = 24 -Constant (const byte) KEY_Y#0 = 25 -Constant (const byte) KEY_G#0 = 26 -Constant (const byte) KEY_8#0 = 27 -Constant (const byte) KEY_B#0 = 28 -Constant (const byte) KEY_H#0 = 29 -Constant (const byte) KEY_U#0 = 30 -Constant (const byte) KEY_V#0 = 31 -Constant (const byte) KEY_9#0 = 32 -Constant (const byte) KEY_I#0 = 33 -Constant (const byte) KEY_J#0 = 34 -Constant (const byte) KEY_0#0 = 35 -Constant (const byte) KEY_M#0 = 36 -Constant (const byte) KEY_K#0 = 37 -Constant (const byte) KEY_O#0 = 38 -Constant (const byte) KEY_N#0 = 39 -Constant (const byte) KEY_PLUS#0 = 40 -Constant (const byte) KEY_P#0 = 41 -Constant (const byte) KEY_L#0 = 42 -Constant (const byte) KEY_MINUS#0 = 43 -Constant (const byte) KEY_DOT#0 = 44 -Constant (const byte) KEY_COLON#0 = 45 -Constant (const byte) KEY_AT#0 = 46 -Constant (const byte) KEY_COMMA#0 = 47 -Constant (const byte) KEY_POUND#0 = 48 -Constant (const byte) KEY_ASTERISK#0 = 49 -Constant (const byte) KEY_SEMICOLON#0 = 50 -Constant (const byte) KEY_HOME#0 = 51 -Constant (const byte) KEY_RSHIFT#0 = 52 -Constant (const byte) KEY_EQUALS#0 = 53 -Constant (const byte) KEY_ARROW_UP#0 = 54 -Constant (const byte) KEY_SLASH#0 = 55 -Constant (const byte) KEY_1#0 = 56 -Constant (const byte) KEY_ARROW_LEFT#0 = 57 -Constant (const byte) KEY_CTRL#0 = 58 -Constant (const byte) KEY_2#0 = 59 -Constant (const byte) KEY_SPACE#0 = 60 -Constant (const byte) KEY_COMMODORE#0 = 61 -Constant (const byte) KEY_Q#0 = 62 -Constant (const byte) KEY_RUNSTOP#0 = 63 -Constant (const byte[8]) keyboard_matrix_row_bitmask#0 = { 254, 253, 251, 247, 239, 223, 191, 127 } -Constant (const byte[8]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, 16, 32, 64, 128 } +Constant (const byte) KEY_A#0 = $a +Constant (const byte) KEY_4#0 = $b +Constant (const byte) KEY_Z#0 = $c +Constant (const byte) KEY_S#0 = $d +Constant (const byte) KEY_E#0 = $e +Constant (const byte) KEY_LSHIFT#0 = $f +Constant (const byte) KEY_5#0 = $10 +Constant (const byte) KEY_R#0 = $11 +Constant (const byte) KEY_D#0 = $12 +Constant (const byte) KEY_6#0 = $13 +Constant (const byte) KEY_C#0 = $14 +Constant (const byte) KEY_F#0 = $15 +Constant (const byte) KEY_T#0 = $16 +Constant (const byte) KEY_X#0 = $17 +Constant (const byte) KEY_7#0 = $18 +Constant (const byte) KEY_Y#0 = $19 +Constant (const byte) KEY_G#0 = $1a +Constant (const byte) KEY_8#0 = $1b +Constant (const byte) KEY_B#0 = $1c +Constant (const byte) KEY_H#0 = $1d +Constant (const byte) KEY_U#0 = $1e +Constant (const byte) KEY_V#0 = $1f +Constant (const byte) KEY_9#0 = $20 +Constant (const byte) KEY_I#0 = $21 +Constant (const byte) KEY_J#0 = $22 +Constant (const byte) KEY_0#0 = $23 +Constant (const byte) KEY_M#0 = $24 +Constant (const byte) KEY_K#0 = $25 +Constant (const byte) KEY_O#0 = $26 +Constant (const byte) KEY_N#0 = $27 +Constant (const byte) KEY_PLUS#0 = $28 +Constant (const byte) KEY_P#0 = $29 +Constant (const byte) KEY_L#0 = $2a +Constant (const byte) KEY_MINUS#0 = $2b +Constant (const byte) KEY_DOT#0 = $2c +Constant (const byte) KEY_COLON#0 = $2d +Constant (const byte) KEY_AT#0 = $2e +Constant (const byte) KEY_COMMA#0 = $2f +Constant (const byte) KEY_POUND#0 = $30 +Constant (const byte) KEY_ASTERISK#0 = $31 +Constant (const byte) KEY_SEMICOLON#0 = $32 +Constant (const byte) KEY_HOME#0 = $33 +Constant (const byte) KEY_RSHIFT#0 = $34 +Constant (const byte) KEY_EQUALS#0 = $35 +Constant (const byte) KEY_ARROW_UP#0 = $36 +Constant (const byte) KEY_SLASH#0 = $37 +Constant (const byte) KEY_1#0 = $38 +Constant (const byte) KEY_ARROW_LEFT#0 = $39 +Constant (const byte) KEY_CTRL#0 = $3a +Constant (const byte) KEY_2#0 = $3b +Constant (const byte) KEY_SPACE#0 = $3c +Constant (const byte) KEY_COMMODORE#0 = $3d +Constant (const byte) KEY_Q#0 = $3e +Constant (const byte) KEY_RUNSTOP#0 = $3f +Constant (const byte[8]) keyboard_matrix_row_bitmask#0 = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f } +Constant (const byte[8]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, $10, $20, $40, $80 } Constant (const byte[8]) keyboard_events#0 = { fill( 8, 0) } Constant (const byte) keyboard_events_size#0 = 0 Constant (const byte) keyboard_modifiers#0 = 0 @@ -1086,15 +1086,15 @@ Constant (const byte) KEY_MODIFIER_RSHIFT#0 = 2 Constant (const byte) KEY_MODIFIER_CTRL#0 = 4 Constant (const byte) KEY_MODIFIER_COMMODORE#0 = 8 Constant (const byte[8]) keyboard_scan_values#0 = { fill( 8, 0) } -Constant (const byte*) 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::sc#0 = ((byte*))$400 +Constant (const word/signed word/dword/signed dword) main::$0 = $400+$3e8 +Constant (const byte*) main::screen#0 = ((byte*))$400 Constant (const byte) main::row#0 = 0 Constant (const byte) main::col#0 = 0 Constant (const byte) main::i#0 = 0 Constant (const byte) main::ch#0 = 0 Successful SSA optimization Pass2ConstantIdentification -Constant (const byte[]) keyboard_char_keycodes#0 = { KEY_AT#0, KEY_A#0, KEY_B#0, KEY_C#0, KEY_D#0, KEY_E#0, KEY_F#0, KEY_G#0, KEY_H#0, KEY_I#0, KEY_J#0, KEY_K#0, KEY_L#0, KEY_M#0, KEY_N#0, KEY_O#0, KEY_P#0, KEY_Q#0, KEY_R#0, KEY_S#0, KEY_T#0, KEY_U#0, KEY_V#0, KEY_W#0, KEY_X#0, KEY_Y#0, KEY_Z#0, 63, KEY_POUND#0, 63, KEY_ARROW_UP#0, KEY_ARROW_LEFT#0, KEY_SPACE#0, 63, 63, 63, 63, 63, 63, 63, 63, 63, KEY_ASTERISK#0, KEY_PLUS#0, KEY_COMMA#0, KEY_MINUS#0, KEY_DOT#0, KEY_SLASH#0, KEY_0#0, KEY_1#0, KEY_2#0, KEY_3#0, KEY_4#0, KEY_5#0, KEY_6#0, KEY_7#0, KEY_8#0, KEY_9#0, KEY_COLON#0, KEY_SEMICOLON#0, 63, KEY_EQUALS#0, 63, 63 } +Constant (const byte[]) keyboard_char_keycodes#0 = { KEY_AT#0, KEY_A#0, KEY_B#0, KEY_C#0, KEY_D#0, KEY_E#0, KEY_F#0, KEY_G#0, KEY_H#0, KEY_I#0, KEY_J#0, KEY_K#0, KEY_L#0, KEY_M#0, KEY_N#0, KEY_O#0, KEY_P#0, KEY_Q#0, KEY_R#0, KEY_S#0, KEY_T#0, KEY_U#0, KEY_V#0, KEY_W#0, KEY_X#0, KEY_Y#0, KEY_Z#0, $3f, KEY_POUND#0, $3f, KEY_ARROW_UP#0, KEY_ARROW_LEFT#0, KEY_SPACE#0, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, KEY_ASTERISK#0, KEY_PLUS#0, KEY_COMMA#0, KEY_MINUS#0, KEY_DOT#0, KEY_SLASH#0, KEY_0#0, KEY_1#0, KEY_2#0, KEY_3#0, KEY_4#0, KEY_5#0, KEY_6#0, KEY_7#0, KEY_8#0, KEY_9#0, KEY_COLON#0, KEY_SEMICOLON#0, $3f, KEY_EQUALS#0, $3f, $3f } Constant (const byte) KEY_MODIFIER_SHIFT#0 = KEY_MODIFIER_LSHIFT#0|KEY_MODIFIER_RSHIFT#0 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [22] if(true) goto main::@5 @@ -1108,7 +1108,7 @@ Resolved ranged comparison value if(main::col#1!=rangelast(0,7)) goto main::@7 t Resolved ranged next value main::row#1 ← ++ main::row#2 to ++ Resolved ranged comparison value if(main::row#1!=rangelast(0,7)) goto main::@6 to (byte/signed byte/word/signed word/dword/signed dword) 8 Resolved ranged next value main::ch#1 ← ++ main::ch#2 to ++ -Resolved ranged comparison value if(main::ch#1!=rangelast(0,63)) goto main::@10 to (byte/signed byte/word/signed word/dword/signed dword) 64 +Resolved ranged comparison value if(main::ch#1!=rangelast(0,$3f)) goto main::@10 to (byte/signed byte/word/signed word/dword/signed dword) $40 Culled Empty Block (label) @4 Culled Empty Block (label) @8 Culled Empty Block (label) main::@2 @@ -1121,11 +1121,11 @@ 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::i#0 Inlining constant with var siblings (const byte) main::ch#0 -Constant inlined main::screen#0 = ((byte*))(word/signed word/dword/signed dword) 1024 +Constant inlined main::screen#0 = ((byte*))(word/signed word/dword/signed dword) $400 Constant inlined main::col#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 +Constant inlined main::$0 = (word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8 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::sc#0 = ((byte*))(word/signed word/dword/signed dword) $400 Constant inlined main::row#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::ch#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining @@ -1192,20 +1192,20 @@ main: scope:[main] from @12 [4] phi() 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 ) + [5] (byte*) main::sc#2 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@1/(byte*) main::sc#1 ) [6] *((byte*) main::sc#2) ← (byte) ' ' [7] (byte*) main::sc#1 ← ++ (byte*) main::sc#2 - [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto main::@1 + [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto main::@1 to:main::@14 main::@14: scope:[main] from main::@1 [9] phi() [10] call keyboard_init to:main::@5 main::@5: scope:[main] from main::@13 main::@14 main::@5 - [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 + [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@5 to:main::@6 main::@6: scope:[main] from main::@20 main::@5 - [12] (byte*) main::screen#13 ← phi( main::@5/((byte*))(word/signed word/dword/signed dword) 1024 main::@20/(byte*) main::screen#1 ) + [12] (byte*) main::screen#13 ← phi( main::@5/((byte*))(word/signed word/dword/signed dword) $400 main::@20/(byte*) main::screen#1 ) [12] (byte) main::row#2 ← phi( main::@5/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@20/(byte) main::row#1 ) [13] (byte) keyboard_matrix_read::rowid#1 ← (byte) main::row#2 [14] call keyboard_matrix_read @@ -1217,7 +1217,7 @@ main::@28: scope:[main] from main::@6 main::@7: scope:[main] from main::@28 main::@9 [17] (byte) main::col#2 ← phi( main::@28/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@9/(byte) main::col#1 ) [17] (byte) main::row_pressed_bits#2 ← phi( main::@28/(byte) main::row_pressed_bits#0 main::@9/(byte) main::row_pressed_bits#1 ) - [18] (byte~) main::$5 ← (byte) main::row_pressed_bits#2 & (byte/word/signed word/dword/signed dword) 128 + [18] (byte~) main::$5 ← (byte) main::row_pressed_bits#2 & (byte/word/signed word/dword/signed dword) $80 [19] if((byte~) main::$5!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@8 to:main::@18 main::@18: scope:[main] from main::@7 @@ -1229,12 +1229,12 @@ main::@9: scope:[main] from main::@18 main::@8 [23] if((byte) main::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@7 to:main::@20 main::@20: scope:[main] from main::@9 - [24] (byte*) main::screen#1 ← (byte*) main::screen#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [24] (byte*) main::screen#1 ← (byte*) main::screen#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 [25] (byte) main::row#1 ← ++ (byte) main::row#2 [26] if((byte) main::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@6 to:main::@21 main::@21: scope:[main] from main::@20 - [27] (byte*) main::screen#2 ← (byte*) main::screen#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [27] (byte*) main::screen#2 ← (byte*) main::screen#1 + (byte/signed byte/word/signed word/dword/signed dword) $28 to:main::@10 main::@10: scope:[main] from main::@11 main::@21 [28] (byte) main::i#10 ← phi( main::@11/(byte) main::i#6 main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 ) @@ -1245,7 +1245,7 @@ main::@10: scope:[main] from main::@11 main::@21 to:main::@29 main::@29: scope:[main] from main::@10 [32] (byte) main::key#0 ← (byte) keyboard_get_keycode::return#2 - [33] if((byte) main::key#0==(byte/signed byte/word/signed word/dword/signed dword) 63) goto main::@11 + [33] if((byte) main::key#0==(byte/signed byte/word/signed word/dword/signed dword) $3f) goto main::@11 to:main::@22 main::@22: scope:[main] from main::@29 [34] (byte) keyboard_key_pressed::key#0 ← (byte) main::key#0 @@ -1263,7 +1263,7 @@ main::@23: scope:[main] from main::@30 main::@11: scope:[main] from main::@23 main::@29 main::@30 [41] (byte) main::i#6 ← phi( main::@30/(byte) main::i#10 main::@23/(byte) main::i#1 main::@29/(byte) main::i#10 ) [42] (byte) main::ch#1 ← ++ (byte) main::ch#2 - [43] if((byte) main::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) 64) goto main::@10 + [43] if((byte) main::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) $40) goto main::@10 to:main::@13 main::@13: scope:[main] from main::@11 main::@13 [44] (byte) main::i#4 ← phi( main::@11/(byte) main::i#6 main::@13/(byte) main::i#2 ) @@ -1303,7 +1303,7 @@ keyboard_get_keycode::@return: scope:[keyboard_get_keycode] from keyboard_get_k [62] return to:@return keyboard_init: scope:[keyboard_init] from main::@14 - [63] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 + [63] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) $ff [64] *((const 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 @@ -1700,7 +1700,7 @@ main: { .label i = $a //SEG11 [5] phi from main to main::@1 [phi:main->main::@1] b1_from_main: - //SEG12 [5] phi (byte*) main::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + //SEG12 [5] phi (byte*) main::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -1722,7 +1722,7 @@ main: { bne !+ inc sc+1 !: - //SEG18 [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto main::@1 -- pbuz1_lt_vwuc1_then_la1 + //SEG18 [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto main::@1 -- pbuz1_lt_vwuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bcc b1_from_b1 @@ -1741,13 +1741,13 @@ main: { jmp b5 //SEG22 main::@5 b5: - //SEG23 [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG23 [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b5 //SEG24 [12] phi from main::@5 to main::@6 [phi:main::@5->main::@6] b6_from_b5: - //SEG25 [12] phi (byte*) main::screen#13 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::@5->main::@6#0] -- pbuz1=pbuc1 + //SEG25 [12] phi (byte*) main::screen#13 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::@5->main::@6#0] -- pbuz1=pbuc1 lda #<$400 sta screen lda #>$400 @@ -1795,7 +1795,7 @@ main: { jmp b7 //SEG44 main::@7 b7: - //SEG45 [18] (byte~) main::$5 ← (byte) main::row_pressed_bits#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG45 [18] (byte~) main::$5 ← (byte) main::row_pressed_bits#2 & (byte/word/signed word/dword/signed dword) $80 -- vbuz1=vbuz2_band_vbuc1 lda #$80 and row_pressed_bits sta _5 @@ -1824,7 +1824,7 @@ main: { jmp b20 //SEG53 main::@20 b20: - //SEG54 [24] (byte*) main::screen#1 ← (byte*) main::screen#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG54 [24] (byte*) main::screen#1 ← (byte*) main::screen#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda screen clc adc #$28 @@ -1841,7 +1841,7 @@ main: { jmp b21 //SEG57 main::@21 b21: - //SEG58 [27] (byte*) main::screen#2 ← (byte*) main::screen#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz2_plus_vbuc1 + //SEG58 [27] (byte*) main::screen#2 ← (byte*) main::screen#1 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc screen @@ -1879,7 +1879,7 @@ main: { //SEG70 [32] (byte) main::key#0 ← (byte) keyboard_get_keycode::return#2 -- vbuz1=vbuz2 lda keyboard_get_keycode.return_2 sta key - //SEG71 [33] if((byte) main::key#0==(byte/signed byte/word/signed word/dword/signed dword) 63) goto main::@11 -- vbuz1_eq_vbuc1_then_la1 + //SEG71 [33] if((byte) main::key#0==(byte/signed byte/word/signed word/dword/signed dword) $3f) goto main::@11 -- vbuz1_eq_vbuc1_then_la1 lda key cmp #$3f beq b11_from_b29 @@ -1923,7 +1923,7 @@ main: { b11: //SEG85 [42] (byte) main::ch#1 ← ++ (byte) main::ch#2 -- vbuz1=_inc_vbuz1 inc ch - //SEG86 [43] if((byte) main::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) 64) goto main::@10 -- vbuz1_neq_vbuc1_then_la1 + //SEG86 [43] if((byte) main::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) $40) goto main::@10 -- vbuz1_neq_vbuc1_then_la1 lda ch cmp #$40 bne b10_from_b11 @@ -2054,7 +2054,7 @@ keyboard_get_keycode: { //SEG117 keyboard_init // Initialize keyboard reading by setting CIA#$ Data Direction Registers keyboard_init: { - //SEG118 [63] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 -- _deref_pbuc1=vbuc2 + //SEG118 [63] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) $ff -- _deref_pbuc1=vbuc2 // Keyboard Matrix Columns Write Mode lda #$ff sta CIA1_PORT_A_DDR @@ -2078,15 +2078,15 @@ keyboard_init: { 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 [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [18] (byte~) main::$5 ← (byte) main::row_pressed_bits#2 & (byte/word/signed word/dword/signed dword) 128 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 main::$5 ] ( main:2 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 main::$5 ] ) always clobbers reg byte a +Statement [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto main::@1 [ main::sc#1 ] ( main:2 [ main::sc#1 ] ) always clobbers reg byte a +Statement [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@5 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [18] (byte~) main::$5 ← (byte) main::row_pressed_bits#2 & (byte/word/signed word/dword/signed dword) $80 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 main::$5 ] ( main:2 [ main::row#2 main::screen#13 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 [20] *((byte*) main::screen#13 + (byte) main::col#2) ← (byte) '0' [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] ) always clobbers reg byte a -Statement [24] (byte*) main::screen#1 ← (byte*) main::screen#13 + (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 [27] (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 [24] (byte*) main::screen#1 ← (byte*) main::screen#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ main::row#2 main::screen#1 ] ( main:2 [ main::row#2 main::screen#1 ] ) always clobbers reg byte a +Statement [27] (byte*) main::screen#2 ← (byte*) main::screen#1 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ main::screen#2 ] ( main:2 [ main::screen#2 ] ) always clobbers reg byte a Statement [45] *((byte*) main::screen#2 + (byte) main::i#4) ← (byte) ' ' [ main::screen#2 main::i#4 ] ( main:2 [ main::screen#2 main::i#4 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:10 [ main::i#4 main::i#10 main::i#6 main::i#1 main::i#2 ] Statement [48] *((byte*) main::screen#13 + (byte) main::col#2) ← (byte) '1' [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] ) always clobbers reg byte a @@ -2098,15 +2098,15 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:22 [ k Statement [55] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:35 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) always clobbers reg byte a Statement [58] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#2) [ ] ( main:2::keyboard_matrix_read:14 [ main::row#2 main::screen#13 ] main:2::keyboard_key_pressed:35::keyboard_matrix_read:52 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a Statement [59] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:14 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:35::keyboard_matrix_read:52 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a -Statement [63] *((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 [63] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) $ff [ ] ( main:2::keyboard_init:10 [ ] ) always clobbers reg byte a Statement [64] *((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 [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [18] (byte~) main::$5 ← (byte) main::row_pressed_bits#2 & (byte/word/signed word/dword/signed dword) 128 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 main::$5 ] ( main:2 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 main::$5 ] ) always clobbers reg byte a +Statement [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto main::@1 [ main::sc#1 ] ( main:2 [ main::sc#1 ] ) always clobbers reg byte a +Statement [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@5 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [18] (byte~) main::$5 ← (byte) main::row_pressed_bits#2 & (byte/word/signed word/dword/signed dword) $80 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 main::$5 ] ( main:2 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 main::$5 ] ) always clobbers reg byte a Statement [20] *((byte*) main::screen#13 + (byte) main::col#2) ← (byte) '0' [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] ) always clobbers reg byte a -Statement [24] (byte*) main::screen#1 ← (byte*) main::screen#13 + (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 [27] (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 [24] (byte*) main::screen#1 ← (byte*) main::screen#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ main::row#2 main::screen#1 ] ( main:2 [ main::row#2 main::screen#1 ] ) always clobbers reg byte a +Statement [27] (byte*) main::screen#2 ← (byte*) main::screen#1 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ main::screen#2 ] ( main:2 [ main::screen#2 ] ) always clobbers reg byte a Statement [39] *((byte*) main::screen#2 + (byte) main::i#10) ← (byte) main::ch#2 [ main::screen#2 main::ch#2 main::i#10 ] ( main:2 [ main::screen#2 main::ch#2 main::i#10 ] ) always clobbers reg byte a Statement [45] *((byte*) main::screen#2 + (byte) main::i#4) ← (byte) ' ' [ main::screen#2 main::i#4 ] ( main:2 [ main::screen#2 main::i#4 ] ) always clobbers reg byte a Statement [48] *((byte*) main::screen#13 + (byte) main::col#2) ← (byte) '1' [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] ) always clobbers reg byte a @@ -2115,7 +2115,7 @@ Statement [50] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pre Statement [55] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:35 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) always clobbers reg byte a Statement [58] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#2) [ ] ( main:2::keyboard_matrix_read:14 [ main::row#2 main::screen#13 ] main:2::keyboard_key_pressed:35::keyboard_matrix_read:52 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a Statement [59] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:14 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:35::keyboard_matrix_read:52 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a -Statement [63] *((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 [63] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) $ff [ ] ( main:2::keyboard_init:10 [ ] ) always clobbers reg byte a Statement [64] *((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 , @@ -2267,7 +2267,7 @@ main: { .label ch = 4 //SEG11 [5] phi from main to main::@1 [phi:main->main::@1] b1_from_main: - //SEG12 [5] phi (byte*) main::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + //SEG12 [5] phi (byte*) main::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -2289,7 +2289,7 @@ main: { bne !+ inc sc+1 !: - //SEG18 [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto main::@1 -- pbuz1_lt_vwuc1_then_la1 + //SEG18 [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto main::@1 -- pbuz1_lt_vwuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bcc b1_from_b1 @@ -2308,13 +2308,13 @@ main: { jmp b5 //SEG22 main::@5 b5: - //SEG23 [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG23 [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b5 //SEG24 [12] phi from main::@5 to main::@6 [phi:main::@5->main::@6] b6_from_b5: - //SEG25 [12] phi (byte*) main::screen#13 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::@5->main::@6#0] -- pbuz1=pbuc1 + //SEG25 [12] phi (byte*) main::screen#13 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::@5->main::@6#0] -- pbuz1=pbuc1 lda #<$400 sta screen lda #>$400 @@ -2357,7 +2357,7 @@ main: { jmp b7 //SEG44 main::@7 b7: - //SEG45 [18] (byte~) main::$5 ← (byte) main::row_pressed_bits#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuxx_band_vbuc1 + //SEG45 [18] (byte~) main::$5 ← (byte) main::row_pressed_bits#2 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuxx_band_vbuc1 txa and #$80 //SEG46 [19] if((byte~) main::$5!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@8 -- vbuaa_neq_0_then_la1 @@ -2384,7 +2384,7 @@ main: { jmp b20 //SEG53 main::@20 b20: - //SEG54 [24] (byte*) main::screen#1 ← (byte*) main::screen#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG54 [24] (byte*) main::screen#1 ← (byte*) main::screen#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda screen clc adc #$28 @@ -2401,7 +2401,7 @@ main: { jmp b21 //SEG57 main::@21 b21: - //SEG58 [27] (byte*) main::screen#2 ← (byte*) main::screen#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG58 [27] (byte*) main::screen#2 ← (byte*) main::screen#1 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda screen clc adc #$28 @@ -2433,7 +2433,7 @@ main: { //SEG69 main::@29 b29: //SEG70 [32] (byte) main::key#0 ← (byte) keyboard_get_keycode::return#2 - //SEG71 [33] if((byte) main::key#0==(byte/signed byte/word/signed word/dword/signed dword) 63) goto main::@11 -- vbuaa_eq_vbuc1_then_la1 + //SEG71 [33] if((byte) main::key#0==(byte/signed byte/word/signed word/dword/signed dword) $3f) goto main::@11 -- vbuaa_eq_vbuc1_then_la1 cmp #$3f beq b11_from_b29 jmp b22 @@ -2471,7 +2471,7 @@ main: { b11: //SEG85 [42] (byte) main::ch#1 ← ++ (byte) main::ch#2 -- vbuz1=_inc_vbuz1 inc ch - //SEG86 [43] if((byte) main::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) 64) goto main::@10 -- vbuz1_neq_vbuc1_then_la1 + //SEG86 [43] if((byte) main::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) $40) goto main::@10 -- vbuz1_neq_vbuc1_then_la1 lda ch cmp #$40 bne b10_from_b11 @@ -2577,7 +2577,7 @@ keyboard_get_keycode: { //SEG117 keyboard_init // Initialize keyboard reading by setting CIA#$ Data Direction Registers keyboard_init: { - //SEG118 [63] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 -- _deref_pbuc1=vbuc2 + //SEG118 [63] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) $ff -- _deref_pbuc1=vbuc2 // Keyboard Matrix Columns Write Mode lda #$ff sta CIA1_PORT_A_DDR @@ -2699,13 +2699,13 @@ FINAL SYMBOL TABLE (byte*) CHARGEN (byte*) CIA1_INTERRUPT (byte*) CIA1_PORT_A -(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) 56320 +(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) $dc00 (byte*) CIA1_PORT_A_DDR -(const byte*) CIA1_PORT_A_DDR#0 CIA1_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56322 +(const byte*) CIA1_PORT_A_DDR#0 CIA1_PORT_A_DDR = ((byte*))(word/dword/signed dword) $dc02 (byte*) CIA1_PORT_B -(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) 56321 +(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) $dc01 (byte*) CIA1_PORT_B_DDR -(const byte*) CIA1_PORT_B_DDR#0 CIA1_PORT_B_DDR = ((byte*))(word/dword/signed dword) 56323 +(const byte*) CIA1_PORT_B_DDR#0 CIA1_PORT_B_DDR = ((byte*))(word/dword/signed dword) $dc03 (byte*) CIA2_INTERRUPT (byte*) CIA2_PORT_A (byte*) CIA2_PORT_A_DDR @@ -2729,124 +2729,124 @@ FINAL SYMBOL TABLE (byte*) IRQ_STATUS (void()**) KERNEL_IRQ (byte) KEY_0 -(const byte) KEY_0#0 KEY_0 = (byte/signed byte/word/signed word/dword/signed dword) 35 +(const byte) KEY_0#0 KEY_0 = (byte/signed byte/word/signed word/dword/signed dword) $23 (byte) KEY_1 -(const byte) KEY_1#0 KEY_1 = (byte/signed byte/word/signed word/dword/signed dword) 56 +(const byte) KEY_1#0 KEY_1 = (byte/signed byte/word/signed word/dword/signed dword) $38 (byte) KEY_2 -(const byte) KEY_2#0 KEY_2 = (byte/signed byte/word/signed word/dword/signed dword) 59 +(const byte) KEY_2#0 KEY_2 = (byte/signed byte/word/signed word/dword/signed dword) $3b (byte) KEY_3 (const byte) KEY_3#0 KEY_3 = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) KEY_4 -(const byte) KEY_4#0 KEY_4 = (byte/signed byte/word/signed word/dword/signed dword) 11 +(const byte) KEY_4#0 KEY_4 = (byte/signed byte/word/signed word/dword/signed dword) $b (byte) KEY_5 -(const byte) KEY_5#0 KEY_5 = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) KEY_5#0 KEY_5 = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) KEY_6 -(const byte) KEY_6#0 KEY_6 = (byte/signed byte/word/signed word/dword/signed dword) 19 +(const byte) KEY_6#0 KEY_6 = (byte/signed byte/word/signed word/dword/signed dword) $13 (byte) KEY_7 -(const byte) KEY_7#0 KEY_7 = (byte/signed byte/word/signed word/dword/signed dword) 24 +(const byte) KEY_7#0 KEY_7 = (byte/signed byte/word/signed word/dword/signed dword) $18 (byte) KEY_8 -(const byte) KEY_8#0 KEY_8 = (byte/signed byte/word/signed word/dword/signed dword) 27 +(const byte) KEY_8#0 KEY_8 = (byte/signed byte/word/signed word/dword/signed dword) $1b (byte) KEY_9 -(const byte) KEY_9#0 KEY_9 = (byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte) KEY_9#0 KEY_9 = (byte/signed byte/word/signed word/dword/signed dword) $20 (byte) KEY_A -(const byte) KEY_A#0 KEY_A = (byte/signed byte/word/signed word/dword/signed dword) 10 +(const byte) KEY_A#0 KEY_A = (byte/signed byte/word/signed word/dword/signed dword) $a (byte) KEY_ARROW_LEFT -(const byte) KEY_ARROW_LEFT#0 KEY_ARROW_LEFT = (byte/signed byte/word/signed word/dword/signed dword) 57 +(const byte) KEY_ARROW_LEFT#0 KEY_ARROW_LEFT = (byte/signed byte/word/signed word/dword/signed dword) $39 (byte) KEY_ARROW_UP -(const byte) KEY_ARROW_UP#0 KEY_ARROW_UP = (byte/signed byte/word/signed word/dword/signed dword) 54 +(const byte) KEY_ARROW_UP#0 KEY_ARROW_UP = (byte/signed byte/word/signed word/dword/signed dword) $36 (byte) KEY_ASTERISK -(const byte) KEY_ASTERISK#0 KEY_ASTERISK = (byte/signed byte/word/signed word/dword/signed dword) 49 +(const byte) KEY_ASTERISK#0 KEY_ASTERISK = (byte/signed byte/word/signed word/dword/signed dword) $31 (byte) KEY_AT -(const byte) KEY_AT#0 KEY_AT = (byte/signed byte/word/signed word/dword/signed dword) 46 +(const byte) KEY_AT#0 KEY_AT = (byte/signed byte/word/signed word/dword/signed dword) $2e (byte) KEY_B -(const byte) KEY_B#0 KEY_B = (byte/signed byte/word/signed word/dword/signed dword) 28 +(const byte) KEY_B#0 KEY_B = (byte/signed byte/word/signed word/dword/signed dword) $1c (byte) KEY_C -(const byte) KEY_C#0 KEY_C = (byte/signed byte/word/signed word/dword/signed dword) 20 +(const byte) KEY_C#0 KEY_C = (byte/signed byte/word/signed word/dword/signed dword) $14 (byte) KEY_COLON -(const byte) KEY_COLON#0 KEY_COLON = (byte/signed byte/word/signed word/dword/signed dword) 45 +(const byte) KEY_COLON#0 KEY_COLON = (byte/signed byte/word/signed word/dword/signed dword) $2d (byte) KEY_COMMA -(const byte) KEY_COMMA#0 KEY_COMMA = (byte/signed byte/word/signed word/dword/signed dword) 47 +(const byte) KEY_COMMA#0 KEY_COMMA = (byte/signed byte/word/signed word/dword/signed dword) $2f (byte) KEY_COMMODORE (byte) KEY_CRSR_DOWN (byte) KEY_CRSR_RIGHT (byte) KEY_CTRL (byte) KEY_D -(const byte) KEY_D#0 KEY_D = (byte/signed byte/word/signed word/dword/signed dword) 18 +(const byte) KEY_D#0 KEY_D = (byte/signed byte/word/signed word/dword/signed dword) $12 (byte) KEY_DEL (byte) KEY_DOT -(const byte) KEY_DOT#0 KEY_DOT = (byte/signed byte/word/signed word/dword/signed dword) 44 +(const byte) KEY_DOT#0 KEY_DOT = (byte/signed byte/word/signed word/dword/signed dword) $2c (byte) KEY_E -(const byte) KEY_E#0 KEY_E = (byte/signed byte/word/signed word/dword/signed dword) 14 +(const byte) KEY_E#0 KEY_E = (byte/signed byte/word/signed word/dword/signed dword) $e (byte) KEY_EQUALS -(const byte) KEY_EQUALS#0 KEY_EQUALS = (byte/signed byte/word/signed word/dword/signed dword) 53 +(const byte) KEY_EQUALS#0 KEY_EQUALS = (byte/signed byte/word/signed word/dword/signed dword) $35 (byte) KEY_F -(const byte) KEY_F#0 KEY_F = (byte/signed byte/word/signed word/dword/signed dword) 21 +(const byte) KEY_F#0 KEY_F = (byte/signed byte/word/signed word/dword/signed dword) $15 (byte) KEY_F1 (byte) KEY_F3 (byte) KEY_F5 (byte) KEY_F7 (byte) KEY_G -(const byte) KEY_G#0 KEY_G = (byte/signed byte/word/signed word/dword/signed dword) 26 +(const byte) KEY_G#0 KEY_G = (byte/signed byte/word/signed word/dword/signed dword) $1a (byte) KEY_H -(const byte) KEY_H#0 KEY_H = (byte/signed byte/word/signed word/dword/signed dword) 29 +(const byte) KEY_H#0 KEY_H = (byte/signed byte/word/signed word/dword/signed dword) $1d (byte) KEY_HOME (byte) KEY_I -(const byte) KEY_I#0 KEY_I = (byte/signed byte/word/signed word/dword/signed dword) 33 +(const byte) KEY_I#0 KEY_I = (byte/signed byte/word/signed word/dword/signed dword) $21 (byte) KEY_J -(const byte) KEY_J#0 KEY_J = (byte/signed byte/word/signed word/dword/signed dword) 34 +(const byte) KEY_J#0 KEY_J = (byte/signed byte/word/signed word/dword/signed dword) $22 (byte) KEY_K -(const byte) KEY_K#0 KEY_K = (byte/signed byte/word/signed word/dword/signed dword) 37 +(const byte) KEY_K#0 KEY_K = (byte/signed byte/word/signed word/dword/signed dword) $25 (byte) KEY_L -(const byte) KEY_L#0 KEY_L = (byte/signed byte/word/signed word/dword/signed dword) 42 +(const byte) KEY_L#0 KEY_L = (byte/signed byte/word/signed word/dword/signed dword) $2a (byte) KEY_LSHIFT (byte) KEY_M -(const byte) KEY_M#0 KEY_M = (byte/signed byte/word/signed word/dword/signed dword) 36 +(const byte) KEY_M#0 KEY_M = (byte/signed byte/word/signed word/dword/signed dword) $24 (byte) KEY_MINUS -(const byte) KEY_MINUS#0 KEY_MINUS = (byte/signed byte/word/signed word/dword/signed dword) 43 +(const byte) KEY_MINUS#0 KEY_MINUS = (byte/signed byte/word/signed word/dword/signed dword) $2b (byte) KEY_MODIFIER_COMMODORE (byte) KEY_MODIFIER_CTRL (byte) KEY_MODIFIER_LSHIFT (byte) KEY_MODIFIER_RSHIFT (byte) KEY_MODIFIER_SHIFT (byte) KEY_N -(const byte) KEY_N#0 KEY_N = (byte/signed byte/word/signed word/dword/signed dword) 39 +(const byte) KEY_N#0 KEY_N = (byte/signed byte/word/signed word/dword/signed dword) $27 (byte) KEY_O -(const byte) KEY_O#0 KEY_O = (byte/signed byte/word/signed word/dword/signed dword) 38 +(const byte) KEY_O#0 KEY_O = (byte/signed byte/word/signed word/dword/signed dword) $26 (byte) KEY_P -(const byte) KEY_P#0 KEY_P = (byte/signed byte/word/signed word/dword/signed dword) 41 +(const byte) KEY_P#0 KEY_P = (byte/signed byte/word/signed word/dword/signed dword) $29 (byte) KEY_PLUS -(const byte) KEY_PLUS#0 KEY_PLUS = (byte/signed byte/word/signed word/dword/signed dword) 40 +(const byte) KEY_PLUS#0 KEY_PLUS = (byte/signed byte/word/signed word/dword/signed dword) $28 (byte) KEY_POUND -(const byte) KEY_POUND#0 KEY_POUND = (byte/signed byte/word/signed word/dword/signed dword) 48 +(const byte) KEY_POUND#0 KEY_POUND = (byte/signed byte/word/signed word/dword/signed dword) $30 (byte) KEY_Q -(const byte) KEY_Q#0 KEY_Q = (byte/signed byte/word/signed word/dword/signed dword) 62 +(const byte) KEY_Q#0 KEY_Q = (byte/signed byte/word/signed word/dword/signed dword) $3e (byte) KEY_R -(const byte) KEY_R#0 KEY_R = (byte/signed byte/word/signed word/dword/signed dword) 17 +(const byte) KEY_R#0 KEY_R = (byte/signed byte/word/signed word/dword/signed dword) $11 (byte) KEY_RETURN (byte) KEY_RSHIFT (byte) KEY_RUNSTOP (byte) KEY_S -(const byte) KEY_S#0 KEY_S = (byte/signed byte/word/signed word/dword/signed dword) 13 +(const byte) KEY_S#0 KEY_S = (byte/signed byte/word/signed word/dword/signed dword) $d (byte) KEY_SEMICOLON -(const byte) KEY_SEMICOLON#0 KEY_SEMICOLON = (byte/signed byte/word/signed word/dword/signed dword) 50 +(const byte) KEY_SEMICOLON#0 KEY_SEMICOLON = (byte/signed byte/word/signed word/dword/signed dword) $32 (byte) KEY_SLASH -(const byte) KEY_SLASH#0 KEY_SLASH = (byte/signed byte/word/signed word/dword/signed dword) 55 +(const byte) KEY_SLASH#0 KEY_SLASH = (byte/signed byte/word/signed word/dword/signed dword) $37 (byte) KEY_SPACE -(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) 60 +(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) $3c (byte) KEY_T -(const byte) KEY_T#0 KEY_T = (byte/signed byte/word/signed word/dword/signed dword) 22 +(const byte) KEY_T#0 KEY_T = (byte/signed byte/word/signed word/dword/signed dword) $16 (byte) KEY_U -(const byte) KEY_U#0 KEY_U = (byte/signed byte/word/signed word/dword/signed dword) 30 +(const byte) KEY_U#0 KEY_U = (byte/signed byte/word/signed word/dword/signed dword) $1e (byte) KEY_V -(const byte) KEY_V#0 KEY_V = (byte/signed byte/word/signed word/dword/signed dword) 31 +(const byte) KEY_V#0 KEY_V = (byte/signed byte/word/signed word/dword/signed dword) $1f (byte) KEY_W (const byte) KEY_W#0 KEY_W = (byte/signed byte/word/signed word/dword/signed dword) 9 (byte) KEY_X -(const byte) KEY_X#0 KEY_X = (byte/signed byte/word/signed word/dword/signed dword) 23 +(const byte) KEY_X#0 KEY_X = (byte/signed byte/word/signed word/dword/signed dword) $17 (byte) KEY_Y -(const byte) KEY_Y#0 KEY_Y = (byte/signed byte/word/signed word/dword/signed dword) 25 +(const byte) KEY_Y#0 KEY_Y = (byte/signed byte/word/signed word/dword/signed dword) $19 (byte) KEY_Z -(const byte) KEY_Z#0 KEY_Z = (byte/signed byte/word/signed word/dword/signed dword) 12 +(const byte) KEY_Z#0 KEY_Z = (byte/signed byte/word/signed word/dword/signed dword) $c (byte*) LIGHTPEN_X (byte*) LIGHTPEN_Y (byte) LIGHT_BLUE @@ -2864,7 +2864,7 @@ FINAL SYMBOL TABLE (byte) PROCPORT_RAM_IO (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE @@ -2891,7 +2891,7 @@ FINAL SYMBOL TABLE (byte) WHITE (byte) YELLOW (byte[]) keyboard_char_keycodes -(const byte[]) keyboard_char_keycodes#0 keyboard_char_keycodes = { (const byte) KEY_AT#0, (const byte) KEY_A#0, (const byte) KEY_B#0, (const byte) KEY_C#0, (const byte) KEY_D#0, (const byte) KEY_E#0, (const byte) KEY_F#0, (const byte) KEY_G#0, (const byte) KEY_H#0, (const byte) KEY_I#0, (const byte) KEY_J#0, (const byte) KEY_K#0, (const byte) KEY_L#0, (const byte) KEY_M#0, (const byte) KEY_N#0, (const byte) KEY_O#0, (const byte) KEY_P#0, (const byte) KEY_Q#0, (const byte) KEY_R#0, (const byte) KEY_S#0, (const byte) KEY_T#0, (const byte) KEY_U#0, (const byte) KEY_V#0, (const byte) KEY_W#0, (const byte) KEY_X#0, (const byte) KEY_Y#0, (const byte) KEY_Z#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (const byte) KEY_POUND#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (const byte) KEY_ARROW_UP#0, (const byte) KEY_ARROW_LEFT#0, (const byte) KEY_SPACE#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (const byte) KEY_ASTERISK#0, (const byte) KEY_PLUS#0, (const byte) KEY_COMMA#0, (const byte) KEY_MINUS#0, (const byte) KEY_DOT#0, (const byte) KEY_SLASH#0, (const byte) KEY_0#0, (const byte) KEY_1#0, (const byte) KEY_2#0, (const byte) KEY_3#0, (const byte) KEY_4#0, (const byte) KEY_5#0, (const byte) KEY_6#0, (const byte) KEY_7#0, (const byte) KEY_8#0, (const byte) KEY_9#0, (const byte) KEY_COLON#0, (const byte) KEY_SEMICOLON#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (const byte) KEY_EQUALS#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } +(const byte[]) keyboard_char_keycodes#0 keyboard_char_keycodes = { (const byte) KEY_AT#0, (const byte) KEY_A#0, (const byte) KEY_B#0, (const byte) KEY_C#0, (const byte) KEY_D#0, (const byte) KEY_E#0, (const byte) KEY_F#0, (const byte) KEY_G#0, (const byte) KEY_H#0, (const byte) KEY_I#0, (const byte) KEY_J#0, (const byte) KEY_K#0, (const byte) KEY_L#0, (const byte) KEY_M#0, (const byte) KEY_N#0, (const byte) KEY_O#0, (const byte) KEY_P#0, (const byte) KEY_Q#0, (const byte) KEY_R#0, (const byte) KEY_S#0, (const byte) KEY_T#0, (const byte) KEY_U#0, (const byte) KEY_V#0, (const byte) KEY_W#0, (const byte) KEY_X#0, (const byte) KEY_Y#0, (const byte) KEY_Z#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (const byte) KEY_POUND#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (const byte) KEY_ARROW_UP#0, (const byte) KEY_ARROW_LEFT#0, (const byte) KEY_SPACE#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (const byte) KEY_ASTERISK#0, (const byte) KEY_PLUS#0, (const byte) KEY_COMMA#0, (const byte) KEY_MINUS#0, (const byte) KEY_DOT#0, (const byte) KEY_SLASH#0, (const byte) KEY_0#0, (const byte) KEY_1#0, (const byte) KEY_2#0, (const byte) KEY_3#0, (const byte) KEY_4#0, (const byte) KEY_5#0, (const byte) KEY_6#0, (const byte) KEY_7#0, (const byte) KEY_8#0, (const byte) KEY_9#0, (const byte) KEY_COLON#0, (const byte) KEY_SEMICOLON#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (const byte) KEY_EQUALS#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f } (byte[8]) keyboard_events (byte) keyboard_events_size (byte()) keyboard_get_keycode((byte) keyboard_get_keycode::ch) @@ -2917,7 +2917,7 @@ FINAL SYMBOL TABLE (byte) keyboard_key_pressed::rowidx (byte) keyboard_key_pressed::rowidx#0 reg byte a 4.0 (byte[8]) keyboard_matrix_col_bitmask -(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $10, (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/word/signed word/dword/signed dword) $80 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (label) keyboard_matrix_read::@return (byte) keyboard_matrix_read::return @@ -2930,7 +2930,7 @@ FINAL SYMBOL TABLE (byte) keyboard_matrix_read::rowid#1 reg byte y 202.0 (byte) keyboard_matrix_read::rowid#2 reg byte y 105.0 (byte[8]) keyboard_matrix_row_bitmask -(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } +(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) $fe, (byte/word/signed word/dword/signed dword) $fd, (byte/word/signed word/dword/signed dword) $fb, (byte/word/signed word/dword/signed dword) $f7, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $bf, (byte/signed byte/word/signed word/dword/signed dword) $7f } (byte) keyboard_modifiers (byte[8]) keyboard_scan_values (void()) main() @@ -3089,7 +3089,7 @@ main: { .label row = 4 .label ch = 4 //SEG11 [5] phi from main to main::@1 [phi:main->main::@1] - //SEG12 [5] phi (byte*) main::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + //SEG12 [5] phi (byte*) main::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -3108,7 +3108,7 @@ main: { bne !+ inc sc+1 !: - //SEG18 [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto main::@1 -- pbuz1_lt_vwuc1_then_la1 + //SEG18 [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto main::@1 -- pbuz1_lt_vwuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bcc b1 @@ -3123,12 +3123,12 @@ main: { jsr keyboard_init //SEG22 main::@5 b5: - //SEG23 [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG23 [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) $ff) goto main::@5 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b5 //SEG24 [12] phi from main::@5 to main::@6 [phi:main::@5->main::@6] - //SEG25 [12] phi (byte*) main::screen#13 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main::@5->main::@6#0] -- pbuz1=pbuc1 + //SEG25 [12] phi (byte*) main::screen#13 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main::@5->main::@6#0] -- pbuz1=pbuc1 lda #<$400 sta screen lda #>$400 @@ -3161,7 +3161,7 @@ main: { //SEG43 [17] phi (byte) main::row_pressed_bits#2 = (byte) main::row_pressed_bits#1 [phi:main::@9->main::@7#1] -- register_copy //SEG44 main::@7 b7: - //SEG45 [18] (byte~) main::$5 ← (byte) main::row_pressed_bits#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuxx_band_vbuc1 + //SEG45 [18] (byte~) main::$5 ← (byte) main::row_pressed_bits#2 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuxx_band_vbuc1 txa and #$80 //SEG46 [19] if((byte~) main::$5!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@8 -- vbuaa_neq_0_then_la1 @@ -3183,7 +3183,7 @@ main: { cpy #8 bne b7 //SEG53 main::@20 - //SEG54 [24] (byte*) main::screen#1 ← (byte*) main::screen#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG54 [24] (byte*) main::screen#1 ← (byte*) main::screen#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda screen clc adc #$28 @@ -3198,7 +3198,7 @@ main: { cmp #8 bne b6 //SEG57 main::@21 - //SEG58 [27] (byte*) main::screen#2 ← (byte*) main::screen#1 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG58 [27] (byte*) main::screen#2 ← (byte*) main::screen#1 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda screen clc adc #$28 @@ -3224,7 +3224,7 @@ main: { //SEG68 [31] (byte) keyboard_get_keycode::return#2 ← (byte) keyboard_get_keycode::return#0 //SEG69 main::@29 //SEG70 [32] (byte) main::key#0 ← (byte) keyboard_get_keycode::return#2 - //SEG71 [33] if((byte) main::key#0==(byte/signed byte/word/signed word/dword/signed dword) 63) goto main::@11 -- vbuaa_eq_vbuc1_then_la1 + //SEG71 [33] if((byte) main::key#0==(byte/signed byte/word/signed word/dword/signed dword) $3f) goto main::@11 -- vbuaa_eq_vbuc1_then_la1 cmp #$3f beq b11 //SEG72 main::@22 @@ -3252,7 +3252,7 @@ main: { b11: //SEG85 [42] (byte) main::ch#1 ← ++ (byte) main::ch#2 -- vbuz1=_inc_vbuz1 inc ch - //SEG86 [43] if((byte) main::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) 64) goto main::@10 -- vbuz1_neq_vbuc1_then_la1 + //SEG86 [43] if((byte) main::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) $40) goto main::@10 -- vbuz1_neq_vbuc1_then_la1 lda ch cmp #$40 bne b10 @@ -3346,7 +3346,7 @@ keyboard_get_keycode: { //SEG117 keyboard_init // Initialize keyboard reading by setting CIA#$ Data Direction Registers keyboard_init: { - //SEG118 [63] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 -- _deref_pbuc1=vbuc2 + //SEG118 [63] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) $ff -- _deref_pbuc1=vbuc2 // Keyboard Matrix Columns Write Mode lda #$ff sta CIA1_PORT_A_DDR diff --git a/src/test/ref/test-keyboard.sym b/src/test/ref/test-keyboard.sym index 5e2d6cf28..326c4452a 100644 --- a/src/test/ref/test-keyboard.sym +++ b/src/test/ref/test-keyboard.sym @@ -13,13 +13,13 @@ (byte*) CHARGEN (byte*) CIA1_INTERRUPT (byte*) CIA1_PORT_A -(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) 56320 +(const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) $dc00 (byte*) CIA1_PORT_A_DDR -(const byte*) CIA1_PORT_A_DDR#0 CIA1_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56322 +(const byte*) CIA1_PORT_A_DDR#0 CIA1_PORT_A_DDR = ((byte*))(word/dword/signed dword) $dc02 (byte*) CIA1_PORT_B -(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) 56321 +(const byte*) CIA1_PORT_B#0 CIA1_PORT_B = ((byte*))(word/dword/signed dword) $dc01 (byte*) CIA1_PORT_B_DDR -(const byte*) CIA1_PORT_B_DDR#0 CIA1_PORT_B_DDR = ((byte*))(word/dword/signed dword) 56323 +(const byte*) CIA1_PORT_B_DDR#0 CIA1_PORT_B_DDR = ((byte*))(word/dword/signed dword) $dc03 (byte*) CIA2_INTERRUPT (byte*) CIA2_PORT_A (byte*) CIA2_PORT_A_DDR @@ -43,124 +43,124 @@ (byte*) IRQ_STATUS (void()**) KERNEL_IRQ (byte) KEY_0 -(const byte) KEY_0#0 KEY_0 = (byte/signed byte/word/signed word/dword/signed dword) 35 +(const byte) KEY_0#0 KEY_0 = (byte/signed byte/word/signed word/dword/signed dword) $23 (byte) KEY_1 -(const byte) KEY_1#0 KEY_1 = (byte/signed byte/word/signed word/dword/signed dword) 56 +(const byte) KEY_1#0 KEY_1 = (byte/signed byte/word/signed word/dword/signed dword) $38 (byte) KEY_2 -(const byte) KEY_2#0 KEY_2 = (byte/signed byte/word/signed word/dword/signed dword) 59 +(const byte) KEY_2#0 KEY_2 = (byte/signed byte/word/signed word/dword/signed dword) $3b (byte) KEY_3 (const byte) KEY_3#0 KEY_3 = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) KEY_4 -(const byte) KEY_4#0 KEY_4 = (byte/signed byte/word/signed word/dword/signed dword) 11 +(const byte) KEY_4#0 KEY_4 = (byte/signed byte/word/signed word/dword/signed dword) $b (byte) KEY_5 -(const byte) KEY_5#0 KEY_5 = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) KEY_5#0 KEY_5 = (byte/signed byte/word/signed word/dword/signed dword) $10 (byte) KEY_6 -(const byte) KEY_6#0 KEY_6 = (byte/signed byte/word/signed word/dword/signed dword) 19 +(const byte) KEY_6#0 KEY_6 = (byte/signed byte/word/signed word/dword/signed dword) $13 (byte) KEY_7 -(const byte) KEY_7#0 KEY_7 = (byte/signed byte/word/signed word/dword/signed dword) 24 +(const byte) KEY_7#0 KEY_7 = (byte/signed byte/word/signed word/dword/signed dword) $18 (byte) KEY_8 -(const byte) KEY_8#0 KEY_8 = (byte/signed byte/word/signed word/dword/signed dword) 27 +(const byte) KEY_8#0 KEY_8 = (byte/signed byte/word/signed word/dword/signed dword) $1b (byte) KEY_9 -(const byte) KEY_9#0 KEY_9 = (byte/signed byte/word/signed word/dword/signed dword) 32 +(const byte) KEY_9#0 KEY_9 = (byte/signed byte/word/signed word/dword/signed dword) $20 (byte) KEY_A -(const byte) KEY_A#0 KEY_A = (byte/signed byte/word/signed word/dword/signed dword) 10 +(const byte) KEY_A#0 KEY_A = (byte/signed byte/word/signed word/dword/signed dword) $a (byte) KEY_ARROW_LEFT -(const byte) KEY_ARROW_LEFT#0 KEY_ARROW_LEFT = (byte/signed byte/word/signed word/dword/signed dword) 57 +(const byte) KEY_ARROW_LEFT#0 KEY_ARROW_LEFT = (byte/signed byte/word/signed word/dword/signed dword) $39 (byte) KEY_ARROW_UP -(const byte) KEY_ARROW_UP#0 KEY_ARROW_UP = (byte/signed byte/word/signed word/dword/signed dword) 54 +(const byte) KEY_ARROW_UP#0 KEY_ARROW_UP = (byte/signed byte/word/signed word/dword/signed dword) $36 (byte) KEY_ASTERISK -(const byte) KEY_ASTERISK#0 KEY_ASTERISK = (byte/signed byte/word/signed word/dword/signed dword) 49 +(const byte) KEY_ASTERISK#0 KEY_ASTERISK = (byte/signed byte/word/signed word/dword/signed dword) $31 (byte) KEY_AT -(const byte) KEY_AT#0 KEY_AT = (byte/signed byte/word/signed word/dword/signed dword) 46 +(const byte) KEY_AT#0 KEY_AT = (byte/signed byte/word/signed word/dword/signed dword) $2e (byte) KEY_B -(const byte) KEY_B#0 KEY_B = (byte/signed byte/word/signed word/dword/signed dword) 28 +(const byte) KEY_B#0 KEY_B = (byte/signed byte/word/signed word/dword/signed dword) $1c (byte) KEY_C -(const byte) KEY_C#0 KEY_C = (byte/signed byte/word/signed word/dword/signed dword) 20 +(const byte) KEY_C#0 KEY_C = (byte/signed byte/word/signed word/dword/signed dword) $14 (byte) KEY_COLON -(const byte) KEY_COLON#0 KEY_COLON = (byte/signed byte/word/signed word/dword/signed dword) 45 +(const byte) KEY_COLON#0 KEY_COLON = (byte/signed byte/word/signed word/dword/signed dword) $2d (byte) KEY_COMMA -(const byte) KEY_COMMA#0 KEY_COMMA = (byte/signed byte/word/signed word/dword/signed dword) 47 +(const byte) KEY_COMMA#0 KEY_COMMA = (byte/signed byte/word/signed word/dword/signed dword) $2f (byte) KEY_COMMODORE (byte) KEY_CRSR_DOWN (byte) KEY_CRSR_RIGHT (byte) KEY_CTRL (byte) KEY_D -(const byte) KEY_D#0 KEY_D = (byte/signed byte/word/signed word/dword/signed dword) 18 +(const byte) KEY_D#0 KEY_D = (byte/signed byte/word/signed word/dword/signed dword) $12 (byte) KEY_DEL (byte) KEY_DOT -(const byte) KEY_DOT#0 KEY_DOT = (byte/signed byte/word/signed word/dword/signed dword) 44 +(const byte) KEY_DOT#0 KEY_DOT = (byte/signed byte/word/signed word/dword/signed dword) $2c (byte) KEY_E -(const byte) KEY_E#0 KEY_E = (byte/signed byte/word/signed word/dword/signed dword) 14 +(const byte) KEY_E#0 KEY_E = (byte/signed byte/word/signed word/dword/signed dword) $e (byte) KEY_EQUALS -(const byte) KEY_EQUALS#0 KEY_EQUALS = (byte/signed byte/word/signed word/dword/signed dword) 53 +(const byte) KEY_EQUALS#0 KEY_EQUALS = (byte/signed byte/word/signed word/dword/signed dword) $35 (byte) KEY_F -(const byte) KEY_F#0 KEY_F = (byte/signed byte/word/signed word/dword/signed dword) 21 +(const byte) KEY_F#0 KEY_F = (byte/signed byte/word/signed word/dword/signed dword) $15 (byte) KEY_F1 (byte) KEY_F3 (byte) KEY_F5 (byte) KEY_F7 (byte) KEY_G -(const byte) KEY_G#0 KEY_G = (byte/signed byte/word/signed word/dword/signed dword) 26 +(const byte) KEY_G#0 KEY_G = (byte/signed byte/word/signed word/dword/signed dword) $1a (byte) KEY_H -(const byte) KEY_H#0 KEY_H = (byte/signed byte/word/signed word/dword/signed dword) 29 +(const byte) KEY_H#0 KEY_H = (byte/signed byte/word/signed word/dword/signed dword) $1d (byte) KEY_HOME (byte) KEY_I -(const byte) KEY_I#0 KEY_I = (byte/signed byte/word/signed word/dword/signed dword) 33 +(const byte) KEY_I#0 KEY_I = (byte/signed byte/word/signed word/dword/signed dword) $21 (byte) KEY_J -(const byte) KEY_J#0 KEY_J = (byte/signed byte/word/signed word/dword/signed dword) 34 +(const byte) KEY_J#0 KEY_J = (byte/signed byte/word/signed word/dword/signed dword) $22 (byte) KEY_K -(const byte) KEY_K#0 KEY_K = (byte/signed byte/word/signed word/dword/signed dword) 37 +(const byte) KEY_K#0 KEY_K = (byte/signed byte/word/signed word/dword/signed dword) $25 (byte) KEY_L -(const byte) KEY_L#0 KEY_L = (byte/signed byte/word/signed word/dword/signed dword) 42 +(const byte) KEY_L#0 KEY_L = (byte/signed byte/word/signed word/dword/signed dword) $2a (byte) KEY_LSHIFT (byte) KEY_M -(const byte) KEY_M#0 KEY_M = (byte/signed byte/word/signed word/dword/signed dword) 36 +(const byte) KEY_M#0 KEY_M = (byte/signed byte/word/signed word/dword/signed dword) $24 (byte) KEY_MINUS -(const byte) KEY_MINUS#0 KEY_MINUS = (byte/signed byte/word/signed word/dword/signed dword) 43 +(const byte) KEY_MINUS#0 KEY_MINUS = (byte/signed byte/word/signed word/dword/signed dword) $2b (byte) KEY_MODIFIER_COMMODORE (byte) KEY_MODIFIER_CTRL (byte) KEY_MODIFIER_LSHIFT (byte) KEY_MODIFIER_RSHIFT (byte) KEY_MODIFIER_SHIFT (byte) KEY_N -(const byte) KEY_N#0 KEY_N = (byte/signed byte/word/signed word/dword/signed dword) 39 +(const byte) KEY_N#0 KEY_N = (byte/signed byte/word/signed word/dword/signed dword) $27 (byte) KEY_O -(const byte) KEY_O#0 KEY_O = (byte/signed byte/word/signed word/dword/signed dword) 38 +(const byte) KEY_O#0 KEY_O = (byte/signed byte/word/signed word/dword/signed dword) $26 (byte) KEY_P -(const byte) KEY_P#0 KEY_P = (byte/signed byte/word/signed word/dword/signed dword) 41 +(const byte) KEY_P#0 KEY_P = (byte/signed byte/word/signed word/dword/signed dword) $29 (byte) KEY_PLUS -(const byte) KEY_PLUS#0 KEY_PLUS = (byte/signed byte/word/signed word/dword/signed dword) 40 +(const byte) KEY_PLUS#0 KEY_PLUS = (byte/signed byte/word/signed word/dword/signed dword) $28 (byte) KEY_POUND -(const byte) KEY_POUND#0 KEY_POUND = (byte/signed byte/word/signed word/dword/signed dword) 48 +(const byte) KEY_POUND#0 KEY_POUND = (byte/signed byte/word/signed word/dword/signed dword) $30 (byte) KEY_Q -(const byte) KEY_Q#0 KEY_Q = (byte/signed byte/word/signed word/dword/signed dword) 62 +(const byte) KEY_Q#0 KEY_Q = (byte/signed byte/word/signed word/dword/signed dword) $3e (byte) KEY_R -(const byte) KEY_R#0 KEY_R = (byte/signed byte/word/signed word/dword/signed dword) 17 +(const byte) KEY_R#0 KEY_R = (byte/signed byte/word/signed word/dword/signed dword) $11 (byte) KEY_RETURN (byte) KEY_RSHIFT (byte) KEY_RUNSTOP (byte) KEY_S -(const byte) KEY_S#0 KEY_S = (byte/signed byte/word/signed word/dword/signed dword) 13 +(const byte) KEY_S#0 KEY_S = (byte/signed byte/word/signed word/dword/signed dword) $d (byte) KEY_SEMICOLON -(const byte) KEY_SEMICOLON#0 KEY_SEMICOLON = (byte/signed byte/word/signed word/dword/signed dword) 50 +(const byte) KEY_SEMICOLON#0 KEY_SEMICOLON = (byte/signed byte/word/signed word/dword/signed dword) $32 (byte) KEY_SLASH -(const byte) KEY_SLASH#0 KEY_SLASH = (byte/signed byte/word/signed word/dword/signed dword) 55 +(const byte) KEY_SLASH#0 KEY_SLASH = (byte/signed byte/word/signed word/dword/signed dword) $37 (byte) KEY_SPACE -(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) 60 +(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) $3c (byte) KEY_T -(const byte) KEY_T#0 KEY_T = (byte/signed byte/word/signed word/dword/signed dword) 22 +(const byte) KEY_T#0 KEY_T = (byte/signed byte/word/signed word/dword/signed dword) $16 (byte) KEY_U -(const byte) KEY_U#0 KEY_U = (byte/signed byte/word/signed word/dword/signed dword) 30 +(const byte) KEY_U#0 KEY_U = (byte/signed byte/word/signed word/dword/signed dword) $1e (byte) KEY_V -(const byte) KEY_V#0 KEY_V = (byte/signed byte/word/signed word/dword/signed dword) 31 +(const byte) KEY_V#0 KEY_V = (byte/signed byte/word/signed word/dword/signed dword) $1f (byte) KEY_W (const byte) KEY_W#0 KEY_W = (byte/signed byte/word/signed word/dword/signed dword) 9 (byte) KEY_X -(const byte) KEY_X#0 KEY_X = (byte/signed byte/word/signed word/dword/signed dword) 23 +(const byte) KEY_X#0 KEY_X = (byte/signed byte/word/signed word/dword/signed dword) $17 (byte) KEY_Y -(const byte) KEY_Y#0 KEY_Y = (byte/signed byte/word/signed word/dword/signed dword) 25 +(const byte) KEY_Y#0 KEY_Y = (byte/signed byte/word/signed word/dword/signed dword) $19 (byte) KEY_Z -(const byte) KEY_Z#0 KEY_Z = (byte/signed byte/word/signed word/dword/signed dword) 12 +(const byte) KEY_Z#0 KEY_Z = (byte/signed byte/word/signed word/dword/signed dword) $c (byte*) LIGHTPEN_X (byte*) LIGHTPEN_Y (byte) LIGHT_BLUE @@ -178,7 +178,7 @@ (byte) PROCPORT_RAM_IO (byte) PURPLE (byte*) RASTER -(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266 +(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) $d012 (byte) RED (byte*) SPRITES_COLS (byte*) SPRITES_ENABLE @@ -205,7 +205,7 @@ (byte) WHITE (byte) YELLOW (byte[]) keyboard_char_keycodes -(const byte[]) keyboard_char_keycodes#0 keyboard_char_keycodes = { (const byte) KEY_AT#0, (const byte) KEY_A#0, (const byte) KEY_B#0, (const byte) KEY_C#0, (const byte) KEY_D#0, (const byte) KEY_E#0, (const byte) KEY_F#0, (const byte) KEY_G#0, (const byte) KEY_H#0, (const byte) KEY_I#0, (const byte) KEY_J#0, (const byte) KEY_K#0, (const byte) KEY_L#0, (const byte) KEY_M#0, (const byte) KEY_N#0, (const byte) KEY_O#0, (const byte) KEY_P#0, (const byte) KEY_Q#0, (const byte) KEY_R#0, (const byte) KEY_S#0, (const byte) KEY_T#0, (const byte) KEY_U#0, (const byte) KEY_V#0, (const byte) KEY_W#0, (const byte) KEY_X#0, (const byte) KEY_Y#0, (const byte) KEY_Z#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (const byte) KEY_POUND#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (const byte) KEY_ARROW_UP#0, (const byte) KEY_ARROW_LEFT#0, (const byte) KEY_SPACE#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (const byte) KEY_ASTERISK#0, (const byte) KEY_PLUS#0, (const byte) KEY_COMMA#0, (const byte) KEY_MINUS#0, (const byte) KEY_DOT#0, (const byte) KEY_SLASH#0, (const byte) KEY_0#0, (const byte) KEY_1#0, (const byte) KEY_2#0, (const byte) KEY_3#0, (const byte) KEY_4#0, (const byte) KEY_5#0, (const byte) KEY_6#0, (const byte) KEY_7#0, (const byte) KEY_8#0, (const byte) KEY_9#0, (const byte) KEY_COLON#0, (const byte) KEY_SEMICOLON#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (const byte) KEY_EQUALS#0, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } +(const byte[]) keyboard_char_keycodes#0 keyboard_char_keycodes = { (const byte) KEY_AT#0, (const byte) KEY_A#0, (const byte) KEY_B#0, (const byte) KEY_C#0, (const byte) KEY_D#0, (const byte) KEY_E#0, (const byte) KEY_F#0, (const byte) KEY_G#0, (const byte) KEY_H#0, (const byte) KEY_I#0, (const byte) KEY_J#0, (const byte) KEY_K#0, (const byte) KEY_L#0, (const byte) KEY_M#0, (const byte) KEY_N#0, (const byte) KEY_O#0, (const byte) KEY_P#0, (const byte) KEY_Q#0, (const byte) KEY_R#0, (const byte) KEY_S#0, (const byte) KEY_T#0, (const byte) KEY_U#0, (const byte) KEY_V#0, (const byte) KEY_W#0, (const byte) KEY_X#0, (const byte) KEY_Y#0, (const byte) KEY_Z#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (const byte) KEY_POUND#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (const byte) KEY_ARROW_UP#0, (const byte) KEY_ARROW_LEFT#0, (const byte) KEY_SPACE#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f, (const byte) KEY_ASTERISK#0, (const byte) KEY_PLUS#0, (const byte) KEY_COMMA#0, (const byte) KEY_MINUS#0, (const byte) KEY_DOT#0, (const byte) KEY_SLASH#0, (const byte) KEY_0#0, (const byte) KEY_1#0, (const byte) KEY_2#0, (const byte) KEY_3#0, (const byte) KEY_4#0, (const byte) KEY_5#0, (const byte) KEY_6#0, (const byte) KEY_7#0, (const byte) KEY_8#0, (const byte) KEY_9#0, (const byte) KEY_COLON#0, (const byte) KEY_SEMICOLON#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (const byte) KEY_EQUALS#0, (byte/signed byte/word/signed word/dword/signed dword) $3f, (byte/signed byte/word/signed word/dword/signed dword) $3f } (byte[8]) keyboard_events (byte) keyboard_events_size (byte()) keyboard_get_keycode((byte) keyboard_get_keycode::ch) @@ -231,7 +231,7 @@ (byte) keyboard_key_pressed::rowidx (byte) keyboard_key_pressed::rowidx#0 reg byte a 4.0 (byte[8]) keyboard_matrix_col_bitmask -(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } +(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $10, (byte/signed byte/word/signed word/dword/signed dword) $20, (byte/signed byte/word/signed word/dword/signed dword) $40, (byte/word/signed word/dword/signed dword) $80 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) (label) keyboard_matrix_read::@return (byte) keyboard_matrix_read::return @@ -244,7 +244,7 @@ (byte) keyboard_matrix_read::rowid#1 reg byte y 202.0 (byte) keyboard_matrix_read::rowid#2 reg byte y 105.0 (byte[8]) keyboard_matrix_row_bitmask -(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } +(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) $fe, (byte/word/signed word/dword/signed dword) $fd, (byte/word/signed word/dword/signed dword) $fb, (byte/word/signed word/dword/signed dword) $f7, (byte/word/signed word/dword/signed dword) $ef, (byte/word/signed word/dword/signed dword) $df, (byte/word/signed word/dword/signed dword) $bf, (byte/signed byte/word/signed word/dword/signed dword) $7f } (byte) keyboard_modifiers (byte[8]) keyboard_scan_values (void()) main() diff --git a/src/test/ref/test-lohiconst.log b/src/test/ref/test-lohiconst.log index 4ae11f09f..f1edc00c1 100644 --- a/src/test/ref/test-lohiconst.log +++ b/src/test/ref/test-lohiconst.log @@ -1,10 +1,10 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (dword) PI_u4f28#0 ← (dword/signed dword) 843314857 + (dword) PI_u4f28#0 ← (dword/signed dword) $3243f6a9 to:@1 main: scope:[main] from @1 - (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (word~) main::$0 ← > (dword) PI_u4f28#0 (byte~) main::$1 ← > (word~) main::$0 *((byte*) main::SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte~) main::$1 @@ -50,8 +50,8 @@ SYMBOL TABLE SSA Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks -Constant (const dword) PI_u4f28#0 = 843314857 -Constant (const byte*) main::SCREEN#0 = ((byte*))1024 +Constant (const dword) PI_u4f28#0 = $3243f6a9 +Constant (const byte*) main::SCREEN#0 = ((byte*))$400 Successful SSA optimization Pass2ConstantIdentification Constant (const word) main::$0 = >PI_u4f28#0 Constant (const word) main::$2 = >PI_u4f28#0 @@ -245,11 +245,11 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (dword) PI_u4f28 -(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) 843314857 +(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) $3243f6a9 (void()) main() (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/test-lohiconst.sym b/src/test/ref/test-lohiconst.sym index 5b3c9aca0..3fdd6be98 100644 --- a/src/test/ref/test-lohiconst.sym +++ b/src/test/ref/test-lohiconst.sym @@ -2,9 +2,9 @@ (label) @begin (label) @end (dword) PI_u4f28 -(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) 843314857 +(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) $3243f6a9 (void()) main() (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/test-lowhigh.cfg b/src/test/ref/test-lowhigh.cfg index 9fd1b40f9..7a703860b 100644 --- a/src/test/ref/test-lowhigh.cfg +++ b/src/test/ref/test-lowhigh.cfg @@ -12,14 +12,14 @@ main: scope:[main] from @20 [5] call print_cls to:main::@1 main::@1: scope:[main] from main main::@18 - [6] (byte*) print_line_cursor#19 ← phi( main::@18/(byte*) print_line_cursor#1 main/((byte*))(word/signed word/dword/signed dword) 1024 ) - [6] (byte*) print_char_cursor#69 ← phi( main::@18/(byte*~) print_char_cursor#72 main/((byte*))(word/signed word/dword/signed dword) 1024 ) - [6] (dword) main::dw#10 ← phi( main::@18/(dword) main::dw#1 main/(dword/signed dword) 305419896 ) + [6] (byte*) print_line_cursor#19 ← phi( main::@18/(byte*) print_line_cursor#1 main/((byte*))(word/signed word/dword/signed dword) $400 ) + [6] (byte*) print_char_cursor#69 ← phi( main::@18/(byte*~) print_char_cursor#72 main/((byte*))(word/signed word/dword/signed dword) $400 ) + [6] (dword) main::dw#10 ← phi( main::@18/(dword) main::dw#1 main/(dword/signed dword) $12345678 ) [7] (word~) main::$2 ← > (dword) main::dw#10 - [8] (word/signed dword/dword~) main::$32 ← (word~) main::$2 + (word/signed word/dword/signed dword) 4369 + [8] (word/signed dword/dword~) main::$32 ← (word~) main::$2 + (word/signed word/dword/signed dword) $1111 [9] (dword) main::dw2#1 ← (dword) main::dw#10 hi= (word/signed dword/dword~) main::$32 [10] (word~) main::$5 ← < (dword) main::dw#10 - [11] (word/signed dword/dword~) main::$33 ← (word~) main::$5 + (word/signed word/dword/signed dword) 4369 + [11] (word/signed dword/dword~) main::$33 ← (word~) main::$5 + (word/signed word/dword/signed dword) $1111 [12] (dword) main::dw2#10 ← (dword) main::dw2#1 lo= (word/signed dword/dword~) main::$33 [13] (dword) print_dword::dw#0 ← (dword) main::dw2#10 [14] call print_dword @@ -82,7 +82,7 @@ main::@16: scope:[main] from main::@15 to:main::@17 main::@17: scope:[main] from main::@16 [45] (dword) main::dw#1 ← ++ (dword) main::dw#10 - [46] if((dword) main::dw#1!=(dword/signed dword) 305419920) goto main::@18 + [46] if((dword) main::dw#1!=(dword/signed dword) $12345690) goto main::@18 to:main::@return main::@return: scope:[main] from main::@17 [47] return @@ -95,7 +95,7 @@ print_ln: scope:[print_ln] from main::@16 to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [50] (byte*) print_line_cursor#9 ← phi( print_ln/(byte*) print_line_cursor#19 print_ln::@1/(byte*) print_line_cursor#1 ) - [51] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [51] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) $28 [52] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#12) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 @@ -109,7 +109,7 @@ print_byte: scope:[print_byte] from main::@11 main::@13 main::@15 main::@9 prin [57] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [58] (byte~) print_byte::$2 ← (byte) print_byte::b#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [58] (byte~) print_byte::$2 ← (byte) print_byte::b#6 & (byte/signed byte/word/signed word/dword/signed dword) $f [59] (byte) print_char::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [60] call print_char to:print_byte::@return @@ -153,10 +153,10 @@ print_cls: scope:[print_cls] from main [77] phi() to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 - [78] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) 1024 print_cls::@1/(byte*) print_cls::sc#1 ) + [78] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) $400 print_cls::@1/(byte*) print_cls::sc#1 ) [79] *((byte*) print_cls::sc#2) ← (byte) ' ' [80] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [81] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [81] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [82] return diff --git a/src/test/ref/test-lowhigh.log b/src/test/ref/test-lowhigh.log index 53a6e2c5f..b717cc711 100644 --- a/src/test/ref/test-lowhigh.log +++ b/src/test/ref/test-lowhigh.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 to:@12 @@ -12,7 +12,7 @@ print_ln: scope:[print_ln] from main::@16 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 (byte*) print_char_cursor#33 ← phi( print_ln/(byte*) print_char_cursor#64 print_ln::@1/(byte*) print_char_cursor#33 ) (byte*) print_line_cursor#9 ← phi( print_ln/(byte*) print_line_cursor#17 print_ln::@1/(byte*) print_line_cursor#1 ) - (byte*~) print_ln::$0 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) print_ln::$0 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) print_line_cursor#1 ← (byte*~) print_ln::$0 (bool~) print_ln::$1 ← (byte*) print_line_cursor#1 < (byte*) print_char_cursor#33 if((bool~) print_ln::$1) goto print_ln::@1 @@ -93,7 +93,7 @@ print_byte::@1: scope:[print_byte] from print_byte (byte) print_byte::b#7 ← phi( print_byte/(byte) print_byte::b#6 ) (byte*) print_char_cursor#41 ← phi( print_byte/(byte*) print_char_cursor#13 ) (byte*) print_char_cursor#9 ← (byte*) print_char_cursor#41 - (byte~) print_byte::$2 ← (byte) print_byte::b#7 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) print_byte::$2 ← (byte) print_byte::b#7 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte) print_char::ch#1 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$2) call print_char to:print_byte::@2 @@ -126,7 +126,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 (byte*) print_cls::sc#2 ← phi( print_cls/(byte*) print_cls::sc#0 print_cls::@1/(byte*) print_cls::sc#1 ) *((byte*) print_cls::sc#2) ← (byte) ' ' (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) 1000 + (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) $3e8 (bool~) print_cls::$1 ← (byte*) print_cls::sc#1 != (byte*~) print_cls::$0 if((bool~) print_cls::$1) goto print_cls::@1 to:print_cls::@2 @@ -153,7 +153,7 @@ main::@3: scope:[main] from main (byte*) print_line_cursor#13 ← phi( main/(byte*) print_line_cursor#4 ) (byte*) print_line_cursor#5 ← (byte*) print_line_cursor#13 (byte*) print_char_cursor#16 ← (byte*) print_char_cursor#47 - (dword) main::dw#0 ← (dword/signed dword) 305419896 + (dword) main::dw#0 ← (dword/signed dword) $12345678 to:main::@1 main::@1: scope:[main] from main::@17 main::@3 (byte*) print_line_cursor#34 ← phi( main::@17/(byte*) print_line_cursor#6 main::@3/(byte*) print_line_cursor#5 ) @@ -161,11 +161,11 @@ main::@1: scope:[main] from main::@17 main::@3 (dword) main::dw#2 ← phi( main::@17/(dword) main::dw#1 main::@3/(dword) main::dw#0 ) (dword) main::dw2#0 ← (dword) main::dw#2 (word~) main::$2 ← > (dword) main::dw#2 - (word/signed dword/dword~) main::$3 ← (word~) main::$2 + (word/signed word/dword/signed dword) 4369 + (word/signed dword/dword~) main::$3 ← (word~) main::$2 + (word/signed word/dword/signed dword) $1111 (word/signed dword/dword~) main::$32 ← (word/signed dword/dword~) main::$3 (dword) main::dw2#1 ← (dword) main::dw2#0 hi= (word/signed dword/dword~) main::$32 (word~) main::$5 ← < (dword) main::dw#2 - (word/signed dword/dword~) main::$6 ← (word~) main::$5 + (word/signed word/dword/signed dword) 4369 + (word/signed dword/dword~) main::$6 ← (word~) main::$5 + (word/signed word/dword/signed dword) $1111 (word/signed dword/dword~) main::$33 ← (word/signed dword/dword~) main::$6 (dword) main::dw2#2 ← (dword) main::dw2#1 lo= (word/signed dword/dword~) main::$33 (dword) print_dword::dw#0 ← (dword) main::dw2#2 @@ -303,7 +303,7 @@ main::@17: scope:[main] from main::@16 (byte*) print_line_cursor#6 ← (byte*) print_line_cursor#14 (byte*) print_char_cursor#30 ← (byte*) print_char_cursor#61 (dword) main::dw#1 ← ++ (dword) main::dw#3 - (bool~) main::$31 ← (dword) main::dw#1 != (dword/signed dword) 305419920 + (bool~) main::$31 ← (dword) main::dw#1 != (dword/signed dword) $12345690 if((bool~) main::$31) goto main::@1 to:main::@return main::@return: scope:[main] from main::@17 @@ -678,11 +678,11 @@ Redundant Phi (byte*) print_char_cursor#32 (byte*) print_char_cursor#30 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) print_ln::$1 [8] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#12) goto print_ln::@1 Simple Condition (bool~) print_cls::$1 [72] if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 -Simple Condition (bool~) main::$31 [164] if((dword) main::dw#1!=(dword/signed dword) 305419920) goto main::@1 +Simple Condition (bool~) main::$31 [164] if((dword) main::dw#1!=(dword/signed dword) $12345690) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) print_line_cursor#0 = ((byte*))1024 +Constant (const byte*) print_line_cursor#0 = ((byte*))$400 Constant (const byte[]) print_hextab#0 = $0 -Constant (const dword) main::dw#0 = 305419896 +Constant (const dword) main::dw#0 = $12345678 Constant (const byte) print_char::ch#2 = ' ' Constant (const byte) print_char::ch#3 = ' ' Constant (const byte) print_char::ch#4 = ' ' @@ -691,7 +691,7 @@ Constant (const byte) print_char::ch#6 = ' ' Constant (const byte) print_char::ch#7 = ' ' Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) print_cls::sc#0 = print_line_cursor#0 -Constant (const byte*) print_cls::$0 = print_line_cursor#0+1000 +Constant (const byte*) print_cls::$0 = print_line_cursor#0+$3e8 Successful SSA optimization Pass2ConstantIdentification Culled Empty Block (label) print_ln::@2 Culled Empty Block (label) print_word::@2 @@ -715,12 +715,12 @@ Constant inlined print_char::ch#3 = (byte) ' ' Constant inlined print_char::ch#2 = (byte) ' ' Constant inlined print_char::ch#5 = (byte) ' ' Constant inlined print_char::ch#4 = (byte) ' ' -Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000 -Constant inlined print_line_cursor#0 = ((byte*))(word/signed word/dword/signed dword) 1024 -Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword) 1024 +Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8 +Constant inlined print_line_cursor#0 = ((byte*))(word/signed word/dword/signed dword) $400 +Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword) $400 Constant inlined $0 = (const byte[]) print_hextab#0 Constant inlined print_char::ch#7 = (byte) ' ' -Constant inlined main::dw#0 = (dword/signed dword) 305419896 +Constant inlined main::dw#0 = (dword/signed dword) $12345678 Constant inlined print_char::ch#6 = (byte) ' ' Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@18(between main::@17 and main::@1) @@ -808,14 +808,14 @@ main: scope:[main] from @20 [5] call print_cls to:main::@1 main::@1: scope:[main] from main main::@18 - [6] (byte*) print_line_cursor#19 ← phi( main::@18/(byte*) print_line_cursor#1 main/((byte*))(word/signed word/dword/signed dword) 1024 ) - [6] (byte*) print_char_cursor#69 ← phi( main::@18/(byte*~) print_char_cursor#72 main/((byte*))(word/signed word/dword/signed dword) 1024 ) - [6] (dword) main::dw#10 ← phi( main::@18/(dword) main::dw#1 main/(dword/signed dword) 305419896 ) + [6] (byte*) print_line_cursor#19 ← phi( main::@18/(byte*) print_line_cursor#1 main/((byte*))(word/signed word/dword/signed dword) $400 ) + [6] (byte*) print_char_cursor#69 ← phi( main::@18/(byte*~) print_char_cursor#72 main/((byte*))(word/signed word/dword/signed dword) $400 ) + [6] (dword) main::dw#10 ← phi( main::@18/(dword) main::dw#1 main/(dword/signed dword) $12345678 ) [7] (word~) main::$2 ← > (dword) main::dw#10 - [8] (word/signed dword/dword~) main::$32 ← (word~) main::$2 + (word/signed word/dword/signed dword) 4369 + [8] (word/signed dword/dword~) main::$32 ← (word~) main::$2 + (word/signed word/dword/signed dword) $1111 [9] (dword) main::dw2#1 ← (dword) main::dw#10 hi= (word/signed dword/dword~) main::$32 [10] (word~) main::$5 ← < (dword) main::dw#10 - [11] (word/signed dword/dword~) main::$33 ← (word~) main::$5 + (word/signed word/dword/signed dword) 4369 + [11] (word/signed dword/dword~) main::$33 ← (word~) main::$5 + (word/signed word/dword/signed dword) $1111 [12] (dword) main::dw2#10 ← (dword) main::dw2#1 lo= (word/signed dword/dword~) main::$33 [13] (dword) print_dword::dw#0 ← (dword) main::dw2#10 [14] call print_dword @@ -878,7 +878,7 @@ main::@16: scope:[main] from main::@15 to:main::@17 main::@17: scope:[main] from main::@16 [45] (dword) main::dw#1 ← ++ (dword) main::dw#10 - [46] if((dword) main::dw#1!=(dword/signed dword) 305419920) goto main::@18 + [46] if((dword) main::dw#1!=(dword/signed dword) $12345690) goto main::@18 to:main::@return main::@return: scope:[main] from main::@17 [47] return @@ -891,7 +891,7 @@ print_ln: scope:[print_ln] from main::@16 to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [50] (byte*) print_line_cursor#9 ← phi( print_ln/(byte*) print_line_cursor#19 print_ln::@1/(byte*) print_line_cursor#1 ) - [51] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [51] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) $28 [52] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#12) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 @@ -905,7 +905,7 @@ print_byte: scope:[print_byte] from main::@11 main::@13 main::@15 main::@9 prin [57] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [58] (byte~) print_byte::$2 ← (byte) print_byte::b#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [58] (byte~) print_byte::$2 ← (byte) print_byte::b#6 & (byte/signed byte/word/signed word/dword/signed dword) $f [59] (byte) print_char::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [60] call print_char to:print_byte::@return @@ -949,10 +949,10 @@ print_cls: scope:[print_cls] from main [77] phi() to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 - [78] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) 1024 print_cls::@1/(byte*) print_cls::sc#1 ) + [78] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) $400 print_cls::@1/(byte*) print_cls::sc#1 ) [79] *((byte*) print_cls::sc#2) ← (byte) ' ' [80] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [81] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [81] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [82] return @@ -1127,17 +1127,17 @@ main: { jsr print_cls //SEG13 [6] phi from main to main::@1 [phi:main->main::@1] b1_from_main: - //SEG14 [6] phi (byte*) print_line_cursor#19 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + //SEG14 [6] phi (byte*) print_line_cursor#19 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 sta print_line_cursor+1 - //SEG15 [6] phi (byte*) print_char_cursor#69 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#1] -- pbuz1=pbuc1 + //SEG15 [6] phi (byte*) print_char_cursor#69 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#1] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 sta print_char_cursor+1 - //SEG16 [6] phi (dword) main::dw#10 = (dword/signed dword) 305419896 [phi:main->main::@1#2] -- vduz1=vduc1 + //SEG16 [6] phi (dword) main::dw#10 = (dword/signed dword) $12345678 [phi:main->main::@1#2] -- vduz1=vduc1 lda #<$12345678 sta dw lda #>$12345678 @@ -1154,7 +1154,7 @@ main: { sta _2 lda dw+3 sta _2+1 - //SEG19 [8] (word/signed dword/dword~) main::$32 ← (word~) main::$2 + (word/signed word/dword/signed dword) 4369 -- vwuz1=vwuz2_plus_vwuc1 + //SEG19 [8] (word/signed dword/dword~) main::$32 ← (word~) main::$2 + (word/signed word/dword/signed dword) $1111 -- vwuz1=vwuz2_plus_vwuc1 lda _2 clc adc #<$1111 @@ -1176,7 +1176,7 @@ main: { sta _5 lda dw+1 sta _5+1 - //SEG22 [11] (word/signed dword/dword~) main::$33 ← (word~) main::$5 + (word/signed word/dword/signed dword) 4369 -- vwuz1=vwuz2_plus_vwuc1 + //SEG22 [11] (word/signed dword/dword~) main::$33 ← (word~) main::$5 + (word/signed word/dword/signed dword) $1111 -- vwuz1=vwuz2_plus_vwuc1 lda _5 clc adc #<$1111 @@ -1399,7 +1399,7 @@ main: { bne !+ inc dw+3 !: - //SEG108 [46] if((dword) main::dw#1!=(dword/signed dword) 305419920) goto main::@18 -- vduz1_neq_vduc1_then_la1 + //SEG108 [46] if((dword) main::dw#1!=(dword/signed dword) $12345690) goto main::@18 -- vduz1_neq_vduc1_then_la1 lda dw+3 cmp #>$12345690>>$10 bne b18 @@ -1441,7 +1441,7 @@ print_ln: { jmp b1 //SEG120 print_ln::@1 b1: - //SEG121 [51] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG121 [51] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -1491,7 +1491,7 @@ print_byte: { jmp b1 //SEG132 print_byte::@1 b1: - //SEG133 [58] (byte~) print_byte::$2 ← (byte) print_byte::b#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG133 [58] (byte~) print_byte::$2 ← (byte) print_byte::b#6 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and b sta _2 @@ -1605,7 +1605,7 @@ print_cls: { .label sc = $e //SEG175 [78] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] b1_from_print_cls: - //SEG176 [78] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG176 [78] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -1626,7 +1626,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG182 [81] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG182 [81] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1_from_b1 @@ -1644,9 +1644,9 @@ print_cls: { REGISTER UPLIFT POTENTIAL REGISTERS Equivalence Class zp ZP_WORD:16 [ main::$2 ] has ALU potential. Equivalence Class zp ZP_WORD:24 [ main::$5 ] has ALU potential. -Statement [8] (word/signed dword/dword~) main::$32 ← (word~) main::$2 + (word/signed word/dword/signed dword) 4369 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::$32 ] ( main:2 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::$32 ] ) always clobbers reg byte a +Statement [8] (word/signed dword/dword~) main::$32 ← (word~) main::$2 + (word/signed word/dword/signed dword) $1111 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::$32 ] ( main:2 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::$32 ] ) always clobbers reg byte a Statement [9] (dword) main::dw2#1 ← (dword) main::dw#10 hi= (word/signed dword/dword~) main::$32 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::dw2#1 ] ( main:2 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::dw2#1 ] ) always clobbers reg byte a -Statement [11] (word/signed dword/dword~) main::$33 ← (word~) main::$5 + (word/signed word/dword/signed dword) 4369 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::dw2#1 main::$33 ] ( main:2 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::dw2#1 main::$33 ] ) always clobbers reg byte a +Statement [11] (word/signed dword/dword~) main::$33 ← (word~) main::$5 + (word/signed word/dword/signed dword) $1111 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::dw2#1 main::$33 ] ( main:2 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::dw2#1 main::$33 ] ) always clobbers reg byte a Statement [12] (dword) main::dw2#10 ← (dword) main::dw2#1 lo= (word/signed dword/dword~) main::$33 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::dw2#10 ] ( main:2 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::dw2#10 ] ) always clobbers reg byte a Statement [13] (dword) print_dword::dw#0 ← (dword) main::dw2#10 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::dw2#10 print_dword::dw#0 ] ( main:2 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::dw2#10 print_dword::dw#0 ] ) always clobbers reg byte a Statement [17] (word) print_word::w#2 ← > (dword) main::dw2#10 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#2 print_char_cursor#12 ] ( main:2 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#2 print_char_cursor#12 ] ) always clobbers reg byte a @@ -1659,13 +1659,13 @@ Statement [35] (word~) main::$23 ← < (dword) main::dw2#10 [ main::dw#10 print_ Statement [36] (byte) print_byte::b#4 ← > (word~) main::$23 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#4 print_char_cursor#12 ] ( main:2 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#4 print_char_cursor#12 ] ) always clobbers reg byte a Statement [40] (word~) main::$27 ← < (dword) main::dw2#10 [ main::dw#10 print_line_cursor#19 main::$27 print_char_cursor#12 ] ( main:2 [ main::dw#10 print_line_cursor#19 main::$27 print_char_cursor#12 ] ) always clobbers reg byte a Statement [41] (byte) print_byte::b#5 ← < (word~) main::$27 [ main::dw#10 print_line_cursor#19 print_byte::b#5 print_char_cursor#12 ] ( main:2 [ main::dw#10 print_line_cursor#19 print_byte::b#5 print_char_cursor#12 ] ) always clobbers reg byte a -Statement [46] if((dword) main::dw#1!=(dword/signed dword) 305419920) goto main::@18 [ main::dw#1 print_line_cursor#1 ] ( main:2 [ main::dw#1 print_line_cursor#1 ] ) always clobbers reg byte a +Statement [46] if((dword) main::dw#1!=(dword/signed dword) $12345690) goto main::@18 [ main::dw#1 print_line_cursor#1 ] ( main:2 [ main::dw#1 print_line_cursor#1 ] ) always clobbers reg byte a Statement [48] (byte*~) print_char_cursor#72 ← (byte*) print_line_cursor#1 [ main::dw#1 print_char_cursor#72 print_line_cursor#1 ] ( main:2 [ main::dw#1 print_char_cursor#72 print_line_cursor#1 ] ) always clobbers reg byte a -Statement [51] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#12 ] ( main:2::print_ln:44 [ main::dw#10 print_line_cursor#1 print_char_cursor#12 ] ) always clobbers reg byte a +Statement [51] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#1 print_char_cursor#12 ] ( main:2::print_ln:44 [ main::dw#10 print_line_cursor#1 print_char_cursor#12 ] ) always clobbers reg byte a Statement [52] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#12) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#12 ] ( main:2::print_ln:44 [ main::dw#10 print_line_cursor#1 print_char_cursor#12 ] ) always clobbers reg byte a Statement [55] (byte~) print_byte::$0 ← (byte) print_byte::b#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#6 print_char_cursor#67 print_byte::$0 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:8 [ print_byte::b#6 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#2 print_byte::b#0 print_byte::b#1 ] -Statement [58] (byte~) print_byte::$2 ← (byte) print_byte::b#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#12 print_byte::$2 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 print_byte::$2 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] ) always clobbers reg byte a +Statement [58] (byte~) print_byte::$2 ← (byte) print_byte::b#6 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#12 print_byte::$2 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 print_byte::$2 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] ) always clobbers reg byte a Statement [63] *((byte*) print_char_cursor#44) ← (byte) print_char::ch#8 [ print_char_cursor#44 ] ( main:2::print_char:16 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#44 ] main:2::print_char:20 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#44 ] main:2::print_char:24 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#44 ] main:2::print_char:29 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#44 ] main:2::print_char:34 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#44 ] main:2::print_char:39 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#44 ] main:2::print_byte:27::print_char:57 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#44 ] main:2::print_byte:32::print_char:57 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#44 ] main:2::print_byte:37::print_char:57 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#44 ] main:2::print_byte:42::print_char:57 [ main::dw#10 print_line_cursor#19 print_byte::b#6 print_char_cursor#44 ] main:2::print_word:18::print_byte:68::print_char:57 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#44 ] main:2::print_word:22::print_byte:68::print_char:57 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#44 ] main:2::print_dword:14::print_word:73::print_byte:68::print_char:57 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 print_char_cursor#44 ] main:2::print_dword:14::print_word:75::print_byte:68::print_char:57 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#44 ] main:2::print_word:18::print_byte:70::print_char:57 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#44 ] main:2::print_word:22::print_byte:70::print_char:57 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#44 ] main:2::print_dword:14::print_word:73::print_byte:70::print_char:57 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 print_char_cursor#44 ] main:2::print_dword:14::print_word:75::print_byte:70::print_char:57 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#44 ] main:2::print_byte:27::print_char:60 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#44 ] main:2::print_byte:32::print_char:60 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#44 ] main:2::print_byte:37::print_char:60 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#44 ] main:2::print_byte:42::print_char:60 [ main::dw#10 print_line_cursor#19 print_char_cursor#44 ] main:2::print_word:18::print_byte:68::print_char:60 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#44 ] main:2::print_word:22::print_byte:68::print_char:60 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#44 ] main:2::print_dword:14::print_word:73::print_byte:68::print_char:60 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#44 ] main:2::print_dword:14::print_word:75::print_byte:68::print_char:60 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#44 ] main:2::print_word:18::print_byte:70::print_char:60 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#44 ] main:2::print_word:22::print_byte:70::print_char:60 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#44 ] main:2::print_dword:14::print_word:73::print_byte:70::print_char:60 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#44 ] main:2::print_dword:14::print_word:75::print_byte:70::print_char:60 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#44 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:8 [ print_byte::b#6 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#2 print_byte::b#0 print_byte::b#1 ] Statement [67] (byte) print_byte::b#0 ← > (word) print_word::w#4 [ print_byte::b#0 print_char_cursor#65 print_word::w#4 ] ( main:2::print_word:18 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#0 print_char_cursor#65 print_word::w#4 ] main:2::print_word:22 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#0 print_char_cursor#65 print_word::w#4 ] main:2::print_dword:14::print_word:73 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#0 print_char_cursor#65 print_word::w#4 ] main:2::print_dword:14::print_word:75 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#0 print_char_cursor#65 print_word::w#4 ] ) always clobbers reg byte a @@ -1673,10 +1673,10 @@ Statement [69] (byte) print_byte::b#1 ← < (word) print_word::w#4 [ print_char_ Statement [72] (word) print_word::w#0 ← > (dword) print_dword::dw#0 [ print_char_cursor#69 print_dword::dw#0 print_word::w#0 ] ( main:2::print_dword:14 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#69 print_dword::dw#0 print_word::w#0 ] ) always clobbers reg byte a Statement [74] (word) print_word::w#1 ← < (dword) print_dword::dw#0 [ print_char_cursor#12 print_word::w#1 ] ( main:2::print_dword:14 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_word::w#1 ] ) always clobbers reg byte a Statement [79] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [81] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a -Statement [8] (word/signed dword/dword~) main::$32 ← (word~) main::$2 + (word/signed word/dword/signed dword) 4369 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::$32 ] ( main:2 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::$32 ] ) always clobbers reg byte a +Statement [81] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [8] (word/signed dword/dword~) main::$32 ← (word~) main::$2 + (word/signed word/dword/signed dword) $1111 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::$32 ] ( main:2 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::$32 ] ) always clobbers reg byte a Statement [9] (dword) main::dw2#1 ← (dword) main::dw#10 hi= (word/signed dword/dword~) main::$32 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::dw2#1 ] ( main:2 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::dw2#1 ] ) always clobbers reg byte a -Statement [11] (word/signed dword/dword~) main::$33 ← (word~) main::$5 + (word/signed word/dword/signed dword) 4369 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::dw2#1 main::$33 ] ( main:2 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::dw2#1 main::$33 ] ) always clobbers reg byte a +Statement [11] (word/signed dword/dword~) main::$33 ← (word~) main::$5 + (word/signed word/dword/signed dword) $1111 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::dw2#1 main::$33 ] ( main:2 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::dw2#1 main::$33 ] ) always clobbers reg byte a Statement [12] (dword) main::dw2#10 ← (dword) main::dw2#1 lo= (word/signed dword/dword~) main::$33 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::dw2#10 ] ( main:2 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::dw2#10 ] ) always clobbers reg byte a Statement [13] (dword) print_dword::dw#0 ← (dword) main::dw2#10 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::dw2#10 print_dword::dw#0 ] ( main:2 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::dw2#10 print_dword::dw#0 ] ) always clobbers reg byte a Statement [17] (word) print_word::w#2 ← > (dword) main::dw2#10 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#2 print_char_cursor#12 ] ( main:2 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#2 print_char_cursor#12 ] ) always clobbers reg byte a @@ -1689,19 +1689,19 @@ Statement [35] (word~) main::$23 ← < (dword) main::dw2#10 [ main::dw#10 print_ Statement [36] (byte) print_byte::b#4 ← > (word~) main::$23 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#4 print_char_cursor#12 ] ( main:2 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#4 print_char_cursor#12 ] ) always clobbers reg byte a Statement [40] (word~) main::$27 ← < (dword) main::dw2#10 [ main::dw#10 print_line_cursor#19 main::$27 print_char_cursor#12 ] ( main:2 [ main::dw#10 print_line_cursor#19 main::$27 print_char_cursor#12 ] ) always clobbers reg byte a Statement [41] (byte) print_byte::b#5 ← < (word~) main::$27 [ main::dw#10 print_line_cursor#19 print_byte::b#5 print_char_cursor#12 ] ( main:2 [ main::dw#10 print_line_cursor#19 print_byte::b#5 print_char_cursor#12 ] ) always clobbers reg byte a -Statement [46] if((dword) main::dw#1!=(dword/signed dword) 305419920) goto main::@18 [ main::dw#1 print_line_cursor#1 ] ( main:2 [ main::dw#1 print_line_cursor#1 ] ) always clobbers reg byte a +Statement [46] if((dword) main::dw#1!=(dword/signed dword) $12345690) goto main::@18 [ main::dw#1 print_line_cursor#1 ] ( main:2 [ main::dw#1 print_line_cursor#1 ] ) always clobbers reg byte a Statement [48] (byte*~) print_char_cursor#72 ← (byte*) print_line_cursor#1 [ main::dw#1 print_char_cursor#72 print_line_cursor#1 ] ( main:2 [ main::dw#1 print_char_cursor#72 print_line_cursor#1 ] ) always clobbers reg byte a -Statement [51] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#12 ] ( main:2::print_ln:44 [ main::dw#10 print_line_cursor#1 print_char_cursor#12 ] ) always clobbers reg byte a +Statement [51] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#1 print_char_cursor#12 ] ( main:2::print_ln:44 [ main::dw#10 print_line_cursor#1 print_char_cursor#12 ] ) always clobbers reg byte a Statement [52] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#12) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#12 ] ( main:2::print_ln:44 [ main::dw#10 print_line_cursor#1 print_char_cursor#12 ] ) always clobbers reg byte a Statement [55] (byte~) print_byte::$0 ← (byte) print_byte::b#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#6 print_char_cursor#67 print_byte::$0 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] ) always clobbers reg byte a -Statement [58] (byte~) print_byte::$2 ← (byte) print_byte::b#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#12 print_byte::$2 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 print_byte::$2 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] ) always clobbers reg byte a +Statement [58] (byte~) print_byte::$2 ← (byte) print_byte::b#6 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#12 print_byte::$2 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 print_byte::$2 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] ) always clobbers reg byte a Statement [63] *((byte*) print_char_cursor#44) ← (byte) print_char::ch#8 [ print_char_cursor#44 ] ( main:2::print_char:16 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#44 ] main:2::print_char:20 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#44 ] main:2::print_char:24 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#44 ] main:2::print_char:29 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#44 ] main:2::print_char:34 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#44 ] main:2::print_char:39 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#44 ] main:2::print_byte:27::print_char:57 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#44 ] main:2::print_byte:32::print_char:57 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#44 ] main:2::print_byte:37::print_char:57 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#44 ] main:2::print_byte:42::print_char:57 [ main::dw#10 print_line_cursor#19 print_byte::b#6 print_char_cursor#44 ] main:2::print_word:18::print_byte:68::print_char:57 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#44 ] main:2::print_word:22::print_byte:68::print_char:57 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#44 ] main:2::print_dword:14::print_word:73::print_byte:68::print_char:57 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 print_char_cursor#44 ] main:2::print_dword:14::print_word:75::print_byte:68::print_char:57 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#44 ] main:2::print_word:18::print_byte:70::print_char:57 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#44 ] main:2::print_word:22::print_byte:70::print_char:57 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#44 ] main:2::print_dword:14::print_word:73::print_byte:70::print_char:57 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 print_char_cursor#44 ] main:2::print_dword:14::print_word:75::print_byte:70::print_char:57 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#44 ] main:2::print_byte:27::print_char:60 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#44 ] main:2::print_byte:32::print_char:60 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#44 ] main:2::print_byte:37::print_char:60 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#44 ] main:2::print_byte:42::print_char:60 [ main::dw#10 print_line_cursor#19 print_char_cursor#44 ] main:2::print_word:18::print_byte:68::print_char:60 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#44 ] main:2::print_word:22::print_byte:68::print_char:60 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#44 ] main:2::print_dword:14::print_word:73::print_byte:68::print_char:60 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#44 ] main:2::print_dword:14::print_word:75::print_byte:68::print_char:60 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#44 ] main:2::print_word:18::print_byte:70::print_char:60 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#44 ] main:2::print_word:22::print_byte:70::print_char:60 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#44 ] main:2::print_dword:14::print_word:73::print_byte:70::print_char:60 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#44 ] main:2::print_dword:14::print_word:75::print_byte:70::print_char:60 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#44 ] ) always clobbers reg byte y Statement [67] (byte) print_byte::b#0 ← > (word) print_word::w#4 [ print_byte::b#0 print_char_cursor#65 print_word::w#4 ] ( main:2::print_word:18 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#0 print_char_cursor#65 print_word::w#4 ] main:2::print_word:22 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#0 print_char_cursor#65 print_word::w#4 ] main:2::print_dword:14::print_word:73 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#0 print_char_cursor#65 print_word::w#4 ] main:2::print_dword:14::print_word:75 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#0 print_char_cursor#65 print_word::w#4 ] ) always clobbers reg byte a Statement [69] (byte) print_byte::b#1 ← < (word) print_word::w#4 [ print_char_cursor#12 print_byte::b#1 ] ( main:2::print_word:18 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#1 ] main:2::print_word:22 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#1 ] main:2::print_dword:14::print_word:73 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 print_byte::b#1 ] main:2::print_dword:14::print_word:75 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#1 ] ) always clobbers reg byte a Statement [72] (word) print_word::w#0 ← > (dword) print_dword::dw#0 [ print_char_cursor#69 print_dword::dw#0 print_word::w#0 ] ( main:2::print_dword:14 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#69 print_dword::dw#0 print_word::w#0 ] ) always clobbers reg byte a Statement [74] (word) print_word::w#1 ← < (dword) print_dword::dw#0 [ print_char_cursor#12 print_word::w#1 ] ( main:2::print_dword:14 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_word::w#1 ] ) always clobbers reg byte a Statement [79] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [81] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [81] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a Potential registers zp ZP_DWORD:2 [ main::dw#10 main::dw#1 ] : zp ZP_DWORD:2 , Potential registers zp ZP_WORD:6 [ print_line_cursor#9 print_line_cursor#19 print_line_cursor#1 ] : zp ZP_WORD:6 , Potential registers zp ZP_BYTE:8 [ print_byte::b#6 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#2 print_byte::b#0 print_byte::b#1 ] : zp ZP_BYTE:8 , reg byte x , @@ -1799,17 +1799,17 @@ main: { jsr print_cls //SEG13 [6] phi from main to main::@1 [phi:main->main::@1] b1_from_main: - //SEG14 [6] phi (byte*) print_line_cursor#19 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + //SEG14 [6] phi (byte*) print_line_cursor#19 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 sta print_line_cursor+1 - //SEG15 [6] phi (byte*) print_char_cursor#69 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#1] -- pbuz1=pbuc1 + //SEG15 [6] phi (byte*) print_char_cursor#69 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#1] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 sta print_char_cursor+1 - //SEG16 [6] phi (dword) main::dw#10 = (dword/signed dword) 305419896 [phi:main->main::@1#2] -- vduz1=vduc1 + //SEG16 [6] phi (dword) main::dw#10 = (dword/signed dword) $12345678 [phi:main->main::@1#2] -- vduz1=vduc1 lda #<$12345678 sta dw lda #>$12345678 @@ -1826,7 +1826,7 @@ main: { sta _2 lda dw+3 sta _2+1 - //SEG19 [8] (word/signed dword/dword~) main::$32 ← (word~) main::$2 + (word/signed word/dword/signed dword) 4369 -- vwuz1=vwuz1_plus_vwuc1 + //SEG19 [8] (word/signed dword/dword~) main::$32 ← (word~) main::$2 + (word/signed word/dword/signed dword) $1111 -- vwuz1=vwuz1_plus_vwuc1 clc lda _32 adc #<$1111 @@ -1848,7 +1848,7 @@ main: { sta _5 lda dw+1 sta _5+1 - //SEG22 [11] (word/signed dword/dword~) main::$33 ← (word~) main::$5 + (word/signed word/dword/signed dword) 4369 -- vwuz1=vwuz1_plus_vwuc1 + //SEG22 [11] (word/signed dword/dword~) main::$33 ← (word~) main::$5 + (word/signed word/dword/signed dword) $1111 -- vwuz1=vwuz1_plus_vwuc1 clc lda _33 adc #<$1111 @@ -2053,7 +2053,7 @@ main: { bne !+ inc dw+3 !: - //SEG108 [46] if((dword) main::dw#1!=(dword/signed dword) 305419920) goto main::@18 -- vduz1_neq_vduc1_then_la1 + //SEG108 [46] if((dword) main::dw#1!=(dword/signed dword) $12345690) goto main::@18 -- vduz1_neq_vduc1_then_la1 lda dw+3 cmp #>$12345690>>$10 bne b18 @@ -2095,7 +2095,7 @@ print_ln: { jmp b1 //SEG120 print_ln::@1 b1: - //SEG121 [51] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG121 [51] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -2140,7 +2140,7 @@ print_byte: { jmp b1 //SEG132 print_byte::@1 b1: - //SEG133 [58] (byte~) print_byte::$2 ← (byte) print_byte::b#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG133 [58] (byte~) print_byte::$2 ← (byte) print_byte::b#6 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG134 [59] (byte) print_char::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) -- vbuaa=pbuc1_derefidx_vbuaa @@ -2250,7 +2250,7 @@ print_cls: { .label sc = 6 //SEG175 [78] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] b1_from_print_cls: - //SEG176 [78] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG176 [78] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -2271,7 +2271,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG182 [81] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG182 [81] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1_from_b1 @@ -2534,17 +2534,17 @@ main: { //SEG12 [77] phi from main to print_cls [phi:main->print_cls] jsr print_cls //SEG13 [6] phi from main to main::@1 [phi:main->main::@1] - //SEG14 [6] phi (byte*) print_line_cursor#19 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + //SEG14 [6] phi (byte*) print_line_cursor#19 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 sta print_line_cursor+1 - //SEG15 [6] phi (byte*) print_char_cursor#69 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#1] -- pbuz1=pbuc1 + //SEG15 [6] phi (byte*) print_char_cursor#69 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#1] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 sta print_char_cursor+1 - //SEG16 [6] phi (dword) main::dw#10 = (dword/signed dword) 305419896 [phi:main->main::@1#2] -- vduz1=vduc1 + //SEG16 [6] phi (dword) main::dw#10 = (dword/signed dword) $12345678 [phi:main->main::@1#2] -- vduz1=vduc1 lda #<$12345678 sta dw lda #>$12345678 @@ -2560,7 +2560,7 @@ main: { sta _2 lda dw+3 sta _2+1 - //SEG19 [8] (word/signed dword/dword~) main::$32 ← (word~) main::$2 + (word/signed word/dword/signed dword) 4369 -- vwuz1=vwuz1_plus_vwuc1 + //SEG19 [8] (word/signed dword/dword~) main::$32 ← (word~) main::$2 + (word/signed word/dword/signed dword) $1111 -- vwuz1=vwuz1_plus_vwuc1 clc lda _32 adc #<$1111 @@ -2582,7 +2582,7 @@ main: { sta _5 lda dw+1 sta _5+1 - //SEG22 [11] (word/signed dword/dword~) main::$33 ← (word~) main::$5 + (word/signed word/dword/signed dword) 4369 -- vwuz1=vwuz1_plus_vwuc1 + //SEG22 [11] (word/signed dword/dword~) main::$33 ← (word~) main::$5 + (word/signed word/dword/signed dword) $1111 -- vwuz1=vwuz1_plus_vwuc1 clc lda _33 adc #<$1111 @@ -2737,7 +2737,7 @@ main: { bne !+ inc dw+3 !: - //SEG108 [46] if((dword) main::dw#1!=(dword/signed dword) 305419920) goto main::@18 -- vduz1_neq_vduc1_then_la1 + //SEG108 [46] if((dword) main::dw#1!=(dword/signed dword) $12345690) goto main::@18 -- vduz1_neq_vduc1_then_la1 lda dw+3 cmp #>$12345690>>$10 bne b18 @@ -2773,7 +2773,7 @@ print_ln: { //SEG119 [50] phi (byte*) print_line_cursor#9 = (byte*) print_line_cursor#19 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy //SEG120 print_ln::@1 b1: - //SEG121 [51] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG121 [51] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -2813,7 +2813,7 @@ print_byte: { //SEG131 [62] phi (byte) print_char::ch#8 = (byte) print_char::ch#0 [phi:print_byte->print_char#1] -- register_copy jsr print_char //SEG132 print_byte::@1 - //SEG133 [58] (byte~) print_byte::$2 ← (byte) print_byte::b#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG133 [58] (byte~) print_byte::$2 ← (byte) print_byte::b#6 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG134 [59] (byte) print_char::ch#1 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) -- vbuaa=pbuc1_derefidx_vbuaa @@ -2905,7 +2905,7 @@ print_dword: { print_cls: { .label sc = 6 //SEG175 [78] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] - //SEG176 [78] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG176 [78] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -2923,7 +2923,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG182 [81] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG182 [81] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1 diff --git a/src/test/ref/test-multiply-16bit.cfg b/src/test/ref/test-multiply-16bit.cfg index f2ea6e3c9..629ea67e4 100644 --- a/src/test/ref/test-multiply-16bit.cfg +++ b/src/test/ref/test-multiply-16bit.cfg @@ -31,8 +31,8 @@ mul16s_compare: scope:[mul16s_compare] from main::@3 to:mul16s_compare::@1 mul16s_compare::@1: scope:[mul16s_compare] from mul16s_compare mul16s_compare::@10 [14] (byte) mul16s_compare::i#12 ← phi( mul16s_compare/(byte/signed byte/word/signed word/dword/signed dword) 0 mul16s_compare::@10/(byte) mul16s_compare::i#1 ) - [14] (signed word) mul16s_compare::b#6 ← phi( mul16s_compare/-(word/signed word/dword/signed dword) 32767 mul16s_compare::@10/(signed word) mul16s_compare::b#1 ) - [14] (signed word) mul16s_compare::a#6 ← phi( mul16s_compare/-(word/signed word/dword/signed dword) 32767 mul16s_compare::@10/(signed word) mul16s_compare::a#1 ) + [14] (signed word) mul16s_compare::b#6 ← phi( mul16s_compare/-(word/signed word/dword/signed dword) $7fff mul16s_compare::@10/(signed word) mul16s_compare::b#1 ) + [14] (signed word) mul16s_compare::a#6 ← phi( mul16s_compare/-(word/signed word/dword/signed dword) $7fff mul16s_compare::@10/(signed word) mul16s_compare::a#1 ) [14] (byte*) print_char_cursor#143 ← phi( mul16s_compare/(byte*~) print_char_cursor#176 mul16s_compare::@10/(byte*) print_char_cursor#128 ) [15] call print_str to:mul16s_compare::@2 @@ -40,8 +40,8 @@ mul16s_compare::@2: scope:[mul16s_compare] from mul16s_compare::@1 mul16s_compa [16] (byte) mul16s_compare::j#10 ← phi( mul16s_compare::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 mul16s_compare::@5/(byte) mul16s_compare::j#1 ) [16] (signed word) mul16s_compare::b#2 ← phi( mul16s_compare::@1/(signed word) mul16s_compare::b#6 mul16s_compare::@5/(signed word) mul16s_compare::b#1 ) [16] (signed word) mul16s_compare::a#2 ← phi( mul16s_compare::@1/(signed word) mul16s_compare::a#6 mul16s_compare::@5/(signed word) mul16s_compare::a#1 ) - [17] (signed word) mul16s_compare::a#1 ← (signed word) mul16s_compare::a#2 + (word/signed word/dword/signed dword) 3371 - [18] (signed word) mul16s_compare::b#1 ← (signed word) mul16s_compare::b#2 + (word/signed word/dword/signed dword) 4093 + [17] (signed word) mul16s_compare::a#1 ← (signed word) mul16s_compare::a#2 + (word/signed word/dword/signed dword) $d2b + [18] (signed word) mul16s_compare::b#1 ← (signed word) mul16s_compare::b#2 + (word/signed word/dword/signed dword) $ffd [19] (signed word) muls16s::a#0 ← (signed word) mul16s_compare::a#1 [20] (signed word) muls16s::b#0 ← (signed word) mul16s_compare::b#1 [21] call muls16s @@ -90,11 +90,11 @@ mul16s_compare::@return: scope:[mul16s_compare] from mul16s_compare::@18 mul16s to:@return mul16s_compare::@5: scope:[mul16s_compare] from mul16s_compare::@4 [48] (byte) mul16s_compare::j#1 ← ++ (byte) mul16s_compare::j#10 - [49] if((byte) mul16s_compare::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mul16s_compare::@2 + [49] if((byte) mul16s_compare::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mul16s_compare::@2 to:mul16s_compare::@10 mul16s_compare::@10: scope:[mul16s_compare] from mul16s_compare::@5 [50] (byte) mul16s_compare::i#1 ← ++ (byte) mul16s_compare::i#12 - [51] if((byte) mul16s_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mul16s_compare::@1 + [51] if((byte) mul16s_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mul16s_compare::@1 to:mul16s_compare::@11 mul16s_compare::@11: scope:[mul16s_compare] from mul16s_compare::@10 [52] phi() @@ -113,11 +113,11 @@ mul16s_compare::@22: scope:[mul16s_compare] from mul16s_compare::@3 to:mul16s_compare::@4 print_ln: scope:[print_ln] from mul16s_compare::@11 mul16s_compare::@18 mul16s_error::@10 mul16u_compare::@11 mul16u_compare::@18 mul16u_error::@10 [59] (byte*) print_char_cursor#129 ← phi( mul16s_compare::@11/(byte*) print_char_cursor#128 mul16s_compare::@18/(byte*) print_char_cursor#128 mul16s_error::@10/(byte*) print_char_cursor#20 mul16u_compare::@11/(byte*) print_char_cursor#128 mul16u_compare::@18/(byte*) print_char_cursor#128 mul16u_error::@10/(byte*) print_char_cursor#20 ) - [59] (byte*) print_line_cursor#43 ← phi( mul16s_compare::@11/(byte*) print_line_cursor#1 mul16s_compare::@18/(byte*) print_line_cursor#1 mul16s_error::@10/(byte*) print_line_cursor#1 mul16u_compare::@11/((byte*))(word/signed word/dword/signed dword) 1024 mul16u_compare::@18/(byte*) print_line_cursor#1 mul16u_error::@10/((byte*))(word/signed word/dword/signed dword) 1024 ) + [59] (byte*) print_line_cursor#43 ← phi( mul16s_compare::@11/(byte*) print_line_cursor#1 mul16s_compare::@18/(byte*) print_line_cursor#1 mul16s_error::@10/(byte*) print_line_cursor#1 mul16u_compare::@11/((byte*))(word/signed word/dword/signed dword) $400 mul16u_compare::@18/(byte*) print_line_cursor#1 mul16u_error::@10/((byte*))(word/signed word/dword/signed dword) $400 ) to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [60] (byte*) print_line_cursor#22 ← phi( print_ln/(byte*) print_line_cursor#43 print_ln::@1/(byte*) print_line_cursor#1 ) - [61] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#22 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [61] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#22 + (byte/signed byte/word/signed word/dword/signed dword) $28 [62] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#129) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 @@ -241,7 +241,7 @@ print_byte: scope:[print_byte] from print_word print_word::@1 [118] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [119] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [119] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [120] (byte) print_char::ch#3 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [121] call print_char to:print_byte::@return @@ -409,15 +409,15 @@ mul16u_compare::@1: scope:[mul16u_compare] from mul16u_compare mul16u_compare:: [200] (byte) mul16u_compare::i#12 ← phi( mul16u_compare/(byte/signed byte/word/signed word/dword/signed dword) 0 mul16u_compare::@10/(byte) mul16u_compare::i#1 ) [200] (word) mul16u_compare::b#6 ← phi( mul16u_compare/(byte/signed byte/word/signed word/dword/signed dword) 0 mul16u_compare::@10/(word) mul16u_compare::b#1 ) [200] (word) mul16u_compare::a#6 ← phi( mul16u_compare/(byte/signed byte/word/signed word/dword/signed dword) 0 mul16u_compare::@10/(word) mul16u_compare::a#1 ) - [200] (byte*) print_char_cursor#139 ← phi( mul16u_compare/((byte*))(word/signed word/dword/signed dword) 1024 mul16u_compare::@10/(byte*) print_char_cursor#128 ) + [200] (byte*) print_char_cursor#139 ← phi( mul16u_compare/((byte*))(word/signed word/dword/signed dword) $400 mul16u_compare::@10/(byte*) print_char_cursor#128 ) [201] call print_str to:mul16u_compare::@2 mul16u_compare::@2: scope:[mul16u_compare] from mul16u_compare::@1 mul16u_compare::@5 [202] (byte) mul16u_compare::j#10 ← phi( mul16u_compare::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 mul16u_compare::@5/(byte) mul16u_compare::j#1 ) [202] (word) mul16u_compare::b#2 ← phi( mul16u_compare::@1/(word) mul16u_compare::b#6 mul16u_compare::@5/(word) mul16u_compare::b#1 ) [202] (word) mul16u_compare::a#2 ← phi( mul16u_compare::@1/(word) mul16u_compare::a#6 mul16u_compare::@5/(word) mul16u_compare::a#1 ) - [203] (word) mul16u_compare::a#1 ← (word) mul16u_compare::a#2 + (word/signed word/dword/signed dword) 3371 - [204] (word) mul16u_compare::b#1 ← (word) mul16u_compare::b#2 + (word/signed word/dword/signed dword) 4093 + [203] (word) mul16u_compare::a#1 ← (word) mul16u_compare::a#2 + (word/signed word/dword/signed dword) $d2b + [204] (word) mul16u_compare::b#1 ← (word) mul16u_compare::b#2 + (word/signed word/dword/signed dword) $ffd [205] (word) muls16u::a#0 ← (word) mul16u_compare::a#1 [206] (word) muls16u::b#0 ← (word) mul16u_compare::b#1 [207] call muls16u @@ -466,11 +466,11 @@ mul16u_compare::@return: scope:[mul16u_compare] from mul16u_compare::@18 mul16u to:@return mul16u_compare::@5: scope:[mul16u_compare] from mul16u_compare::@4 [234] (byte) mul16u_compare::j#1 ← ++ (byte) mul16u_compare::j#10 - [235] if((byte) mul16u_compare::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mul16u_compare::@2 + [235] if((byte) mul16u_compare::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mul16u_compare::@2 to:mul16u_compare::@10 mul16u_compare::@10: scope:[mul16u_compare] from mul16u_compare::@5 [236] (byte) mul16u_compare::i#1 ← ++ (byte) mul16u_compare::i#12 - [237] if((byte) mul16u_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mul16u_compare::@1 + [237] if((byte) mul16u_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mul16u_compare::@1 to:mul16u_compare::@11 mul16u_compare::@11: scope:[mul16u_compare] from mul16u_compare::@10 [238] phi() @@ -555,8 +555,8 @@ mulf_init: scope:[mulf_init] from main::@1 to:mulf_init::@1 mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@2 [276] (byte) mulf_init::x_2#3 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::x_2#2 ) - [276] (byte*) mulf_init::sqr1_hi#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_hi#1 ) - [276] (byte*) mulf_init::sqr1_lo#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_lo#1 ) + [276] (byte*) mulf_init::sqr1_hi#2 ← phi( mulf_init/(const byte[$200]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_hi#1 ) + [276] (byte*) mulf_init::sqr1_lo#2 ← phi( mulf_init/(const byte[$200]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_lo#1 ) [276] (word) mulf_init::sqr#4 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(word) mulf_init::sqr#1 ) [276] (byte) mulf_init::c#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::c#1 ) [277] (byte) mulf_init::c#1 ← ++ (byte) mulf_init::c#2 @@ -577,15 +577,15 @@ mulf_init::@2: scope:[mulf_init] from mulf_init::@1 mulf_init::@5 [287] (byte*) mulf_init::sqr1_hi#1 ← ++ (byte*) mulf_init::sqr1_hi#2 [288] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [289] (byte*) mulf_init::sqr1_lo#1 ← ++ (byte*) mulf_init::sqr1_lo#2 - [290] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 + [290] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 to:mulf_init::@3 mulf_init::@3: scope:[mulf_init] from mulf_init::@2 mulf_init::@4 - [291] (byte) mulf_init::dir#2 ← phi( mulf_init::@4/(byte) mulf_init::dir#3 mulf_init::@2/(byte/word/signed word/dword/signed dword) 255 ) - [291] (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_hi#1 mulf_init::@2/(const byte[512]) mulf_sqr2_hi#0 ) - [291] (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_lo#1 mulf_init::@2/(const byte[512]) mulf_sqr2_lo#0 ) + [291] (byte) mulf_init::dir#2 ← phi( mulf_init::@4/(byte) mulf_init::dir#3 mulf_init::@2/(byte/word/signed word/dword/signed dword) $ff ) + [291] (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_hi#1 mulf_init::@2/(const byte[$200]) mulf_sqr2_hi#0 ) + [291] (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_lo#1 mulf_init::@2/(const byte[$200]) mulf_sqr2_lo#0 ) [291] (byte) mulf_init::x_255#2 ← phi( mulf_init::@4/(byte) mulf_init::x_255#1 mulf_init::@2/((byte))-(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [292] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) - [293] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) + [292] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) + [293] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [294] (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 [295] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [296] if((byte) mulf_init::x_255#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@12 @@ -593,11 +593,11 @@ mulf_init::@3: scope:[mulf_init] from mulf_init::@2 mulf_init::@4 mulf_init::@4: scope:[mulf_init] from mulf_init::@12 mulf_init::@3 [297] (byte) mulf_init::dir#3 ← phi( mulf_init::@12/(byte) mulf_init::dir#2 mulf_init::@3/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [298] (byte*) mulf_init::sqr2_lo#1 ← ++ (byte*) mulf_init::sqr2_lo#2 - [299] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 + [299] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 to:mulf_init::@8 mulf_init::@8: scope:[mulf_init] from mulf_init::@4 - [300] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) - [301] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) + [300] *((const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100) + [301] *((const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100) to:mulf_init::@return mulf_init::@return: scope:[mulf_init] from mulf_init::@8 [302] return @@ -609,10 +609,10 @@ print_cls: scope:[print_cls] from main [304] phi() to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 - [305] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) 1024 print_cls::@1/(byte*) print_cls::sc#1 ) + [305] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) $400 print_cls::@1/(byte*) print_cls::sc#1 ) [306] *((byte*) print_cls::sc#2) ← (byte) ' ' [307] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [308] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [308] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [309] return diff --git a/src/test/ref/test-multiply-16bit.log b/src/test/ref/test-multiply-16bit.log index 2b99e17a0..1ab5dc6be 100644 --- a/src/test/ref/test-multiply-16bit.log +++ b/src/test/ref/test-multiply-16bit.log @@ -2,7 +2,7 @@ Inlined call call mulf8s_prepare (signed byte) mulf8s::a CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 to:@12 @@ -35,7 +35,7 @@ print_ln: scope:[print_ln] from mul16s_compare::@11 mul16s_compare::@18 mul16s_ print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 (byte*) print_char_cursor#67 ← phi( print_ln/(byte*) print_char_cursor#129 print_ln::@1/(byte*) print_char_cursor#67 ) (byte*) print_line_cursor#22 ← phi( print_ln/(byte*) print_line_cursor#43 print_ln::@1/(byte*) print_line_cursor#1 ) - (byte*~) print_ln::$0 ← (byte*) print_line_cursor#22 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) print_ln::$0 ← (byte*) print_line_cursor#22 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) print_line_cursor#1 ← (byte*~) print_ln::$0 (bool~) print_ln::$1 ← (byte*) print_line_cursor#1 < (byte*) print_char_cursor#67 if((bool~) print_ln::$1) goto print_ln::@1 @@ -188,7 +188,7 @@ print_byte::@1: scope:[print_byte] from print_byte (byte) print_byte::b#3 ← phi( print_byte/(byte) print_byte::b#2 ) (byte*) print_char_cursor#81 ← phi( print_byte/(byte*) print_char_cursor#21 ) (byte*) print_char_cursor#17 ← (byte*) print_char_cursor#81 - (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte) print_char::ch#3 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$2) call print_char to:print_byte::@2 @@ -221,7 +221,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 (byte*) print_cls::sc#2 ← phi( print_cls/(byte*) print_cls::sc#0 print_cls::@1/(byte*) print_cls::sc#1 ) *((byte*) print_cls::sc#2) ← (byte) ' ' (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) 1000 + (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) $3e8 (bool~) print_cls::$1 ← (byte*) print_cls::sc#1 != (byte*~) print_cls::$0 if((bool~) print_cls::$1) goto print_cls::@1 to:print_cls::@2 @@ -345,18 +345,18 @@ mul16s::@return: scope:[mul16s] from mul16s::@2 (byte*) print_screen#7 ← phi( @12/(byte*) print_screen#8 ) (byte*) print_char_cursor#158 ← phi( @12/(byte*) print_char_cursor#165 ) (byte*) print_line_cursor#62 ← phi( @12/(byte*) print_line_cursor#71 ) - (byte[512]) mulf_sqr1_lo#0 ← { fill( 512, 0) } - (byte[512]) mulf_sqr1_hi#0 ← { fill( 512, 0) } - (byte[512]) mulf_sqr2_lo#0 ← { fill( 512, 0) } - (byte[512]) mulf_sqr2_hi#0 ← { fill( 512, 0) } + (byte[$200]) mulf_sqr1_lo#0 ← { fill( $200, 0) } + (byte[$200]) mulf_sqr1_hi#0 ← { fill( $200, 0) } + (byte[$200]) mulf_sqr2_lo#0 ← { fill( $200, 0) } + (byte[$200]) mulf_sqr2_hi#0 ← { fill( $200, 0) } to:@33 mulf_init: scope:[mulf_init] from main::@1 (word) mulf_init::sqr#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) mulf_init::x_2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) mulf_init::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte*~) mulf_init::$0 ← (byte[512]) mulf_sqr1_hi#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte*~) mulf_init::$0 ← (byte[$200]) mulf_sqr1_hi#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) mulf_init::sqr1_hi#0 ← (byte*~) mulf_init::$0 - (byte*~) mulf_init::$1 ← (byte[512]) mulf_sqr1_lo#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte*~) mulf_init::$1 ← (byte[$200]) mulf_sqr1_lo#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) mulf_init::sqr1_lo#0 ← (byte*~) mulf_init::$1 to:mulf_init::@1 mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@2 @@ -385,7 +385,7 @@ mulf_init::@2: scope:[mulf_init] from mulf_init::@1 mulf_init::@5 (word~) mulf_init::$7 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 (word) mulf_init::sqr#1 ← (word~) mulf_init::$7 (byte*) mulf_init::sqr1_lo#1 ← ++ (byte*) mulf_init::sqr1_lo#2 - (byte*~) mulf_init::$8 ← (byte[512]) mulf_sqr1_lo#0 + (word/signed word/dword/signed dword) 512 + (byte*~) mulf_init::$8 ← (byte[$200]) mulf_sqr1_lo#0 + (word/signed word/dword/signed dword) $200 (bool~) mulf_init::$9 ← (byte*) mulf_init::sqr1_lo#1 != (byte*~) mulf_init::$8 if((bool~) mulf_init::$9) goto mulf_init::@1 to:mulf_init::@6 @@ -402,17 +402,17 @@ mulf_init::@6: scope:[mulf_init] from mulf_init::@2 (signed byte/signed word/signed dword~) mulf_init::$10 ← - (byte/signed byte/word/signed word/dword/signed dword) 1 (byte~) mulf_init::$11 ← ((byte)) (signed byte/signed word/signed dword~) mulf_init::$10 (byte) mulf_init::x_255#0 ← (byte~) mulf_init::$11 - (byte) mulf_init::dir#0 ← (byte/word/signed word/dword/signed dword) 255 - (byte*) mulf_init::sqr2_hi#0 ← (byte[512]) mulf_sqr2_hi#0 - (byte*) mulf_init::sqr2_lo#0 ← (byte[512]) mulf_sqr2_lo#0 + (byte) mulf_init::dir#0 ← (byte/word/signed word/dword/signed dword) $ff + (byte*) mulf_init::sqr2_hi#0 ← (byte[$200]) mulf_sqr2_hi#0 + (byte*) mulf_init::sqr2_lo#0 ← (byte[$200]) mulf_sqr2_lo#0 to:mulf_init::@3 mulf_init::@3: scope:[mulf_init] from mulf_init::@4 mulf_init::@6 (byte) mulf_init::dir#2 ← phi( mulf_init::@4/(byte) mulf_init::dir#3 mulf_init::@6/(byte) mulf_init::dir#0 ) (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_hi#3 mulf_init::@6/(byte*) mulf_init::sqr2_hi#0 ) (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_lo#1 mulf_init::@6/(byte*) mulf_init::sqr2_lo#0 ) (byte) mulf_init::x_255#2 ← phi( mulf_init::@4/(byte) mulf_init::x_255#3 mulf_init::@6/(byte) mulf_init::x_255#0 ) - *((byte*) mulf_init::sqr2_lo#2) ← *((byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) - *((byte*) mulf_init::sqr2_hi#2) ← *((byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) + *((byte*) mulf_init::sqr2_lo#2) ← *((byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) + *((byte*) mulf_init::sqr2_hi#2) ← *((byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 (byte~) mulf_init::$12 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 (byte) mulf_init::x_255#1 ← (byte~) mulf_init::$12 @@ -426,7 +426,7 @@ mulf_init::@4: scope:[mulf_init] from mulf_init::@3 mulf_init::@7 (byte) mulf_init::x_255#3 ← phi( mulf_init::@3/(byte) mulf_init::x_255#1 mulf_init::@7/(byte) mulf_init::x_255#4 ) (byte*) mulf_init::sqr2_lo#3 ← phi( mulf_init::@3/(byte*) mulf_init::sqr2_lo#2 mulf_init::@7/(byte*) mulf_init::sqr2_lo#4 ) (byte*) mulf_init::sqr2_lo#1 ← ++ (byte*) mulf_init::sqr2_lo#3 - (byte*~) mulf_init::$15 ← (byte[512]) mulf_sqr2_lo#0 + (word/signed word/dword/signed dword) 511 + (byte*~) mulf_init::$15 ← (byte[$200]) mulf_sqr2_lo#0 + (word/signed word/dword/signed dword) $1ff (bool~) mulf_init::$16 ← (byte*) mulf_init::sqr2_lo#1 != (byte*~) mulf_init::$15 if((bool~) mulf_init::$16) goto mulf_init::@3 to:mulf_init::@8 @@ -437,11 +437,11 @@ mulf_init::@7: scope:[mulf_init] from mulf_init::@3 (byte) mulf_init::dir#1 ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:mulf_init::@4 mulf_init::@8: scope:[mulf_init] from mulf_init::@4 - (byte*~) mulf_init::$17 ← (byte[512]) mulf_sqr2_lo#0 + (word/signed word/dword/signed dword) 511 - (byte*~) mulf_init::$18 ← (byte[512]) mulf_sqr1_lo#0 + (word/signed word/dword/signed dword) 256 + (byte*~) mulf_init::$17 ← (byte[$200]) mulf_sqr2_lo#0 + (word/signed word/dword/signed dword) $1ff + (byte*~) mulf_init::$18 ← (byte[$200]) mulf_sqr1_lo#0 + (word/signed word/dword/signed dword) $100 *((byte*~) mulf_init::$17) ← *((byte*~) mulf_init::$18) - (byte*~) mulf_init::$19 ← (byte[512]) mulf_sqr2_hi#0 + (word/signed word/dword/signed dword) 511 - (byte*~) mulf_init::$20 ← (byte[512]) mulf_sqr1_hi#0 + (word/signed word/dword/signed dword) 256 + (byte*~) mulf_init::$19 ← (byte[$200]) mulf_sqr2_hi#0 + (word/signed word/dword/signed dword) $1ff + (byte*~) mulf_init::$20 ← (byte[$200]) mulf_sqr1_hi#0 + (word/signed word/dword/signed dword) $100 *((byte*~) mulf_init::$19) ← *((byte*~) mulf_init::$20) to:mulf_init::@return mulf_init::@return: scope:[mulf_init] from mulf_init::@8 @@ -450,9 +450,9 @@ mulf_init::@return: scope:[mulf_init] from mulf_init::@8 mulf16u: scope:[mulf16u] from mul16u_compare::@14 mulf16s (word) mulf16u::b#2 ← phi( mul16u_compare::@14/(word) mulf16u::b#1 mulf16s/(word) mulf16u::b#0 ) (word) mulf16u::a#2 ← phi( mul16u_compare::@14/(word) mulf16u::a#1 mulf16s/(word) mulf16u::a#0 ) - (word*) mulf16u::memA#0 ← ((word*)) (byte/word/signed word/dword/signed dword) 248 - (word*) mulf16u::memB#0 ← ((word*)) (byte/word/signed word/dword/signed dword) 250 - (dword*) mulf16u::memR#0 ← ((dword*)) (byte/word/signed word/dword/signed dword) 252 + (word*) mulf16u::memA#0 ← ((word*)) (byte/word/signed word/dword/signed dword) $f8 + (word*) mulf16u::memB#0 ← ((word*)) (byte/word/signed word/dword/signed dword) $fa + (dword*) mulf16u::memR#0 ← ((dword*)) (byte/word/signed word/dword/signed dword) $fc *((word*) mulf16u::memA#0) ← (word) mulf16u::a#2 *((word*) mulf16u::memB#0) ← (word) mulf16u::b#2 asm { ldamemA stasm1a+1 stasm3a+1 stasm5a+1 stasm7a+1 eor#$ff stasm2a+1 stasm4a+1 stasm6a+1 stasm8a+1 ldamemA+1 stasm1b+1 stasm3b+1 stasm5b+1 stasm7b+1 eor#$ff stasm2b+1 stasm4b+1 stasm6b+1 stasm8b+1 ldxmemB sec sm1a: ldamulf_sqr1_lo,x sm2a: sbcmulf_sqr2_lo,x stamemR+0 sm3a: ldamulf_sqr1_hi,x sm4a: sbcmulf_sqr2_hi,x sta_AA+1 sec sm1b: ldamulf_sqr1_lo,x sm2b: sbcmulf_sqr2_lo,x sta_cc+1 sm3b: ldamulf_sqr1_hi,x sm4b: sbcmulf_sqr2_hi,x sta_CC+1 ldxmemB+1 sec sm5a: ldamulf_sqr1_lo,x sm6a: sbcmulf_sqr2_lo,x sta_bb+1 sm7a: ldamulf_sqr1_hi,x sm8a: sbcmulf_sqr2_hi,x sta_BB+1 sec sm5b: ldamulf_sqr1_lo,x sm6b: sbcmulf_sqr2_lo,x sta_dd+1 sm7b: ldamulf_sqr1_hi,x sm8b: sbcmulf_sqr2_hi,x stamemR+3 clc _AA: lda#0 _bb: adc#0 stamemR+1 _BB: lda#0 _CC: adc#0 stamemR+2 bcc!+ incmemR+3 clc !: _cc: lda#0 adcmemR+1 stamemR+1 _dd: lda#0 adcmemR+2 stamemR+2 bcc!+ incmemR+3 !: } @@ -524,7 +524,7 @@ mulf16s::@return: scope:[mulf16s] from mulf16s::@2 (byte*) print_screen#6 ← phi( @24/(byte*) print_screen#7 ) (byte*) print_char_cursor#157 ← phi( @24/(byte*) print_char_cursor#158 ) (byte*) print_line_cursor#61 ← phi( @24/(byte*) print_line_cursor#62 ) - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 to:@40 main: scope:[main] from @40 (byte*) print_char_cursor#137 ← phi( @40/(byte*) print_char_cursor#147 ) @@ -700,9 +700,9 @@ mul16u_compare::@2: scope:[mul16u_compare] from mul16u_compare::@12 mul16u_comp (byte) mul16u_compare::j#10 ← phi( mul16u_compare::@12/(byte) mul16u_compare::j#0 mul16u_compare::@5/(byte) mul16u_compare::j#1 ) (word) mul16u_compare::b#2 ← phi( mul16u_compare::@12/(word) mul16u_compare::b#6 mul16u_compare::@5/(word) mul16u_compare::b#7 ) (word) mul16u_compare::a#2 ← phi( mul16u_compare::@12/(word) mul16u_compare::a#6 mul16u_compare::@5/(word) mul16u_compare::a#7 ) - (word/signed dword/dword~) mul16u_compare::$1 ← (word) mul16u_compare::a#2 + (word/signed word/dword/signed dword) 3371 + (word/signed dword/dword~) mul16u_compare::$1 ← (word) mul16u_compare::a#2 + (word/signed word/dword/signed dword) $d2b (word) mul16u_compare::a#1 ← (word/signed dword/dword~) mul16u_compare::$1 - (word/signed dword/dword~) mul16u_compare::$2 ← (word) mul16u_compare::b#2 + (word/signed word/dword/signed dword) 4093 + (word/signed dword/dword~) mul16u_compare::$2 ← (word) mul16u_compare::b#2 + (word/signed word/dword/signed dword) $ffd (word) mul16u_compare::b#1 ← (word/signed dword/dword~) mul16u_compare::$2 (word) muls16u::a#0 ← (word) mul16u_compare::a#1 (word) muls16u::b#0 ← (word) mul16u_compare::b#1 @@ -826,8 +826,8 @@ mul16u_compare::@5: scope:[mul16u_compare] from mul16u_compare::@4 (word) mul16u_compare::b#7 ← phi( mul16u_compare::@4/(word) mul16u_compare::b#8 ) (word) mul16u_compare::a#7 ← phi( mul16u_compare::@4/(word) mul16u_compare::a#8 ) (byte) mul16u_compare::j#2 ← phi( mul16u_compare::@4/(byte) mul16u_compare::j#3 ) - (byte) mul16u_compare::j#1 ← (byte) mul16u_compare::j#2 + rangenext(0,15) - (bool~) mul16u_compare::$13 ← (byte) mul16u_compare::j#1 != rangelast(0,15) + (byte) mul16u_compare::j#1 ← (byte) mul16u_compare::j#2 + rangenext(0,$f) + (bool~) mul16u_compare::$13 ← (byte) mul16u_compare::j#1 != rangelast(0,$f) if((bool~) mul16u_compare::$13) goto mul16u_compare::@2 to:mul16u_compare::@10 mul16u_compare::@8: scope:[mul16u_compare] from mul16u_compare::@4 @@ -867,8 +867,8 @@ mul16u_compare::@10: scope:[mul16u_compare] from mul16u_compare::@5 (byte*) print_line_cursor#56 ← phi( mul16u_compare::@5/(byte*) print_line_cursor#65 ) (byte*) print_char_cursor#152 ← phi( mul16u_compare::@5/(byte*) print_char_cursor#161 ) (byte) mul16u_compare::i#2 ← phi( mul16u_compare::@5/(byte) mul16u_compare::i#3 ) - (byte) mul16u_compare::i#1 ← (byte) mul16u_compare::i#2 + rangenext(0,15) - (bool~) mul16u_compare::$14 ← (byte) mul16u_compare::i#1 != rangelast(0,15) + (byte) mul16u_compare::i#1 ← (byte) mul16u_compare::i#2 + rangenext(0,$f) + (bool~) mul16u_compare::$14 ← (byte) mul16u_compare::i#1 != rangelast(0,$f) if((bool~) mul16u_compare::$14) goto mul16u_compare::@1 to:mul16u_compare::@11 mul16u_compare::@11: scope:[mul16u_compare] from mul16u_compare::@10 @@ -1018,9 +1018,9 @@ mul16s_compare: scope:[mul16s_compare] from main::@3 (byte*) print_line_cursor#100 ← phi( main::@3/(byte*) print_line_cursor#6 ) (byte*) BGCOL#29 ← phi( main::@3/(byte*) BGCOL#32 ) (byte*) print_char_cursor#154 ← phi( main::@3/(byte*) print_char_cursor#25 ) - (signed word/signed dword~) mul16s_compare::$0 ← - (word/signed word/dword/signed dword) 32767 + (signed word/signed dword~) mul16s_compare::$0 ← - (word/signed word/dword/signed dword) $7fff (signed word) mul16s_compare::a#0 ← (signed word/signed dword~) mul16s_compare::$0 - (signed word/signed dword~) mul16s_compare::$1 ← - (word/signed word/dword/signed dword) 32767 + (signed word/signed dword~) mul16s_compare::$1 ← - (word/signed word/dword/signed dword) $7fff (signed word) mul16s_compare::b#0 ← (signed word/signed dword~) mul16s_compare::$1 (byte) mul16s_compare::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:mul16s_compare::@1 @@ -1052,9 +1052,9 @@ mul16s_compare::@2: scope:[mul16s_compare] from mul16s_compare::@12 mul16s_comp (byte) mul16s_compare::j#10 ← phi( mul16s_compare::@12/(byte) mul16s_compare::j#0 mul16s_compare::@5/(byte) mul16s_compare::j#1 ) (signed word) mul16s_compare::b#2 ← phi( mul16s_compare::@12/(signed word) mul16s_compare::b#6 mul16s_compare::@5/(signed word) mul16s_compare::b#7 ) (signed word) mul16s_compare::a#2 ← phi( mul16s_compare::@12/(signed word) mul16s_compare::a#6 mul16s_compare::@5/(signed word) mul16s_compare::a#7 ) - (signed dword/signed word~) mul16s_compare::$3 ← (signed word) mul16s_compare::a#2 + (word/signed word/dword/signed dword) 3371 + (signed dword/signed word~) mul16s_compare::$3 ← (signed word) mul16s_compare::a#2 + (word/signed word/dword/signed dword) $d2b (signed word) mul16s_compare::a#1 ← (signed dword/signed word~) mul16s_compare::$3 - (signed dword/signed word~) mul16s_compare::$4 ← (signed word) mul16s_compare::b#2 + (word/signed word/dword/signed dword) 4093 + (signed dword/signed word~) mul16s_compare::$4 ← (signed word) mul16s_compare::b#2 + (word/signed word/dword/signed dword) $ffd (signed word) mul16s_compare::b#1 ← (signed dword/signed word~) mul16s_compare::$4 (signed word) muls16s::a#0 ← (signed word) mul16s_compare::a#1 (signed word) muls16s::b#0 ← (signed word) mul16s_compare::b#1 @@ -1178,8 +1178,8 @@ mul16s_compare::@5: scope:[mul16s_compare] from mul16s_compare::@4 (signed word) mul16s_compare::b#7 ← phi( mul16s_compare::@4/(signed word) mul16s_compare::b#8 ) (signed word) mul16s_compare::a#7 ← phi( mul16s_compare::@4/(signed word) mul16s_compare::a#8 ) (byte) mul16s_compare::j#2 ← phi( mul16s_compare::@4/(byte) mul16s_compare::j#3 ) - (byte) mul16s_compare::j#1 ← (byte) mul16s_compare::j#2 + rangenext(0,15) - (bool~) mul16s_compare::$15 ← (byte) mul16s_compare::j#1 != rangelast(0,15) + (byte) mul16s_compare::j#1 ← (byte) mul16s_compare::j#2 + rangenext(0,$f) + (bool~) mul16s_compare::$15 ← (byte) mul16s_compare::j#1 != rangelast(0,$f) if((bool~) mul16s_compare::$15) goto mul16s_compare::@2 to:mul16s_compare::@10 mul16s_compare::@8: scope:[mul16s_compare] from mul16s_compare::@4 @@ -1219,8 +1219,8 @@ mul16s_compare::@10: scope:[mul16s_compare] from mul16s_compare::@5 (byte*) print_line_cursor#59 ← phi( mul16s_compare::@5/(byte*) print_line_cursor#69 ) (byte*) print_char_cursor#155 ← phi( mul16s_compare::@5/(byte*) print_char_cursor#164 ) (byte) mul16s_compare::i#2 ← phi( mul16s_compare::@5/(byte) mul16s_compare::i#3 ) - (byte) mul16s_compare::i#1 ← (byte) mul16s_compare::i#2 + rangenext(0,15) - (bool~) mul16s_compare::$16 ← (byte) mul16s_compare::i#1 != rangelast(0,15) + (byte) mul16s_compare::i#1 ← (byte) mul16s_compare::i#2 + rangenext(0,$f) + (bool~) mul16s_compare::$16 ← (byte) mul16s_compare::i#1 != rangelast(0,$f) if((bool~) mul16s_compare::$16) goto mul16s_compare::@1 to:mul16s_compare::@11 mul16s_compare::@11: scope:[mul16s_compare] from mul16s_compare::@10 @@ -2056,14 +2056,14 @@ SYMBOL TABLE SSA (byte) mulf_init::x_255#2 (byte) mulf_init::x_255#3 (byte) mulf_init::x_255#4 -(byte[512]) mulf_sqr1_hi -(byte[512]) mulf_sqr1_hi#0 -(byte[512]) mulf_sqr1_lo -(byte[512]) mulf_sqr1_lo#0 -(byte[512]) mulf_sqr2_hi -(byte[512]) mulf_sqr2_hi#0 -(byte[512]) mulf_sqr2_lo -(byte[512]) mulf_sqr2_lo#0 +(byte[$200]) mulf_sqr1_hi +(byte[$200]) mulf_sqr1_hi#0 +(byte[$200]) mulf_sqr1_lo +(byte[$200]) mulf_sqr1_lo#0 +(byte[$200]) mulf_sqr2_hi +(byte[$200]) mulf_sqr2_hi#0 +(byte[$200]) mulf_sqr2_lo +(byte[$200]) mulf_sqr2_lo#0 (signed dword()) muls16s((signed word) muls16s::a , (signed word) muls16s::b) (bool~) muls16s::$0 (bool~) muls16s::$1 @@ -3009,33 +3009,33 @@ Simple Condition (bool~) muls16s::$6 [364] if((signed word) muls16s::i#1!=(signe Simple Condition (bool~) mul16u_compare::$7 [407] if((dword) mul16u_compare::ms#0==(dword) mul16u_compare::mf#0) goto mul16u_compare::@3 Simple Condition (bool~) mul16u_compare::$9 [411] if((dword) mul16u_compare::ms#0==(dword) mul16u_compare::mn#0) goto mul16u_compare::@4 Simple Condition (bool~) mul16u_compare::$11 [417] if((byte) mul16u_compare::ok#3!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u_compare::@5 -Simple Condition (bool~) mul16u_compare::$13 [423] if((byte) mul16u_compare::j#1!=rangelast(0,15)) goto mul16u_compare::@2 -Simple Condition (bool~) mul16u_compare::$14 [442] if((byte) mul16u_compare::i#1!=rangelast(0,15)) goto mul16u_compare::@1 +Simple Condition (bool~) mul16u_compare::$13 [423] if((byte) mul16u_compare::j#1!=rangelast(0,$f)) goto mul16u_compare::@2 +Simple Condition (bool~) mul16u_compare::$14 [442] if((byte) mul16u_compare::i#1!=rangelast(0,$f)) goto mul16u_compare::@1 Simple Condition (bool~) mul16s_compare::$9 [546] if((signed dword) mul16s_compare::ms#0==(signed dword) mul16s_compare::mf#0) goto mul16s_compare::@3 Simple Condition (bool~) mul16s_compare::$11 [550] if((signed dword) mul16s_compare::ms#0==(signed dword) mul16s_compare::mn#0) goto mul16s_compare::@4 Simple Condition (bool~) mul16s_compare::$13 [556] if((byte) mul16s_compare::ok#3!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16s_compare::@5 -Simple Condition (bool~) mul16s_compare::$15 [562] if((byte) mul16s_compare::j#1!=rangelast(0,15)) goto mul16s_compare::@2 -Simple Condition (bool~) mul16s_compare::$16 [581] if((byte) mul16s_compare::i#1!=rangelast(0,15)) goto mul16s_compare::@1 +Simple Condition (bool~) mul16s_compare::$15 [562] if((byte) mul16s_compare::j#1!=rangelast(0,$f)) goto mul16s_compare::@2 +Simple Condition (bool~) mul16s_compare::$16 [581] if((byte) mul16s_compare::i#1!=rangelast(0,$f)) goto mul16s_compare::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) print_line_cursor#0 = ((byte*))1024 +Constant (const byte*) print_line_cursor#0 = ((byte*))$400 Constant (const byte) print_char::ch#0 = '-' Constant (const byte) print_char::ch#1 = '-' Constant (const byte[]) print_hextab#0 = $0 Constant (const dword) mul16u::res#0 = 0 -Constant (const byte[512]) mulf_sqr1_lo#0 = { fill( 512, 0) } -Constant (const byte[512]) mulf_sqr1_hi#0 = { fill( 512, 0) } -Constant (const byte[512]) mulf_sqr2_lo#0 = { fill( 512, 0) } -Constant (const byte[512]) mulf_sqr2_hi#0 = { fill( 512, 0) } +Constant (const byte[$200]) mulf_sqr1_lo#0 = { fill( $200, 0) } +Constant (const byte[$200]) mulf_sqr1_hi#0 = { fill( $200, 0) } +Constant (const byte[$200]) mulf_sqr2_lo#0 = { fill( $200, 0) } +Constant (const byte[$200]) mulf_sqr2_hi#0 = { fill( $200, 0) } Constant (const word) mulf_init::sqr#0 = 0 Constant (const byte) mulf_init::x_2#0 = 0 Constant (const byte) mulf_init::c#0 = 0 Constant (const signed byte/signed word/signed dword) mulf_init::$10 = -1 -Constant (const byte) mulf_init::dir#0 = 255 +Constant (const byte) mulf_init::dir#0 = $ff Constant (const byte) mulf_init::dir#1 = 1 -Constant (const word*) mulf16u::memA#0 = ((word*))248 -Constant (const word*) mulf16u::memB#0 = ((word*))250 -Constant (const dword*) mulf16u::memR#0 = ((dword*))252 -Constant (const byte*) BGCOL#0 = ((byte*))53281 +Constant (const word*) mulf16u::memA#0 = ((word*))$f8 +Constant (const word*) mulf16u::memB#0 = ((word*))$fa +Constant (const dword*) mulf16u::memR#0 = ((dword*))$fc +Constant (const byte*) BGCOL#0 = ((byte*))$d021 Constant (const dword) muls16u::m#0 = 0 Constant (const word) muls16u::i#0 = 0 Constant (const signed dword) muls16s::m#0 = 0 @@ -3055,8 +3055,8 @@ Constant (const byte*) print_str::str#4 = mul16u_error::str1 Constant (const byte*) print_str::str#5 = mul16u_error::str2 Constant (const byte*) print_str::str#6 = mul16u_error::str3 Constant (const byte*) print_str::str#7 = mul16u_error::str4 -Constant (const signed word) mul16s_compare::a#0 = -32767 -Constant (const signed word) mul16s_compare::b#0 = -32767 +Constant (const signed word) mul16s_compare::a#0 = -$7fff +Constant (const signed word) mul16s_compare::b#0 = -$7fff Constant (const byte) mul16s_compare::i#0 = 0 Constant (const byte*) print_str::str#8 = mul16s_compare::str Constant (const byte) mul16s_compare::j#0 = 0 @@ -3071,18 +3071,18 @@ Constant (const byte*) print_str::str#13 = mul16s_error::str3 Constant (const byte*) print_str::str#14 = mul16s_error::str4 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) print_cls::sc#0 = print_line_cursor#0 -Constant (const byte*) print_cls::$0 = print_line_cursor#0+1000 +Constant (const byte*) print_cls::$0 = print_line_cursor#0+$3e8 Constant (const byte*) mulf_init::sqr1_hi#0 = mulf_sqr1_hi#0+1 Constant (const byte*) mulf_init::sqr1_lo#0 = mulf_sqr1_lo#0+1 -Constant (const byte*) mulf_init::$8 = mulf_sqr1_lo#0+512 +Constant (const byte*) mulf_init::$8 = mulf_sqr1_lo#0+$200 Constant (const byte) mulf_init::x_255#0 = ((byte))mulf_init::$10 Constant (const byte*) mulf_init::sqr2_hi#0 = mulf_sqr2_hi#0 Constant (const byte*) mulf_init::sqr2_lo#0 = mulf_sqr2_lo#0 -Constant (const byte*) mulf_init::$15 = mulf_sqr2_lo#0+511 -Constant (const byte*) mulf_init::$17 = mulf_sqr2_lo#0+511 -Constant (const byte*) mulf_init::$18 = mulf_sqr1_lo#0+256 -Constant (const byte*) mulf_init::$19 = mulf_sqr2_hi#0+511 -Constant (const byte*) mulf_init::$20 = mulf_sqr1_hi#0+256 +Constant (const byte*) mulf_init::$15 = mulf_sqr2_lo#0+$1ff +Constant (const byte*) mulf_init::$17 = mulf_sqr2_lo#0+$1ff +Constant (const byte*) mulf_init::$18 = mulf_sqr1_lo#0+$100 +Constant (const byte*) mulf_init::$19 = mulf_sqr2_hi#0+$1ff +Constant (const byte*) mulf_init::$20 = mulf_sqr1_hi#0+$100 Successful SSA optimization Pass2ConstantIdentification Successful SSA optimization Pass2ConstantStringConsolidation Eliminating Noop Cast (word) print_word::w#0 ← ((word)) (signed word) print_sword::w#4 @@ -3096,13 +3096,13 @@ Eliminating Noop Cast (word~) mulf16s::$7 ← ((word)) (signed word) mulf16s::b# Eliminating Noop Cast (word~) mulf16s::$13 ← ((word)) (signed word) mulf16s::a#0 Successful SSA optimization Pass2NopCastElimination Resolved ranged next value mul16u_compare::j#1 ← ++ mul16u_compare::j#10 to ++ -Resolved ranged comparison value if(mul16u_compare::j#1!=rangelast(0,15)) goto mul16u_compare::@2 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(mul16u_compare::j#1!=rangelast(0,$f)) goto mul16u_compare::@2 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value mul16u_compare::i#1 ← ++ mul16u_compare::i#12 to ++ -Resolved ranged comparison value if(mul16u_compare::i#1!=rangelast(0,15)) goto mul16u_compare::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(mul16u_compare::i#1!=rangelast(0,$f)) goto mul16u_compare::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value mul16s_compare::j#1 ← ++ mul16s_compare::j#10 to ++ -Resolved ranged comparison value if(mul16s_compare::j#1!=rangelast(0,15)) goto mul16s_compare::@2 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(mul16s_compare::j#1!=rangelast(0,$f)) goto mul16s_compare::@2 to (byte/signed byte/word/signed word/dword/signed dword) $10 Resolved ranged next value mul16s_compare::i#1 ← ++ mul16s_compare::i#12 to ++ -Resolved ranged comparison value if(mul16s_compare::i#1!=rangelast(0,15)) goto mul16s_compare::@1 to (byte/signed byte/word/signed word/dword/signed dword) 16 +Resolved ranged comparison value if(mul16s_compare::i#1!=rangelast(0,$f)) goto mul16s_compare::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10 Culled Empty Block (label) print_ln::@2 Culled Empty Block (label) print_sword::@3 Culled Empty Block (label) print_word::@2 @@ -3188,24 +3188,24 @@ Inlining constant with var siblings (const byte) mul16s_compare::ok#0 Inlining constant with var siblings (const byte) mul16s_compare::ok#1 Inlining constant with var siblings (const byte) mul16s_compare::ok#2 Inlining constant with var siblings (const byte*) print_line_cursor#0 -Constant inlined mulf_init::sqr2_lo#0 = (const byte[512]) mulf_sqr2_lo#0 +Constant inlined mulf_init::sqr2_lo#0 = (const byte[$200]) mulf_sqr2_lo#0 Constant inlined mul16u_error::str1 = (const string) str1 Constant inlined mul16u_error::str3 = (const string) str3 -Constant inlined mulf_init::sqr2_hi#0 = (const byte[512]) mulf_sqr2_hi#0 +Constant inlined mulf_init::sqr2_hi#0 = (const byte[$200]) mulf_sqr2_hi#0 Constant inlined mul16u_error::str2 = (const string) str2 Constant inlined mul16u_error::str4 = (const string) str4 Constant inlined $0 = (const byte[]) print_hextab#0 Constant inlined muls16s::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mul16u_compare::ok#0 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined mulf_init::dir#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined mulf_init::dir#0 = (byte/word/signed word/dword/signed dword) 255 +Constant inlined mulf_init::dir#0 = (byte/word/signed word/dword/signed dword) $ff Constant inlined muls16u::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mul16u_compare::ok#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mulf_init::$20 = (const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256 +Constant inlined mulf_init::$20 = (const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100 Constant inlined mul16u_compare::ok#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mul16s_error::str1 = (const string) str1 Constant inlined muls16u::m#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mul16s_compare::a#0 = -(word/signed word/dword/signed dword) 32767 +Constant inlined mul16s_compare::a#0 = -(word/signed word/dword/signed dword) $7fff Constant inlined mulf_init::x_255#0 = ((byte))-(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined mul16s_error::str4 = (const string) str4 Constant inlined mul16s_error::str3 = (const string) str3 @@ -3214,26 +3214,26 @@ Constant inlined mulf_init::x_2#0 = (byte/signed byte/word/signed word/dword/sig Constant inlined mul16u_compare::a#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mul16s_compare::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mul16u_compare::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined print_line_cursor#0 = ((byte*))(word/signed word/dword/signed dword) 1024 +Constant inlined print_line_cursor#0 = ((byte*))(word/signed word/dword/signed dword) $400 Constant inlined print_str::str#9 = (const string) mul16s_compare::str1 -Constant inlined mulf_init::sqr1_hi#0 = (const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined mulf_init::sqr1_hi#0 = (const byte[$200]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined mulf_init::$10 = -(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined mulf_init::sqr1_lo#0 = (const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined mulf_init::sqr1_lo#0 = (const byte[$200]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined print_str::str#4 = (const string) str1 -Constant inlined mulf_init::$15 = (const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511 +Constant inlined mulf_init::$15 = (const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff Constant inlined print_str::str#3 = (const string) mul16u_error::str Constant inlined print_str::str#2 = (const string) mul16u_compare::str1 Constant inlined print_str::str#1 = (const string) str -Constant inlined mulf_init::$18 = (const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256 +Constant inlined mulf_init::$18 = (const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100 Constant inlined print_str::str#8 = (const string) str -Constant inlined mulf_init::$19 = (const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511 +Constant inlined mulf_init::$19 = (const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff Constant inlined print_str::str#7 = (const string) str4 Constant inlined print_str::str#6 = (const string) str3 -Constant inlined mulf_init::$17 = (const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511 +Constant inlined mulf_init::$17 = (const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff Constant inlined print_str::str#5 = (const string) str2 Constant inlined mulf_init::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined muls16s::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000 +Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8 Constant inlined mul16s_compare::str = (const string) str Constant inlined print_str::str#13 = (const string) str3 Constant inlined print_str::str#12 = (const string) str2 @@ -3245,13 +3245,13 @@ Constant inlined mul16s_compare::ok#1 = (byte/signed byte/word/signed word/dword Constant inlined print_str::str#14 = (const string) str4 Constant inlined mul16s_compare::ok#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mul16u::res#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mul16s_compare::b#0 = -(word/signed word/dword/signed dword) 32767 +Constant inlined mul16s_compare::b#0 = -(word/signed word/dword/signed dword) $7fff Constant inlined mul16u_compare::b#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mul16s_compare::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mulf_init::sqr#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mul16u_compare::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword) 1024 -Constant inlined mulf_init::$8 = (const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512 +Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword) $400 +Constant inlined mulf_init::$8 = (const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200 Constant inlined print_char::ch#1 = (byte) '-' Constant inlined print_char::ch#0 = (byte) '-' Constant inlined mul16u_compare::str = (const string) str @@ -3538,8 +3538,8 @@ mul16s_compare: scope:[mul16s_compare] from main::@3 to:mul16s_compare::@1 mul16s_compare::@1: scope:[mul16s_compare] from mul16s_compare mul16s_compare::@10 [14] (byte) mul16s_compare::i#12 ← phi( mul16s_compare/(byte/signed byte/word/signed word/dword/signed dword) 0 mul16s_compare::@10/(byte) mul16s_compare::i#1 ) - [14] (signed word) mul16s_compare::b#6 ← phi( mul16s_compare/-(word/signed word/dword/signed dword) 32767 mul16s_compare::@10/(signed word) mul16s_compare::b#1 ) - [14] (signed word) mul16s_compare::a#6 ← phi( mul16s_compare/-(word/signed word/dword/signed dword) 32767 mul16s_compare::@10/(signed word) mul16s_compare::a#1 ) + [14] (signed word) mul16s_compare::b#6 ← phi( mul16s_compare/-(word/signed word/dword/signed dword) $7fff mul16s_compare::@10/(signed word) mul16s_compare::b#1 ) + [14] (signed word) mul16s_compare::a#6 ← phi( mul16s_compare/-(word/signed word/dword/signed dword) $7fff mul16s_compare::@10/(signed word) mul16s_compare::a#1 ) [14] (byte*) print_char_cursor#143 ← phi( mul16s_compare/(byte*~) print_char_cursor#176 mul16s_compare::@10/(byte*) print_char_cursor#128 ) [15] call print_str to:mul16s_compare::@2 @@ -3547,8 +3547,8 @@ mul16s_compare::@2: scope:[mul16s_compare] from mul16s_compare::@1 mul16s_compa [16] (byte) mul16s_compare::j#10 ← phi( mul16s_compare::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 mul16s_compare::@5/(byte) mul16s_compare::j#1 ) [16] (signed word) mul16s_compare::b#2 ← phi( mul16s_compare::@1/(signed word) mul16s_compare::b#6 mul16s_compare::@5/(signed word) mul16s_compare::b#1 ) [16] (signed word) mul16s_compare::a#2 ← phi( mul16s_compare::@1/(signed word) mul16s_compare::a#6 mul16s_compare::@5/(signed word) mul16s_compare::a#1 ) - [17] (signed word) mul16s_compare::a#1 ← (signed word) mul16s_compare::a#2 + (word/signed word/dword/signed dword) 3371 - [18] (signed word) mul16s_compare::b#1 ← (signed word) mul16s_compare::b#2 + (word/signed word/dword/signed dword) 4093 + [17] (signed word) mul16s_compare::a#1 ← (signed word) mul16s_compare::a#2 + (word/signed word/dword/signed dword) $d2b + [18] (signed word) mul16s_compare::b#1 ← (signed word) mul16s_compare::b#2 + (word/signed word/dword/signed dword) $ffd [19] (signed word) muls16s::a#0 ← (signed word) mul16s_compare::a#1 [20] (signed word) muls16s::b#0 ← (signed word) mul16s_compare::b#1 [21] call muls16s @@ -3597,11 +3597,11 @@ mul16s_compare::@return: scope:[mul16s_compare] from mul16s_compare::@18 mul16s to:@return mul16s_compare::@5: scope:[mul16s_compare] from mul16s_compare::@4 [48] (byte) mul16s_compare::j#1 ← ++ (byte) mul16s_compare::j#10 - [49] if((byte) mul16s_compare::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mul16s_compare::@2 + [49] if((byte) mul16s_compare::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mul16s_compare::@2 to:mul16s_compare::@10 mul16s_compare::@10: scope:[mul16s_compare] from mul16s_compare::@5 [50] (byte) mul16s_compare::i#1 ← ++ (byte) mul16s_compare::i#12 - [51] if((byte) mul16s_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mul16s_compare::@1 + [51] if((byte) mul16s_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mul16s_compare::@1 to:mul16s_compare::@11 mul16s_compare::@11: scope:[mul16s_compare] from mul16s_compare::@10 [52] phi() @@ -3620,11 +3620,11 @@ mul16s_compare::@22: scope:[mul16s_compare] from mul16s_compare::@3 to:mul16s_compare::@4 print_ln: scope:[print_ln] from mul16s_compare::@11 mul16s_compare::@18 mul16s_error::@10 mul16u_compare::@11 mul16u_compare::@18 mul16u_error::@10 [59] (byte*) print_char_cursor#129 ← phi( mul16s_compare::@11/(byte*) print_char_cursor#128 mul16s_compare::@18/(byte*) print_char_cursor#128 mul16s_error::@10/(byte*) print_char_cursor#20 mul16u_compare::@11/(byte*) print_char_cursor#128 mul16u_compare::@18/(byte*) print_char_cursor#128 mul16u_error::@10/(byte*) print_char_cursor#20 ) - [59] (byte*) print_line_cursor#43 ← phi( mul16s_compare::@11/(byte*) print_line_cursor#1 mul16s_compare::@18/(byte*) print_line_cursor#1 mul16s_error::@10/(byte*) print_line_cursor#1 mul16u_compare::@11/((byte*))(word/signed word/dword/signed dword) 1024 mul16u_compare::@18/(byte*) print_line_cursor#1 mul16u_error::@10/((byte*))(word/signed word/dword/signed dword) 1024 ) + [59] (byte*) print_line_cursor#43 ← phi( mul16s_compare::@11/(byte*) print_line_cursor#1 mul16s_compare::@18/(byte*) print_line_cursor#1 mul16s_error::@10/(byte*) print_line_cursor#1 mul16u_compare::@11/((byte*))(word/signed word/dword/signed dword) $400 mul16u_compare::@18/(byte*) print_line_cursor#1 mul16u_error::@10/((byte*))(word/signed word/dword/signed dword) $400 ) to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [60] (byte*) print_line_cursor#22 ← phi( print_ln/(byte*) print_line_cursor#43 print_ln::@1/(byte*) print_line_cursor#1 ) - [61] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#22 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [61] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#22 + (byte/signed byte/word/signed word/dword/signed dword) $28 [62] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#129) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 @@ -3748,7 +3748,7 @@ print_byte: scope:[print_byte] from print_word print_word::@1 [118] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [119] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [119] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [120] (byte) print_char::ch#3 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [121] call print_char to:print_byte::@return @@ -3916,15 +3916,15 @@ mul16u_compare::@1: scope:[mul16u_compare] from mul16u_compare mul16u_compare:: [200] (byte) mul16u_compare::i#12 ← phi( mul16u_compare/(byte/signed byte/word/signed word/dword/signed dword) 0 mul16u_compare::@10/(byte) mul16u_compare::i#1 ) [200] (word) mul16u_compare::b#6 ← phi( mul16u_compare/(byte/signed byte/word/signed word/dword/signed dword) 0 mul16u_compare::@10/(word) mul16u_compare::b#1 ) [200] (word) mul16u_compare::a#6 ← phi( mul16u_compare/(byte/signed byte/word/signed word/dword/signed dword) 0 mul16u_compare::@10/(word) mul16u_compare::a#1 ) - [200] (byte*) print_char_cursor#139 ← phi( mul16u_compare/((byte*))(word/signed word/dword/signed dword) 1024 mul16u_compare::@10/(byte*) print_char_cursor#128 ) + [200] (byte*) print_char_cursor#139 ← phi( mul16u_compare/((byte*))(word/signed word/dword/signed dword) $400 mul16u_compare::@10/(byte*) print_char_cursor#128 ) [201] call print_str to:mul16u_compare::@2 mul16u_compare::@2: scope:[mul16u_compare] from mul16u_compare::@1 mul16u_compare::@5 [202] (byte) mul16u_compare::j#10 ← phi( mul16u_compare::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 mul16u_compare::@5/(byte) mul16u_compare::j#1 ) [202] (word) mul16u_compare::b#2 ← phi( mul16u_compare::@1/(word) mul16u_compare::b#6 mul16u_compare::@5/(word) mul16u_compare::b#1 ) [202] (word) mul16u_compare::a#2 ← phi( mul16u_compare::@1/(word) mul16u_compare::a#6 mul16u_compare::@5/(word) mul16u_compare::a#1 ) - [203] (word) mul16u_compare::a#1 ← (word) mul16u_compare::a#2 + (word/signed word/dword/signed dword) 3371 - [204] (word) mul16u_compare::b#1 ← (word) mul16u_compare::b#2 + (word/signed word/dword/signed dword) 4093 + [203] (word) mul16u_compare::a#1 ← (word) mul16u_compare::a#2 + (word/signed word/dword/signed dword) $d2b + [204] (word) mul16u_compare::b#1 ← (word) mul16u_compare::b#2 + (word/signed word/dword/signed dword) $ffd [205] (word) muls16u::a#0 ← (word) mul16u_compare::a#1 [206] (word) muls16u::b#0 ← (word) mul16u_compare::b#1 [207] call muls16u @@ -3973,11 +3973,11 @@ mul16u_compare::@return: scope:[mul16u_compare] from mul16u_compare::@18 mul16u to:@return mul16u_compare::@5: scope:[mul16u_compare] from mul16u_compare::@4 [234] (byte) mul16u_compare::j#1 ← ++ (byte) mul16u_compare::j#10 - [235] if((byte) mul16u_compare::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mul16u_compare::@2 + [235] if((byte) mul16u_compare::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mul16u_compare::@2 to:mul16u_compare::@10 mul16u_compare::@10: scope:[mul16u_compare] from mul16u_compare::@5 [236] (byte) mul16u_compare::i#1 ← ++ (byte) mul16u_compare::i#12 - [237] if((byte) mul16u_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mul16u_compare::@1 + [237] if((byte) mul16u_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mul16u_compare::@1 to:mul16u_compare::@11 mul16u_compare::@11: scope:[mul16u_compare] from mul16u_compare::@10 [238] phi() @@ -4062,8 +4062,8 @@ mulf_init: scope:[mulf_init] from main::@1 to:mulf_init::@1 mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@2 [276] (byte) mulf_init::x_2#3 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::x_2#2 ) - [276] (byte*) mulf_init::sqr1_hi#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_hi#1 ) - [276] (byte*) mulf_init::sqr1_lo#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_lo#1 ) + [276] (byte*) mulf_init::sqr1_hi#2 ← phi( mulf_init/(const byte[$200]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_hi#1 ) + [276] (byte*) mulf_init::sqr1_lo#2 ← phi( mulf_init/(const byte[$200]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_lo#1 ) [276] (word) mulf_init::sqr#4 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(word) mulf_init::sqr#1 ) [276] (byte) mulf_init::c#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::c#1 ) [277] (byte) mulf_init::c#1 ← ++ (byte) mulf_init::c#2 @@ -4084,15 +4084,15 @@ mulf_init::@2: scope:[mulf_init] from mulf_init::@1 mulf_init::@5 [287] (byte*) mulf_init::sqr1_hi#1 ← ++ (byte*) mulf_init::sqr1_hi#2 [288] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [289] (byte*) mulf_init::sqr1_lo#1 ← ++ (byte*) mulf_init::sqr1_lo#2 - [290] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 + [290] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 to:mulf_init::@3 mulf_init::@3: scope:[mulf_init] from mulf_init::@2 mulf_init::@4 - [291] (byte) mulf_init::dir#2 ← phi( mulf_init::@4/(byte) mulf_init::dir#3 mulf_init::@2/(byte/word/signed word/dword/signed dword) 255 ) - [291] (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_hi#1 mulf_init::@2/(const byte[512]) mulf_sqr2_hi#0 ) - [291] (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_lo#1 mulf_init::@2/(const byte[512]) mulf_sqr2_lo#0 ) + [291] (byte) mulf_init::dir#2 ← phi( mulf_init::@4/(byte) mulf_init::dir#3 mulf_init::@2/(byte/word/signed word/dword/signed dword) $ff ) + [291] (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_hi#1 mulf_init::@2/(const byte[$200]) mulf_sqr2_hi#0 ) + [291] (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_lo#1 mulf_init::@2/(const byte[$200]) mulf_sqr2_lo#0 ) [291] (byte) mulf_init::x_255#2 ← phi( mulf_init::@4/(byte) mulf_init::x_255#1 mulf_init::@2/((byte))-(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [292] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) - [293] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) + [292] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) + [293] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [294] (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 [295] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [296] if((byte) mulf_init::x_255#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@12 @@ -4100,11 +4100,11 @@ mulf_init::@3: scope:[mulf_init] from mulf_init::@2 mulf_init::@4 mulf_init::@4: scope:[mulf_init] from mulf_init::@12 mulf_init::@3 [297] (byte) mulf_init::dir#3 ← phi( mulf_init::@12/(byte) mulf_init::dir#2 mulf_init::@3/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [298] (byte*) mulf_init::sqr2_lo#1 ← ++ (byte*) mulf_init::sqr2_lo#2 - [299] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 + [299] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 to:mulf_init::@8 mulf_init::@8: scope:[mulf_init] from mulf_init::@4 - [300] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) - [301] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) + [300] *((const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100) + [301] *((const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100) to:mulf_init::@return mulf_init::@return: scope:[mulf_init] from mulf_init::@8 [302] return @@ -4116,10 +4116,10 @@ print_cls: scope:[print_cls] from main [304] phi() to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 - [305] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) 1024 print_cls::@1/(byte*) print_cls::sc#1 ) + [305] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) $400 print_cls::@1/(byte*) print_cls::sc#1 ) [306] *((byte*) print_cls::sc#2) ← (byte) ' ' [307] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [308] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [308] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [309] return @@ -4308,10 +4308,10 @@ VARIABLE REGISTER WEIGHTS (byte) mulf_init::x_255 (byte) mulf_init::x_255#1 5.5 (byte) mulf_init::x_255#2 11.0 -(byte[512]) mulf_sqr1_hi -(byte[512]) mulf_sqr1_lo -(byte[512]) mulf_sqr2_hi -(byte[512]) mulf_sqr2_lo +(byte[$200]) mulf_sqr1_hi +(byte[$200]) mulf_sqr1_lo +(byte[$200]) mulf_sqr2_hi +(byte[$200]) mulf_sqr2_lo (signed dword()) muls16s((signed word) muls16s::a , (signed word) muls16s::b) (signed word) muls16s::a (signed word) muls16s::a#0 175.58333333333334 @@ -4783,12 +4783,12 @@ mul16s_compare: { //SEG29 [14] phi (byte) mul16s_compare::i#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mul16s_compare->mul16s_compare::@1#0] -- vbuz1=vbuc1 lda #0 sta i - //SEG30 [14] phi (signed word) mul16s_compare::b#6 = -(word/signed word/dword/signed dword) 32767 [phi:mul16s_compare->mul16s_compare::@1#1] -- vwsz1=vwsc1 + //SEG30 [14] phi (signed word) mul16s_compare::b#6 = -(word/signed word/dword/signed dword) $7fff [phi:mul16s_compare->mul16s_compare::@1#1] -- vwsz1=vwsc1 lda #<-$7fff sta b lda #>-$7fff sta b+1 - //SEG31 [14] phi (signed word) mul16s_compare::a#6 = -(word/signed word/dword/signed dword) 32767 [phi:mul16s_compare->mul16s_compare::@1#2] -- vwsz1=vwsc1 + //SEG31 [14] phi (signed word) mul16s_compare::a#6 = -(word/signed word/dword/signed dword) $7fff [phi:mul16s_compare->mul16s_compare::@1#2] -- vwsz1=vwsc1 lda #<-$7fff sta a lda #>-$7fff @@ -4830,7 +4830,7 @@ mul16s_compare: { jmp b2 //SEG51 mul16s_compare::@2 b2: - //SEG52 [17] (signed word) mul16s_compare::a#1 ← (signed word) mul16s_compare::a#2 + (word/signed word/dword/signed dword) 3371 -- vwsz1=vwsz1_plus_vwuc1 + //SEG52 [17] (signed word) mul16s_compare::a#1 ← (signed word) mul16s_compare::a#2 + (word/signed word/dword/signed dword) $d2b -- vwsz1=vwsz1_plus_vwuc1 clc lda a adc #<$d2b @@ -4838,7 +4838,7 @@ mul16s_compare: { lda a+1 adc #>$d2b sta a+1 - //SEG53 [18] (signed word) mul16s_compare::b#1 ← (signed word) mul16s_compare::b#2 + (word/signed word/dword/signed dword) 4093 -- vwsz1=vwsz1_plus_vwuc1 + //SEG53 [18] (signed word) mul16s_compare::b#1 ← (signed word) mul16s_compare::b#2 + (word/signed word/dword/signed dword) $ffd -- vwsz1=vwsz1_plus_vwuc1 clc lda b adc #<$ffd @@ -5060,7 +5060,7 @@ mul16s_compare: { b5: //SEG97 [48] (byte) mul16s_compare::j#1 ← ++ (byte) mul16s_compare::j#10 -- vbuz1=_inc_vbuz1 inc j - //SEG98 [49] if((byte) mul16s_compare::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mul16s_compare::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG98 [49] if((byte) mul16s_compare::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mul16s_compare::@2 -- vbuz1_neq_vbuc1_then_la1 lda j cmp #$10 bne b2_from_b5 @@ -5069,7 +5069,7 @@ mul16s_compare: { b10: //SEG100 [50] (byte) mul16s_compare::i#1 ← ++ (byte) mul16s_compare::i#12 -- vbuz1=_inc_vbuz1 inc i - //SEG101 [51] if((byte) mul16s_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mul16s_compare::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG101 [51] if((byte) mul16s_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mul16s_compare::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b10 @@ -5135,7 +5135,7 @@ print_ln: { jmp b1 //SEG127 print_ln::@1 b1: - //SEG128 [61] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#22 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG128 [61] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#22 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -5539,7 +5539,7 @@ print_byte: { jmp b1 //SEG262 print_byte::@1 b1: - //SEG263 [119] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG263 [119] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and b sta _2 @@ -6308,7 +6308,7 @@ mul16u_compare: { sta a lda #>0 sta a+1 - //SEG422 [200] phi (byte*) print_char_cursor#139 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:mul16u_compare->mul16u_compare::@1#3] -- pbuz1=pbuc1 + //SEG422 [200] phi (byte*) print_char_cursor#139 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:mul16u_compare->mul16u_compare::@1#3] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -6349,7 +6349,7 @@ mul16u_compare: { jmp b2 //SEG441 mul16u_compare::@2 b2: - //SEG442 [203] (word) mul16u_compare::a#1 ← (word) mul16u_compare::a#2 + (word/signed word/dword/signed dword) 3371 -- vwuz1=vwuz1_plus_vwuc1 + //SEG442 [203] (word) mul16u_compare::a#1 ← (word) mul16u_compare::a#2 + (word/signed word/dword/signed dword) $d2b -- vwuz1=vwuz1_plus_vwuc1 clc lda a adc #<$d2b @@ -6357,7 +6357,7 @@ mul16u_compare: { lda a+1 adc #>$d2b sta a+1 - //SEG443 [204] (word) mul16u_compare::b#1 ← (word) mul16u_compare::b#2 + (word/signed word/dword/signed dword) 4093 -- vwuz1=vwuz1_plus_vwuc1 + //SEG443 [204] (word) mul16u_compare::b#1 ← (word) mul16u_compare::b#2 + (word/signed word/dword/signed dword) $ffd -- vwuz1=vwuz1_plus_vwuc1 clc lda b adc #<$ffd @@ -6587,7 +6587,7 @@ mul16u_compare: { b5: //SEG493 [234] (byte) mul16u_compare::j#1 ← ++ (byte) mul16u_compare::j#10 -- vbuz1=_inc_vbuz1 inc j - //SEG494 [235] if((byte) mul16u_compare::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mul16u_compare::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG494 [235] if((byte) mul16u_compare::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mul16u_compare::@2 -- vbuz1_neq_vbuc1_then_la1 lda j cmp #$10 bne b2_from_b5 @@ -6596,7 +6596,7 @@ mul16u_compare: { b10: //SEG496 [236] (byte) mul16u_compare::i#1 ← ++ (byte) mul16u_compare::i#12 -- vbuz1=_inc_vbuz1 inc i - //SEG497 [237] if((byte) mul16u_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mul16u_compare::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG497 [237] if((byte) mul16u_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mul16u_compare::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b10 @@ -6609,7 +6609,7 @@ mul16u_compare: { //SEG501 [59] phi from mul16u_compare::@11 to print_ln [phi:mul16u_compare::@11->print_ln] print_ln_from_b11: //SEG502 [59] phi (byte*) print_char_cursor#129 = (byte*) print_char_cursor#128 [phi:mul16u_compare::@11->print_ln#0] -- register_copy - //SEG503 [59] phi (byte*) print_line_cursor#43 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:mul16u_compare::@11->print_ln#1] -- pbuz1=pbuc1 + //SEG503 [59] phi (byte*) print_line_cursor#43 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:mul16u_compare::@11->print_ln#1] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -6825,7 +6825,7 @@ mul16u_error: { //SEG582 [59] phi from mul16u_error::@10 to print_ln [phi:mul16u_error::@10->print_ln] print_ln_from_b10: //SEG583 [59] phi (byte*) print_char_cursor#129 = (byte*) print_char_cursor#20 [phi:mul16u_error::@10->print_ln#0] -- register_copy - //SEG584 [59] phi (byte*) print_line_cursor#43 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:mul16u_error::@10->print_ln#1] -- pbuz1=pbuc1 + //SEG584 [59] phi (byte*) print_line_cursor#43 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:mul16u_error::@10->print_ln#1] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -6945,12 +6945,12 @@ mulf_init: { //SEG608 [276] phi (byte) mulf_init::x_2#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#0] -- vbuz1=vbuc1 lda #0 sta x_2 - //SEG609 [276] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 + //SEG609 [276] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[$200]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 lda #mulf_sqr1_hi+1 sta sqr1_hi+1 - //SEG610 [276] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 + //SEG610 [276] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[$200]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 lda #mulf_sqr1_lo+1 @@ -7034,7 +7034,7 @@ mulf_init: { bne !+ inc sqr1_lo+1 !: - //SEG637 [290] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG637 [290] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 -- pbuz1_neq_pbuc1_then_la1 lda sqr1_lo+1 cmp #>mulf_sqr1_lo+$200 bne b1_from_b2 @@ -7043,15 +7043,15 @@ mulf_init: { bne b1_from_b2 //SEG638 [291] phi from mulf_init::@2 to mulf_init::@3 [phi:mulf_init::@2->mulf_init::@3] b3_from_b2: - //SEG639 [291] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) 255 [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 + //SEG639 [291] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) $ff [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 lda #$ff sta dir - //SEG640 [291] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[512]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 + //SEG640 [291] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[$200]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 lda #mulf_sqr2_hi sta sqr2_hi+1 - //SEG641 [291] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[512]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 + //SEG641 [291] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[$200]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 lda #mulf_sqr2_lo @@ -7069,12 +7069,12 @@ mulf_init: { jmp b3 //SEG648 mulf_init::@3 b3: - //SEG649 [292] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG649 [292] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy x_255 lda mulf_sqr1_lo,y ldy #0 sta (sqr2_lo),y - //SEG650 [293] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG650 [293] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy x_255 lda mulf_sqr1_hi,y ldy #0 @@ -7106,7 +7106,7 @@ mulf_init: { bne !+ inc sqr2_lo+1 !: - //SEG658 [299] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 -- pbuz1_neq_pbuc1_then_la1 + //SEG658 [299] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 -- pbuz1_neq_pbuc1_then_la1 lda sqr2_lo+1 cmp #>mulf_sqr2_lo+$1ff bne b3_from_b4 @@ -7116,11 +7116,11 @@ mulf_init: { jmp b8 //SEG659 mulf_init::@8 b8: - //SEG660 [300] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) -- _deref_pbuc1=_deref_pbuc2 + //SEG660 [300] *((const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100) -- _deref_pbuc1=_deref_pbuc2 // Set the very last value g(511) = f(256) lda mulf_sqr1_lo+$100 sta mulf_sqr2_lo+$1ff - //SEG661 [301] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) -- _deref_pbuc1=_deref_pbuc2 + //SEG661 [301] *((const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100) -- _deref_pbuc1=_deref_pbuc2 lda mulf_sqr1_hi+$100 sta mulf_sqr2_hi+$1ff jmp breturn @@ -7144,7 +7144,7 @@ print_cls: { .label sc = $58 //SEG669 [305] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] b1_from_print_cls: - //SEG670 [305] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG670 [305] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -7165,7 +7165,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG676 [308] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG676 [308] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1_from_b1 @@ -7201,10 +7201,10 @@ print_cls: { REGISTER UPLIFT POTENTIAL REGISTERS Statement [4] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [13] (byte*~) print_char_cursor#176 ← (byte*) print_line_cursor#1 [ print_char_cursor#176 print_line_cursor#1 ] ( main:2::mul16s_compare:11 [ print_char_cursor#176 print_line_cursor#1 ] ) always clobbers reg byte a -Statement [17] (signed word) mul16s_compare::a#1 ← (signed word) mul16s_compare::a#2 + (word/signed word/dword/signed dword) 3371 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#2 mul16s_compare::j#10 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#2 mul16s_compare::j#10 ] ) always clobbers reg byte a +Statement [17] (signed word) mul16s_compare::a#1 ← (signed word) mul16s_compare::a#2 + (word/signed word/dword/signed dword) $d2b [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#2 mul16s_compare::j#10 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#2 mul16s_compare::j#10 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ mul16s_compare::i#12 mul16s_compare::i#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:7 [ mul16s_compare::j#10 mul16s_compare::j#1 ] -Statement [18] (signed word) mul16s_compare::b#1 ← (signed word) mul16s_compare::b#2 + (word/signed word/dword/signed dword) 4093 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#10 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#10 ] ) always clobbers reg byte a +Statement [18] (signed word) mul16s_compare::b#1 ← (signed word) mul16s_compare::b#2 + (word/signed word/dword/signed dword) $ffd [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#10 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#10 ] ) always clobbers reg byte a Statement [19] (signed word) muls16s::a#0 ← (signed word) mul16s_compare::a#1 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#10 muls16s::a#0 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#10 muls16s::a#0 ] ) always clobbers reg byte a Statement [20] (signed word) muls16s::b#0 ← (signed word) mul16s_compare::b#1 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#10 muls16s::a#0 muls16s::b#0 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#10 muls16s::a#0 muls16s::b#0 ] ) always clobbers reg byte a Statement [22] (signed dword) muls16s::return#2 ← (signed dword) muls16s::return#0 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#10 muls16s::return#2 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#10 muls16s::return#2 ] ) always clobbers reg byte a @@ -7227,7 +7227,7 @@ Statement [43] (signed dword) mul16s_error::ms#0 ← (signed dword) mul16s_compa Statement [44] (signed dword) mul16s_error::mn#0 ← (signed dword) mul16s_compare::mn#0 [ print_line_cursor#1 print_char_cursor#128 mul16s_compare::mf#0 mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 print_char_cursor#128 mul16s_compare::mf#0 mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 ] ) always clobbers reg byte a Statement [45] (signed dword) mul16s_error::mf#0 ← (signed dword) mul16s_compare::mf#0 [ print_line_cursor#1 print_char_cursor#128 mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 print_char_cursor#128 mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 ] ) always clobbers reg byte a Statement [54] (byte*~) print_char_cursor#185 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#185 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 print_char_cursor#185 ] ) always clobbers reg byte a -Statement [61] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#22 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#129 ] ( main:2::mul16s_compare:11::print_ln:53 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16s_compare:11::print_ln:57 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16s_compare:11::mul16s_error:46::print_ln:92 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16u_compare:9::print_ln:239 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16u_compare:9::print_ln:243 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16u_compare:9::mul16u_error:232::print_ln:266 [ print_line_cursor#1 print_char_cursor#129 ] ) always clobbers reg byte a +Statement [61] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#22 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#1 print_char_cursor#129 ] ( main:2::mul16s_compare:11::print_ln:53 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16s_compare:11::print_ln:57 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16s_compare:11::mul16s_error:46::print_ln:92 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16u_compare:9::print_ln:239 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16u_compare:9::print_ln:243 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16u_compare:9::mul16u_error:232::print_ln:266 [ print_line_cursor#1 print_char_cursor#129 ] ) always clobbers reg byte a Statement [62] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#129) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#129 ] ( main:2::mul16s_compare:11::print_ln:53 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16s_compare:11::print_ln:57 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16s_compare:11::mul16s_error:46::print_ln:92 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16u_compare:9::print_ln:239 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16u_compare:9::print_ln:243 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16u_compare:9::mul16u_error:232::print_ln:266 [ print_line_cursor#1 print_char_cursor#129 ] ) always clobbers reg byte a Statement [66] if(*((byte*) print_str::str#15)!=(byte) '@') goto print_str::@2 [ print_char_cursor#128 print_str::str#15 ] ( main:2::mul16s_compare:11::print_str:15 [ print_line_cursor#1 mul16s_compare::a#6 mul16s_compare::b#6 mul16s_compare::i#12 print_char_cursor#128 print_str::str#15 ] main:2::mul16s_compare:11::print_str:55 [ print_line_cursor#1 print_char_cursor#128 print_str::str#15 ] main:2::mul16s_compare:11::mul16s_error:46::print_str:72 [ print_line_cursor#1 mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#128 print_str::str#15 ] main:2::mul16s_compare:11::mul16s_error:46::print_str:76 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#128 print_str::str#15 ] main:2::mul16s_compare:11::mul16s_error:46::print_str:80 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#128 print_str::str#15 ] main:2::mul16s_compare:11::mul16s_error:46::print_str:84 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#128 print_str::str#15 ] main:2::mul16s_compare:11::mul16s_error:46::print_str:88 [ print_line_cursor#1 mul16s_error::mf#0 print_char_cursor#128 print_str::str#15 ] main:2::mul16u_compare:9::print_str:201 [ mul16u_compare::a#6 mul16u_compare::b#6 mul16u_compare::i#12 print_char_cursor#128 print_str::str#15 ] main:2::mul16u_compare:9::print_str:241 [ print_line_cursor#1 print_char_cursor#128 print_str::str#15 ] main:2::mul16u_compare:9::mul16u_error:232::print_str:246 [ mul16u_error::a#0 mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#128 print_str::str#15 ] main:2::mul16u_compare:9::mul16u_error:232::print_str:250 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#128 print_str::str#15 ] main:2::mul16u_compare:9::mul16u_error:232::print_str:254 [ mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#128 print_str::str#15 ] main:2::mul16u_compare:9::mul16u_error:232::print_str:258 [ mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#128 print_str::str#15 ] main:2::mul16u_compare:9::mul16u_error:232::print_str:262 [ mul16u_error::mf#0 print_char_cursor#128 print_str::str#15 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ mul16s_compare::i#12 mul16s_compare::i#1 ] @@ -7248,7 +7248,7 @@ Statement [110] (byte) print_byte::b#0 ← > (word) print_word::w#5 [ print_word Statement [112] (byte) print_byte::b#1 ← < (word) print_word::w#5 [ print_char_cursor#20 print_byte::b#1 ] ( main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:105 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_dword::dw#4 print_char_cursor#20 print_byte::b#1 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:105 [ print_line_cursor#1 mul16s_error::mf#0 print_dword::dw#4 print_char_cursor#20 print_byte::b#1 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:105 [ print_line_cursor#1 print_dword::dw#4 print_char_cursor#20 print_byte::b#1 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:105 [ mul16u_error::mn#0 mul16u_error::mf#0 print_dword::dw#4 print_char_cursor#20 print_byte::b#1 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:105 [ mul16u_error::mf#0 print_dword::dw#4 print_char_cursor#20 print_byte::b#1 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:105 [ print_dword::dw#4 print_char_cursor#20 print_byte::b#1 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:107 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#20 print_byte::b#1 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:107 [ print_line_cursor#1 mul16s_error::mf#0 print_char_cursor#20 print_byte::b#1 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:107 [ print_line_cursor#1 print_char_cursor#20 print_byte::b#1 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:107 [ mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#20 print_byte::b#1 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:107 [ mul16u_error::mf#0 print_char_cursor#20 print_byte::b#1 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:107 [ print_char_cursor#20 print_byte::b#1 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:74::print_word:134 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#20 print_byte::b#1 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78::print_word:134 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#20 print_byte::b#1 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:248 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#20 print_byte::b#1 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:252 [ mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#20 print_byte::b#1 ] ) always clobbers reg byte a Statement [116] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#2 print_char_cursor#136 print_byte::$0 ] ( main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:105::print_byte:111 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_dword::dw#4 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:105::print_byte:111 [ print_line_cursor#1 mul16s_error::mf#0 print_dword::dw#4 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:105::print_byte:111 [ print_line_cursor#1 print_dword::dw#4 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:105::print_byte:111 [ mul16u_error::mn#0 mul16u_error::mf#0 print_dword::dw#4 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:105::print_byte:111 [ mul16u_error::mf#0 print_dword::dw#4 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:105::print_byte:111 [ print_dword::dw#4 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:107::print_byte:111 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:107::print_byte:111 [ print_line_cursor#1 mul16s_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:107::print_byte:111 [ print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:107::print_byte:111 [ mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:107::print_byte:111 [ mul16u_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:107::print_byte:111 [ print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:74::print_word:134::print_byte:111 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78::print_word:134::print_byte:111 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:248::print_byte:111 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:252::print_byte:111 [ mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:105::print_byte:113 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_dword::dw#4 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:105::print_byte:113 [ print_line_cursor#1 mul16s_error::mf#0 print_dword::dw#4 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:105::print_byte:113 [ print_line_cursor#1 print_dword::dw#4 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:105::print_byte:113 [ mul16u_error::mn#0 mul16u_error::mf#0 print_dword::dw#4 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:105::print_byte:113 [ mul16u_error::mf#0 print_dword::dw#4 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:105::print_byte:113 [ print_dword::dw#4 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:107::print_byte:113 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:107::print_byte:113 [ print_line_cursor#1 mul16s_error::mf#0 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:107::print_byte:113 [ print_line_cursor#1 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:107::print_byte:113 [ mul16u_error::mn#0 mul16u_error::mf#0 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:107::print_byte:113 [ mul16u_error::mf#0 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:107::print_byte:113 [ print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:74::print_word:134::print_byte:113 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78::print_word:134::print_byte:113 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:248::print_byte:113 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:252::print_byte:113 [ mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:23 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] -Statement [119] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#20 print_byte::$2 ] ( main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:105::print_byte:111 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:105::print_byte:111 [ print_line_cursor#1 mul16s_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:105::print_byte:111 [ print_line_cursor#1 print_dword::dw#4 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:105::print_byte:111 [ mul16u_error::mn#0 mul16u_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:105::print_byte:111 [ mul16u_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:105::print_byte:111 [ print_dword::dw#4 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:107::print_byte:111 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:107::print_byte:111 [ print_line_cursor#1 mul16s_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:107::print_byte:111 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:107::print_byte:111 [ mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:107::print_byte:111 [ mul16u_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:107::print_byte:111 [ print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:74::print_word:134::print_byte:111 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78::print_word:134::print_byte:111 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:248::print_byte:111 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:252::print_byte:111 [ mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:105::print_byte:113 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_dword::dw#4 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:105::print_byte:113 [ print_line_cursor#1 mul16s_error::mf#0 print_dword::dw#4 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:105::print_byte:113 [ print_line_cursor#1 print_dword::dw#4 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:105::print_byte:113 [ mul16u_error::mn#0 mul16u_error::mf#0 print_dword::dw#4 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:105::print_byte:113 [ mul16u_error::mf#0 print_dword::dw#4 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:105::print_byte:113 [ print_dword::dw#4 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:107::print_byte:113 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:107::print_byte:113 [ print_line_cursor#1 mul16s_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:107::print_byte:113 [ print_line_cursor#1 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:107::print_byte:113 [ mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:107::print_byte:113 [ mul16u_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:107::print_byte:113 [ print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:74::print_word:134::print_byte:113 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78::print_word:134::print_byte:113 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:248::print_byte:113 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:252::print_byte:113 [ mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#20 print_byte::$2 ] ) always clobbers reg byte a +Statement [119] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#20 print_byte::$2 ] ( main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:105::print_byte:111 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:105::print_byte:111 [ print_line_cursor#1 mul16s_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:105::print_byte:111 [ print_line_cursor#1 print_dword::dw#4 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:105::print_byte:111 [ mul16u_error::mn#0 mul16u_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:105::print_byte:111 [ mul16u_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:105::print_byte:111 [ print_dword::dw#4 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:107::print_byte:111 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:107::print_byte:111 [ print_line_cursor#1 mul16s_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:107::print_byte:111 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:107::print_byte:111 [ mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:107::print_byte:111 [ mul16u_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:107::print_byte:111 [ print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:74::print_word:134::print_byte:111 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78::print_word:134::print_byte:111 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:248::print_byte:111 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:252::print_byte:111 [ mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:105::print_byte:113 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_dword::dw#4 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:105::print_byte:113 [ print_line_cursor#1 mul16s_error::mf#0 print_dword::dw#4 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:105::print_byte:113 [ print_line_cursor#1 print_dword::dw#4 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:105::print_byte:113 [ mul16u_error::mn#0 mul16u_error::mf#0 print_dword::dw#4 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:105::print_byte:113 [ mul16u_error::mf#0 print_dword::dw#4 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:105::print_byte:113 [ print_dword::dw#4 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:107::print_byte:113 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:107::print_byte:113 [ print_line_cursor#1 mul16s_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:107::print_byte:113 [ print_line_cursor#1 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:107::print_byte:113 [ mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:107::print_byte:113 [ mul16u_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:107::print_byte:113 [ print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:74::print_word:134::print_byte:113 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78::print_word:134::print_byte:113 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:248::print_byte:113 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:252::print_byte:113 [ mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#20 print_byte::$2 ] ) always clobbers reg byte a Statement [124] *((byte*) print_char_cursor#84) ← (byte) print_char::ch#4 [ print_char_cursor#84 ] ( main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_char:97 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_sdword::dw#4 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_char:97 [ print_line_cursor#1 mul16s_error::mf#0 print_sdword::dw#4 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_char:97 [ print_line_cursor#1 print_sdword::dw#4 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:105::print_byte:111::print_char:118 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_dword::dw#4 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:105::print_byte:111::print_char:118 [ print_line_cursor#1 mul16s_error::mf#0 print_dword::dw#4 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:105::print_byte:111::print_char:118 [ print_line_cursor#1 print_dword::dw#4 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:105::print_byte:111::print_char:118 [ mul16u_error::mn#0 mul16u_error::mf#0 print_dword::dw#4 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:105::print_byte:111::print_char:118 [ mul16u_error::mf#0 print_dword::dw#4 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:105::print_byte:111::print_char:118 [ print_dword::dw#4 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:107::print_byte:111::print_char:118 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:107::print_byte:111::print_char:118 [ print_line_cursor#1 mul16s_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:107::print_byte:111::print_char:118 [ print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:107::print_byte:111::print_char:118 [ mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:107::print_byte:111::print_char:118 [ mul16u_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:107::print_byte:111::print_char:118 [ print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:74::print_word:134::print_byte:111::print_char:118 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78::print_word:134::print_byte:111::print_char:118 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:248::print_byte:111::print_char:118 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:252::print_byte:111::print_char:118 [ mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:105::print_byte:113::print_char:118 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_dword::dw#4 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:105::print_byte:113::print_char:118 [ print_line_cursor#1 mul16s_error::mf#0 print_dword::dw#4 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:105::print_byte:113::print_char:118 [ print_line_cursor#1 print_dword::dw#4 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:105::print_byte:113::print_char:118 [ mul16u_error::mn#0 mul16u_error::mf#0 print_dword::dw#4 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:105::print_byte:113::print_char:118 [ mul16u_error::mf#0 print_dword::dw#4 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:105::print_byte:113::print_char:118 [ print_dword::dw#4 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:107::print_byte:113::print_char:118 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:107::print_byte:113::print_char:118 [ print_line_cursor#1 mul16s_error::mf#0 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:107::print_byte:113::print_char:118 [ print_line_cursor#1 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:107::print_byte:113::print_char:118 [ mul16u_error::mn#0 mul16u_error::mf#0 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:107::print_byte:113::print_char:118 [ mul16u_error::mf#0 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:107::print_byte:113::print_char:118 [ print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:74::print_word:134::print_byte:113::print_char:118 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78::print_word:134::print_byte:113::print_char:118 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:248::print_byte:113::print_char:118 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:252::print_byte:113::print_char:118 [ mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:105::print_byte:111::print_char:121 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:105::print_byte:111::print_char:121 [ print_line_cursor#1 mul16s_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:105::print_byte:111::print_char:121 [ print_line_cursor#1 print_dword::dw#4 print_word::w#5 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:105::print_byte:111::print_char:121 [ mul16u_error::mn#0 mul16u_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:105::print_byte:111::print_char:121 [ mul16u_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:105::print_byte:111::print_char:121 [ print_dword::dw#4 print_word::w#5 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:107::print_byte:111::print_char:121 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:107::print_byte:111::print_char:121 [ print_line_cursor#1 mul16s_error::mf#0 print_word::w#5 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:107::print_byte:111::print_char:121 [ print_line_cursor#1 print_word::w#5 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:107::print_byte:111::print_char:121 [ mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:107::print_byte:111::print_char:121 [ mul16u_error::mf#0 print_word::w#5 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:107::print_byte:111::print_char:121 [ print_word::w#5 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:74::print_word:134::print_byte:111::print_char:121 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78::print_word:134::print_byte:111::print_char:121 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:248::print_byte:111::print_char:121 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:252::print_byte:111::print_char:121 [ mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:105::print_byte:113::print_char:121 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_dword::dw#4 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:105::print_byte:113::print_char:121 [ print_line_cursor#1 mul16s_error::mf#0 print_dword::dw#4 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:105::print_byte:113::print_char:121 [ print_line_cursor#1 print_dword::dw#4 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:105::print_byte:113::print_char:121 [ mul16u_error::mn#0 mul16u_error::mf#0 print_dword::dw#4 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:105::print_byte:113::print_char:121 [ mul16u_error::mf#0 print_dword::dw#4 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:105::print_byte:113::print_char:121 [ print_dword::dw#4 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:107::print_byte:113::print_char:121 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:107::print_byte:113::print_char:121 [ print_line_cursor#1 mul16s_error::mf#0 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:107::print_byte:113::print_char:121 [ print_line_cursor#1 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:107::print_byte:113::print_char:121 [ mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:107::print_byte:113::print_char:121 [ mul16u_error::mf#0 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:107::print_byte:113::print_char:121 [ print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:74::print_word:134::print_byte:113::print_char:121 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78::print_word:134::print_byte:113::print_char:121 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:248::print_byte:113::print_char:121 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:252::print_byte:113::print_char:121 [ mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:74::print_char:130 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_sword::w#3 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78::print_char:130 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_sword::w#3 print_char_cursor#84 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:23 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] Statement [128] if((signed word) print_sword::w#3>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto print_sword::@1 [ print_char_cursor#128 print_sword::w#3 ] ( main:2::mul16s_compare:11::mul16s_error:46::print_sword:74 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#128 print_sword::w#3 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#128 print_sword::w#3 ] ) always clobbers reg byte a @@ -7300,8 +7300,8 @@ Statement [192] if((signed word) muls16s::j#1!=(signed word) muls16s::a#0) goto Statement [196] (signed dword) muls16s::m#2 ← (signed dword) muls16s::m#5 - (signed word) muls16s::b#0 [ muls16s::a#0 muls16s::b#0 muls16s::m#2 muls16s::i#2 ] ( main:2::mul16s_compare:11::muls16s:21 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#10 muls16s::a#0 muls16s::b#0 muls16s::m#2 muls16s::i#2 ] ) always clobbers reg byte a Statement [197] (signed word) muls16s::i#1 ← -- (signed word) muls16s::i#2 [ muls16s::a#0 muls16s::b#0 muls16s::m#2 muls16s::i#1 ] ( main:2::mul16s_compare:11::muls16s:21 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#10 muls16s::a#0 muls16s::b#0 muls16s::m#2 muls16s::i#1 ] ) always clobbers reg byte a Statement [198] if((signed word) muls16s::i#1!=(signed word) muls16s::a#0) goto muls16s::@5 [ muls16s::a#0 muls16s::b#0 muls16s::m#2 muls16s::i#1 ] ( main:2::mul16s_compare:11::muls16s:21 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#10 muls16s::a#0 muls16s::b#0 muls16s::m#2 muls16s::i#1 ] ) always clobbers reg byte a -Statement [203] (word) mul16u_compare::a#1 ← (word) mul16u_compare::a#2 + (word/signed word/dword/signed dword) 3371 [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#2 mul16u_compare::j#10 ] ( main:2::mul16u_compare:9 [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#2 mul16u_compare::j#10 ] ) always clobbers reg byte a -Statement [204] (word) mul16u_compare::b#1 ← (word) mul16u_compare::b#2 + (word/signed word/dword/signed dword) 4093 [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::j#10 ] ( main:2::mul16u_compare:9 [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::j#10 ] ) always clobbers reg byte a +Statement [203] (word) mul16u_compare::a#1 ← (word) mul16u_compare::a#2 + (word/signed word/dword/signed dword) $d2b [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#2 mul16u_compare::j#10 ] ( main:2::mul16u_compare:9 [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#2 mul16u_compare::j#10 ] ) always clobbers reg byte a +Statement [204] (word) mul16u_compare::b#1 ← (word) mul16u_compare::b#2 + (word/signed word/dword/signed dword) $ffd [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::j#10 ] ( main:2::mul16u_compare:9 [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::j#10 ] ) always clobbers reg byte a Statement [205] (word) muls16u::a#0 ← (word) mul16u_compare::a#1 [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::j#10 muls16u::a#0 ] ( main:2::mul16u_compare:9 [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::j#10 muls16u::a#0 ] ) always clobbers reg byte a Statement [206] (word) muls16u::b#0 ← (word) mul16u_compare::b#1 [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::j#10 muls16u::a#0 muls16u::b#0 ] ( main:2::mul16u_compare:9 [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::j#10 muls16u::a#0 muls16u::b#0 ] ) always clobbers reg byte a Statement [208] (dword) muls16u::return#2 ← (dword) muls16u::return#0 [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::j#10 muls16u::return#2 ] ( main:2::mul16u_compare:9 [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::j#10 muls16u::return#2 ] ) always clobbers reg byte a @@ -7323,7 +7323,7 @@ Statement [228] (word) mul16u_error::b#0 ← (word) mul16u_compare::b#1 [ print_ Statement [229] (dword) mul16u_error::ms#0 ← (dword) mul16u_compare::ms#0 [ print_char_cursor#128 mul16u_compare::mn#0 mul16u_compare::mf#0 mul16u_error::a#0 mul16u_error::b#0 mul16u_error::ms#0 ] ( main:2::mul16u_compare:9 [ print_char_cursor#128 mul16u_compare::mn#0 mul16u_compare::mf#0 mul16u_error::a#0 mul16u_error::b#0 mul16u_error::ms#0 ] ) always clobbers reg byte a Statement [230] (dword) mul16u_error::mn#0 ← (dword) mul16u_compare::mn#0 [ print_char_cursor#128 mul16u_compare::mf#0 mul16u_error::a#0 mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 ] ( main:2::mul16u_compare:9 [ print_char_cursor#128 mul16u_compare::mf#0 mul16u_error::a#0 mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 ] ) always clobbers reg byte a Statement [231] (dword) mul16u_error::mf#0 ← (dword) mul16u_compare::mf#0 [ print_char_cursor#128 mul16u_error::a#0 mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 ] ( main:2::mul16u_compare:9 [ print_char_cursor#128 mul16u_error::a#0 mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 ] ) always clobbers reg byte a -Statement [237] if((byte) mul16u_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mul16u_compare::@1 [ print_char_cursor#128 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::i#1 ] ( main:2::mul16u_compare:9 [ print_char_cursor#128 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::i#1 ] ) always clobbers reg byte a +Statement [237] if((byte) mul16u_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mul16u_compare::@1 [ print_char_cursor#128 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::i#1 ] ( main:2::mul16u_compare:9 [ print_char_cursor#128 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::i#1 ] ) always clobbers reg byte a Statement [240] (byte*~) print_char_cursor#192 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#192 ] ( main:2::mul16u_compare:9 [ print_line_cursor#1 print_char_cursor#192 ] ) always clobbers reg byte a Statement [247] (word) print_word::w#3 ← (word) mul16u_error::a#0 [ print_char_cursor#128 print_word::w#3 mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 ] ( main:2::mul16u_compare:9::mul16u_error:232 [ print_char_cursor#128 print_word::w#3 mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 ] ) always clobbers reg byte a Statement [251] (word) print_word::w#4 ← (word) mul16u_error::b#0 [ print_char_cursor#128 print_word::w#4 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 ] ( main:2::mul16u_compare:9::mul16u_error:232 [ print_char_cursor#128 print_word::w#4 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 ] ) always clobbers reg byte a @@ -7343,23 +7343,23 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:79 [ m Statement [285] (byte~) mulf_init::$6 ← > (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ( main:2::mulf_init:7 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ) always clobbers reg byte a Statement [286] *((byte*) mulf_init::sqr1_hi#2) ← (byte~) mulf_init::$6 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:2::mulf_init:7 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) always clobbers reg byte y Statement [288] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:2::mulf_init:7 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a -Statement [290] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:2::mulf_init:7 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a -Statement [292] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:2::mulf_init:7 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y +Statement [290] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:2::mulf_init:7 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a +Statement [292] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:2::mulf_init:7 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp ZP_BYTE:82 [ mulf_init::x_255#2 mulf_init::x_255#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:82 [ mulf_init::x_255#2 mulf_init::x_255#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:87 [ mulf_init::dir#2 mulf_init::dir#3 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:87 [ mulf_init::dir#2 mulf_init::dir#3 ] -Statement [293] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:2::mulf_init:7 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y +Statement [293] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:2::mulf_init:7 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y Statement [295] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:2::mulf_init:7 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) always clobbers reg byte a -Statement [299] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:2::mulf_init:7 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) always clobbers reg byte a -Statement [300] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) [ ] ( main:2::mulf_init:7 [ ] ) always clobbers reg byte a -Statement [301] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) [ ] ( main:2::mulf_init:7 [ ] ) always clobbers reg byte a +Statement [299] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:2::mulf_init:7 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) always clobbers reg byte a +Statement [300] *((const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100) [ ] ( main:2::mulf_init:7 [ ] ) always clobbers reg byte a +Statement [301] *((const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100) [ ] ( main:2::mulf_init:7 [ ] ) always clobbers reg byte a Statement [306] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [308] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [308] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a Statement [4] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [13] (byte*~) print_char_cursor#176 ← (byte*) print_line_cursor#1 [ print_char_cursor#176 print_line_cursor#1 ] ( main:2::mul16s_compare:11 [ print_char_cursor#176 print_line_cursor#1 ] ) always clobbers reg byte a -Statement [17] (signed word) mul16s_compare::a#1 ← (signed word) mul16s_compare::a#2 + (word/signed word/dword/signed dword) 3371 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#2 mul16s_compare::j#10 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#2 mul16s_compare::j#10 ] ) always clobbers reg byte a -Statement [18] (signed word) mul16s_compare::b#1 ← (signed word) mul16s_compare::b#2 + (word/signed word/dword/signed dword) 4093 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#10 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#10 ] ) always clobbers reg byte a +Statement [17] (signed word) mul16s_compare::a#1 ← (signed word) mul16s_compare::a#2 + (word/signed word/dword/signed dword) $d2b [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#2 mul16s_compare::j#10 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#2 mul16s_compare::j#10 ] ) always clobbers reg byte a +Statement [18] (signed word) mul16s_compare::b#1 ← (signed word) mul16s_compare::b#2 + (word/signed word/dword/signed dword) $ffd [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#10 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#10 ] ) always clobbers reg byte a Statement [19] (signed word) muls16s::a#0 ← (signed word) mul16s_compare::a#1 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#10 muls16s::a#0 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#10 muls16s::a#0 ] ) always clobbers reg byte a Statement [20] (signed word) muls16s::b#0 ← (signed word) mul16s_compare::b#1 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#10 muls16s::a#0 muls16s::b#0 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#10 muls16s::a#0 muls16s::b#0 ] ) always clobbers reg byte a Statement [22] (signed dword) muls16s::return#2 ← (signed dword) muls16s::return#0 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#10 muls16s::return#2 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#10 muls16s::return#2 ] ) always clobbers reg byte a @@ -7380,9 +7380,9 @@ Statement [42] (signed word) mul16s_error::b#0 ← (signed word) mul16s_compare: Statement [43] (signed dword) mul16s_error::ms#0 ← (signed dword) mul16s_compare::ms#0 [ print_line_cursor#1 print_char_cursor#128 mul16s_compare::mn#0 mul16s_compare::mf#0 mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 print_char_cursor#128 mul16s_compare::mn#0 mul16s_compare::mf#0 mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 ] ) always clobbers reg byte a Statement [44] (signed dword) mul16s_error::mn#0 ← (signed dword) mul16s_compare::mn#0 [ print_line_cursor#1 print_char_cursor#128 mul16s_compare::mf#0 mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 print_char_cursor#128 mul16s_compare::mf#0 mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 ] ) always clobbers reg byte a Statement [45] (signed dword) mul16s_error::mf#0 ← (signed dword) mul16s_compare::mf#0 [ print_line_cursor#1 print_char_cursor#128 mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 print_char_cursor#128 mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 ] ) always clobbers reg byte a -Statement [51] if((byte) mul16s_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mul16s_compare::@1 [ print_line_cursor#1 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::i#1 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::i#1 ] ) always clobbers reg byte a +Statement [51] if((byte) mul16s_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mul16s_compare::@1 [ print_line_cursor#1 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::i#1 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::i#1 ] ) always clobbers reg byte a Statement [54] (byte*~) print_char_cursor#185 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#185 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 print_char_cursor#185 ] ) always clobbers reg byte a -Statement [61] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#22 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#129 ] ( main:2::mul16s_compare:11::print_ln:53 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16s_compare:11::print_ln:57 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16s_compare:11::mul16s_error:46::print_ln:92 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16u_compare:9::print_ln:239 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16u_compare:9::print_ln:243 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16u_compare:9::mul16u_error:232::print_ln:266 [ print_line_cursor#1 print_char_cursor#129 ] ) always clobbers reg byte a +Statement [61] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#22 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#1 print_char_cursor#129 ] ( main:2::mul16s_compare:11::print_ln:53 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16s_compare:11::print_ln:57 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16s_compare:11::mul16s_error:46::print_ln:92 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16u_compare:9::print_ln:239 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16u_compare:9::print_ln:243 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16u_compare:9::mul16u_error:232::print_ln:266 [ print_line_cursor#1 print_char_cursor#129 ] ) always clobbers reg byte a Statement [62] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#129) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#129 ] ( main:2::mul16s_compare:11::print_ln:53 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16s_compare:11::print_ln:57 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16s_compare:11::mul16s_error:46::print_ln:92 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16u_compare:9::print_ln:239 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16u_compare:9::print_ln:243 [ print_line_cursor#1 print_char_cursor#129 ] main:2::mul16u_compare:9::mul16u_error:232::print_ln:266 [ print_line_cursor#1 print_char_cursor#129 ] ) always clobbers reg byte a Statement [66] if(*((byte*) print_str::str#15)!=(byte) '@') goto print_str::@2 [ print_char_cursor#128 print_str::str#15 ] ( main:2::mul16s_compare:11::print_str:15 [ print_line_cursor#1 mul16s_compare::a#6 mul16s_compare::b#6 mul16s_compare::i#12 print_char_cursor#128 print_str::str#15 ] main:2::mul16s_compare:11::print_str:55 [ print_line_cursor#1 print_char_cursor#128 print_str::str#15 ] main:2::mul16s_compare:11::mul16s_error:46::print_str:72 [ print_line_cursor#1 mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#128 print_str::str#15 ] main:2::mul16s_compare:11::mul16s_error:46::print_str:76 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#128 print_str::str#15 ] main:2::mul16s_compare:11::mul16s_error:46::print_str:80 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#128 print_str::str#15 ] main:2::mul16s_compare:11::mul16s_error:46::print_str:84 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#128 print_str::str#15 ] main:2::mul16s_compare:11::mul16s_error:46::print_str:88 [ print_line_cursor#1 mul16s_error::mf#0 print_char_cursor#128 print_str::str#15 ] main:2::mul16u_compare:9::print_str:201 [ mul16u_compare::a#6 mul16u_compare::b#6 mul16u_compare::i#12 print_char_cursor#128 print_str::str#15 ] main:2::mul16u_compare:9::print_str:241 [ print_line_cursor#1 print_char_cursor#128 print_str::str#15 ] main:2::mul16u_compare:9::mul16u_error:232::print_str:246 [ mul16u_error::a#0 mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#128 print_str::str#15 ] main:2::mul16u_compare:9::mul16u_error:232::print_str:250 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#128 print_str::str#15 ] main:2::mul16u_compare:9::mul16u_error:232::print_str:254 [ mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#128 print_str::str#15 ] main:2::mul16u_compare:9::mul16u_error:232::print_str:258 [ mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#128 print_str::str#15 ] main:2::mul16u_compare:9::mul16u_error:232::print_str:262 [ mul16u_error::mf#0 print_char_cursor#128 print_str::str#15 ] ) always clobbers reg byte a reg byte y Statement [68] *((byte*) print_char_cursor#128) ← *((byte*) print_str::str#15) [ print_char_cursor#128 print_str::str#15 ] ( main:2::mul16s_compare:11::print_str:15 [ print_line_cursor#1 mul16s_compare::a#6 mul16s_compare::b#6 mul16s_compare::i#12 print_char_cursor#128 print_str::str#15 ] main:2::mul16s_compare:11::print_str:55 [ print_line_cursor#1 print_char_cursor#128 print_str::str#15 ] main:2::mul16s_compare:11::mul16s_error:46::print_str:72 [ print_line_cursor#1 mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#128 print_str::str#15 ] main:2::mul16s_compare:11::mul16s_error:46::print_str:76 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#128 print_str::str#15 ] main:2::mul16s_compare:11::mul16s_error:46::print_str:80 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#128 print_str::str#15 ] main:2::mul16s_compare:11::mul16s_error:46::print_str:84 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#128 print_str::str#15 ] main:2::mul16s_compare:11::mul16s_error:46::print_str:88 [ print_line_cursor#1 mul16s_error::mf#0 print_char_cursor#128 print_str::str#15 ] main:2::mul16u_compare:9::print_str:201 [ mul16u_compare::a#6 mul16u_compare::b#6 mul16u_compare::i#12 print_char_cursor#128 print_str::str#15 ] main:2::mul16u_compare:9::print_str:241 [ print_line_cursor#1 print_char_cursor#128 print_str::str#15 ] main:2::mul16u_compare:9::mul16u_error:232::print_str:246 [ mul16u_error::a#0 mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#128 print_str::str#15 ] main:2::mul16u_compare:9::mul16u_error:232::print_str:250 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#128 print_str::str#15 ] main:2::mul16u_compare:9::mul16u_error:232::print_str:254 [ mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#128 print_str::str#15 ] main:2::mul16u_compare:9::mul16u_error:232::print_str:258 [ mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#128 print_str::str#15 ] main:2::mul16u_compare:9::mul16u_error:232::print_str:262 [ mul16u_error::mf#0 print_char_cursor#128 print_str::str#15 ] ) always clobbers reg byte a reg byte y @@ -7399,7 +7399,7 @@ Statement [106] (word) print_word::w#2 ← < (dword) print_dword::dw#4 [ print_c Statement [110] (byte) print_byte::b#0 ← > (word) print_word::w#5 [ print_word::w#5 print_char_cursor#132 print_byte::b#0 ] ( main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:105 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#132 print_byte::b#0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:105 [ print_line_cursor#1 mul16s_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#132 print_byte::b#0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:105 [ print_line_cursor#1 print_dword::dw#4 print_word::w#5 print_char_cursor#132 print_byte::b#0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:105 [ mul16u_error::mn#0 mul16u_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#132 print_byte::b#0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:105 [ mul16u_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#132 print_byte::b#0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:105 [ print_dword::dw#4 print_word::w#5 print_char_cursor#132 print_byte::b#0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:107 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_char_cursor#132 print_byte::b#0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:107 [ print_line_cursor#1 mul16s_error::mf#0 print_word::w#5 print_char_cursor#132 print_byte::b#0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:107 [ print_line_cursor#1 print_word::w#5 print_char_cursor#132 print_byte::b#0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:107 [ mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_char_cursor#132 print_byte::b#0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:107 [ mul16u_error::mf#0 print_word::w#5 print_char_cursor#132 print_byte::b#0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:107 [ print_word::w#5 print_char_cursor#132 print_byte::b#0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:74::print_word:134 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_char_cursor#132 print_byte::b#0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78::print_word:134 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_char_cursor#132 print_byte::b#0 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:248 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_char_cursor#132 print_byte::b#0 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:252 [ mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_char_cursor#132 print_byte::b#0 ] ) always clobbers reg byte a Statement [112] (byte) print_byte::b#1 ← < (word) print_word::w#5 [ print_char_cursor#20 print_byte::b#1 ] ( main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:105 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_dword::dw#4 print_char_cursor#20 print_byte::b#1 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:105 [ print_line_cursor#1 mul16s_error::mf#0 print_dword::dw#4 print_char_cursor#20 print_byte::b#1 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:105 [ print_line_cursor#1 print_dword::dw#4 print_char_cursor#20 print_byte::b#1 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:105 [ mul16u_error::mn#0 mul16u_error::mf#0 print_dword::dw#4 print_char_cursor#20 print_byte::b#1 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:105 [ mul16u_error::mf#0 print_dword::dw#4 print_char_cursor#20 print_byte::b#1 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:105 [ print_dword::dw#4 print_char_cursor#20 print_byte::b#1 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:107 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#20 print_byte::b#1 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:107 [ print_line_cursor#1 mul16s_error::mf#0 print_char_cursor#20 print_byte::b#1 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:107 [ print_line_cursor#1 print_char_cursor#20 print_byte::b#1 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:107 [ mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#20 print_byte::b#1 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:107 [ mul16u_error::mf#0 print_char_cursor#20 print_byte::b#1 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:107 [ print_char_cursor#20 print_byte::b#1 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:74::print_word:134 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#20 print_byte::b#1 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78::print_word:134 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#20 print_byte::b#1 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:248 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#20 print_byte::b#1 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:252 [ mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#20 print_byte::b#1 ] ) always clobbers reg byte a Statement [116] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#2 print_char_cursor#136 print_byte::$0 ] ( main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:105::print_byte:111 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_dword::dw#4 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:105::print_byte:111 [ print_line_cursor#1 mul16s_error::mf#0 print_dword::dw#4 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:105::print_byte:111 [ print_line_cursor#1 print_dword::dw#4 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:105::print_byte:111 [ mul16u_error::mn#0 mul16u_error::mf#0 print_dword::dw#4 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:105::print_byte:111 [ mul16u_error::mf#0 print_dword::dw#4 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:105::print_byte:111 [ print_dword::dw#4 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:107::print_byte:111 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:107::print_byte:111 [ print_line_cursor#1 mul16s_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:107::print_byte:111 [ print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:107::print_byte:111 [ mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:107::print_byte:111 [ mul16u_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:107::print_byte:111 [ print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:74::print_word:134::print_byte:111 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78::print_word:134::print_byte:111 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:248::print_byte:111 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:252::print_byte:111 [ mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:105::print_byte:113 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_dword::dw#4 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:105::print_byte:113 [ print_line_cursor#1 mul16s_error::mf#0 print_dword::dw#4 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:105::print_byte:113 [ print_line_cursor#1 print_dword::dw#4 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:105::print_byte:113 [ mul16u_error::mn#0 mul16u_error::mf#0 print_dword::dw#4 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:105::print_byte:113 [ mul16u_error::mf#0 print_dword::dw#4 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:105::print_byte:113 [ print_dword::dw#4 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:107::print_byte:113 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:107::print_byte:113 [ print_line_cursor#1 mul16s_error::mf#0 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:107::print_byte:113 [ print_line_cursor#1 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:107::print_byte:113 [ mul16u_error::mn#0 mul16u_error::mf#0 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:107::print_byte:113 [ mul16u_error::mf#0 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:107::print_byte:113 [ print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:74::print_word:134::print_byte:113 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78::print_word:134::print_byte:113 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:248::print_byte:113 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:252::print_byte:113 [ mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_byte::b#2 print_char_cursor#136 print_byte::$0 ] ) always clobbers reg byte a -Statement [119] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#20 print_byte::$2 ] ( main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:105::print_byte:111 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:105::print_byte:111 [ print_line_cursor#1 mul16s_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:105::print_byte:111 [ print_line_cursor#1 print_dword::dw#4 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:105::print_byte:111 [ mul16u_error::mn#0 mul16u_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:105::print_byte:111 [ mul16u_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:105::print_byte:111 [ print_dword::dw#4 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:107::print_byte:111 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:107::print_byte:111 [ print_line_cursor#1 mul16s_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:107::print_byte:111 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:107::print_byte:111 [ mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:107::print_byte:111 [ mul16u_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:107::print_byte:111 [ print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:74::print_word:134::print_byte:111 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78::print_word:134::print_byte:111 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:248::print_byte:111 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:252::print_byte:111 [ mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:105::print_byte:113 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_dword::dw#4 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:105::print_byte:113 [ print_line_cursor#1 mul16s_error::mf#0 print_dword::dw#4 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:105::print_byte:113 [ print_line_cursor#1 print_dword::dw#4 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:105::print_byte:113 [ mul16u_error::mn#0 mul16u_error::mf#0 print_dword::dw#4 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:105::print_byte:113 [ mul16u_error::mf#0 print_dword::dw#4 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:105::print_byte:113 [ print_dword::dw#4 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:107::print_byte:113 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:107::print_byte:113 [ print_line_cursor#1 mul16s_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:107::print_byte:113 [ print_line_cursor#1 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:107::print_byte:113 [ mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:107::print_byte:113 [ mul16u_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:107::print_byte:113 [ print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:74::print_word:134::print_byte:113 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78::print_word:134::print_byte:113 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:248::print_byte:113 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:252::print_byte:113 [ mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#20 print_byte::$2 ] ) always clobbers reg byte a +Statement [119] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#20 print_byte::$2 ] ( main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:105::print_byte:111 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:105::print_byte:111 [ print_line_cursor#1 mul16s_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:105::print_byte:111 [ print_line_cursor#1 print_dword::dw#4 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:105::print_byte:111 [ mul16u_error::mn#0 mul16u_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:105::print_byte:111 [ mul16u_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:105::print_byte:111 [ print_dword::dw#4 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:107::print_byte:111 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:107::print_byte:111 [ print_line_cursor#1 mul16s_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:107::print_byte:111 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:107::print_byte:111 [ mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:107::print_byte:111 [ mul16u_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:107::print_byte:111 [ print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:74::print_word:134::print_byte:111 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78::print_word:134::print_byte:111 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:248::print_byte:111 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:252::print_byte:111 [ mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:105::print_byte:113 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_dword::dw#4 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:105::print_byte:113 [ print_line_cursor#1 mul16s_error::mf#0 print_dword::dw#4 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:105::print_byte:113 [ print_line_cursor#1 print_dword::dw#4 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:105::print_byte:113 [ mul16u_error::mn#0 mul16u_error::mf#0 print_dword::dw#4 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:105::print_byte:113 [ mul16u_error::mf#0 print_dword::dw#4 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:105::print_byte:113 [ print_dword::dw#4 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:107::print_byte:113 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:107::print_byte:113 [ print_line_cursor#1 mul16s_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:107::print_byte:113 [ print_line_cursor#1 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:107::print_byte:113 [ mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:107::print_byte:113 [ mul16u_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:107::print_byte:113 [ print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:74::print_word:134::print_byte:113 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78::print_word:134::print_byte:113 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:248::print_byte:113 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:252::print_byte:113 [ mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#20 print_byte::$2 ] ) always clobbers reg byte a Statement [124] *((byte*) print_char_cursor#84) ← (byte) print_char::ch#4 [ print_char_cursor#84 ] ( main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_char:97 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_sdword::dw#4 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_char:97 [ print_line_cursor#1 mul16s_error::mf#0 print_sdword::dw#4 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_char:97 [ print_line_cursor#1 print_sdword::dw#4 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:105::print_byte:111::print_char:118 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_dword::dw#4 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:105::print_byte:111::print_char:118 [ print_line_cursor#1 mul16s_error::mf#0 print_dword::dw#4 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:105::print_byte:111::print_char:118 [ print_line_cursor#1 print_dword::dw#4 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:105::print_byte:111::print_char:118 [ mul16u_error::mn#0 mul16u_error::mf#0 print_dword::dw#4 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:105::print_byte:111::print_char:118 [ mul16u_error::mf#0 print_dword::dw#4 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:105::print_byte:111::print_char:118 [ print_dword::dw#4 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:107::print_byte:111::print_char:118 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:107::print_byte:111::print_char:118 [ print_line_cursor#1 mul16s_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:107::print_byte:111::print_char:118 [ print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:107::print_byte:111::print_char:118 [ mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:107::print_byte:111::print_char:118 [ mul16u_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:107::print_byte:111::print_char:118 [ print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:74::print_word:134::print_byte:111::print_char:118 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78::print_word:134::print_byte:111::print_char:118 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:248::print_byte:111::print_char:118 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:252::print_byte:111::print_char:118 [ mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:105::print_byte:113::print_char:118 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_dword::dw#4 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:105::print_byte:113::print_char:118 [ print_line_cursor#1 mul16s_error::mf#0 print_dword::dw#4 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:105::print_byte:113::print_char:118 [ print_line_cursor#1 print_dword::dw#4 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:105::print_byte:113::print_char:118 [ mul16u_error::mn#0 mul16u_error::mf#0 print_dword::dw#4 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:105::print_byte:113::print_char:118 [ mul16u_error::mf#0 print_dword::dw#4 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:105::print_byte:113::print_char:118 [ print_dword::dw#4 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:107::print_byte:113::print_char:118 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:107::print_byte:113::print_char:118 [ print_line_cursor#1 mul16s_error::mf#0 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:107::print_byte:113::print_char:118 [ print_line_cursor#1 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:107::print_byte:113::print_char:118 [ mul16u_error::mn#0 mul16u_error::mf#0 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:107::print_byte:113::print_char:118 [ mul16u_error::mf#0 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:107::print_byte:113::print_char:118 [ print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:74::print_word:134::print_byte:113::print_char:118 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78::print_word:134::print_byte:113::print_char:118 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:248::print_byte:113::print_char:118 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_byte::b#2 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:252::print_byte:113::print_char:118 [ mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_byte::b#2 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:105::print_byte:111::print_char:121 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:105::print_byte:111::print_char:121 [ print_line_cursor#1 mul16s_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:105::print_byte:111::print_char:121 [ print_line_cursor#1 print_dword::dw#4 print_word::w#5 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:105::print_byte:111::print_char:121 [ mul16u_error::mn#0 mul16u_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:105::print_byte:111::print_char:121 [ mul16u_error::mf#0 print_dword::dw#4 print_word::w#5 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:105::print_byte:111::print_char:121 [ print_dword::dw#4 print_word::w#5 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:107::print_byte:111::print_char:121 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:107::print_byte:111::print_char:121 [ print_line_cursor#1 mul16s_error::mf#0 print_word::w#5 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:107::print_byte:111::print_char:121 [ print_line_cursor#1 print_word::w#5 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:107::print_byte:111::print_char:121 [ mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:107::print_byte:111::print_char:121 [ mul16u_error::mf#0 print_word::w#5 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:107::print_byte:111::print_char:121 [ print_word::w#5 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:74::print_word:134::print_byte:111::print_char:121 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78::print_word:134::print_byte:111::print_char:121 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_word::w#5 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:248::print_byte:111::print_char:121 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:252::print_byte:111::print_char:121 [ mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_word::w#5 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:105::print_byte:113::print_char:121 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_dword::dw#4 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:105::print_byte:113::print_char:121 [ print_line_cursor#1 mul16s_error::mf#0 print_dword::dw#4 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:105::print_byte:113::print_char:121 [ print_line_cursor#1 print_dword::dw#4 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:105::print_byte:113::print_char:121 [ mul16u_error::mn#0 mul16u_error::mf#0 print_dword::dw#4 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:105::print_byte:113::print_char:121 [ mul16u_error::mf#0 print_dword::dw#4 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:105::print_byte:113::print_char:121 [ print_dword::dw#4 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:82::print_dword:101::print_word:107::print_byte:113::print_char:121 [ print_line_cursor#1 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:86::print_dword:101::print_word:107::print_byte:113::print_char:121 [ print_line_cursor#1 mul16s_error::mf#0 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sdword:90::print_dword:101::print_word:107::print_byte:113::print_char:121 [ print_line_cursor#1 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:256::print_word:107::print_byte:113::print_char:121 [ mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:260::print_word:107::print_byte:113::print_char:121 [ mul16u_error::mf#0 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_dword:264::print_word:107::print_byte:113::print_char:121 [ print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:74::print_word:134::print_byte:113::print_char:121 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78::print_word:134::print_byte:113::print_char:121 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:248::print_byte:113::print_char:121 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#84 ] main:2::mul16u_compare:9::mul16u_error:232::print_word:252::print_byte:113::print_char:121 [ mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:74::print_char:130 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_sword::w#3 print_char_cursor#84 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78::print_char:130 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_sword::w#3 print_char_cursor#84 ] ) always clobbers reg byte y Statement [128] if((signed word) print_sword::w#3>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto print_sword::@1 [ print_char_cursor#128 print_sword::w#3 ] ( main:2::mul16s_compare:11::mul16s_error:46::print_sword:74 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#128 print_sword::w#3 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#128 print_sword::w#3 ] ) always clobbers reg byte a Statement [131] (signed word) print_sword::w#0 ← - (signed word) print_sword::w#3 [ print_char_cursor#20 print_sword::w#0 ] ( main:2::mul16s_compare:11::mul16s_error:46::print_sword:74 [ print_line_cursor#1 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#20 print_sword::w#0 ] main:2::mul16s_compare:11::mul16s_error:46::print_sword:78 [ print_line_cursor#1 mul16s_error::ms#0 mul16s_error::mn#0 mul16s_error::mf#0 print_char_cursor#20 print_sword::w#0 ] ) always clobbers reg byte a @@ -7445,8 +7445,8 @@ Statement [192] if((signed word) muls16s::j#1!=(signed word) muls16s::a#0) goto Statement [196] (signed dword) muls16s::m#2 ← (signed dword) muls16s::m#5 - (signed word) muls16s::b#0 [ muls16s::a#0 muls16s::b#0 muls16s::m#2 muls16s::i#2 ] ( main:2::mul16s_compare:11::muls16s:21 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#10 muls16s::a#0 muls16s::b#0 muls16s::m#2 muls16s::i#2 ] ) always clobbers reg byte a Statement [197] (signed word) muls16s::i#1 ← -- (signed word) muls16s::i#2 [ muls16s::a#0 muls16s::b#0 muls16s::m#2 muls16s::i#1 ] ( main:2::mul16s_compare:11::muls16s:21 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#10 muls16s::a#0 muls16s::b#0 muls16s::m#2 muls16s::i#1 ] ) always clobbers reg byte a Statement [198] if((signed word) muls16s::i#1!=(signed word) muls16s::a#0) goto muls16s::@5 [ muls16s::a#0 muls16s::b#0 muls16s::m#2 muls16s::i#1 ] ( main:2::mul16s_compare:11::muls16s:21 [ print_line_cursor#1 mul16s_compare::i#12 print_char_cursor#128 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#10 muls16s::a#0 muls16s::b#0 muls16s::m#2 muls16s::i#1 ] ) always clobbers reg byte a -Statement [203] (word) mul16u_compare::a#1 ← (word) mul16u_compare::a#2 + (word/signed word/dword/signed dword) 3371 [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#2 mul16u_compare::j#10 ] ( main:2::mul16u_compare:9 [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#2 mul16u_compare::j#10 ] ) always clobbers reg byte a -Statement [204] (word) mul16u_compare::b#1 ← (word) mul16u_compare::b#2 + (word/signed word/dword/signed dword) 4093 [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::j#10 ] ( main:2::mul16u_compare:9 [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::j#10 ] ) always clobbers reg byte a +Statement [203] (word) mul16u_compare::a#1 ← (word) mul16u_compare::a#2 + (word/signed word/dword/signed dword) $d2b [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#2 mul16u_compare::j#10 ] ( main:2::mul16u_compare:9 [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#2 mul16u_compare::j#10 ] ) always clobbers reg byte a +Statement [204] (word) mul16u_compare::b#1 ← (word) mul16u_compare::b#2 + (word/signed word/dword/signed dword) $ffd [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::j#10 ] ( main:2::mul16u_compare:9 [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::j#10 ] ) always clobbers reg byte a Statement [205] (word) muls16u::a#0 ← (word) mul16u_compare::a#1 [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::j#10 muls16u::a#0 ] ( main:2::mul16u_compare:9 [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::j#10 muls16u::a#0 ] ) always clobbers reg byte a Statement [206] (word) muls16u::b#0 ← (word) mul16u_compare::b#1 [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::j#10 muls16u::a#0 muls16u::b#0 ] ( main:2::mul16u_compare:9 [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::j#10 muls16u::a#0 muls16u::b#0 ] ) always clobbers reg byte a Statement [208] (dword) muls16u::return#2 ← (dword) muls16u::return#0 [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::j#10 muls16u::return#2 ] ( main:2::mul16u_compare:9 [ print_char_cursor#128 mul16u_compare::i#12 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::j#10 muls16u::return#2 ] ) always clobbers reg byte a @@ -7467,7 +7467,7 @@ Statement [228] (word) mul16u_error::b#0 ← (word) mul16u_compare::b#1 [ print_ Statement [229] (dword) mul16u_error::ms#0 ← (dword) mul16u_compare::ms#0 [ print_char_cursor#128 mul16u_compare::mn#0 mul16u_compare::mf#0 mul16u_error::a#0 mul16u_error::b#0 mul16u_error::ms#0 ] ( main:2::mul16u_compare:9 [ print_char_cursor#128 mul16u_compare::mn#0 mul16u_compare::mf#0 mul16u_error::a#0 mul16u_error::b#0 mul16u_error::ms#0 ] ) always clobbers reg byte a Statement [230] (dword) mul16u_error::mn#0 ← (dword) mul16u_compare::mn#0 [ print_char_cursor#128 mul16u_compare::mf#0 mul16u_error::a#0 mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 ] ( main:2::mul16u_compare:9 [ print_char_cursor#128 mul16u_compare::mf#0 mul16u_error::a#0 mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 ] ) always clobbers reg byte a Statement [231] (dword) mul16u_error::mf#0 ← (dword) mul16u_compare::mf#0 [ print_char_cursor#128 mul16u_error::a#0 mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 ] ( main:2::mul16u_compare:9 [ print_char_cursor#128 mul16u_error::a#0 mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 ] ) always clobbers reg byte a -Statement [237] if((byte) mul16u_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mul16u_compare::@1 [ print_char_cursor#128 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::i#1 ] ( main:2::mul16u_compare:9 [ print_char_cursor#128 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::i#1 ] ) always clobbers reg byte a +Statement [237] if((byte) mul16u_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mul16u_compare::@1 [ print_char_cursor#128 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::i#1 ] ( main:2::mul16u_compare:9 [ print_char_cursor#128 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::i#1 ] ) always clobbers reg byte a Statement [240] (byte*~) print_char_cursor#192 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#192 ] ( main:2::mul16u_compare:9 [ print_line_cursor#1 print_char_cursor#192 ] ) always clobbers reg byte a Statement [247] (word) print_word::w#3 ← (word) mul16u_error::a#0 [ print_char_cursor#128 print_word::w#3 mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 ] ( main:2::mul16u_compare:9::mul16u_error:232 [ print_char_cursor#128 print_word::w#3 mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 ] ) always clobbers reg byte a Statement [251] (word) print_word::w#4 ← (word) mul16u_error::b#0 [ print_char_cursor#128 print_word::w#4 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 ] ( main:2::mul16u_compare:9::mul16u_error:232 [ print_char_cursor#128 print_word::w#4 mul16u_error::ms#0 mul16u_error::mn#0 mul16u_error::mf#0 ] ) always clobbers reg byte a @@ -7483,15 +7483,15 @@ Statement [284] *((byte*) mulf_init::sqr1_lo#2) ← (byte~) mulf_init::$5 [ mulf Statement [285] (byte~) mulf_init::$6 ← > (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ( main:2::mulf_init:7 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ) always clobbers reg byte a Statement [286] *((byte*) mulf_init::sqr1_hi#2) ← (byte~) mulf_init::$6 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:2::mulf_init:7 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) always clobbers reg byte y Statement [288] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:2::mulf_init:7 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a -Statement [290] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:2::mulf_init:7 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a -Statement [292] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:2::mulf_init:7 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y -Statement [293] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:2::mulf_init:7 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y +Statement [290] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:2::mulf_init:7 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a +Statement [292] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:2::mulf_init:7 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y +Statement [293] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:2::mulf_init:7 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y Statement [295] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:2::mulf_init:7 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) always clobbers reg byte a -Statement [299] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:2::mulf_init:7 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) always clobbers reg byte a -Statement [300] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) [ ] ( main:2::mulf_init:7 [ ] ) always clobbers reg byte a -Statement [301] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) [ ] ( main:2::mulf_init:7 [ ] ) always clobbers reg byte a +Statement [299] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:2::mulf_init:7 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) always clobbers reg byte a +Statement [300] *((const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100) [ ] ( main:2::mulf_init:7 [ ] ) always clobbers reg byte a +Statement [301] *((const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100) [ ] ( main:2::mulf_init:7 [ ] ) always clobbers reg byte a Statement [306] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [308] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [308] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ mul16s_compare::i#12 mul16s_compare::i#1 ] : zp ZP_BYTE:2 , Potential registers zp ZP_WORD:3 [ mul16s_compare::a#2 mul16s_compare::a#6 mul16s_compare::a#1 ] : zp ZP_WORD:3 , Potential registers zp ZP_WORD:5 [ mul16s_compare::b#2 mul16s_compare::b#6 mul16s_compare::b#1 ] : zp ZP_WORD:5 , @@ -7800,12 +7800,12 @@ mul16s_compare: { //SEG29 [14] phi (byte) mul16s_compare::i#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mul16s_compare->mul16s_compare::@1#0] -- vbuz1=vbuc1 lda #0 sta i - //SEG30 [14] phi (signed word) mul16s_compare::b#6 = -(word/signed word/dword/signed dword) 32767 [phi:mul16s_compare->mul16s_compare::@1#1] -- vwsz1=vwsc1 + //SEG30 [14] phi (signed word) mul16s_compare::b#6 = -(word/signed word/dword/signed dword) $7fff [phi:mul16s_compare->mul16s_compare::@1#1] -- vwsz1=vwsc1 lda #<-$7fff sta b lda #>-$7fff sta b+1 - //SEG31 [14] phi (signed word) mul16s_compare::a#6 = -(word/signed word/dword/signed dword) 32767 [phi:mul16s_compare->mul16s_compare::@1#2] -- vwsz1=vwsc1 + //SEG31 [14] phi (signed word) mul16s_compare::a#6 = -(word/signed word/dword/signed dword) $7fff [phi:mul16s_compare->mul16s_compare::@1#2] -- vwsz1=vwsc1 lda #<-$7fff sta a lda #>-$7fff @@ -7846,7 +7846,7 @@ mul16s_compare: { jmp b2 //SEG51 mul16s_compare::@2 b2: - //SEG52 [17] (signed word) mul16s_compare::a#1 ← (signed word) mul16s_compare::a#2 + (word/signed word/dword/signed dword) 3371 -- vwsz1=vwsz1_plus_vwuc1 + //SEG52 [17] (signed word) mul16s_compare::a#1 ← (signed word) mul16s_compare::a#2 + (word/signed word/dword/signed dword) $d2b -- vwsz1=vwsz1_plus_vwuc1 clc lda a adc #<$d2b @@ -7854,7 +7854,7 @@ mul16s_compare: { lda a+1 adc #>$d2b sta a+1 - //SEG53 [18] (signed word) mul16s_compare::b#1 ← (signed word) mul16s_compare::b#2 + (word/signed word/dword/signed dword) 4093 -- vwsz1=vwsz1_plus_vwuc1 + //SEG53 [18] (signed word) mul16s_compare::b#1 ← (signed word) mul16s_compare::b#2 + (word/signed word/dword/signed dword) $ffd -- vwsz1=vwsz1_plus_vwuc1 clc lda b adc #<$ffd @@ -7968,7 +7968,7 @@ mul16s_compare: { b5: //SEG97 [48] (byte) mul16s_compare::j#1 ← ++ (byte) mul16s_compare::j#10 -- vbuyy=_inc_vbuyy iny - //SEG98 [49] if((byte) mul16s_compare::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mul16s_compare::@2 -- vbuyy_neq_vbuc1_then_la1 + //SEG98 [49] if((byte) mul16s_compare::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mul16s_compare::@2 -- vbuyy_neq_vbuc1_then_la1 cpy #$10 bne b2_from_b5 jmp b10 @@ -7976,7 +7976,7 @@ mul16s_compare: { b10: //SEG100 [50] (byte) mul16s_compare::i#1 ← ++ (byte) mul16s_compare::i#12 -- vbuz1=_inc_vbuz1 inc i - //SEG101 [51] if((byte) mul16s_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mul16s_compare::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG101 [51] if((byte) mul16s_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mul16s_compare::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b10 @@ -8042,7 +8042,7 @@ print_ln: { jmp b1 //SEG127 print_ln::@1 b1: - //SEG128 [61] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#22 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG128 [61] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#22 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -8420,7 +8420,7 @@ print_byte: { jmp b1 //SEG262 print_byte::@1 b1: - //SEG263 [119] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG263 [119] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG264 [120] (byte) print_char::ch#3 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) -- vbuaa=pbuc1_derefidx_vbuaa @@ -9121,7 +9121,7 @@ mul16u_compare: { sta a lda #>0 sta a+1 - //SEG422 [200] phi (byte*) print_char_cursor#139 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:mul16u_compare->mul16u_compare::@1#3] -- pbuz1=pbuc1 + //SEG422 [200] phi (byte*) print_char_cursor#139 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:mul16u_compare->mul16u_compare::@1#3] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -9161,7 +9161,7 @@ mul16u_compare: { jmp b2 //SEG441 mul16u_compare::@2 b2: - //SEG442 [203] (word) mul16u_compare::a#1 ← (word) mul16u_compare::a#2 + (word/signed word/dword/signed dword) 3371 -- vwuz1=vwuz1_plus_vwuc1 + //SEG442 [203] (word) mul16u_compare::a#1 ← (word) mul16u_compare::a#2 + (word/signed word/dword/signed dword) $d2b -- vwuz1=vwuz1_plus_vwuc1 clc lda a adc #<$d2b @@ -9169,7 +9169,7 @@ mul16u_compare: { lda a+1 adc #>$d2b sta a+1 - //SEG443 [204] (word) mul16u_compare::b#1 ← (word) mul16u_compare::b#2 + (word/signed word/dword/signed dword) 4093 -- vwuz1=vwuz1_plus_vwuc1 + //SEG443 [204] (word) mul16u_compare::b#1 ← (word) mul16u_compare::b#2 + (word/signed word/dword/signed dword) $ffd -- vwuz1=vwuz1_plus_vwuc1 clc lda b adc #<$ffd @@ -9299,7 +9299,7 @@ mul16u_compare: { b5: //SEG493 [234] (byte) mul16u_compare::j#1 ← ++ (byte) mul16u_compare::j#10 -- vbuyy=_inc_vbuyy iny - //SEG494 [235] if((byte) mul16u_compare::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mul16u_compare::@2 -- vbuyy_neq_vbuc1_then_la1 + //SEG494 [235] if((byte) mul16u_compare::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mul16u_compare::@2 -- vbuyy_neq_vbuc1_then_la1 cpy #$10 bne b2_from_b5 jmp b10 @@ -9307,7 +9307,7 @@ mul16u_compare: { b10: //SEG496 [236] (byte) mul16u_compare::i#1 ← ++ (byte) mul16u_compare::i#12 -- vbuz1=_inc_vbuz1 inc i - //SEG497 [237] if((byte) mul16u_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mul16u_compare::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG497 [237] if((byte) mul16u_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mul16u_compare::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b10 @@ -9320,7 +9320,7 @@ mul16u_compare: { //SEG501 [59] phi from mul16u_compare::@11 to print_ln [phi:mul16u_compare::@11->print_ln] print_ln_from_b11: //SEG502 [59] phi (byte*) print_char_cursor#129 = (byte*) print_char_cursor#128 [phi:mul16u_compare::@11->print_ln#0] -- register_copy - //SEG503 [59] phi (byte*) print_line_cursor#43 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:mul16u_compare::@11->print_ln#1] -- pbuz1=pbuc1 + //SEG503 [59] phi (byte*) print_line_cursor#43 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:mul16u_compare::@11->print_ln#1] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -9524,7 +9524,7 @@ mul16u_error: { //SEG582 [59] phi from mul16u_error::@10 to print_ln [phi:mul16u_error::@10->print_ln] print_ln_from_b10: //SEG583 [59] phi (byte*) print_char_cursor#129 = (byte*) print_char_cursor#20 [phi:mul16u_error::@10->print_ln#0] -- register_copy - //SEG584 [59] phi (byte*) print_line_cursor#43 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:mul16u_error::@10->print_ln#1] -- pbuz1=pbuc1 + //SEG584 [59] phi (byte*) print_line_cursor#43 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:mul16u_error::@10->print_ln#1] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -9638,12 +9638,12 @@ mulf_init: { //SEG608 [276] phi (byte) mulf_init::x_2#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#0] -- vbuz1=vbuc1 lda #0 sta x_2 - //SEG609 [276] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 + //SEG609 [276] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[$200]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 lda #mulf_sqr1_hi+1 sta sqr1_hi+1 - //SEG610 [276] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 + //SEG610 [276] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[$200]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 lda #mulf_sqr1_lo+1 @@ -9720,7 +9720,7 @@ mulf_init: { bne !+ inc sqr1_lo+1 !: - //SEG637 [290] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG637 [290] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 -- pbuz1_neq_pbuc1_then_la1 lda sqr1_lo+1 cmp #>mulf_sqr1_lo+$200 bne b1_from_b2 @@ -9729,15 +9729,15 @@ mulf_init: { bne b1_from_b2 //SEG638 [291] phi from mulf_init::@2 to mulf_init::@3 [phi:mulf_init::@2->mulf_init::@3] b3_from_b2: - //SEG639 [291] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) 255 [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 + //SEG639 [291] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) $ff [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 lda #$ff sta dir - //SEG640 [291] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[512]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 + //SEG640 [291] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[$200]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 lda #mulf_sqr2_hi sta sqr2_hi+1 - //SEG641 [291] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[512]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 + //SEG641 [291] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[$200]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 lda #mulf_sqr2_lo @@ -9754,11 +9754,11 @@ mulf_init: { jmp b3 //SEG648 mulf_init::@3 b3: - //SEG649 [292] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + //SEG649 [292] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda mulf_sqr1_lo,x ldy #0 sta (sqr2_lo),y - //SEG650 [293] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + //SEG650 [293] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda mulf_sqr1_hi,x ldy #0 sta (sqr2_hi),y @@ -9788,7 +9788,7 @@ mulf_init: { bne !+ inc sqr2_lo+1 !: - //SEG658 [299] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 -- pbuz1_neq_pbuc1_then_la1 + //SEG658 [299] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 -- pbuz1_neq_pbuc1_then_la1 lda sqr2_lo+1 cmp #>mulf_sqr2_lo+$1ff bne b3_from_b4 @@ -9798,11 +9798,11 @@ mulf_init: { jmp b8 //SEG659 mulf_init::@8 b8: - //SEG660 [300] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) -- _deref_pbuc1=_deref_pbuc2 + //SEG660 [300] *((const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100) -- _deref_pbuc1=_deref_pbuc2 // Set the very last value g(511) = f(256) lda mulf_sqr1_lo+$100 sta mulf_sqr2_lo+$1ff - //SEG661 [301] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) -- _deref_pbuc1=_deref_pbuc2 + //SEG661 [301] *((const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100) -- _deref_pbuc1=_deref_pbuc2 lda mulf_sqr1_hi+$100 sta mulf_sqr2_hi+$1ff jmp breturn @@ -9826,7 +9826,7 @@ print_cls: { .label sc = 3 //SEG669 [305] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] b1_from_print_cls: - //SEG670 [305] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG670 [305] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -9847,7 +9847,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG676 [308] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG676 [308] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1_from_b1 @@ -10300,7 +10300,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (void()) main() (label) main::@1 (label) main::@2 @@ -10521,11 +10521,11 @@ FINAL SYMBOL TABLE (word) mulf16u::b#2 b zp ZP_WORD:23 52.5 (word~) mulf16u::b#4 b zp ZP_WORD:23 4.0 (word*) mulf16u::memA -(const word*) mulf16u::memA#0 memA = ((word*))(byte/word/signed word/dword/signed dword) 248 +(const word*) mulf16u::memA#0 memA = ((word*))(byte/word/signed word/dword/signed dword) $f8 (word*) mulf16u::memB -(const word*) mulf16u::memB#0 memB = ((word*))(byte/word/signed word/dword/signed dword) 250 +(const word*) mulf16u::memB#0 memB = ((word*))(byte/word/signed word/dword/signed dword) $fa (dword*) mulf16u::memR -(const dword*) mulf16u::memR#0 memR = ((dword*))(byte/word/signed word/dword/signed dword) 252 +(const dword*) mulf16u::memR#0 memR = ((dword*))(byte/word/signed word/dword/signed dword) $fc (dword) mulf16u::return (dword) mulf16u::return#0 return zp ZP_DWORD:17 26.25 (dword) mulf16u::return#2 return zp ZP_DWORD:17 4.0 @@ -10572,14 +10572,14 @@ FINAL SYMBOL TABLE (byte) mulf_init::x_255 (byte) mulf_init::x_255#1 reg byte x 5.5 (byte) mulf_init::x_255#2 reg byte x 11.0 -(byte[512]) mulf_sqr1_hi -(const byte[512]) mulf_sqr1_hi#0 mulf_sqr1_hi = { fill( 512, 0) } -(byte[512]) mulf_sqr1_lo -(const byte[512]) mulf_sqr1_lo#0 mulf_sqr1_lo = { fill( 512, 0) } -(byte[512]) mulf_sqr2_hi -(const byte[512]) mulf_sqr2_hi#0 mulf_sqr2_hi = { fill( 512, 0) } -(byte[512]) mulf_sqr2_lo -(const byte[512]) mulf_sqr2_lo#0 mulf_sqr2_lo = { fill( 512, 0) } +(byte[$200]) mulf_sqr1_hi +(const byte[$200]) mulf_sqr1_hi#0 mulf_sqr1_hi = { fill( $200, 0) } +(byte[$200]) mulf_sqr1_lo +(const byte[$200]) mulf_sqr1_lo#0 mulf_sqr1_lo = { fill( $200, 0) } +(byte[$200]) mulf_sqr2_hi +(const byte[$200]) mulf_sqr2_hi#0 mulf_sqr2_hi = { fill( $200, 0) } +(byte[$200]) mulf_sqr2_lo +(const byte[$200]) mulf_sqr2_lo#0 mulf_sqr2_lo = { fill( $200, 0) } (signed dword()) muls16s((signed word) muls16s::a , (signed word) muls16s::b) (label) muls16s::@3 (label) muls16s::@4 @@ -10815,12 +10815,12 @@ mul16s_compare: { //SEG29 [14] phi (byte) mul16s_compare::i#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mul16s_compare->mul16s_compare::@1#0] -- vbuz1=vbuc1 lda #0 sta i - //SEG30 [14] phi (signed word) mul16s_compare::b#6 = -(word/signed word/dword/signed dword) 32767 [phi:mul16s_compare->mul16s_compare::@1#1] -- vwsz1=vwsc1 + //SEG30 [14] phi (signed word) mul16s_compare::b#6 = -(word/signed word/dword/signed dword) $7fff [phi:mul16s_compare->mul16s_compare::@1#1] -- vwsz1=vwsc1 lda #<-$7fff sta b lda #>-$7fff sta b+1 - //SEG31 [14] phi (signed word) mul16s_compare::a#6 = -(word/signed word/dword/signed dword) 32767 [phi:mul16s_compare->mul16s_compare::@1#2] -- vwsz1=vwsc1 + //SEG31 [14] phi (signed word) mul16s_compare::a#6 = -(word/signed word/dword/signed dword) $7fff [phi:mul16s_compare->mul16s_compare::@1#2] -- vwsz1=vwsc1 lda #<-$7fff sta a lda #>-$7fff @@ -10853,7 +10853,7 @@ mul16s_compare: { //SEG50 [16] phi (signed word) mul16s_compare::a#2 = (signed word) mul16s_compare::a#1 [phi:mul16s_compare::@5->mul16s_compare::@2#2] -- register_copy //SEG51 mul16s_compare::@2 b2: - //SEG52 [17] (signed word) mul16s_compare::a#1 ← (signed word) mul16s_compare::a#2 + (word/signed word/dword/signed dword) 3371 -- vwsz1=vwsz1_plus_vwuc1 + //SEG52 [17] (signed word) mul16s_compare::a#1 ← (signed word) mul16s_compare::a#2 + (word/signed word/dword/signed dword) $d2b -- vwsz1=vwsz1_plus_vwuc1 clc lda a adc #<$d2b @@ -10861,7 +10861,7 @@ mul16s_compare: { lda a+1 adc #>$d2b sta a+1 - //SEG53 [18] (signed word) mul16s_compare::b#1 ← (signed word) mul16s_compare::b#2 + (word/signed word/dword/signed dword) 4093 -- vwsz1=vwsz1_plus_vwuc1 + //SEG53 [18] (signed word) mul16s_compare::b#1 ← (signed word) mul16s_compare::b#2 + (word/signed word/dword/signed dword) $ffd -- vwsz1=vwsz1_plus_vwuc1 clc lda b adc #<$ffd @@ -10958,13 +10958,13 @@ mul16s_compare: { b5: //SEG97 [48] (byte) mul16s_compare::j#1 ← ++ (byte) mul16s_compare::j#10 -- vbuyy=_inc_vbuyy iny - //SEG98 [49] if((byte) mul16s_compare::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mul16s_compare::@2 -- vbuyy_neq_vbuc1_then_la1 + //SEG98 [49] if((byte) mul16s_compare::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mul16s_compare::@2 -- vbuyy_neq_vbuc1_then_la1 cpy #$10 bne b2 //SEG99 mul16s_compare::@10 //SEG100 [50] (byte) mul16s_compare::i#1 ← ++ (byte) mul16s_compare::i#12 -- vbuz1=_inc_vbuz1 inc i - //SEG101 [51] if((byte) mul16s_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mul16s_compare::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG101 [51] if((byte) mul16s_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mul16s_compare::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 beq !b1+ @@ -11013,7 +11013,7 @@ print_ln: { //SEG126 [60] phi (byte*) print_line_cursor#22 = (byte*) print_line_cursor#43 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy //SEG127 print_ln::@1 b1: - //SEG128 [61] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#22 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG128 [61] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#22 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -11318,7 +11318,7 @@ print_byte: { //SEG261 [123] phi (byte) print_char::ch#4 = (byte) print_char::ch#2 [phi:print_byte->print_char#1] -- register_copy jsr print_char //SEG262 print_byte::@1 - //SEG263 [119] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG263 [119] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG264 [120] (byte) print_char::ch#3 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) -- vbuaa=pbuc1_derefidx_vbuaa @@ -11931,7 +11931,7 @@ mul16u_compare: { //SEG421 [200] phi (word) mul16u_compare::a#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mul16u_compare->mul16u_compare::@1#2] -- vwuz1=vbuc1 sta a sta a+1 - //SEG422 [200] phi (byte*) print_char_cursor#139 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:mul16u_compare->mul16u_compare::@1#3] -- pbuz1=pbuc1 + //SEG422 [200] phi (byte*) print_char_cursor#139 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:mul16u_compare->mul16u_compare::@1#3] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -11963,7 +11963,7 @@ mul16u_compare: { //SEG440 [202] phi (word) mul16u_compare::a#2 = (word) mul16u_compare::a#1 [phi:mul16u_compare::@5->mul16u_compare::@2#2] -- register_copy //SEG441 mul16u_compare::@2 b2: - //SEG442 [203] (word) mul16u_compare::a#1 ← (word) mul16u_compare::a#2 + (word/signed word/dword/signed dword) 3371 -- vwuz1=vwuz1_plus_vwuc1 + //SEG442 [203] (word) mul16u_compare::a#1 ← (word) mul16u_compare::a#2 + (word/signed word/dword/signed dword) $d2b -- vwuz1=vwuz1_plus_vwuc1 clc lda a adc #<$d2b @@ -11971,7 +11971,7 @@ mul16u_compare: { lda a+1 adc #>$d2b sta a+1 - //SEG443 [204] (word) mul16u_compare::b#1 ← (word) mul16u_compare::b#2 + (word/signed word/dword/signed dword) 4093 -- vwuz1=vwuz1_plus_vwuc1 + //SEG443 [204] (word) mul16u_compare::b#1 ← (word) mul16u_compare::b#2 + (word/signed word/dword/signed dword) $ffd -- vwuz1=vwuz1_plus_vwuc1 clc lda b adc #<$ffd @@ -12082,13 +12082,13 @@ mul16u_compare: { b5: //SEG493 [234] (byte) mul16u_compare::j#1 ← ++ (byte) mul16u_compare::j#10 -- vbuyy=_inc_vbuyy iny - //SEG494 [235] if((byte) mul16u_compare::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mul16u_compare::@2 -- vbuyy_neq_vbuc1_then_la1 + //SEG494 [235] if((byte) mul16u_compare::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mul16u_compare::@2 -- vbuyy_neq_vbuc1_then_la1 cpy #$10 bne b2 //SEG495 mul16u_compare::@10 //SEG496 [236] (byte) mul16u_compare::i#1 ← ++ (byte) mul16u_compare::i#12 -- vbuz1=_inc_vbuz1 inc i - //SEG497 [237] if((byte) mul16u_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mul16u_compare::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG497 [237] if((byte) mul16u_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto mul16u_compare::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 beq !b1+ @@ -12099,7 +12099,7 @@ mul16u_compare: { //SEG500 [239] call print_ln //SEG501 [59] phi from mul16u_compare::@11 to print_ln [phi:mul16u_compare::@11->print_ln] //SEG502 [59] phi (byte*) print_char_cursor#129 = (byte*) print_char_cursor#128 [phi:mul16u_compare::@11->print_ln#0] -- register_copy - //SEG503 [59] phi (byte*) print_line_cursor#43 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:mul16u_compare::@11->print_ln#1] -- pbuz1=pbuc1 + //SEG503 [59] phi (byte*) print_line_cursor#43 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:mul16u_compare::@11->print_ln#1] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -12255,7 +12255,7 @@ mul16u_error: { //SEG581 [266] call print_ln //SEG582 [59] phi from mul16u_error::@10 to print_ln [phi:mul16u_error::@10->print_ln] //SEG583 [59] phi (byte*) print_char_cursor#129 = (byte*) print_char_cursor#20 [phi:mul16u_error::@10->print_ln#0] -- register_copy - //SEG584 [59] phi (byte*) print_line_cursor#43 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:mul16u_error::@10->print_ln#1] -- pbuz1=pbuc1 + //SEG584 [59] phi (byte*) print_line_cursor#43 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:mul16u_error::@10->print_ln#1] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -12354,12 +12354,12 @@ mulf_init: { //SEG608 [276] phi (byte) mulf_init::x_2#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#0] -- vbuz1=vbuc1 lda #0 sta x_2 - //SEG609 [276] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 + //SEG609 [276] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[$200]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 lda #mulf_sqr1_hi+1 sta sqr1_hi+1 - //SEG610 [276] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 + //SEG610 [276] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[$200]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 lda #mulf_sqr1_lo+1 @@ -12426,7 +12426,7 @@ mulf_init: { bne !+ inc sqr1_lo+1 !: - //SEG637 [290] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG637 [290] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 -- pbuz1_neq_pbuc1_then_la1 lda sqr1_lo+1 cmp #>mulf_sqr1_lo+$200 bne b1 @@ -12434,15 +12434,15 @@ mulf_init: { cmp #mulf_init::@3] - //SEG639 [291] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) 255 [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 + //SEG639 [291] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) $ff [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 lda #$ff sta dir - //SEG640 [291] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[512]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 + //SEG640 [291] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[$200]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 lda #mulf_sqr2_hi sta sqr2_hi+1 - //SEG641 [291] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[512]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 + //SEG641 [291] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[$200]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 lda #mulf_sqr2_lo @@ -12456,11 +12456,11 @@ mulf_init: { //SEG647 [291] phi (byte) mulf_init::x_255#2 = (byte) mulf_init::x_255#1 [phi:mulf_init::@4->mulf_init::@3#3] -- register_copy //SEG648 mulf_init::@3 b3: - //SEG649 [292] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + //SEG649 [292] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda mulf_sqr1_lo,x ldy #0 sta (sqr2_lo),y - //SEG650 [293] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + //SEG650 [293] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda mulf_sqr1_hi,x sta (sqr2_hi),y //SEG651 [294] (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 -- pbuz1=_inc_pbuz1 @@ -12487,7 +12487,7 @@ mulf_init: { bne !+ inc sqr2_lo+1 !: - //SEG658 [299] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 -- pbuz1_neq_pbuc1_then_la1 + //SEG658 [299] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 -- pbuz1_neq_pbuc1_then_la1 lda sqr2_lo+1 cmp #>mulf_sqr2_lo+$1ff bne b3 @@ -12495,11 +12495,11 @@ mulf_init: { cmp #print_cls::@1] - //SEG670 [305] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG670 [305] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -12533,7 +12533,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG676 [308] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG676 [308] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1 diff --git a/src/test/ref/test-multiply-16bit.sym b/src/test/ref/test-multiply-16bit.sym index 284ac3fd9..89db00349 100644 --- a/src/test/ref/test-multiply-16bit.sym +++ b/src/test/ref/test-multiply-16bit.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (void()) main() (label) main::@1 (label) main::@2 @@ -223,11 +223,11 @@ (word) mulf16u::b#2 b zp ZP_WORD:23 52.5 (word~) mulf16u::b#4 b zp ZP_WORD:23 4.0 (word*) mulf16u::memA -(const word*) mulf16u::memA#0 memA = ((word*))(byte/word/signed word/dword/signed dword) 248 +(const word*) mulf16u::memA#0 memA = ((word*))(byte/word/signed word/dword/signed dword) $f8 (word*) mulf16u::memB -(const word*) mulf16u::memB#0 memB = ((word*))(byte/word/signed word/dword/signed dword) 250 +(const word*) mulf16u::memB#0 memB = ((word*))(byte/word/signed word/dword/signed dword) $fa (dword*) mulf16u::memR -(const dword*) mulf16u::memR#0 memR = ((dword*))(byte/word/signed word/dword/signed dword) 252 +(const dword*) mulf16u::memR#0 memR = ((dword*))(byte/word/signed word/dword/signed dword) $fc (dword) mulf16u::return (dword) mulf16u::return#0 return zp ZP_DWORD:17 26.25 (dword) mulf16u::return#2 return zp ZP_DWORD:17 4.0 @@ -274,14 +274,14 @@ (byte) mulf_init::x_255 (byte) mulf_init::x_255#1 reg byte x 5.5 (byte) mulf_init::x_255#2 reg byte x 11.0 -(byte[512]) mulf_sqr1_hi -(const byte[512]) mulf_sqr1_hi#0 mulf_sqr1_hi = { fill( 512, 0) } -(byte[512]) mulf_sqr1_lo -(const byte[512]) mulf_sqr1_lo#0 mulf_sqr1_lo = { fill( 512, 0) } -(byte[512]) mulf_sqr2_hi -(const byte[512]) mulf_sqr2_hi#0 mulf_sqr2_hi = { fill( 512, 0) } -(byte[512]) mulf_sqr2_lo -(const byte[512]) mulf_sqr2_lo#0 mulf_sqr2_lo = { fill( 512, 0) } +(byte[$200]) mulf_sqr1_hi +(const byte[$200]) mulf_sqr1_hi#0 mulf_sqr1_hi = { fill( $200, 0) } +(byte[$200]) mulf_sqr1_lo +(const byte[$200]) mulf_sqr1_lo#0 mulf_sqr1_lo = { fill( $200, 0) } +(byte[$200]) mulf_sqr2_hi +(const byte[$200]) mulf_sqr2_hi#0 mulf_sqr2_hi = { fill( $200, 0) } +(byte[$200]) mulf_sqr2_lo +(const byte[$200]) mulf_sqr2_lo#0 mulf_sqr2_lo = { fill( $200, 0) } (signed dword()) muls16s((signed word) muls16s::a , (signed word) muls16s::b) (label) muls16s::@3 (label) muls16s::@4 diff --git a/src/test/ref/test-multiply-8bit.cfg b/src/test/ref/test-multiply-8bit.cfg index 4db8458ad..8f8279d5c 100644 --- a/src/test/ref/test-multiply-8bit.cfg +++ b/src/test/ref/test-multiply-8bit.cfg @@ -38,10 +38,10 @@ mul8s_compare: scope:[mul8s_compare] from main::@5 [17] phi() to:mul8s_compare::@1 mul8s_compare::@1: scope:[mul8s_compare] from mul8s_compare mul8s_compare::@10 - [18] (signed byte) mul8s_compare::a#7 ← phi( mul8s_compare/-(byte/word/signed word/dword/signed dword) 128 mul8s_compare::@10/(signed byte) mul8s_compare::a#1 ) + [18] (signed byte) mul8s_compare::a#7 ← phi( mul8s_compare/-(byte/word/signed word/dword/signed dword) $80 mul8s_compare::@10/(signed byte) mul8s_compare::a#1 ) to:mul8s_compare::@2 mul8s_compare::@2: scope:[mul8s_compare] from mul8s_compare::@1 mul8s_compare::@5 - [19] (signed byte) mul8s_compare::b#10 ← phi( mul8s_compare::@1/-(byte/word/signed word/dword/signed dword) 128 mul8s_compare::@5/(signed byte) mul8s_compare::b#1 ) + [19] (signed byte) mul8s_compare::b#10 ← phi( mul8s_compare::@1/-(byte/word/signed word/dword/signed dword) $80 mul8s_compare::@5/(signed byte) mul8s_compare::b#1 ) [20] (signed byte) muls8s::a#0 ← (signed byte) mul8s_compare::a#7 [21] (signed byte) muls8s::b#0 ← (signed byte) mul8s_compare::b#10 [22] call muls8s @@ -90,11 +90,11 @@ mul8s_compare::@return: scope:[mul8s_compare] from mul8s_compare::@16 mul8s_com to:@return mul8s_compare::@5: scope:[mul8s_compare] from mul8s_compare::@4 [49] (signed byte) mul8s_compare::b#1 ← ++ (signed byte) mul8s_compare::b#10 - [50] if((signed byte) mul8s_compare::b#1!=-(byte/word/signed word/dword/signed dword) 128) goto mul8s_compare::@2 + [50] if((signed byte) mul8s_compare::b#1!=-(byte/word/signed word/dword/signed dword) $80) goto mul8s_compare::@2 to:mul8s_compare::@10 mul8s_compare::@10: scope:[mul8s_compare] from mul8s_compare::@5 [51] (signed byte) mul8s_compare::a#1 ← ++ (signed byte) mul8s_compare::a#7 - [52] if((signed byte) mul8s_compare::a#1!=-(byte/word/signed word/dword/signed dword) 128) goto mul8s_compare::@1 + [52] if((signed byte) mul8s_compare::a#1!=-(byte/word/signed word/dword/signed dword) $80) goto mul8s_compare::@1 to:mul8s_compare::@11 mul8s_compare::@11: scope:[mul8s_compare] from mul8s_compare::@10 [53] (byte*~) print_char_cursor#192 ← (byte*) print_line_cursor#1 @@ -109,18 +109,18 @@ mul8s_compare::@20: scope:[mul8s_compare] from mul8s_compare::@3 to:mul8s_compare::@4 print_ln: scope:[print_ln] from mul8s_compare::@16 mul8s_error::@10 mul8u_compare::@16 mul8u_error::@10 mulf_tables_cmp::@10 [58] (byte*) print_char_cursor#133 ← phi( mul8s_compare::@16/(byte*) print_char_cursor#132 mul8s_error::@10/(byte*) print_char_cursor#18 mul8u_compare::@16/(byte*) print_char_cursor#132 mul8u_error::@10/(byte*) print_char_cursor#18 mulf_tables_cmp::@10/(byte*) print_char_cursor#132 ) - [58] (byte*) print_line_cursor#45 ← phi( mul8s_compare::@16/(byte*) print_line_cursor#1 mul8s_error::@10/(byte*) print_line_cursor#1 mul8u_compare::@16/(byte*) print_line_cursor#10 mul8u_error::@10/(byte*) print_line_cursor#10 mulf_tables_cmp::@10/((byte*))(word/signed word/dword/signed dword) 1024 ) + [58] (byte*) print_line_cursor#45 ← phi( mul8s_compare::@16/(byte*) print_line_cursor#1 mul8s_error::@10/(byte*) print_line_cursor#1 mul8u_compare::@16/(byte*) print_line_cursor#10 mul8u_error::@10/(byte*) print_line_cursor#10 mulf_tables_cmp::@10/((byte*))(word/signed word/dword/signed dword) $400 ) to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [59] (byte*) print_line_cursor#23 ← phi( print_ln/(byte*) print_line_cursor#45 print_ln::@1/(byte*) print_line_cursor#1 ) - [60] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#23 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [60] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#23 + (byte/signed byte/word/signed word/dword/signed dword) $28 [61] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#133) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 [62] return to:@return print_str: scope:[print_str] from mul8s_compare::@11 mul8s_error mul8s_error::@2 mul8s_error::@4 mul8s_error::@6 mul8s_error::@8 mul8u_compare::@11 mul8u_error mul8u_error::@2 mul8u_error::@4 mul8u_error::@6 mul8u_error::@8 mulf_tables_cmp::@3 mulf_tables_cmp::@5 mulf_tables_cmp::@7 - [63] (byte*) print_char_cursor#152 ← phi( mul8s_compare::@11/(byte*~) print_char_cursor#192 mul8s_error/(byte*~) print_char_cursor#193 mul8s_error::@2/(byte*) print_char_cursor#18 mul8s_error::@4/(byte*) print_char_cursor#18 mul8s_error::@6/(byte*) print_char_cursor#18 mul8s_error::@8/(byte*) print_char_cursor#18 mul8u_compare::@11/(byte*) print_char_cursor#31 mul8u_error/(byte*) print_char_cursor#31 mul8u_error::@2/(byte*) print_char_cursor#18 mul8u_error::@4/(byte*) print_char_cursor#18 mul8u_error::@6/(byte*) print_char_cursor#18 mul8u_error::@8/(byte*) print_char_cursor#18 mulf_tables_cmp::@3/((byte*))(word/signed word/dword/signed dword) 1024 mulf_tables_cmp::@5/((byte*))(word/signed word/dword/signed dword) 1024 mulf_tables_cmp::@7/(byte*) print_char_cursor#18 ) + [63] (byte*) print_char_cursor#152 ← phi( mul8s_compare::@11/(byte*~) print_char_cursor#192 mul8s_error/(byte*~) print_char_cursor#193 mul8s_error::@2/(byte*) print_char_cursor#18 mul8s_error::@4/(byte*) print_char_cursor#18 mul8s_error::@6/(byte*) print_char_cursor#18 mul8s_error::@8/(byte*) print_char_cursor#18 mul8u_compare::@11/(byte*) print_char_cursor#31 mul8u_error/(byte*) print_char_cursor#31 mul8u_error::@2/(byte*) print_char_cursor#18 mul8u_error::@4/(byte*) print_char_cursor#18 mul8u_error::@6/(byte*) print_char_cursor#18 mul8u_error::@8/(byte*) print_char_cursor#18 mulf_tables_cmp::@3/((byte*))(word/signed word/dword/signed dword) $400 mulf_tables_cmp::@5/((byte*))(word/signed word/dword/signed dword) $400 mulf_tables_cmp::@7/(byte*) print_char_cursor#18 ) [63] (byte*) print_str::str#18 ← phi( mul8s_compare::@11/(const string) mul8s_compare::str mul8s_error/(const string) mul8s_error::str mul8s_error::@2/(const string) str1 mul8s_error::@4/(const string) str2 mul8s_error::@6/(const string) str3 mul8s_error::@8/(const string) str4 mul8u_compare::@11/(const string) mul8u_compare::str mul8u_error/(const string) mul8u_error::str mul8u_error::@2/(const string) str1 mul8u_error::@4/(const string) str2 mul8u_error::@6/(const string) str3 mul8u_error::@8/(const string) str4 mulf_tables_cmp::@3/(const string) mulf_tables_cmp::str mulf_tables_cmp::@5/(const string) mulf_tables_cmp::str2 mulf_tables_cmp::@7/(const string) mulf_tables_cmp::str1 ) to:print_str::@1 print_str::@1: scope:[print_str] from print_str print_str::@2 @@ -224,7 +224,7 @@ print_byte: scope:[print_byte] from mul8u_error::@1 mul8u_error::@3 print_sbyte [111] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [112] (byte~) print_byte::$2 ← (byte) print_byte::b#5 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [112] (byte~) print_byte::$2 ← (byte) print_byte::b#5 & (byte/signed byte/word/signed word/dword/signed dword) $f [113] (byte) print_char::ch#4 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [114] call print_char to:print_byte::@return @@ -564,8 +564,8 @@ mulf_tables_cmp: scope:[mulf_tables_cmp] from main::@3 [280] phi() to:mulf_tables_cmp::@1 mulf_tables_cmp::@1: scope:[mulf_tables_cmp] from mulf_tables_cmp mulf_tables_cmp::@2 - [281] (byte*) mulf_tables_cmp::asm_sqr#2 ← phi( mulf_tables_cmp/(const byte[512]) mula_sqr1_lo#0 mulf_tables_cmp::@2/(byte*) mulf_tables_cmp::asm_sqr#1 ) - [281] (byte*) mulf_tables_cmp::kc_sqr#2 ← phi( mulf_tables_cmp/(const byte[512]) mulf_sqr1_lo#0 mulf_tables_cmp::@2/(byte*) mulf_tables_cmp::kc_sqr#1 ) + [281] (byte*) mulf_tables_cmp::asm_sqr#2 ← phi( mulf_tables_cmp/(const byte[$200]) mula_sqr1_lo#0 mulf_tables_cmp::@2/(byte*) mulf_tables_cmp::asm_sqr#1 ) + [281] (byte*) mulf_tables_cmp::kc_sqr#2 ← phi( mulf_tables_cmp/(const byte[$200]) mulf_sqr1_lo#0 mulf_tables_cmp::@2/(byte*) mulf_tables_cmp::kc_sqr#1 ) [282] if(*((byte*) mulf_tables_cmp::kc_sqr#2)==*((byte*) mulf_tables_cmp::asm_sqr#2)) goto mulf_tables_cmp::@2 to:mulf_tables_cmp::@3 mulf_tables_cmp::@3: scope:[mulf_tables_cmp] from mulf_tables_cmp::@1 @@ -585,14 +585,14 @@ mulf_tables_cmp::@8: scope:[mulf_tables_cmp] from mulf_tables_cmp::@7 [290] call print_word to:mulf_tables_cmp::@return mulf_tables_cmp::@return: scope:[mulf_tables_cmp] from mulf_tables_cmp::@10 mulf_tables_cmp::@8 - [291] (byte*) print_line_cursor#10 ← phi( mulf_tables_cmp::@10/(byte*) print_line_cursor#1 mulf_tables_cmp::@8/((byte*))(word/signed word/dword/signed dword) 1024 ) + [291] (byte*) print_line_cursor#10 ← phi( mulf_tables_cmp::@10/(byte*) print_line_cursor#1 mulf_tables_cmp::@8/((byte*))(word/signed word/dword/signed dword) $400 ) [291] (byte*) print_char_cursor#31 ← phi( mulf_tables_cmp::@10/(byte*~) print_char_cursor#225 mulf_tables_cmp::@8/(byte*) print_char_cursor#18 ) [292] return to:@return mulf_tables_cmp::@2: scope:[mulf_tables_cmp] from mulf_tables_cmp::@1 [293] (byte*) mulf_tables_cmp::asm_sqr#1 ← ++ (byte*) mulf_tables_cmp::asm_sqr#2 [294] (byte*) mulf_tables_cmp::kc_sqr#1 ← ++ (byte*) mulf_tables_cmp::kc_sqr#2 - [295] if((byte*) mulf_tables_cmp::kc_sqr#1<(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512*(byte/signed byte/word/signed word/dword/signed dword) 4) goto mulf_tables_cmp::@1 + [295] if((byte*) mulf_tables_cmp::kc_sqr#1<(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200*(byte/signed byte/word/signed word/dword/signed dword) 4) goto mulf_tables_cmp::@1 to:mulf_tables_cmp::@5 mulf_tables_cmp::@5: scope:[mulf_tables_cmp] from mulf_tables_cmp::@2 [296] phi() @@ -605,10 +605,10 @@ mulf_tables_cmp::@10: scope:[mulf_tables_cmp] from mulf_tables_cmp::@5 to:mulf_tables_cmp::@return mulf_init_asm: scope:[mulf_init_asm] from main::@2 asm { ldx#$00 txa .byte$c9 lb1: tya adc#$00 ml1: stamula_sqr1_hi,x tay cmp#$40 txa ror ml9: adc#$00 staml9+1 inx ml0: stamula_sqr1_lo,x bnelb1 incml0+2 incml1+2 clc iny bnelb1 ldx#$00 ldy#$ff !: ldamula_sqr1_hi+1,x stamula_sqr2_hi+$100,x ldamula_sqr1_hi,x stamula_sqr2_hi,y ldamula_sqr1_lo+1,x stamula_sqr2_lo+$100,x ldamula_sqr1_lo,x stamula_sqr2_lo,y dey inx bne!- } - [302] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr1_lo#0) - [303] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr1_hi#0) - [304] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr2_lo#0) - [305] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr2_hi#0) + [302] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr1_lo#0) + [303] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr1_hi#0) + [304] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr2_lo#0) + [305] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr2_hi#0) to:mulf_init_asm::@return mulf_init_asm::@return: scope:[mulf_init_asm] from mulf_init_asm [306] return @@ -618,8 +618,8 @@ mulf_init: scope:[mulf_init] from main::@1 to:mulf_init::@1 mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@2 [308] (byte) mulf_init::x_2#3 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::x_2#2 ) - [308] (byte*) mulf_init::sqr1_hi#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_hi#1 ) - [308] (byte*) mulf_init::sqr1_lo#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_lo#1 ) + [308] (byte*) mulf_init::sqr1_hi#2 ← phi( mulf_init/(const byte[$200]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_hi#1 ) + [308] (byte*) mulf_init::sqr1_lo#2 ← phi( mulf_init/(const byte[$200]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_lo#1 ) [308] (word) mulf_init::sqr#4 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(word) mulf_init::sqr#1 ) [308] (byte) mulf_init::c#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::c#1 ) [309] (byte) mulf_init::c#1 ← ++ (byte) mulf_init::c#2 @@ -640,15 +640,15 @@ mulf_init::@2: scope:[mulf_init] from mulf_init::@1 mulf_init::@5 [319] (byte*) mulf_init::sqr1_hi#1 ← ++ (byte*) mulf_init::sqr1_hi#2 [320] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [321] (byte*) mulf_init::sqr1_lo#1 ← ++ (byte*) mulf_init::sqr1_lo#2 - [322] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 + [322] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 to:mulf_init::@3 mulf_init::@3: scope:[mulf_init] from mulf_init::@2 mulf_init::@4 - [323] (byte) mulf_init::dir#2 ← phi( mulf_init::@4/(byte) mulf_init::dir#3 mulf_init::@2/(byte/word/signed word/dword/signed dword) 255 ) - [323] (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_hi#1 mulf_init::@2/(const byte[512]) mulf_sqr2_hi#0 ) - [323] (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_lo#1 mulf_init::@2/(const byte[512]) mulf_sqr2_lo#0 ) + [323] (byte) mulf_init::dir#2 ← phi( mulf_init::@4/(byte) mulf_init::dir#3 mulf_init::@2/(byte/word/signed word/dword/signed dword) $ff ) + [323] (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_hi#1 mulf_init::@2/(const byte[$200]) mulf_sqr2_hi#0 ) + [323] (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_lo#1 mulf_init::@2/(const byte[$200]) mulf_sqr2_lo#0 ) [323] (byte) mulf_init::x_255#2 ← phi( mulf_init::@4/(byte) mulf_init::x_255#1 mulf_init::@2/((byte))-(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [324] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) - [325] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) + [324] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) + [325] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [326] (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 [327] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [328] if((byte) mulf_init::x_255#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@12 @@ -656,11 +656,11 @@ mulf_init::@3: scope:[mulf_init] from mulf_init::@2 mulf_init::@4 mulf_init::@4: scope:[mulf_init] from mulf_init::@12 mulf_init::@3 [329] (byte) mulf_init::dir#3 ← phi( mulf_init::@12/(byte) mulf_init::dir#2 mulf_init::@3/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [330] (byte*) mulf_init::sqr2_lo#1 ← ++ (byte*) mulf_init::sqr2_lo#2 - [331] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 + [331] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 to:mulf_init::@8 mulf_init::@8: scope:[mulf_init] from mulf_init::@4 - [332] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) - [333] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) + [332] *((const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100) + [333] *((const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100) to:mulf_init::@return mulf_init::@return: scope:[mulf_init] from mulf_init::@8 [334] return @@ -672,10 +672,10 @@ print_cls: scope:[print_cls] from main [336] phi() to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 - [337] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) 1024 print_cls::@1/(byte*) print_cls::sc#1 ) + [337] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) $400 print_cls::@1/(byte*) print_cls::sc#1 ) [338] *((byte*) print_cls::sc#2) ← (byte) ' ' [339] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [340] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [340] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [341] return diff --git a/src/test/ref/test-multiply-8bit.log b/src/test/ref/test-multiply-8bit.log index 7524de713..0abc3ea5c 100644 --- a/src/test/ref/test-multiply-8bit.log +++ b/src/test/ref/test-multiply-8bit.log @@ -2,7 +2,7 @@ Inlined call call mulf8s_prepare (signed byte) mulf8s::a CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 to:@12 @@ -35,7 +35,7 @@ print_ln: scope:[print_ln] from mul8s_compare::@16 mul8s_error::@10 mul8u_compa print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 (byte*) print_char_cursor#69 ← phi( print_ln/(byte*) print_char_cursor#133 print_ln::@1/(byte*) print_char_cursor#69 ) (byte*) print_line_cursor#23 ← phi( print_ln/(byte*) print_line_cursor#45 print_ln::@1/(byte*) print_line_cursor#1 ) - (byte*~) print_ln::$0 ← (byte*) print_line_cursor#23 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) print_ln::$0 ← (byte*) print_line_cursor#23 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) print_line_cursor#1 ← (byte*~) print_ln::$0 (bool~) print_ln::$1 ← (byte*) print_line_cursor#1 < (byte*) print_char_cursor#69 if((bool~) print_ln::$1) goto print_ln::@1 @@ -174,7 +174,7 @@ print_byte::@1: scope:[print_byte] from print_byte (byte) print_byte::b#6 ← phi( print_byte/(byte) print_byte::b#5 ) (byte*) print_char_cursor#81 ← phi( print_byte/(byte*) print_char_cursor#19 ) (byte*) print_char_cursor#15 ← (byte*) print_char_cursor#81 - (byte~) print_byte::$2 ← (byte) print_byte::b#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) print_byte::$2 ← (byte) print_byte::b#6 & (byte/signed byte/word/signed word/dword/signed dword) $f (byte) print_char::ch#4 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$2) call print_char to:print_byte::@2 @@ -207,7 +207,7 @@ print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 (byte*) print_cls::sc#2 ← phi( print_cls/(byte*) print_cls::sc#0 print_cls::@1/(byte*) print_cls::sc#1 ) *((byte*) print_cls::sc#2) ← (byte) ' ' (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) 1000 + (byte*~) print_cls::$0 ← (byte*) print_screen#2 + (word/signed word/dword/signed dword) $3e8 (bool~) print_cls::$1 ← (byte*) print_cls::sc#1 != (byte*~) print_cls::$0 if((bool~) print_cls::$1) goto print_cls::@1 to:print_cls::@2 @@ -331,18 +331,18 @@ mul8s::@return: scope:[mul8s] from mul8s::@2 (byte*) print_screen#8 ← phi( @12/(byte*) print_screen#9 ) (byte*) print_char_cursor#171 ← phi( @12/(byte*) print_char_cursor#176 ) (byte*) print_line_cursor#78 ← phi( @12/(byte*) print_line_cursor#89 ) - (byte[512]) mulf_sqr1_lo#0 ← { fill( 512, 0) } - (byte[512]) mulf_sqr1_hi#0 ← { fill( 512, 0) } - (byte[512]) mulf_sqr2_lo#0 ← { fill( 512, 0) } - (byte[512]) mulf_sqr2_hi#0 ← { fill( 512, 0) } + (byte[$200]) mulf_sqr1_lo#0 ← { fill( $200, 0) } + (byte[$200]) mulf_sqr1_hi#0 ← { fill( $200, 0) } + (byte[$200]) mulf_sqr2_lo#0 ← { fill( $200, 0) } + (byte[$200]) mulf_sqr2_hi#0 ← { fill( $200, 0) } to:@33 mulf_init: scope:[mulf_init] from main::@1 (word) mulf_init::sqr#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) mulf_init::x_2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) mulf_init::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte*~) mulf_init::$0 ← (byte[512]) mulf_sqr1_hi#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte*~) mulf_init::$0 ← (byte[$200]) mulf_sqr1_hi#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) mulf_init::sqr1_hi#0 ← (byte*~) mulf_init::$0 - (byte*~) mulf_init::$1 ← (byte[512]) mulf_sqr1_lo#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte*~) mulf_init::$1 ← (byte[$200]) mulf_sqr1_lo#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) mulf_init::sqr1_lo#0 ← (byte*~) mulf_init::$1 to:mulf_init::@1 mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@2 @@ -371,7 +371,7 @@ mulf_init::@2: scope:[mulf_init] from mulf_init::@1 mulf_init::@5 (word~) mulf_init::$7 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 (word) mulf_init::sqr#1 ← (word~) mulf_init::$7 (byte*) mulf_init::sqr1_lo#1 ← ++ (byte*) mulf_init::sqr1_lo#2 - (byte*~) mulf_init::$8 ← (byte[512]) mulf_sqr1_lo#0 + (word/signed word/dword/signed dword) 512 + (byte*~) mulf_init::$8 ← (byte[$200]) mulf_sqr1_lo#0 + (word/signed word/dword/signed dword) $200 (bool~) mulf_init::$9 ← (byte*) mulf_init::sqr1_lo#1 != (byte*~) mulf_init::$8 if((bool~) mulf_init::$9) goto mulf_init::@1 to:mulf_init::@6 @@ -388,17 +388,17 @@ mulf_init::@6: scope:[mulf_init] from mulf_init::@2 (signed byte/signed word/signed dword~) mulf_init::$10 ← - (byte/signed byte/word/signed word/dword/signed dword) 1 (byte~) mulf_init::$11 ← ((byte)) (signed byte/signed word/signed dword~) mulf_init::$10 (byte) mulf_init::x_255#0 ← (byte~) mulf_init::$11 - (byte) mulf_init::dir#0 ← (byte/word/signed word/dword/signed dword) 255 - (byte*) mulf_init::sqr2_hi#0 ← (byte[512]) mulf_sqr2_hi#0 - (byte*) mulf_init::sqr2_lo#0 ← (byte[512]) mulf_sqr2_lo#0 + (byte) mulf_init::dir#0 ← (byte/word/signed word/dword/signed dword) $ff + (byte*) mulf_init::sqr2_hi#0 ← (byte[$200]) mulf_sqr2_hi#0 + (byte*) mulf_init::sqr2_lo#0 ← (byte[$200]) mulf_sqr2_lo#0 to:mulf_init::@3 mulf_init::@3: scope:[mulf_init] from mulf_init::@4 mulf_init::@6 (byte) mulf_init::dir#2 ← phi( mulf_init::@4/(byte) mulf_init::dir#3 mulf_init::@6/(byte) mulf_init::dir#0 ) (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_hi#3 mulf_init::@6/(byte*) mulf_init::sqr2_hi#0 ) (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_lo#1 mulf_init::@6/(byte*) mulf_init::sqr2_lo#0 ) (byte) mulf_init::x_255#2 ← phi( mulf_init::@4/(byte) mulf_init::x_255#3 mulf_init::@6/(byte) mulf_init::x_255#0 ) - *((byte*) mulf_init::sqr2_lo#2) ← *((byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) - *((byte*) mulf_init::sqr2_hi#2) ← *((byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) + *((byte*) mulf_init::sqr2_lo#2) ← *((byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) + *((byte*) mulf_init::sqr2_hi#2) ← *((byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 (byte~) mulf_init::$12 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 (byte) mulf_init::x_255#1 ← (byte~) mulf_init::$12 @@ -412,7 +412,7 @@ mulf_init::@4: scope:[mulf_init] from mulf_init::@3 mulf_init::@7 (byte) mulf_init::x_255#3 ← phi( mulf_init::@3/(byte) mulf_init::x_255#1 mulf_init::@7/(byte) mulf_init::x_255#4 ) (byte*) mulf_init::sqr2_lo#3 ← phi( mulf_init::@3/(byte*) mulf_init::sqr2_lo#2 mulf_init::@7/(byte*) mulf_init::sqr2_lo#4 ) (byte*) mulf_init::sqr2_lo#1 ← ++ (byte*) mulf_init::sqr2_lo#3 - (byte*~) mulf_init::$15 ← (byte[512]) mulf_sqr2_lo#0 + (word/signed word/dword/signed dword) 511 + (byte*~) mulf_init::$15 ← (byte[$200]) mulf_sqr2_lo#0 + (word/signed word/dword/signed dword) $1ff (bool~) mulf_init::$16 ← (byte*) mulf_init::sqr2_lo#1 != (byte*~) mulf_init::$15 if((bool~) mulf_init::$16) goto mulf_init::@3 to:mulf_init::@8 @@ -423,11 +423,11 @@ mulf_init::@7: scope:[mulf_init] from mulf_init::@3 (byte) mulf_init::dir#1 ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:mulf_init::@4 mulf_init::@8: scope:[mulf_init] from mulf_init::@4 - (byte*~) mulf_init::$17 ← (byte[512]) mulf_sqr2_lo#0 + (word/signed word/dword/signed dword) 511 - (byte*~) mulf_init::$18 ← (byte[512]) mulf_sqr1_lo#0 + (word/signed word/dword/signed dword) 256 + (byte*~) mulf_init::$17 ← (byte[$200]) mulf_sqr2_lo#0 + (word/signed word/dword/signed dword) $1ff + (byte*~) mulf_init::$18 ← (byte[$200]) mulf_sqr1_lo#0 + (word/signed word/dword/signed dword) $100 *((byte*~) mulf_init::$17) ← *((byte*~) mulf_init::$18) - (byte*~) mulf_init::$19 ← (byte[512]) mulf_sqr2_hi#0 + (word/signed word/dword/signed dword) 511 - (byte*~) mulf_init::$20 ← (byte[512]) mulf_sqr1_hi#0 + (word/signed word/dword/signed dword) 256 + (byte*~) mulf_init::$19 ← (byte[$200]) mulf_sqr2_hi#0 + (word/signed word/dword/signed dword) $1ff + (byte*~) mulf_init::$20 ← (byte[$200]) mulf_sqr1_hi#0 + (word/signed word/dword/signed dword) $100 *((byte*~) mulf_init::$19) ← *((byte*~) mulf_init::$20) to:mulf_init::@return mulf_init::@return: scope:[mulf_init] from mulf_init::@8 @@ -435,7 +435,7 @@ mulf_init::@return: scope:[mulf_init] from mulf_init::@8 to:@return mulf8u_prepare: scope:[mulf8u_prepare] from mulf8s::mulf8s_prepare1 mulf8u (byte) mulf8u_prepare::a#2 ← phi( mulf8s::mulf8s_prepare1/(byte) mulf8u_prepare::a#1 mulf8u/(byte) mulf8u_prepare::a#0 ) - (byte*) mulf8u_prepare::memA#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) 253 + (byte*) mulf8u_prepare::memA#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) $fd *((byte*) mulf8u_prepare::memA#0) ← (byte) mulf8u_prepare::a#2 asm { ldamemA stamulf8u_prepared.sm1+1 stamulf8u_prepared.sm3+1 eor#$ff stamulf8u_prepared.sm2+1 stamulf8u_prepared.sm4+1 } to:mulf8u_prepare::@return @@ -444,8 +444,8 @@ mulf8u_prepare::@return: scope:[mulf8u_prepare] from mulf8u_prepare to:@return mulf8u_prepared: scope:[mulf8u_prepared] from mulf8s_prepared mulf8u::@2 (byte) mulf8u_prepared::b#2 ← phi( mulf8s_prepared/(byte) mulf8u_prepared::b#1 mulf8u::@2/(byte) mulf8u_prepared::b#0 ) - (byte*) mulf8u_prepared::resL#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) 254 - (byte*) mulf8u_prepared::memB#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) 255 + (byte*) mulf8u_prepared::resL#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) $fe + (byte*) mulf8u_prepared::memB#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) $ff *((byte*) mulf8u_prepared::memB#0) ← (byte) mulf8u_prepared::b#2 asm { ldxmemB sec sm1: ldamulf_sqr1_lo,x sm2: sbcmulf_sqr2_lo,x staresL sm3: ldamulf_sqr1_hi,x sm4: sbcmulf_sqr2_hi,x stamemB } (word) mulf8u_prepared::return#0 ← { *((byte*) mulf8u_prepared::memB#0), *((byte*) mulf8u_prepared::resL#0) } @@ -479,7 +479,7 @@ mulf8u::@return: scope:[mulf8u] from mulf8u::@3 to:@return mulf8s_prepared: scope:[mulf8s_prepared] from mulf8s::@2 (signed byte) mulf8s_prepared::b#1 ← phi( mulf8s::@2/(signed byte) mulf8s_prepared::b#0 ) - (signed byte*) mulf8s_prepared::memA#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) 253 + (signed byte*) mulf8s_prepared::memA#0 ← ((signed byte*)) (byte/word/signed word/dword/signed dword) $fd (byte~) mulf8s_prepared::$0 ← ((byte)) (signed byte) mulf8s_prepared::b#1 (byte) mulf8u_prepared::b#1 ← (byte~) mulf8s_prepared::$0 call mulf8u_prepared @@ -563,7 +563,7 @@ mulf8s::@return: scope:[mulf8s] from mulf8s::@4 (byte*) print_screen#7 ← phi( @24/(byte*) print_screen#8 ) (byte*) print_char_cursor#163 ← phi( @24/(byte*) print_char_cursor#171 ) (byte*) print_line_cursor#67 ← phi( @24/(byte*) print_line_cursor#78 ) - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 to:@36 main: scope:[main] from @42 (byte*) print_char_cursor#141 ← phi( @42/(byte*) print_char_cursor#151 ) @@ -722,18 +722,18 @@ muls8s::@return: scope:[muls8s] from muls8s::@4 (byte*) print_char_cursor#162 ← phi( @33/(byte*) print_char_cursor#163 ) (byte*) print_line_cursor#66 ← phi( @33/(byte*) print_line_cursor#67 ) (byte*) BGCOL#15 ← phi( @33/(byte*) BGCOL#0 ) - (byte[512]) mula_sqr1_lo#0 ← { fill( 512, 0) } - (byte[512]) mula_sqr1_hi#0 ← { fill( 512, 0) } - (byte[512]) mula_sqr2_lo#0 ← { fill( 512, 0) } - (byte[512]) mula_sqr2_hi#0 ← { fill( 512, 0) } + (byte[$200]) mula_sqr1_lo#0 ← { fill( $200, 0) } + (byte[$200]) mula_sqr1_hi#0 ← { fill( $200, 0) } + (byte[$200]) mula_sqr2_lo#0 ← { fill( $200, 0) } + (byte[$200]) mula_sqr2_hi#0 ← { fill( $200, 0) } to:@42 mulf_init_asm: scope:[mulf_init_asm] from main::@2 asm { ldx#$00 txa .byte$c9 lb1: tya adc#$00 ml1: stamula_sqr1_hi,x tay cmp#$40 txa ror ml9: adc#$00 staml9+1 inx ml0: stamula_sqr1_lo,x bnelb1 incml0+2 incml1+2 clc iny bnelb1 ldx#$00 ldy#$ff !: ldamula_sqr1_hi+1,x stamula_sqr2_hi+$100,x ldamula_sqr1_hi,x stamula_sqr2_hi,y ldamula_sqr1_lo+1,x stamula_sqr2_lo+$100,x ldamula_sqr1_lo,x stamula_sqr2_lo,y dey inx bne!- } - (byte*) mulf_init_asm::mem#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) 255 - *((byte*) mulf_init_asm::mem#0) ← *((byte[512]) mula_sqr1_lo#0) - *((byte*) mulf_init_asm::mem#0) ← *((byte[512]) mula_sqr1_hi#0) - *((byte*) mulf_init_asm::mem#0) ← *((byte[512]) mula_sqr2_lo#0) - *((byte*) mulf_init_asm::mem#0) ← *((byte[512]) mula_sqr2_hi#0) + (byte*) mulf_init_asm::mem#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) $ff + *((byte*) mulf_init_asm::mem#0) ← *((byte[$200]) mula_sqr1_lo#0) + *((byte*) mulf_init_asm::mem#0) ← *((byte[$200]) mula_sqr1_hi#0) + *((byte*) mulf_init_asm::mem#0) ← *((byte[$200]) mula_sqr2_lo#0) + *((byte*) mulf_init_asm::mem#0) ← *((byte[$200]) mula_sqr2_hi#0) to:mulf_init_asm::@return mulf_init_asm::@return: scope:[mulf_init_asm] from mulf_init_asm return @@ -742,8 +742,8 @@ mulf_tables_cmp: scope:[mulf_tables_cmp] from main::@3 (byte*) print_line_cursor#90 ← phi( main::@3/(byte*) print_line_cursor#47 ) (byte*) print_char_cursor#164 ← phi( main::@3/(byte*) print_char_cursor#142 ) (byte*) BGCOL#9 ← phi( main::@3/(byte*) BGCOL#16 ) - (byte*) mulf_tables_cmp::asm_sqr#0 ← (byte[512]) mula_sqr1_lo#0 - (byte*) mulf_tables_cmp::kc_sqr#0 ← (byte[512]) mulf_sqr1_lo#0 + (byte*) mulf_tables_cmp::asm_sqr#0 ← (byte[$200]) mula_sqr1_lo#0 + (byte*) mulf_tables_cmp::kc_sqr#0 ← (byte[$200]) mulf_sqr1_lo#0 to:mulf_tables_cmp::@1 mulf_tables_cmp::@1: scope:[mulf_tables_cmp] from mulf_tables_cmp mulf_tables_cmp::@2 (byte*) print_line_cursor#79 ← phi( mulf_tables_cmp/(byte*) print_line_cursor#90 mulf_tables_cmp::@2/(byte*) print_line_cursor#69 ) @@ -763,8 +763,8 @@ mulf_tables_cmp::@2: scope:[mulf_tables_cmp] from mulf_tables_cmp::@1 (byte*) mulf_tables_cmp::asm_sqr#3 ← phi( mulf_tables_cmp::@1/(byte*) mulf_tables_cmp::asm_sqr#2 ) (byte*) mulf_tables_cmp::asm_sqr#1 ← ++ (byte*) mulf_tables_cmp::asm_sqr#3 (byte*) mulf_tables_cmp::kc_sqr#1 ← ++ (byte*) mulf_tables_cmp::kc_sqr#3 - (word/signed word/dword/signed dword~) mulf_tables_cmp::$8 ← (word/signed word/dword/signed dword) 512 * (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte*~) mulf_tables_cmp::$9 ← (byte[512]) mulf_sqr1_lo#0 + (word/signed word/dword/signed dword~) mulf_tables_cmp::$8 + (word/signed word/dword/signed dword~) mulf_tables_cmp::$8 ← (word/signed word/dword/signed dword) $200 * (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte*~) mulf_tables_cmp::$9 ← (byte[$200]) mulf_sqr1_lo#0 + (word/signed word/dword/signed dword~) mulf_tables_cmp::$8 (bool~) mulf_tables_cmp::$10 ← (byte*) mulf_tables_cmp::kc_sqr#1 < (byte*~) mulf_tables_cmp::$9 if((bool~) mulf_tables_cmp::$10) goto mulf_tables_cmp::@1 to:mulf_tables_cmp::@5 @@ -960,8 +960,8 @@ mul8u_compare::@5: scope:[mul8u_compare] from mul8u_compare::@4 (byte*) print_char_cursor#167 ← phi( mul8u_compare::@4/(byte*) print_char_cursor#158 ) (byte) mul8u_compare::a#8 ← phi( mul8u_compare::@4/(byte) mul8u_compare::a#9 ) (byte) mul8u_compare::b#5 ← phi( mul8u_compare::@4/(byte) mul8u_compare::b#7 ) - (byte) mul8u_compare::b#1 ← (byte) mul8u_compare::b#5 + rangenext(0,255) - (bool~) mul8u_compare::$10 ← (byte) mul8u_compare::b#1 != rangelast(0,255) + (byte) mul8u_compare::b#1 ← (byte) mul8u_compare::b#5 + rangenext(0,$ff) + (bool~) mul8u_compare::$10 ← (byte) mul8u_compare::b#1 != rangelast(0,$ff) if((bool~) mul8u_compare::$10) goto mul8u_compare::@2 to:mul8u_compare::@10 mul8u_compare::@8: scope:[mul8u_compare] from mul8u_compare::@4 @@ -999,8 +999,8 @@ mul8u_compare::@10: scope:[mul8u_compare] from mul8u_compare::@5 (byte*) print_line_cursor#72 ← phi( mul8u_compare::@5/(byte*) print_line_cursor#83 ) (byte*) print_char_cursor#159 ← phi( mul8u_compare::@5/(byte*) print_char_cursor#167 ) (byte) mul8u_compare::a#6 ← phi( mul8u_compare::@5/(byte) mul8u_compare::a#8 ) - (byte) mul8u_compare::a#1 ← (byte) mul8u_compare::a#6 + rangenext(0,255) - (bool~) mul8u_compare::$11 ← (byte) mul8u_compare::a#1 != rangelast(0,255) + (byte) mul8u_compare::a#1 ← (byte) mul8u_compare::a#6 + rangenext(0,$ff) + (bool~) mul8u_compare::$11 ← (byte) mul8u_compare::a#1 != rangelast(0,$ff) if((bool~) mul8u_compare::$11) goto mul8u_compare::@1 to:mul8u_compare::@11 mul8u_compare::@11: scope:[mul8u_compare] from mul8u_compare::@10 @@ -1143,7 +1143,7 @@ mul8s_compare: scope:[mul8s_compare] from main::@5 (byte*) print_line_cursor#110 ← phi( main::@5/(byte*) print_line_cursor#7 ) (byte*) print_char_cursor#186 ← phi( main::@5/(byte*) print_char_cursor#24 ) (byte*) BGCOL#35 ← phi( main::@5/(byte*) BGCOL#38 ) - (signed byte/signed word/signed dword~) mul8s_compare::$0 ← - (byte/word/signed word/dword/signed dword) 128 + (signed byte/signed word/signed dword~) mul8s_compare::$0 ← - (byte/word/signed word/dword/signed dword) $80 (signed byte) mul8s_compare::a#0 ← (signed byte/signed word/signed dword~) mul8s_compare::$0 to:mul8s_compare::@1 mul8s_compare::@1: scope:[mul8s_compare] from mul8s_compare mul8s_compare::@10 @@ -1151,7 +1151,7 @@ mul8s_compare::@1: scope:[mul8s_compare] from mul8s_compare mul8s_compare::@10 (byte*) print_char_cursor#184 ← phi( mul8s_compare/(byte*) print_char_cursor#186 mul8s_compare::@10/(byte*) print_char_cursor#161 ) (byte*) BGCOL#31 ← phi( mul8s_compare/(byte*) BGCOL#35 mul8s_compare::@10/(byte*) BGCOL#36 ) (signed byte) mul8s_compare::a#7 ← phi( mul8s_compare/(signed byte) mul8s_compare::a#0 mul8s_compare::@10/(signed byte) mul8s_compare::a#1 ) - (signed byte/signed word/signed dword~) mul8s_compare::$1 ← - (byte/word/signed word/dword/signed dword) 128 + (signed byte/signed word/signed dword~) mul8s_compare::$1 ← - (byte/word/signed word/dword/signed dword) $80 (signed byte) mul8s_compare::b#0 ← (signed byte/signed word/signed dword~) mul8s_compare::$1 to:mul8s_compare::@2 mul8s_compare::@2: scope:[mul8s_compare] from mul8s_compare::@1 mul8s_compare::@5 @@ -1267,7 +1267,7 @@ mul8s_compare::@5: scope:[mul8s_compare] from mul8s_compare::@4 (signed byte) mul8s_compare::a#8 ← phi( mul8s_compare::@4/(signed byte) mul8s_compare::a#9 ) (signed byte) mul8s_compare::b#5 ← phi( mul8s_compare::@4/(signed byte) mul8s_compare::b#7 ) (signed byte) mul8s_compare::b#1 ← ++ (signed byte) mul8s_compare::b#5 - (signed byte/signed word/signed dword~) mul8s_compare::$12 ← - (byte/word/signed word/dword/signed dword) 128 + (signed byte/signed word/signed dword~) mul8s_compare::$12 ← - (byte/word/signed word/dword/signed dword) $80 (bool~) mul8s_compare::$13 ← (signed byte) mul8s_compare::b#1 != (signed byte/signed word/signed dword~) mul8s_compare::$12 if((bool~) mul8s_compare::$13) goto mul8s_compare::@2 to:mul8s_compare::@10 @@ -1307,7 +1307,7 @@ mul8s_compare::@10: scope:[mul8s_compare] from mul8s_compare::@5 (byte*) print_char_cursor#161 ← phi( mul8s_compare::@5/(byte*) print_char_cursor#170 ) (signed byte) mul8s_compare::a#6 ← phi( mul8s_compare::@5/(signed byte) mul8s_compare::a#8 ) (signed byte) mul8s_compare::a#1 ← ++ (signed byte) mul8s_compare::a#6 - (signed byte/signed word/signed dword~) mul8s_compare::$14 ← - (byte/word/signed word/dword/signed dword) 128 + (signed byte/signed word/signed dword~) mul8s_compare::$14 ← - (byte/word/signed word/dword/signed dword) $80 (bool~) mul8s_compare::$15 ← (signed byte) mul8s_compare::a#1 != (signed byte/signed word/signed dword~) mul8s_compare::$14 if((bool~) mul8s_compare::$15) goto mul8s_compare::@1 to:mul8s_compare::@11 @@ -1916,14 +1916,14 @@ SYMBOL TABLE SSA (const string) mul8u_error::str2 = (string) " slow:@" (const string) mul8u_error::str3 = (string) " / normal:@" (const string) mul8u_error::str4 = (string) " / fast:@" -(byte[512]) mula_sqr1_hi -(byte[512]) mula_sqr1_hi#0 -(byte[512]) mula_sqr1_lo -(byte[512]) mula_sqr1_lo#0 -(byte[512]) mula_sqr2_hi -(byte[512]) mula_sqr2_hi#0 -(byte[512]) mula_sqr2_lo -(byte[512]) mula_sqr2_lo#0 +(byte[$200]) mula_sqr1_hi +(byte[$200]) mula_sqr1_hi#0 +(byte[$200]) mula_sqr1_lo +(byte[$200]) mula_sqr1_lo#0 +(byte[$200]) mula_sqr2_hi +(byte[$200]) mula_sqr2_hi#0 +(byte[$200]) mula_sqr2_lo +(byte[$200]) mula_sqr2_lo#0 (signed word()) mulf8s((signed byte) mulf8s::a , (signed byte) mulf8s::b) (signed word~) mulf8s::$1 (label) mulf8s::@2 @@ -2128,14 +2128,14 @@ SYMBOL TABLE SSA (label) mulf_init_asm::@return (byte*) mulf_init_asm::mem (byte*) mulf_init_asm::mem#0 -(byte[512]) mulf_sqr1_hi -(byte[512]) mulf_sqr1_hi#0 -(byte[512]) mulf_sqr1_lo -(byte[512]) mulf_sqr1_lo#0 -(byte[512]) mulf_sqr2_hi -(byte[512]) mulf_sqr2_hi#0 -(byte[512]) mulf_sqr2_lo -(byte[512]) mulf_sqr2_lo#0 +(byte[$200]) mulf_sqr1_hi +(byte[$200]) mulf_sqr1_hi#0 +(byte[$200]) mulf_sqr1_lo +(byte[$200]) mulf_sqr1_lo#0 +(byte[$200]) mulf_sqr2_hi +(byte[$200]) mulf_sqr2_hi#0 +(byte[$200]) mulf_sqr2_lo +(byte[$200]) mulf_sqr2_lo#0 (void()) mulf_tables_cmp() (bool~) mulf_tables_cmp::$0 (bool~) mulf_tables_cmp::$1 @@ -3142,46 +3142,46 @@ Simple Condition (bool~) mulf_tables_cmp::$10 [421] if((byte*) mulf_tables_cmp:: Simple Condition (bool~) mul8u_compare::$4 [484] if((word) mul8u_compare::ms#0==(word) mul8u_compare::mf#0) goto mul8u_compare::@3 Simple Condition (bool~) mul8u_compare::$6 [488] if((word) mul8u_compare::ms#0==(word) mul8u_compare::mn#0) goto mul8u_compare::@4 Simple Condition (bool~) mul8u_compare::$8 [494] if((byte) mul8u_compare::ok#3!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u_compare::@5 -Simple Condition (bool~) mul8u_compare::$10 [500] if((byte) mul8u_compare::b#1!=rangelast(0,255)) goto mul8u_compare::@2 -Simple Condition (bool~) mul8u_compare::$11 [519] if((byte) mul8u_compare::a#1!=rangelast(0,255)) goto mul8u_compare::@1 +Simple Condition (bool~) mul8u_compare::$10 [500] if((byte) mul8u_compare::b#1!=rangelast(0,$ff)) goto mul8u_compare::@2 +Simple Condition (bool~) mul8u_compare::$11 [519] if((byte) mul8u_compare::a#1!=rangelast(0,$ff)) goto mul8u_compare::@1 Simple Condition (bool~) mul8s_compare::$6 [609] if((signed word) mul8s_compare::ms#0==(signed word) mul8s_compare::mf#0) goto mul8s_compare::@3 Simple Condition (bool~) mul8s_compare::$8 [613] if((signed word) mul8s_compare::ms#0==(signed word) mul8s_compare::mn#0) goto mul8s_compare::@4 Simple Condition (bool~) mul8s_compare::$10 [619] if((byte) mul8s_compare::ok#3!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8s_compare::@5 Simple Condition (bool~) mul8s_compare::$13 [626] if((signed byte) mul8s_compare::b#1!=(signed byte/signed word/signed dword~) mul8s_compare::$12) goto mul8s_compare::@2 Simple Condition (bool~) mul8s_compare::$15 [646] if((signed byte) mul8s_compare::a#1!=(signed byte/signed word/signed dword~) mul8s_compare::$14) goto mul8s_compare::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) print_line_cursor#0 = ((byte*))1024 +Constant (const byte*) print_line_cursor#0 = ((byte*))$400 Constant (const byte) print_char::ch#0 = '-' Constant (const byte) print_char::ch#1 = '-' Constant (const byte) print_char::ch#2 = ' ' Constant (const byte[]) print_hextab#0 = $0 Constant (const word) mul8u::res#0 = 0 -Constant (const byte[512]) mulf_sqr1_lo#0 = { fill( 512, 0) } -Constant (const byte[512]) mulf_sqr1_hi#0 = { fill( 512, 0) } -Constant (const byte[512]) mulf_sqr2_lo#0 = { fill( 512, 0) } -Constant (const byte[512]) mulf_sqr2_hi#0 = { fill( 512, 0) } +Constant (const byte[$200]) mulf_sqr1_lo#0 = { fill( $200, 0) } +Constant (const byte[$200]) mulf_sqr1_hi#0 = { fill( $200, 0) } +Constant (const byte[$200]) mulf_sqr2_lo#0 = { fill( $200, 0) } +Constant (const byte[$200]) mulf_sqr2_hi#0 = { fill( $200, 0) } Constant (const word) mulf_init::sqr#0 = 0 Constant (const byte) mulf_init::x_2#0 = 0 Constant (const byte) mulf_init::c#0 = 0 Constant (const signed byte/signed word/signed dword) mulf_init::$10 = -1 -Constant (const byte) mulf_init::dir#0 = 255 +Constant (const byte) mulf_init::dir#0 = $ff Constant (const byte) mulf_init::dir#1 = 1 -Constant (const byte*) mulf8u_prepare::memA#0 = ((byte*))253 -Constant (const byte*) mulf8u_prepared::resL#0 = ((byte*))254 -Constant (const byte*) mulf8u_prepared::memB#0 = ((byte*))255 -Constant (const signed byte*) mulf8s_prepared::memA#0 = ((signed byte*))253 -Constant (const byte*) BGCOL#0 = ((byte*))53281 +Constant (const byte*) mulf8u_prepare::memA#0 = ((byte*))$fd +Constant (const byte*) mulf8u_prepared::resL#0 = ((byte*))$fe +Constant (const byte*) mulf8u_prepared::memB#0 = ((byte*))$ff +Constant (const signed byte*) mulf8s_prepared::memA#0 = ((signed byte*))$fd +Constant (const byte*) BGCOL#0 = ((byte*))$d021 Constant (const word) muls8u::m#0 = 0 Constant (const byte) muls8u::i#0 = 0 Constant (const signed word) muls8s::m#0 = 0 Constant (const signed byte) muls8s::i#0 = 0 Constant (const signed byte) muls8s::j#0 = 0 -Constant (const byte[512]) mula_sqr1_lo#0 = { fill( 512, 0) } -Constant (const byte[512]) mula_sqr1_hi#0 = { fill( 512, 0) } -Constant (const byte[512]) mula_sqr2_lo#0 = { fill( 512, 0) } -Constant (const byte[512]) mula_sqr2_hi#0 = { fill( 512, 0) } -Constant (const byte*) mulf_init_asm::mem#0 = ((byte*))255 -Constant (const word/signed word/dword/signed dword) mulf_tables_cmp::$8 = 512*4 +Constant (const byte[$200]) mula_sqr1_lo#0 = { fill( $200, 0) } +Constant (const byte[$200]) mula_sqr1_hi#0 = { fill( $200, 0) } +Constant (const byte[$200]) mula_sqr2_lo#0 = { fill( $200, 0) } +Constant (const byte[$200]) mula_sqr2_hi#0 = { fill( $200, 0) } +Constant (const byte*) mulf_init_asm::mem#0 = ((byte*))$ff +Constant (const word/signed word/dword/signed dword) mulf_tables_cmp::$8 = $200*4 Constant (const byte*) print_str::str#1 = mulf_tables_cmp::str Constant (const byte*) print_str::str#2 = mulf_tables_cmp::str1 Constant (const byte*) print_str::str#3 = mulf_tables_cmp::str2 @@ -3196,13 +3196,13 @@ Constant (const byte*) print_str::str#6 = mul8u_error::str1 Constant (const byte*) print_str::str#7 = mul8u_error::str2 Constant (const byte*) print_str::str#8 = mul8u_error::str3 Constant (const byte*) print_str::str#9 = mul8u_error::str4 -Constant (const signed byte) mul8s_compare::a#0 = -128 -Constant (const signed byte) mul8s_compare::b#0 = -128 +Constant (const signed byte) mul8s_compare::a#0 = -$80 +Constant (const signed byte) mul8s_compare::b#0 = -$80 Constant (const byte) mul8s_compare::ok#0 = 1 Constant (const byte) mul8s_compare::ok#1 = 0 Constant (const byte) mul8s_compare::ok#2 = 0 -Constant (const signed byte/signed word/signed dword) mul8s_compare::$12 = -128 -Constant (const signed byte/signed word/signed dword) mul8s_compare::$14 = -128 +Constant (const signed byte/signed word/signed dword) mul8s_compare::$12 = -$80 +Constant (const signed byte/signed word/signed dword) mul8s_compare::$14 = -$80 Constant (const byte*) print_str::str#10 = mul8s_compare::str Constant (const byte*) print_str::str#11 = mul8s_error::str Constant (const byte*) print_str::str#12 = mul8s_error::str1 @@ -3211,18 +3211,18 @@ Constant (const byte*) print_str::str#14 = mul8s_error::str3 Constant (const byte*) print_str::str#15 = mul8s_error::str4 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) print_cls::sc#0 = print_line_cursor#0 -Constant (const byte*) print_cls::$0 = print_line_cursor#0+1000 +Constant (const byte*) print_cls::$0 = print_line_cursor#0+$3e8 Constant (const byte*) mulf_init::sqr1_hi#0 = mulf_sqr1_hi#0+1 Constant (const byte*) mulf_init::sqr1_lo#0 = mulf_sqr1_lo#0+1 -Constant (const byte*) mulf_init::$8 = mulf_sqr1_lo#0+512 +Constant (const byte*) mulf_init::$8 = mulf_sqr1_lo#0+$200 Constant (const byte) mulf_init::x_255#0 = ((byte))mulf_init::$10 Constant (const byte*) mulf_init::sqr2_hi#0 = mulf_sqr2_hi#0 Constant (const byte*) mulf_init::sqr2_lo#0 = mulf_sqr2_lo#0 -Constant (const byte*) mulf_init::$15 = mulf_sqr2_lo#0+511 -Constant (const byte*) mulf_init::$17 = mulf_sqr2_lo#0+511 -Constant (const byte*) mulf_init::$18 = mulf_sqr1_lo#0+256 -Constant (const byte*) mulf_init::$19 = mulf_sqr2_hi#0+511 -Constant (const byte*) mulf_init::$20 = mulf_sqr1_hi#0+256 +Constant (const byte*) mulf_init::$15 = mulf_sqr2_lo#0+$1ff +Constant (const byte*) mulf_init::$17 = mulf_sqr2_lo#0+$1ff +Constant (const byte*) mulf_init::$18 = mulf_sqr1_lo#0+$100 +Constant (const byte*) mulf_init::$19 = mulf_sqr2_hi#0+$1ff +Constant (const byte*) mulf_init::$20 = mulf_sqr1_hi#0+$100 Constant (const byte*) mulf_tables_cmp::asm_sqr#0 = mula_sqr1_lo#0 Constant (const byte*) mulf_tables_cmp::kc_sqr#0 = mulf_sqr1_lo#0 Constant (const byte*) mulf_tables_cmp::$9 = mulf_sqr1_lo#0+mulf_tables_cmp::$8 @@ -3246,9 +3246,9 @@ Eliminating Noop Cast (word) print_word::w#1 ← ((word)) (byte*) mulf_tables_cm Eliminating Noop Cast (word) print_word::w#2 ← ((word)) (byte*) mulf_tables_cmp::kc_sqr#2 Successful SSA optimization Pass2NopCastElimination Resolved ranged next value mul8u_compare::b#1 ← ++ mul8u_compare::b#10 to ++ -Resolved ranged comparison value if(mul8u_compare::b#1!=rangelast(0,255)) goto mul8u_compare::@2 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(mul8u_compare::b#1!=rangelast(0,$ff)) goto mul8u_compare::@2 to (byte/signed byte/word/signed word/dword/signed dword) 0 Resolved ranged next value mul8u_compare::a#1 ← ++ mul8u_compare::a#7 to ++ -Resolved ranged comparison value if(mul8u_compare::a#1!=rangelast(0,255)) goto mul8u_compare::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 +Resolved ranged comparison value if(mul8u_compare::a#1!=rangelast(0,$ff)) goto mul8u_compare::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 Culled Empty Block (label) print_ln::@2 Culled Empty Block (label) print_sword::@3 Culled Empty Block (label) print_sbyte::@6 @@ -3342,47 +3342,47 @@ Inlining constant with var siblings (const byte) mul8s_compare::ok#0 Inlining constant with var siblings (const byte) mul8s_compare::ok#1 Inlining constant with var siblings (const byte) mul8s_compare::ok#2 Inlining constant with var siblings (const byte*) print_line_cursor#0 -Constant inlined mulf_init::sqr2_lo#0 = (const byte[512]) mulf_sqr2_lo#0 -Constant inlined mulf_init::sqr2_hi#0 = (const byte[512]) mulf_sqr2_hi#0 +Constant inlined mulf_init::sqr2_lo#0 = (const byte[$200]) mulf_sqr2_lo#0 +Constant inlined mulf_init::sqr2_hi#0 = (const byte[$200]) mulf_sqr2_hi#0 Constant inlined mul8u_compare::ok#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mul8u_compare::ok#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mul8u_compare::ok#0 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined $0 = (const byte[]) print_hextab#0 -Constant inlined mul8s_compare::b#0 = -(byte/word/signed word/dword/signed dword) 128 +Constant inlined mul8s_compare::b#0 = -(byte/word/signed word/dword/signed dword) $80 Constant inlined mulf_init::dir#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined mulf_init::dir#0 = (byte/word/signed word/dword/signed dword) 255 -Constant inlined mulf_init::$20 = (const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256 -Constant inlined mul8s_compare::$12 = -(byte/word/signed word/dword/signed dword) 128 +Constant inlined mulf_init::dir#0 = (byte/word/signed word/dword/signed dword) $ff +Constant inlined mulf_init::$20 = (const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100 +Constant inlined mul8s_compare::$12 = -(byte/word/signed word/dword/signed dword) $80 Constant inlined mulf_init::x_255#0 = ((byte))-(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined mul8s_compare::$14 = -(byte/word/signed word/dword/signed dword) 128 -Constant inlined mulf_tables_cmp::kc_sqr#0 = (const byte[512]) mulf_sqr1_lo#0 +Constant inlined mul8s_compare::$14 = -(byte/word/signed word/dword/signed dword) $80 +Constant inlined mulf_tables_cmp::kc_sqr#0 = (const byte[$200]) mulf_sqr1_lo#0 Constant inlined mul8u_compare::b#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mulf_init::x_2#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined print_line_cursor#0 = ((byte*))(word/signed word/dword/signed dword) 1024 +Constant inlined print_line_cursor#0 = ((byte*))(word/signed word/dword/signed dword) $400 Constant inlined mul8s_compare::ok#0 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined mul8s_compare::ok#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined muls8s::m#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined muls8s::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined print_str::str#9 = (const string) str4 Constant inlined mul8u::res#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mulf_init::sqr1_hi#0 = (const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined mulf_init::sqr1_hi#0 = (const byte[$200]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined mulf_init::$10 = -(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined mul8s_compare::ok#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mulf_init::sqr1_lo#0 = (const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined mulf_init::sqr1_lo#0 = (const byte[$200]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined print_str::str#4 = (const string) mul8u_compare::str -Constant inlined mulf_init::$15 = (const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511 +Constant inlined mulf_init::$15 = (const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff Constant inlined print_str::str#3 = (const string) mulf_tables_cmp::str2 Constant inlined print_str::str#2 = (const string) mulf_tables_cmp::str1 Constant inlined print_str::str#1 = (const string) mulf_tables_cmp::str -Constant inlined mulf_init::$18 = (const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256 +Constant inlined mulf_init::$18 = (const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100 Constant inlined print_str::str#8 = (const string) str3 -Constant inlined mulf_init::$19 = (const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511 +Constant inlined mulf_init::$19 = (const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff Constant inlined print_str::str#7 = (const string) str2 Constant inlined print_str::str#6 = (const string) str1 -Constant inlined mulf_init::$17 = (const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511 +Constant inlined mulf_init::$17 = (const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff Constant inlined print_str::str#5 = (const string) mul8u_error::str Constant inlined mulf_init::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000 +Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8 Constant inlined print_str::str#13 = (const string) str2 Constant inlined print_str::str#12 = (const string) str1 Constant inlined print_str::str#11 = (const string) mul8s_error::str @@ -3390,9 +3390,9 @@ Constant inlined print_str::str#10 = (const string) mul8s_compare::str Constant inlined print_str::str#15 = (const string) str4 Constant inlined print_str::str#14 = (const string) str3 Constant inlined mul8u_compare::a#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mul8s_compare::a#0 = -(byte/word/signed word/dword/signed dword) 128 -Constant inlined mulf_tables_cmp::$9 = (const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512*(byte/signed byte/word/signed word/dword/signed dword) 4 -Constant inlined mulf_tables_cmp::$8 = (word/signed word/dword/signed dword) 512*(byte/signed byte/word/signed word/dword/signed dword) 4 +Constant inlined mul8s_compare::a#0 = -(byte/word/signed word/dword/signed dword) $80 +Constant inlined mulf_tables_cmp::$9 = (const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200*(byte/signed byte/word/signed word/dword/signed dword) 4 +Constant inlined mulf_tables_cmp::$8 = (word/signed word/dword/signed dword) $200*(byte/signed byte/word/signed word/dword/signed dword) 4 Constant inlined mulf_init::sqr#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined muls8u::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mul8s_error::str1 = (const string) str1 @@ -3400,11 +3400,11 @@ Constant inlined mul8s_error::str2 = (const string) str2 Constant inlined mul8s_error::str3 = (const string) str3 Constant inlined muls8u::m#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mul8s_error::str4 = (const string) str4 -Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword) 1024 -Constant inlined mulf_init::$8 = (const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512 +Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword) $400 +Constant inlined mulf_init::$8 = (const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200 Constant inlined print_char::ch#2 = (byte) ' ' Constant inlined muls8s::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined mulf_tables_cmp::asm_sqr#0 = (const byte[512]) mula_sqr1_lo#0 +Constant inlined mulf_tables_cmp::asm_sqr#0 = (const byte[$200]) mula_sqr1_lo#0 Constant inlined print_char::ch#1 = (byte) '-' Constant inlined print_char::ch#0 = (byte) '-' Constant inlined mul8u_error::str1 = (const string) str1 @@ -3700,10 +3700,10 @@ mul8s_compare: scope:[mul8s_compare] from main::@5 [17] phi() to:mul8s_compare::@1 mul8s_compare::@1: scope:[mul8s_compare] from mul8s_compare mul8s_compare::@10 - [18] (signed byte) mul8s_compare::a#7 ← phi( mul8s_compare/-(byte/word/signed word/dword/signed dword) 128 mul8s_compare::@10/(signed byte) mul8s_compare::a#1 ) + [18] (signed byte) mul8s_compare::a#7 ← phi( mul8s_compare/-(byte/word/signed word/dword/signed dword) $80 mul8s_compare::@10/(signed byte) mul8s_compare::a#1 ) to:mul8s_compare::@2 mul8s_compare::@2: scope:[mul8s_compare] from mul8s_compare::@1 mul8s_compare::@5 - [19] (signed byte) mul8s_compare::b#10 ← phi( mul8s_compare::@1/-(byte/word/signed word/dword/signed dword) 128 mul8s_compare::@5/(signed byte) mul8s_compare::b#1 ) + [19] (signed byte) mul8s_compare::b#10 ← phi( mul8s_compare::@1/-(byte/word/signed word/dword/signed dword) $80 mul8s_compare::@5/(signed byte) mul8s_compare::b#1 ) [20] (signed byte) muls8s::a#0 ← (signed byte) mul8s_compare::a#7 [21] (signed byte) muls8s::b#0 ← (signed byte) mul8s_compare::b#10 [22] call muls8s @@ -3752,11 +3752,11 @@ mul8s_compare::@return: scope:[mul8s_compare] from mul8s_compare::@16 mul8s_com to:@return mul8s_compare::@5: scope:[mul8s_compare] from mul8s_compare::@4 [49] (signed byte) mul8s_compare::b#1 ← ++ (signed byte) mul8s_compare::b#10 - [50] if((signed byte) mul8s_compare::b#1!=-(byte/word/signed word/dword/signed dword) 128) goto mul8s_compare::@2 + [50] if((signed byte) mul8s_compare::b#1!=-(byte/word/signed word/dword/signed dword) $80) goto mul8s_compare::@2 to:mul8s_compare::@10 mul8s_compare::@10: scope:[mul8s_compare] from mul8s_compare::@5 [51] (signed byte) mul8s_compare::a#1 ← ++ (signed byte) mul8s_compare::a#7 - [52] if((signed byte) mul8s_compare::a#1!=-(byte/word/signed word/dword/signed dword) 128) goto mul8s_compare::@1 + [52] if((signed byte) mul8s_compare::a#1!=-(byte/word/signed word/dword/signed dword) $80) goto mul8s_compare::@1 to:mul8s_compare::@11 mul8s_compare::@11: scope:[mul8s_compare] from mul8s_compare::@10 [53] (byte*~) print_char_cursor#192 ← (byte*) print_line_cursor#1 @@ -3771,18 +3771,18 @@ mul8s_compare::@20: scope:[mul8s_compare] from mul8s_compare::@3 to:mul8s_compare::@4 print_ln: scope:[print_ln] from mul8s_compare::@16 mul8s_error::@10 mul8u_compare::@16 mul8u_error::@10 mulf_tables_cmp::@10 [58] (byte*) print_char_cursor#133 ← phi( mul8s_compare::@16/(byte*) print_char_cursor#132 mul8s_error::@10/(byte*) print_char_cursor#18 mul8u_compare::@16/(byte*) print_char_cursor#132 mul8u_error::@10/(byte*) print_char_cursor#18 mulf_tables_cmp::@10/(byte*) print_char_cursor#132 ) - [58] (byte*) print_line_cursor#45 ← phi( mul8s_compare::@16/(byte*) print_line_cursor#1 mul8s_error::@10/(byte*) print_line_cursor#1 mul8u_compare::@16/(byte*) print_line_cursor#10 mul8u_error::@10/(byte*) print_line_cursor#10 mulf_tables_cmp::@10/((byte*))(word/signed word/dword/signed dword) 1024 ) + [58] (byte*) print_line_cursor#45 ← phi( mul8s_compare::@16/(byte*) print_line_cursor#1 mul8s_error::@10/(byte*) print_line_cursor#1 mul8u_compare::@16/(byte*) print_line_cursor#10 mul8u_error::@10/(byte*) print_line_cursor#10 mulf_tables_cmp::@10/((byte*))(word/signed word/dword/signed dword) $400 ) to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [59] (byte*) print_line_cursor#23 ← phi( print_ln/(byte*) print_line_cursor#45 print_ln::@1/(byte*) print_line_cursor#1 ) - [60] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#23 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [60] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#23 + (byte/signed byte/word/signed word/dword/signed dword) $28 [61] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#133) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 [62] return to:@return print_str: scope:[print_str] from mul8s_compare::@11 mul8s_error mul8s_error::@2 mul8s_error::@4 mul8s_error::@6 mul8s_error::@8 mul8u_compare::@11 mul8u_error mul8u_error::@2 mul8u_error::@4 mul8u_error::@6 mul8u_error::@8 mulf_tables_cmp::@3 mulf_tables_cmp::@5 mulf_tables_cmp::@7 - [63] (byte*) print_char_cursor#152 ← phi( mul8s_compare::@11/(byte*~) print_char_cursor#192 mul8s_error/(byte*~) print_char_cursor#193 mul8s_error::@2/(byte*) print_char_cursor#18 mul8s_error::@4/(byte*) print_char_cursor#18 mul8s_error::@6/(byte*) print_char_cursor#18 mul8s_error::@8/(byte*) print_char_cursor#18 mul8u_compare::@11/(byte*) print_char_cursor#31 mul8u_error/(byte*) print_char_cursor#31 mul8u_error::@2/(byte*) print_char_cursor#18 mul8u_error::@4/(byte*) print_char_cursor#18 mul8u_error::@6/(byte*) print_char_cursor#18 mul8u_error::@8/(byte*) print_char_cursor#18 mulf_tables_cmp::@3/((byte*))(word/signed word/dword/signed dword) 1024 mulf_tables_cmp::@5/((byte*))(word/signed word/dword/signed dword) 1024 mulf_tables_cmp::@7/(byte*) print_char_cursor#18 ) + [63] (byte*) print_char_cursor#152 ← phi( mul8s_compare::@11/(byte*~) print_char_cursor#192 mul8s_error/(byte*~) print_char_cursor#193 mul8s_error::@2/(byte*) print_char_cursor#18 mul8s_error::@4/(byte*) print_char_cursor#18 mul8s_error::@6/(byte*) print_char_cursor#18 mul8s_error::@8/(byte*) print_char_cursor#18 mul8u_compare::@11/(byte*) print_char_cursor#31 mul8u_error/(byte*) print_char_cursor#31 mul8u_error::@2/(byte*) print_char_cursor#18 mul8u_error::@4/(byte*) print_char_cursor#18 mul8u_error::@6/(byte*) print_char_cursor#18 mul8u_error::@8/(byte*) print_char_cursor#18 mulf_tables_cmp::@3/((byte*))(word/signed word/dword/signed dword) $400 mulf_tables_cmp::@5/((byte*))(word/signed word/dword/signed dword) $400 mulf_tables_cmp::@7/(byte*) print_char_cursor#18 ) [63] (byte*) print_str::str#18 ← phi( mul8s_compare::@11/(const string) mul8s_compare::str mul8s_error/(const string) mul8s_error::str mul8s_error::@2/(const string) str1 mul8s_error::@4/(const string) str2 mul8s_error::@6/(const string) str3 mul8s_error::@8/(const string) str4 mul8u_compare::@11/(const string) mul8u_compare::str mul8u_error/(const string) mul8u_error::str mul8u_error::@2/(const string) str1 mul8u_error::@4/(const string) str2 mul8u_error::@6/(const string) str3 mul8u_error::@8/(const string) str4 mulf_tables_cmp::@3/(const string) mulf_tables_cmp::str mulf_tables_cmp::@5/(const string) mulf_tables_cmp::str2 mulf_tables_cmp::@7/(const string) mulf_tables_cmp::str1 ) to:print_str::@1 print_str::@1: scope:[print_str] from print_str print_str::@2 @@ -3886,7 +3886,7 @@ print_byte: scope:[print_byte] from mul8u_error::@1 mul8u_error::@3 print_sbyte [111] call print_char to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte - [112] (byte~) print_byte::$2 ← (byte) print_byte::b#5 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [112] (byte~) print_byte::$2 ← (byte) print_byte::b#5 & (byte/signed byte/word/signed word/dword/signed dword) $f [113] (byte) print_char::ch#4 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) [114] call print_char to:print_byte::@return @@ -4226,8 +4226,8 @@ mulf_tables_cmp: scope:[mulf_tables_cmp] from main::@3 [280] phi() to:mulf_tables_cmp::@1 mulf_tables_cmp::@1: scope:[mulf_tables_cmp] from mulf_tables_cmp mulf_tables_cmp::@2 - [281] (byte*) mulf_tables_cmp::asm_sqr#2 ← phi( mulf_tables_cmp/(const byte[512]) mula_sqr1_lo#0 mulf_tables_cmp::@2/(byte*) mulf_tables_cmp::asm_sqr#1 ) - [281] (byte*) mulf_tables_cmp::kc_sqr#2 ← phi( mulf_tables_cmp/(const byte[512]) mulf_sqr1_lo#0 mulf_tables_cmp::@2/(byte*) mulf_tables_cmp::kc_sqr#1 ) + [281] (byte*) mulf_tables_cmp::asm_sqr#2 ← phi( mulf_tables_cmp/(const byte[$200]) mula_sqr1_lo#0 mulf_tables_cmp::@2/(byte*) mulf_tables_cmp::asm_sqr#1 ) + [281] (byte*) mulf_tables_cmp::kc_sqr#2 ← phi( mulf_tables_cmp/(const byte[$200]) mulf_sqr1_lo#0 mulf_tables_cmp::@2/(byte*) mulf_tables_cmp::kc_sqr#1 ) [282] if(*((byte*) mulf_tables_cmp::kc_sqr#2)==*((byte*) mulf_tables_cmp::asm_sqr#2)) goto mulf_tables_cmp::@2 to:mulf_tables_cmp::@3 mulf_tables_cmp::@3: scope:[mulf_tables_cmp] from mulf_tables_cmp::@1 @@ -4247,14 +4247,14 @@ mulf_tables_cmp::@8: scope:[mulf_tables_cmp] from mulf_tables_cmp::@7 [290] call print_word to:mulf_tables_cmp::@return mulf_tables_cmp::@return: scope:[mulf_tables_cmp] from mulf_tables_cmp::@10 mulf_tables_cmp::@8 - [291] (byte*) print_line_cursor#10 ← phi( mulf_tables_cmp::@10/(byte*) print_line_cursor#1 mulf_tables_cmp::@8/((byte*))(word/signed word/dword/signed dword) 1024 ) + [291] (byte*) print_line_cursor#10 ← phi( mulf_tables_cmp::@10/(byte*) print_line_cursor#1 mulf_tables_cmp::@8/((byte*))(word/signed word/dword/signed dword) $400 ) [291] (byte*) print_char_cursor#31 ← phi( mulf_tables_cmp::@10/(byte*~) print_char_cursor#225 mulf_tables_cmp::@8/(byte*) print_char_cursor#18 ) [292] return to:@return mulf_tables_cmp::@2: scope:[mulf_tables_cmp] from mulf_tables_cmp::@1 [293] (byte*) mulf_tables_cmp::asm_sqr#1 ← ++ (byte*) mulf_tables_cmp::asm_sqr#2 [294] (byte*) mulf_tables_cmp::kc_sqr#1 ← ++ (byte*) mulf_tables_cmp::kc_sqr#2 - [295] if((byte*) mulf_tables_cmp::kc_sqr#1<(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512*(byte/signed byte/word/signed word/dword/signed dword) 4) goto mulf_tables_cmp::@1 + [295] if((byte*) mulf_tables_cmp::kc_sqr#1<(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200*(byte/signed byte/word/signed word/dword/signed dword) 4) goto mulf_tables_cmp::@1 to:mulf_tables_cmp::@5 mulf_tables_cmp::@5: scope:[mulf_tables_cmp] from mulf_tables_cmp::@2 [296] phi() @@ -4267,10 +4267,10 @@ mulf_tables_cmp::@10: scope:[mulf_tables_cmp] from mulf_tables_cmp::@5 to:mulf_tables_cmp::@return mulf_init_asm: scope:[mulf_init_asm] from main::@2 asm { ldx#$00 txa .byte$c9 lb1: tya adc#$00 ml1: stamula_sqr1_hi,x tay cmp#$40 txa ror ml9: adc#$00 staml9+1 inx ml0: stamula_sqr1_lo,x bnelb1 incml0+2 incml1+2 clc iny bnelb1 ldx#$00 ldy#$ff !: ldamula_sqr1_hi+1,x stamula_sqr2_hi+$100,x ldamula_sqr1_hi,x stamula_sqr2_hi,y ldamula_sqr1_lo+1,x stamula_sqr2_lo+$100,x ldamula_sqr1_lo,x stamula_sqr2_lo,y dey inx bne!- } - [302] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr1_lo#0) - [303] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr1_hi#0) - [304] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr2_lo#0) - [305] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr2_hi#0) + [302] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr1_lo#0) + [303] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr1_hi#0) + [304] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr2_lo#0) + [305] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr2_hi#0) to:mulf_init_asm::@return mulf_init_asm::@return: scope:[mulf_init_asm] from mulf_init_asm [306] return @@ -4280,8 +4280,8 @@ mulf_init: scope:[mulf_init] from main::@1 to:mulf_init::@1 mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@2 [308] (byte) mulf_init::x_2#3 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::x_2#2 ) - [308] (byte*) mulf_init::sqr1_hi#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_hi#1 ) - [308] (byte*) mulf_init::sqr1_lo#2 ← phi( mulf_init/(const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_lo#1 ) + [308] (byte*) mulf_init::sqr1_hi#2 ← phi( mulf_init/(const byte[$200]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_hi#1 ) + [308] (byte*) mulf_init::sqr1_lo#2 ← phi( mulf_init/(const byte[$200]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 mulf_init::@2/(byte*) mulf_init::sqr1_lo#1 ) [308] (word) mulf_init::sqr#4 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(word) mulf_init::sqr#1 ) [308] (byte) mulf_init::c#2 ← phi( mulf_init/(byte/signed byte/word/signed word/dword/signed dword) 0 mulf_init::@2/(byte) mulf_init::c#1 ) [309] (byte) mulf_init::c#1 ← ++ (byte) mulf_init::c#2 @@ -4302,15 +4302,15 @@ mulf_init::@2: scope:[mulf_init] from mulf_init::@1 mulf_init::@5 [319] (byte*) mulf_init::sqr1_hi#1 ← ++ (byte*) mulf_init::sqr1_hi#2 [320] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [321] (byte*) mulf_init::sqr1_lo#1 ← ++ (byte*) mulf_init::sqr1_lo#2 - [322] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 + [322] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 to:mulf_init::@3 mulf_init::@3: scope:[mulf_init] from mulf_init::@2 mulf_init::@4 - [323] (byte) mulf_init::dir#2 ← phi( mulf_init::@4/(byte) mulf_init::dir#3 mulf_init::@2/(byte/word/signed word/dword/signed dword) 255 ) - [323] (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_hi#1 mulf_init::@2/(const byte[512]) mulf_sqr2_hi#0 ) - [323] (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_lo#1 mulf_init::@2/(const byte[512]) mulf_sqr2_lo#0 ) + [323] (byte) mulf_init::dir#2 ← phi( mulf_init::@4/(byte) mulf_init::dir#3 mulf_init::@2/(byte/word/signed word/dword/signed dword) $ff ) + [323] (byte*) mulf_init::sqr2_hi#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_hi#1 mulf_init::@2/(const byte[$200]) mulf_sqr2_hi#0 ) + [323] (byte*) mulf_init::sqr2_lo#2 ← phi( mulf_init::@4/(byte*) mulf_init::sqr2_lo#1 mulf_init::@2/(const byte[$200]) mulf_sqr2_lo#0 ) [323] (byte) mulf_init::x_255#2 ← phi( mulf_init::@4/(byte) mulf_init::x_255#1 mulf_init::@2/((byte))-(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [324] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) - [325] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) + [324] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) + [325] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [326] (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 [327] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [328] if((byte) mulf_init::x_255#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@12 @@ -4318,11 +4318,11 @@ mulf_init::@3: scope:[mulf_init] from mulf_init::@2 mulf_init::@4 mulf_init::@4: scope:[mulf_init] from mulf_init::@12 mulf_init::@3 [329] (byte) mulf_init::dir#3 ← phi( mulf_init::@12/(byte) mulf_init::dir#2 mulf_init::@3/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [330] (byte*) mulf_init::sqr2_lo#1 ← ++ (byte*) mulf_init::sqr2_lo#2 - [331] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 + [331] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 to:mulf_init::@8 mulf_init::@8: scope:[mulf_init] from mulf_init::@4 - [332] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) - [333] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) + [332] *((const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100) + [333] *((const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100) to:mulf_init::@return mulf_init::@return: scope:[mulf_init] from mulf_init::@8 [334] return @@ -4334,10 +4334,10 @@ print_cls: scope:[print_cls] from main [336] phi() to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 - [337] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) 1024 print_cls::@1/(byte*) print_cls::sc#1 ) + [337] (byte*) print_cls::sc#2 ← phi( print_cls/((byte*))(word/signed word/dword/signed dword) $400 print_cls::@1/(byte*) print_cls::sc#1 ) [338] *((byte*) print_cls::sc#2) ← (byte) ' ' [339] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 - [340] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 + [340] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 [341] return @@ -4441,10 +4441,10 @@ VARIABLE REGISTER WEIGHTS (word) mul8u_error::mn#0 0.25 (word) mul8u_error::ms (word) mul8u_error::ms#0 0.3076923076923077 -(byte[512]) mula_sqr1_hi -(byte[512]) mula_sqr1_lo -(byte[512]) mula_sqr2_hi -(byte[512]) mula_sqr2_lo +(byte[$200]) mula_sqr1_hi +(byte[$200]) mula_sqr1_lo +(byte[$200]) mula_sqr2_hi +(byte[$200]) mula_sqr2_lo (signed word()) mulf8s((signed byte) mulf8s::a , (signed byte) mulf8s::b) (signed byte) mulf8s::a (signed byte) mulf8s::a#0 33.666666666666664 @@ -4532,10 +4532,10 @@ VARIABLE REGISTER WEIGHTS (byte) mulf_init::x_255#2 11.0 (void()) mulf_init_asm() (byte*) mulf_init_asm::mem -(byte[512]) mulf_sqr1_hi -(byte[512]) mulf_sqr1_lo -(byte[512]) mulf_sqr2_hi -(byte[512]) mulf_sqr2_lo +(byte[$200]) mulf_sqr1_hi +(byte[$200]) mulf_sqr1_lo +(byte[$200]) mulf_sqr2_hi +(byte[$200]) mulf_sqr2_lo (void()) mulf_tables_cmp() (byte*) mulf_tables_cmp::asm_sqr (byte*) mulf_tables_cmp::asm_sqr#1 7.333333333333333 @@ -5023,7 +5023,7 @@ mul8s_compare: { .label ok = 4 //SEG35 [18] phi from mul8s_compare to mul8s_compare::@1 [phi:mul8s_compare->mul8s_compare::@1] b1_from_mul8s_compare: - //SEG36 [18] phi (signed byte) mul8s_compare::a#7 = -(byte/word/signed word/dword/signed dword) 128 [phi:mul8s_compare->mul8s_compare::@1#0] -- vbsz1=vbsc1 + //SEG36 [18] phi (signed byte) mul8s_compare::a#7 = -(byte/word/signed word/dword/signed dword) $80 [phi:mul8s_compare->mul8s_compare::@1#0] -- vbsz1=vbsc1 lda #-$80 sta a jmp b1 @@ -5035,7 +5035,7 @@ mul8s_compare: { b1: //SEG40 [19] phi from mul8s_compare::@1 to mul8s_compare::@2 [phi:mul8s_compare::@1->mul8s_compare::@2] b2_from_b1: - //SEG41 [19] phi (signed byte) mul8s_compare::b#10 = -(byte/word/signed word/dword/signed dword) 128 [phi:mul8s_compare::@1->mul8s_compare::@2#0] -- vbsz1=vbsc1 + //SEG41 [19] phi (signed byte) mul8s_compare::b#10 = -(byte/word/signed word/dword/signed dword) $80 [phi:mul8s_compare::@1->mul8s_compare::@2#0] -- vbsz1=vbsc1 lda #-$80 sta b jmp b2 @@ -5195,7 +5195,7 @@ mul8s_compare: { b5: //SEG88 [49] (signed byte) mul8s_compare::b#1 ← ++ (signed byte) mul8s_compare::b#10 -- vbsz1=_inc_vbsz1 inc b - //SEG89 [50] if((signed byte) mul8s_compare::b#1!=-(byte/word/signed word/dword/signed dword) 128) goto mul8s_compare::@2 -- vbsz1_neq_vbsc1_then_la1 + //SEG89 [50] if((signed byte) mul8s_compare::b#1!=-(byte/word/signed word/dword/signed dword) $80) goto mul8s_compare::@2 -- vbsz1_neq_vbsc1_then_la1 lda b cmp #-$80 bne b2_from_b5 @@ -5204,7 +5204,7 @@ mul8s_compare: { b10: //SEG91 [51] (signed byte) mul8s_compare::a#1 ← ++ (signed byte) mul8s_compare::a#7 -- vbsz1=_inc_vbsz1 inc a - //SEG92 [52] if((signed byte) mul8s_compare::a#1!=-(byte/word/signed word/dword/signed dword) 128) goto mul8s_compare::@1 -- vbsz1_neq_vbsc1_then_la1 + //SEG92 [52] if((signed byte) mul8s_compare::a#1!=-(byte/word/signed word/dword/signed dword) $80) goto mul8s_compare::@1 -- vbsz1_neq_vbsc1_then_la1 lda a cmp #-$80 bne b1_from_b10 @@ -5259,7 +5259,7 @@ print_ln: { jmp b1 //SEG112 print_ln::@1 b1: - //SEG113 [60] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#23 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG113 [60] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#23 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -5604,7 +5604,7 @@ print_byte: { jmp b1 //SEG234 print_byte::@1 b1: - //SEG235 [112] (byte~) print_byte::$2 ← (byte) print_byte::b#5 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG235 [112] (byte~) print_byte::$2 ← (byte) print_byte::b#5 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and b sta _2 @@ -6720,12 +6720,12 @@ mulf_tables_cmp: { .label kc_sqr = $28 //SEG588 [281] phi from mulf_tables_cmp to mulf_tables_cmp::@1 [phi:mulf_tables_cmp->mulf_tables_cmp::@1] b1_from_mulf_tables_cmp: - //SEG589 [281] phi (byte*) mulf_tables_cmp::asm_sqr#2 = (const byte[512]) mula_sqr1_lo#0 [phi:mulf_tables_cmp->mulf_tables_cmp::@1#0] -- pbuz1=pbuc1 + //SEG589 [281] phi (byte*) mulf_tables_cmp::asm_sqr#2 = (const byte[$200]) mula_sqr1_lo#0 [phi:mulf_tables_cmp->mulf_tables_cmp::@1#0] -- pbuz1=pbuc1 lda #mula_sqr1_lo sta asm_sqr+1 - //SEG590 [281] phi (byte*) mulf_tables_cmp::kc_sqr#2 = (const byte[512]) mulf_sqr1_lo#0 [phi:mulf_tables_cmp->mulf_tables_cmp::@1#1] -- pbuz1=pbuc1 + //SEG590 [281] phi (byte*) mulf_tables_cmp::kc_sqr#2 = (const byte[$200]) mulf_sqr1_lo#0 [phi:mulf_tables_cmp->mulf_tables_cmp::@1#1] -- pbuz1=pbuc1 lda #mulf_sqr1_lo @@ -6753,7 +6753,7 @@ mulf_tables_cmp: { //SEG598 [284] call print_str //SEG599 [63] phi from mulf_tables_cmp::@3 to print_str [phi:mulf_tables_cmp::@3->print_str] print_str_from_b3: - //SEG600 [63] phi (byte*) print_char_cursor#152 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:mulf_tables_cmp::@3->print_str#0] -- pbuz1=pbuc1 + //SEG600 [63] phi (byte*) print_char_cursor#152 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:mulf_tables_cmp::@3->print_str#0] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -6809,7 +6809,7 @@ mulf_tables_cmp: { jsr print_word //SEG620 [291] phi from mulf_tables_cmp::@8 to mulf_tables_cmp::@return [phi:mulf_tables_cmp::@8->mulf_tables_cmp::@return] breturn_from_b8: - //SEG621 [291] phi (byte*) print_line_cursor#10 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:mulf_tables_cmp::@8->mulf_tables_cmp::@return#0] -- pbuz1=pbuc1 + //SEG621 [291] phi (byte*) print_line_cursor#10 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:mulf_tables_cmp::@8->mulf_tables_cmp::@return#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -6832,7 +6832,7 @@ mulf_tables_cmp: { bne !+ inc kc_sqr+1 !: - //SEG628 [295] if((byte*) mulf_tables_cmp::kc_sqr#1<(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512*(byte/signed byte/word/signed word/dword/signed dword) 4) goto mulf_tables_cmp::@1 -- pbuz1_lt_pbuc1_then_la1 + //SEG628 [295] if((byte*) mulf_tables_cmp::kc_sqr#1<(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200*(byte/signed byte/word/signed word/dword/signed dword) 4) goto mulf_tables_cmp::@1 -- pbuz1_lt_pbuc1_then_la1 lda kc_sqr+1 cmp #>mulf_sqr1_lo+$200*4 bcc b1_from_b2 @@ -6849,7 +6849,7 @@ mulf_tables_cmp: { //SEG631 [297] call print_str //SEG632 [63] phi from mulf_tables_cmp::@5 to print_str [phi:mulf_tables_cmp::@5->print_str] print_str_from_b5: - //SEG633 [63] phi (byte*) print_char_cursor#152 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:mulf_tables_cmp::@5->print_str#0] -- pbuz1=pbuc1 + //SEG633 [63] phi (byte*) print_char_cursor#152 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:mulf_tables_cmp::@5->print_str#0] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -6869,7 +6869,7 @@ mulf_tables_cmp: { //SEG638 [58] phi from mulf_tables_cmp::@10 to print_ln [phi:mulf_tables_cmp::@10->print_ln] print_ln_from_b10: //SEG639 [58] phi (byte*) print_char_cursor#133 = (byte*) print_char_cursor#132 [phi:mulf_tables_cmp::@10->print_ln#0] -- register_copy - //SEG640 [58] phi (byte*) print_line_cursor#45 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:mulf_tables_cmp::@10->print_ln#1] -- pbuz1=pbuc1 + //SEG640 [58] phi (byte*) print_line_cursor#45 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:mulf_tables_cmp::@10->print_ln#1] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -6934,16 +6934,16 @@ mulf_init_asm: { dey inx bne !- - //SEG647 [302] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr1_lo#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG647 [302] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr1_lo#0) -- _deref_pbuc1=_deref_pbuc2 lda mula_sqr1_lo sta mem - //SEG648 [303] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr1_hi#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG648 [303] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr1_hi#0) -- _deref_pbuc1=_deref_pbuc2 lda mula_sqr1_hi sta mem - //SEG649 [304] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr2_lo#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG649 [304] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr2_lo#0) -- _deref_pbuc1=_deref_pbuc2 lda mula_sqr2_lo sta mem - //SEG650 [305] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr2_hi#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG650 [305] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr2_hi#0) -- _deref_pbuc1=_deref_pbuc2 lda mula_sqr2_hi sta mem jmp breturn @@ -6972,12 +6972,12 @@ mulf_init: { //SEG655 [308] phi (byte) mulf_init::x_2#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#0] -- vbuz1=vbuc1 lda #0 sta x_2 - //SEG656 [308] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 + //SEG656 [308] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[$200]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 lda #mulf_sqr1_hi+1 sta sqr1_hi+1 - //SEG657 [308] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 + //SEG657 [308] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[$200]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 lda #mulf_sqr1_lo+1 @@ -7061,7 +7061,7 @@ mulf_init: { bne !+ inc sqr1_lo+1 !: - //SEG684 [322] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG684 [322] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 -- pbuz1_neq_pbuc1_then_la1 lda sqr1_lo+1 cmp #>mulf_sqr1_lo+$200 bne b1_from_b2 @@ -7070,15 +7070,15 @@ mulf_init: { bne b1_from_b2 //SEG685 [323] phi from mulf_init::@2 to mulf_init::@3 [phi:mulf_init::@2->mulf_init::@3] b3_from_b2: - //SEG686 [323] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) 255 [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 + //SEG686 [323] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) $ff [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 lda #$ff sta dir - //SEG687 [323] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[512]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 + //SEG687 [323] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[$200]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 lda #mulf_sqr2_hi sta sqr2_hi+1 - //SEG688 [323] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[512]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 + //SEG688 [323] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[$200]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 lda #mulf_sqr2_lo @@ -7096,12 +7096,12 @@ mulf_init: { jmp b3 //SEG695 mulf_init::@3 b3: - //SEG696 [324] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG696 [324] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy x_255 lda mulf_sqr1_lo,y ldy #0 sta (sqr2_lo),y - //SEG697 [325] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG697 [325] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy x_255 lda mulf_sqr1_hi,y ldy #0 @@ -7133,7 +7133,7 @@ mulf_init: { bne !+ inc sqr2_lo+1 !: - //SEG705 [331] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 -- pbuz1_neq_pbuc1_then_la1 + //SEG705 [331] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 -- pbuz1_neq_pbuc1_then_la1 lda sqr2_lo+1 cmp #>mulf_sqr2_lo+$1ff bne b3_from_b4 @@ -7143,11 +7143,11 @@ mulf_init: { jmp b8 //SEG706 mulf_init::@8 b8: - //SEG707 [332] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) -- _deref_pbuc1=_deref_pbuc2 + //SEG707 [332] *((const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100) -- _deref_pbuc1=_deref_pbuc2 // Set the very last value g(511) = f(256) lda mulf_sqr1_lo+$100 sta mulf_sqr2_lo+$1ff - //SEG708 [333] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) -- _deref_pbuc1=_deref_pbuc2 + //SEG708 [333] *((const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100) -- _deref_pbuc1=_deref_pbuc2 lda mulf_sqr1_hi+$100 sta mulf_sqr2_hi+$1ff jmp breturn @@ -7171,7 +7171,7 @@ print_cls: { .label sc = $3a //SEG716 [337] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] b1_from_print_cls: - //SEG717 [337] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG717 [337] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -7192,7 +7192,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG723 [340] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG723 [340] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1_from_b1 @@ -7257,7 +7257,7 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:79 [ m Statement [45] (signed word) mul8s_error::mn#0 ← (signed word) mul8s_compare::mn#0 [ mul8s_compare::mf#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ mul8s_compare::mf#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 print_line_cursor#1 ] ) always clobbers reg byte a Statement [46] (signed word) mul8s_error::mf#0 ← (signed word) mul8s_compare::mf#0 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 ] ) always clobbers reg byte a Statement [53] (byte*~) print_char_cursor#192 ← (byte*) print_line_cursor#1 [ print_char_cursor#192 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ print_char_cursor#192 print_line_cursor#1 ] ) always clobbers reg byte a -Statement [60] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#23 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#133 ] ( main:2::mul8s_compare:15::print_ln:56 [ print_line_cursor#1 print_char_cursor#133 ] main:2::mul8s_compare:15::mul8s_error:47::print_ln:91 [ print_line_cursor#1 print_char_cursor#133 ] main:2::mul8u_compare:13::print_ln:241 [ print_line_cursor#1 print_char_cursor#133 ] main:2::mul8u_compare:13::mul8u_error:232::print_ln:264 [ print_line_cursor#1 print_char_cursor#133 ] main:2::mulf_tables_cmp:11::print_ln:299 [ print_line_cursor#1 print_char_cursor#133 ] ) always clobbers reg byte a +Statement [60] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#23 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#1 print_char_cursor#133 ] ( main:2::mul8s_compare:15::print_ln:56 [ print_line_cursor#1 print_char_cursor#133 ] main:2::mul8s_compare:15::mul8s_error:47::print_ln:91 [ print_line_cursor#1 print_char_cursor#133 ] main:2::mul8u_compare:13::print_ln:241 [ print_line_cursor#1 print_char_cursor#133 ] main:2::mul8u_compare:13::mul8u_error:232::print_ln:264 [ print_line_cursor#1 print_char_cursor#133 ] main:2::mulf_tables_cmp:11::print_ln:299 [ print_line_cursor#1 print_char_cursor#133 ] ) always clobbers reg byte a Statement [61] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#133) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#133 ] ( main:2::mul8s_compare:15::print_ln:56 [ print_line_cursor#1 print_char_cursor#133 ] main:2::mul8s_compare:15::mul8s_error:47::print_ln:91 [ print_line_cursor#1 print_char_cursor#133 ] main:2::mul8u_compare:13::print_ln:241 [ print_line_cursor#1 print_char_cursor#133 ] main:2::mul8u_compare:13::mul8u_error:232::print_ln:264 [ print_line_cursor#1 print_char_cursor#133 ] main:2::mulf_tables_cmp:11::print_ln:299 [ print_line_cursor#1 print_char_cursor#133 ] ) always clobbers reg byte a Statement [65] if(*((byte*) print_str::str#16)!=(byte) '@') goto print_str::@2 [ print_char_cursor#132 print_str::str#16 ] ( main:2::mul8s_compare:15::print_str:54 [ print_line_cursor#1 print_char_cursor#132 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:71 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#132 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:75 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#132 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:79 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#132 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:83 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#132 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:87 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#132 print_str::str#16 ] main:2::mul8u_compare:13::print_str:239 [ print_line_cursor#10 print_char_cursor#132 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:232::print_str:244 [ print_line_cursor#10 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#132 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:232::print_str:248 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#132 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:232::print_str:252 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#132 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:232::print_str:256 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#132 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:232::print_str:260 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#132 print_str::str#16 ] main:2::mulf_tables_cmp:11::print_str:284 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 print_char_cursor#132 print_str::str#16 ] main:2::mulf_tables_cmp:11::print_str:288 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#132 print_str::str#16 ] main:2::mulf_tables_cmp:11::print_str:297 [ print_char_cursor#132 print_str::str#16 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:78 [ mul8s_error::a#0 ] @@ -7278,7 +7278,7 @@ Statement [103] (byte) print_byte::b#1 ← > (word) print_word::w#6 [ print_word Statement [105] (byte) print_byte::b#2 ← < (word) print_word::w#6 [ print_char_cursor#18 print_byte::b#2 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#18 print_byte::b#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#18 print_byte::b#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100 [ print_line_cursor#1 print_char_cursor#18 print_byte::b#2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:254 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#18 print_byte::b#2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:258 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#18 print_byte::b#2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:262 [ print_line_cursor#10 print_char_cursor#18 print_byte::b#2 ] main:2::mulf_tables_cmp:11::print_word:286 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#18 print_byte::b#2 ] main:2::mulf_tables_cmp:11::print_word:290 [ print_char_cursor#18 print_byte::b#2 ] ) always clobbers reg byte a Statement [109] (byte~) print_byte::$0 ← (byte) print_byte::b#5 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#5 print_char_cursor#140 print_byte::$0 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:254::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:258::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:262::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mulf_tables_cmp:11::print_word:286::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mulf_tables_cmp:11::print_word:290::print_byte:104 [ print_word::w#6 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:254::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:258::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:262::print_byte:106 [ print_line_cursor#10 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mulf_tables_cmp:11::print_word:286::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mulf_tables_cmp:11::print_word:290::print_byte:106 [ print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:126 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:126 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:232::print_byte:246 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:232::print_byte:250 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:13 [ print_byte::b#5 print_byte::b#3 print_byte::b#4 print_byte::b#9 print_byte::b#1 print_byte::b#2 ] -Statement [112] (byte~) print_byte::$2 ← (byte) print_byte::b#5 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#18 print_byte::$2 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:254::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:258::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:262::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:286::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:290::print_byte:104 [ print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:254::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:258::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:262::print_byte:106 [ print_line_cursor#10 print_char_cursor#18 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:286::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#18 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:290::print_byte:106 [ print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:126 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:126 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_byte:246 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_byte:250 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#18 print_byte::$2 ] ) always clobbers reg byte a +Statement [112] (byte~) print_byte::$2 ← (byte) print_byte::b#5 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#18 print_byte::$2 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:254::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:258::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:262::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:286::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:290::print_byte:104 [ print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:254::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:258::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:262::print_byte:106 [ print_line_cursor#10 print_char_cursor#18 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:286::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#18 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:290::print_byte:106 [ print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:126 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:126 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_byte:246 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_byte:250 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#18 print_byte::$2 ] ) always clobbers reg byte a Statement [117] *((byte*) print_char_cursor#84) ← (byte) print_char::ch#5 [ print_char_cursor#84 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_char:96 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_sword::w#4 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_char:96 [ mul8s_error::mf#0 print_line_cursor#1 print_sword::w#4 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_char:96 [ print_line_cursor#1 print_sword::w#4 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104::print_char:111 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104::print_char:111 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104::print_char:111 [ print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:254::print_byte:104::print_char:111 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:258::print_byte:104::print_char:111 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:262::print_byte:104::print_char:111 [ print_line_cursor#10 print_word::w#6 print_byte::b#5 print_char_cursor#84 ] main:2::mulf_tables_cmp:11::print_word:286::print_byte:104::print_char:111 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_byte::b#5 print_char_cursor#84 ] main:2::mulf_tables_cmp:11::print_word:290::print_byte:104::print_char:111 [ print_word::w#6 print_byte::b#5 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106::print_char:111 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106::print_char:111 [ mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106::print_char:111 [ print_line_cursor#1 print_byte::b#5 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:254::print_byte:106::print_char:111 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:258::print_byte:106::print_char:111 [ print_line_cursor#10 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:262::print_byte:106::print_char:111 [ print_line_cursor#10 print_byte::b#5 print_char_cursor#84 ] main:2::mulf_tables_cmp:11::print_word:286::print_byte:106::print_char:111 [ mulf_tables_cmp::kc_sqr#2 print_byte::b#5 print_char_cursor#84 ] main:2::mulf_tables_cmp:11::print_word:290::print_byte:106::print_char:111 [ print_byte::b#5 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:126::print_char:111 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:126::print_char:111 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_byte:246::print_char:111 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_byte:250::print_char:111 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104::print_char:114 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104::print_char:114 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104::print_char:114 [ print_line_cursor#1 print_word::w#6 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:254::print_byte:104::print_char:114 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:258::print_byte:104::print_char:114 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:262::print_byte:104::print_char:114 [ print_line_cursor#10 print_word::w#6 print_char_cursor#84 ] main:2::mulf_tables_cmp:11::print_word:286::print_byte:104::print_char:114 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#84 ] main:2::mulf_tables_cmp:11::print_word:290::print_byte:104::print_char:114 [ print_word::w#6 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106::print_char:114 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106::print_char:114 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106::print_char:114 [ print_line_cursor#1 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:254::print_byte:106::print_char:114 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:258::print_byte:106::print_char:114 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:262::print_byte:106::print_char:114 [ print_line_cursor#10 print_char_cursor#84 ] main:2::mulf_tables_cmp:11::print_word:286::print_byte:106::print_char:114 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#84 ] main:2::mulf_tables_cmp:11::print_word:290::print_byte:106::print_char:114 [ print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:126::print_char:114 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:126::print_char:114 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_byte:246::print_char:114 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_byte:250::print_char:114 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_char:123 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_sbyte::b#3 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_char:123 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_sbyte::b#3 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_char:129 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_sbyte::b#3 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_char:129 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_sbyte::b#3 print_char_cursor#84 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:13 [ print_byte::b#5 print_byte::b#3 print_byte::b#4 print_byte::b#9 print_byte::b#1 print_byte::b#2 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:17 [ print_sbyte::b#5 print_sbyte::b#0 print_sbyte::b#3 print_sbyte::b#1 print_sbyte::b#2 ] @@ -7349,13 +7349,13 @@ Statement [282] if(*((byte*) mulf_tables_cmp::kc_sqr#2)==*((byte*) mulf_tables_c Statement [283] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 ] ( main:2::mulf_tables_cmp:11 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 ] ) always clobbers reg byte a Statement [285] (word~) print_word::w#11 ← (word)(byte*) mulf_tables_cmp::asm_sqr#2 [ print_char_cursor#132 print_word::w#11 mulf_tables_cmp::kc_sqr#2 ] ( main:2::mulf_tables_cmp:11 [ print_char_cursor#132 print_word::w#11 mulf_tables_cmp::kc_sqr#2 ] ) always clobbers reg byte a Statement [289] (word~) print_word::w#12 ← (word)(byte*) mulf_tables_cmp::kc_sqr#2 [ print_char_cursor#132 print_word::w#12 ] ( main:2::mulf_tables_cmp:11 [ print_char_cursor#132 print_word::w#12 ] ) always clobbers reg byte a -Statement [295] if((byte*) mulf_tables_cmp::kc_sqr#1<(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512*(byte/signed byte/word/signed word/dword/signed dword) 4) goto mulf_tables_cmp::@1 [ mulf_tables_cmp::kc_sqr#1 mulf_tables_cmp::asm_sqr#1 ] ( main:2::mulf_tables_cmp:11 [ mulf_tables_cmp::kc_sqr#1 mulf_tables_cmp::asm_sqr#1 ] ) always clobbers reg byte a +Statement [295] if((byte*) mulf_tables_cmp::kc_sqr#1<(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200*(byte/signed byte/word/signed word/dword/signed dword) 4) goto mulf_tables_cmp::@1 [ mulf_tables_cmp::kc_sqr#1 mulf_tables_cmp::asm_sqr#1 ] ( main:2::mulf_tables_cmp:11 [ mulf_tables_cmp::kc_sqr#1 mulf_tables_cmp::asm_sqr#1 ] ) always clobbers reg byte a Statement [300] (byte*~) print_char_cursor#225 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#225 ] ( main:2::mulf_tables_cmp:11 [ print_line_cursor#1 print_char_cursor#225 ] ) always clobbers reg byte a Statement asm { ldx#$00 txa .byte$c9 lb1: tya adc#$00 ml1: stamula_sqr1_hi,x tay cmp#$40 txa ror ml9: adc#$00 staml9+1 inx ml0: stamula_sqr1_lo,x bnelb1 incml0+2 incml1+2 clc iny bnelb1 ldx#$00 ldy#$ff !: ldamula_sqr1_hi+1,x stamula_sqr2_hi+$100,x ldamula_sqr1_hi,x stamula_sqr2_hi,y ldamula_sqr1_lo+1,x stamula_sqr2_lo+$100,x ldamula_sqr1_lo,x stamula_sqr2_lo,y dey inx bne!- } always clobbers reg byte a reg byte x reg byte y -Statement [302] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr1_lo#0) [ ] ( main:2::mulf_init_asm:9 [ ] ) always clobbers reg byte a -Statement [303] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr1_hi#0) [ ] ( main:2::mulf_init_asm:9 [ ] ) always clobbers reg byte a -Statement [304] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr2_lo#0) [ ] ( main:2::mulf_init_asm:9 [ ] ) always clobbers reg byte a -Statement [305] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr2_hi#0) [ ] ( main:2::mulf_init_asm:9 [ ] ) always clobbers reg byte a +Statement [302] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr1_lo#0) [ ] ( main:2::mulf_init_asm:9 [ ] ) always clobbers reg byte a +Statement [303] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr1_hi#0) [ ] ( main:2::mulf_init_asm:9 [ ] ) always clobbers reg byte a +Statement [304] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr2_lo#0) [ ] ( main:2::mulf_init_asm:9 [ ] ) always clobbers reg byte a +Statement [305] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr2_hi#0) [ ] ( main:2::mulf_init_asm:9 [ ] ) always clobbers reg byte a Statement [310] (byte~) mulf_init::$2 ← (byte) mulf_init::c#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ( main:2::mulf_init:7 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:49 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:44 [ mulf_init::c#2 mulf_init::c#1 ] @@ -7366,19 +7366,19 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:49 [ m Statement [317] (byte~) mulf_init::$6 ← > (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ( main:2::mulf_init:7 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ) always clobbers reg byte a Statement [318] *((byte*) mulf_init::sqr1_hi#2) ← (byte~) mulf_init::$6 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:2::mulf_init:7 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) always clobbers reg byte y Statement [320] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:2::mulf_init:7 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a -Statement [322] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:2::mulf_init:7 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a -Statement [324] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:2::mulf_init:7 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y +Statement [322] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:2::mulf_init:7 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a +Statement [324] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:2::mulf_init:7 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp ZP_BYTE:52 [ mulf_init::x_255#2 mulf_init::x_255#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:52 [ mulf_init::x_255#2 mulf_init::x_255#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:57 [ mulf_init::dir#2 mulf_init::dir#3 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:57 [ mulf_init::dir#2 mulf_init::dir#3 ] -Statement [325] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:2::mulf_init:7 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y +Statement [325] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:2::mulf_init:7 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y Statement [327] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:2::mulf_init:7 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) always clobbers reg byte a -Statement [331] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:2::mulf_init:7 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) always clobbers reg byte a -Statement [332] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) [ ] ( main:2::mulf_init:7 [ ] ) always clobbers reg byte a -Statement [333] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) [ ] ( main:2::mulf_init:7 [ ] ) always clobbers reg byte a +Statement [331] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:2::mulf_init:7 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) always clobbers reg byte a +Statement [332] *((const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100) [ ] ( main:2::mulf_init:7 [ ] ) always clobbers reg byte a +Statement [333] *((const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100) [ ] ( main:2::mulf_init:7 [ ] ) always clobbers reg byte a Statement [338] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [340] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [340] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a Statement [4] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [23] (signed word) muls8s::return#2 ← (signed word) muls8s::return#0 [ mul8s_compare::a#7 mul8s_compare::b#10 muls8s::return#2 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ mul8s_compare::a#7 mul8s_compare::b#10 muls8s::return#2 print_line_cursor#1 ] ) always clobbers reg byte a Statement [24] (signed word) mul8s_compare::ms#0 ← (signed word) muls8s::return#2 [ mul8s_compare::a#7 mul8s_compare::b#10 mul8s_compare::ms#0 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ mul8s_compare::a#7 mul8s_compare::b#10 mul8s_compare::ms#0 print_line_cursor#1 ] ) always clobbers reg byte a @@ -7393,7 +7393,7 @@ Statement [44] (signed word) mul8s_error::ms#0 ← (signed word) mul8s_compare:: Statement [45] (signed word) mul8s_error::mn#0 ← (signed word) mul8s_compare::mn#0 [ mul8s_compare::mf#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ mul8s_compare::mf#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 print_line_cursor#1 ] ) always clobbers reg byte a Statement [46] (signed word) mul8s_error::mf#0 ← (signed word) mul8s_compare::mf#0 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 ] ) always clobbers reg byte a Statement [53] (byte*~) print_char_cursor#192 ← (byte*) print_line_cursor#1 [ print_char_cursor#192 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ print_char_cursor#192 print_line_cursor#1 ] ) always clobbers reg byte a -Statement [60] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#23 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#133 ] ( main:2::mul8s_compare:15::print_ln:56 [ print_line_cursor#1 print_char_cursor#133 ] main:2::mul8s_compare:15::mul8s_error:47::print_ln:91 [ print_line_cursor#1 print_char_cursor#133 ] main:2::mul8u_compare:13::print_ln:241 [ print_line_cursor#1 print_char_cursor#133 ] main:2::mul8u_compare:13::mul8u_error:232::print_ln:264 [ print_line_cursor#1 print_char_cursor#133 ] main:2::mulf_tables_cmp:11::print_ln:299 [ print_line_cursor#1 print_char_cursor#133 ] ) always clobbers reg byte a +Statement [60] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#23 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#1 print_char_cursor#133 ] ( main:2::mul8s_compare:15::print_ln:56 [ print_line_cursor#1 print_char_cursor#133 ] main:2::mul8s_compare:15::mul8s_error:47::print_ln:91 [ print_line_cursor#1 print_char_cursor#133 ] main:2::mul8u_compare:13::print_ln:241 [ print_line_cursor#1 print_char_cursor#133 ] main:2::mul8u_compare:13::mul8u_error:232::print_ln:264 [ print_line_cursor#1 print_char_cursor#133 ] main:2::mulf_tables_cmp:11::print_ln:299 [ print_line_cursor#1 print_char_cursor#133 ] ) always clobbers reg byte a Statement [61] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#133) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#133 ] ( main:2::mul8s_compare:15::print_ln:56 [ print_line_cursor#1 print_char_cursor#133 ] main:2::mul8s_compare:15::mul8s_error:47::print_ln:91 [ print_line_cursor#1 print_char_cursor#133 ] main:2::mul8u_compare:13::print_ln:241 [ print_line_cursor#1 print_char_cursor#133 ] main:2::mul8u_compare:13::mul8u_error:232::print_ln:264 [ print_line_cursor#1 print_char_cursor#133 ] main:2::mulf_tables_cmp:11::print_ln:299 [ print_line_cursor#1 print_char_cursor#133 ] ) always clobbers reg byte a Statement [65] if(*((byte*) print_str::str#16)!=(byte) '@') goto print_str::@2 [ print_char_cursor#132 print_str::str#16 ] ( main:2::mul8s_compare:15::print_str:54 [ print_line_cursor#1 print_char_cursor#132 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:71 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#132 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:75 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#132 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:79 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#132 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:83 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#132 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:87 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#132 print_str::str#16 ] main:2::mul8u_compare:13::print_str:239 [ print_line_cursor#10 print_char_cursor#132 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:232::print_str:244 [ print_line_cursor#10 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#132 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:232::print_str:248 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#132 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:232::print_str:252 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#132 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:232::print_str:256 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#132 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:232::print_str:260 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#132 print_str::str#16 ] main:2::mulf_tables_cmp:11::print_str:284 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 print_char_cursor#132 print_str::str#16 ] main:2::mulf_tables_cmp:11::print_str:288 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#132 print_str::str#16 ] main:2::mulf_tables_cmp:11::print_str:297 [ print_char_cursor#132 print_str::str#16 ] ) always clobbers reg byte a reg byte y Statement [67] *((byte*) print_char_cursor#132) ← *((byte*) print_str::str#16) [ print_char_cursor#132 print_str::str#16 ] ( main:2::mul8s_compare:15::print_str:54 [ print_line_cursor#1 print_char_cursor#132 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:71 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#132 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:75 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#132 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:79 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#132 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:83 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#132 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:87 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#132 print_str::str#16 ] main:2::mul8u_compare:13::print_str:239 [ print_line_cursor#10 print_char_cursor#132 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:232::print_str:244 [ print_line_cursor#10 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#132 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:232::print_str:248 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#132 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:232::print_str:252 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#132 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:232::print_str:256 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#132 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:232::print_str:260 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#132 print_str::str#16 ] main:2::mulf_tables_cmp:11::print_str:284 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 print_char_cursor#132 print_str::str#16 ] main:2::mulf_tables_cmp:11::print_str:288 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#132 print_str::str#16 ] main:2::mulf_tables_cmp:11::print_str:297 [ print_char_cursor#132 print_str::str#16 ] ) always clobbers reg byte a reg byte y @@ -7407,7 +7407,7 @@ Statement [99] (word~) print_word::w#13 ← (word)(signed word) print_sword::w#5 Statement [103] (byte) print_byte::b#1 ← > (word) print_word::w#6 [ print_word::w#6 print_char_cursor#139 print_byte::b#1 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#139 print_byte::b#1 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#139 print_byte::b#1 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100 [ print_line_cursor#1 print_word::w#6 print_char_cursor#139 print_byte::b#1 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:254 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#139 print_byte::b#1 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:258 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#139 print_byte::b#1 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:262 [ print_line_cursor#10 print_word::w#6 print_char_cursor#139 print_byte::b#1 ] main:2::mulf_tables_cmp:11::print_word:286 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#139 print_byte::b#1 ] main:2::mulf_tables_cmp:11::print_word:290 [ print_word::w#6 print_char_cursor#139 print_byte::b#1 ] ) always clobbers reg byte a Statement [105] (byte) print_byte::b#2 ← < (word) print_word::w#6 [ print_char_cursor#18 print_byte::b#2 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#18 print_byte::b#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#18 print_byte::b#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100 [ print_line_cursor#1 print_char_cursor#18 print_byte::b#2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:254 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#18 print_byte::b#2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:258 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#18 print_byte::b#2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:262 [ print_line_cursor#10 print_char_cursor#18 print_byte::b#2 ] main:2::mulf_tables_cmp:11::print_word:286 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#18 print_byte::b#2 ] main:2::mulf_tables_cmp:11::print_word:290 [ print_char_cursor#18 print_byte::b#2 ] ) always clobbers reg byte a Statement [109] (byte~) print_byte::$0 ← (byte) print_byte::b#5 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#5 print_char_cursor#140 print_byte::$0 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:254::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:258::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:262::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mulf_tables_cmp:11::print_word:286::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mulf_tables_cmp:11::print_word:290::print_byte:104 [ print_word::w#6 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:254::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:258::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:262::print_byte:106 [ print_line_cursor#10 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mulf_tables_cmp:11::print_word:286::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mulf_tables_cmp:11::print_word:290::print_byte:106 [ print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:126 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:126 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:232::print_byte:246 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:232::print_byte:250 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#140 print_byte::$0 ] ) always clobbers reg byte a -Statement [112] (byte~) print_byte::$2 ← (byte) print_byte::b#5 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#18 print_byte::$2 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:254::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:258::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:262::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:286::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:290::print_byte:104 [ print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:254::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:258::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:262::print_byte:106 [ print_line_cursor#10 print_char_cursor#18 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:286::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#18 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:290::print_byte:106 [ print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:126 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:126 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_byte:246 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_byte:250 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#18 print_byte::$2 ] ) always clobbers reg byte a +Statement [112] (byte~) print_byte::$2 ← (byte) print_byte::b#5 & (byte/signed byte/word/signed word/dword/signed dword) $f [ print_char_cursor#18 print_byte::$2 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:254::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:258::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:262::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:286::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:290::print_byte:104 [ print_word::w#6 print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:254::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:258::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:262::print_byte:106 [ print_line_cursor#10 print_char_cursor#18 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:286::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#18 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:290::print_byte:106 [ print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:126 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:126 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_byte:246 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#18 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:232::print_byte:250 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#18 print_byte::$2 ] ) always clobbers reg byte a Statement [117] *((byte*) print_char_cursor#84) ← (byte) print_char::ch#5 [ print_char_cursor#84 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_char:96 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_sword::w#4 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_char:96 [ mul8s_error::mf#0 print_line_cursor#1 print_sword::w#4 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_char:96 [ print_line_cursor#1 print_sword::w#4 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104::print_char:111 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104::print_char:111 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104::print_char:111 [ print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:254::print_byte:104::print_char:111 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:258::print_byte:104::print_char:111 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:262::print_byte:104::print_char:111 [ print_line_cursor#10 print_word::w#6 print_byte::b#5 print_char_cursor#84 ] main:2::mulf_tables_cmp:11::print_word:286::print_byte:104::print_char:111 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_byte::b#5 print_char_cursor#84 ] main:2::mulf_tables_cmp:11::print_word:290::print_byte:104::print_char:111 [ print_word::w#6 print_byte::b#5 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106::print_char:111 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106::print_char:111 [ mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106::print_char:111 [ print_line_cursor#1 print_byte::b#5 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:254::print_byte:106::print_char:111 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:258::print_byte:106::print_char:111 [ print_line_cursor#10 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:262::print_byte:106::print_char:111 [ print_line_cursor#10 print_byte::b#5 print_char_cursor#84 ] main:2::mulf_tables_cmp:11::print_word:286::print_byte:106::print_char:111 [ mulf_tables_cmp::kc_sqr#2 print_byte::b#5 print_char_cursor#84 ] main:2::mulf_tables_cmp:11::print_word:290::print_byte:106::print_char:111 [ print_byte::b#5 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:126::print_char:111 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:126::print_char:111 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_byte:246::print_char:111 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_byte:250::print_char:111 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104::print_char:114 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104::print_char:114 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104::print_char:114 [ print_line_cursor#1 print_word::w#6 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:254::print_byte:104::print_char:114 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:258::print_byte:104::print_char:114 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:262::print_byte:104::print_char:114 [ print_line_cursor#10 print_word::w#6 print_char_cursor#84 ] main:2::mulf_tables_cmp:11::print_word:286::print_byte:104::print_char:114 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#84 ] main:2::mulf_tables_cmp:11::print_word:290::print_byte:104::print_char:114 [ print_word::w#6 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106::print_char:114 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106::print_char:114 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106::print_char:114 [ print_line_cursor#1 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:254::print_byte:106::print_char:114 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:258::print_byte:106::print_char:114 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_word:262::print_byte:106::print_char:114 [ print_line_cursor#10 print_char_cursor#84 ] main:2::mulf_tables_cmp:11::print_word:286::print_byte:106::print_char:114 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#84 ] main:2::mulf_tables_cmp:11::print_word:290::print_byte:106::print_char:114 [ print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:126::print_char:114 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:126::print_char:114 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_byte:246::print_char:114 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#84 ] main:2::mul8u_compare:13::mul8u_error:232::print_byte:250::print_char:114 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_char:123 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_sbyte::b#3 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_char:123 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_sbyte::b#3 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_char:129 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_sbyte::b#3 print_char_cursor#84 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_char:129 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_sbyte::b#3 print_char_cursor#84 ] ) always clobbers reg byte y Statement [130] (signed byte) print_sbyte::b#0 ← - (signed byte) print_sbyte::b#3 [ print_char_cursor#18 print_sbyte::b#0 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#18 print_sbyte::b#0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#18 print_sbyte::b#0 ] ) always clobbers reg byte a Statement [134] (word) mul8u::return#2 ← (word) mul8u::res#2 [ mul8s::a#0 mul8s::b#0 mul8u::return#2 ] ( main:2::mul8s_compare:15::mul8s:32 [ mul8s_compare::a#7 mul8s_compare::b#10 mul8s_compare::ms#0 mul8s_compare::mf#0 print_line_cursor#1 mul8s::a#0 mul8s::b#0 mul8u::return#2 ] ) always clobbers reg byte a @@ -7455,28 +7455,28 @@ Statement [282] if(*((byte*) mulf_tables_cmp::kc_sqr#2)==*((byte*) mulf_tables_c Statement [283] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 ] ( main:2::mulf_tables_cmp:11 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 ] ) always clobbers reg byte a Statement [285] (word~) print_word::w#11 ← (word)(byte*) mulf_tables_cmp::asm_sqr#2 [ print_char_cursor#132 print_word::w#11 mulf_tables_cmp::kc_sqr#2 ] ( main:2::mulf_tables_cmp:11 [ print_char_cursor#132 print_word::w#11 mulf_tables_cmp::kc_sqr#2 ] ) always clobbers reg byte a Statement [289] (word~) print_word::w#12 ← (word)(byte*) mulf_tables_cmp::kc_sqr#2 [ print_char_cursor#132 print_word::w#12 ] ( main:2::mulf_tables_cmp:11 [ print_char_cursor#132 print_word::w#12 ] ) always clobbers reg byte a -Statement [295] if((byte*) mulf_tables_cmp::kc_sqr#1<(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512*(byte/signed byte/word/signed word/dword/signed dword) 4) goto mulf_tables_cmp::@1 [ mulf_tables_cmp::kc_sqr#1 mulf_tables_cmp::asm_sqr#1 ] ( main:2::mulf_tables_cmp:11 [ mulf_tables_cmp::kc_sqr#1 mulf_tables_cmp::asm_sqr#1 ] ) always clobbers reg byte a +Statement [295] if((byte*) mulf_tables_cmp::kc_sqr#1<(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200*(byte/signed byte/word/signed word/dword/signed dword) 4) goto mulf_tables_cmp::@1 [ mulf_tables_cmp::kc_sqr#1 mulf_tables_cmp::asm_sqr#1 ] ( main:2::mulf_tables_cmp:11 [ mulf_tables_cmp::kc_sqr#1 mulf_tables_cmp::asm_sqr#1 ] ) always clobbers reg byte a Statement [300] (byte*~) print_char_cursor#225 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#225 ] ( main:2::mulf_tables_cmp:11 [ print_line_cursor#1 print_char_cursor#225 ] ) always clobbers reg byte a Statement asm { ldx#$00 txa .byte$c9 lb1: tya adc#$00 ml1: stamula_sqr1_hi,x tay cmp#$40 txa ror ml9: adc#$00 staml9+1 inx ml0: stamula_sqr1_lo,x bnelb1 incml0+2 incml1+2 clc iny bnelb1 ldx#$00 ldy#$ff !: ldamula_sqr1_hi+1,x stamula_sqr2_hi+$100,x ldamula_sqr1_hi,x stamula_sqr2_hi,y ldamula_sqr1_lo+1,x stamula_sqr2_lo+$100,x ldamula_sqr1_lo,x stamula_sqr2_lo,y dey inx bne!- } always clobbers reg byte a reg byte x reg byte y -Statement [302] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr1_lo#0) [ ] ( main:2::mulf_init_asm:9 [ ] ) always clobbers reg byte a -Statement [303] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr1_hi#0) [ ] ( main:2::mulf_init_asm:9 [ ] ) always clobbers reg byte a -Statement [304] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr2_lo#0) [ ] ( main:2::mulf_init_asm:9 [ ] ) always clobbers reg byte a -Statement [305] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr2_hi#0) [ ] ( main:2::mulf_init_asm:9 [ ] ) always clobbers reg byte a +Statement [302] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr1_lo#0) [ ] ( main:2::mulf_init_asm:9 [ ] ) always clobbers reg byte a +Statement [303] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr1_hi#0) [ ] ( main:2::mulf_init_asm:9 [ ] ) always clobbers reg byte a +Statement [304] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr2_lo#0) [ ] ( main:2::mulf_init_asm:9 [ ] ) always clobbers reg byte a +Statement [305] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr2_hi#0) [ ] ( main:2::mulf_init_asm:9 [ ] ) always clobbers reg byte a Statement [310] (byte~) mulf_init::$2 ← (byte) mulf_init::c#1 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ( main:2::mulf_init:7 [ mulf_init::sqr#4 mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::x_2#3 mulf_init::c#1 mulf_init::$2 ] ) always clobbers reg byte a Statement [315] (byte~) mulf_init::$5 ← < (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ( main:2::mulf_init:7 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$5 ] ) always clobbers reg byte a Statement [316] *((byte*) mulf_init::sqr1_lo#2) ← (byte~) mulf_init::$5 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:2::mulf_init:7 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) always clobbers reg byte y Statement [317] (byte~) mulf_init::$6 ← > (word) mulf_init::sqr#3 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ( main:2::mulf_init:7 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 mulf_init::$6 ] ) always clobbers reg byte a Statement [318] *((byte*) mulf_init::sqr1_hi#2) ← (byte~) mulf_init::$6 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ( main:2::mulf_init:7 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_hi#2 mulf_init::c#1 mulf_init::x_2#2 mulf_init::sqr#3 ] ) always clobbers reg byte y Statement [320] (word) mulf_init::sqr#1 ← (word) mulf_init::sqr#3 + (byte) mulf_init::x_2#2 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:2::mulf_init:7 [ mulf_init::sqr1_lo#2 mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a -Statement [322] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:2::mulf_init:7 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a -Statement [324] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:2::mulf_init:7 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y -Statement [325] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:2::mulf_init:7 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y +Statement [322] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ( main:2::mulf_init:7 [ mulf_init::c#1 mulf_init::sqr#1 mulf_init::sqr1_lo#1 mulf_init::sqr1_hi#1 mulf_init::x_2#2 ] ) always clobbers reg byte a +Statement [324] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:2::mulf_init:7 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y +Statement [325] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ( main:2::mulf_init:7 [ mulf_init::x_255#2 mulf_init::sqr2_lo#2 mulf_init::sqr2_hi#2 mulf_init::dir#2 ] ) always clobbers reg byte a reg byte y Statement [327] (byte) mulf_init::x_255#1 ← (byte) mulf_init::x_255#2 + (byte) mulf_init::dir#2 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ( main:2::mulf_init:7 [ mulf_init::sqr2_lo#2 mulf_init::dir#2 mulf_init::x_255#1 mulf_init::sqr2_hi#1 ] ) always clobbers reg byte a -Statement [331] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:2::mulf_init:7 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) always clobbers reg byte a -Statement [332] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) [ ] ( main:2::mulf_init:7 [ ] ) always clobbers reg byte a -Statement [333] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) [ ] ( main:2::mulf_init:7 [ ] ) always clobbers reg byte a +Statement [331] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ( main:2::mulf_init:7 [ mulf_init::x_255#1 mulf_init::sqr2_lo#1 mulf_init::sqr2_hi#1 mulf_init::dir#3 ] ) always clobbers reg byte a +Statement [332] *((const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100) [ ] ( main:2::mulf_init:7 [ ] ) always clobbers reg byte a +Statement [333] *((const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100) [ ] ( main:2::mulf_init:7 [ ] ) always clobbers reg byte a Statement [338] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [340] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [340] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ mul8s_compare::a#7 mul8s_compare::a#1 ] : zp ZP_BYTE:2 , reg byte y , Potential registers zp ZP_BYTE:3 [ mul8s_compare::b#10 mul8s_compare::b#1 ] : zp ZP_BYTE:3 , reg byte y , Potential registers zp ZP_BYTE:4 [ mul8s_compare::ok#3 mul8s_compare::ok#4 ] : zp ZP_BYTE:4 , reg byte x , reg byte y , @@ -7806,7 +7806,7 @@ mul8s_compare: { .label a = 2 //SEG35 [18] phi from mul8s_compare to mul8s_compare::@1 [phi:mul8s_compare->mul8s_compare::@1] b1_from_mul8s_compare: - //SEG36 [18] phi (signed byte) mul8s_compare::a#7 = -(byte/word/signed word/dword/signed dword) 128 [phi:mul8s_compare->mul8s_compare::@1#0] -- vbsz1=vbsc1 + //SEG36 [18] phi (signed byte) mul8s_compare::a#7 = -(byte/word/signed word/dword/signed dword) $80 [phi:mul8s_compare->mul8s_compare::@1#0] -- vbsz1=vbsc1 lda #-$80 sta a jmp b1 @@ -7818,7 +7818,7 @@ mul8s_compare: { b1: //SEG40 [19] phi from mul8s_compare::@1 to mul8s_compare::@2 [phi:mul8s_compare::@1->mul8s_compare::@2] b2_from_b1: - //SEG41 [19] phi (signed byte) mul8s_compare::b#10 = -(byte/word/signed word/dword/signed dword) 128 [phi:mul8s_compare::@1->mul8s_compare::@2#0] -- vbsz1=vbsc1 + //SEG41 [19] phi (signed byte) mul8s_compare::b#10 = -(byte/word/signed word/dword/signed dword) $80 [phi:mul8s_compare::@1->mul8s_compare::@2#0] -- vbsz1=vbsc1 lda #-$80 sta b jmp b2 @@ -7927,7 +7927,7 @@ mul8s_compare: { b5: //SEG88 [49] (signed byte) mul8s_compare::b#1 ← ++ (signed byte) mul8s_compare::b#10 -- vbsz1=_inc_vbsz1 inc b - //SEG89 [50] if((signed byte) mul8s_compare::b#1!=-(byte/word/signed word/dword/signed dword) 128) goto mul8s_compare::@2 -- vbsz1_neq_vbsc1_then_la1 + //SEG89 [50] if((signed byte) mul8s_compare::b#1!=-(byte/word/signed word/dword/signed dword) $80) goto mul8s_compare::@2 -- vbsz1_neq_vbsc1_then_la1 lda b cmp #-$80 bne b2_from_b5 @@ -7936,7 +7936,7 @@ mul8s_compare: { b10: //SEG91 [51] (signed byte) mul8s_compare::a#1 ← ++ (signed byte) mul8s_compare::a#7 -- vbsz1=_inc_vbsz1 inc a - //SEG92 [52] if((signed byte) mul8s_compare::a#1!=-(byte/word/signed word/dword/signed dword) 128) goto mul8s_compare::@1 -- vbsz1_neq_vbsc1_then_la1 + //SEG92 [52] if((signed byte) mul8s_compare::a#1!=-(byte/word/signed word/dword/signed dword) $80) goto mul8s_compare::@1 -- vbsz1_neq_vbsc1_then_la1 lda a cmp #-$80 bne b1_from_b10 @@ -7991,7 +7991,7 @@ print_ln: { jmp b1 //SEG112 print_ln::@1 b1: - //SEG113 [60] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#23 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG113 [60] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#23 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -8318,7 +8318,7 @@ print_byte: { jmp b1 //SEG234 print_byte::@1 b1: - //SEG235 [112] (byte~) print_byte::$2 ← (byte) print_byte::b#5 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG235 [112] (byte~) print_byte::$2 ← (byte) print_byte::b#5 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG236 [113] (byte) print_char::ch#4 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) -- vbuaa=pbuc1_derefidx_vbuaa @@ -9270,12 +9270,12 @@ mulf_tables_cmp: { .label kc_sqr = 4 //SEG588 [281] phi from mulf_tables_cmp to mulf_tables_cmp::@1 [phi:mulf_tables_cmp->mulf_tables_cmp::@1] b1_from_mulf_tables_cmp: - //SEG589 [281] phi (byte*) mulf_tables_cmp::asm_sqr#2 = (const byte[512]) mula_sqr1_lo#0 [phi:mulf_tables_cmp->mulf_tables_cmp::@1#0] -- pbuz1=pbuc1 + //SEG589 [281] phi (byte*) mulf_tables_cmp::asm_sqr#2 = (const byte[$200]) mula_sqr1_lo#0 [phi:mulf_tables_cmp->mulf_tables_cmp::@1#0] -- pbuz1=pbuc1 lda #mula_sqr1_lo sta asm_sqr+1 - //SEG590 [281] phi (byte*) mulf_tables_cmp::kc_sqr#2 = (const byte[512]) mulf_sqr1_lo#0 [phi:mulf_tables_cmp->mulf_tables_cmp::@1#1] -- pbuz1=pbuc1 + //SEG590 [281] phi (byte*) mulf_tables_cmp::kc_sqr#2 = (const byte[$200]) mulf_sqr1_lo#0 [phi:mulf_tables_cmp->mulf_tables_cmp::@1#1] -- pbuz1=pbuc1 lda #mulf_sqr1_lo @@ -9303,7 +9303,7 @@ mulf_tables_cmp: { //SEG598 [284] call print_str //SEG599 [63] phi from mulf_tables_cmp::@3 to print_str [phi:mulf_tables_cmp::@3->print_str] print_str_from_b3: - //SEG600 [63] phi (byte*) print_char_cursor#152 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:mulf_tables_cmp::@3->print_str#0] -- pbuz1=pbuc1 + //SEG600 [63] phi (byte*) print_char_cursor#152 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:mulf_tables_cmp::@3->print_str#0] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -9355,7 +9355,7 @@ mulf_tables_cmp: { jsr print_word //SEG620 [291] phi from mulf_tables_cmp::@8 to mulf_tables_cmp::@return [phi:mulf_tables_cmp::@8->mulf_tables_cmp::@return] breturn_from_b8: - //SEG621 [291] phi (byte*) print_line_cursor#10 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:mulf_tables_cmp::@8->mulf_tables_cmp::@return#0] -- pbuz1=pbuc1 + //SEG621 [291] phi (byte*) print_line_cursor#10 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:mulf_tables_cmp::@8->mulf_tables_cmp::@return#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -9378,7 +9378,7 @@ mulf_tables_cmp: { bne !+ inc kc_sqr+1 !: - //SEG628 [295] if((byte*) mulf_tables_cmp::kc_sqr#1<(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512*(byte/signed byte/word/signed word/dword/signed dword) 4) goto mulf_tables_cmp::@1 -- pbuz1_lt_pbuc1_then_la1 + //SEG628 [295] if((byte*) mulf_tables_cmp::kc_sqr#1<(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200*(byte/signed byte/word/signed word/dword/signed dword) 4) goto mulf_tables_cmp::@1 -- pbuz1_lt_pbuc1_then_la1 lda kc_sqr+1 cmp #>mulf_sqr1_lo+$200*4 bcc b1_from_b2 @@ -9395,7 +9395,7 @@ mulf_tables_cmp: { //SEG631 [297] call print_str //SEG632 [63] phi from mulf_tables_cmp::@5 to print_str [phi:mulf_tables_cmp::@5->print_str] print_str_from_b5: - //SEG633 [63] phi (byte*) print_char_cursor#152 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:mulf_tables_cmp::@5->print_str#0] -- pbuz1=pbuc1 + //SEG633 [63] phi (byte*) print_char_cursor#152 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:mulf_tables_cmp::@5->print_str#0] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -9415,7 +9415,7 @@ mulf_tables_cmp: { //SEG638 [58] phi from mulf_tables_cmp::@10 to print_ln [phi:mulf_tables_cmp::@10->print_ln] print_ln_from_b10: //SEG639 [58] phi (byte*) print_char_cursor#133 = (byte*) print_char_cursor#132 [phi:mulf_tables_cmp::@10->print_ln#0] -- register_copy - //SEG640 [58] phi (byte*) print_line_cursor#45 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:mulf_tables_cmp::@10->print_ln#1] -- pbuz1=pbuc1 + //SEG640 [58] phi (byte*) print_line_cursor#45 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:mulf_tables_cmp::@10->print_ln#1] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -9480,16 +9480,16 @@ mulf_init_asm: { dey inx bne !- - //SEG647 [302] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr1_lo#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG647 [302] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr1_lo#0) -- _deref_pbuc1=_deref_pbuc2 lda mula_sqr1_lo sta mem - //SEG648 [303] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr1_hi#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG648 [303] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr1_hi#0) -- _deref_pbuc1=_deref_pbuc2 lda mula_sqr1_hi sta mem - //SEG649 [304] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr2_lo#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG649 [304] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr2_lo#0) -- _deref_pbuc1=_deref_pbuc2 lda mula_sqr2_lo sta mem - //SEG650 [305] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr2_hi#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG650 [305] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr2_hi#0) -- _deref_pbuc1=_deref_pbuc2 lda mula_sqr2_hi sta mem jmp breturn @@ -9513,12 +9513,12 @@ mulf_init: { //SEG655 [308] phi (byte) mulf_init::x_2#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#0] -- vbuz1=vbuc1 lda #0 sta x_2 - //SEG656 [308] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 + //SEG656 [308] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[$200]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 lda #mulf_sqr1_hi+1 sta sqr1_hi+1 - //SEG657 [308] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 + //SEG657 [308] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[$200]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 lda #mulf_sqr1_lo+1 @@ -9595,7 +9595,7 @@ mulf_init: { bne !+ inc sqr1_lo+1 !: - //SEG684 [322] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG684 [322] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 -- pbuz1_neq_pbuc1_then_la1 lda sqr1_lo+1 cmp #>mulf_sqr1_lo+$200 bne b1_from_b2 @@ -9604,15 +9604,15 @@ mulf_init: { bne b1_from_b2 //SEG685 [323] phi from mulf_init::@2 to mulf_init::@3 [phi:mulf_init::@2->mulf_init::@3] b3_from_b2: - //SEG686 [323] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) 255 [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 + //SEG686 [323] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) $ff [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 lda #$ff sta dir - //SEG687 [323] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[512]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 + //SEG687 [323] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[$200]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 lda #mulf_sqr2_hi sta sqr2_hi+1 - //SEG688 [323] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[512]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 + //SEG688 [323] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[$200]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 lda #mulf_sqr2_lo @@ -9629,11 +9629,11 @@ mulf_init: { jmp b3 //SEG695 mulf_init::@3 b3: - //SEG696 [324] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + //SEG696 [324] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda mulf_sqr1_lo,x ldy #0 sta (sqr2_lo),y - //SEG697 [325] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + //SEG697 [325] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda mulf_sqr1_hi,x ldy #0 sta (sqr2_hi),y @@ -9663,7 +9663,7 @@ mulf_init: { bne !+ inc sqr2_lo+1 !: - //SEG705 [331] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 -- pbuz1_neq_pbuc1_then_la1 + //SEG705 [331] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 -- pbuz1_neq_pbuc1_then_la1 lda sqr2_lo+1 cmp #>mulf_sqr2_lo+$1ff bne b3_from_b4 @@ -9673,11 +9673,11 @@ mulf_init: { jmp b8 //SEG706 mulf_init::@8 b8: - //SEG707 [332] *((const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256) -- _deref_pbuc1=_deref_pbuc2 + //SEG707 [332] *((const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $100) -- _deref_pbuc1=_deref_pbuc2 // Set the very last value g(511) = f(256) lda mulf_sqr1_lo+$100 sta mulf_sqr2_lo+$1ff - //SEG708 [333] *((const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511) ← *((const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256) -- _deref_pbuc1=_deref_pbuc2 + //SEG708 [333] *((const byte[$200]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) $1ff) ← *((const byte[$200]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) $100) -- _deref_pbuc1=_deref_pbuc2 lda mulf_sqr1_hi+$100 sta mulf_sqr2_hi+$1ff jmp breturn @@ -9701,7 +9701,7 @@ print_cls: { .label sc = 4 //SEG716 [337] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] b1_from_print_cls: - //SEG717 [337] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG717 [337] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -9722,7 +9722,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG723 [340] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG723 [340] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1_from_b1 @@ -10225,7 +10225,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (void()) main() (label) main::@1 (label) main::@2 @@ -10394,14 +10394,14 @@ FINAL SYMBOL TABLE (word) mul8u_error::ms (word) mul8u_error::ms#0 ms zp ZP_WORD:8 0.3076923076923077 (const string) mul8u_error::str str = (string) "multiply mismatch @" -(byte[512]) mula_sqr1_hi -(const byte[512]) mula_sqr1_hi#0 mula_sqr1_hi = { fill( 512, 0) } -(byte[512]) mula_sqr1_lo -(const byte[512]) mula_sqr1_lo#0 mula_sqr1_lo = { fill( 512, 0) } -(byte[512]) mula_sqr2_hi -(const byte[512]) mula_sqr2_hi#0 mula_sqr2_hi = { fill( 512, 0) } -(byte[512]) mula_sqr2_lo -(const byte[512]) mula_sqr2_lo#0 mula_sqr2_lo = { fill( 512, 0) } +(byte[$200]) mula_sqr1_hi +(const byte[$200]) mula_sqr1_hi#0 mula_sqr1_hi = { fill( $200, 0) } +(byte[$200]) mula_sqr1_lo +(const byte[$200]) mula_sqr1_lo#0 mula_sqr1_lo = { fill( $200, 0) } +(byte[$200]) mula_sqr2_hi +(const byte[$200]) mula_sqr2_hi#0 mula_sqr2_hi = { fill( $200, 0) } +(byte[$200]) mula_sqr2_lo +(const byte[$200]) mula_sqr2_lo#0 mula_sqr2_lo = { fill( $200, 0) } (signed word()) mulf8s((signed byte) mulf8s::a , (signed byte) mulf8s::b) (label) mulf8s::@2 (label) mulf8s::@4 @@ -10436,7 +10436,7 @@ FINAL SYMBOL TABLE (word) mulf8s_prepared::m#4 m zp ZP_WORD:14 1.3333333333333333 (word) mulf8s_prepared::m#5 m zp ZP_WORD:14 2.5 (signed byte*) mulf8s_prepared::memA -(const signed byte*) mulf8s_prepared::memA#0 memA = ((signed byte*))(byte/word/signed word/dword/signed dword) 253 +(const signed byte*) mulf8s_prepared::memA#0 memA = ((signed byte*))(byte/word/signed word/dword/signed dword) $fd (signed word) mulf8s_prepared::return (signed word) mulf8s_prepared::return#2 return zp ZP_WORD:14 4.0 (word()) mulf8u((byte) mulf8u::a , (byte) mulf8u::b) @@ -10457,7 +10457,7 @@ FINAL SYMBOL TABLE (byte) mulf8u_prepare::a#2 reg byte a 6.0 (byte~) mulf8u_prepare::a#3 reg byte a 4.0 (byte*) mulf8u_prepare::memA -(const byte*) mulf8u_prepare::memA#0 memA = ((byte*))(byte/word/signed word/dword/signed dword) 253 +(const byte*) mulf8u_prepare::memA#0 memA = ((byte*))(byte/word/signed word/dword/signed dword) $fd (word()) mulf8u_prepared((byte) mulf8u_prepared::b) (label) mulf8u_prepared::@return (byte) mulf8u_prepared::b @@ -10465,9 +10465,9 @@ FINAL SYMBOL TABLE (byte) mulf8u_prepared::b#2 reg byte x 6.0 (byte~) mulf8u_prepared::b#3 reg byte x 4.0 (byte*) mulf8u_prepared::memB -(const byte*) mulf8u_prepared::memB#0 memB = ((byte*))(byte/word/signed word/dword/signed dword) 255 +(const byte*) mulf8u_prepared::memB#0 memB = ((byte*))(byte/word/signed word/dword/signed dword) $ff (byte*) mulf8u_prepared::resL -(const byte*) mulf8u_prepared::resL#0 resL = ((byte*))(byte/word/signed word/dword/signed dword) 254 +(const byte*) mulf8u_prepared::resL#0 resL = ((byte*))(byte/word/signed word/dword/signed dword) $fe (word) mulf8u_prepared::return (word) mulf8u_prepared::return#0 return zp ZP_WORD:14 1.5 (word) mulf8u_prepared::return#2 return zp ZP_WORD:14 4.0 @@ -10517,15 +10517,15 @@ FINAL SYMBOL TABLE (void()) mulf_init_asm() (label) mulf_init_asm::@return (byte*) mulf_init_asm::mem -(const byte*) mulf_init_asm::mem#0 mem = ((byte*))(byte/word/signed word/dword/signed dword) 255 -(byte[512]) mulf_sqr1_hi -(const byte[512]) mulf_sqr1_hi#0 mulf_sqr1_hi = { fill( 512, 0) } -(byte[512]) mulf_sqr1_lo -(const byte[512]) mulf_sqr1_lo#0 mulf_sqr1_lo = { fill( 512, 0) } -(byte[512]) mulf_sqr2_hi -(const byte[512]) mulf_sqr2_hi#0 mulf_sqr2_hi = { fill( 512, 0) } -(byte[512]) mulf_sqr2_lo -(const byte[512]) mulf_sqr2_lo#0 mulf_sqr2_lo = { fill( 512, 0) } +(const byte*) mulf_init_asm::mem#0 mem = ((byte*))(byte/word/signed word/dword/signed dword) $ff +(byte[$200]) mulf_sqr1_hi +(const byte[$200]) mulf_sqr1_hi#0 mulf_sqr1_hi = { fill( $200, 0) } +(byte[$200]) mulf_sqr1_lo +(const byte[$200]) mulf_sqr1_lo#0 mulf_sqr1_lo = { fill( $200, 0) } +(byte[$200]) mulf_sqr2_hi +(const byte[$200]) mulf_sqr2_hi#0 mulf_sqr2_hi = { fill( $200, 0) } +(byte[$200]) mulf_sqr2_lo +(const byte[$200]) mulf_sqr2_lo#0 mulf_sqr2_lo = { fill( $200, 0) } (void()) mulf_tables_cmp() (label) mulf_tables_cmp::@1 (label) mulf_tables_cmp::@10 @@ -10794,7 +10794,7 @@ mul8s_compare: { .label b = 3 .label a = 2 //SEG35 [18] phi from mul8s_compare to mul8s_compare::@1 [phi:mul8s_compare->mul8s_compare::@1] - //SEG36 [18] phi (signed byte) mul8s_compare::a#7 = -(byte/word/signed word/dword/signed dword) 128 [phi:mul8s_compare->mul8s_compare::@1#0] -- vbsz1=vbsc1 + //SEG36 [18] phi (signed byte) mul8s_compare::a#7 = -(byte/word/signed word/dword/signed dword) $80 [phi:mul8s_compare->mul8s_compare::@1#0] -- vbsz1=vbsc1 lda #-$80 sta a //SEG37 [18] phi from mul8s_compare::@10 to mul8s_compare::@1 [phi:mul8s_compare::@10->mul8s_compare::@1] @@ -10802,7 +10802,7 @@ mul8s_compare: { //SEG39 mul8s_compare::@1 b1: //SEG40 [19] phi from mul8s_compare::@1 to mul8s_compare::@2 [phi:mul8s_compare::@1->mul8s_compare::@2] - //SEG41 [19] phi (signed byte) mul8s_compare::b#10 = -(byte/word/signed word/dword/signed dword) 128 [phi:mul8s_compare::@1->mul8s_compare::@2#0] -- vbsz1=vbsc1 + //SEG41 [19] phi (signed byte) mul8s_compare::b#10 = -(byte/word/signed word/dword/signed dword) $80 [phi:mul8s_compare::@1->mul8s_compare::@2#0] -- vbsz1=vbsc1 lda #-$80 sta b //SEG42 [19] phi from mul8s_compare::@5 to mul8s_compare::@2 [phi:mul8s_compare::@5->mul8s_compare::@2] @@ -10891,14 +10891,14 @@ mul8s_compare: { b5: //SEG88 [49] (signed byte) mul8s_compare::b#1 ← ++ (signed byte) mul8s_compare::b#10 -- vbsz1=_inc_vbsz1 inc b - //SEG89 [50] if((signed byte) mul8s_compare::b#1!=-(byte/word/signed word/dword/signed dword) 128) goto mul8s_compare::@2 -- vbsz1_neq_vbsc1_then_la1 + //SEG89 [50] if((signed byte) mul8s_compare::b#1!=-(byte/word/signed word/dword/signed dword) $80) goto mul8s_compare::@2 -- vbsz1_neq_vbsc1_then_la1 lda b cmp #-$80 bne b2 //SEG90 mul8s_compare::@10 //SEG91 [51] (signed byte) mul8s_compare::a#1 ← ++ (signed byte) mul8s_compare::a#7 -- vbsz1=_inc_vbsz1 inc a - //SEG92 [52] if((signed byte) mul8s_compare::a#1!=-(byte/word/signed word/dword/signed dword) 128) goto mul8s_compare::@1 -- vbsz1_neq_vbsc1_then_la1 + //SEG92 [52] if((signed byte) mul8s_compare::a#1!=-(byte/word/signed word/dword/signed dword) $80) goto mul8s_compare::@1 -- vbsz1_neq_vbsc1_then_la1 lda a cmp #-$80 bne b1 @@ -10938,7 +10938,7 @@ print_ln: { //SEG111 [59] phi (byte*) print_line_cursor#23 = (byte*) print_line_cursor#45 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy //SEG112 print_ln::@1 b1: - //SEG113 [60] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#23 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG113 [60] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#23 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -11198,7 +11198,7 @@ print_byte: { //SEG233 [116] phi (byte) print_char::ch#5 = (byte) print_char::ch#3 [phi:print_byte->print_char#1] -- register_copy jsr print_char //SEG234 print_byte::@1 - //SEG235 [112] (byte~) print_byte::$2 ← (byte) print_byte::b#5 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG235 [112] (byte~) print_byte::$2 ← (byte) print_byte::b#5 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f //SEG236 [113] (byte) print_char::ch#4 ← *((const byte[]) print_hextab#0 + (byte~) print_byte::$2) -- vbuaa=pbuc1_derefidx_vbuaa @@ -11955,12 +11955,12 @@ mulf_tables_cmp: { .label asm_sqr = 8 .label kc_sqr = 4 //SEG588 [281] phi from mulf_tables_cmp to mulf_tables_cmp::@1 [phi:mulf_tables_cmp->mulf_tables_cmp::@1] - //SEG589 [281] phi (byte*) mulf_tables_cmp::asm_sqr#2 = (const byte[512]) mula_sqr1_lo#0 [phi:mulf_tables_cmp->mulf_tables_cmp::@1#0] -- pbuz1=pbuc1 + //SEG589 [281] phi (byte*) mulf_tables_cmp::asm_sqr#2 = (const byte[$200]) mula_sqr1_lo#0 [phi:mulf_tables_cmp->mulf_tables_cmp::@1#0] -- pbuz1=pbuc1 lda #mula_sqr1_lo sta asm_sqr+1 - //SEG590 [281] phi (byte*) mulf_tables_cmp::kc_sqr#2 = (const byte[512]) mulf_sqr1_lo#0 [phi:mulf_tables_cmp->mulf_tables_cmp::@1#1] -- pbuz1=pbuc1 + //SEG590 [281] phi (byte*) mulf_tables_cmp::kc_sqr#2 = (const byte[$200]) mulf_sqr1_lo#0 [phi:mulf_tables_cmp->mulf_tables_cmp::@1#1] -- pbuz1=pbuc1 lda #mulf_sqr1_lo @@ -11981,7 +11981,7 @@ mulf_tables_cmp: { sta BGCOL //SEG598 [284] call print_str //SEG599 [63] phi from mulf_tables_cmp::@3 to print_str [phi:mulf_tables_cmp::@3->print_str] - //SEG600 [63] phi (byte*) print_char_cursor#152 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:mulf_tables_cmp::@3->print_str#0] -- pbuz1=pbuc1 + //SEG600 [63] phi (byte*) print_char_cursor#152 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:mulf_tables_cmp::@3->print_str#0] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -12022,7 +12022,7 @@ mulf_tables_cmp: { //SEG619 [102] phi (word) print_word::w#6 = (word~) print_word::w#12 [phi:mulf_tables_cmp::@8->print_word#1] -- register_copy jsr print_word //SEG620 [291] phi from mulf_tables_cmp::@8 to mulf_tables_cmp::@return [phi:mulf_tables_cmp::@8->mulf_tables_cmp::@return] - //SEG621 [291] phi (byte*) print_line_cursor#10 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:mulf_tables_cmp::@8->mulf_tables_cmp::@return#0] -- pbuz1=pbuc1 + //SEG621 [291] phi (byte*) print_line_cursor#10 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:mulf_tables_cmp::@8->mulf_tables_cmp::@return#0] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -12044,7 +12044,7 @@ mulf_tables_cmp: { bne !+ inc kc_sqr+1 !: - //SEG628 [295] if((byte*) mulf_tables_cmp::kc_sqr#1<(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512*(byte/signed byte/word/signed word/dword/signed dword) 4) goto mulf_tables_cmp::@1 -- pbuz1_lt_pbuc1_then_la1 + //SEG628 [295] if((byte*) mulf_tables_cmp::kc_sqr#1<(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200*(byte/signed byte/word/signed word/dword/signed dword) 4) goto mulf_tables_cmp::@1 -- pbuz1_lt_pbuc1_then_la1 lda kc_sqr+1 cmp #>mulf_sqr1_lo+$200*4 bcc b1 @@ -12057,7 +12057,7 @@ mulf_tables_cmp: { //SEG630 mulf_tables_cmp::@5 //SEG631 [297] call print_str //SEG632 [63] phi from mulf_tables_cmp::@5 to print_str [phi:mulf_tables_cmp::@5->print_str] - //SEG633 [63] phi (byte*) print_char_cursor#152 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:mulf_tables_cmp::@5->print_str#0] -- pbuz1=pbuc1 + //SEG633 [63] phi (byte*) print_char_cursor#152 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:mulf_tables_cmp::@5->print_str#0] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -12073,7 +12073,7 @@ mulf_tables_cmp: { //SEG637 [299] call print_ln //SEG638 [58] phi from mulf_tables_cmp::@10 to print_ln [phi:mulf_tables_cmp::@10->print_ln] //SEG639 [58] phi (byte*) print_char_cursor#133 = (byte*) print_char_cursor#132 [phi:mulf_tables_cmp::@10->print_ln#0] -- register_copy - //SEG640 [58] phi (byte*) print_line_cursor#45 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:mulf_tables_cmp::@10->print_ln#1] -- pbuz1=pbuc1 + //SEG640 [58] phi (byte*) print_line_cursor#45 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:mulf_tables_cmp::@10->print_ln#1] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 @@ -12137,16 +12137,16 @@ mulf_init_asm: { dey inx bne !- - //SEG647 [302] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr1_lo#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG647 [302] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr1_lo#0) -- _deref_pbuc1=_deref_pbuc2 lda mula_sqr1_lo sta mem - //SEG648 [303] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr1_hi#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG648 [303] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr1_hi#0) -- _deref_pbuc1=_deref_pbuc2 lda mula_sqr1_hi sta mem - //SEG649 [304] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr2_lo#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG649 [304] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr2_lo#0) -- _deref_pbuc1=_deref_pbuc2 lda mula_sqr2_lo sta mem - //SEG650 [305] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr2_hi#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG650 [305] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[$200]) mula_sqr2_hi#0) -- _deref_pbuc1=_deref_pbuc2 lda mula_sqr2_hi sta mem //SEG651 mulf_init_asm::@return @@ -12167,12 +12167,12 @@ mulf_init: { //SEG655 [308] phi (byte) mulf_init::x_2#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mulf_init->mulf_init::@1#0] -- vbuz1=vbuc1 lda #0 sta x_2 - //SEG656 [308] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 + //SEG656 [308] phi (byte*) mulf_init::sqr1_hi#2 = (const byte[$200]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#1] -- pbuz1=pbuc1 lda #mulf_sqr1_hi+1 sta sqr1_hi+1 - //SEG657 [308] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 + //SEG657 [308] phi (byte*) mulf_init::sqr1_lo#2 = (const byte[$200]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:mulf_init->mulf_init::@1#2] -- pbuz1=pbuc1 lda #mulf_sqr1_lo+1 @@ -12239,7 +12239,7 @@ mulf_init: { bne !+ inc sqr1_lo+1 !: - //SEG684 [322] if((byte*) mulf_init::sqr1_lo#1!=(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512) goto mulf_init::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG684 [322] if((byte*) mulf_init::sqr1_lo#1!=(const byte[$200]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) $200) goto mulf_init::@1 -- pbuz1_neq_pbuc1_then_la1 lda sqr1_lo+1 cmp #>mulf_sqr1_lo+$200 bne b1 @@ -12247,15 +12247,15 @@ mulf_init: { cmp #mulf_init::@3] - //SEG686 [323] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) 255 [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 + //SEG686 [323] phi (byte) mulf_init::dir#2 = (byte/word/signed word/dword/signed dword) $ff [phi:mulf_init::@2->mulf_init::@3#0] -- vbuz1=vbuc1 lda #$ff sta dir - //SEG687 [323] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[512]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 + //SEG687 [323] phi (byte*) mulf_init::sqr2_hi#2 = (const byte[$200]) mulf_sqr2_hi#0 [phi:mulf_init::@2->mulf_init::@3#1] -- pbuz1=pbuc1 lda #mulf_sqr2_hi sta sqr2_hi+1 - //SEG688 [323] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[512]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 + //SEG688 [323] phi (byte*) mulf_init::sqr2_lo#2 = (const byte[$200]) mulf_sqr2_lo#0 [phi:mulf_init::@2->mulf_init::@3#2] -- pbuz1=pbuc1 lda #mulf_sqr2_lo @@ -12269,11 +12269,11 @@ mulf_init: { //SEG694 [323] phi (byte) mulf_init::x_255#2 = (byte) mulf_init::x_255#1 [phi:mulf_init::@4->mulf_init::@3#3] -- register_copy //SEG695 mulf_init::@3 b3: - //SEG696 [324] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[512]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + //SEG696 [324] *((byte*) mulf_init::sqr2_lo#2) ← *((const byte[$200]) mulf_sqr1_lo#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda mulf_sqr1_lo,x ldy #0 sta (sqr2_lo),y - //SEG697 [325] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[512]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + //SEG697 [325] *((byte*) mulf_init::sqr2_hi#2) ← *((const byte[$200]) mulf_sqr1_hi#0 + (byte) mulf_init::x_255#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda mulf_sqr1_hi,x sta (sqr2_hi),y //SEG698 [326] (byte*) mulf_init::sqr2_hi#1 ← ++ (byte*) mulf_init::sqr2_hi#2 -- pbuz1=_inc_pbuz1 @@ -12300,7 +12300,7 @@ mulf_init: { bne !+ inc sqr2_lo+1 !: - //SEG705 [331] if((byte*) mulf_init::sqr2_lo#1!=(const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511) goto mulf_init::@3 -- pbuz1_neq_pbuc1_then_la1 + //SEG705 [331] if((byte*) mulf_init::sqr2_lo#1!=(const byte[$200]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) $1ff) goto mulf_init::@3 -- pbuz1_neq_pbuc1_then_la1 lda sqr2_lo+1 cmp #>mulf_sqr2_lo+$1ff bne b3 @@ -12308,11 +12308,11 @@ mulf_init: { cmp #print_cls::@1] - //SEG717 [337] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG717 [337] phi (byte*) print_cls::sc#2 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #<$400 sta sc lda #>$400 @@ -12346,7 +12346,7 @@ print_cls: { bne !+ inc sc+1 !: - //SEG723 [340] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG723 [340] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) $400+(word/signed word/dword/signed dword) $3e8) goto print_cls::@1 -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>$400+$3e8 bne b1 diff --git a/src/test/ref/test-multiply-8bit.sym b/src/test/ref/test-multiply-8bit.sym index dfc0aaac1..16bdf578b 100644 --- a/src/test/ref/test-multiply-8bit.sym +++ b/src/test/ref/test-multiply-8bit.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 +(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) $d021 (void()) main() (label) main::@1 (label) main::@2 @@ -171,14 +171,14 @@ (word) mul8u_error::ms (word) mul8u_error::ms#0 ms zp ZP_WORD:8 0.3076923076923077 (const string) mul8u_error::str str = (string) "multiply mismatch @" -(byte[512]) mula_sqr1_hi -(const byte[512]) mula_sqr1_hi#0 mula_sqr1_hi = { fill( 512, 0) } -(byte[512]) mula_sqr1_lo -(const byte[512]) mula_sqr1_lo#0 mula_sqr1_lo = { fill( 512, 0) } -(byte[512]) mula_sqr2_hi -(const byte[512]) mula_sqr2_hi#0 mula_sqr2_hi = { fill( 512, 0) } -(byte[512]) mula_sqr2_lo -(const byte[512]) mula_sqr2_lo#0 mula_sqr2_lo = { fill( 512, 0) } +(byte[$200]) mula_sqr1_hi +(const byte[$200]) mula_sqr1_hi#0 mula_sqr1_hi = { fill( $200, 0) } +(byte[$200]) mula_sqr1_lo +(const byte[$200]) mula_sqr1_lo#0 mula_sqr1_lo = { fill( $200, 0) } +(byte[$200]) mula_sqr2_hi +(const byte[$200]) mula_sqr2_hi#0 mula_sqr2_hi = { fill( $200, 0) } +(byte[$200]) mula_sqr2_lo +(const byte[$200]) mula_sqr2_lo#0 mula_sqr2_lo = { fill( $200, 0) } (signed word()) mulf8s((signed byte) mulf8s::a , (signed byte) mulf8s::b) (label) mulf8s::@2 (label) mulf8s::@4 @@ -213,7 +213,7 @@ (word) mulf8s_prepared::m#4 m zp ZP_WORD:14 1.3333333333333333 (word) mulf8s_prepared::m#5 m zp ZP_WORD:14 2.5 (signed byte*) mulf8s_prepared::memA -(const signed byte*) mulf8s_prepared::memA#0 memA = ((signed byte*))(byte/word/signed word/dword/signed dword) 253 +(const signed byte*) mulf8s_prepared::memA#0 memA = ((signed byte*))(byte/word/signed word/dword/signed dword) $fd (signed word) mulf8s_prepared::return (signed word) mulf8s_prepared::return#2 return zp ZP_WORD:14 4.0 (word()) mulf8u((byte) mulf8u::a , (byte) mulf8u::b) @@ -234,7 +234,7 @@ (byte) mulf8u_prepare::a#2 reg byte a 6.0 (byte~) mulf8u_prepare::a#3 reg byte a 4.0 (byte*) mulf8u_prepare::memA -(const byte*) mulf8u_prepare::memA#0 memA = ((byte*))(byte/word/signed word/dword/signed dword) 253 +(const byte*) mulf8u_prepare::memA#0 memA = ((byte*))(byte/word/signed word/dword/signed dword) $fd (word()) mulf8u_prepared((byte) mulf8u_prepared::b) (label) mulf8u_prepared::@return (byte) mulf8u_prepared::b @@ -242,9 +242,9 @@ (byte) mulf8u_prepared::b#2 reg byte x 6.0 (byte~) mulf8u_prepared::b#3 reg byte x 4.0 (byte*) mulf8u_prepared::memB -(const byte*) mulf8u_prepared::memB#0 memB = ((byte*))(byte/word/signed word/dword/signed dword) 255 +(const byte*) mulf8u_prepared::memB#0 memB = ((byte*))(byte/word/signed word/dword/signed dword) $ff (byte*) mulf8u_prepared::resL -(const byte*) mulf8u_prepared::resL#0 resL = ((byte*))(byte/word/signed word/dword/signed dword) 254 +(const byte*) mulf8u_prepared::resL#0 resL = ((byte*))(byte/word/signed word/dword/signed dword) $fe (word) mulf8u_prepared::return (word) mulf8u_prepared::return#0 return zp ZP_WORD:14 1.5 (word) mulf8u_prepared::return#2 return zp ZP_WORD:14 4.0 @@ -294,15 +294,15 @@ (void()) mulf_init_asm() (label) mulf_init_asm::@return (byte*) mulf_init_asm::mem -(const byte*) mulf_init_asm::mem#0 mem = ((byte*))(byte/word/signed word/dword/signed dword) 255 -(byte[512]) mulf_sqr1_hi -(const byte[512]) mulf_sqr1_hi#0 mulf_sqr1_hi = { fill( 512, 0) } -(byte[512]) mulf_sqr1_lo -(const byte[512]) mulf_sqr1_lo#0 mulf_sqr1_lo = { fill( 512, 0) } -(byte[512]) mulf_sqr2_hi -(const byte[512]) mulf_sqr2_hi#0 mulf_sqr2_hi = { fill( 512, 0) } -(byte[512]) mulf_sqr2_lo -(const byte[512]) mulf_sqr2_lo#0 mulf_sqr2_lo = { fill( 512, 0) } +(const byte*) mulf_init_asm::mem#0 mem = ((byte*))(byte/word/signed word/dword/signed dword) $ff +(byte[$200]) mulf_sqr1_hi +(const byte[$200]) mulf_sqr1_hi#0 mulf_sqr1_hi = { fill( $200, 0) } +(byte[$200]) mulf_sqr1_lo +(const byte[$200]) mulf_sqr1_lo#0 mulf_sqr1_lo = { fill( $200, 0) } +(byte[$200]) mulf_sqr2_hi +(const byte[$200]) mulf_sqr2_hi#0 mulf_sqr2_hi = { fill( $200, 0) } +(byte[$200]) mulf_sqr2_lo +(const byte[$200]) mulf_sqr2_lo#0 mulf_sqr2_lo = { fill( $200, 0) } (void()) mulf_tables_cmp() (label) mulf_tables_cmp::@1 (label) mulf_tables_cmp::@10 diff --git a/src/test/ref/test-scroll-up.cfg b/src/test/ref/test-scroll-up.cfg index 27dc01c16..6d8adf2f0 100644 --- a/src/test/ref/test-scroll-up.cfg +++ b/src/test/ref/test-scroll-up.cfg @@ -32,14 +32,14 @@ scrollup3::@1: scope:[scrollup3] from scrollup3 scrollup3::@3 scrollup3::@2: scope:[scrollup3] from scrollup3::@1 scrollup3::@2 [14] (byte) scrollup3::c#2 ← phi( scrollup3::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 scrollup3::@2/(byte) scrollup3::c#1 ) [14] (word) scrollup3::l2#2 ← phi( scrollup3::@1/(word~) scrollup3::l2#4 scrollup3::@2/(word) scrollup3::l2#1 ) - [15] *((const byte*) screen#0 + (word) scrollup3::l2#2) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (word) scrollup3::l2#2) + [15] *((const byte*) screen#0 + (word) scrollup3::l2#2) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (word) scrollup3::l2#2) [16] (word) scrollup3::l2#1 ← ++ (word) scrollup3::l2#2 [17] (byte) scrollup3::c#1 ← ++ (byte) scrollup3::c#2 - [18] if((byte) scrollup3::c#1<(byte/signed byte/word/signed word/dword/signed dword) 40) goto scrollup3::@2 + [18] if((byte) scrollup3::c#1<(byte/signed byte/word/signed word/dword/signed dword) $28) goto scrollup3::@2 to:scrollup3::@3 scrollup3::@3: scope:[scrollup3] from scrollup3::@2 - [19] (word) scrollup3::line#1 ← (word) scrollup3::l2#0 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [20] if((word) scrollup3::line#1<(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24) goto scrollup3::@1 + [19] (word) scrollup3::line#1 ← (word) scrollup3::l2#0 + (byte/signed byte/word/signed word/dword/signed dword) $28 + [20] if((word) scrollup3::line#1<(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18) goto scrollup3::@1 to:scrollup3::@return scrollup3::@return: scope:[scrollup3] from scrollup3::@3 [21] return @@ -50,7 +50,7 @@ scrollup2: scope:[scrollup2] from main::@1 scrollup2::@1: scope:[scrollup2] from scrollup2 scrollup2::@3 [23] (byte) scrollup2::l#4 ← phi( scrollup2/(byte/signed byte/word/signed word/dword/signed dword) 0 scrollup2::@3/(byte) scrollup2::l#1 ) [23] (byte*) scrollup2::line1#3 ← phi( scrollup2/(const byte*) screen#0 scrollup2::@3/(byte*) scrollup2::line1#1 ) - [23] (byte*) scrollup2::line2#3 ← phi( scrollup2/(const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 scrollup2::@3/(byte*) scrollup2::line2#1 ) + [23] (byte*) scrollup2::line2#3 ← phi( scrollup2/(const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 scrollup2::@3/(byte*) scrollup2::line2#1 ) to:scrollup2::@2 scrollup2::@2: scope:[scrollup2] from scrollup2::@1 scrollup2::@2 [24] (byte) scrollup2::c#2 ← phi( scrollup2::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 scrollup2::@2/(byte) scrollup2::c#1 ) @@ -60,11 +60,11 @@ scrollup2::@2: scope:[scrollup2] from scrollup2::@1 scrollup2::@2 [26] (byte*) scrollup2::line1#1 ← ++ (byte*) scrollup2::line1#2 [27] (byte*) scrollup2::line2#1 ← ++ (byte*) scrollup2::line2#2 [28] (byte) scrollup2::c#1 ← ++ (byte) scrollup2::c#2 - [29] if((byte) scrollup2::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto scrollup2::@2 + [29] if((byte) scrollup2::c#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto scrollup2::@2 to:scrollup2::@3 scrollup2::@3: scope:[scrollup2] from scrollup2::@2 [30] (byte) scrollup2::l#1 ← ++ (byte) scrollup2::l#4 - [31] if((byte) scrollup2::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 24) goto scrollup2::@1 + [31] if((byte) scrollup2::l#1!=(byte/signed byte/word/signed word/dword/signed dword) $18) goto scrollup2::@1 to:scrollup2::@return scrollup2::@return: scope:[scrollup2] from scrollup2::@3 [32] return @@ -79,13 +79,13 @@ scrollup1::@2: scope:[scrollup1] from scrollup1::@1 scrollup1::@2 [35] (byte) scrollup1::c#2 ← phi( scrollup1::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 scrollup1::@2/(byte) scrollup1::c#1 ) [36] (word~) scrollup1::$0 ← (word) scrollup1::line#4 + (byte) scrollup1::c#2 [37] (word~) scrollup1::$2 ← (word) scrollup1::line#4 + (byte) scrollup1::c#2 - [38] *((const byte*) screen#0 + (word~) scrollup1::$0) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (word~) scrollup1::$2) + [38] *((const byte*) screen#0 + (word~) scrollup1::$0) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (word~) scrollup1::$2) [39] (byte) scrollup1::c#1 ← ++ (byte) scrollup1::c#2 - [40] if((byte) scrollup1::c#1<(byte/signed byte/word/signed word/dword/signed dword) 40) goto scrollup1::@2 + [40] if((byte) scrollup1::c#1<(byte/signed byte/word/signed word/dword/signed dword) $28) goto scrollup1::@2 to:scrollup1::@3 scrollup1::@3: scope:[scrollup1] from scrollup1::@2 - [41] (word) scrollup1::line#1 ← (word) scrollup1::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [42] if((word) scrollup1::line#1<(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24) goto scrollup1::@1 + [41] (word) scrollup1::line#1 ← (word) scrollup1::line#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 + [42] if((word) scrollup1::line#1<(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18) goto scrollup1::@1 to:scrollup1::@return scrollup1::@return: scope:[scrollup1] from scrollup1::@3 [43] return diff --git a/src/test/ref/test-scroll-up.log b/src/test/ref/test-scroll-up.log index 0748a0b92..64ec35c2b 100644 --- a/src/test/ref/test-scroll-up.log +++ b/src/test/ref/test-scroll-up.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@4 main: scope:[main] from @4 call scrollup1 @@ -29,16 +29,16 @@ scrollup1::@2: scope:[scrollup1] from scrollup1::@1 scrollup1::@2 (word) scrollup1::line#2 ← phi( scrollup1::@1/(word) scrollup1::line#4 scrollup1::@2/(word) scrollup1::line#2 ) (word~) scrollup1::$0 ← (word) scrollup1::line#2 + (byte) scrollup1::c#2 (word~) scrollup1::$1 ← (word) scrollup1::line#2 + (byte) scrollup1::c#2 - (word/signed dword/dword~) scrollup1::$2 ← (word~) scrollup1::$1 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (word/signed dword/dword~) scrollup1::$2 ← (word~) scrollup1::$1 + (byte/signed byte/word/signed word/dword/signed dword) $28 *((byte*) screen#0 + (word~) scrollup1::$0) ← *((byte*) screen#0 + (word/signed dword/dword~) scrollup1::$2) (byte) scrollup1::c#1 ← ++ (byte) scrollup1::c#2 - (bool~) scrollup1::$3 ← (byte) scrollup1::c#1 < (byte/signed byte/word/signed word/dword/signed dword) 40 + (bool~) scrollup1::$3 ← (byte) scrollup1::c#1 < (byte/signed byte/word/signed word/dword/signed dword) $28 if((bool~) scrollup1::$3) goto scrollup1::@2 to:scrollup1::@3 scrollup1::@3: scope:[scrollup1] from scrollup1::@2 (word) scrollup1::line#3 ← phi( scrollup1::@2/(word) scrollup1::line#2 ) - (word) scrollup1::line#1 ← (word) scrollup1::line#3 + (byte/signed byte/word/signed word/dword/signed dword) 40 - (word/signed word/dword/signed dword~) scrollup1::$4 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 24 + (word) scrollup1::line#1 ← (word) scrollup1::line#3 + (byte/signed byte/word/signed word/dword/signed dword) $28 + (word/signed word/dword/signed dword~) scrollup1::$4 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) $18 (bool~) scrollup1::$5 ← (word) scrollup1::line#1 < (word/signed word/dword/signed dword~) scrollup1::$4 if((bool~) scrollup1::$5) goto scrollup1::@1 to:scrollup1::@return @@ -47,7 +47,7 @@ scrollup1::@return: scope:[scrollup1] from scrollup1::@3 to:@return scrollup2: scope:[scrollup2] from main::@1 (byte*) scrollup2::line1#0 ← (byte*) screen#0 - (byte*~) scrollup2::$0 ← (byte*) screen#0 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) scrollup2::$0 ← (byte*) screen#0 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) scrollup2::line2#0 ← (byte*~) scrollup2::$0 (byte) scrollup2::l#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:scrollup2::@1 @@ -65,16 +65,16 @@ scrollup2::@2: scope:[scrollup2] from scrollup2::@1 scrollup2::@2 *((byte*) scrollup2::line1#2) ← *((byte*) scrollup2::line2#2) (byte*) scrollup2::line1#1 ← ++ (byte*) scrollup2::line1#2 (byte*) scrollup2::line2#1 ← ++ (byte*) scrollup2::line2#2 - (byte) scrollup2::c#1 ← (byte) scrollup2::c#2 + rangenext(0,39) - (bool~) scrollup2::$1 ← (byte) scrollup2::c#1 != rangelast(0,39) + (byte) scrollup2::c#1 ← (byte) scrollup2::c#2 + rangenext(0,$27) + (bool~) scrollup2::$1 ← (byte) scrollup2::c#1 != rangelast(0,$27) if((bool~) scrollup2::$1) goto scrollup2::@2 to:scrollup2::@3 scrollup2::@3: scope:[scrollup2] from scrollup2::@2 (byte*) scrollup2::line1#4 ← phi( scrollup2::@2/(byte*) scrollup2::line1#1 ) (byte*) scrollup2::line2#4 ← phi( scrollup2::@2/(byte*) scrollup2::line2#1 ) (byte) scrollup2::l#2 ← phi( scrollup2::@2/(byte) scrollup2::l#3 ) - (byte) scrollup2::l#1 ← (byte) scrollup2::l#2 + rangenext(0,23) - (bool~) scrollup2::$2 ← (byte) scrollup2::l#1 != rangelast(0,23) + (byte) scrollup2::l#1 ← (byte) scrollup2::l#2 + rangenext(0,$17) + (bool~) scrollup2::$2 ← (byte) scrollup2::l#1 != rangelast(0,$17) if((bool~) scrollup2::$2) goto scrollup2::@1 to:scrollup2::@return scrollup2::@return: scope:[scrollup2] from scrollup2::@3 @@ -92,17 +92,17 @@ scrollup3::@2: scope:[scrollup3] from scrollup3::@1 scrollup3::@2 (word) scrollup3::line#4 ← phi( scrollup3::@1/(word) scrollup3::line#2 scrollup3::@2/(word) scrollup3::line#4 ) (byte) scrollup3::c#2 ← phi( scrollup3::@1/(byte) scrollup3::c#0 scrollup3::@2/(byte) scrollup3::c#1 ) (word) scrollup3::l2#2 ← phi( scrollup3::@1/(word) scrollup3::l2#0 scrollup3::@2/(word) scrollup3::l2#1 ) - (word/signed dword/dword~) scrollup3::$0 ← (word) scrollup3::l2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (word/signed dword/dword~) scrollup3::$0 ← (word) scrollup3::l2#2 + (byte/signed byte/word/signed word/dword/signed dword) $28 *((byte*) screen#0 + (word) scrollup3::l2#2) ← *((byte*) screen#0 + (word/signed dword/dword~) scrollup3::$0) (word) scrollup3::l2#1 ← ++ (word) scrollup3::l2#2 (byte) scrollup3::c#1 ← ++ (byte) scrollup3::c#2 - (bool~) scrollup3::$1 ← (byte) scrollup3::c#1 < (byte/signed byte/word/signed word/dword/signed dword) 40 + (bool~) scrollup3::$1 ← (byte) scrollup3::c#1 < (byte/signed byte/word/signed word/dword/signed dword) $28 if((bool~) scrollup3::$1) goto scrollup3::@2 to:scrollup3::@3 scrollup3::@3: scope:[scrollup3] from scrollup3::@2 (word) scrollup3::line#3 ← phi( scrollup3::@2/(word) scrollup3::line#4 ) - (word) scrollup3::line#1 ← (word) scrollup3::line#3 + (byte/signed byte/word/signed word/dword/signed dword) 40 - (word/signed word/dword/signed dword~) scrollup3::$2 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 24 + (word) scrollup3::line#1 ← (word) scrollup3::line#3 + (byte/signed byte/word/signed word/dword/signed dword) $28 + (word/signed word/dword/signed dword~) scrollup3::$2 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) $18 (bool~) scrollup3::$3 ← (word) scrollup3::line#1 < (word/signed word/dword/signed dword~) scrollup3::$2 if((bool~) scrollup3::$3) goto scrollup3::@1 to:scrollup3::@return @@ -222,35 +222,35 @@ Redundant Phi (word) scrollup1::line#2 (word) scrollup1::line#4 Redundant Phi (byte) scrollup2::l#2 (byte) scrollup2::l#4 Redundant Phi (word) scrollup3::line#3 (word) scrollup3::l2#0 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) scrollup1::$3 [15] if((byte) scrollup1::c#1<(byte/signed byte/word/signed word/dword/signed dword) 40) goto scrollup1::@2 +Simple Condition (bool~) scrollup1::$3 [15] if((byte) scrollup1::c#1<(byte/signed byte/word/signed word/dword/signed dword) $28) goto scrollup1::@2 Simple Condition (bool~) scrollup1::$5 [20] if((word) scrollup1::line#1<(word/signed word/dword/signed dword~) scrollup1::$4) goto scrollup1::@1 -Simple Condition (bool~) scrollup2::$1 [34] if((byte) scrollup2::c#1!=rangelast(0,39)) goto scrollup2::@2 -Simple Condition (bool~) scrollup2::$2 [38] if((byte) scrollup2::l#1!=rangelast(0,23)) goto scrollup2::@1 -Simple Condition (bool~) scrollup3::$1 [50] if((byte) scrollup3::c#1<(byte/signed byte/word/signed word/dword/signed dword) 40) goto scrollup3::@2 +Simple Condition (bool~) scrollup2::$1 [34] if((byte) scrollup2::c#1!=rangelast(0,$27)) goto scrollup2::@2 +Simple Condition (bool~) scrollup2::$2 [38] if((byte) scrollup2::l#1!=rangelast(0,$17)) goto scrollup2::@1 +Simple Condition (bool~) scrollup3::$1 [50] if((byte) scrollup3::c#1<(byte/signed byte/word/signed word/dword/signed dword) $28) goto scrollup3::@2 Simple Condition (bool~) scrollup3::$3 [55] if((word) scrollup3::line#1<(word/signed word/dword/signed dword~) scrollup3::$2) goto scrollup3::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) screen#0 = ((byte*))1024 +Constant (const byte*) screen#0 = ((byte*))$400 Constant (const word) scrollup1::line#0 = 0 Constant (const byte) scrollup1::c#0 = 0 -Constant (const word/signed word/dword/signed dword) scrollup1::$4 = 40*24 +Constant (const word/signed word/dword/signed dword) scrollup1::$4 = $28*$18 Constant (const byte) scrollup2::l#0 = 0 Constant (const byte) scrollup2::c#0 = 0 Constant (const word) scrollup3::line#0 = 0 Constant (const byte) scrollup3::c#0 = 0 -Constant (const word/signed word/dword/signed dword) scrollup3::$2 = 40*24 +Constant (const word/signed word/dword/signed dword) scrollup3::$2 = $28*$18 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) scrollup2::line1#0 = screen#0 -Constant (const byte*) scrollup2::line2#0 = screen#0+40 +Constant (const byte*) scrollup2::line2#0 = screen#0+$28 Successful SSA optimization Pass2ConstantIdentification -Consolidated array index constant in assignment *(screen#0+40 + scrollup1::$2) -Consolidated array index constant in assignment *(screen#0+40 + scrollup3::$0) +Consolidated array index constant in assignment *(screen#0+$28 + scrollup1::$2) +Consolidated array index constant in assignment *(screen#0+$28 + scrollup3::$0) Successful SSA optimization Pass2ConstantAdditionElimination Inferred type updated to word in [8] (word/signed dword/dword~) scrollup1::$2 ← (word~) scrollup1::$1 Inferred type updated to word in [27] (word/signed dword/dword~) scrollup3::$0 ← (word) scrollup3::l2#2 Resolved ranged next value scrollup2::c#1 ← ++ scrollup2::c#2 to ++ -Resolved ranged comparison value if(scrollup2::c#1!=rangelast(0,39)) goto scrollup2::@2 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(scrollup2::c#1!=rangelast(0,$27)) goto scrollup2::@2 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value scrollup2::l#1 ← ++ scrollup2::l#4 to ++ -Resolved ranged comparison value if(scrollup2::l#1!=rangelast(0,23)) goto scrollup2::@1 to (byte/signed byte/word/signed word/dword/signed dword) 24 +Resolved ranged comparison value if(scrollup2::l#1!=rangelast(0,$17)) goto scrollup2::@1 to (byte/signed byte/word/signed word/dword/signed dword) $18 Alias (word~) scrollup1::$2 = (word~) scrollup1::$1 Alias (word) scrollup3::l2#2 = (word~) scrollup3::$0 Successful SSA optimization Pass2AliasElimination @@ -265,12 +265,12 @@ Inlining constant with var siblings (const byte) scrollup3::c#0 Constant inlined scrollup2::l#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined scrollup3::line#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined scrollup3::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined scrollup3::$2 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24 -Constant inlined scrollup1::$4 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24 +Constant inlined scrollup3::$2 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18 +Constant inlined scrollup1::$4 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18 Constant inlined scrollup2::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined scrollup1::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined scrollup1::line#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined scrollup2::line2#0 = (const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined scrollup2::line2#0 = (const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined scrollup2::line1#0 = (const byte*) screen#0 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting scrollup3::@5(between scrollup3::@3 and scrollup3::@1) @@ -359,14 +359,14 @@ scrollup3::@1: scope:[scrollup3] from scrollup3 scrollup3::@3 scrollup3::@2: scope:[scrollup3] from scrollup3::@1 scrollup3::@2 [14] (byte) scrollup3::c#2 ← phi( scrollup3::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 scrollup3::@2/(byte) scrollup3::c#1 ) [14] (word) scrollup3::l2#2 ← phi( scrollup3::@1/(word~) scrollup3::l2#4 scrollup3::@2/(word) scrollup3::l2#1 ) - [15] *((const byte*) screen#0 + (word) scrollup3::l2#2) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (word) scrollup3::l2#2) + [15] *((const byte*) screen#0 + (word) scrollup3::l2#2) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (word) scrollup3::l2#2) [16] (word) scrollup3::l2#1 ← ++ (word) scrollup3::l2#2 [17] (byte) scrollup3::c#1 ← ++ (byte) scrollup3::c#2 - [18] if((byte) scrollup3::c#1<(byte/signed byte/word/signed word/dword/signed dword) 40) goto scrollup3::@2 + [18] if((byte) scrollup3::c#1<(byte/signed byte/word/signed word/dword/signed dword) $28) goto scrollup3::@2 to:scrollup3::@3 scrollup3::@3: scope:[scrollup3] from scrollup3::@2 - [19] (word) scrollup3::line#1 ← (word) scrollup3::l2#0 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [20] if((word) scrollup3::line#1<(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24) goto scrollup3::@1 + [19] (word) scrollup3::line#1 ← (word) scrollup3::l2#0 + (byte/signed byte/word/signed word/dword/signed dword) $28 + [20] if((word) scrollup3::line#1<(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18) goto scrollup3::@1 to:scrollup3::@return scrollup3::@return: scope:[scrollup3] from scrollup3::@3 [21] return @@ -377,7 +377,7 @@ scrollup2: scope:[scrollup2] from main::@1 scrollup2::@1: scope:[scrollup2] from scrollup2 scrollup2::@3 [23] (byte) scrollup2::l#4 ← phi( scrollup2/(byte/signed byte/word/signed word/dword/signed dword) 0 scrollup2::@3/(byte) scrollup2::l#1 ) [23] (byte*) scrollup2::line1#3 ← phi( scrollup2/(const byte*) screen#0 scrollup2::@3/(byte*) scrollup2::line1#1 ) - [23] (byte*) scrollup2::line2#3 ← phi( scrollup2/(const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 scrollup2::@3/(byte*) scrollup2::line2#1 ) + [23] (byte*) scrollup2::line2#3 ← phi( scrollup2/(const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 scrollup2::@3/(byte*) scrollup2::line2#1 ) to:scrollup2::@2 scrollup2::@2: scope:[scrollup2] from scrollup2::@1 scrollup2::@2 [24] (byte) scrollup2::c#2 ← phi( scrollup2::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 scrollup2::@2/(byte) scrollup2::c#1 ) @@ -387,11 +387,11 @@ scrollup2::@2: scope:[scrollup2] from scrollup2::@1 scrollup2::@2 [26] (byte*) scrollup2::line1#1 ← ++ (byte*) scrollup2::line1#2 [27] (byte*) scrollup2::line2#1 ← ++ (byte*) scrollup2::line2#2 [28] (byte) scrollup2::c#1 ← ++ (byte) scrollup2::c#2 - [29] if((byte) scrollup2::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto scrollup2::@2 + [29] if((byte) scrollup2::c#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto scrollup2::@2 to:scrollup2::@3 scrollup2::@3: scope:[scrollup2] from scrollup2::@2 [30] (byte) scrollup2::l#1 ← ++ (byte) scrollup2::l#4 - [31] if((byte) scrollup2::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 24) goto scrollup2::@1 + [31] if((byte) scrollup2::l#1!=(byte/signed byte/word/signed word/dword/signed dword) $18) goto scrollup2::@1 to:scrollup2::@return scrollup2::@return: scope:[scrollup2] from scrollup2::@3 [32] return @@ -406,13 +406,13 @@ scrollup1::@2: scope:[scrollup1] from scrollup1::@1 scrollup1::@2 [35] (byte) scrollup1::c#2 ← phi( scrollup1::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 scrollup1::@2/(byte) scrollup1::c#1 ) [36] (word~) scrollup1::$0 ← (word) scrollup1::line#4 + (byte) scrollup1::c#2 [37] (word~) scrollup1::$2 ← (word) scrollup1::line#4 + (byte) scrollup1::c#2 - [38] *((const byte*) screen#0 + (word~) scrollup1::$0) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (word~) scrollup1::$2) + [38] *((const byte*) screen#0 + (word~) scrollup1::$0) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (word~) scrollup1::$2) [39] (byte) scrollup1::c#1 ← ++ (byte) scrollup1::c#2 - [40] if((byte) scrollup1::c#1<(byte/signed byte/word/signed word/dword/signed dword) 40) goto scrollup1::@2 + [40] if((byte) scrollup1::c#1<(byte/signed byte/word/signed word/dword/signed dword) $28) goto scrollup1::@2 to:scrollup1::@3 scrollup1::@3: scope:[scrollup1] from scrollup1::@2 - [41] (word) scrollup1::line#1 ← (word) scrollup1::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [42] if((word) scrollup1::line#1<(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24) goto scrollup1::@1 + [41] (word) scrollup1::line#1 ← (word) scrollup1::line#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 + [42] if((word) scrollup1::line#1<(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18) goto scrollup1::@1 to:scrollup1::@return scrollup1::@return: scope:[scrollup1] from scrollup1::@3 [43] return @@ -590,7 +590,7 @@ scrollup3: { jmp b2 //SEG36 scrollup3::@2 b2: - //SEG37 [15] *((const byte*) screen#0 + (word) scrollup3::l2#2) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (word) scrollup3::l2#2) -- pbuc1_derefidx_vwuz1=pbuc2_derefidx_vwuz1 + //SEG37 [15] *((const byte*) screen#0 + (word) scrollup3::l2#2) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (word) scrollup3::l2#2) -- pbuc1_derefidx_vwuz1=pbuc2_derefidx_vwuz1 lda #$28 sta line+1 - //SEG43 [20] if((word) scrollup3::line#1<(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24) goto scrollup3::@1 -- vwuz1_lt_vwuc1_then_la1 + //SEG43 [20] if((word) scrollup3::line#1<(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18) goto scrollup3::@1 -- vwuz1_lt_vwuc1_then_la1 lda line+1 cmp #>$28*$18 bcc b1_from_b3 @@ -662,7 +662,7 @@ scrollup2: { sta line1 lda #>screen sta line1+1 - //SEG50 [23] phi (byte*) scrollup2::line2#3 = (const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 [phi:scrollup2->scrollup2::@1#2] -- pbuz1=pbuc1 + //SEG50 [23] phi (byte*) scrollup2::line2#3 = (const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 [phi:scrollup2->scrollup2::@1#2] -- pbuz1=pbuc1 lda #screen+$28 @@ -709,7 +709,7 @@ scrollup2: { !: //SEG68 [28] (byte) scrollup2::c#1 ← ++ (byte) scrollup2::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG69 [29] if((byte) scrollup2::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto scrollup2::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG69 [29] if((byte) scrollup2::c#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto scrollup2::@2 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #$28 bne b2_from_b2 @@ -718,7 +718,7 @@ scrollup2: { b3: //SEG71 [30] (byte) scrollup2::l#1 ← ++ (byte) scrollup2::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG72 [31] if((byte) scrollup2::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 24) goto scrollup2::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG72 [31] if((byte) scrollup2::l#1!=(byte/signed byte/word/signed word/dword/signed dword) $18) goto scrollup2::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #$18 bne b1_from_b3 @@ -776,7 +776,7 @@ scrollup1: { lda #0 adc line+1 sta _2+1 - //SEG88 [38] *((const byte*) screen#0 + (word~) scrollup1::$0) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (word~) scrollup1::$2) -- pbuc1_derefidx_vwuz1=pbuc2_derefidx_vwuz2 + //SEG88 [38] *((const byte*) screen#0 + (word~) scrollup1::$0) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (word~) scrollup1::$2) -- pbuc1_derefidx_vwuz1=pbuc2_derefidx_vwuz2 lda #$28 sta line+1 - //SEG93 [42] if((word) scrollup1::line#1<(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24) goto scrollup1::@1 -- vwuz1_lt_vwuc1_then_la1 + //SEG93 [42] if((word) scrollup1::line#1<(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18) goto scrollup1::@1 -- vwuz1_lt_vwuc1_then_la1 lda line+1 cmp #>$28*$18 bcc b1_from_b3 @@ -830,10 +830,10 @@ scrollup1: { REGISTER UPLIFT POTENTIAL REGISTERS Statement [13] (word~) scrollup3::l2#4 ← (word) scrollup3::l2#0 [ scrollup3::l2#0 scrollup3::l2#4 ] ( main:2::scrollup3:9 [ scrollup3::l2#0 scrollup3::l2#4 ] ) always clobbers reg byte a -Statement [15] *((const byte*) screen#0 + (word) scrollup3::l2#2) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (word) scrollup3::l2#2) [ scrollup3::l2#0 scrollup3::l2#2 scrollup3::c#2 ] ( main:2::scrollup3:9 [ scrollup3::l2#0 scrollup3::l2#2 scrollup3::c#2 ] ) always clobbers reg byte a +Statement [15] *((const byte*) screen#0 + (word) scrollup3::l2#2) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (word) scrollup3::l2#2) [ scrollup3::l2#0 scrollup3::l2#2 scrollup3::c#2 ] ( main:2::scrollup3:9 [ scrollup3::l2#0 scrollup3::l2#2 scrollup3::c#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:6 [ scrollup3::c#2 scrollup3::c#1 ] -Statement [19] (word) scrollup3::line#1 ← (word) scrollup3::l2#0 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ scrollup3::line#1 ] ( main:2::scrollup3:9 [ scrollup3::line#1 ] ) always clobbers reg byte a -Statement [20] if((word) scrollup3::line#1<(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24) goto scrollup3::@1 [ scrollup3::line#1 ] ( main:2::scrollup3:9 [ scrollup3::line#1 ] ) always clobbers reg byte a +Statement [19] (word) scrollup3::line#1 ← (word) scrollup3::l2#0 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ scrollup3::line#1 ] ( main:2::scrollup3:9 [ scrollup3::line#1 ] ) always clobbers reg byte a +Statement [20] if((word) scrollup3::line#1<(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18) goto scrollup3::@1 [ scrollup3::line#1 ] ( main:2::scrollup3:9 [ scrollup3::line#1 ] ) always clobbers reg byte a Statement [25] *((byte*) scrollup2::line1#2) ← *((byte*) scrollup2::line2#2) [ scrollup2::l#4 scrollup2::line2#2 scrollup2::line1#2 scrollup2::c#2 ] ( main:2::scrollup2:7 [ scrollup2::l#4 scrollup2::line2#2 scrollup2::line1#2 scrollup2::c#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp ZP_BYTE:7 [ scrollup2::l#4 scrollup2::l#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:7 [ scrollup2::l#4 scrollup2::l#1 ] @@ -842,19 +842,19 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:12 [ s Statement [36] (word~) scrollup1::$0 ← (word) scrollup1::line#4 + (byte) scrollup1::c#2 [ scrollup1::line#4 scrollup1::c#2 scrollup1::$0 ] ( main:2::scrollup1:5 [ scrollup1::line#4 scrollup1::c#2 scrollup1::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:15 [ scrollup1::c#2 scrollup1::c#1 ] Statement [37] (word~) scrollup1::$2 ← (word) scrollup1::line#4 + (byte) scrollup1::c#2 [ scrollup1::line#4 scrollup1::c#2 scrollup1::$0 scrollup1::$2 ] ( main:2::scrollup1:5 [ scrollup1::line#4 scrollup1::c#2 scrollup1::$0 scrollup1::$2 ] ) always clobbers reg byte a -Statement [38] *((const byte*) screen#0 + (word~) scrollup1::$0) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (word~) scrollup1::$2) [ scrollup1::line#4 scrollup1::c#2 ] ( main:2::scrollup1:5 [ scrollup1::line#4 scrollup1::c#2 ] ) always clobbers reg byte a -Statement [41] (word) scrollup1::line#1 ← (word) scrollup1::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ scrollup1::line#1 ] ( main:2::scrollup1:5 [ scrollup1::line#1 ] ) always clobbers reg byte a -Statement [42] if((word) scrollup1::line#1<(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24) goto scrollup1::@1 [ scrollup1::line#1 ] ( main:2::scrollup1:5 [ scrollup1::line#1 ] ) always clobbers reg byte a +Statement [38] *((const byte*) screen#0 + (word~) scrollup1::$0) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (word~) scrollup1::$2) [ scrollup1::line#4 scrollup1::c#2 ] ( main:2::scrollup1:5 [ scrollup1::line#4 scrollup1::c#2 ] ) always clobbers reg byte a +Statement [41] (word) scrollup1::line#1 ← (word) scrollup1::line#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ scrollup1::line#1 ] ( main:2::scrollup1:5 [ scrollup1::line#1 ] ) always clobbers reg byte a +Statement [42] if((word) scrollup1::line#1<(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18) goto scrollup1::@1 [ scrollup1::line#1 ] ( main:2::scrollup1:5 [ scrollup1::line#1 ] ) always clobbers reg byte a Statement [13] (word~) scrollup3::l2#4 ← (word) scrollup3::l2#0 [ scrollup3::l2#0 scrollup3::l2#4 ] ( main:2::scrollup3:9 [ scrollup3::l2#0 scrollup3::l2#4 ] ) always clobbers reg byte a -Statement [15] *((const byte*) screen#0 + (word) scrollup3::l2#2) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (word) scrollup3::l2#2) [ scrollup3::l2#0 scrollup3::l2#2 scrollup3::c#2 ] ( main:2::scrollup3:9 [ scrollup3::l2#0 scrollup3::l2#2 scrollup3::c#2 ] ) always clobbers reg byte a -Statement [19] (word) scrollup3::line#1 ← (word) scrollup3::l2#0 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ scrollup3::line#1 ] ( main:2::scrollup3:9 [ scrollup3::line#1 ] ) always clobbers reg byte a -Statement [20] if((word) scrollup3::line#1<(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24) goto scrollup3::@1 [ scrollup3::line#1 ] ( main:2::scrollup3:9 [ scrollup3::line#1 ] ) always clobbers reg byte a +Statement [15] *((const byte*) screen#0 + (word) scrollup3::l2#2) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (word) scrollup3::l2#2) [ scrollup3::l2#0 scrollup3::l2#2 scrollup3::c#2 ] ( main:2::scrollup3:9 [ scrollup3::l2#0 scrollup3::l2#2 scrollup3::c#2 ] ) always clobbers reg byte a +Statement [19] (word) scrollup3::line#1 ← (word) scrollup3::l2#0 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ scrollup3::line#1 ] ( main:2::scrollup3:9 [ scrollup3::line#1 ] ) always clobbers reg byte a +Statement [20] if((word) scrollup3::line#1<(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18) goto scrollup3::@1 [ scrollup3::line#1 ] ( main:2::scrollup3:9 [ scrollup3::line#1 ] ) always clobbers reg byte a Statement [25] *((byte*) scrollup2::line1#2) ← *((byte*) scrollup2::line2#2) [ scrollup2::l#4 scrollup2::line2#2 scrollup2::line1#2 scrollup2::c#2 ] ( main:2::scrollup2:7 [ scrollup2::l#4 scrollup2::line2#2 scrollup2::line1#2 scrollup2::c#2 ] ) always clobbers reg byte a reg byte y Statement [36] (word~) scrollup1::$0 ← (word) scrollup1::line#4 + (byte) scrollup1::c#2 [ scrollup1::line#4 scrollup1::c#2 scrollup1::$0 ] ( main:2::scrollup1:5 [ scrollup1::line#4 scrollup1::c#2 scrollup1::$0 ] ) always clobbers reg byte a Statement [37] (word~) scrollup1::$2 ← (word) scrollup1::line#4 + (byte) scrollup1::c#2 [ scrollup1::line#4 scrollup1::c#2 scrollup1::$0 scrollup1::$2 ] ( main:2::scrollup1:5 [ scrollup1::line#4 scrollup1::c#2 scrollup1::$0 scrollup1::$2 ] ) always clobbers reg byte a -Statement [38] *((const byte*) screen#0 + (word~) scrollup1::$0) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (word~) scrollup1::$2) [ scrollup1::line#4 scrollup1::c#2 ] ( main:2::scrollup1:5 [ scrollup1::line#4 scrollup1::c#2 ] ) always clobbers reg byte a -Statement [41] (word) scrollup1::line#1 ← (word) scrollup1::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ scrollup1::line#1 ] ( main:2::scrollup1:5 [ scrollup1::line#1 ] ) always clobbers reg byte a -Statement [42] if((word) scrollup1::line#1<(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24) goto scrollup1::@1 [ scrollup1::line#1 ] ( main:2::scrollup1:5 [ scrollup1::line#1 ] ) always clobbers reg byte a +Statement [38] *((const byte*) screen#0 + (word~) scrollup1::$0) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (word~) scrollup1::$2) [ scrollup1::line#4 scrollup1::c#2 ] ( main:2::scrollup1:5 [ scrollup1::line#4 scrollup1::c#2 ] ) always clobbers reg byte a +Statement [41] (word) scrollup1::line#1 ← (word) scrollup1::line#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ scrollup1::line#1 ] ( main:2::scrollup1:5 [ scrollup1::line#1 ] ) always clobbers reg byte a +Statement [42] if((word) scrollup1::line#1<(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18) goto scrollup1::@1 [ scrollup1::line#1 ] ( main:2::scrollup1:5 [ scrollup1::line#1 ] ) always clobbers reg byte a Potential registers zp ZP_WORD:2 [ scrollup3::l2#0 scrollup3::line#1 ] : zp ZP_WORD:2 , Potential registers zp ZP_WORD:4 [ scrollup3::l2#2 scrollup3::l2#4 scrollup3::l2#1 ] : zp ZP_WORD:4 , Potential registers zp ZP_BYTE:6 [ scrollup3::c#2 scrollup3::c#1 ] : zp ZP_BYTE:6 , reg byte x , reg byte y , @@ -982,7 +982,7 @@ scrollup3: { jmp b2 //SEG36 scrollup3::@2 b2: - //SEG37 [15] *((const byte*) screen#0 + (word) scrollup3::l2#2) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (word) scrollup3::l2#2) -- pbuc1_derefidx_vwuz1=pbuc2_derefidx_vwuz1 + //SEG37 [15] *((const byte*) screen#0 + (word) scrollup3::l2#2) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (word) scrollup3::l2#2) -- pbuc1_derefidx_vwuz1=pbuc2_derefidx_vwuz1 lda #$28 sta line+1 - //SEG43 [20] if((word) scrollup3::line#1<(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24) goto scrollup3::@1 -- vwuz1_lt_vwuc1_then_la1 + //SEG43 [20] if((word) scrollup3::line#1<(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18) goto scrollup3::@1 -- vwuz1_lt_vwuc1_then_la1 lda line+1 cmp #>$28*$18 bcc b1_from_b3 @@ -1052,7 +1052,7 @@ scrollup2: { sta line1 lda #>screen sta line1+1 - //SEG50 [23] phi (byte*) scrollup2::line2#3 = (const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 [phi:scrollup2->scrollup2::@1#2] -- pbuz1=pbuc1 + //SEG50 [23] phi (byte*) scrollup2::line2#3 = (const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 [phi:scrollup2->scrollup2::@1#2] -- pbuz1=pbuc1 lda #screen+$28 @@ -1098,7 +1098,7 @@ scrollup2: { !: //SEG68 [28] (byte) scrollup2::c#1 ← ++ (byte) scrollup2::c#2 -- vbuxx=_inc_vbuxx inx - //SEG69 [29] if((byte) scrollup2::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto scrollup2::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG69 [29] if((byte) scrollup2::c#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto scrollup2::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b2_from_b2 jmp b3 @@ -1106,7 +1106,7 @@ scrollup2: { b3: //SEG71 [30] (byte) scrollup2::l#1 ← ++ (byte) scrollup2::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG72 [31] if((byte) scrollup2::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 24) goto scrollup2::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG72 [31] if((byte) scrollup2::l#1!=(byte/signed byte/word/signed word/dword/signed dword) $18) goto scrollup2::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #$18 bne b1_from_b3 @@ -1162,7 +1162,7 @@ scrollup1: { lda #0 adc line+1 sta _2+1 - //SEG88 [38] *((const byte*) screen#0 + (word~) scrollup1::$0) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (word~) scrollup1::$2) -- pbuc1_derefidx_vwuz1=pbuc2_derefidx_vwuz2 + //SEG88 [38] *((const byte*) screen#0 + (word~) scrollup1::$0) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (word~) scrollup1::$2) -- pbuc1_derefidx_vwuz1=pbuc2_derefidx_vwuz2 lda #$28 sta line+1 - //SEG93 [42] if((word) scrollup1::line#1<(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24) goto scrollup1::@1 -- vwuz1_lt_vwuc1_then_la1 + //SEG93 [42] if((word) scrollup1::line#1<(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18) goto scrollup1::@1 -- vwuz1_lt_vwuc1_then_la1 lda line+1 cmp #>$28*$18 bcc b1_from_b3 @@ -1301,7 +1301,7 @@ FINAL SYMBOL TABLE (label) main::@2 (label) main::@return (byte*) screen -(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 (void()) scrollup1() (word~) scrollup1::$0 $0 zp ZP_WORD:4 101.0 (word~) scrollup1::$2 $2 zp ZP_WORD:7 202.0 @@ -1426,7 +1426,7 @@ scrollup3: { //SEG35 [14] phi (word) scrollup3::l2#2 = (word) scrollup3::l2#1 [phi:scrollup3::@2->scrollup3::@2#1] -- register_copy //SEG36 scrollup3::@2 b2: - //SEG37 [15] *((const byte*) screen#0 + (word) scrollup3::l2#2) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (word) scrollup3::l2#2) -- pbuc1_derefidx_vwuz1=pbuc2_derefidx_vwuz1 + //SEG37 [15] *((const byte*) screen#0 + (word) scrollup3::l2#2) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (word) scrollup3::l2#2) -- pbuc1_derefidx_vwuz1=pbuc2_derefidx_vwuz1 lda #$28 sta line+1 - //SEG43 [20] if((word) scrollup3::line#1<(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24) goto scrollup3::@1 -- vwuz1_lt_vwuc1_then_la1 + //SEG43 [20] if((word) scrollup3::line#1<(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18) goto scrollup3::@1 -- vwuz1_lt_vwuc1_then_la1 cmp #>$28*$18 bcc b1 bne !+ @@ -1490,7 +1490,7 @@ scrollup2: { sta line1 lda #>screen sta line1+1 - //SEG50 [23] phi (byte*) scrollup2::line2#3 = (const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 [phi:scrollup2->scrollup2::@1#2] -- pbuz1=pbuc1 + //SEG50 [23] phi (byte*) scrollup2::line2#3 = (const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 [phi:scrollup2->scrollup2::@1#2] -- pbuz1=pbuc1 lda #screen+$28 @@ -1528,13 +1528,13 @@ scrollup2: { !: //SEG68 [28] (byte) scrollup2::c#1 ← ++ (byte) scrollup2::c#2 -- vbuxx=_inc_vbuxx inx - //SEG69 [29] if((byte) scrollup2::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto scrollup2::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG69 [29] if((byte) scrollup2::c#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto scrollup2::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b2 //SEG70 scrollup2::@3 //SEG71 [30] (byte) scrollup2::l#1 ← ++ (byte) scrollup2::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG72 [31] if((byte) scrollup2::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 24) goto scrollup2::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG72 [31] if((byte) scrollup2::l#1!=(byte/signed byte/word/signed word/dword/signed dword) $18) goto scrollup2::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #$18 bne b1 @@ -1579,7 +1579,7 @@ scrollup1: { lda #0 adc line+1 sta _2+1 - //SEG88 [38] *((const byte*) screen#0 + (word~) scrollup1::$0) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (word~) scrollup1::$2) -- pbuc1_derefidx_vwuz1=pbuc2_derefidx_vwuz2 + //SEG88 [38] *((const byte*) screen#0 + (word~) scrollup1::$0) ← *((const byte*) screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (word~) scrollup1::$2) -- pbuc1_derefidx_vwuz1=pbuc2_derefidx_vwuz2 lda #$28 sta line+1 - //SEG93 [42] if((word) scrollup1::line#1<(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24) goto scrollup1::@1 -- vwuz1_lt_vwuc1_then_la1 + //SEG93 [42] if((word) scrollup1::line#1<(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18) goto scrollup1::@1 -- vwuz1_lt_vwuc1_then_la1 cmp #>$28*$18 bcc b1 bne !+ diff --git a/src/test/ref/test-scroll-up.sym b/src/test/ref/test-scroll-up.sym index 3fff2e17c..4793bbc63 100644 --- a/src/test/ref/test-scroll-up.sym +++ b/src/test/ref/test-scroll-up.sym @@ -6,7 +6,7 @@ (label) main::@2 (label) main::@return (byte*) screen -(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 (void()) scrollup1() (word~) scrollup1::$0 $0 zp ZP_WORD:4 101.0 (word~) scrollup1::$2 $2 zp ZP_WORD:7 202.0 diff --git a/src/test/ref/test-word-size-arrays.cfg b/src/test/ref/test-word-size-arrays.cfg index ff5ff523a..adc3a5712 100644 --- a/src/test/ref/test-word-size-arrays.cfg +++ b/src/test/ref/test-word-size-arrays.cfg @@ -17,20 +17,20 @@ main::@2: scope:[main] from main::@1 main::@2 [6] (byte) main::c#4 ← phi( main::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@2/(byte) main::c#1 ) [7] (word~) main::$0 ← (word) main::line#6 + (byte) main::c#4 [8] (word~) main::$2 ← (word) main::line#6 + (byte) main::c#4 - [9] *((const byte*) main::screen#0 + (word~) main::$0) ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (word~) main::$2) + [9] *((const byte*) main::screen#0 + (word~) main::$0) ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (word~) main::$2) [10] (byte) main::c#1 ← ++ (byte) main::c#4 - [11] if((byte) main::c#1<(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@2 + [11] if((byte) main::c#1<(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@2 to:main::@4 main::@4: scope:[main] from main::@2 - [12] (word) main::line#2 ← (word) main::line#6 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [13] if((word) main::line#2<(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24) goto main::@1 + [12] (word) main::line#2 ← (word) main::line#6 + (byte/signed byte/word/signed word/dword/signed dword) $28 + [13] if((word) main::line#2<(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18) goto main::@1 to:main::@3 main::@3: scope:[main] from main::@3 main::@4 [14] (byte) main::c#5 ← phi( main::@3/(byte) main::c#3 main::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [15] (word~) main::$6 ← (word) main::line#2 + (byte) main::c#5 [16] *((const byte*) main::screen#0 + (word~) main::$6) ← (byte) ' ' [17] (byte) main::c#3 ← ++ (byte) main::c#5 - [18] if((byte) main::c#3<(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@3 + [18] if((byte) main::c#3<(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@3 to:main::@return main::@return: scope:[main] from main::@3 [19] return diff --git a/src/test/ref/test-word-size-arrays.log b/src/test/ref/test-word-size-arrays.log index eb04f9186..1a983a16b 100644 --- a/src/test/ref/test-word-size-arrays.log +++ b/src/test/ref/test-word-size-arrays.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (word) main::line#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (word) main::line#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 @@ -18,17 +18,17 @@ main::@2: scope:[main] from main::@1 main::@2 (word) main::line#3 ← phi( main::@1/(word) main::line#6 main::@2/(word) main::line#3 ) (word~) main::$0 ← (word) main::line#3 + (byte) main::c#4 (word~) main::$1 ← (word) main::line#3 + (byte) main::c#4 - (word/signed dword/dword~) main::$2 ← (word~) main::$1 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (word/signed dword/dword~) main::$2 ← (word~) main::$1 + (byte/signed byte/word/signed word/dword/signed dword) $28 *((byte*) main::screen#1 + (word~) main::$0) ← *((byte*) main::screen#1 + (word/signed dword/dword~) main::$2) (byte) main::c#1 ← ++ (byte) main::c#4 - (bool~) main::$3 ← (byte) main::c#1 < (byte/signed byte/word/signed word/dword/signed dword) 40 + (bool~) main::$3 ← (byte) main::c#1 < (byte/signed byte/word/signed word/dword/signed dword) $28 if((bool~) main::$3) goto main::@2 to:main::@4 main::@4: scope:[main] from main::@2 (byte*) main::screen#5 ← phi( main::@2/(byte*) main::screen#1 ) (word) main::line#4 ← phi( main::@2/(word) main::line#3 ) - (word) main::line#2 ← (word) main::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 - (word/signed word/dword/signed dword~) main::$4 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 24 + (word) main::line#2 ← (word) main::line#4 + (byte/signed byte/word/signed word/dword/signed dword) $28 + (word/signed word/dword/signed dword~) main::$4 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) $18 (bool~) main::$5 ← (word) main::line#2 < (word/signed word/dword/signed dword~) main::$4 if((bool~) main::$5) goto main::@1 to:main::@5 @@ -44,7 +44,7 @@ main::@3: scope:[main] from main::@3 main::@5 (word~) main::$6 ← (word) main::line#5 + (byte) main::c#5 *((byte*) main::screen#2 + (word~) main::$6) ← (byte) ' ' (byte) main::c#3 ← ++ (byte) main::c#5 - (bool~) main::$7 ← (byte) main::c#3 < (byte/signed byte/word/signed word/dword/signed dword) 40 + (bool~) main::$7 ← (byte) main::c#3 < (byte/signed byte/word/signed word/dword/signed dword) $28 if((bool~) main::$7) goto main::@3 to:main::@return main::@return: scope:[main] from main::@3 @@ -117,15 +117,15 @@ Redundant Phi (byte*) main::screen#1 (byte*) main::screen#3 Redundant Phi (word) main::line#5 (word) main::line#2 Redundant Phi (byte*) main::screen#2 (byte*) main::screen#1 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$3 [12] if((byte) main::c#1<(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@2 +Simple Condition (bool~) main::$3 [12] if((byte) main::c#1<(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@2 Simple Condition (bool~) main::$5 [17] if((word) main::line#2<(word/signed word/dword/signed dword~) main::$4) goto main::@1 -Simple Condition (bool~) main::$7 [25] if((byte) main::c#3<(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@3 +Simple Condition (bool~) main::$7 [25] if((byte) main::c#3<(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@3 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) main::screen#0 = ((byte*))1024 +Constant (const byte*) main::screen#0 = ((byte*))$400 Constant (const word) main::line#0 = 0 Constant (const word) main::line#1 = 0 Constant (const byte) main::c#0 = 0 -Constant (const word/signed word/dword/signed dword) main::$4 = 40*24 +Constant (const word/signed word/dword/signed dword) main::$4 = $28*$18 Constant (const byte) main::c#2 = 0 Successful SSA optimization Pass2ConstantIdentification Successful SSA optimization PassNEliminateUnusedVars @@ -135,7 +135,7 @@ Self Phi Eliminated (byte*) main::screen#3 Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) main::screen#3 (const byte*) main::screen#0 Successful SSA optimization Pass2RedundantPhiElimination -Consolidated array index constant in assignment *(main::screen#0+40 + main::$2) +Consolidated array index constant in assignment *(main::screen#0+$28 + main::$2) Successful SSA optimization Pass2ConstantAdditionElimination Inferred type updated to word in [4] (word/signed dword/dword~) main::$2 ← (word~) main::$1 Alias (word~) main::$2 = (word~) main::$1 @@ -144,7 +144,7 @@ Inlining constant with var siblings (const word) main::line#1 Inlining constant with var siblings (const byte) main::c#0 Inlining constant with var siblings (const byte) main::c#2 Constant inlined main::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$4 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24 +Constant inlined main::$4 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18 Constant inlined main::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining @@ -191,20 +191,20 @@ main::@2: scope:[main] from main::@1 main::@2 [6] (byte) main::c#4 ← phi( main::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@2/(byte) main::c#1 ) [7] (word~) main::$0 ← (word) main::line#6 + (byte) main::c#4 [8] (word~) main::$2 ← (word) main::line#6 + (byte) main::c#4 - [9] *((const byte*) main::screen#0 + (word~) main::$0) ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (word~) main::$2) + [9] *((const byte*) main::screen#0 + (word~) main::$0) ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (word~) main::$2) [10] (byte) main::c#1 ← ++ (byte) main::c#4 - [11] if((byte) main::c#1<(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@2 + [11] if((byte) main::c#1<(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@2 to:main::@4 main::@4: scope:[main] from main::@2 - [12] (word) main::line#2 ← (word) main::line#6 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [13] if((word) main::line#2<(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24) goto main::@1 + [12] (word) main::line#2 ← (word) main::line#6 + (byte/signed byte/word/signed word/dword/signed dword) $28 + [13] if((word) main::line#2<(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18) goto main::@1 to:main::@3 main::@3: scope:[main] from main::@3 main::@4 [14] (byte) main::c#5 ← phi( main::@3/(byte) main::c#3 main::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [15] (word~) main::$6 ← (word) main::line#2 + (byte) main::c#5 [16] *((const byte*) main::screen#0 + (word~) main::$6) ← (byte) ' ' [17] (byte) main::c#3 ← ++ (byte) main::c#5 - [18] if((byte) main::c#3<(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@3 + [18] if((byte) main::c#3<(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@3 to:main::@return main::@return: scope:[main] from main::@3 [19] return @@ -322,7 +322,7 @@ main: { lda #0 adc line+1 sta _2+1 - //SEG23 [9] *((const byte*) main::screen#0 + (word~) main::$0) ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (word~) main::$2) -- pbuc1_derefidx_vwuz1=pbuc2_derefidx_vwuz2 + //SEG23 [9] *((const byte*) main::screen#0 + (word~) main::$0) ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (word~) main::$2) -- pbuc1_derefidx_vwuz1=pbuc2_derefidx_vwuz2 lda #$28 sta line+1 - //SEG28 [13] if((word) main::line#2<(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24) goto main::@1 -- vwuz1_lt_vwuc1_then_la1 + //SEG28 [13] if((word) main::line#2<(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18) goto main::@1 -- vwuz1_lt_vwuc1_then_la1 lda line+1 cmp #>$28*$18 bcc b1_from_b4 @@ -401,7 +401,7 @@ main: { sta screen //SEG36 [17] (byte) main::c#3 ← ++ (byte) main::c#5 -- vbuz1=_inc_vbuz1 inc c_3 - //SEG37 [18] if((byte) main::c#3<(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@3 -- vbuz1_lt_vbuc1_then_la1 + //SEG37 [18] if((byte) main::c#3<(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@3 -- vbuz1_lt_vbuc1_then_la1 lda c_3 cmp #$28 bcc b3_from_b3 @@ -416,17 +416,17 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [7] (word~) main::$0 ← (word) main::line#6 + (byte) main::c#4 [ main::line#6 main::c#4 main::$0 ] ( main:2 [ main::line#6 main::c#4 main::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ main::c#4 main::c#1 ] Statement [8] (word~) main::$2 ← (word) main::line#6 + (byte) main::c#4 [ main::line#6 main::c#4 main::$0 main::$2 ] ( main:2 [ main::line#6 main::c#4 main::$0 main::$2 ] ) always clobbers reg byte a -Statement [9] *((const byte*) main::screen#0 + (word~) main::$0) ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (word~) main::$2) [ main::line#6 main::c#4 ] ( main:2 [ main::line#6 main::c#4 ] ) always clobbers reg byte a -Statement [12] (word) main::line#2 ← (word) main::line#6 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::line#2 ] ( main:2 [ main::line#2 ] ) always clobbers reg byte a -Statement [13] if((word) main::line#2<(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24) goto main::@1 [ main::line#2 ] ( main:2 [ main::line#2 ] ) always clobbers reg byte a +Statement [9] *((const byte*) main::screen#0 + (word~) main::$0) ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (word~) main::$2) [ main::line#6 main::c#4 ] ( main:2 [ main::line#6 main::c#4 ] ) always clobbers reg byte a +Statement [12] (word) main::line#2 ← (word) main::line#6 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ main::line#2 ] ( main:2 [ main::line#2 ] ) always clobbers reg byte a +Statement [13] if((word) main::line#2<(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18) goto main::@1 [ main::line#2 ] ( main:2 [ main::line#2 ] ) always clobbers reg byte a Statement [15] (word~) main::$6 ← (word) main::line#2 + (byte) main::c#5 [ main::line#2 main::c#5 main::$6 ] ( main:2 [ main::line#2 main::c#5 main::$6 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ main::c#5 main::c#3 ] Statement [16] *((const byte*) main::screen#0 + (word~) main::$6) ← (byte) ' ' [ main::line#2 main::c#5 ] ( main:2 [ main::line#2 main::c#5 ] ) always clobbers reg byte a Statement [7] (word~) main::$0 ← (word) main::line#6 + (byte) main::c#4 [ main::line#6 main::c#4 main::$0 ] ( main:2 [ main::line#6 main::c#4 main::$0 ] ) always clobbers reg byte a Statement [8] (word~) main::$2 ← (word) main::line#6 + (byte) main::c#4 [ main::line#6 main::c#4 main::$0 main::$2 ] ( main:2 [ main::line#6 main::c#4 main::$0 main::$2 ] ) always clobbers reg byte a -Statement [9] *((const byte*) main::screen#0 + (word~) main::$0) ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (word~) main::$2) [ main::line#6 main::c#4 ] ( main:2 [ main::line#6 main::c#4 ] ) always clobbers reg byte a -Statement [12] (word) main::line#2 ← (word) main::line#6 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ main::line#2 ] ( main:2 [ main::line#2 ] ) always clobbers reg byte a -Statement [13] if((word) main::line#2<(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24) goto main::@1 [ main::line#2 ] ( main:2 [ main::line#2 ] ) always clobbers reg byte a +Statement [9] *((const byte*) main::screen#0 + (word~) main::$0) ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (word~) main::$2) [ main::line#6 main::c#4 ] ( main:2 [ main::line#6 main::c#4 ] ) always clobbers reg byte a +Statement [12] (word) main::line#2 ← (word) main::line#6 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ main::line#2 ] ( main:2 [ main::line#2 ] ) always clobbers reg byte a +Statement [13] if((word) main::line#2<(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18) goto main::@1 [ main::line#2 ] ( main:2 [ main::line#2 ] ) always clobbers reg byte a Statement [15] (word~) main::$6 ← (word) main::line#2 + (byte) main::c#5 [ main::line#2 main::c#5 main::$6 ] ( main:2 [ main::line#2 main::c#5 main::$6 ] ) always clobbers reg byte a Statement [16] *((const byte*) main::screen#0 + (word~) main::$6) ← (byte) ' ' [ main::line#2 main::c#5 ] ( main:2 [ main::line#2 main::c#5 ] ) always clobbers reg byte a Potential registers zp ZP_WORD:2 [ main::line#6 main::line#2 ] : zp ZP_WORD:2 , @@ -517,7 +517,7 @@ main: { lda #0 adc line+1 sta _2+1 - //SEG23 [9] *((const byte*) main::screen#0 + (word~) main::$0) ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (word~) main::$2) -- pbuc1_derefidx_vwuz1=pbuc2_derefidx_vwuz2 + //SEG23 [9] *((const byte*) main::screen#0 + (word~) main::$0) ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (word~) main::$2) -- pbuc1_derefidx_vwuz1=pbuc2_derefidx_vwuz2 lda #$28 sta line+1 - //SEG28 [13] if((word) main::line#2<(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24) goto main::@1 -- vwuz1_lt_vwuc1_then_la1 + //SEG28 [13] if((word) main::line#2<(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18) goto main::@1 -- vwuz1_lt_vwuc1_then_la1 lda line+1 cmp #>$28*$18 bcc b1_from_b4 @@ -594,7 +594,7 @@ main: { sta screen //SEG36 [17] (byte) main::c#3 ← ++ (byte) main::c#5 -- vbuxx=_inc_vbuxx inx - //SEG37 [18] if((byte) main::c#3<(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@3 -- vbuxx_lt_vbuc1_then_la1 + //SEG37 [18] if((byte) main::c#3<(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@3 -- vbuxx_lt_vbuc1_then_la1 cpx #$28 bcc b3_from_b3 jmp breturn @@ -667,7 +667,7 @@ FINAL SYMBOL TABLE (word) main::line#2 line zp ZP_WORD:2 6.285714285714286 (word) main::line#6 line zp ZP_WORD:2 32.0 (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 zp ZP_WORD:2 [ main::line#6 main::line#2 ] reg byte x [ main::c#4 main::c#1 ] @@ -731,7 +731,7 @@ main: { lda #0 adc line+1 sta _2+1 - //SEG23 [9] *((const byte*) main::screen#0 + (word~) main::$0) ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) 40 + (word~) main::$2) -- pbuc1_derefidx_vwuz1=pbuc2_derefidx_vwuz2 + //SEG23 [9] *((const byte*) main::screen#0 + (word~) main::$0) ← *((const byte*) main::screen#0+(byte/signed byte/word/signed word/dword/signed dword) $28 + (word~) main::$2) -- pbuc1_derefidx_vwuz1=pbuc2_derefidx_vwuz2 lda #$28 sta line+1 - //SEG28 [13] if((word) main::line#2<(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 24) goto main::@1 -- vwuz1_lt_vwuc1_then_la1 + //SEG28 [13] if((word) main::line#2<(byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) $18) goto main::@1 -- vwuz1_lt_vwuc1_then_la1 cmp #>$28*$18 bcc b1 bne !+ @@ -801,7 +801,7 @@ main: { sta screen //SEG36 [17] (byte) main::c#3 ← ++ (byte) main::c#5 -- vbuxx=_inc_vbuxx inx - //SEG37 [18] if((byte) main::c#3<(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@3 -- vbuxx_lt_vbuc1_then_la1 + //SEG37 [18] if((byte) main::c#3<(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@3 -- vbuxx_lt_vbuc1_then_la1 cpx #$28 bcc b3 //SEG38 main::@return diff --git a/src/test/ref/test-word-size-arrays.sym b/src/test/ref/test-word-size-arrays.sym index 46652b3af..974929197 100644 --- a/src/test/ref/test-word-size-arrays.sym +++ b/src/test/ref/test-word-size-arrays.sym @@ -19,7 +19,7 @@ (word) main::line#2 line zp ZP_WORD:2 6.285714285714286 (word) main::line#6 line zp ZP_WORD:2 32.0 (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 zp ZP_WORD:2 [ main::line#6 main::line#2 ] reg byte x [ main::c#4 main::c#1 ] diff --git a/src/test/ref/travis1.cfg b/src/test/ref/travis1.cfg index 7b62c810e..a8b7bfeb7 100644 --- a/src/test/ref/travis1.cfg +++ b/src/test/ref/travis1.cfg @@ -13,8 +13,8 @@ main: scope:[main] from @21 main::@1: scope:[main] from main main::@7 [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@7/(byte) main::i#1 ) [5] (byte) action_count#13 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@7/(byte) action_count#11 ) - [5] (byte*) print_line_cursor#24 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@7/(byte*) print_line_cursor#14 ) - [5] (byte*) print_char_cursor#30 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@7/(byte*~) print_char_cursor#41 ) + [5] (byte*) print_line_cursor#24 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@7/(byte*) print_line_cursor#14 ) + [5] (byte*) print_char_cursor#30 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@7/(byte*~) print_char_cursor#41 ) [6] call game_ready [7] (bool) game_ready::return#0 ← (bool) game_ready::return#1 to:main::@5 @@ -55,7 +55,7 @@ print_ln: scope:[print_ln] from print_str_ln::@1 to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [23] (byte*) print_line_cursor#13 ← phi( print_ln/(byte*) print_line_cursor#22 print_ln::@1/(byte*) print_line_cursor#14 ) - [24] (byte*) print_line_cursor#14 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [24] (byte*) print_line_cursor#14 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 [25] if((byte*) print_line_cursor#14<(byte*) print_char_cursor#17) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 diff --git a/src/test/ref/travis1.log b/src/test/ref/travis1.log index d64e550ba..39ee3414c 100644 --- a/src/test/ref/travis1.log +++ b/src/test/ref/travis1.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 to:@12 @@ -60,7 +60,7 @@ print_ln: scope:[print_ln] from print_str_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 (byte*) print_char_cursor#19 ← phi( print_ln/(byte*) print_char_cursor#29 print_ln::@1/(byte*) print_char_cursor#19 ) (byte*) print_line_cursor#13 ← phi( print_ln/(byte*) print_line_cursor#23 print_ln::@1/(byte*) print_line_cursor#3 ) - (byte*~) print_ln::$0 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) print_ln::$0 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) print_line_cursor#3 ← (byte*~) print_ln::$0 (bool~) print_ln::$1 ← (byte*) print_line_cursor#3 < (byte*) print_char_cursor#19 if((bool~) print_ln::$1) goto print_ln::@1 @@ -452,7 +452,7 @@ Simple Condition (bool~) game_ready::$1 [74] if((byte) action_count#13!=(byte/si Successful SSA optimization Pass2ConditionalJumpSimplification Rewriting ! if()-condition to reversed if() [54] (bool~) main::$1 ← ! (bool~) main::$0 Successful SSA optimization Pass2ConditionalAndOrRewriting -Constant (const byte*) print_char_cursor#0 = ((byte*))1024 +Constant (const byte*) print_char_cursor#0 = ((byte*))$400 Constant (const byte[]) print_hextab#0 = $0 Constant (const byte) action_count#0 = 0 Constant (const byte) READY_FRAMES#0 = 5 @@ -483,7 +483,7 @@ Constant inlined action_count#4 = (const byte) READY_FRAMES#0 Constant inlined print_str_ln::str#1 = (const string) game_ready::str Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined print_str_ln::str#0 = (const string) main::str -Constant inlined print_char_cursor#0 = ((byte*))(word/signed word/dword/signed dword) 1024 +Constant inlined print_char_cursor#0 = ((byte*))(word/signed word/dword/signed dword) $400 Constant inlined action_count#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@7(between main::@2 and main::@1) @@ -545,8 +545,8 @@ main: scope:[main] from @21 main::@1: scope:[main] from main main::@7 [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@7/(byte) main::i#1 ) [5] (byte) action_count#13 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@7/(byte) action_count#11 ) - [5] (byte*) print_line_cursor#24 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@7/(byte*) print_line_cursor#14 ) - [5] (byte*) print_char_cursor#30 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@7/(byte*~) print_char_cursor#41 ) + [5] (byte*) print_line_cursor#24 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@7/(byte*) print_line_cursor#14 ) + [5] (byte*) print_char_cursor#30 ← phi( main/((byte*))(word/signed word/dword/signed dword) $400 main::@7/(byte*~) print_char_cursor#41 ) [6] call game_ready [7] (bool) game_ready::return#0 ← (bool) game_ready::return#1 to:main::@5 @@ -587,7 +587,7 @@ print_ln: scope:[print_ln] from print_str_ln::@1 to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [23] (byte*) print_line_cursor#13 ← phi( print_ln/(byte*) print_line_cursor#22 print_ln::@1/(byte*) print_line_cursor#14 ) - [24] (byte*) print_line_cursor#14 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [24] (byte*) print_line_cursor#14 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 [25] if((byte*) print_line_cursor#14<(byte*) print_char_cursor#17) goto print_ln::@1 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 @@ -737,12 +737,12 @@ main: { //SEG13 [5] phi (byte) action_count#13 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#1] -- vbuz1=vbuc1 lda #0 sta action_count - //SEG14 [5] phi (byte*) print_line_cursor#24 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#2] -- pbuz1=pbuc1 + //SEG14 [5] phi (byte*) print_line_cursor#24 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#2] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 sta print_line_cursor+1 - //SEG15 [5] phi (byte*) print_char_cursor#30 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#3] -- pbuz1=pbuc1 + //SEG15 [5] phi (byte*) print_char_cursor#30 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#3] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -853,7 +853,7 @@ print_ln: { jmp b1 //SEG54 print_ln::@1 b1: - //SEG55 [24] (byte*) print_line_cursor#14 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG55 [24] (byte*) print_line_cursor#14 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -981,7 +981,7 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:11 [ a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::i#2 main::i#1 ] Statement [14] (byte*~) print_char_cursor#43 ← (byte*) print_line_cursor#14 [ main::i#2 print_line_cursor#14 action_count#11 print_char_cursor#43 ] ( main:2 [ main::i#2 print_line_cursor#14 action_count#11 print_char_cursor#43 ] ) always clobbers reg byte a Statement [17] (byte*) print_str::str#0 ← (byte*) print_str_ln::str#2 [ print_char_cursor#27 print_line_cursor#22 print_str::str#0 ] ( main:2::print_str_ln:15 [ main::i#2 action_count#11 print_char_cursor#27 print_line_cursor#22 print_str::str#0 ] main:2::game_ready:6::print_str_ln:36 [ main::i#2 action_count#10 print_char_cursor#27 print_line_cursor#22 print_str::str#0 ] ) always clobbers reg byte a -Statement [24] (byte*) print_line_cursor#14 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#14 print_char_cursor#17 ] ( main:2::print_str_ln:15::print_ln:20 [ main::i#2 action_count#11 print_line_cursor#14 print_char_cursor#17 ] main:2::game_ready:6::print_str_ln:36::print_ln:20 [ main::i#2 action_count#10 print_line_cursor#14 print_char_cursor#17 ] ) always clobbers reg byte a +Statement [24] (byte*) print_line_cursor#14 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#14 print_char_cursor#17 ] ( main:2::print_str_ln:15::print_ln:20 [ main::i#2 action_count#11 print_line_cursor#14 print_char_cursor#17 ] main:2::game_ready:6::print_str_ln:36::print_ln:20 [ main::i#2 action_count#10 print_line_cursor#14 print_char_cursor#17 ] ) always clobbers reg byte a Statement [25] if((byte*) print_line_cursor#14<(byte*) print_char_cursor#17) goto print_ln::@1 [ print_line_cursor#14 print_char_cursor#17 ] ( main:2::print_str_ln:15::print_ln:20 [ main::i#2 action_count#11 print_line_cursor#14 print_char_cursor#17 ] main:2::game_ready:6::print_str_ln:36::print_ln:20 [ main::i#2 action_count#10 print_line_cursor#14 print_char_cursor#17 ] ) always clobbers reg byte a Statement [29] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2 [ print_char_cursor#17 print_str::str#2 ] ( main:2::print_str_ln:15::print_str:18 [ main::i#2 action_count#11 print_line_cursor#22 print_char_cursor#17 print_str::str#2 ] main:2::game_ready:6::print_str_ln:36::print_str:18 [ main::i#2 action_count#10 print_line_cursor#22 print_char_cursor#17 print_str::str#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ main::i#2 main::i#1 ] @@ -991,7 +991,7 @@ Statement [38] (bool) game_ready::return#1 ← (byte) action_count#11 == (byte/s Statement [13] (byte*~) print_char_cursor#41 ← (byte*) print_line_cursor#14 [ print_char_cursor#41 print_line_cursor#14 action_count#11 main::i#1 ] ( main:2 [ print_char_cursor#41 print_line_cursor#14 action_count#11 main::i#1 ] ) always clobbers reg byte a Statement [14] (byte*~) print_char_cursor#43 ← (byte*) print_line_cursor#14 [ main::i#2 print_line_cursor#14 action_count#11 print_char_cursor#43 ] ( main:2 [ main::i#2 print_line_cursor#14 action_count#11 print_char_cursor#43 ] ) always clobbers reg byte a Statement [17] (byte*) print_str::str#0 ← (byte*) print_str_ln::str#2 [ print_char_cursor#27 print_line_cursor#22 print_str::str#0 ] ( main:2::print_str_ln:15 [ main::i#2 action_count#11 print_char_cursor#27 print_line_cursor#22 print_str::str#0 ] main:2::game_ready:6::print_str_ln:36 [ main::i#2 action_count#10 print_char_cursor#27 print_line_cursor#22 print_str::str#0 ] ) always clobbers reg byte a -Statement [24] (byte*) print_line_cursor#14 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#14 print_char_cursor#17 ] ( main:2::print_str_ln:15::print_ln:20 [ main::i#2 action_count#11 print_line_cursor#14 print_char_cursor#17 ] main:2::game_ready:6::print_str_ln:36::print_ln:20 [ main::i#2 action_count#10 print_line_cursor#14 print_char_cursor#17 ] ) always clobbers reg byte a +Statement [24] (byte*) print_line_cursor#14 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ print_line_cursor#14 print_char_cursor#17 ] ( main:2::print_str_ln:15::print_ln:20 [ main::i#2 action_count#11 print_line_cursor#14 print_char_cursor#17 ] main:2::game_ready:6::print_str_ln:36::print_ln:20 [ main::i#2 action_count#10 print_line_cursor#14 print_char_cursor#17 ] ) always clobbers reg byte a Statement [25] if((byte*) print_line_cursor#14<(byte*) print_char_cursor#17) goto print_ln::@1 [ print_line_cursor#14 print_char_cursor#17 ] ( main:2::print_str_ln:15::print_ln:20 [ main::i#2 action_count#11 print_line_cursor#14 print_char_cursor#17 ] main:2::game_ready:6::print_str_ln:36::print_ln:20 [ main::i#2 action_count#10 print_line_cursor#14 print_char_cursor#17 ] ) always clobbers reg byte a Statement [29] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2 [ print_char_cursor#17 print_str::str#2 ] ( main:2::print_str_ln:15::print_str:18 [ main::i#2 action_count#11 print_line_cursor#22 print_char_cursor#17 print_str::str#2 ] main:2::game_ready:6::print_str_ln:36::print_str:18 [ main::i#2 action_count#10 print_line_cursor#22 print_char_cursor#17 print_str::str#2 ] ) always clobbers reg byte a reg byte y Statement [31] *((byte*) print_char_cursor#17) ← *((byte*) print_str::str#2) [ print_char_cursor#17 print_str::str#2 ] ( main:2::print_str_ln:15::print_str:18 [ main::i#2 action_count#11 print_line_cursor#22 print_char_cursor#17 print_str::str#2 ] main:2::game_ready:6::print_str_ln:36::print_str:18 [ main::i#2 action_count#10 print_line_cursor#22 print_char_cursor#17 print_str::str#2 ] ) always clobbers reg byte a reg byte y @@ -1062,12 +1062,12 @@ main: { sta i //SEG13 [5] phi (byte) action_count#13 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#1] -- vbuxx=vbuc1 ldx #0 - //SEG14 [5] phi (byte*) print_line_cursor#24 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#2] -- pbuz1=pbuc1 + //SEG14 [5] phi (byte*) print_line_cursor#24 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#2] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 sta print_line_cursor+1 - //SEG15 [5] phi (byte*) print_char_cursor#30 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#3] -- pbuz1=pbuc1 + //SEG15 [5] phi (byte*) print_char_cursor#30 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#3] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -1169,7 +1169,7 @@ print_ln: { jmp b1 //SEG54 print_ln::@1 b1: - //SEG55 [24] (byte*) print_line_cursor#14 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG55 [24] (byte*) print_line_cursor#14 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -1451,12 +1451,12 @@ main: { sta i //SEG13 [5] phi (byte) action_count#13 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#1] -- vbuxx=vbuc1 tax - //SEG14 [5] phi (byte*) print_line_cursor#24 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#2] -- pbuz1=pbuc1 + //SEG14 [5] phi (byte*) print_line_cursor#24 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#2] -- pbuz1=pbuc1 lda #<$400 sta print_line_cursor lda #>$400 sta print_line_cursor+1 - //SEG15 [5] phi (byte*) print_char_cursor#30 = ((byte*))(word/signed word/dword/signed dword) 1024 [phi:main->main::@1#3] -- pbuz1=pbuc1 + //SEG15 [5] phi (byte*) print_char_cursor#30 = ((byte*))(word/signed word/dword/signed dword) $400 [phi:main->main::@1#3] -- pbuz1=pbuc1 lda #<$400 sta print_char_cursor lda #>$400 @@ -1540,7 +1540,7 @@ print_ln: { //SEG53 [23] phi (byte*) print_line_cursor#13 = (byte*) print_line_cursor#22 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy //SEG54 print_ln::@1 b1: - //SEG55 [24] (byte*) print_line_cursor#14 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG55 [24] (byte*) print_line_cursor#14 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 diff --git a/src/test/ref/true-inline-words.log b/src/test/ref/true-inline-words.log index ccb9c022b..0997b9f59 100644 --- a/src/test/ref/true-inline-words.log +++ b/src/test/ref/true-inline-words.log @@ -11,8 +11,8 @@ main: scope:[main] from @1 (word) main::w2#0 ← (byte/signed byte/word/signed word/dword/signed dword*/word~) main::$1 (byte*) main::sc#0 ← ((byte*)) (word) main::w2#0 *((byte*) main::sc#0) ← *((byte[]) main::bs#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) - (byte*) main::pos#0 ← ((byte*)) (word/signed word/dword/signed dword) 1281 - (byte*) main::bgcol#0 ← ((byte*)) (word/dword/signed dword) 53281 + (byte*) main::pos#0 ← ((byte*)) (word/signed word/dword/signed dword) $501 + (byte*) main::bgcol#0 ← ((byte*)) (word/dword/signed dword) $d021 (bool~) main::$2 ← *((byte*) main::pos#0) == (byte) 'm' if((bool~) main::$2) goto main::@1 to:main::@3 @@ -72,8 +72,8 @@ Simple Condition (bool~) main::$2 [11] if(*((byte*) main::pos#0)==(byte) 'm') go Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte[]) main::bs#0 = { 'c', 'm' } Constant (const byte) main::b#0 = 4 -Constant (const byte*) main::pos#0 = ((byte*))1281 -Constant (const byte*) main::bgcol#0 = ((byte*))53281 +Constant (const byte*) main::pos#0 = ((byte*))$501 +Constant (const byte*) main::bgcol#0 = ((byte*))$d021 Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(main::bs#0+1) Successful SSA optimization Pass2ConstantAdditionElimination @@ -89,21 +89,21 @@ Eliminating Noop Cast (byte*) main::sc#0 ← ((byte*)) (word) main::w2#0 Successful SSA optimization Pass2NopCastElimination Alias (word) main::w#0 = (word/signed word/dword/signed dword~) main::$3 Successful SSA optimization Pass2AliasElimination -Constant (const word) main::w#0 = main::b#0*256+0 -Constant (const word/signed word/dword/signed dword) main::$4 = 1*256+1 -Constant (const byte/signed byte/word/signed word/dword/signed dword) main::$5 = 0*256+0 +Constant (const word) main::w#0 = main::b#0*$100+0 +Constant (const word/signed word/dword/signed dword) main::$4 = 1*$100+1 +Constant (const byte/signed byte/word/signed word/dword/signed dword) main::$5 = 0*$100+0 Successful SSA optimization Pass2ConstantIdentification Constant (const word/signed dword/dword) main::$0 = main::$4+main::w#0 Successful SSA optimization Pass2ConstantIdentification Constant (const word) main::w2#0 = main::$0+main::$5 Successful SSA optimization Pass2ConstantIdentification -Constant inlined main::$5 = (byte/signed byte/word/signed word/dword/signed dword) 0*(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$4 = (byte/signed byte/word/signed word/dword/signed dword) 1*(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined main::$0 = (byte/signed byte/word/signed word/dword/signed dword) 1*(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1+(const word) main::w#0 +Constant inlined main::$5 = (byte/signed byte/word/signed word/dword/signed dword) 0*(word/signed word/dword/signed dword) $100+(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined main::$4 = (byte/signed byte/word/signed word/dword/signed dword) 1*(word/signed word/dword/signed dword) $100+(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined main::$0 = (byte/signed byte/word/signed word/dword/signed dword) 1*(word/signed word/dword/signed dword) $100+(byte/signed byte/word/signed word/dword/signed dword) 1+(const word) main::w#0 Successful SSA optimization Pass2ConstantInlining -Simplifying constant plus zero main::b#0*256+0 -Simplifying constant plus zero 0*256+0 -Simplifying constant multiply by zero 0*256 +Simplifying constant plus zero main::b#0*$100+0 +Simplifying constant plus zero 0*$100+0 +Simplifying constant multiply by zero 0*$100 Adding NOP phi() at start of @begin Adding NOP phi() at start of @1 Adding NOP phi() at start of @end @@ -313,16 +313,16 @@ FINAL SYMBOL TABLE (byte) main::b (const byte) main::b#0 b = (byte/signed byte/word/signed word/dword/signed dword) 4 (byte*) main::bgcol -(const byte*) main::bgcol#0 bgcol = ((byte*))(word/dword/signed dword) 53281 +(const byte*) main::bgcol#0 bgcol = ((byte*))(word/dword/signed dword) $d021 (byte[]) main::bs (const byte[]) main::bs#0 bs = { (byte) 'c', (byte) 'm' } (byte*) main::pos -(const byte*) main::pos#0 pos = ((byte*))(word/signed word/dword/signed dword) 1281 +(const byte*) main::pos#0 pos = ((byte*))(word/signed word/dword/signed dword) $501 (byte*) main::sc (word) main::w -(const word) main::w#0 w = (const byte) main::b#0*(word/signed word/dword/signed dword) 256 +(const word) main::w#0 w = (const byte) main::b#0*(word/signed word/dword/signed dword) $100 (word) main::w2 -(const word) main::w2#0 w2 = (byte/signed byte/word/signed word/dword/signed dword) 1*(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1+(const word) main::w#0+(byte/signed byte/word/signed word/dword/signed dword) 0 +(const word) main::w2#0 w2 = (byte/signed byte/word/signed word/dword/signed dword) 1*(word/signed word/dword/signed dword) $100+(byte/signed byte/word/signed word/dword/signed dword) 1+(const word) main::w#0+(byte/signed byte/word/signed word/dword/signed dword) 0 diff --git a/src/test/ref/true-inline-words.sym b/src/test/ref/true-inline-words.sym index 89e9c750c..aa2fef23e 100644 --- a/src/test/ref/true-inline-words.sym +++ b/src/test/ref/true-inline-words.sym @@ -8,14 +8,14 @@ (byte) main::b (const byte) main::b#0 b = (byte/signed byte/word/signed word/dword/signed dword) 4 (byte*) main::bgcol -(const byte*) main::bgcol#0 bgcol = ((byte*))(word/dword/signed dword) 53281 +(const byte*) main::bgcol#0 bgcol = ((byte*))(word/dword/signed dword) $d021 (byte[]) main::bs (const byte[]) main::bs#0 bs = { (byte) 'c', (byte) 'm' } (byte*) main::pos -(const byte*) main::pos#0 pos = ((byte*))(word/signed word/dword/signed dword) 1281 +(const byte*) main::pos#0 pos = ((byte*))(word/signed word/dword/signed dword) $501 (byte*) main::sc (word) main::w -(const word) main::w#0 w = (const byte) main::b#0*(word/signed word/dword/signed dword) 256 +(const word) main::w#0 w = (const byte) main::b#0*(word/signed word/dword/signed dword) $100 (word) main::w2 -(const word) main::w2#0 w2 = (byte/signed byte/word/signed word/dword/signed dword) 1*(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1+(const word) main::w#0+(byte/signed byte/word/signed word/dword/signed dword) 0 +(const word) main::w2#0 w2 = (byte/signed byte/word/signed word/dword/signed dword) 1*(word/signed word/dword/signed dword) $100+(byte/signed byte/word/signed word/dword/signed dword) 1+(const word) main::w#0+(byte/signed byte/word/signed word/dword/signed dword) 0 diff --git a/src/test/ref/typeinference-problem.cfg b/src/test/ref/typeinference-problem.cfg index ba2b573a7..2fbf70422 100644 --- a/src/test/ref/typeinference-problem.cfg +++ b/src/test/ref/typeinference-problem.cfg @@ -12,10 +12,10 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@1 [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::i#1 ) - [6] (byte/word/signed word/dword/signed dword~) main::$0 ← (byte/word/signed word/dword/signed dword) 255 - (byte) main::i#2 - [7] *((const byte[256]) table#0 + (byte/word/signed word/dword/signed dword~) main::$0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [6] (byte/word/signed word/dword/signed dword~) main::$0 ← (byte/word/signed word/dword/signed dword) $ff - (byte) main::i#2 + [7] *((const byte[$100]) table#0 + (byte/word/signed word/dword/signed dword~) main::$0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [8] (byte) main::i#1 ← ++ (byte) main::i#2 - [9] if((byte) main::i#1!=(byte/word/signed word/dword/signed dword) 129) goto main::@1 + [9] if((byte) main::i#1!=(byte/word/signed word/dword/signed dword) $81) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [10] return diff --git a/src/test/ref/typeinference-problem.log b/src/test/ref/typeinference-problem.log index 7c64a90a3..c67459654 100644 --- a/src/test/ref/typeinference-problem.log +++ b/src/test/ref/typeinference-problem.log @@ -1,17 +1,17 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte[256]) table#0 ← { fill( 256, 0) } + (byte[$100]) table#0 ← { fill( $100, 0) } to:@1 main: scope:[main] from @1 (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main main::@1 (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) - (byte/word/signed word/dword/signed dword~) main::$0 ← (byte/word/signed word/dword/signed dword) 255 - (byte) main::i#2 - *((byte[256]) table#0 + (byte/word/signed word/dword/signed dword~) main::$0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte) main::i#1 ← (byte) main::i#2 + rangenext(0,128) - (bool~) main::$1 ← (byte) main::i#1 != rangelast(0,128) + (byte/word/signed word/dword/signed dword~) main::$0 ← (byte/word/signed word/dword/signed dword) $ff - (byte) main::i#2 + *((byte[$100]) table#0 + (byte/word/signed word/dword/signed dword~) main::$0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) main::i#1 ← (byte) main::i#2 + rangenext(0,$80) + (bool~) main::$1 ← (byte) main::i#1 != rangelast(0,$80) if((bool~) main::$1) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 @@ -38,18 +38,18 @@ SYMBOL TABLE SSA (byte) main::i#0 (byte) main::i#1 (byte) main::i#2 -(byte[256]) table -(byte[256]) table#0 +(byte[$100]) table +(byte[$100]) table#0 Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks -Simple Condition (bool~) main::$1 [7] if((byte) main::i#1!=rangelast(0,128)) goto main::@1 +Simple Condition (bool~) main::$1 [7] if((byte) main::i#1!=rangelast(0,$80)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte[256]) table#0 = { fill( 256, 0) } +Constant (const byte[$100]) table#0 = { fill( $100, 0) } Constant (const byte) main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ -Resolved ranged comparison value if(main::i#1!=rangelast(0,128)) goto main::@1 to (byte/word/signed word/dword/signed dword) 129 +Resolved ranged comparison value if(main::i#1!=rangelast(0,$80)) goto main::@1 to (byte/word/signed word/dword/signed dword) $81 Inlining constant with var siblings (const byte) main::i#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining @@ -85,10 +85,10 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@1 [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::i#1 ) - [6] (byte/word/signed word/dword/signed dword~) main::$0 ← (byte/word/signed word/dword/signed dword) 255 - (byte) main::i#2 - [7] *((const byte[256]) table#0 + (byte/word/signed word/dword/signed dword~) main::$0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [6] (byte/word/signed word/dword/signed dword~) main::$0 ← (byte/word/signed word/dword/signed dword) $ff - (byte) main::i#2 + [7] *((const byte[$100]) table#0 + (byte/word/signed word/dword/signed dword~) main::$0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [8] (byte) main::i#1 ← ++ (byte) main::i#2 - [9] if((byte) main::i#1!=(byte/word/signed word/dword/signed dword) 129) goto main::@1 + [9] if((byte) main::i#1!=(byte/word/signed word/dword/signed dword) $81) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [10] return @@ -101,7 +101,7 @@ VARIABLE REGISTER WEIGHTS (byte) main::i (byte) main::i#1 16.5 (byte) main::i#2 11.0 -(byte[256]) table +(byte[$100]) table Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -153,18 +153,18 @@ main: { jmp b1 //SEG15 main::@1 b1: - //SEG16 [6] (byte/word/signed word/dword/signed dword~) main::$0 ← (byte/word/signed word/dword/signed dword) 255 - (byte) main::i#2 -- vbuz1=vbuc1_minus_vbuz2 + //SEG16 [6] (byte/word/signed word/dword/signed dword~) main::$0 ← (byte/word/signed word/dword/signed dword) $ff - (byte) main::i#2 -- vbuz1=vbuc1_minus_vbuz2 lda #$ff sec sbc i sta _0 - //SEG17 [7] *((const byte[256]) table#0 + (byte/word/signed word/dword/signed dword~) main::$0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG17 [7] *((const byte[$100]) table#0 + (byte/word/signed word/dword/signed dword~) main::$0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 ldy _0 lda #0 sta table,y //SEG18 [8] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG19 [9] if((byte) main::i#1!=(byte/word/signed word/dword/signed dword) 129) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG19 [9] if((byte) main::i#1!=(byte/word/signed word/dword/signed dword) $81) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$81 bne b1_from_b1 @@ -177,11 +177,11 @@ main: { table: .fill $100, 0 REGISTER UPLIFT POTENTIAL REGISTERS -Statement [6] (byte/word/signed word/dword/signed dword~) main::$0 ← (byte/word/signed word/dword/signed dword) 255 - (byte) main::i#2 [ main::i#2 main::$0 ] ( main:2 [ main::i#2 main::$0 ] ) always clobbers reg byte a +Statement [6] (byte/word/signed word/dword/signed dword~) main::$0 ← (byte/word/signed word/dword/signed dword) $ff - (byte) main::i#2 [ main::i#2 main::$0 ] ( main:2 [ main::i#2 main::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::i#2 main::i#1 ] -Statement [7] *((const byte[256]) table#0 + (byte/word/signed word/dword/signed dword~) main::$0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ main::i#2 ] ( main:2 [ main::i#2 ] ) always clobbers reg byte a -Statement [6] (byte/word/signed word/dword/signed dword~) main::$0 ← (byte/word/signed word/dword/signed dword) 255 - (byte) main::i#2 [ main::i#2 main::$0 ] ( main:2 [ main::i#2 main::$0 ] ) always clobbers reg byte a -Statement [7] *((const byte[256]) table#0 + (byte/word/signed word/dword/signed dword~) main::$0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ main::i#2 ] ( main:2 [ main::i#2 ] ) always clobbers reg byte a +Statement [7] *((const byte[$100]) table#0 + (byte/word/signed word/dword/signed dword~) main::$0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ main::i#2 ] ( main:2 [ main::i#2 ] ) always clobbers reg byte a +Statement [6] (byte/word/signed word/dword/signed dword~) main::$0 ← (byte/word/signed word/dword/signed dword) $ff - (byte) main::i#2 [ main::i#2 main::$0 ] ( main:2 [ main::i#2 main::$0 ] ) always clobbers reg byte a +Statement [7] *((const byte[$100]) table#0 + (byte/word/signed word/dword/signed dword~) main::$0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ main::i#2 ] ( main:2 [ main::i#2 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ main::i#2 main::i#1 ] : zp ZP_BYTE:2 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:3 [ main::$0 ] : zp ZP_BYTE:3 , reg byte a , reg byte x , reg byte y , @@ -230,18 +230,18 @@ main: { jmp b1 //SEG15 main::@1 b1: - //SEG16 [6] (byte/word/signed word/dword/signed dword~) main::$0 ← (byte/word/signed word/dword/signed dword) 255 - (byte) main::i#2 -- vbuaa=vbuc1_minus_vbuxx + //SEG16 [6] (byte/word/signed word/dword/signed dword~) main::$0 ← (byte/word/signed word/dword/signed dword) $ff - (byte) main::i#2 -- vbuaa=vbuc1_minus_vbuxx txa eor #$ff clc adc #$ff+1 - //SEG17 [7] *((const byte[256]) table#0 + (byte/word/signed word/dword/signed dword~) main::$0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuaa=vbuc2 + //SEG17 [7] *((const byte[$100]) table#0 + (byte/word/signed word/dword/signed dword~) main::$0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuaa=vbuc2 tay lda #0 sta table,y //SEG18 [8] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG19 [9] if((byte) main::i#1!=(byte/word/signed word/dword/signed dword) 129) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG19 [9] if((byte) main::i#1!=(byte/word/signed word/dword/signed dword) $81) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$81 bne b1_from_b1 jmp breturn @@ -288,8 +288,8 @@ FINAL SYMBOL TABLE (byte) main::i (byte) main::i#1 reg byte x 16.5 (byte) main::i#2 reg byte x 11.0 -(byte[256]) table -(const byte[256]) table#0 table = { fill( 256, 0) } +(byte[$100]) table +(const byte[$100]) table#0 table = { fill( $100, 0) } reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$0 ] @@ -322,18 +322,18 @@ main: { //SEG14 [5] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@1->main::@1#0] -- register_copy //SEG15 main::@1 b1: - //SEG16 [6] (byte/word/signed word/dword/signed dword~) main::$0 ← (byte/word/signed word/dword/signed dword) 255 - (byte) main::i#2 -- vbuaa=vbuc1_minus_vbuxx + //SEG16 [6] (byte/word/signed word/dword/signed dword~) main::$0 ← (byte/word/signed word/dword/signed dword) $ff - (byte) main::i#2 -- vbuaa=vbuc1_minus_vbuxx txa eor #$ff clc adc #$ff+1 - //SEG17 [7] *((const byte[256]) table#0 + (byte/word/signed word/dword/signed dword~) main::$0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuaa=vbuc2 + //SEG17 [7] *((const byte[$100]) table#0 + (byte/word/signed word/dword/signed dword~) main::$0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuaa=vbuc2 tay lda #0 sta table,y //SEG18 [8] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG19 [9] if((byte) main::i#1!=(byte/word/signed word/dword/signed dword) 129) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG19 [9] if((byte) main::i#1!=(byte/word/signed word/dword/signed dword) $81) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$81 bne b1 //SEG20 main::@return diff --git a/src/test/ref/typeinference-problem.sym b/src/test/ref/typeinference-problem.sym index d3052175c..c6de54dab 100644 --- a/src/test/ref/typeinference-problem.sym +++ b/src/test/ref/typeinference-problem.sym @@ -8,8 +8,8 @@ (byte) main::i (byte) main::i#1 reg byte x 16.5 (byte) main::i#2 reg byte x 11.0 -(byte[256]) table -(const byte[256]) table#0 table = { fill( 256, 0) } +(byte[$100]) table +(const byte[$100]) table#0 table = { fill( $100, 0) } reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$0 ] diff --git a/src/test/ref/uninitialized.log b/src/test/ref/uninitialized.log index 4f9d80bee..da097e440 100644 --- a/src/test/ref/uninitialized.log +++ b/src/test/ref/uninitialized.log @@ -4,7 +4,7 @@ CONTROL FLOW GRAPH SSA (byte) b#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (word) w#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) ptr#0 ← (byte*) 0 - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@1 main: scope:[main] from @1 (byte*) ptr#1 ← phi( @1/(byte*) ptr#2 ) @@ -76,7 +76,7 @@ Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte) b#0 = 0 Constant (const word) w#0 = 0 Constant (const byte*) ptr#0 = 0 -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::$0 = w#0 @@ -281,7 +281,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) b (const byte) b#0 b = (byte/signed byte/word/signed word/dword/signed dword) 0 (void()) main() diff --git a/src/test/ref/uninitialized.sym b/src/test/ref/uninitialized.sym index 7d2d3ae20..7794a19de 100644 --- a/src/test/ref/uninitialized.sym +++ b/src/test/ref/uninitialized.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) b (const byte) b#0 b = (byte/signed byte/word/signed word/dword/signed dword) 0 (void()) main() diff --git a/src/test/ref/unroll-loop-modifyvar.cfg b/src/test/ref/unroll-loop-modifyvar.cfg index f5ba53be7..480280161 100644 --- a/src/test/ref/unroll-loop-modifyvar.cfg +++ b/src/test/ref/unroll-loop-modifyvar.cfg @@ -32,19 +32,19 @@ main::@1_6: scope:[main] from main::@1_5 [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 to:main::@1_7 main::@1_7: scope:[main] from main::@1_6 - [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 + [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a to:main::@1_8 main::@1_8: scope:[main] from main::@1_7 - [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 11) ← (byte/signed byte/word/signed word/dword/signed dword) 11 + [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $b) ← (byte/signed byte/word/signed word/dword/signed dword) $b to:main::@1_9 main::@1_9: scope:[main] from main::@1_8 - [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 12) ← (byte/signed byte/word/signed word/dword/signed dword) 12 + [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $c) ← (byte/signed byte/word/signed word/dword/signed dword) $c to:main::@1_10 main::@1_10: scope:[main] from main::@1_9 - [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 13) ← (byte/signed byte/word/signed word/dword/signed dword) 13 + [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $d) ← (byte/signed byte/word/signed word/dword/signed dword) $d to:main::@2 main::@2: scope:[main] from main::@1_10 - [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 14) ← (byte/signed byte/word/signed word/dword/signed dword) 14 + [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $e) ← (byte/signed byte/word/signed word/dword/signed dword) $e to:main::@return main::@return: scope:[main] from main::@2 [17] return diff --git a/src/test/ref/unroll-loop-modifyvar.log b/src/test/ref/unroll-loop-modifyvar.log index d6f66ec3f..d8a11b65c 100644 --- a/src/test/ref/unroll-loop-modifyvar.log +++ b/src/test/ref/unroll-loop-modifyvar.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) main::a#0 ← (byte/signed byte/word/signed word/dword/signed dword) 3 to:main::@1 main::@1: scope:[main] from main main::@1 @@ -11,7 +11,7 @@ main::@1: scope:[main] from main main::@1 (byte) main::a#2 ← phi( main/(byte) main::a#0 main::@1/(byte) main::a#1 ) *((byte*) main::SCREEN#1 + (byte) main::a#2) ← (byte) main::a#2 (byte) main::a#1 ← ++ (byte) main::a#2 - (bool~) main::$0 ← (byte) main::a#1 < (byte/signed byte/word/signed word/dword/signed dword) 14 + (bool~) main::$0 ← (byte) main::a#1 < (byte/signed byte/word/signed word/dword/signed dword) $e unroll if((bool~) main::$0) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -58,9 +58,9 @@ Self Phi Eliminated (byte*) main::SCREEN#1 Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) main::SCREEN#1 (byte*) main::SCREEN#0 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$0 [6] unroll if((byte) main::a#1<(byte/signed byte/word/signed word/dword/signed dword) 14) goto main::@1 +Simple Condition (bool~) main::$0 [6] unroll if((byte) main::a#1<(byte/signed byte/word/signed word/dword/signed dword) $e) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) main::SCREEN#0 = ((byte*))1024 +Constant (const byte*) main::SCREEN#0 = ((byte*))$400 Constant (const byte) main::a#0 = 3 Successful SSA optimization Pass2ConstantIdentification Creating PHI for main::a#1 in block main::@2 - (byte) main::a#4 ← phi( main::@1/(byte) main::a#1 ) @@ -73,7 +73,7 @@ Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(main::SCREEN#0+main::a#0) Successful SSA optimization Pass2ConstantAdditionElimination Removing PHI-reference to removed block (main::@1) in block main::@2 -if() condition always true - replacing block destination [1] if((const byte) main::a#1<(byte/signed byte/word/signed word/dword/signed dword) 14) goto main::@1_1 +if() condition always true - replacing block destination [1] if((const byte) main::a#1<(byte/signed byte/word/signed word/dword/signed dword) $e) goto main::@1_1 Successful SSA optimization Pass2ConstantIfs Alias (byte) main::a#4 = (byte) main::a#6 Successful SSA optimization Pass2AliasElimination @@ -87,7 +87,7 @@ Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(main::SCREEN#0+main::a#1) Successful SSA optimization Pass2ConstantAdditionElimination Removing PHI-reference to removed block (main::@1_1) in block main::@2 -if() condition always true - replacing block destination [3] if((const byte) main::a#4<(byte/signed byte/word/signed word/dword/signed dword) 14) goto main::@1_2 +if() condition always true - replacing block destination [3] if((const byte) main::a#4<(byte/signed byte/word/signed word/dword/signed dword) $e) goto main::@1_2 Successful SSA optimization Pass2ConstantIfs Alias (byte) main::a#7 = (byte) main::a#9 Successful SSA optimization Pass2AliasElimination @@ -101,7 +101,7 @@ Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(main::SCREEN#0+main::a#4) Successful SSA optimization Pass2ConstantAdditionElimination Removing PHI-reference to removed block (main::@1_2) in block main::@2 -if() condition always true - replacing block destination [4] if((const byte) main::a#7<(byte/signed byte/word/signed word/dword/signed dword) 14) goto main::@1_3 +if() condition always true - replacing block destination [4] if((const byte) main::a#7<(byte/signed byte/word/signed word/dword/signed dword) $e) goto main::@1_3 Successful SSA optimization Pass2ConstantIfs Alias (byte) main::a#10 = (byte) main::a#12 Successful SSA optimization Pass2AliasElimination @@ -115,7 +115,7 @@ Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(main::SCREEN#0+main::a#7) Successful SSA optimization Pass2ConstantAdditionElimination Removing PHI-reference to removed block (main::@1_3) in block main::@2 -if() condition always true - replacing block destination [5] if((const byte) main::a#10<(byte/signed byte/word/signed word/dword/signed dword) 14) goto main::@1_4 +if() condition always true - replacing block destination [5] if((const byte) main::a#10<(byte/signed byte/word/signed word/dword/signed dword) $e) goto main::@1_4 Successful SSA optimization Pass2ConstantIfs Alias (byte) main::a#13 = (byte) main::a#15 Successful SSA optimization Pass2AliasElimination @@ -129,7 +129,7 @@ Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(main::SCREEN#0+main::a#10) Successful SSA optimization Pass2ConstantAdditionElimination Removing PHI-reference to removed block (main::@1_4) in block main::@2 -if() condition always true - replacing block destination [6] if((const byte) main::a#13<(byte/signed byte/word/signed word/dword/signed dword) 14) goto main::@1_5 +if() condition always true - replacing block destination [6] if((const byte) main::a#13<(byte/signed byte/word/signed word/dword/signed dword) $e) goto main::@1_5 Successful SSA optimization Pass2ConstantIfs Alias (byte) main::a#16 = (byte) main::a#18 Successful SSA optimization Pass2AliasElimination @@ -143,7 +143,7 @@ Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(main::SCREEN#0+main::a#13) Successful SSA optimization Pass2ConstantAdditionElimination Removing PHI-reference to removed block (main::@1_5) in block main::@2 -if() condition always true - replacing block destination [7] if((const byte) main::a#16<(byte/signed byte/word/signed word/dword/signed dword) 14) goto main::@1_6 +if() condition always true - replacing block destination [7] if((const byte) main::a#16<(byte/signed byte/word/signed word/dword/signed dword) $e) goto main::@1_6 Successful SSA optimization Pass2ConstantIfs Alias (byte) main::a#19 = (byte) main::a#21 Successful SSA optimization Pass2AliasElimination @@ -157,7 +157,7 @@ Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(main::SCREEN#0+main::a#16) Successful SSA optimization Pass2ConstantAdditionElimination Removing PHI-reference to removed block (main::@1_6) in block main::@2 -if() condition always true - replacing block destination [8] if((const byte) main::a#19<(byte/signed byte/word/signed word/dword/signed dword) 14) goto main::@1_7 +if() condition always true - replacing block destination [8] if((const byte) main::a#19<(byte/signed byte/word/signed word/dword/signed dword) $e) goto main::@1_7 Successful SSA optimization Pass2ConstantIfs Alias (byte) main::a#22 = (byte) main::a#24 Successful SSA optimization Pass2AliasElimination @@ -171,7 +171,7 @@ Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(main::SCREEN#0+main::a#19) Successful SSA optimization Pass2ConstantAdditionElimination Removing PHI-reference to removed block (main::@1_7) in block main::@2 -if() condition always true - replacing block destination [9] if((const byte) main::a#22<(byte/signed byte/word/signed word/dword/signed dword) 14) goto main::@1_8 +if() condition always true - replacing block destination [9] if((const byte) main::a#22<(byte/signed byte/word/signed word/dword/signed dword) $e) goto main::@1_8 Successful SSA optimization Pass2ConstantIfs Alias (byte) main::a#25 = (byte) main::a#27 Successful SSA optimization Pass2AliasElimination @@ -185,7 +185,7 @@ Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(main::SCREEN#0+main::a#22) Successful SSA optimization Pass2ConstantAdditionElimination Removing PHI-reference to removed block (main::@1_8) in block main::@2 -if() condition always true - replacing block destination [10] if((const byte) main::a#25<(byte/signed byte/word/signed word/dword/signed dword) 14) goto main::@1_9 +if() condition always true - replacing block destination [10] if((const byte) main::a#25<(byte/signed byte/word/signed word/dword/signed dword) $e) goto main::@1_9 Successful SSA optimization Pass2ConstantIfs Alias (byte) main::a#28 = (byte) main::a#30 Successful SSA optimization Pass2AliasElimination @@ -199,7 +199,7 @@ Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(main::SCREEN#0+main::a#25) Successful SSA optimization Pass2ConstantAdditionElimination Removing PHI-reference to removed block (main::@1_9) in block main::@2 -if() condition always true - replacing block destination [11] if((const byte) main::a#28<(byte/signed byte/word/signed word/dword/signed dword) 14) goto main::@1_10 +if() condition always true - replacing block destination [11] if((const byte) main::a#28<(byte/signed byte/word/signed word/dword/signed dword) $e) goto main::@1_10 Successful SSA optimization Pass2ConstantIfs Alias (byte) main::a#31 = (byte) main::a#33 Successful SSA optimization Pass2AliasElimination @@ -213,7 +213,7 @@ Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(main::SCREEN#0+main::a#28) Successful SSA optimization Pass2ConstantAdditionElimination Removing PHI-reference to removed block (main::@1_10) in block main::@1_11 -if() condition always false - eliminating [12] if((const byte) main::a#31<(byte/signed byte/word/signed word/dword/signed dword) 14) goto main::@1_11 +if() condition always false - eliminating [12] if((const byte) main::a#31<(byte/signed byte/word/signed word/dword/signed dword) $e) goto main::@1_11 Successful SSA optimization Pass2ConstantIfs Eliminating variable (byte) main::a#35 from unused block main::@1_11 Eliminating variable (byte) main::a#36 from unused block main::@1_11 @@ -264,13 +264,13 @@ Simplifying constant integer increment ++8 Simplifying constant integer increment ++8 Simplifying constant integer increment ++9 Simplifying constant integer increment ++9 -Simplifying constant integer increment ++10 -Simplifying constant integer increment ++10 -Simplifying constant integer increment ++11 -Simplifying constant integer increment ++11 -Simplifying constant integer increment ++12 -Simplifying constant integer increment ++12 -Simplifying constant integer increment ++13 +Simplifying constant integer increment ++$a +Simplifying constant integer increment ++$a +Simplifying constant integer increment ++$b +Simplifying constant integer increment ++$b +Simplifying constant integer increment ++$c +Simplifying constant integer increment ++$c +Simplifying constant integer increment ++$d Successful SSA optimization Pass2ConstantSimplification Simplifying constant integer increment ++4 Simplifying constant integer increment ++5 @@ -278,10 +278,10 @@ Simplifying constant integer increment ++6 Simplifying constant integer increment ++7 Simplifying constant integer increment ++8 Simplifying constant integer increment ++9 -Simplifying constant integer increment ++10 -Simplifying constant integer increment ++11 -Simplifying constant integer increment ++12 -Simplifying constant integer increment ++13 +Simplifying constant integer increment ++$a +Simplifying constant integer increment ++$b +Simplifying constant integer increment ++$c +Simplifying constant integer increment ++$d Successful SSA optimization Pass2ConstantSimplification Adding NOP phi() at start of @begin Adding NOP phi() at start of @1 @@ -332,19 +332,19 @@ main::@1_6: scope:[main] from main::@1_5 [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 to:main::@1_7 main::@1_7: scope:[main] from main::@1_6 - [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 + [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a to:main::@1_8 main::@1_8: scope:[main] from main::@1_7 - [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 11) ← (byte/signed byte/word/signed word/dword/signed dword) 11 + [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $b) ← (byte/signed byte/word/signed word/dword/signed dword) $b to:main::@1_9 main::@1_9: scope:[main] from main::@1_8 - [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 12) ← (byte/signed byte/word/signed word/dword/signed dword) 12 + [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $c) ← (byte/signed byte/word/signed word/dword/signed dword) $c to:main::@1_10 main::@1_10: scope:[main] from main::@1_9 - [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 13) ← (byte/signed byte/word/signed word/dword/signed dword) 13 + [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $d) ← (byte/signed byte/word/signed word/dword/signed dword) $d to:main::@2 main::@2: scope:[main] from main::@1_10 - [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 14) ← (byte/signed byte/word/signed word/dword/signed dword) 14 + [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $e) ← (byte/signed byte/word/signed word/dword/signed dword) $e to:main::@return main::@return: scope:[main] from main::@2 [17] return @@ -431,31 +431,31 @@ main: { jmp b1_7 //SEG25 main::@1_7 b1_7: - //SEG26 [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG26 [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 lda #$a sta SCREEN+$a jmp b1_8 //SEG27 main::@1_8 b1_8: - //SEG28 [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 11) ← (byte/signed byte/word/signed word/dword/signed dword) 11 -- _deref_pbuc1=vbuc2 + //SEG28 [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $b) ← (byte/signed byte/word/signed word/dword/signed dword) $b -- _deref_pbuc1=vbuc2 lda #$b sta SCREEN+$b jmp b1_9 //SEG29 main::@1_9 b1_9: - //SEG30 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 12) ← (byte/signed byte/word/signed word/dword/signed dword) 12 -- _deref_pbuc1=vbuc2 + //SEG30 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $c) ← (byte/signed byte/word/signed word/dword/signed dword) $c -- _deref_pbuc1=vbuc2 lda #$c sta SCREEN+$c jmp b1_10 //SEG31 main::@1_10 b1_10: - //SEG32 [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 13) ← (byte/signed byte/word/signed word/dword/signed dword) 13 -- _deref_pbuc1=vbuc2 + //SEG32 [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $d) ← (byte/signed byte/word/signed word/dword/signed dword) $d -- _deref_pbuc1=vbuc2 lda #$d sta SCREEN+$d jmp b2 //SEG33 main::@2 b2: - //SEG34 [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 14) ← (byte/signed byte/word/signed word/dword/signed dword) 14 -- _deref_pbuc1=vbuc2 + //SEG34 [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $e) ← (byte/signed byte/word/signed word/dword/signed dword) $e -- _deref_pbuc1=vbuc2 lda #$e sta SCREEN+$e jmp breturn @@ -473,11 +473,11 @@ Statement [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/ Statement [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 11) ← (byte/signed byte/word/signed word/dword/signed dword) 11 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 12) ← (byte/signed byte/word/signed word/dword/signed dword) 12 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 13) ← (byte/signed byte/word/signed word/dword/signed dword) 13 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 14) ← (byte/signed byte/word/signed word/dword/signed dword) 14 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $b) ← (byte/signed byte/word/signed word/dword/signed dword) $b [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $c) ← (byte/signed byte/word/signed word/dword/signed dword) $c [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $d) ← (byte/signed byte/word/signed word/dword/signed dword) $d [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $e) ← (byte/signed byte/word/signed word/dword/signed dword) $e [ ] ( main:2 [ ] ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [main] @@ -558,31 +558,31 @@ main: { jmp b1_7 //SEG25 main::@1_7 b1_7: - //SEG26 [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG26 [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 lda #$a sta SCREEN+$a jmp b1_8 //SEG27 main::@1_8 b1_8: - //SEG28 [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 11) ← (byte/signed byte/word/signed word/dword/signed dword) 11 -- _deref_pbuc1=vbuc2 + //SEG28 [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $b) ← (byte/signed byte/word/signed word/dword/signed dword) $b -- _deref_pbuc1=vbuc2 lda #$b sta SCREEN+$b jmp b1_9 //SEG29 main::@1_9 b1_9: - //SEG30 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 12) ← (byte/signed byte/word/signed word/dword/signed dword) 12 -- _deref_pbuc1=vbuc2 + //SEG30 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $c) ← (byte/signed byte/word/signed word/dword/signed dword) $c -- _deref_pbuc1=vbuc2 lda #$c sta SCREEN+$c jmp b1_10 //SEG31 main::@1_10 b1_10: - //SEG32 [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 13) ← (byte/signed byte/word/signed word/dword/signed dword) 13 -- _deref_pbuc1=vbuc2 + //SEG32 [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $d) ← (byte/signed byte/word/signed word/dword/signed dword) $d -- _deref_pbuc1=vbuc2 lda #$d sta SCREEN+$d jmp b2 //SEG33 main::@2 b2: - //SEG34 [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 14) ← (byte/signed byte/word/signed word/dword/signed dword) 14 -- _deref_pbuc1=vbuc2 + //SEG34 [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $e) ← (byte/signed byte/word/signed word/dword/signed dword) $e -- _deref_pbuc1=vbuc2 lda #$e sta SCREEN+$e jmp breturn @@ -654,7 +654,7 @@ FINAL SYMBOL TABLE (label) main::@2 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::a @@ -708,23 +708,23 @@ main: { lda #9 sta SCREEN+9 //SEG25 main::@1_7 - //SEG26 [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG26 [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 lda #$a sta SCREEN+$a //SEG27 main::@1_8 - //SEG28 [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 11) ← (byte/signed byte/word/signed word/dword/signed dword) 11 -- _deref_pbuc1=vbuc2 + //SEG28 [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $b) ← (byte/signed byte/word/signed word/dword/signed dword) $b -- _deref_pbuc1=vbuc2 lda #$b sta SCREEN+$b //SEG29 main::@1_9 - //SEG30 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 12) ← (byte/signed byte/word/signed word/dword/signed dword) 12 -- _deref_pbuc1=vbuc2 + //SEG30 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $c) ← (byte/signed byte/word/signed word/dword/signed dword) $c -- _deref_pbuc1=vbuc2 lda #$c sta SCREEN+$c //SEG31 main::@1_10 - //SEG32 [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 13) ← (byte/signed byte/word/signed word/dword/signed dword) 13 -- _deref_pbuc1=vbuc2 + //SEG32 [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $d) ← (byte/signed byte/word/signed word/dword/signed dword) $d -- _deref_pbuc1=vbuc2 lda #$d sta SCREEN+$d //SEG33 main::@2 - //SEG34 [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 14) ← (byte/signed byte/word/signed word/dword/signed dword) 14 -- _deref_pbuc1=vbuc2 + //SEG34 [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $e) ← (byte/signed byte/word/signed word/dword/signed dword) $e -- _deref_pbuc1=vbuc2 lda #$e sta SCREEN+$e //SEG35 main::@return diff --git a/src/test/ref/unroll-loop-modifyvar.sym b/src/test/ref/unroll-loop-modifyvar.sym index 9e947aa2a..f571be133 100644 --- a/src/test/ref/unroll-loop-modifyvar.sym +++ b/src/test/ref/unroll-loop-modifyvar.sym @@ -16,6 +16,6 @@ (label) main::@2 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::a diff --git a/src/test/ref/unroll-screenfill-for-double.cfg b/src/test/ref/unroll-screenfill-for-double.cfg index aa77b8d0d..788bc52a4 100644 --- a/src/test/ref/unroll-screenfill-for-double.cfg +++ b/src/test/ref/unroll-screenfill-for-double.cfg @@ -14,364 +14,364 @@ main::@2: scope:[main] from main [5] *((const byte*) main::SCREEN#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@2_1 main::@2_1: scope:[main] from main::@2 - [6] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [6] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@2_2 main::@2_2: scope:[main] from main::@2_1 - [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@2_3 main::@2_3: scope:[main] from main::@2_2 - [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@2_4 main::@2_4: scope:[main] from main::@2_3 - [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@2_5 main::@2_5: scope:[main] from main::@2_4 - [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@2_6 main::@2_6: scope:[main] from main::@2_5 - [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@2_7 main::@2_7: scope:[main] from main::@2_6 - [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@2_8 main::@2_8: scope:[main] from main::@2_7 - [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@2_9 main::@2_9: scope:[main] from main::@2_8 - [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@2_10 main::@2_10: scope:[main] from main::@2_9 - [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@2_11 main::@2_11: scope:[main] from main::@2_10 [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:main::@2_12 main::@2_12: scope:[main] from main::@2_11 - [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 + [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:main::@2_13 main::@2_13: scope:[main] from main::@2_12 - [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 + [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:main::@2_14 main::@2_14: scope:[main] from main::@2_13 - [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 + [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:main::@2_15 main::@2_15: scope:[main] from main::@2_14 - [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 + [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:main::@2_16 main::@2_16: scope:[main] from main::@2_15 - [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 + [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:main::@2_17 main::@2_17: scope:[main] from main::@2_16 - [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 + [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:main::@2_18 main::@2_18: scope:[main] from main::@2_17 - [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 + [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:main::@2_19 main::@2_19: scope:[main] from main::@2_18 - [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 + [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:main::@2_20 main::@2_20: scope:[main] from main::@2_19 - [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 + [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:main::@2_21 main::@2_21: scope:[main] from main::@2_20 - [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 + [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:main::@2_22 main::@2_22: scope:[main] from main::@2_21 [27] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:main::@2_23 main::@2_23: scope:[main] from main::@2_22 - [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 + [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:main::@2_24 main::@2_24: scope:[main] from main::@2_23 - [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 + [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:main::@2_25 main::@2_25: scope:[main] from main::@2_24 - [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 + [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:main::@2_26 main::@2_26: scope:[main] from main::@2_25 - [31] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 + [31] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:main::@2_27 main::@2_27: scope:[main] from main::@2_26 - [32] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 + [32] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:main::@2_28 main::@2_28: scope:[main] from main::@2_27 - [33] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 + [33] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:main::@2_29 main::@2_29: scope:[main] from main::@2_28 - [34] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 + [34] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:main::@2_30 main::@2_30: scope:[main] from main::@2_29 - [35] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 + [35] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:main::@2_31 main::@2_31: scope:[main] from main::@2_30 - [36] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 + [36] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:main::@2_32 main::@2_32: scope:[main] from main::@2_31 - [37] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 + [37] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:main::@2_33 main::@2_33: scope:[main] from main::@2_32 [38] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 to:main::@2_34 main::@2_34: scope:[main] from main::@2_33 - [39] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [39] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 to:main::@2_35 main::@2_35: scope:[main] from main::@2_34 - [40] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [40] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 to:main::@2_36 main::@2_36: scope:[main] from main::@2_35 - [41] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [41] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 to:main::@2_37 main::@2_37: scope:[main] from main::@2_36 - [42] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [42] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 to:main::@2_38 main::@2_38: scope:[main] from main::@2_37 - [43] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [43] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 to:main::@2_39 main::@2_39: scope:[main] from main::@2_38 - [44] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [44] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 to:main::@2_40 main::@2_40: scope:[main] from main::@2_39 - [45] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [45] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 to:main::@2_41 main::@2_41: scope:[main] from main::@2_40 - [46] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [46] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 to:main::@2_42 main::@2_42: scope:[main] from main::@2_41 - [47] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [47] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 to:main::@2_43 main::@2_43: scope:[main] from main::@2_42 - [48] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [48] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 to:main::@2_44 main::@2_44: scope:[main] from main::@2_43 [49] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 to:main::@2_45 main::@2_45: scope:[main] from main::@2_44 - [50] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 + [50] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 to:main::@2_46 main::@2_46: scope:[main] from main::@2_45 - [51] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 + [51] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 to:main::@2_47 main::@2_47: scope:[main] from main::@2_46 - [52] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 + [52] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 to:main::@2_48 main::@2_48: scope:[main] from main::@2_47 - [53] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 + [53] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 to:main::@2_49 main::@2_49: scope:[main] from main::@2_48 - [54] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 + [54] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 to:main::@2_50 main::@2_50: scope:[main] from main::@2_49 - [55] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 + [55] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 to:main::@2_51 main::@2_51: scope:[main] from main::@2_50 - [56] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 + [56] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 to:main::@2_52 main::@2_52: scope:[main] from main::@2_51 - [57] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 + [57] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 to:main::@2_53 main::@2_53: scope:[main] from main::@2_52 - [58] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 + [58] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 to:main::@2_54 main::@2_54: scope:[main] from main::@2_53 - [59] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 + [59] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 to:main::@2_55 main::@2_55: scope:[main] from main::@2_54 [60] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 to:main::@2_56 main::@2_56: scope:[main] from main::@2_55 - [61] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 + [61] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 to:main::@2_57 main::@2_57: scope:[main] from main::@2_56 - [62] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 + [62] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 to:main::@2_58 main::@2_58: scope:[main] from main::@2_57 - [63] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 + [63] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 to:main::@2_59 main::@2_59: scope:[main] from main::@2_58 - [64] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 + [64] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 to:main::@2_60 main::@2_60: scope:[main] from main::@2_59 - [65] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 + [65] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 to:main::@2_61 main::@2_61: scope:[main] from main::@2_60 - [66] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 + [66] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 to:main::@2_62 main::@2_62: scope:[main] from main::@2_61 - [67] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 + [67] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 to:main::@2_63 main::@2_63: scope:[main] from main::@2_62 - [68] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 + [68] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 to:main::@2_64 main::@2_64: scope:[main] from main::@2_63 - [69] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 + [69] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 to:main::@2_65 main::@2_65: scope:[main] from main::@2_64 - [70] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 + [70] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 to:main::@2_66 main::@2_66: scope:[main] from main::@2_65 [71] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 to:main::@2_67 main::@2_67: scope:[main] from main::@2_66 - [72] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 + [72] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 to:main::@2_68 main::@2_68: scope:[main] from main::@2_67 - [73] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 + [73] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 to:main::@2_69 main::@2_69: scope:[main] from main::@2_68 - [74] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 + [74] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 to:main::@2_70 main::@2_70: scope:[main] from main::@2_69 - [75] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 + [75] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 to:main::@2_71 main::@2_71: scope:[main] from main::@2_70 - [76] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 + [76] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 to:main::@2_72 main::@2_72: scope:[main] from main::@2_71 - [77] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 + [77] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 to:main::@2_73 main::@2_73: scope:[main] from main::@2_72 - [78] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 + [78] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 to:main::@2_74 main::@2_74: scope:[main] from main::@2_73 - [79] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 + [79] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 to:main::@2_75 main::@2_75: scope:[main] from main::@2_74 - [80] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 + [80] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 to:main::@2_76 main::@2_76: scope:[main] from main::@2_75 - [81] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 + [81] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 to:main::@2_77 main::@2_77: scope:[main] from main::@2_76 [82] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 to:main::@2_78 main::@2_78: scope:[main] from main::@2_77 - [83] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 + [83] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 to:main::@2_79 main::@2_79: scope:[main] from main::@2_78 - [84] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 + [84] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 to:main::@2_80 main::@2_80: scope:[main] from main::@2_79 - [85] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 + [85] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 to:main::@2_81 main::@2_81: scope:[main] from main::@2_80 - [86] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 + [86] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 to:main::@2_82 main::@2_82: scope:[main] from main::@2_81 - [87] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 + [87] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 to:main::@2_83 main::@2_83: scope:[main] from main::@2_82 - [88] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 + [88] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 to:main::@2_84 main::@2_84: scope:[main] from main::@2_83 - [89] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 + [89] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 to:main::@2_85 main::@2_85: scope:[main] from main::@2_84 - [90] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 + [90] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 to:main::@2_86 main::@2_86: scope:[main] from main::@2_85 - [91] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 + [91] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 to:main::@2_87 main::@2_87: scope:[main] from main::@2_86 - [92] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 + [92] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 to:main::@2_88 main::@2_88: scope:[main] from main::@2_87 [93] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 to:main::@2_89 main::@2_89: scope:[main] from main::@2_88 - [94] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 + [94] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 to:main::@2_90 main::@2_90: scope:[main] from main::@2_89 - [95] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 + [95] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 to:main::@2_91 main::@2_91: scope:[main] from main::@2_90 - [96] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 + [96] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 to:main::@2_92 main::@2_92: scope:[main] from main::@2_91 - [97] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 + [97] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 to:main::@2_93 main::@2_93: scope:[main] from main::@2_92 - [98] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 + [98] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 to:main::@2_94 main::@2_94: scope:[main] from main::@2_93 - [99] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 + [99] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 to:main::@2_95 main::@2_95: scope:[main] from main::@2_94 - [100] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 + [100] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 to:main::@2_96 main::@2_96: scope:[main] from main::@2_95 - [101] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 + [101] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 to:main::@2_97 main::@2_97: scope:[main] from main::@2_96 - [102] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 + [102] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 to:main::@2_98 main::@2_98: scope:[main] from main::@2_97 - [103] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 + [103] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 to:main::@2_99 main::@2_99: scope:[main] from main::@2_98 [104] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 to:main::@2_100 main::@2_100: scope:[main] from main::@2_99 - [105] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 + [105] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 to:main::@2_101 main::@2_101: scope:[main] from main::@2_100 - [106] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 + [106] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 to:main::@2_102 main::@2_102: scope:[main] from main::@2_101 - [107] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 + [107] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 to:main::@2_103 main::@2_103: scope:[main] from main::@2_102 - [108] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 + [108] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 to:main::@2_104 main::@2_104: scope:[main] from main::@2_103 - [109] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 + [109] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 to:main::@2_105 main::@2_105: scope:[main] from main::@2_104 - [110] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 + [110] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 to:main::@2_106 main::@2_106: scope:[main] from main::@2_105 - [111] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 + [111] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 to:main::@2_107 main::@2_107: scope:[main] from main::@2_106 - [112] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 + [112] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 to:main::@2_108 main::@2_108: scope:[main] from main::@2_107 - [113] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 + [113] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 to:main::@2_109 main::@2_109: scope:[main] from main::@2_108 - [114] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 + [114] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 to:main::@2_110 main::@2_110: scope:[main] from main::@2_109 - [115] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 + [115] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a to:main::@2_111 main::@2_111: scope:[main] from main::@2_110 - [116] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 + [116] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a to:main::@2_112 main::@2_112: scope:[main] from main::@2_111 - [117] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 + [117] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a to:main::@2_113 main::@2_113: scope:[main] from main::@2_112 - [118] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 + [118] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a to:main::@2_114 main::@2_114: scope:[main] from main::@2_113 - [119] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 + [119] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a to:main::@2_115 main::@2_115: scope:[main] from main::@2_114 - [120] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 + [120] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a to:main::@2_116 main::@2_116: scope:[main] from main::@2_115 - [121] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 + [121] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a to:main::@2_117 main::@2_117: scope:[main] from main::@2_116 - [122] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 + [122] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a to:main::@2_118 main::@2_118: scope:[main] from main::@2_117 - [123] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 + [123] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a to:main::@2_119 main::@2_119: scope:[main] from main::@2_118 - [124] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 + [124] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a to:main::@2_120 main::@2_120: scope:[main] from main::@2_119 - [125] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 + [125] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a to:main::@return main::@return: scope:[main] from main::@2_120 [126] return diff --git a/src/test/ref/unroll-screenfill-for-double.log b/src/test/ref/unroll-screenfill-for-double.log index 216dec7c4..a9a17a01a 100644 --- a/src/test/ref/unroll-screenfill-for-double.log +++ b/src/test/ref/unroll-screenfill-for-double.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) main::x#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main main::@3 @@ -15,18 +15,18 @@ main::@2: scope:[main] from main::@1 main::@2 (byte) main::x#2 ← phi( main::@1/(byte) main::x#4 main::@2/(byte) main::x#2 ) (byte*) main::SCREEN#1 ← phi( main::@1/(byte*) main::SCREEN#2 main::@2/(byte*) main::SCREEN#1 ) (byte) main::line#2 ← phi( main::@1/(byte) main::line#0 main::@2/(byte) main::line#1 ) - (byte/signed word/word/dword/signed dword~) main::$0 ← (byte) main::line#2 * (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte/signed word/word/dword/signed dword~) main::$0 ← (byte) main::line#2 * (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*~) main::$1 ← (byte*) main::SCREEN#1 + (byte/signed word/word/dword/signed dword~) main::$0 *((byte*~) main::$1 + (byte) main::x#2) ← (byte) main::x#2 - (byte) main::line#1 ← (byte) main::line#2 + rangenext(0,10) - (bool~) main::$2 ← (byte) main::line#1 != rangelast(0,10) + (byte) main::line#1 ← (byte) main::line#2 + rangenext(0,$a) + (bool~) main::$2 ← (byte) main::line#1 != rangelast(0,$a) unroll if((bool~) main::$2) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 (byte*) main::SCREEN#3 ← phi( main::@2/(byte*) main::SCREEN#1 ) (byte) main::x#3 ← phi( main::@2/(byte) main::x#2 ) - (byte) main::x#1 ← (byte) main::x#3 + rangenext(0,10) - (bool~) main::$3 ← (byte) main::x#1 != rangelast(0,10) + (byte) main::x#1 ← (byte) main::x#3 + rangenext(0,$a) + (bool~) main::$3 ← (byte) main::x#1 != rangelast(0,$a) unroll if((bool~) main::$3) goto main::@1 to:main::@return main::@return: scope:[main] from main::@3 @@ -80,17 +80,17 @@ Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) main::SCREEN#1 (byte*) main::SCREEN#2 Redundant Phi (byte) main::x#2 (byte) main::x#4 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$2 [10] unroll if((byte) main::line#1!=rangelast(0,10)) goto main::@2 -Simple Condition (bool~) main::$3 [14] unroll if((byte) main::x#1!=rangelast(0,10)) goto main::@1 +Simple Condition (bool~) main::$2 [10] unroll if((byte) main::line#1!=rangelast(0,$a)) goto main::@2 +Simple Condition (bool~) main::$3 [14] unroll if((byte) main::x#1!=rangelast(0,$a)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) main::SCREEN#0 = ((byte*))1024 +Constant (const byte*) main::SCREEN#0 = ((byte*))$400 Constant (const byte) main::x#0 = 0 Constant (const byte) main::line#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::line#1 ← ++ main::line#2 to ++ -Resolved ranged comparison value unroll if(main::line#1!=rangelast(0,10)) goto main::@2 to (byte/signed byte/word/signed word/dword/signed dword) 11 +Resolved ranged comparison value unroll if(main::line#1!=rangelast(0,$a)) goto main::@2 to (byte/signed byte/word/signed word/dword/signed dword) $b Resolved ranged next value main::x#1 ← ++ main::x#4 to ++ -Resolved ranged comparison value unroll if(main::x#1!=rangelast(0,10)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 11 +Resolved ranged comparison value unroll if(main::x#1!=rangelast(0,$a)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $b Self Phi Eliminated (byte*) main::SCREEN#2 Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) main::SCREEN#2 (const byte*) main::SCREEN#0 @@ -99,123 +99,123 @@ Unrolling loop Loop head: main::@2 tails: main::@2 blocks: main::@2 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#2 (const byte) main::line#0 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) main::$0 = main::line#0*40 +Constant (const byte/signed word/word/dword/signed dword) main::$0 = main::line#0*$28 Constant (const byte) main::line#1 = ++main::line#0 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$1 = main::SCREEN#0+main::$0 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [2] if((const byte) main::line#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_1 +if() condition always true - replacing block destination [2] if((const byte) main::line#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@2_1 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_1 tails: main::@2_1 blocks: main::@2_1 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#3 (const byte) main::line#1 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) main::$4 = main::line#1*40 +Constant (const byte/signed word/word/dword/signed dword) main::$4 = main::line#1*$28 Constant (const byte) main::line#4 = ++main::line#1 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$5 = main::SCREEN#0+main::$4 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [4] if((const byte) main::line#4!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_2 +if() condition always true - replacing block destination [4] if((const byte) main::line#4!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@2_2 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_2 tails: main::@2_2 blocks: main::@2_2 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#5 (const byte) main::line#4 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) main::$6 = main::line#4*40 +Constant (const byte/signed word/word/dword/signed dword) main::$6 = main::line#4*$28 Constant (const byte) main::line#6 = ++main::line#4 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$7 = main::SCREEN#0+main::$6 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [5] if((const byte) main::line#6!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_3 +if() condition always true - replacing block destination [5] if((const byte) main::line#6!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@2_3 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_3 tails: main::@2_3 blocks: main::@2_3 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#7 (const byte) main::line#6 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) main::$8 = main::line#6*40 +Constant (const byte/signed word/word/dword/signed dword) main::$8 = main::line#6*$28 Constant (const byte) main::line#8 = ++main::line#6 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$9 = main::SCREEN#0+main::$8 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [6] if((const byte) main::line#8!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_4 +if() condition always true - replacing block destination [6] if((const byte) main::line#8!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@2_4 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_4 tails: main::@2_4 blocks: main::@2_4 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#9 (const byte) main::line#8 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) main::$10 = main::line#8*40 +Constant (const byte/signed word/word/dword/signed dword) main::$10 = main::line#8*$28 Constant (const byte) main::line#10 = ++main::line#8 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$11 = main::SCREEN#0+main::$10 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [7] if((const byte) main::line#10!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_5 +if() condition always true - replacing block destination [7] if((const byte) main::line#10!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@2_5 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_5 tails: main::@2_5 blocks: main::@2_5 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#11 (const byte) main::line#10 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) main::$12 = main::line#10*40 +Constant (const byte/signed word/word/dword/signed dword) main::$12 = main::line#10*$28 Constant (const byte) main::line#12 = ++main::line#10 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$13 = main::SCREEN#0+main::$12 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [8] if((const byte) main::line#12!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_6 +if() condition always true - replacing block destination [8] if((const byte) main::line#12!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@2_6 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_6 tails: main::@2_6 blocks: main::@2_6 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#13 (const byte) main::line#12 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) main::$14 = main::line#12*40 +Constant (const byte/signed word/word/dword/signed dword) main::$14 = main::line#12*$28 Constant (const byte) main::line#14 = ++main::line#12 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$15 = main::SCREEN#0+main::$14 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [9] if((const byte) main::line#14!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_7 +if() condition always true - replacing block destination [9] if((const byte) main::line#14!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@2_7 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_7 tails: main::@2_7 blocks: main::@2_7 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#15 (const byte) main::line#14 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$16 = main::line#14*40 +Constant (const word/signed word/dword/signed dword) main::$16 = main::line#14*$28 Constant (const byte) main::line#16 = ++main::line#14 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$17 = main::SCREEN#0+main::$16 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [10] if((const byte) main::line#16!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_8 +if() condition always true - replacing block destination [10] if((const byte) main::line#16!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@2_8 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_8 tails: main::@2_8 blocks: main::@2_8 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#17 (const byte) main::line#16 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$18 = main::line#16*40 +Constant (const word/signed word/dword/signed dword) main::$18 = main::line#16*$28 Constant (const byte) main::line#18 = ++main::line#16 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$19 = main::SCREEN#0+main::$18 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [11] if((const byte) main::line#18!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_9 +if() condition always true - replacing block destination [11] if((const byte) main::line#18!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@2_9 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_9 tails: main::@2_9 blocks: main::@2_9 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#19 (const byte) main::line#18 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$20 = main::line#18*40 +Constant (const word/signed word/dword/signed dword) main::$20 = main::line#18*$28 Constant (const byte) main::line#20 = ++main::line#18 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$21 = main::SCREEN#0+main::$20 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [12] if((const byte) main::line#20!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_10 +if() condition always true - replacing block destination [12] if((const byte) main::line#20!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@2_10 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_10 tails: main::@2_10 blocks: main::@2_10 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#21 (const byte) main::line#20 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$22 = main::line#20*40 +Constant (const word/signed word/dword/signed dword) main::$22 = main::line#20*$28 Constant (const byte) main::line#22 = ++main::line#20 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$23 = main::SCREEN#0+main::$22 Successful SSA optimization Pass2ConstantIdentification Removing PHI-reference to removed block (main::@2_10) in block main::@2_11 -if() condition always false - eliminating [13] if((const byte) main::line#22!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_11 +if() condition always false - eliminating [13] if((const byte) main::line#22!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@2_11 Successful SSA optimization Pass2ConstantIfs Successful SSA optimization PassNEliminateUnusedVars Eliminating variable (byte) main::line#23 from unused block main::@2_11 @@ -242,7 +242,7 @@ Consolidated array index constant in *(main::$19+main::x#0) Consolidated array index constant in *(main::$21+main::x#0) Consolidated array index constant in *(main::$23+main::x#0) Successful SSA optimization Pass2ConstantAdditionElimination -if() condition always true - replacing block destination [12] if((const byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_1 +if() condition always true - replacing block destination [12] if((const byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1_1 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@1 Culled Empty Block (label) main::@3 @@ -265,7 +265,7 @@ Consolidated array index constant in *(main::$19+main::x#1) Consolidated array index constant in *(main::$21+main::x#1) Consolidated array index constant in *(main::$23+main::x#1) Successful SSA optimization Pass2ConstantAdditionElimination -if() condition always true - replacing block destination [23] if((const byte) main::x#6!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_2 +if() condition always true - replacing block destination [23] if((const byte) main::x#6!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1_2 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@1_1 Culled Empty Block (label) main::@3_1 @@ -288,7 +288,7 @@ Consolidated array index constant in *(main::$19+main::x#6) Consolidated array index constant in *(main::$21+main::x#6) Consolidated array index constant in *(main::$23+main::x#6) Successful SSA optimization Pass2ConstantAdditionElimination -if() condition always true - replacing block destination [34] if((const byte) main::x#8!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_1 +if() condition always true - replacing block destination [34] if((const byte) main::x#8!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1_1 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@1_2 Culled Empty Block (label) main::@3_2 @@ -311,7 +311,7 @@ Consolidated array index constant in *(main::$19+main::x#8) Consolidated array index constant in *(main::$21+main::x#8) Consolidated array index constant in *(main::$23+main::x#8) Successful SSA optimization Pass2ConstantAdditionElimination -if() condition always true - replacing block destination [45] if((const byte) main::x#10!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_2 +if() condition always true - replacing block destination [45] if((const byte) main::x#10!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1_2 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@1_1 Culled Empty Block (label) main::@3_1 @@ -334,7 +334,7 @@ Consolidated array index constant in *(main::$19+main::x#10) Consolidated array index constant in *(main::$21+main::x#10) Consolidated array index constant in *(main::$23+main::x#10) Successful SSA optimization Pass2ConstantAdditionElimination -if() condition always true - replacing block destination [56] if((const byte) main::x#12!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_1 +if() condition always true - replacing block destination [56] if((const byte) main::x#12!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1_1 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@1_2 Culled Empty Block (label) main::@3_2 @@ -357,7 +357,7 @@ Consolidated array index constant in *(main::$19+main::x#12) Consolidated array index constant in *(main::$21+main::x#12) Consolidated array index constant in *(main::$23+main::x#12) Successful SSA optimization Pass2ConstantAdditionElimination -if() condition always true - replacing block destination [67] if((const byte) main::x#14!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_2 +if() condition always true - replacing block destination [67] if((const byte) main::x#14!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1_2 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@1_1 Culled Empty Block (label) main::@3_1 @@ -380,7 +380,7 @@ Consolidated array index constant in *(main::$19+main::x#14) Consolidated array index constant in *(main::$21+main::x#14) Consolidated array index constant in *(main::$23+main::x#14) Successful SSA optimization Pass2ConstantAdditionElimination -if() condition always true - replacing block destination [78] if((const byte) main::x#16!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_1 +if() condition always true - replacing block destination [78] if((const byte) main::x#16!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1_1 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@1_2 Culled Empty Block (label) main::@3_2 @@ -403,7 +403,7 @@ Consolidated array index constant in *(main::$19+main::x#16) Consolidated array index constant in *(main::$21+main::x#16) Consolidated array index constant in *(main::$23+main::x#16) Successful SSA optimization Pass2ConstantAdditionElimination -if() condition always true - replacing block destination [89] if((const byte) main::x#18!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_2 +if() condition always true - replacing block destination [89] if((const byte) main::x#18!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1_2 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@1_1 Culled Empty Block (label) main::@3_1 @@ -426,7 +426,7 @@ Consolidated array index constant in *(main::$19+main::x#18) Consolidated array index constant in *(main::$21+main::x#18) Consolidated array index constant in *(main::$23+main::x#18) Successful SSA optimization Pass2ConstantAdditionElimination -if() condition always true - replacing block destination [100] if((const byte) main::x#20!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_1 +if() condition always true - replacing block destination [100] if((const byte) main::x#20!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1_1 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@1_2 Culled Empty Block (label) main::@3_2 @@ -449,7 +449,7 @@ Consolidated array index constant in *(main::$19+main::x#20) Consolidated array index constant in *(main::$21+main::x#20) Consolidated array index constant in *(main::$23+main::x#20) Successful SSA optimization Pass2ConstantAdditionElimination -if() condition always true - replacing block destination [111] if((const byte) main::x#22!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_2 +if() condition always true - replacing block destination [111] if((const byte) main::x#22!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1_2 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@1_1 Culled Empty Block (label) main::@3_1 @@ -473,7 +473,7 @@ Consolidated array index constant in *(main::$21+main::x#22) Consolidated array index constant in *(main::$23+main::x#22) Successful SSA optimization Pass2ConstantAdditionElimination Removing PHI-reference to removed block (main::@3_2) in block main::@1_1 -if() condition always false - eliminating [122] if((const byte) main::x#24!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_1 +if() condition always false - eliminating [122] if((const byte) main::x#24!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1_1 Successful SSA optimization Pass2ConstantIfs Successful SSA optimization PassNEliminateUnusedVars Eliminating variable (byte) main::x#25 from unused block main::@1_1 @@ -517,19 +517,19 @@ Inlining constant with different constant siblings (const byte) main::x#16 Inlining constant with different constant siblings (const byte) main::x#18 Inlining constant with different constant siblings (const byte) main::x#20 Inlining constant with different constant siblings (const byte) main::x#22 -Constant inlined main::$12 = ++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$13 = (const byte*) main::SCREEN#0+++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$14 = ++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$15 = (const byte*) main::SCREEN#0+++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$10 = ++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$11 = (const byte*) main::SCREEN#0+++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$12 = ++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$13 = (const byte*) main::SCREEN#0+++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$14 = ++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$15 = (const byte*) main::SCREEN#0+++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$10 = ++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$11 = (const byte*) main::SCREEN#0+++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#20 = ++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$16 = ++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$16 = ++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::x#16 = ++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$17 = (const byte*) main::SCREEN#0+++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$18 = ++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$17 = (const byte*) main::SCREEN#0+++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$18 = ++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::x#18 = ++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$19 = (const byte*) main::SCREEN#0+++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$19 = (const byte*) main::SCREEN#0+++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#4 = ++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::x#12 = ++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::x#14 = ++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 @@ -538,51 +538,51 @@ Constant inlined main::line#1 = ++(byte/signed byte/word/signed word/dword/signe Constant inlined main::x#10 = ++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#8 = ++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#6 = ++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$23 = (const byte*) main::SCREEN#0+++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$23 = (const byte*) main::SCREEN#0+++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::x#1 = ++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$20 = ++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$21 = (const byte*) main::SCREEN#0+++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$22 = ++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$20 = ++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$21 = (const byte*) main::SCREEN#0+++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$22 = ++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#10 = ++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#12 = ++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::x#8 = ++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$1 = (const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$1 = (const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::x#6 = ++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$0 = (byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$5 = (const byte*) main::SCREEN#0+++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$0 = (byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$5 = (const byte*) main::SCREEN#0+++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#18 = ++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$6 = ++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$6 = ++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::x#22 = ++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$4 = ++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$9 = (const byte*) main::SCREEN#0+++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$4 = ++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$9 = (const byte*) main::SCREEN#0+++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#14 = ++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$7 = (const byte*) main::SCREEN#0+++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$7 = (const byte*) main::SCREEN#0+++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#16 = ++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$8 = ++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$8 = ++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::x#20 = ++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining -Simplifying constant plus zero main::SCREEN#0+0*40+0 -Simplifying constant multiply by zero 0*40 -Simplifying constant plus zero main::SCREEN#0+++0*40+0 +Simplifying constant plus zero main::SCREEN#0+0*$28+0 +Simplifying constant multiply by zero 0*$28 +Simplifying constant plus zero main::SCREEN#0+++0*$28+0 Simplifying constant integer increment ++0 -Simplifying constant plus zero main::SCREEN#0+++++0*40+0 +Simplifying constant plus zero main::SCREEN#0+++++0*$28+0 Simplifying constant integer increment ++0 -Simplifying constant plus zero main::SCREEN#0+++++1*40+0 +Simplifying constant plus zero main::SCREEN#0+++++1*$28+0 Simplifying constant integer increment ++1 -Simplifying constant plus zero main::SCREEN#0+++++2*40+0 +Simplifying constant plus zero main::SCREEN#0+++++2*$28+0 Simplifying constant integer increment ++2 -Simplifying constant plus zero main::SCREEN#0+++++3*40+0 +Simplifying constant plus zero main::SCREEN#0+++++3*$28+0 Simplifying constant integer increment ++3 -Simplifying constant plus zero main::SCREEN#0+++++4*40+0 +Simplifying constant plus zero main::SCREEN#0+++++4*$28+0 Simplifying constant integer increment ++4 -Simplifying constant plus zero main::SCREEN#0+++++5*40+0 +Simplifying constant plus zero main::SCREEN#0+++++5*$28+0 Simplifying constant integer increment ++5 -Simplifying constant plus zero main::SCREEN#0+++++6*40+0 +Simplifying constant plus zero main::SCREEN#0+++++6*$28+0 Simplifying constant integer increment ++6 -Simplifying constant plus zero main::SCREEN#0+++++7*40+0 +Simplifying constant plus zero main::SCREEN#0+++++7*$28+0 Simplifying constant integer increment ++7 -Simplifying constant plus zero main::SCREEN#0+++++8*40+0 +Simplifying constant plus zero main::SCREEN#0+++++8*$28+0 Simplifying constant integer increment ++8 Simplifying constant integer increment ++0 Simplifying constant plus zero main::SCREEN#0+0 @@ -866,364 +866,364 @@ main::@2: scope:[main] from main [5] *((const byte*) main::SCREEN#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@2_1 main::@2_1: scope:[main] from main::@2 - [6] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [6] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@2_2 main::@2_2: scope:[main] from main::@2_1 - [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@2_3 main::@2_3: scope:[main] from main::@2_2 - [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@2_4 main::@2_4: scope:[main] from main::@2_3 - [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@2_5 main::@2_5: scope:[main] from main::@2_4 - [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@2_6 main::@2_6: scope:[main] from main::@2_5 - [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@2_7 main::@2_7: scope:[main] from main::@2_6 - [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@2_8 main::@2_8: scope:[main] from main::@2_7 - [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@2_9 main::@2_9: scope:[main] from main::@2_8 - [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@2_10 main::@2_10: scope:[main] from main::@2_9 - [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@2_11 main::@2_11: scope:[main] from main::@2_10 [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:main::@2_12 main::@2_12: scope:[main] from main::@2_11 - [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 + [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:main::@2_13 main::@2_13: scope:[main] from main::@2_12 - [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 + [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:main::@2_14 main::@2_14: scope:[main] from main::@2_13 - [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 + [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:main::@2_15 main::@2_15: scope:[main] from main::@2_14 - [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 + [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:main::@2_16 main::@2_16: scope:[main] from main::@2_15 - [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 + [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:main::@2_17 main::@2_17: scope:[main] from main::@2_16 - [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 + [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:main::@2_18 main::@2_18: scope:[main] from main::@2_17 - [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 + [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:main::@2_19 main::@2_19: scope:[main] from main::@2_18 - [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 + [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:main::@2_20 main::@2_20: scope:[main] from main::@2_19 - [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 + [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:main::@2_21 main::@2_21: scope:[main] from main::@2_20 - [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 + [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:main::@2_22 main::@2_22: scope:[main] from main::@2_21 [27] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:main::@2_23 main::@2_23: scope:[main] from main::@2_22 - [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 + [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:main::@2_24 main::@2_24: scope:[main] from main::@2_23 - [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 + [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:main::@2_25 main::@2_25: scope:[main] from main::@2_24 - [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 + [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:main::@2_26 main::@2_26: scope:[main] from main::@2_25 - [31] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 + [31] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:main::@2_27 main::@2_27: scope:[main] from main::@2_26 - [32] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 + [32] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:main::@2_28 main::@2_28: scope:[main] from main::@2_27 - [33] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 + [33] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:main::@2_29 main::@2_29: scope:[main] from main::@2_28 - [34] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 + [34] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:main::@2_30 main::@2_30: scope:[main] from main::@2_29 - [35] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 + [35] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:main::@2_31 main::@2_31: scope:[main] from main::@2_30 - [36] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 + [36] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:main::@2_32 main::@2_32: scope:[main] from main::@2_31 - [37] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 + [37] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 to:main::@2_33 main::@2_33: scope:[main] from main::@2_32 [38] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 to:main::@2_34 main::@2_34: scope:[main] from main::@2_33 - [39] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [39] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 to:main::@2_35 main::@2_35: scope:[main] from main::@2_34 - [40] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [40] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 to:main::@2_36 main::@2_36: scope:[main] from main::@2_35 - [41] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [41] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 to:main::@2_37 main::@2_37: scope:[main] from main::@2_36 - [42] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [42] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 to:main::@2_38 main::@2_38: scope:[main] from main::@2_37 - [43] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [43] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 to:main::@2_39 main::@2_39: scope:[main] from main::@2_38 - [44] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [44] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 to:main::@2_40 main::@2_40: scope:[main] from main::@2_39 - [45] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [45] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 to:main::@2_41 main::@2_41: scope:[main] from main::@2_40 - [46] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [46] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 to:main::@2_42 main::@2_42: scope:[main] from main::@2_41 - [47] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [47] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 to:main::@2_43 main::@2_43: scope:[main] from main::@2_42 - [48] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [48] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 to:main::@2_44 main::@2_44: scope:[main] from main::@2_43 [49] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 to:main::@2_45 main::@2_45: scope:[main] from main::@2_44 - [50] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 + [50] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 to:main::@2_46 main::@2_46: scope:[main] from main::@2_45 - [51] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 + [51] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 to:main::@2_47 main::@2_47: scope:[main] from main::@2_46 - [52] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 + [52] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 to:main::@2_48 main::@2_48: scope:[main] from main::@2_47 - [53] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 + [53] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 to:main::@2_49 main::@2_49: scope:[main] from main::@2_48 - [54] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 + [54] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 to:main::@2_50 main::@2_50: scope:[main] from main::@2_49 - [55] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 + [55] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 to:main::@2_51 main::@2_51: scope:[main] from main::@2_50 - [56] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 + [56] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 to:main::@2_52 main::@2_52: scope:[main] from main::@2_51 - [57] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 + [57] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 to:main::@2_53 main::@2_53: scope:[main] from main::@2_52 - [58] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 + [58] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 to:main::@2_54 main::@2_54: scope:[main] from main::@2_53 - [59] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 + [59] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 to:main::@2_55 main::@2_55: scope:[main] from main::@2_54 [60] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 to:main::@2_56 main::@2_56: scope:[main] from main::@2_55 - [61] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 + [61] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 to:main::@2_57 main::@2_57: scope:[main] from main::@2_56 - [62] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 + [62] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 to:main::@2_58 main::@2_58: scope:[main] from main::@2_57 - [63] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 + [63] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 to:main::@2_59 main::@2_59: scope:[main] from main::@2_58 - [64] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 + [64] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 to:main::@2_60 main::@2_60: scope:[main] from main::@2_59 - [65] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 + [65] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 to:main::@2_61 main::@2_61: scope:[main] from main::@2_60 - [66] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 + [66] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 to:main::@2_62 main::@2_62: scope:[main] from main::@2_61 - [67] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 + [67] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 to:main::@2_63 main::@2_63: scope:[main] from main::@2_62 - [68] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 + [68] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 to:main::@2_64 main::@2_64: scope:[main] from main::@2_63 - [69] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 + [69] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 to:main::@2_65 main::@2_65: scope:[main] from main::@2_64 - [70] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 + [70] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 to:main::@2_66 main::@2_66: scope:[main] from main::@2_65 [71] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 to:main::@2_67 main::@2_67: scope:[main] from main::@2_66 - [72] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 + [72] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 to:main::@2_68 main::@2_68: scope:[main] from main::@2_67 - [73] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 + [73] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 to:main::@2_69 main::@2_69: scope:[main] from main::@2_68 - [74] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 + [74] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 to:main::@2_70 main::@2_70: scope:[main] from main::@2_69 - [75] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 + [75] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 to:main::@2_71 main::@2_71: scope:[main] from main::@2_70 - [76] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 + [76] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 to:main::@2_72 main::@2_72: scope:[main] from main::@2_71 - [77] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 + [77] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 to:main::@2_73 main::@2_73: scope:[main] from main::@2_72 - [78] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 + [78] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 to:main::@2_74 main::@2_74: scope:[main] from main::@2_73 - [79] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 + [79] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 to:main::@2_75 main::@2_75: scope:[main] from main::@2_74 - [80] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 + [80] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 to:main::@2_76 main::@2_76: scope:[main] from main::@2_75 - [81] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 + [81] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 to:main::@2_77 main::@2_77: scope:[main] from main::@2_76 [82] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 to:main::@2_78 main::@2_78: scope:[main] from main::@2_77 - [83] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 + [83] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 to:main::@2_79 main::@2_79: scope:[main] from main::@2_78 - [84] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 + [84] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 to:main::@2_80 main::@2_80: scope:[main] from main::@2_79 - [85] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 + [85] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 to:main::@2_81 main::@2_81: scope:[main] from main::@2_80 - [86] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 + [86] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 to:main::@2_82 main::@2_82: scope:[main] from main::@2_81 - [87] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 + [87] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 to:main::@2_83 main::@2_83: scope:[main] from main::@2_82 - [88] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 + [88] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 to:main::@2_84 main::@2_84: scope:[main] from main::@2_83 - [89] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 + [89] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 to:main::@2_85 main::@2_85: scope:[main] from main::@2_84 - [90] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 + [90] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 to:main::@2_86 main::@2_86: scope:[main] from main::@2_85 - [91] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 + [91] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 to:main::@2_87 main::@2_87: scope:[main] from main::@2_86 - [92] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 + [92] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 to:main::@2_88 main::@2_88: scope:[main] from main::@2_87 [93] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 to:main::@2_89 main::@2_89: scope:[main] from main::@2_88 - [94] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 + [94] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 to:main::@2_90 main::@2_90: scope:[main] from main::@2_89 - [95] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 + [95] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 to:main::@2_91 main::@2_91: scope:[main] from main::@2_90 - [96] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 + [96] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 to:main::@2_92 main::@2_92: scope:[main] from main::@2_91 - [97] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 + [97] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 to:main::@2_93 main::@2_93: scope:[main] from main::@2_92 - [98] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 + [98] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 to:main::@2_94 main::@2_94: scope:[main] from main::@2_93 - [99] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 + [99] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 to:main::@2_95 main::@2_95: scope:[main] from main::@2_94 - [100] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 + [100] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 to:main::@2_96 main::@2_96: scope:[main] from main::@2_95 - [101] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 + [101] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 to:main::@2_97 main::@2_97: scope:[main] from main::@2_96 - [102] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 + [102] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 to:main::@2_98 main::@2_98: scope:[main] from main::@2_97 - [103] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 + [103] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 to:main::@2_99 main::@2_99: scope:[main] from main::@2_98 [104] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 to:main::@2_100 main::@2_100: scope:[main] from main::@2_99 - [105] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 + [105] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 to:main::@2_101 main::@2_101: scope:[main] from main::@2_100 - [106] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 + [106] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 to:main::@2_102 main::@2_102: scope:[main] from main::@2_101 - [107] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 + [107] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 to:main::@2_103 main::@2_103: scope:[main] from main::@2_102 - [108] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 + [108] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 to:main::@2_104 main::@2_104: scope:[main] from main::@2_103 - [109] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 + [109] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 to:main::@2_105 main::@2_105: scope:[main] from main::@2_104 - [110] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 + [110] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 to:main::@2_106 main::@2_106: scope:[main] from main::@2_105 - [111] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 + [111] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 to:main::@2_107 main::@2_107: scope:[main] from main::@2_106 - [112] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 + [112] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 to:main::@2_108 main::@2_108: scope:[main] from main::@2_107 - [113] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 + [113] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 to:main::@2_109 main::@2_109: scope:[main] from main::@2_108 - [114] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 + [114] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 to:main::@2_110 main::@2_110: scope:[main] from main::@2_109 - [115] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 + [115] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a to:main::@2_111 main::@2_111: scope:[main] from main::@2_110 - [116] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 + [116] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a to:main::@2_112 main::@2_112: scope:[main] from main::@2_111 - [117] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 + [117] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a to:main::@2_113 main::@2_113: scope:[main] from main::@2_112 - [118] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 + [118] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a to:main::@2_114 main::@2_114: scope:[main] from main::@2_113 - [119] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 + [119] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a to:main::@2_115 main::@2_115: scope:[main] from main::@2_114 - [120] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 + [120] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a to:main::@2_116 main::@2_116: scope:[main] from main::@2_115 - [121] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 + [121] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a to:main::@2_117 main::@2_117: scope:[main] from main::@2_116 - [122] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 + [122] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a to:main::@2_118 main::@2_118: scope:[main] from main::@2_117 - [123] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 + [123] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a to:main::@2_119 main::@2_119: scope:[main] from main::@2_118 - [124] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 + [124] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a to:main::@2_120 main::@2_120: scope:[main] from main::@2_119 - [125] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 + [125] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a to:main::@return main::@return: scope:[main] from main::@2_120 [126] return @@ -1275,61 +1275,61 @@ main: { jmp b2_1 //SEG13 main::@2_1 b2_1: - //SEG14 [6] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG14 [6] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+1*$28 jmp b2_2 //SEG15 main::@2_2 b2_2: - //SEG16 [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG16 [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+2*$28 jmp b2_3 //SEG17 main::@2_3 b2_3: - //SEG18 [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG18 [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+3*$28 jmp b2_4 //SEG19 main::@2_4 b2_4: - //SEG20 [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG20 [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+4*$28 jmp b2_5 //SEG21 main::@2_5 b2_5: - //SEG22 [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG22 [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+5*$28 jmp b2_6 //SEG23 main::@2_6 b2_6: - //SEG24 [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG24 [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+6*$28 jmp b2_7 //SEG25 main::@2_7 b2_7: - //SEG26 [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG26 [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+7*$28 jmp b2_8 //SEG27 main::@2_8 b2_8: - //SEG28 [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG28 [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+8*$28 jmp b2_9 //SEG29 main::@2_9 b2_9: - //SEG30 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG30 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+9*$28 jmp b2_10 //SEG31 main::@2_10 b2_10: - //SEG32 [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG32 [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+$a*$28 jmp b2_11 @@ -1341,61 +1341,61 @@ main: { jmp b2_12 //SEG35 main::@2_12 b2_12: - //SEG36 [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG36 [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 lda #1 sta SCREEN+1*$28+1 jmp b2_13 //SEG37 main::@2_13 b2_13: - //SEG38 [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG38 [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 lda #1 sta SCREEN+2*$28+1 jmp b2_14 //SEG39 main::@2_14 b2_14: - //SEG40 [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG40 [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 lda #1 sta SCREEN+3*$28+1 jmp b2_15 //SEG41 main::@2_15 b2_15: - //SEG42 [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG42 [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 lda #1 sta SCREEN+4*$28+1 jmp b2_16 //SEG43 main::@2_16 b2_16: - //SEG44 [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG44 [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 lda #1 sta SCREEN+5*$28+1 jmp b2_17 //SEG45 main::@2_17 b2_17: - //SEG46 [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG46 [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 lda #1 sta SCREEN+6*$28+1 jmp b2_18 //SEG47 main::@2_18 b2_18: - //SEG48 [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG48 [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 lda #1 sta SCREEN+7*$28+1 jmp b2_19 //SEG49 main::@2_19 b2_19: - //SEG50 [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG50 [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 lda #1 sta SCREEN+8*$28+1 jmp b2_20 //SEG51 main::@2_20 b2_20: - //SEG52 [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG52 [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 lda #1 sta SCREEN+9*$28+1 jmp b2_21 //SEG53 main::@2_21 b2_21: - //SEG54 [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG54 [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 lda #1 sta SCREEN+$a*$28+1 jmp b2_22 @@ -1407,61 +1407,61 @@ main: { jmp b2_23 //SEG57 main::@2_23 b2_23: - //SEG58 [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG58 [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 lda #2 sta SCREEN+1*$28+2 jmp b2_24 //SEG59 main::@2_24 b2_24: - //SEG60 [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG60 [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 lda #2 sta SCREEN+2*$28+2 jmp b2_25 //SEG61 main::@2_25 b2_25: - //SEG62 [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG62 [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 lda #2 sta SCREEN+3*$28+2 jmp b2_26 //SEG63 main::@2_26 b2_26: - //SEG64 [31] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG64 [31] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 lda #2 sta SCREEN+4*$28+2 jmp b2_27 //SEG65 main::@2_27 b2_27: - //SEG66 [32] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG66 [32] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 lda #2 sta SCREEN+5*$28+2 jmp b2_28 //SEG67 main::@2_28 b2_28: - //SEG68 [33] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG68 [33] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 lda #2 sta SCREEN+6*$28+2 jmp b2_29 //SEG69 main::@2_29 b2_29: - //SEG70 [34] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG70 [34] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 lda #2 sta SCREEN+7*$28+2 jmp b2_30 //SEG71 main::@2_30 b2_30: - //SEG72 [35] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG72 [35] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 lda #2 sta SCREEN+8*$28+2 jmp b2_31 //SEG73 main::@2_31 b2_31: - //SEG74 [36] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG74 [36] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 lda #2 sta SCREEN+9*$28+2 jmp b2_32 //SEG75 main::@2_32 b2_32: - //SEG76 [37] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG76 [37] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 lda #2 sta SCREEN+$a*$28+2 jmp b2_33 @@ -1473,61 +1473,61 @@ main: { jmp b2_34 //SEG79 main::@2_34 b2_34: - //SEG80 [39] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG80 [39] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #3 sta SCREEN+1*$28+3 jmp b2_35 //SEG81 main::@2_35 b2_35: - //SEG82 [40] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG82 [40] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #3 sta SCREEN+2*$28+3 jmp b2_36 //SEG83 main::@2_36 b2_36: - //SEG84 [41] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG84 [41] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #3 sta SCREEN+3*$28+3 jmp b2_37 //SEG85 main::@2_37 b2_37: - //SEG86 [42] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG86 [42] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #3 sta SCREEN+4*$28+3 jmp b2_38 //SEG87 main::@2_38 b2_38: - //SEG88 [43] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG88 [43] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #3 sta SCREEN+5*$28+3 jmp b2_39 //SEG89 main::@2_39 b2_39: - //SEG90 [44] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG90 [44] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #3 sta SCREEN+6*$28+3 jmp b2_40 //SEG91 main::@2_40 b2_40: - //SEG92 [45] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG92 [45] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #3 sta SCREEN+7*$28+3 jmp b2_41 //SEG93 main::@2_41 b2_41: - //SEG94 [46] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG94 [46] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #3 sta SCREEN+8*$28+3 jmp b2_42 //SEG95 main::@2_42 b2_42: - //SEG96 [47] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG96 [47] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #3 sta SCREEN+9*$28+3 jmp b2_43 //SEG97 main::@2_43 b2_43: - //SEG98 [48] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG98 [48] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #3 sta SCREEN+$a*$28+3 jmp b2_44 @@ -1539,61 +1539,61 @@ main: { jmp b2_45 //SEG101 main::@2_45 b2_45: - //SEG102 [50] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG102 [50] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 lda #4 sta SCREEN+1*$28+4 jmp b2_46 //SEG103 main::@2_46 b2_46: - //SEG104 [51] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG104 [51] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 lda #4 sta SCREEN+2*$28+4 jmp b2_47 //SEG105 main::@2_47 b2_47: - //SEG106 [52] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG106 [52] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 lda #4 sta SCREEN+3*$28+4 jmp b2_48 //SEG107 main::@2_48 b2_48: - //SEG108 [53] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG108 [53] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 lda #4 sta SCREEN+4*$28+4 jmp b2_49 //SEG109 main::@2_49 b2_49: - //SEG110 [54] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG110 [54] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 lda #4 sta SCREEN+5*$28+4 jmp b2_50 //SEG111 main::@2_50 b2_50: - //SEG112 [55] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG112 [55] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 lda #4 sta SCREEN+6*$28+4 jmp b2_51 //SEG113 main::@2_51 b2_51: - //SEG114 [56] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG114 [56] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 lda #4 sta SCREEN+7*$28+4 jmp b2_52 //SEG115 main::@2_52 b2_52: - //SEG116 [57] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG116 [57] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 lda #4 sta SCREEN+8*$28+4 jmp b2_53 //SEG117 main::@2_53 b2_53: - //SEG118 [58] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG118 [58] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 lda #4 sta SCREEN+9*$28+4 jmp b2_54 //SEG119 main::@2_54 b2_54: - //SEG120 [59] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG120 [59] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 lda #4 sta SCREEN+$a*$28+4 jmp b2_55 @@ -1605,61 +1605,61 @@ main: { jmp b2_56 //SEG123 main::@2_56 b2_56: - //SEG124 [61] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG124 [61] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 lda #5 sta SCREEN+1*$28+5 jmp b2_57 //SEG125 main::@2_57 b2_57: - //SEG126 [62] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG126 [62] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 lda #5 sta SCREEN+2*$28+5 jmp b2_58 //SEG127 main::@2_58 b2_58: - //SEG128 [63] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG128 [63] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 lda #5 sta SCREEN+3*$28+5 jmp b2_59 //SEG129 main::@2_59 b2_59: - //SEG130 [64] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG130 [64] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 lda #5 sta SCREEN+4*$28+5 jmp b2_60 //SEG131 main::@2_60 b2_60: - //SEG132 [65] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG132 [65] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 lda #5 sta SCREEN+5*$28+5 jmp b2_61 //SEG133 main::@2_61 b2_61: - //SEG134 [66] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG134 [66] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 lda #5 sta SCREEN+6*$28+5 jmp b2_62 //SEG135 main::@2_62 b2_62: - //SEG136 [67] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG136 [67] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 lda #5 sta SCREEN+7*$28+5 jmp b2_63 //SEG137 main::@2_63 b2_63: - //SEG138 [68] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG138 [68] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 lda #5 sta SCREEN+8*$28+5 jmp b2_64 //SEG139 main::@2_64 b2_64: - //SEG140 [69] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG140 [69] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 lda #5 sta SCREEN+9*$28+5 jmp b2_65 //SEG141 main::@2_65 b2_65: - //SEG142 [70] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG142 [70] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 lda #5 sta SCREEN+$a*$28+5 jmp b2_66 @@ -1671,61 +1671,61 @@ main: { jmp b2_67 //SEG145 main::@2_67 b2_67: - //SEG146 [72] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG146 [72] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 lda #6 sta SCREEN+1*$28+6 jmp b2_68 //SEG147 main::@2_68 b2_68: - //SEG148 [73] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG148 [73] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 lda #6 sta SCREEN+2*$28+6 jmp b2_69 //SEG149 main::@2_69 b2_69: - //SEG150 [74] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG150 [74] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 lda #6 sta SCREEN+3*$28+6 jmp b2_70 //SEG151 main::@2_70 b2_70: - //SEG152 [75] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG152 [75] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 lda #6 sta SCREEN+4*$28+6 jmp b2_71 //SEG153 main::@2_71 b2_71: - //SEG154 [76] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG154 [76] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 lda #6 sta SCREEN+5*$28+6 jmp b2_72 //SEG155 main::@2_72 b2_72: - //SEG156 [77] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG156 [77] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 lda #6 sta SCREEN+6*$28+6 jmp b2_73 //SEG157 main::@2_73 b2_73: - //SEG158 [78] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG158 [78] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 lda #6 sta SCREEN+7*$28+6 jmp b2_74 //SEG159 main::@2_74 b2_74: - //SEG160 [79] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG160 [79] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 lda #6 sta SCREEN+8*$28+6 jmp b2_75 //SEG161 main::@2_75 b2_75: - //SEG162 [80] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG162 [80] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 lda #6 sta SCREEN+9*$28+6 jmp b2_76 //SEG163 main::@2_76 b2_76: - //SEG164 [81] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG164 [81] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 lda #6 sta SCREEN+$a*$28+6 jmp b2_77 @@ -1737,61 +1737,61 @@ main: { jmp b2_78 //SEG167 main::@2_78 b2_78: - //SEG168 [83] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG168 [83] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 lda #7 sta SCREEN+1*$28+7 jmp b2_79 //SEG169 main::@2_79 b2_79: - //SEG170 [84] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG170 [84] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 lda #7 sta SCREEN+2*$28+7 jmp b2_80 //SEG171 main::@2_80 b2_80: - //SEG172 [85] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG172 [85] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 lda #7 sta SCREEN+3*$28+7 jmp b2_81 //SEG173 main::@2_81 b2_81: - //SEG174 [86] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG174 [86] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 lda #7 sta SCREEN+4*$28+7 jmp b2_82 //SEG175 main::@2_82 b2_82: - //SEG176 [87] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG176 [87] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 lda #7 sta SCREEN+5*$28+7 jmp b2_83 //SEG177 main::@2_83 b2_83: - //SEG178 [88] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG178 [88] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 lda #7 sta SCREEN+6*$28+7 jmp b2_84 //SEG179 main::@2_84 b2_84: - //SEG180 [89] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG180 [89] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 lda #7 sta SCREEN+7*$28+7 jmp b2_85 //SEG181 main::@2_85 b2_85: - //SEG182 [90] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG182 [90] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 lda #7 sta SCREEN+8*$28+7 jmp b2_86 //SEG183 main::@2_86 b2_86: - //SEG184 [91] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG184 [91] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 lda #7 sta SCREEN+9*$28+7 jmp b2_87 //SEG185 main::@2_87 b2_87: - //SEG186 [92] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG186 [92] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 lda #7 sta SCREEN+$a*$28+7 jmp b2_88 @@ -1803,61 +1803,61 @@ main: { jmp b2_89 //SEG189 main::@2_89 b2_89: - //SEG190 [94] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG190 [94] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 lda #8 sta SCREEN+1*$28+8 jmp b2_90 //SEG191 main::@2_90 b2_90: - //SEG192 [95] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG192 [95] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 lda #8 sta SCREEN+2*$28+8 jmp b2_91 //SEG193 main::@2_91 b2_91: - //SEG194 [96] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG194 [96] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 lda #8 sta SCREEN+3*$28+8 jmp b2_92 //SEG195 main::@2_92 b2_92: - //SEG196 [97] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG196 [97] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 lda #8 sta SCREEN+4*$28+8 jmp b2_93 //SEG197 main::@2_93 b2_93: - //SEG198 [98] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG198 [98] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 lda #8 sta SCREEN+5*$28+8 jmp b2_94 //SEG199 main::@2_94 b2_94: - //SEG200 [99] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG200 [99] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 lda #8 sta SCREEN+6*$28+8 jmp b2_95 //SEG201 main::@2_95 b2_95: - //SEG202 [100] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG202 [100] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 lda #8 sta SCREEN+7*$28+8 jmp b2_96 //SEG203 main::@2_96 b2_96: - //SEG204 [101] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG204 [101] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 lda #8 sta SCREEN+8*$28+8 jmp b2_97 //SEG205 main::@2_97 b2_97: - //SEG206 [102] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG206 [102] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 lda #8 sta SCREEN+9*$28+8 jmp b2_98 //SEG207 main::@2_98 b2_98: - //SEG208 [103] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG208 [103] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 lda #8 sta SCREEN+$a*$28+8 jmp b2_99 @@ -1869,127 +1869,127 @@ main: { jmp b2_100 //SEG211 main::@2_100 b2_100: - //SEG212 [105] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG212 [105] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 lda #9 sta SCREEN+1*$28+9 jmp b2_101 //SEG213 main::@2_101 b2_101: - //SEG214 [106] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG214 [106] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 lda #9 sta SCREEN+2*$28+9 jmp b2_102 //SEG215 main::@2_102 b2_102: - //SEG216 [107] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG216 [107] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 lda #9 sta SCREEN+3*$28+9 jmp b2_103 //SEG217 main::@2_103 b2_103: - //SEG218 [108] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG218 [108] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 lda #9 sta SCREEN+4*$28+9 jmp b2_104 //SEG219 main::@2_104 b2_104: - //SEG220 [109] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG220 [109] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 lda #9 sta SCREEN+5*$28+9 jmp b2_105 //SEG221 main::@2_105 b2_105: - //SEG222 [110] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG222 [110] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 lda #9 sta SCREEN+6*$28+9 jmp b2_106 //SEG223 main::@2_106 b2_106: - //SEG224 [111] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG224 [111] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 lda #9 sta SCREEN+7*$28+9 jmp b2_107 //SEG225 main::@2_107 b2_107: - //SEG226 [112] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG226 [112] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 lda #9 sta SCREEN+8*$28+9 jmp b2_108 //SEG227 main::@2_108 b2_108: - //SEG228 [113] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG228 [113] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 lda #9 sta SCREEN+9*$28+9 jmp b2_109 //SEG229 main::@2_109 b2_109: - //SEG230 [114] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG230 [114] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 lda #9 sta SCREEN+$a*$28+9 jmp b2_110 //SEG231 main::@2_110 b2_110: - //SEG232 [115] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG232 [115] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 lda #$a sta SCREEN+$a jmp b2_111 //SEG233 main::@2_111 b2_111: - //SEG234 [116] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG234 [116] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 lda #$a sta SCREEN+1*$28+$a jmp b2_112 //SEG235 main::@2_112 b2_112: - //SEG236 [117] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG236 [117] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 lda #$a sta SCREEN+2*$28+$a jmp b2_113 //SEG237 main::@2_113 b2_113: - //SEG238 [118] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG238 [118] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 lda #$a sta SCREEN+3*$28+$a jmp b2_114 //SEG239 main::@2_114 b2_114: - //SEG240 [119] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG240 [119] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 lda #$a sta SCREEN+4*$28+$a jmp b2_115 //SEG241 main::@2_115 b2_115: - //SEG242 [120] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG242 [120] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 lda #$a sta SCREEN+5*$28+$a jmp b2_116 //SEG243 main::@2_116 b2_116: - //SEG244 [121] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG244 [121] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 lda #$a sta SCREEN+6*$28+$a jmp b2_117 //SEG245 main::@2_117 b2_117: - //SEG246 [122] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG246 [122] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 lda #$a sta SCREEN+7*$28+$a jmp b2_118 //SEG247 main::@2_118 b2_118: - //SEG248 [123] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG248 [123] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 lda #$a sta SCREEN+8*$28+$a jmp b2_119 //SEG249 main::@2_119 b2_119: - //SEG250 [124] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG250 [124] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 lda #$a sta SCREEN+9*$28+$a jmp b2_120 //SEG251 main::@2_120 b2_120: - //SEG252 [125] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG252 [125] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 lda #$a sta SCREEN+$a*$28+$a jmp breturn @@ -2001,126 +2001,126 @@ main: { REGISTER UPLIFT POTENTIAL REGISTERS Statement [5] *((const byte*) main::SCREEN#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [6] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [6] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [27] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [31] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [32] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [33] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [34] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [35] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [36] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [37] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [31] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [32] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [33] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [34] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [35] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [36] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [37] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [38] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [39] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [40] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [41] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [42] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [43] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [44] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [45] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [46] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [47] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [48] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [39] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [40] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [41] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [42] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [43] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [44] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [45] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [46] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [47] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [48] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [49] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [50] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [51] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [52] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [53] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [54] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [55] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [56] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [57] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [58] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [59] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [50] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [51] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [52] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [53] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [54] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [55] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [56] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [57] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [58] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [59] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [60] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [61] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [62] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [63] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [64] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [65] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [66] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [67] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [68] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [69] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [70] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [61] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [62] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [63] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [64] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [65] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [66] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [67] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [68] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [69] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [70] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [71] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [72] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [73] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [74] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [75] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [76] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [77] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [78] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [79] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [80] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [81] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [72] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [73] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [74] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [75] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [76] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [77] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [78] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [79] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [80] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [81] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [82] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [83] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [84] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [85] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [86] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [87] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [88] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [89] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [90] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [91] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [92] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [83] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [84] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [85] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [86] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [87] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [88] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [89] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [90] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [91] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [92] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [93] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [94] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [95] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [96] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [97] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [98] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [99] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [100] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [101] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [102] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [103] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [94] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [95] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [96] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [97] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [98] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [99] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [100] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [101] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [102] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [103] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 [ ] ( main:2 [ ] ) always clobbers reg byte a Statement [104] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [105] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [106] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [107] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [108] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [109] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [110] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [111] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [112] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [113] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [114] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [115] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [116] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [117] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [118] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [119] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [120] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [121] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [122] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [123] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [124] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [125] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [105] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [106] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [107] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [108] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [109] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [110] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [111] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [112] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [113] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [114] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [115] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [116] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [117] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [118] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [119] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [120] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [121] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [122] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [123] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [124] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a [ ] ( main:2 [ ] ) always clobbers reg byte a +Statement [125] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a [ ] ( main:2 [ ] ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [main] @@ -2165,61 +2165,61 @@ main: { jmp b2_1 //SEG13 main::@2_1 b2_1: - //SEG14 [6] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG14 [6] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+1*$28 jmp b2_2 //SEG15 main::@2_2 b2_2: - //SEG16 [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG16 [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+2*$28 jmp b2_3 //SEG17 main::@2_3 b2_3: - //SEG18 [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG18 [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+3*$28 jmp b2_4 //SEG19 main::@2_4 b2_4: - //SEG20 [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG20 [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+4*$28 jmp b2_5 //SEG21 main::@2_5 b2_5: - //SEG22 [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG22 [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+5*$28 jmp b2_6 //SEG23 main::@2_6 b2_6: - //SEG24 [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG24 [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+6*$28 jmp b2_7 //SEG25 main::@2_7 b2_7: - //SEG26 [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG26 [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+7*$28 jmp b2_8 //SEG27 main::@2_8 b2_8: - //SEG28 [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG28 [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+8*$28 jmp b2_9 //SEG29 main::@2_9 b2_9: - //SEG30 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG30 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+9*$28 jmp b2_10 //SEG31 main::@2_10 b2_10: - //SEG32 [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG32 [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+$a*$28 jmp b2_11 @@ -2231,61 +2231,61 @@ main: { jmp b2_12 //SEG35 main::@2_12 b2_12: - //SEG36 [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG36 [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 lda #1 sta SCREEN+1*$28+1 jmp b2_13 //SEG37 main::@2_13 b2_13: - //SEG38 [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG38 [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 lda #1 sta SCREEN+2*$28+1 jmp b2_14 //SEG39 main::@2_14 b2_14: - //SEG40 [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG40 [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 lda #1 sta SCREEN+3*$28+1 jmp b2_15 //SEG41 main::@2_15 b2_15: - //SEG42 [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG42 [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 lda #1 sta SCREEN+4*$28+1 jmp b2_16 //SEG43 main::@2_16 b2_16: - //SEG44 [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG44 [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 lda #1 sta SCREEN+5*$28+1 jmp b2_17 //SEG45 main::@2_17 b2_17: - //SEG46 [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG46 [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 lda #1 sta SCREEN+6*$28+1 jmp b2_18 //SEG47 main::@2_18 b2_18: - //SEG48 [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG48 [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 lda #1 sta SCREEN+7*$28+1 jmp b2_19 //SEG49 main::@2_19 b2_19: - //SEG50 [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG50 [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 lda #1 sta SCREEN+8*$28+1 jmp b2_20 //SEG51 main::@2_20 b2_20: - //SEG52 [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG52 [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 lda #1 sta SCREEN+9*$28+1 jmp b2_21 //SEG53 main::@2_21 b2_21: - //SEG54 [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG54 [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 lda #1 sta SCREEN+$a*$28+1 jmp b2_22 @@ -2297,61 +2297,61 @@ main: { jmp b2_23 //SEG57 main::@2_23 b2_23: - //SEG58 [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG58 [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 lda #2 sta SCREEN+1*$28+2 jmp b2_24 //SEG59 main::@2_24 b2_24: - //SEG60 [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG60 [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 lda #2 sta SCREEN+2*$28+2 jmp b2_25 //SEG61 main::@2_25 b2_25: - //SEG62 [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG62 [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 lda #2 sta SCREEN+3*$28+2 jmp b2_26 //SEG63 main::@2_26 b2_26: - //SEG64 [31] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG64 [31] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 lda #2 sta SCREEN+4*$28+2 jmp b2_27 //SEG65 main::@2_27 b2_27: - //SEG66 [32] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG66 [32] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 lda #2 sta SCREEN+5*$28+2 jmp b2_28 //SEG67 main::@2_28 b2_28: - //SEG68 [33] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG68 [33] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 lda #2 sta SCREEN+6*$28+2 jmp b2_29 //SEG69 main::@2_29 b2_29: - //SEG70 [34] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG70 [34] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 lda #2 sta SCREEN+7*$28+2 jmp b2_30 //SEG71 main::@2_30 b2_30: - //SEG72 [35] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG72 [35] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 lda #2 sta SCREEN+8*$28+2 jmp b2_31 //SEG73 main::@2_31 b2_31: - //SEG74 [36] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG74 [36] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 lda #2 sta SCREEN+9*$28+2 jmp b2_32 //SEG75 main::@2_32 b2_32: - //SEG76 [37] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG76 [37] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 lda #2 sta SCREEN+$a*$28+2 jmp b2_33 @@ -2363,61 +2363,61 @@ main: { jmp b2_34 //SEG79 main::@2_34 b2_34: - //SEG80 [39] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG80 [39] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #3 sta SCREEN+1*$28+3 jmp b2_35 //SEG81 main::@2_35 b2_35: - //SEG82 [40] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG82 [40] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #3 sta SCREEN+2*$28+3 jmp b2_36 //SEG83 main::@2_36 b2_36: - //SEG84 [41] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG84 [41] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #3 sta SCREEN+3*$28+3 jmp b2_37 //SEG85 main::@2_37 b2_37: - //SEG86 [42] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG86 [42] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #3 sta SCREEN+4*$28+3 jmp b2_38 //SEG87 main::@2_38 b2_38: - //SEG88 [43] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG88 [43] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #3 sta SCREEN+5*$28+3 jmp b2_39 //SEG89 main::@2_39 b2_39: - //SEG90 [44] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG90 [44] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #3 sta SCREEN+6*$28+3 jmp b2_40 //SEG91 main::@2_40 b2_40: - //SEG92 [45] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG92 [45] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #3 sta SCREEN+7*$28+3 jmp b2_41 //SEG93 main::@2_41 b2_41: - //SEG94 [46] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG94 [46] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #3 sta SCREEN+8*$28+3 jmp b2_42 //SEG95 main::@2_42 b2_42: - //SEG96 [47] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG96 [47] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #3 sta SCREEN+9*$28+3 jmp b2_43 //SEG97 main::@2_43 b2_43: - //SEG98 [48] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG98 [48] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #3 sta SCREEN+$a*$28+3 jmp b2_44 @@ -2429,61 +2429,61 @@ main: { jmp b2_45 //SEG101 main::@2_45 b2_45: - //SEG102 [50] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG102 [50] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 lda #4 sta SCREEN+1*$28+4 jmp b2_46 //SEG103 main::@2_46 b2_46: - //SEG104 [51] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG104 [51] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 lda #4 sta SCREEN+2*$28+4 jmp b2_47 //SEG105 main::@2_47 b2_47: - //SEG106 [52] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG106 [52] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 lda #4 sta SCREEN+3*$28+4 jmp b2_48 //SEG107 main::@2_48 b2_48: - //SEG108 [53] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG108 [53] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 lda #4 sta SCREEN+4*$28+4 jmp b2_49 //SEG109 main::@2_49 b2_49: - //SEG110 [54] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG110 [54] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 lda #4 sta SCREEN+5*$28+4 jmp b2_50 //SEG111 main::@2_50 b2_50: - //SEG112 [55] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG112 [55] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 lda #4 sta SCREEN+6*$28+4 jmp b2_51 //SEG113 main::@2_51 b2_51: - //SEG114 [56] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG114 [56] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 lda #4 sta SCREEN+7*$28+4 jmp b2_52 //SEG115 main::@2_52 b2_52: - //SEG116 [57] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG116 [57] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 lda #4 sta SCREEN+8*$28+4 jmp b2_53 //SEG117 main::@2_53 b2_53: - //SEG118 [58] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG118 [58] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 lda #4 sta SCREEN+9*$28+4 jmp b2_54 //SEG119 main::@2_54 b2_54: - //SEG120 [59] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG120 [59] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 lda #4 sta SCREEN+$a*$28+4 jmp b2_55 @@ -2495,61 +2495,61 @@ main: { jmp b2_56 //SEG123 main::@2_56 b2_56: - //SEG124 [61] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG124 [61] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 lda #5 sta SCREEN+1*$28+5 jmp b2_57 //SEG125 main::@2_57 b2_57: - //SEG126 [62] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG126 [62] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 lda #5 sta SCREEN+2*$28+5 jmp b2_58 //SEG127 main::@2_58 b2_58: - //SEG128 [63] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG128 [63] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 lda #5 sta SCREEN+3*$28+5 jmp b2_59 //SEG129 main::@2_59 b2_59: - //SEG130 [64] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG130 [64] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 lda #5 sta SCREEN+4*$28+5 jmp b2_60 //SEG131 main::@2_60 b2_60: - //SEG132 [65] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG132 [65] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 lda #5 sta SCREEN+5*$28+5 jmp b2_61 //SEG133 main::@2_61 b2_61: - //SEG134 [66] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG134 [66] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 lda #5 sta SCREEN+6*$28+5 jmp b2_62 //SEG135 main::@2_62 b2_62: - //SEG136 [67] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG136 [67] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 lda #5 sta SCREEN+7*$28+5 jmp b2_63 //SEG137 main::@2_63 b2_63: - //SEG138 [68] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG138 [68] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 lda #5 sta SCREEN+8*$28+5 jmp b2_64 //SEG139 main::@2_64 b2_64: - //SEG140 [69] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG140 [69] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 lda #5 sta SCREEN+9*$28+5 jmp b2_65 //SEG141 main::@2_65 b2_65: - //SEG142 [70] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG142 [70] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 lda #5 sta SCREEN+$a*$28+5 jmp b2_66 @@ -2561,61 +2561,61 @@ main: { jmp b2_67 //SEG145 main::@2_67 b2_67: - //SEG146 [72] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG146 [72] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 lda #6 sta SCREEN+1*$28+6 jmp b2_68 //SEG147 main::@2_68 b2_68: - //SEG148 [73] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG148 [73] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 lda #6 sta SCREEN+2*$28+6 jmp b2_69 //SEG149 main::@2_69 b2_69: - //SEG150 [74] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG150 [74] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 lda #6 sta SCREEN+3*$28+6 jmp b2_70 //SEG151 main::@2_70 b2_70: - //SEG152 [75] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG152 [75] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 lda #6 sta SCREEN+4*$28+6 jmp b2_71 //SEG153 main::@2_71 b2_71: - //SEG154 [76] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG154 [76] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 lda #6 sta SCREEN+5*$28+6 jmp b2_72 //SEG155 main::@2_72 b2_72: - //SEG156 [77] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG156 [77] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 lda #6 sta SCREEN+6*$28+6 jmp b2_73 //SEG157 main::@2_73 b2_73: - //SEG158 [78] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG158 [78] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 lda #6 sta SCREEN+7*$28+6 jmp b2_74 //SEG159 main::@2_74 b2_74: - //SEG160 [79] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG160 [79] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 lda #6 sta SCREEN+8*$28+6 jmp b2_75 //SEG161 main::@2_75 b2_75: - //SEG162 [80] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG162 [80] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 lda #6 sta SCREEN+9*$28+6 jmp b2_76 //SEG163 main::@2_76 b2_76: - //SEG164 [81] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG164 [81] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 lda #6 sta SCREEN+$a*$28+6 jmp b2_77 @@ -2627,61 +2627,61 @@ main: { jmp b2_78 //SEG167 main::@2_78 b2_78: - //SEG168 [83] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG168 [83] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 lda #7 sta SCREEN+1*$28+7 jmp b2_79 //SEG169 main::@2_79 b2_79: - //SEG170 [84] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG170 [84] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 lda #7 sta SCREEN+2*$28+7 jmp b2_80 //SEG171 main::@2_80 b2_80: - //SEG172 [85] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG172 [85] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 lda #7 sta SCREEN+3*$28+7 jmp b2_81 //SEG173 main::@2_81 b2_81: - //SEG174 [86] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG174 [86] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 lda #7 sta SCREEN+4*$28+7 jmp b2_82 //SEG175 main::@2_82 b2_82: - //SEG176 [87] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG176 [87] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 lda #7 sta SCREEN+5*$28+7 jmp b2_83 //SEG177 main::@2_83 b2_83: - //SEG178 [88] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG178 [88] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 lda #7 sta SCREEN+6*$28+7 jmp b2_84 //SEG179 main::@2_84 b2_84: - //SEG180 [89] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG180 [89] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 lda #7 sta SCREEN+7*$28+7 jmp b2_85 //SEG181 main::@2_85 b2_85: - //SEG182 [90] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG182 [90] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 lda #7 sta SCREEN+8*$28+7 jmp b2_86 //SEG183 main::@2_86 b2_86: - //SEG184 [91] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG184 [91] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 lda #7 sta SCREEN+9*$28+7 jmp b2_87 //SEG185 main::@2_87 b2_87: - //SEG186 [92] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG186 [92] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 lda #7 sta SCREEN+$a*$28+7 jmp b2_88 @@ -2693,61 +2693,61 @@ main: { jmp b2_89 //SEG189 main::@2_89 b2_89: - //SEG190 [94] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG190 [94] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 lda #8 sta SCREEN+1*$28+8 jmp b2_90 //SEG191 main::@2_90 b2_90: - //SEG192 [95] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG192 [95] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 lda #8 sta SCREEN+2*$28+8 jmp b2_91 //SEG193 main::@2_91 b2_91: - //SEG194 [96] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG194 [96] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 lda #8 sta SCREEN+3*$28+8 jmp b2_92 //SEG195 main::@2_92 b2_92: - //SEG196 [97] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG196 [97] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 lda #8 sta SCREEN+4*$28+8 jmp b2_93 //SEG197 main::@2_93 b2_93: - //SEG198 [98] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG198 [98] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 lda #8 sta SCREEN+5*$28+8 jmp b2_94 //SEG199 main::@2_94 b2_94: - //SEG200 [99] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG200 [99] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 lda #8 sta SCREEN+6*$28+8 jmp b2_95 //SEG201 main::@2_95 b2_95: - //SEG202 [100] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG202 [100] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 lda #8 sta SCREEN+7*$28+8 jmp b2_96 //SEG203 main::@2_96 b2_96: - //SEG204 [101] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG204 [101] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 lda #8 sta SCREEN+8*$28+8 jmp b2_97 //SEG205 main::@2_97 b2_97: - //SEG206 [102] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG206 [102] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 lda #8 sta SCREEN+9*$28+8 jmp b2_98 //SEG207 main::@2_98 b2_98: - //SEG208 [103] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG208 [103] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 lda #8 sta SCREEN+$a*$28+8 jmp b2_99 @@ -2759,127 +2759,127 @@ main: { jmp b2_100 //SEG211 main::@2_100 b2_100: - //SEG212 [105] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG212 [105] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 lda #9 sta SCREEN+1*$28+9 jmp b2_101 //SEG213 main::@2_101 b2_101: - //SEG214 [106] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG214 [106] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 lda #9 sta SCREEN+2*$28+9 jmp b2_102 //SEG215 main::@2_102 b2_102: - //SEG216 [107] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG216 [107] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 lda #9 sta SCREEN+3*$28+9 jmp b2_103 //SEG217 main::@2_103 b2_103: - //SEG218 [108] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG218 [108] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 lda #9 sta SCREEN+4*$28+9 jmp b2_104 //SEG219 main::@2_104 b2_104: - //SEG220 [109] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG220 [109] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 lda #9 sta SCREEN+5*$28+9 jmp b2_105 //SEG221 main::@2_105 b2_105: - //SEG222 [110] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG222 [110] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 lda #9 sta SCREEN+6*$28+9 jmp b2_106 //SEG223 main::@2_106 b2_106: - //SEG224 [111] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG224 [111] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 lda #9 sta SCREEN+7*$28+9 jmp b2_107 //SEG225 main::@2_107 b2_107: - //SEG226 [112] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG226 [112] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 lda #9 sta SCREEN+8*$28+9 jmp b2_108 //SEG227 main::@2_108 b2_108: - //SEG228 [113] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG228 [113] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 lda #9 sta SCREEN+9*$28+9 jmp b2_109 //SEG229 main::@2_109 b2_109: - //SEG230 [114] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG230 [114] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 lda #9 sta SCREEN+$a*$28+9 jmp b2_110 //SEG231 main::@2_110 b2_110: - //SEG232 [115] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG232 [115] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 lda #$a sta SCREEN+$a jmp b2_111 //SEG233 main::@2_111 b2_111: - //SEG234 [116] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG234 [116] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 lda #$a sta SCREEN+1*$28+$a jmp b2_112 //SEG235 main::@2_112 b2_112: - //SEG236 [117] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG236 [117] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 lda #$a sta SCREEN+2*$28+$a jmp b2_113 //SEG237 main::@2_113 b2_113: - //SEG238 [118] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG238 [118] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 lda #$a sta SCREEN+3*$28+$a jmp b2_114 //SEG239 main::@2_114 b2_114: - //SEG240 [119] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG240 [119] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 lda #$a sta SCREEN+4*$28+$a jmp b2_115 //SEG241 main::@2_115 b2_115: - //SEG242 [120] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG242 [120] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 lda #$a sta SCREEN+5*$28+$a jmp b2_116 //SEG243 main::@2_116 b2_116: - //SEG244 [121] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG244 [121] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 lda #$a sta SCREEN+6*$28+$a jmp b2_117 //SEG245 main::@2_117 b2_117: - //SEG246 [122] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG246 [122] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 lda #$a sta SCREEN+7*$28+$a jmp b2_118 //SEG247 main::@2_118 b2_118: - //SEG248 [123] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG248 [123] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 lda #$a sta SCREEN+8*$28+$a jmp b2_119 //SEG249 main::@2_119 b2_119: - //SEG250 [124] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG250 [124] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 lda #$a sta SCREEN+9*$28+$a jmp b2_120 //SEG251 main::@2_120 b2_120: - //SEG252 [125] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG252 [125] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 lda #$a sta SCREEN+$a*$28+$a jmp breturn @@ -3389,7 +3389,7 @@ FINAL SYMBOL TABLE (label) main::@2_99 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::line (byte) main::x @@ -3420,374 +3420,374 @@ main: { lda #0 sta SCREEN //SEG13 main::@2_1 - //SEG14 [6] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG14 [6] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 sta SCREEN+1*$28 //SEG15 main::@2_2 - //SEG16 [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG16 [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 sta SCREEN+2*$28 //SEG17 main::@2_3 - //SEG18 [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG18 [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 sta SCREEN+3*$28 //SEG19 main::@2_4 - //SEG20 [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG20 [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 sta SCREEN+4*$28 //SEG21 main::@2_5 - //SEG22 [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG22 [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 sta SCREEN+5*$28 //SEG23 main::@2_6 - //SEG24 [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG24 [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 sta SCREEN+6*$28 //SEG25 main::@2_7 - //SEG26 [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG26 [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 sta SCREEN+7*$28 //SEG27 main::@2_8 - //SEG28 [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG28 [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 sta SCREEN+8*$28 //SEG29 main::@2_9 - //SEG30 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG30 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 sta SCREEN+9*$28 //SEG31 main::@2_10 - //SEG32 [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG32 [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 sta SCREEN+$a*$28 //SEG33 main::@2_11 //SEG34 [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 lda #1 sta SCREEN+1 //SEG35 main::@2_12 - //SEG36 [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG36 [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 sta SCREEN+1*$28+1 //SEG37 main::@2_13 - //SEG38 [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG38 [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 sta SCREEN+2*$28+1 //SEG39 main::@2_14 - //SEG40 [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG40 [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 sta SCREEN+3*$28+1 //SEG41 main::@2_15 - //SEG42 [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG42 [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 sta SCREEN+4*$28+1 //SEG43 main::@2_16 - //SEG44 [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG44 [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 sta SCREEN+5*$28+1 //SEG45 main::@2_17 - //SEG46 [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG46 [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 sta SCREEN+6*$28+1 //SEG47 main::@2_18 - //SEG48 [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG48 [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 sta SCREEN+7*$28+1 //SEG49 main::@2_19 - //SEG50 [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG50 [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 sta SCREEN+8*$28+1 //SEG51 main::@2_20 - //SEG52 [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG52 [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 sta SCREEN+9*$28+1 //SEG53 main::@2_21 - //SEG54 [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 + //SEG54 [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 1 -- _deref_pbuc1=vbuc2 sta SCREEN+$a*$28+1 //SEG55 main::@2_22 //SEG56 [27] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 lda #2 sta SCREEN+2 //SEG57 main::@2_23 - //SEG58 [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG58 [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 sta SCREEN+1*$28+2 //SEG59 main::@2_24 - //SEG60 [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG60 [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 sta SCREEN+2*$28+2 //SEG61 main::@2_25 - //SEG62 [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG62 [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 sta SCREEN+3*$28+2 //SEG63 main::@2_26 - //SEG64 [31] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG64 [31] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 sta SCREEN+4*$28+2 //SEG65 main::@2_27 - //SEG66 [32] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG66 [32] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 sta SCREEN+5*$28+2 //SEG67 main::@2_28 - //SEG68 [33] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG68 [33] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 sta SCREEN+6*$28+2 //SEG69 main::@2_29 - //SEG70 [34] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG70 [34] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 sta SCREEN+7*$28+2 //SEG71 main::@2_30 - //SEG72 [35] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG72 [35] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 sta SCREEN+8*$28+2 //SEG73 main::@2_31 - //SEG74 [36] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG74 [36] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 sta SCREEN+9*$28+2 //SEG75 main::@2_32 - //SEG76 [37] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 + //SEG76 [37] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 2 -- _deref_pbuc1=vbuc2 sta SCREEN+$a*$28+2 //SEG77 main::@2_33 //SEG78 [38] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #3 sta SCREEN+3 //SEG79 main::@2_34 - //SEG80 [39] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG80 [39] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 sta SCREEN+1*$28+3 //SEG81 main::@2_35 - //SEG82 [40] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG82 [40] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 sta SCREEN+2*$28+3 //SEG83 main::@2_36 - //SEG84 [41] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG84 [41] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 sta SCREEN+3*$28+3 //SEG85 main::@2_37 - //SEG86 [42] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG86 [42] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 sta SCREEN+4*$28+3 //SEG87 main::@2_38 - //SEG88 [43] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG88 [43] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 sta SCREEN+5*$28+3 //SEG89 main::@2_39 - //SEG90 [44] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG90 [44] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 sta SCREEN+6*$28+3 //SEG91 main::@2_40 - //SEG92 [45] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG92 [45] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 sta SCREEN+7*$28+3 //SEG93 main::@2_41 - //SEG94 [46] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG94 [46] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 sta SCREEN+8*$28+3 //SEG95 main::@2_42 - //SEG96 [47] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG96 [47] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 sta SCREEN+9*$28+3 //SEG97 main::@2_43 - //SEG98 [48] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG98 [48] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 sta SCREEN+$a*$28+3 //SEG99 main::@2_44 //SEG100 [49] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 lda #4 sta SCREEN+4 //SEG101 main::@2_45 - //SEG102 [50] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG102 [50] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 sta SCREEN+1*$28+4 //SEG103 main::@2_46 - //SEG104 [51] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG104 [51] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 sta SCREEN+2*$28+4 //SEG105 main::@2_47 - //SEG106 [52] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG106 [52] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 sta SCREEN+3*$28+4 //SEG107 main::@2_48 - //SEG108 [53] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG108 [53] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 sta SCREEN+4*$28+4 //SEG109 main::@2_49 - //SEG110 [54] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG110 [54] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 sta SCREEN+5*$28+4 //SEG111 main::@2_50 - //SEG112 [55] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG112 [55] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 sta SCREEN+6*$28+4 //SEG113 main::@2_51 - //SEG114 [56] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG114 [56] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 sta SCREEN+7*$28+4 //SEG115 main::@2_52 - //SEG116 [57] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG116 [57] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 sta SCREEN+8*$28+4 //SEG117 main::@2_53 - //SEG118 [58] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG118 [58] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 sta SCREEN+9*$28+4 //SEG119 main::@2_54 - //SEG120 [59] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 + //SEG120 [59] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte/signed byte/word/signed word/dword/signed dword) 4 -- _deref_pbuc1=vbuc2 sta SCREEN+$a*$28+4 //SEG121 main::@2_55 //SEG122 [60] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 lda #5 sta SCREEN+5 //SEG123 main::@2_56 - //SEG124 [61] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG124 [61] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 sta SCREEN+1*$28+5 //SEG125 main::@2_57 - //SEG126 [62] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG126 [62] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 sta SCREEN+2*$28+5 //SEG127 main::@2_58 - //SEG128 [63] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG128 [63] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 sta SCREEN+3*$28+5 //SEG129 main::@2_59 - //SEG130 [64] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG130 [64] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 sta SCREEN+4*$28+5 //SEG131 main::@2_60 - //SEG132 [65] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG132 [65] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 sta SCREEN+5*$28+5 //SEG133 main::@2_61 - //SEG134 [66] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG134 [66] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 sta SCREEN+6*$28+5 //SEG135 main::@2_62 - //SEG136 [67] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG136 [67] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 sta SCREEN+7*$28+5 //SEG137 main::@2_63 - //SEG138 [68] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG138 [68] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 sta SCREEN+8*$28+5 //SEG139 main::@2_64 - //SEG140 [69] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG140 [69] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 sta SCREEN+9*$28+5 //SEG141 main::@2_65 - //SEG142 [70] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 + //SEG142 [70] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 5) ← (byte/signed byte/word/signed word/dword/signed dword) 5 -- _deref_pbuc1=vbuc2 sta SCREEN+$a*$28+5 //SEG143 main::@2_66 //SEG144 [71] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 lda #6 sta SCREEN+6 //SEG145 main::@2_67 - //SEG146 [72] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG146 [72] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 sta SCREEN+1*$28+6 //SEG147 main::@2_68 - //SEG148 [73] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG148 [73] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 sta SCREEN+2*$28+6 //SEG149 main::@2_69 - //SEG150 [74] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG150 [74] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 sta SCREEN+3*$28+6 //SEG151 main::@2_70 - //SEG152 [75] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG152 [75] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 sta SCREEN+4*$28+6 //SEG153 main::@2_71 - //SEG154 [76] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG154 [76] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 sta SCREEN+5*$28+6 //SEG155 main::@2_72 - //SEG156 [77] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG156 [77] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 sta SCREEN+6*$28+6 //SEG157 main::@2_73 - //SEG158 [78] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG158 [78] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 sta SCREEN+7*$28+6 //SEG159 main::@2_74 - //SEG160 [79] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG160 [79] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 sta SCREEN+8*$28+6 //SEG161 main::@2_75 - //SEG162 [80] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG162 [80] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 sta SCREEN+9*$28+6 //SEG163 main::@2_76 - //SEG164 [81] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 + //SEG164 [81] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte/signed byte/word/signed word/dword/signed dword) 6 -- _deref_pbuc1=vbuc2 sta SCREEN+$a*$28+6 //SEG165 main::@2_77 //SEG166 [82] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 lda #7 sta SCREEN+7 //SEG167 main::@2_78 - //SEG168 [83] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG168 [83] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 sta SCREEN+1*$28+7 //SEG169 main::@2_79 - //SEG170 [84] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG170 [84] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 sta SCREEN+2*$28+7 //SEG171 main::@2_80 - //SEG172 [85] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG172 [85] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 sta SCREEN+3*$28+7 //SEG173 main::@2_81 - //SEG174 [86] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG174 [86] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 sta SCREEN+4*$28+7 //SEG175 main::@2_82 - //SEG176 [87] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG176 [87] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 sta SCREEN+5*$28+7 //SEG177 main::@2_83 - //SEG178 [88] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG178 [88] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 sta SCREEN+6*$28+7 //SEG179 main::@2_84 - //SEG180 [89] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG180 [89] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 sta SCREEN+7*$28+7 //SEG181 main::@2_85 - //SEG182 [90] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG182 [90] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 sta SCREEN+8*$28+7 //SEG183 main::@2_86 - //SEG184 [91] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG184 [91] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 sta SCREEN+9*$28+7 //SEG185 main::@2_87 - //SEG186 [92] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 + //SEG186 [92] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 7) ← (byte/signed byte/word/signed word/dword/signed dword) 7 -- _deref_pbuc1=vbuc2 sta SCREEN+$a*$28+7 //SEG187 main::@2_88 //SEG188 [93] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 lda #8 sta SCREEN+8 //SEG189 main::@2_89 - //SEG190 [94] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG190 [94] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 sta SCREEN+1*$28+8 //SEG191 main::@2_90 - //SEG192 [95] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG192 [95] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 sta SCREEN+2*$28+8 //SEG193 main::@2_91 - //SEG194 [96] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG194 [96] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 sta SCREEN+3*$28+8 //SEG195 main::@2_92 - //SEG196 [97] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG196 [97] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 sta SCREEN+4*$28+8 //SEG197 main::@2_93 - //SEG198 [98] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG198 [98] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 sta SCREEN+5*$28+8 //SEG199 main::@2_94 - //SEG200 [99] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG200 [99] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 sta SCREEN+6*$28+8 //SEG201 main::@2_95 - //SEG202 [100] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG202 [100] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 sta SCREEN+7*$28+8 //SEG203 main::@2_96 - //SEG204 [101] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG204 [101] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 sta SCREEN+8*$28+8 //SEG205 main::@2_97 - //SEG206 [102] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG206 [102] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 sta SCREEN+9*$28+8 //SEG207 main::@2_98 - //SEG208 [103] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 + //SEG208 [103] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 8) ← (byte/signed byte/word/signed word/dword/signed dword) 8 -- _deref_pbuc1=vbuc2 sta SCREEN+$a*$28+8 //SEG209 main::@2_99 //SEG210 [104] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 lda #9 sta SCREEN+9 //SEG211 main::@2_100 - //SEG212 [105] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG212 [105] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 sta SCREEN+1*$28+9 //SEG213 main::@2_101 - //SEG214 [106] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG214 [106] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 sta SCREEN+2*$28+9 //SEG215 main::@2_102 - //SEG216 [107] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG216 [107] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 sta SCREEN+3*$28+9 //SEG217 main::@2_103 - //SEG218 [108] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG218 [108] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 sta SCREEN+4*$28+9 //SEG219 main::@2_104 - //SEG220 [109] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG220 [109] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 sta SCREEN+5*$28+9 //SEG221 main::@2_105 - //SEG222 [110] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG222 [110] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 sta SCREEN+6*$28+9 //SEG223 main::@2_106 - //SEG224 [111] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG224 [111] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 sta SCREEN+7*$28+9 //SEG225 main::@2_107 - //SEG226 [112] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG226 [112] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 sta SCREEN+8*$28+9 //SEG227 main::@2_108 - //SEG228 [113] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG228 [113] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 sta SCREEN+9*$28+9 //SEG229 main::@2_109 - //SEG230 [114] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 + //SEG230 [114] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) 9) ← (byte/signed byte/word/signed word/dword/signed dword) 9 -- _deref_pbuc1=vbuc2 sta SCREEN+$a*$28+9 //SEG231 main::@2_110 - //SEG232 [115] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG232 [115] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 lda #$a sta SCREEN+$a //SEG233 main::@2_111 - //SEG234 [116] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG234 [116] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 sta SCREEN+1*$28+$a //SEG235 main::@2_112 - //SEG236 [117] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG236 [117] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 sta SCREEN+2*$28+$a //SEG237 main::@2_113 - //SEG238 [118] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG238 [118] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 sta SCREEN+3*$28+$a //SEG239 main::@2_114 - //SEG240 [119] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG240 [119] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 sta SCREEN+4*$28+$a //SEG241 main::@2_115 - //SEG242 [120] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG242 [120] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 sta SCREEN+5*$28+$a //SEG243 main::@2_116 - //SEG244 [121] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG244 [121] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 sta SCREEN+6*$28+$a //SEG245 main::@2_117 - //SEG246 [122] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG246 [122] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 sta SCREEN+7*$28+$a //SEG247 main::@2_118 - //SEG248 [123] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG248 [123] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 sta SCREEN+8*$28+$a //SEG249 main::@2_119 - //SEG250 [124] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG250 [124] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 sta SCREEN+9*$28+$a //SEG251 main::@2_120 - //SEG252 [125] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 10) ← (byte/signed byte/word/signed word/dword/signed dword) 10 -- _deref_pbuc1=vbuc2 + //SEG252 [125] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28+(byte/signed byte/word/signed word/dword/signed dword) $a) ← (byte/signed byte/word/signed word/dword/signed dword) $a -- _deref_pbuc1=vbuc2 sta SCREEN+$a*$28+$a //SEG253 main::@return //SEG254 [126] return diff --git a/src/test/ref/unroll-screenfill-for-double.sym b/src/test/ref/unroll-screenfill-for-double.sym index e36941214..e6edf2722 100644 --- a/src/test/ref/unroll-screenfill-for-double.sym +++ b/src/test/ref/unroll-screenfill-for-double.sym @@ -125,7 +125,7 @@ (label) main::@2_99 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::line (byte) main::x diff --git a/src/test/ref/unroll-screenfill-for.cfg b/src/test/ref/unroll-screenfill-for.cfg index 830a22244..3d8ac7edf 100644 --- a/src/test/ref/unroll-screenfill-for.cfg +++ b/src/test/ref/unroll-screenfill-for.cfg @@ -17,80 +17,80 @@ main::@2: scope:[main] from main::@1 [6] *((const byte*) main::SCREEN#0 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_1 main::@2_1: scope:[main] from main::@2 - [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_2 main::@2_2: scope:[main] from main::@2_1 - [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_3 main::@2_3: scope:[main] from main::@2_2 - [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_4 main::@2_4: scope:[main] from main::@2_3 - [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_5 main::@2_5: scope:[main] from main::@2_4 - [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_6 main::@2_6: scope:[main] from main::@2_5 - [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_7 main::@2_7: scope:[main] from main::@2_6 - [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_8 main::@2_8: scope:[main] from main::@2_7 - [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_9 main::@2_9: scope:[main] from main::@2_8 - [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_10 main::@2_10: scope:[main] from main::@2_9 - [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_11 main::@2_11: scope:[main] from main::@2_10 - [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 11*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $b*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_12 main::@2_12: scope:[main] from main::@2_11 - [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 12*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $c*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_13 main::@2_13: scope:[main] from main::@2_12 - [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 13*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $d*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_14 main::@2_14: scope:[main] from main::@2_13 - [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 14*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $e*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_15 main::@2_15: scope:[main] from main::@2_14 - [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $f*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_16 main::@2_16: scope:[main] from main::@2_15 - [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 16*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $10*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_17 main::@2_17: scope:[main] from main::@2_16 - [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 17*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $11*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_18 main::@2_18: scope:[main] from main::@2_17 - [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 18*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $12*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_19 main::@2_19: scope:[main] from main::@2_18 - [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 19*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $13*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_20 main::@2_20: scope:[main] from main::@2_19 - [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 20*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $14*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_21 main::@2_21: scope:[main] from main::@2_20 - [27] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 21*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [27] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $15*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_22 main::@2_22: scope:[main] from main::@2_21 - [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 22*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $16*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_23 main::@2_23: scope:[main] from main::@2_22 - [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 23*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $17*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_24 main::@2_24: scope:[main] from main::@2_23 - [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 24*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $18*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@3 main::@3: scope:[main] from main::@2_24 [31] (byte) main::x#1 ← ++ (byte) main::x#4 - [32] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 + [32] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 to:main::@return main::@return: scope:[main] from main::@3 [33] return diff --git a/src/test/ref/unroll-screenfill-for.log b/src/test/ref/unroll-screenfill-for.log index f4e70a172..c61ea0d62 100644 --- a/src/test/ref/unroll-screenfill-for.log +++ b/src/test/ref/unroll-screenfill-for.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) main::x#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main main::@3 @@ -15,18 +15,18 @@ main::@2: scope:[main] from main::@1 main::@2 (byte) main::x#2 ← phi( main::@1/(byte) main::x#4 main::@2/(byte) main::x#2 ) (byte*) main::SCREEN#1 ← phi( main::@1/(byte*) main::SCREEN#2 main::@2/(byte*) main::SCREEN#1 ) (byte) main::line#2 ← phi( main::@1/(byte) main::line#0 main::@2/(byte) main::line#1 ) - (byte/signed word/word/dword/signed dword~) main::$0 ← (byte) main::line#2 * (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte/signed word/word/dword/signed dword~) main::$0 ← (byte) main::line#2 * (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*~) main::$1 ← (byte*) main::SCREEN#1 + (byte/signed word/word/dword/signed dword~) main::$0 *((byte*~) main::$1 + (byte) main::x#2) ← (byte) main::x#2 - (byte) main::line#1 ← (byte) main::line#2 + rangenext(0,24) - (bool~) main::$2 ← (byte) main::line#1 != rangelast(0,24) + (byte) main::line#1 ← (byte) main::line#2 + rangenext(0,$18) + (bool~) main::$2 ← (byte) main::line#1 != rangelast(0,$18) unroll if((bool~) main::$2) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 (byte*) main::SCREEN#3 ← phi( main::@2/(byte*) main::SCREEN#1 ) (byte) main::x#3 ← phi( main::@2/(byte) main::x#2 ) - (byte) main::x#1 ← (byte) main::x#3 + rangenext(0,39) - (bool~) main::$3 ← (byte) main::x#1 != rangelast(0,39) + (byte) main::x#1 ← (byte) main::x#3 + rangenext(0,$27) + (bool~) main::$3 ← (byte) main::x#1 != rangelast(0,$27) if((bool~) main::$3) goto main::@1 to:main::@return main::@return: scope:[main] from main::@3 @@ -80,17 +80,17 @@ Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) main::SCREEN#1 (byte*) main::SCREEN#2 Redundant Phi (byte) main::x#2 (byte) main::x#4 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$2 [10] unroll if((byte) main::line#1!=rangelast(0,24)) goto main::@2 -Simple Condition (bool~) main::$3 [14] if((byte) main::x#1!=rangelast(0,39)) goto main::@1 +Simple Condition (bool~) main::$2 [10] unroll if((byte) main::line#1!=rangelast(0,$18)) goto main::@2 +Simple Condition (bool~) main::$3 [14] if((byte) main::x#1!=rangelast(0,$27)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) main::SCREEN#0 = ((byte*))1024 +Constant (const byte*) main::SCREEN#0 = ((byte*))$400 Constant (const byte) main::x#0 = 0 Constant (const byte) main::line#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::line#1 ← ++ main::line#2 to ++ -Resolved ranged comparison value unroll if(main::line#1!=rangelast(0,24)) goto main::@2 to (byte/signed byte/word/signed word/dword/signed dword) 25 +Resolved ranged comparison value unroll if(main::line#1!=rangelast(0,$18)) goto main::@2 to (byte/signed byte/word/signed word/dword/signed dword) $19 Resolved ranged next value main::x#1 ← ++ main::x#4 to ++ -Resolved ranged comparison value if(main::x#1!=rangelast(0,39)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(main::x#1!=rangelast(0,$27)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $28 Self Phi Eliminated (byte*) main::SCREEN#2 Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) main::SCREEN#2 (const byte*) main::SCREEN#0 @@ -99,277 +99,277 @@ Unrolling loop Loop head: main::@2 tails: main::@2 blocks: main::@2 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#2 (const byte) main::line#0 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) main::$0 = main::line#0*40 +Constant (const byte/signed word/word/dword/signed dword) main::$0 = main::line#0*$28 Constant (const byte) main::line#1 = ++main::line#0 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$1 = main::SCREEN#0+main::$0 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [2] if((const byte) main::line#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@2_1 +if() condition always true - replacing block destination [2] if((const byte) main::line#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@2_1 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_1 tails: main::@2_1 blocks: main::@2_1 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#3 (const byte) main::line#1 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) main::$4 = main::line#1*40 +Constant (const byte/signed word/word/dword/signed dword) main::$4 = main::line#1*$28 Constant (const byte) main::line#4 = ++main::line#1 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$5 = main::SCREEN#0+main::$4 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [4] if((const byte) main::line#4!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@2_2 +if() condition always true - replacing block destination [4] if((const byte) main::line#4!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@2_2 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_2 tails: main::@2_2 blocks: main::@2_2 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#5 (const byte) main::line#4 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) main::$6 = main::line#4*40 +Constant (const byte/signed word/word/dword/signed dword) main::$6 = main::line#4*$28 Constant (const byte) main::line#6 = ++main::line#4 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$7 = main::SCREEN#0+main::$6 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [5] if((const byte) main::line#6!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@2_3 +if() condition always true - replacing block destination [5] if((const byte) main::line#6!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@2_3 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_3 tails: main::@2_3 blocks: main::@2_3 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#7 (const byte) main::line#6 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) main::$8 = main::line#6*40 +Constant (const byte/signed word/word/dword/signed dword) main::$8 = main::line#6*$28 Constant (const byte) main::line#8 = ++main::line#6 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$9 = main::SCREEN#0+main::$8 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [6] if((const byte) main::line#8!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@2_4 +if() condition always true - replacing block destination [6] if((const byte) main::line#8!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@2_4 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_4 tails: main::@2_4 blocks: main::@2_4 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#9 (const byte) main::line#8 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) main::$10 = main::line#8*40 +Constant (const byte/signed word/word/dword/signed dword) main::$10 = main::line#8*$28 Constant (const byte) main::line#10 = ++main::line#8 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$11 = main::SCREEN#0+main::$10 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [7] if((const byte) main::line#10!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@2_5 +if() condition always true - replacing block destination [7] if((const byte) main::line#10!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@2_5 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_5 tails: main::@2_5 blocks: main::@2_5 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#11 (const byte) main::line#10 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) main::$12 = main::line#10*40 +Constant (const byte/signed word/word/dword/signed dword) main::$12 = main::line#10*$28 Constant (const byte) main::line#12 = ++main::line#10 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$13 = main::SCREEN#0+main::$12 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [8] if((const byte) main::line#12!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@2_6 +if() condition always true - replacing block destination [8] if((const byte) main::line#12!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@2_6 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_6 tails: main::@2_6 blocks: main::@2_6 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#13 (const byte) main::line#12 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) main::$14 = main::line#12*40 +Constant (const byte/signed word/word/dword/signed dword) main::$14 = main::line#12*$28 Constant (const byte) main::line#14 = ++main::line#12 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$15 = main::SCREEN#0+main::$14 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [9] if((const byte) main::line#14!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@2_7 +if() condition always true - replacing block destination [9] if((const byte) main::line#14!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@2_7 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_7 tails: main::@2_7 blocks: main::@2_7 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#15 (const byte) main::line#14 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$16 = main::line#14*40 +Constant (const word/signed word/dword/signed dword) main::$16 = main::line#14*$28 Constant (const byte) main::line#16 = ++main::line#14 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$17 = main::SCREEN#0+main::$16 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [10] if((const byte) main::line#16!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@2_8 +if() condition always true - replacing block destination [10] if((const byte) main::line#16!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@2_8 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_8 tails: main::@2_8 blocks: main::@2_8 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#17 (const byte) main::line#16 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$18 = main::line#16*40 +Constant (const word/signed word/dword/signed dword) main::$18 = main::line#16*$28 Constant (const byte) main::line#18 = ++main::line#16 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$19 = main::SCREEN#0+main::$18 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [11] if((const byte) main::line#18!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@2_9 +if() condition always true - replacing block destination [11] if((const byte) main::line#18!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@2_9 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_9 tails: main::@2_9 blocks: main::@2_9 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#19 (const byte) main::line#18 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$20 = main::line#18*40 +Constant (const word/signed word/dword/signed dword) main::$20 = main::line#18*$28 Constant (const byte) main::line#20 = ++main::line#18 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$21 = main::SCREEN#0+main::$20 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [12] if((const byte) main::line#20!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@2_10 +if() condition always true - replacing block destination [12] if((const byte) main::line#20!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@2_10 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_10 tails: main::@2_10 blocks: main::@2_10 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#21 (const byte) main::line#20 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$22 = main::line#20*40 +Constant (const word/signed word/dword/signed dword) main::$22 = main::line#20*$28 Constant (const byte) main::line#22 = ++main::line#20 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$23 = main::SCREEN#0+main::$22 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [13] if((const byte) main::line#22!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@2_11 +if() condition always true - replacing block destination [13] if((const byte) main::line#22!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@2_11 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_11 tails: main::@2_11 blocks: main::@2_11 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#23 (const byte) main::line#22 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$24 = main::line#22*40 +Constant (const word/signed word/dword/signed dword) main::$24 = main::line#22*$28 Constant (const byte) main::line#24 = ++main::line#22 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$25 = main::SCREEN#0+main::$24 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [14] if((const byte) main::line#24!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@2_12 +if() condition always true - replacing block destination [14] if((const byte) main::line#24!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@2_12 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_12 tails: main::@2_12 blocks: main::@2_12 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#25 (const byte) main::line#24 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$26 = main::line#24*40 +Constant (const word/signed word/dword/signed dword) main::$26 = main::line#24*$28 Constant (const byte) main::line#26 = ++main::line#24 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$27 = main::SCREEN#0+main::$26 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [15] if((const byte) main::line#26!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@2_13 +if() condition always true - replacing block destination [15] if((const byte) main::line#26!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@2_13 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_13 tails: main::@2_13 blocks: main::@2_13 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#27 (const byte) main::line#26 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$28 = main::line#26*40 +Constant (const word/signed word/dword/signed dword) main::$28 = main::line#26*$28 Constant (const byte) main::line#28 = ++main::line#26 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$29 = main::SCREEN#0+main::$28 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [16] if((const byte) main::line#28!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@2_14 +if() condition always true - replacing block destination [16] if((const byte) main::line#28!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@2_14 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_14 tails: main::@2_14 blocks: main::@2_14 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#29 (const byte) main::line#28 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$30 = main::line#28*40 +Constant (const word/signed word/dword/signed dword) main::$30 = main::line#28*$28 Constant (const byte) main::line#30 = ++main::line#28 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$31 = main::SCREEN#0+main::$30 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [17] if((const byte) main::line#30!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@2_15 +if() condition always true - replacing block destination [17] if((const byte) main::line#30!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@2_15 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_15 tails: main::@2_15 blocks: main::@2_15 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#31 (const byte) main::line#30 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$32 = main::line#30*40 +Constant (const word/signed word/dword/signed dword) main::$32 = main::line#30*$28 Constant (const byte) main::line#32 = ++main::line#30 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$33 = main::SCREEN#0+main::$32 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [18] if((const byte) main::line#32!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@2_16 +if() condition always true - replacing block destination [18] if((const byte) main::line#32!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@2_16 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_16 tails: main::@2_16 blocks: main::@2_16 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#33 (const byte) main::line#32 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$34 = main::line#32*40 +Constant (const word/signed word/dword/signed dword) main::$34 = main::line#32*$28 Constant (const byte) main::line#34 = ++main::line#32 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$35 = main::SCREEN#0+main::$34 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [19] if((const byte) main::line#34!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@2_17 +if() condition always true - replacing block destination [19] if((const byte) main::line#34!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@2_17 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_17 tails: main::@2_17 blocks: main::@2_17 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#35 (const byte) main::line#34 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$36 = main::line#34*40 +Constant (const word/signed word/dword/signed dword) main::$36 = main::line#34*$28 Constant (const byte) main::line#36 = ++main::line#34 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$37 = main::SCREEN#0+main::$36 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [20] if((const byte) main::line#36!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@2_18 +if() condition always true - replacing block destination [20] if((const byte) main::line#36!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@2_18 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_18 tails: main::@2_18 blocks: main::@2_18 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#37 (const byte) main::line#36 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$38 = main::line#36*40 +Constant (const word/signed word/dword/signed dword) main::$38 = main::line#36*$28 Constant (const byte) main::line#38 = ++main::line#36 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$39 = main::SCREEN#0+main::$38 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [21] if((const byte) main::line#38!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@2_19 +if() condition always true - replacing block destination [21] if((const byte) main::line#38!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@2_19 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_19 tails: main::@2_19 blocks: main::@2_19 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#39 (const byte) main::line#38 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$40 = main::line#38*40 +Constant (const word/signed word/dword/signed dword) main::$40 = main::line#38*$28 Constant (const byte) main::line#40 = ++main::line#38 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$41 = main::SCREEN#0+main::$40 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [22] if((const byte) main::line#40!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@2_20 +if() condition always true - replacing block destination [22] if((const byte) main::line#40!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@2_20 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_20 tails: main::@2_20 blocks: main::@2_20 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#41 (const byte) main::line#40 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$42 = main::line#40*40 +Constant (const word/signed word/dword/signed dword) main::$42 = main::line#40*$28 Constant (const byte) main::line#42 = ++main::line#40 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$43 = main::SCREEN#0+main::$42 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [23] if((const byte) main::line#42!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@2_21 +if() condition always true - replacing block destination [23] if((const byte) main::line#42!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@2_21 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_21 tails: main::@2_21 blocks: main::@2_21 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#43 (const byte) main::line#42 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$44 = main::line#42*40 +Constant (const word/signed word/dword/signed dword) main::$44 = main::line#42*$28 Constant (const byte) main::line#44 = ++main::line#42 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$45 = main::SCREEN#0+main::$44 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [24] if((const byte) main::line#44!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@2_22 +if() condition always true - replacing block destination [24] if((const byte) main::line#44!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@2_22 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_22 tails: main::@2_22 blocks: main::@2_22 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#45 (const byte) main::line#44 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$46 = main::line#44*40 +Constant (const word/signed word/dword/signed dword) main::$46 = main::line#44*$28 Constant (const byte) main::line#46 = ++main::line#44 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$47 = main::SCREEN#0+main::$46 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [25] if((const byte) main::line#46!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@2_23 +if() condition always true - replacing block destination [25] if((const byte) main::line#46!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@2_23 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_23 tails: main::@2_23 blocks: main::@2_23 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#47 (const byte) main::line#46 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$48 = main::line#46*40 +Constant (const word/signed word/dword/signed dword) main::$48 = main::line#46*$28 Constant (const byte) main::line#48 = ++main::line#46 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$49 = main::SCREEN#0+main::$48 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [26] if((const byte) main::line#48!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@2_24 +if() condition always true - replacing block destination [26] if((const byte) main::line#48!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@2_24 Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_24 tails: main::@2_24 blocks: main::@2_24 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#49 (const byte) main::line#48 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$50 = main::line#48*40 +Constant (const word/signed word/dword/signed dword) main::$50 = main::line#48*$28 Constant (const byte) main::line#50 = ++main::line#48 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$51 = main::SCREEN#0+main::$50 Successful SSA optimization Pass2ConstantIdentification Removing PHI-reference to removed block (main::@2_24) in block main::@2_25 -if() condition always false - eliminating [27] if((const byte) main::line#50!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@2_25 +if() condition always false - eliminating [27] if((const byte) main::line#50!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@2_25 Successful SSA optimization Pass2ConstantIfs Successful SSA optimization PassNEliminateUnusedVars Eliminating variable (byte) main::line#51 from unused block main::@2_25 @@ -404,84 +404,84 @@ Inlining constant with different constant siblings (const byte) main::line#42 Inlining constant with different constant siblings (const byte) main::line#44 Inlining constant with different constant siblings (const byte) main::line#46 Inlining constant with different constant siblings (const byte) main::line#48 -Constant inlined main::$50 = ++++++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$51 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$12 = ++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$13 = (const byte*) main::SCREEN#0+++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$14 = ++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$15 = (const byte*) main::SCREEN#0+++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$10 = ++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$11 = (const byte*) main::SCREEN#0+++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$50 = ++++++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$51 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$12 = ++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$13 = (const byte*) main::SCREEN#0+++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$14 = ++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$15 = (const byte*) main::SCREEN#0+++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$10 = ++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$11 = (const byte*) main::SCREEN#0+++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#42 = ++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#44 = ++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$16 = ++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$17 = (const byte*) main::SCREEN#0+++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$18 = ++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$19 = (const byte*) main::SCREEN#0+++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$16 = ++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$17 = (const byte*) main::SCREEN#0+++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$18 = ++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$19 = (const byte*) main::SCREEN#0+++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#40 = ++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#4 = ++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#1 = ++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#46 = ++++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#48 = ++++++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$40 = ++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$40 = ++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#8 = ++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#6 = ++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$45 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$46 = ++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$47 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$48 = ++++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$41 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$42 = ++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$43 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$44 = ++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$45 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$46 = ++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$47 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$48 = ++++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$41 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$42 = ++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$43 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$44 = ++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#10 = ++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#12 = ++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$49 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$49 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#18 = ++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#14 = ++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#16 = ++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$34 = ++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$35 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$36 = ++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$37 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$30 = ++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$31 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$32 = ++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$33 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$34 = ++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$35 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$36 = ++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$37 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$30 = ++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$31 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$32 = ++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$33 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#20 = ++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#22 = ++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$38 = ++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$39 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$38 = ++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$39 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#28 = ++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#24 = ++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#26 = ++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$23 = (const byte*) main::SCREEN#0+++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$24 = ++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$25 = (const byte*) main::SCREEN#0+++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$23 = (const byte*) main::SCREEN#0+++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$24 = ++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$25 = (const byte*) main::SCREEN#0+++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$26 = ++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$20 = ++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$21 = (const byte*) main::SCREEN#0+++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$22 = ++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$26 = ++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$20 = ++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$21 = (const byte*) main::SCREEN#0+++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$22 = ++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#32 = ++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#34 = ++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$1 = (const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$27 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$28 = ++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$29 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$1 = (const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$27 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$28 = ++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$29 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#30 = ++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$0 = (byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$5 = (const byte*) main::SCREEN#0+++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$6 = ++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$4 = ++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$9 = (const byte*) main::SCREEN#0+++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$0 = (byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$5 = (const byte*) main::SCREEN#0+++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$6 = ++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$4 = ++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$9 = (const byte*) main::SCREEN#0+++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#36 = ++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$7 = (const byte*) main::SCREEN#0+++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$7 = (const byte*) main::SCREEN#0+++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#38 = ++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$8 = ++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$8 = ++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Successful SSA optimization Pass2ConstantInlining -Simplifying constant multiply by zero 0*40 +Simplifying constant multiply by zero 0*$28 Simplifying constant integer increment ++0 Simplifying constant integer increment ++0 Simplifying constant integer increment ++1 @@ -493,19 +493,19 @@ Simplifying constant integer increment ++6 Simplifying constant integer increment ++7 Simplifying constant integer increment ++8 Simplifying constant integer increment ++9 -Simplifying constant integer increment ++10 -Simplifying constant integer increment ++11 -Simplifying constant integer increment ++12 -Simplifying constant integer increment ++13 -Simplifying constant integer increment ++14 -Simplifying constant integer increment ++15 -Simplifying constant integer increment ++16 -Simplifying constant integer increment ++17 -Simplifying constant integer increment ++18 -Simplifying constant integer increment ++19 -Simplifying constant integer increment ++20 -Simplifying constant integer increment ++21 -Simplifying constant integer increment ++22 +Simplifying constant integer increment ++$a +Simplifying constant integer increment ++$b +Simplifying constant integer increment ++$c +Simplifying constant integer increment ++$d +Simplifying constant integer increment ++$e +Simplifying constant integer increment ++$f +Simplifying constant integer increment ++$10 +Simplifying constant integer increment ++$11 +Simplifying constant integer increment ++$12 +Simplifying constant integer increment ++$13 +Simplifying constant integer increment ++$14 +Simplifying constant integer increment ++$15 +Simplifying constant integer increment ++$16 Successful SSA optimization Pass2ConstantSimplification Simplifying constant plus zero main::SCREEN#0+0 Simplifying constant integer increment ++1 @@ -517,20 +517,20 @@ Simplifying constant integer increment ++6 Simplifying constant integer increment ++7 Simplifying constant integer increment ++8 Simplifying constant integer increment ++9 -Simplifying constant integer increment ++10 -Simplifying constant integer increment ++11 -Simplifying constant integer increment ++12 -Simplifying constant integer increment ++13 -Simplifying constant integer increment ++14 -Simplifying constant integer increment ++15 -Simplifying constant integer increment ++16 -Simplifying constant integer increment ++17 -Simplifying constant integer increment ++18 -Simplifying constant integer increment ++19 -Simplifying constant integer increment ++20 -Simplifying constant integer increment ++21 -Simplifying constant integer increment ++22 -Simplifying constant integer increment ++23 +Simplifying constant integer increment ++$a +Simplifying constant integer increment ++$b +Simplifying constant integer increment ++$c +Simplifying constant integer increment ++$d +Simplifying constant integer increment ++$e +Simplifying constant integer increment ++$f +Simplifying constant integer increment ++$10 +Simplifying constant integer increment ++$11 +Simplifying constant integer increment ++$12 +Simplifying constant integer increment ++$13 +Simplifying constant integer increment ++$14 +Simplifying constant integer increment ++$15 +Simplifying constant integer increment ++$16 +Simplifying constant integer increment ++$17 Successful SSA optimization Pass2ConstantSimplification Added new block during phi lifting main::@5(between main::@3 and main::@1) Adding NOP phi() at start of @begin @@ -569,80 +569,80 @@ main::@2: scope:[main] from main::@1 [6] *((const byte*) main::SCREEN#0 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_1 main::@2_1: scope:[main] from main::@2 - [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_2 main::@2_2: scope:[main] from main::@2_1 - [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_3 main::@2_3: scope:[main] from main::@2_2 - [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_4 main::@2_4: scope:[main] from main::@2_3 - [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_5 main::@2_5: scope:[main] from main::@2_4 - [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_6 main::@2_6: scope:[main] from main::@2_5 - [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_7 main::@2_7: scope:[main] from main::@2_6 - [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_8 main::@2_8: scope:[main] from main::@2_7 - [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_9 main::@2_9: scope:[main] from main::@2_8 - [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_10 main::@2_10: scope:[main] from main::@2_9 - [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_11 main::@2_11: scope:[main] from main::@2_10 - [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 11*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $b*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_12 main::@2_12: scope:[main] from main::@2_11 - [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 12*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $c*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_13 main::@2_13: scope:[main] from main::@2_12 - [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 13*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $d*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_14 main::@2_14: scope:[main] from main::@2_13 - [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 14*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $e*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_15 main::@2_15: scope:[main] from main::@2_14 - [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $f*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_16 main::@2_16: scope:[main] from main::@2_15 - [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 16*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $10*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_17 main::@2_17: scope:[main] from main::@2_16 - [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 17*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $11*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_18 main::@2_18: scope:[main] from main::@2_17 - [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 18*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $12*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_19 main::@2_19: scope:[main] from main::@2_18 - [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 19*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $13*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_20 main::@2_20: scope:[main] from main::@2_19 - [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 20*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $14*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_21 main::@2_21: scope:[main] from main::@2_20 - [27] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 21*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [27] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $15*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_22 main::@2_22: scope:[main] from main::@2_21 - [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 22*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $16*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_23 main::@2_23: scope:[main] from main::@2_22 - [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 23*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $17*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@2_24 main::@2_24: scope:[main] from main::@2_23 - [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 24*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 + [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $18*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 to:main::@3 main::@3: scope:[main] from main::@2_24 [31] (byte) main::x#1 ← ++ (byte) main::x#4 - [32] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 + [32] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 to:main::@return main::@return: scope:[main] from main::@3 [33] return @@ -713,168 +713,168 @@ main: { jmp b2_1 //SEG18 main::@2_1 b2_1: - //SEG19 [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG19 [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+1*$28,y jmp b2_2 //SEG20 main::@2_2 b2_2: - //SEG21 [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG21 [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+2*$28,y jmp b2_3 //SEG22 main::@2_3 b2_3: - //SEG23 [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG23 [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+3*$28,y jmp b2_4 //SEG24 main::@2_4 b2_4: - //SEG25 [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG25 [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+4*$28,y jmp b2_5 //SEG26 main::@2_5 b2_5: - //SEG27 [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG27 [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+5*$28,y jmp b2_6 //SEG28 main::@2_6 b2_6: - //SEG29 [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG29 [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+6*$28,y jmp b2_7 //SEG30 main::@2_7 b2_7: - //SEG31 [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG31 [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+7*$28,y jmp b2_8 //SEG32 main::@2_8 b2_8: - //SEG33 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG33 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+8*$28,y jmp b2_9 //SEG34 main::@2_9 b2_9: - //SEG35 [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG35 [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+9*$28,y jmp b2_10 //SEG36 main::@2_10 b2_10: - //SEG37 [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG37 [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$a*$28,y jmp b2_11 //SEG38 main::@2_11 b2_11: - //SEG39 [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 11*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG39 [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $b*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$b*$28,y jmp b2_12 //SEG40 main::@2_12 b2_12: - //SEG41 [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 12*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG41 [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $c*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$c*$28,y jmp b2_13 //SEG42 main::@2_13 b2_13: - //SEG43 [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 13*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG43 [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $d*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$d*$28,y jmp b2_14 //SEG44 main::@2_14 b2_14: - //SEG45 [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 14*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG45 [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $e*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$e*$28,y jmp b2_15 //SEG46 main::@2_15 b2_15: - //SEG47 [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG47 [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $f*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$f*$28,y jmp b2_16 //SEG48 main::@2_16 b2_16: - //SEG49 [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 16*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG49 [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $10*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$10*$28,y jmp b2_17 //SEG50 main::@2_17 b2_17: - //SEG51 [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 17*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG51 [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $11*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$11*$28,y jmp b2_18 //SEG52 main::@2_18 b2_18: - //SEG53 [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 18*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG53 [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $12*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$12*$28,y jmp b2_19 //SEG54 main::@2_19 b2_19: - //SEG55 [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 19*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG55 [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $13*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$13*$28,y jmp b2_20 //SEG56 main::@2_20 b2_20: - //SEG57 [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 20*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG57 [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $14*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$14*$28,y jmp b2_21 //SEG58 main::@2_21 b2_21: - //SEG59 [27] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 21*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG59 [27] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $15*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$15*$28,y jmp b2_22 //SEG60 main::@2_22 b2_22: - //SEG61 [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 22*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG61 [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $16*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$16*$28,y jmp b2_23 //SEG62 main::@2_23 b2_23: - //SEG63 [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 23*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG63 [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $17*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$17*$28,y jmp b2_24 //SEG64 main::@2_24 b2_24: - //SEG65 [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 24*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG65 [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $18*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$18*$28,y @@ -883,7 +883,7 @@ main: { b3: //SEG67 [31] (byte) main::x#1 ← ++ (byte) main::x#4 -- vbuz1=_inc_vbuz1 inc x - //SEG68 [32] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG68 [32] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #$28 bne b1_from_b3 @@ -951,145 +951,145 @@ main: { jmp b2_1 //SEG18 main::@2_1 b2_1: - //SEG19 [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG19 [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+1*$28,x jmp b2_2 //SEG20 main::@2_2 b2_2: - //SEG21 [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG21 [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+2*$28,x jmp b2_3 //SEG22 main::@2_3 b2_3: - //SEG23 [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG23 [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+3*$28,x jmp b2_4 //SEG24 main::@2_4 b2_4: - //SEG25 [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG25 [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+4*$28,x jmp b2_5 //SEG26 main::@2_5 b2_5: - //SEG27 [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG27 [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+5*$28,x jmp b2_6 //SEG28 main::@2_6 b2_6: - //SEG29 [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG29 [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+6*$28,x jmp b2_7 //SEG30 main::@2_7 b2_7: - //SEG31 [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG31 [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+7*$28,x jmp b2_8 //SEG32 main::@2_8 b2_8: - //SEG33 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG33 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+8*$28,x jmp b2_9 //SEG34 main::@2_9 b2_9: - //SEG35 [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG35 [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+9*$28,x jmp b2_10 //SEG36 main::@2_10 b2_10: - //SEG37 [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG37 [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$a*$28,x jmp b2_11 //SEG38 main::@2_11 b2_11: - //SEG39 [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 11*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG39 [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $b*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$b*$28,x jmp b2_12 //SEG40 main::@2_12 b2_12: - //SEG41 [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 12*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG41 [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $c*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$c*$28,x jmp b2_13 //SEG42 main::@2_13 b2_13: - //SEG43 [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 13*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG43 [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $d*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$d*$28,x jmp b2_14 //SEG44 main::@2_14 b2_14: - //SEG45 [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 14*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG45 [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $e*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$e*$28,x jmp b2_15 //SEG46 main::@2_15 b2_15: - //SEG47 [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG47 [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $f*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$f*$28,x jmp b2_16 //SEG48 main::@2_16 b2_16: - //SEG49 [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 16*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG49 [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $10*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$10*$28,x jmp b2_17 //SEG50 main::@2_17 b2_17: - //SEG51 [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 17*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG51 [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $11*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$11*$28,x jmp b2_18 //SEG52 main::@2_18 b2_18: - //SEG53 [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 18*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG53 [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $12*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$12*$28,x jmp b2_19 //SEG54 main::@2_19 b2_19: - //SEG55 [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 19*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG55 [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $13*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$13*$28,x jmp b2_20 //SEG56 main::@2_20 b2_20: - //SEG57 [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 20*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG57 [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $14*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$14*$28,x jmp b2_21 //SEG58 main::@2_21 b2_21: - //SEG59 [27] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 21*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG59 [27] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $15*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$15*$28,x jmp b2_22 //SEG60 main::@2_22 b2_22: - //SEG61 [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 22*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG61 [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $16*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$16*$28,x jmp b2_23 //SEG62 main::@2_23 b2_23: - //SEG63 [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 23*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG63 [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $17*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$17*$28,x jmp b2_24 //SEG64 main::@2_24 b2_24: - //SEG65 [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 24*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG65 [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $18*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$18*$28,x jmp b3 @@ -1097,7 +1097,7 @@ main: { b3: //SEG67 [31] (byte) main::x#1 ← ++ (byte) main::x#4 -- vbuxx=_inc_vbuxx inx - //SEG68 [32] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG68 [32] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b1_from_b3 jmp breturn @@ -1219,7 +1219,7 @@ FINAL SYMBOL TABLE (label) main::@3 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::line (byte) main::x (byte) main::x#1 reg byte x 16.5 @@ -1260,105 +1260,105 @@ main: { txa sta SCREEN,x //SEG18 main::@2_1 - //SEG19 [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG19 [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+1*$28,x //SEG20 main::@2_2 - //SEG21 [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG21 [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+2*$28,x //SEG22 main::@2_3 - //SEG23 [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG23 [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+3*$28,x //SEG24 main::@2_4 - //SEG25 [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG25 [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+4*$28,x //SEG26 main::@2_5 - //SEG27 [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG27 [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+5*$28,x //SEG28 main::@2_6 - //SEG29 [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG29 [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+6*$28,x //SEG30 main::@2_7 - //SEG31 [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG31 [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+7*$28,x //SEG32 main::@2_8 - //SEG33 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG33 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+8*$28,x //SEG34 main::@2_9 - //SEG35 [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG35 [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+9*$28,x //SEG36 main::@2_10 - //SEG37 [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG37 [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$a*$28,x //SEG38 main::@2_11 - //SEG39 [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 11*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG39 [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $b*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$b*$28,x //SEG40 main::@2_12 - //SEG41 [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 12*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG41 [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $c*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$c*$28,x //SEG42 main::@2_13 - //SEG43 [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 13*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG43 [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $d*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$d*$28,x //SEG44 main::@2_14 - //SEG45 [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 14*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG45 [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $e*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$e*$28,x //SEG46 main::@2_15 - //SEG47 [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG47 [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $f*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$f*$28,x //SEG48 main::@2_16 - //SEG49 [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 16*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG49 [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $10*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$10*$28,x //SEG50 main::@2_17 - //SEG51 [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 17*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG51 [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $11*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$11*$28,x //SEG52 main::@2_18 - //SEG53 [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 18*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG53 [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $12*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$12*$28,x //SEG54 main::@2_19 - //SEG55 [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 19*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG55 [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $13*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$13*$28,x //SEG56 main::@2_20 - //SEG57 [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 20*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG57 [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $14*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$14*$28,x //SEG58 main::@2_21 - //SEG59 [27] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 21*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG59 [27] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $15*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$15*$28,x //SEG60 main::@2_22 - //SEG61 [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 22*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG61 [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $16*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$16*$28,x //SEG62 main::@2_23 - //SEG63 [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 23*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG63 [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $17*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$17*$28,x //SEG64 main::@2_24 - //SEG65 [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 24*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG65 [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $18*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#4) ← (byte) main::x#4 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$18*$28,x //SEG66 main::@3 //SEG67 [31] (byte) main::x#1 ← ++ (byte) main::x#4 -- vbuxx=_inc_vbuxx inx - //SEG68 [32] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG68 [32] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b2 //SEG69 main::@return diff --git a/src/test/ref/unroll-screenfill-for.sym b/src/test/ref/unroll-screenfill-for.sym index 72c659a80..517759fc7 100644 --- a/src/test/ref/unroll-screenfill-for.sym +++ b/src/test/ref/unroll-screenfill-for.sym @@ -31,7 +31,7 @@ (label) main::@3 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::line (byte) main::x (byte) main::x#1 reg byte x 16.5 diff --git a/src/test/ref/unroll-screenfill-while.cfg b/src/test/ref/unroll-screenfill-while.cfg index 3d720727d..05f73f29e 100644 --- a/src/test/ref/unroll-screenfill-while.cfg +++ b/src/test/ref/unroll-screenfill-while.cfg @@ -17,80 +17,80 @@ main::@3: scope:[main] from main::@1 [6] *((const byte*) main::SCREEN#0 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_1 main::@3_1: scope:[main] from main::@3 - [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_2 main::@3_2: scope:[main] from main::@3_1 - [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_3 main::@3_3: scope:[main] from main::@3_2 - [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_4 main::@3_4: scope:[main] from main::@3_3 - [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_5 main::@3_5: scope:[main] from main::@3_4 - [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_6 main::@3_6: scope:[main] from main::@3_5 - [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_7 main::@3_7: scope:[main] from main::@3_6 - [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_8 main::@3_8: scope:[main] from main::@3_7 - [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_9 main::@3_9: scope:[main] from main::@3_8 - [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_10 main::@3_10: scope:[main] from main::@3_9 - [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_11 main::@3_11: scope:[main] from main::@3_10 - [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 11*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $b*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_12 main::@3_12: scope:[main] from main::@3_11 - [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 12*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $c*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_13 main::@3_13: scope:[main] from main::@3_12 - [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 13*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $d*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_14 main::@3_14: scope:[main] from main::@3_13 - [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 14*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $e*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_15 main::@3_15: scope:[main] from main::@3_14 - [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $f*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_16 main::@3_16: scope:[main] from main::@3_15 - [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 16*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $10*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_17 main::@3_17: scope:[main] from main::@3_16 - [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 17*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $11*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_18 main::@3_18: scope:[main] from main::@3_17 - [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 18*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $12*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_19 main::@3_19: scope:[main] from main::@3_18 - [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 19*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $13*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_20 main::@3_20: scope:[main] from main::@3_19 - [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 20*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $14*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_21 main::@3_21: scope:[main] from main::@3_20 - [27] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 21*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [27] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $15*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_22 main::@3_22: scope:[main] from main::@3_21 - [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 22*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $16*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_23 main::@3_23: scope:[main] from main::@3_22 - [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 23*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $17*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_24 main::@3_24: scope:[main] from main::@3_23 - [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 24*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $18*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@4 main::@4: scope:[main] from main::@3_24 [31] (byte) main::x#1 ← ++ (byte) main::x#5 - [32] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 + [32] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 to:main::@return main::@return: scope:[main] from main::@4 [33] return diff --git a/src/test/ref/unroll-screenfill-while.log b/src/test/ref/unroll-screenfill-while.log index c28852ea3..03e1efde7 100644 --- a/src/test/ref/unroll-screenfill-while.log +++ b/src/test/ref/unroll-screenfill-while.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) main::x#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main main::@4 @@ -15,14 +15,14 @@ main::@2: scope:[main] from main::@1 main::@3 (byte) main::x#4 ← phi( main::@1/(byte) main::x#5 main::@3/(byte) main::x#2 ) (byte*) main::SCREEN#2 ← phi( main::@1/(byte*) main::SCREEN#3 main::@3/(byte*) main::SCREEN#1 ) (byte) main::line#2 ← phi( main::@1/(byte) main::line#0 main::@3/(byte) main::line#1 ) - (bool~) main::$0 ← (byte) main::line#2 != (byte/signed byte/word/signed word/dword/signed dword) 25 + (bool~) main::$0 ← (byte) main::line#2 != (byte/signed byte/word/signed word/dword/signed dword) $19 unroll if((bool~) main::$0) goto main::@3 to:main::@4 main::@3: scope:[main] from main::@2 (byte) main::x#2 ← phi( main::@2/(byte) main::x#4 ) (byte*) main::SCREEN#1 ← phi( main::@2/(byte*) main::SCREEN#2 ) (byte) main::line#3 ← phi( main::@2/(byte) main::line#2 ) - (byte/signed word/word/dword/signed dword~) main::$1 ← (byte) main::line#3 * (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte/signed word/word/dword/signed dword~) main::$1 ← (byte) main::line#3 * (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*~) main::$2 ← (byte*) main::SCREEN#1 + (byte/signed word/word/dword/signed dword~) main::$1 *((byte*~) main::$2 + (byte) main::x#2) ← (byte) main::x#2 (byte) main::line#1 ← ++ (byte) main::line#3 @@ -30,8 +30,8 @@ main::@3: scope:[main] from main::@2 main::@4: scope:[main] from main::@2 (byte*) main::SCREEN#4 ← phi( main::@2/(byte*) main::SCREEN#2 ) (byte) main::x#3 ← phi( main::@2/(byte) main::x#4 ) - (byte) main::x#1 ← (byte) main::x#3 + rangenext(0,39) - (bool~) main::$3 ← (byte) main::x#1 != rangelast(0,39) + (byte) main::x#1 ← (byte) main::x#3 + rangenext(0,$27) + (bool~) main::$3 ← (byte) main::x#1 != rangelast(0,$27) if((bool~) main::$3) goto main::@1 to:main::@return main::@return: scope:[main] from main::@4 @@ -90,15 +90,15 @@ Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) main::SCREEN#1 (byte*) main::SCREEN#3 Redundant Phi (byte) main::x#2 (byte) main::x#5 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$0 [6] unroll if((byte) main::line#2!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@3 -Simple Condition (bool~) main::$3 [15] if((byte) main::x#1!=rangelast(0,39)) goto main::@1 +Simple Condition (bool~) main::$0 [6] unroll if((byte) main::line#2!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@3 +Simple Condition (bool~) main::$3 [15] if((byte) main::x#1!=rangelast(0,$27)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) main::SCREEN#0 = ((byte*))1024 +Constant (const byte*) main::SCREEN#0 = ((byte*))$400 Constant (const byte) main::x#0 = 0 Constant (const byte) main::line#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::x#1 ← ++ main::x#5 to ++ -Resolved ranged comparison value if(main::x#1!=rangelast(0,39)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(main::x#1!=rangelast(0,$27)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $28 Self Phi Eliminated (byte*) main::SCREEN#3 Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) main::SCREEN#3 (const byte*) main::SCREEN#0 @@ -107,12 +107,12 @@ Unrolling loop Loop head: main::@2 tails: main::@3 blocks: main::@3 main::@2 Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#2 (const byte) main::line#0 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) main::$1 = main::line#0*40 +Constant (const byte/signed word/word/dword/signed dword) main::$1 = main::line#0*$28 Constant (const byte) main::line#1 = ++main::line#0 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$2 = main::SCREEN#0+main::$1 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [1] if((const byte) main::line#0!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@3 +if() condition always true - replacing block destination [1] if((const byte) main::line#0!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@3 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@2 Successful SSA optimization Pass2CullEmptyBlocks @@ -120,12 +120,12 @@ Unrolling loop Loop head: main::@2_1 tails: main::@3_1 blocks: main::@3_1 main:: Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#4 (const byte) main::line#1 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) main::$4 = main::line#1*40 +Constant (const byte/signed word/word/dword/signed dword) main::$4 = main::line#1*$28 Constant (const byte) main::line#5 = ++main::line#1 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$5 = main::SCREEN#0+main::$4 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [3] if((const byte) main::line#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@3_1 +if() condition always true - replacing block destination [3] if((const byte) main::line#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@3_1 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@2_1 Successful SSA optimization Pass2CullEmptyBlocks @@ -133,12 +133,12 @@ Unrolling loop Loop head: main::@2_2 tails: main::@3_2 blocks: main::@3_2 main:: Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#6 (const byte) main::line#5 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) main::$6 = main::line#5*40 +Constant (const byte/signed word/word/dword/signed dword) main::$6 = main::line#5*$28 Constant (const byte) main::line#7 = ++main::line#5 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$7 = main::SCREEN#0+main::$6 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [4] if((const byte) main::line#5!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@3_2 +if() condition always true - replacing block destination [4] if((const byte) main::line#5!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@3_2 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@2_2 Successful SSA optimization Pass2CullEmptyBlocks @@ -146,12 +146,12 @@ Unrolling loop Loop head: main::@2_1 tails: main::@3_3 blocks: main::@3_3 main:: Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#8 (const byte) main::line#7 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) main::$8 = main::line#7*40 +Constant (const byte/signed word/word/dword/signed dword) main::$8 = main::line#7*$28 Constant (const byte) main::line#9 = ++main::line#7 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$9 = main::SCREEN#0+main::$8 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [5] if((const byte) main::line#7!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@3_3 +if() condition always true - replacing block destination [5] if((const byte) main::line#7!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@3_3 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@2_1 Successful SSA optimization Pass2CullEmptyBlocks @@ -159,12 +159,12 @@ Unrolling loop Loop head: main::@2_2 tails: main::@3_4 blocks: main::@3_4 main:: Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#10 (const byte) main::line#9 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) main::$10 = main::line#9*40 +Constant (const byte/signed word/word/dword/signed dword) main::$10 = main::line#9*$28 Constant (const byte) main::line#11 = ++main::line#9 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$11 = main::SCREEN#0+main::$10 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [6] if((const byte) main::line#9!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@3_4 +if() condition always true - replacing block destination [6] if((const byte) main::line#9!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@3_4 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@2_2 Successful SSA optimization Pass2CullEmptyBlocks @@ -172,12 +172,12 @@ Unrolling loop Loop head: main::@2_1 tails: main::@3_5 blocks: main::@3_5 main:: Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#12 (const byte) main::line#11 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) main::$12 = main::line#11*40 +Constant (const byte/signed word/word/dword/signed dword) main::$12 = main::line#11*$28 Constant (const byte) main::line#13 = ++main::line#11 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$13 = main::SCREEN#0+main::$12 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [7] if((const byte) main::line#11!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@3_5 +if() condition always true - replacing block destination [7] if((const byte) main::line#11!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@3_5 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@2_1 Successful SSA optimization Pass2CullEmptyBlocks @@ -185,12 +185,12 @@ Unrolling loop Loop head: main::@2_2 tails: main::@3_6 blocks: main::@3_6 main:: Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#14 (const byte) main::line#13 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte/signed word/word/dword/signed dword) main::$14 = main::line#13*40 +Constant (const byte/signed word/word/dword/signed dword) main::$14 = main::line#13*$28 Constant (const byte) main::line#15 = ++main::line#13 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$15 = main::SCREEN#0+main::$14 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [8] if((const byte) main::line#13!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@3_6 +if() condition always true - replacing block destination [8] if((const byte) main::line#13!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@3_6 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@2_2 Successful SSA optimization Pass2CullEmptyBlocks @@ -198,12 +198,12 @@ Unrolling loop Loop head: main::@2_1 tails: main::@3_7 blocks: main::@3_7 main:: Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#16 (const byte) main::line#15 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$16 = main::line#15*40 +Constant (const word/signed word/dword/signed dword) main::$16 = main::line#15*$28 Constant (const byte) main::line#17 = ++main::line#15 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$17 = main::SCREEN#0+main::$16 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [9] if((const byte) main::line#15!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@3_7 +if() condition always true - replacing block destination [9] if((const byte) main::line#15!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@3_7 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@2_1 Successful SSA optimization Pass2CullEmptyBlocks @@ -211,12 +211,12 @@ Unrolling loop Loop head: main::@2_2 tails: main::@3_8 blocks: main::@3_8 main:: Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#18 (const byte) main::line#17 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$18 = main::line#17*40 +Constant (const word/signed word/dword/signed dword) main::$18 = main::line#17*$28 Constant (const byte) main::line#19 = ++main::line#17 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$19 = main::SCREEN#0+main::$18 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [10] if((const byte) main::line#17!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@3_8 +if() condition always true - replacing block destination [10] if((const byte) main::line#17!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@3_8 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@2_2 Successful SSA optimization Pass2CullEmptyBlocks @@ -224,12 +224,12 @@ Unrolling loop Loop head: main::@2_1 tails: main::@3_9 blocks: main::@3_9 main:: Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#20 (const byte) main::line#19 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$20 = main::line#19*40 +Constant (const word/signed word/dword/signed dword) main::$20 = main::line#19*$28 Constant (const byte) main::line#21 = ++main::line#19 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$21 = main::SCREEN#0+main::$20 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [11] if((const byte) main::line#19!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@3_9 +if() condition always true - replacing block destination [11] if((const byte) main::line#19!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@3_9 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@2_1 Successful SSA optimization Pass2CullEmptyBlocks @@ -237,12 +237,12 @@ Unrolling loop Loop head: main::@2_2 tails: main::@3_10 blocks: main::@3_10 main Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#22 (const byte) main::line#21 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$22 = main::line#21*40 +Constant (const word/signed word/dword/signed dword) main::$22 = main::line#21*$28 Constant (const byte) main::line#23 = ++main::line#21 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$23 = main::SCREEN#0+main::$22 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [12] if((const byte) main::line#21!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@3_10 +if() condition always true - replacing block destination [12] if((const byte) main::line#21!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@3_10 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@2_2 Successful SSA optimization Pass2CullEmptyBlocks @@ -250,12 +250,12 @@ Unrolling loop Loop head: main::@2_1 tails: main::@3_11 blocks: main::@3_11 main Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#24 (const byte) main::line#23 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$24 = main::line#23*40 +Constant (const word/signed word/dword/signed dword) main::$24 = main::line#23*$28 Constant (const byte) main::line#25 = ++main::line#23 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$25 = main::SCREEN#0+main::$24 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [13] if((const byte) main::line#23!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@3_11 +if() condition always true - replacing block destination [13] if((const byte) main::line#23!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@3_11 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@2_1 Successful SSA optimization Pass2CullEmptyBlocks @@ -263,12 +263,12 @@ Unrolling loop Loop head: main::@2_2 tails: main::@3_12 blocks: main::@3_12 main Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#26 (const byte) main::line#25 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$26 = main::line#25*40 +Constant (const word/signed word/dword/signed dword) main::$26 = main::line#25*$28 Constant (const byte) main::line#27 = ++main::line#25 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$27 = main::SCREEN#0+main::$26 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [14] if((const byte) main::line#25!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@3_12 +if() condition always true - replacing block destination [14] if((const byte) main::line#25!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@3_12 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@2_2 Successful SSA optimization Pass2CullEmptyBlocks @@ -276,12 +276,12 @@ Unrolling loop Loop head: main::@2_1 tails: main::@3_13 blocks: main::@3_13 main Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#28 (const byte) main::line#27 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$28 = main::line#27*40 +Constant (const word/signed word/dword/signed dword) main::$28 = main::line#27*$28 Constant (const byte) main::line#29 = ++main::line#27 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$29 = main::SCREEN#0+main::$28 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [15] if((const byte) main::line#27!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@3_13 +if() condition always true - replacing block destination [15] if((const byte) main::line#27!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@3_13 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@2_1 Successful SSA optimization Pass2CullEmptyBlocks @@ -289,12 +289,12 @@ Unrolling loop Loop head: main::@2_2 tails: main::@3_14 blocks: main::@3_14 main Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#30 (const byte) main::line#29 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$30 = main::line#29*40 +Constant (const word/signed word/dword/signed dword) main::$30 = main::line#29*$28 Constant (const byte) main::line#31 = ++main::line#29 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$31 = main::SCREEN#0+main::$30 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [16] if((const byte) main::line#29!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@3_14 +if() condition always true - replacing block destination [16] if((const byte) main::line#29!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@3_14 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@2_2 Successful SSA optimization Pass2CullEmptyBlocks @@ -302,12 +302,12 @@ Unrolling loop Loop head: main::@2_1 tails: main::@3_15 blocks: main::@3_15 main Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#32 (const byte) main::line#31 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$32 = main::line#31*40 +Constant (const word/signed word/dword/signed dword) main::$32 = main::line#31*$28 Constant (const byte) main::line#33 = ++main::line#31 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$33 = main::SCREEN#0+main::$32 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [17] if((const byte) main::line#31!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@3_15 +if() condition always true - replacing block destination [17] if((const byte) main::line#31!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@3_15 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@2_1 Successful SSA optimization Pass2CullEmptyBlocks @@ -315,12 +315,12 @@ Unrolling loop Loop head: main::@2_2 tails: main::@3_16 blocks: main::@3_16 main Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#34 (const byte) main::line#33 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$34 = main::line#33*40 +Constant (const word/signed word/dword/signed dword) main::$34 = main::line#33*$28 Constant (const byte) main::line#35 = ++main::line#33 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$35 = main::SCREEN#0+main::$34 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [18] if((const byte) main::line#33!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@3_16 +if() condition always true - replacing block destination [18] if((const byte) main::line#33!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@3_16 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@2_2 Successful SSA optimization Pass2CullEmptyBlocks @@ -328,12 +328,12 @@ Unrolling loop Loop head: main::@2_1 tails: main::@3_17 blocks: main::@3_17 main Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#36 (const byte) main::line#35 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$36 = main::line#35*40 +Constant (const word/signed word/dword/signed dword) main::$36 = main::line#35*$28 Constant (const byte) main::line#37 = ++main::line#35 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$37 = main::SCREEN#0+main::$36 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [19] if((const byte) main::line#35!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@3_17 +if() condition always true - replacing block destination [19] if((const byte) main::line#35!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@3_17 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@2_1 Successful SSA optimization Pass2CullEmptyBlocks @@ -341,12 +341,12 @@ Unrolling loop Loop head: main::@2_2 tails: main::@3_18 blocks: main::@3_18 main Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#38 (const byte) main::line#37 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$38 = main::line#37*40 +Constant (const word/signed word/dword/signed dword) main::$38 = main::line#37*$28 Constant (const byte) main::line#39 = ++main::line#37 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$39 = main::SCREEN#0+main::$38 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [20] if((const byte) main::line#37!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@3_18 +if() condition always true - replacing block destination [20] if((const byte) main::line#37!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@3_18 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@2_2 Successful SSA optimization Pass2CullEmptyBlocks @@ -354,12 +354,12 @@ Unrolling loop Loop head: main::@2_1 tails: main::@3_19 blocks: main::@3_19 main Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#40 (const byte) main::line#39 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$40 = main::line#39*40 +Constant (const word/signed word/dword/signed dword) main::$40 = main::line#39*$28 Constant (const byte) main::line#41 = ++main::line#39 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$41 = main::SCREEN#0+main::$40 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [21] if((const byte) main::line#39!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@3_19 +if() condition always true - replacing block destination [21] if((const byte) main::line#39!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@3_19 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@2_1 Successful SSA optimization Pass2CullEmptyBlocks @@ -367,12 +367,12 @@ Unrolling loop Loop head: main::@2_2 tails: main::@3_20 blocks: main::@3_20 main Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#42 (const byte) main::line#41 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$42 = main::line#41*40 +Constant (const word/signed word/dword/signed dword) main::$42 = main::line#41*$28 Constant (const byte) main::line#43 = ++main::line#41 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$43 = main::SCREEN#0+main::$42 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [22] if((const byte) main::line#41!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@3_20 +if() condition always true - replacing block destination [22] if((const byte) main::line#41!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@3_20 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@2_2 Successful SSA optimization Pass2CullEmptyBlocks @@ -380,12 +380,12 @@ Unrolling loop Loop head: main::@2_1 tails: main::@3_21 blocks: main::@3_21 main Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#44 (const byte) main::line#43 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$44 = main::line#43*40 +Constant (const word/signed word/dword/signed dword) main::$44 = main::line#43*$28 Constant (const byte) main::line#45 = ++main::line#43 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$45 = main::SCREEN#0+main::$44 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [23] if((const byte) main::line#43!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@3_21 +if() condition always true - replacing block destination [23] if((const byte) main::line#43!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@3_21 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@2_1 Successful SSA optimization Pass2CullEmptyBlocks @@ -393,12 +393,12 @@ Unrolling loop Loop head: main::@2_2 tails: main::@3_22 blocks: main::@3_22 main Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#46 (const byte) main::line#45 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$46 = main::line#45*40 +Constant (const word/signed word/dword/signed dword) main::$46 = main::line#45*$28 Constant (const byte) main::line#47 = ++main::line#45 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$47 = main::SCREEN#0+main::$46 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [24] if((const byte) main::line#45!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@3_22 +if() condition always true - replacing block destination [24] if((const byte) main::line#45!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@3_22 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@2_2 Successful SSA optimization Pass2CullEmptyBlocks @@ -406,12 +406,12 @@ Unrolling loop Loop head: main::@2_1 tails: main::@3_23 blocks: main::@3_23 main Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#48 (const byte) main::line#47 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$48 = main::line#47*40 +Constant (const word/signed word/dword/signed dword) main::$48 = main::line#47*$28 Constant (const byte) main::line#49 = ++main::line#47 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$49 = main::SCREEN#0+main::$48 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [25] if((const byte) main::line#47!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@3_23 +if() condition always true - replacing block destination [25] if((const byte) main::line#47!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@3_23 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@2_1 Successful SSA optimization Pass2CullEmptyBlocks @@ -419,12 +419,12 @@ Unrolling loop Loop head: main::@2_2 tails: main::@3_24 blocks: main::@3_24 main Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#50 (const byte) main::line#49 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$50 = main::line#49*40 +Constant (const word/signed word/dword/signed dword) main::$50 = main::line#49*$28 Constant (const byte) main::line#51 = ++main::line#49 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$51 = main::SCREEN#0+main::$50 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [26] if((const byte) main::line#49!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@3_24 +if() condition always true - replacing block destination [26] if((const byte) main::line#49!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@3_24 Successful SSA optimization Pass2ConstantIfs Culled Empty Block (label) main::@2_2 Successful SSA optimization Pass2CullEmptyBlocks @@ -432,12 +432,12 @@ Unrolling loop Loop head: main::@2_1 tails: main::@3_25 blocks: main::@3_25 main Successful SSA optimization Pass2LoopUnroll Redundant Phi (byte) main::line#52 (const byte) main::line#51 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const word/signed word/dword/signed dword) main::$52 = main::line#51*40 +Constant (const word/signed word/dword/signed dword) main::$52 = main::line#51*$28 Constant (const byte) main::line#53 = ++main::line#51 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::$53 = main::SCREEN#0+main::$52 Successful SSA optimization Pass2ConstantIdentification -if() condition always false - eliminating [27] if((const byte) main::line#51!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto main::@3_25 +if() condition always false - eliminating [27] if((const byte) main::line#51!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto main::@3_25 Successful SSA optimization Pass2ConstantIfs Eliminating variable (byte) main::line#54 from unused block main::@2_2 Eliminating variable (byte/signed word/word/dword/signed dword~) main::$54 from unused block main::@3_26 @@ -479,84 +479,84 @@ Inlining constant with different constant siblings (const byte) main::line#43 Inlining constant with different constant siblings (const byte) main::line#45 Inlining constant with different constant siblings (const byte) main::line#47 Inlining constant with different constant siblings (const byte) main::line#49 -Constant inlined main::$50 = ++++++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$51 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$12 = ++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$13 = (const byte*) main::SCREEN#0+++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$14 = ++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$15 = (const byte*) main::SCREEN#0+++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$10 = ++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$11 = (const byte*) main::SCREEN#0+++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$50 = ++++++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$51 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$12 = ++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$13 = (const byte*) main::SCREEN#0+++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$14 = ++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$15 = (const byte*) main::SCREEN#0+++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$10 = ++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$11 = (const byte*) main::SCREEN#0+++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#43 = ++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#45 = ++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$16 = ++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$17 = (const byte*) main::SCREEN#0+++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$18 = ++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$16 = ++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$17 = (const byte*) main::SCREEN#0+++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$18 = ++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#41 = ++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$19 = (const byte*) main::SCREEN#0+++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$19 = (const byte*) main::SCREEN#0+++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#5 = ++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#47 = ++++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#1 = ++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#49 = ++++++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$40 = ++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$40 = ++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#9 = ++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#7 = ++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$45 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$46 = ++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$47 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$48 = ++++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$41 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$42 = ++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$43 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$44 = ++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$45 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$46 = ++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$47 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$48 = ++++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$41 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$42 = ++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$43 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$44 = ++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#11 = ++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$49 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$49 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#17 = ++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#19 = ++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#13 = ++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#15 = ++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$34 = ++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$35 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$36 = ++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$37 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$30 = ++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$31 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$32 = ++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$33 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$34 = ++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$35 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$36 = ++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$37 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$30 = ++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$31 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$32 = ++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$33 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#21 = ++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#23 = ++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$38 = ++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$39 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$38 = ++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$39 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#29 = ++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#25 = ++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#27 = ++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$23 = (const byte*) main::SCREEN#0+++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$24 = ++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$25 = (const byte*) main::SCREEN#0+++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$23 = (const byte*) main::SCREEN#0+++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$24 = ++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$25 = (const byte*) main::SCREEN#0+++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$26 = ++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$20 = ++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$21 = (const byte*) main::SCREEN#0+++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$22 = ++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$26 = ++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$20 = ++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$21 = (const byte*) main::SCREEN#0+++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$22 = ++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#31 = ++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::line#33 = ++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$1 = (byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$27 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$2 = (const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$28 = ++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$29 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$5 = (const byte*) main::SCREEN#0+++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$6 = ++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$1 = (byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$27 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$2 = (const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$28 = ++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$29 = (const byte*) main::SCREEN#0+++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$5 = (const byte*) main::SCREEN#0+++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$6 = ++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#39 = ++++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$4 = ++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$9 = (const byte*) main::SCREEN#0+++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$4 = ++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$9 = (const byte*) main::SCREEN#0+++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#35 = ++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$7 = (const byte*) main::SCREEN#0+++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 -Constant inlined main::$8 = ++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined main::$7 = (const byte*) main::SCREEN#0+++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 +Constant inlined main::$8 = ++++++(byte/signed byte/word/signed word/dword/signed dword) 0*(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::line#37 = ++++++++++++++++++++++++++++++++++++(byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining -Simplifying constant multiply by zero 0*40 +Simplifying constant multiply by zero 0*$28 Simplifying constant integer increment ++0 Simplifying constant integer increment ++0 Simplifying constant integer increment ++1 @@ -568,19 +568,19 @@ Simplifying constant integer increment ++6 Simplifying constant integer increment ++7 Simplifying constant integer increment ++8 Simplifying constant integer increment ++9 -Simplifying constant integer increment ++10 -Simplifying constant integer increment ++11 -Simplifying constant integer increment ++12 -Simplifying constant integer increment ++13 -Simplifying constant integer increment ++14 -Simplifying constant integer increment ++15 -Simplifying constant integer increment ++16 -Simplifying constant integer increment ++17 -Simplifying constant integer increment ++18 -Simplifying constant integer increment ++19 -Simplifying constant integer increment ++20 -Simplifying constant integer increment ++21 -Simplifying constant integer increment ++22 +Simplifying constant integer increment ++$a +Simplifying constant integer increment ++$b +Simplifying constant integer increment ++$c +Simplifying constant integer increment ++$d +Simplifying constant integer increment ++$e +Simplifying constant integer increment ++$f +Simplifying constant integer increment ++$10 +Simplifying constant integer increment ++$11 +Simplifying constant integer increment ++$12 +Simplifying constant integer increment ++$13 +Simplifying constant integer increment ++$14 +Simplifying constant integer increment ++$15 +Simplifying constant integer increment ++$16 Successful SSA optimization Pass2ConstantSimplification Simplifying constant plus zero main::SCREEN#0+0 Simplifying constant integer increment ++1 @@ -592,20 +592,20 @@ Simplifying constant integer increment ++6 Simplifying constant integer increment ++7 Simplifying constant integer increment ++8 Simplifying constant integer increment ++9 -Simplifying constant integer increment ++10 -Simplifying constant integer increment ++11 -Simplifying constant integer increment ++12 -Simplifying constant integer increment ++13 -Simplifying constant integer increment ++14 -Simplifying constant integer increment ++15 -Simplifying constant integer increment ++16 -Simplifying constant integer increment ++17 -Simplifying constant integer increment ++18 -Simplifying constant integer increment ++19 -Simplifying constant integer increment ++20 -Simplifying constant integer increment ++21 -Simplifying constant integer increment ++22 -Simplifying constant integer increment ++23 +Simplifying constant integer increment ++$a +Simplifying constant integer increment ++$b +Simplifying constant integer increment ++$c +Simplifying constant integer increment ++$d +Simplifying constant integer increment ++$e +Simplifying constant integer increment ++$f +Simplifying constant integer increment ++$10 +Simplifying constant integer increment ++$11 +Simplifying constant integer increment ++$12 +Simplifying constant integer increment ++$13 +Simplifying constant integer increment ++$14 +Simplifying constant integer increment ++$15 +Simplifying constant integer increment ++$16 +Simplifying constant integer increment ++$17 Successful SSA optimization Pass2ConstantSimplification Added new block during phi lifting main::@9(between main::@4 and main::@1) Adding NOP phi() at start of @begin @@ -644,80 +644,80 @@ main::@3: scope:[main] from main::@1 [6] *((const byte*) main::SCREEN#0 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_1 main::@3_1: scope:[main] from main::@3 - [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_2 main::@3_2: scope:[main] from main::@3_1 - [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_3 main::@3_3: scope:[main] from main::@3_2 - [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_4 main::@3_4: scope:[main] from main::@3_3 - [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_5 main::@3_5: scope:[main] from main::@3_4 - [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_6 main::@3_6: scope:[main] from main::@3_5 - [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_7 main::@3_7: scope:[main] from main::@3_6 - [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_8 main::@3_8: scope:[main] from main::@3_7 - [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_9 main::@3_9: scope:[main] from main::@3_8 - [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_10 main::@3_10: scope:[main] from main::@3_9 - [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_11 main::@3_11: scope:[main] from main::@3_10 - [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 11*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $b*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_12 main::@3_12: scope:[main] from main::@3_11 - [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 12*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $c*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_13 main::@3_13: scope:[main] from main::@3_12 - [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 13*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $d*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_14 main::@3_14: scope:[main] from main::@3_13 - [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 14*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $e*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_15 main::@3_15: scope:[main] from main::@3_14 - [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $f*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_16 main::@3_16: scope:[main] from main::@3_15 - [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 16*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $10*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_17 main::@3_17: scope:[main] from main::@3_16 - [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 17*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $11*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_18 main::@3_18: scope:[main] from main::@3_17 - [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 18*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $12*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_19 main::@3_19: scope:[main] from main::@3_18 - [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 19*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $13*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_20 main::@3_20: scope:[main] from main::@3_19 - [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 20*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $14*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_21 main::@3_21: scope:[main] from main::@3_20 - [27] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 21*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [27] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $15*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_22 main::@3_22: scope:[main] from main::@3_21 - [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 22*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $16*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_23 main::@3_23: scope:[main] from main::@3_22 - [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 23*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $17*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@3_24 main::@3_24: scope:[main] from main::@3_23 - [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 24*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 + [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $18*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 to:main::@4 main::@4: scope:[main] from main::@3_24 [31] (byte) main::x#1 ← ++ (byte) main::x#5 - [32] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 + [32] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 to:main::@return main::@return: scope:[main] from main::@4 [33] return @@ -788,168 +788,168 @@ main: { jmp b3_1 //SEG18 main::@3_1 b3_1: - //SEG19 [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG19 [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+1*$28,y jmp b3_2 //SEG20 main::@3_2 b3_2: - //SEG21 [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG21 [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+2*$28,y jmp b3_3 //SEG22 main::@3_3 b3_3: - //SEG23 [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG23 [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+3*$28,y jmp b3_4 //SEG24 main::@3_4 b3_4: - //SEG25 [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG25 [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+4*$28,y jmp b3_5 //SEG26 main::@3_5 b3_5: - //SEG27 [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG27 [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+5*$28,y jmp b3_6 //SEG28 main::@3_6 b3_6: - //SEG29 [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG29 [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+6*$28,y jmp b3_7 //SEG30 main::@3_7 b3_7: - //SEG31 [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG31 [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+7*$28,y jmp b3_8 //SEG32 main::@3_8 b3_8: - //SEG33 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG33 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+8*$28,y jmp b3_9 //SEG34 main::@3_9 b3_9: - //SEG35 [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG35 [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+9*$28,y jmp b3_10 //SEG36 main::@3_10 b3_10: - //SEG37 [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG37 [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$a*$28,y jmp b3_11 //SEG38 main::@3_11 b3_11: - //SEG39 [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 11*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG39 [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $b*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$b*$28,y jmp b3_12 //SEG40 main::@3_12 b3_12: - //SEG41 [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 12*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG41 [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $c*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$c*$28,y jmp b3_13 //SEG42 main::@3_13 b3_13: - //SEG43 [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 13*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG43 [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $d*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$d*$28,y jmp b3_14 //SEG44 main::@3_14 b3_14: - //SEG45 [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 14*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG45 [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $e*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$e*$28,y jmp b3_15 //SEG46 main::@3_15 b3_15: - //SEG47 [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG47 [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $f*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$f*$28,y jmp b3_16 //SEG48 main::@3_16 b3_16: - //SEG49 [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 16*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG49 [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $10*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$10*$28,y jmp b3_17 //SEG50 main::@3_17 b3_17: - //SEG51 [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 17*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG51 [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $11*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$11*$28,y jmp b3_18 //SEG52 main::@3_18 b3_18: - //SEG53 [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 18*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG53 [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $12*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$12*$28,y jmp b3_19 //SEG54 main::@3_19 b3_19: - //SEG55 [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 19*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG55 [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $13*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$13*$28,y jmp b3_20 //SEG56 main::@3_20 b3_20: - //SEG57 [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 20*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG57 [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $14*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$14*$28,y jmp b3_21 //SEG58 main::@3_21 b3_21: - //SEG59 [27] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 21*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG59 [27] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $15*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$15*$28,y jmp b3_22 //SEG60 main::@3_22 b3_22: - //SEG61 [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 22*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG61 [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $16*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$16*$28,y jmp b3_23 //SEG62 main::@3_23 b3_23: - //SEG63 [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 23*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG63 [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $17*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$17*$28,y jmp b3_24 //SEG64 main::@3_24 b3_24: - //SEG65 [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 24*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 + //SEG65 [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $18*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuz1=vbuz1 ldy x tya sta SCREEN+$18*$28,y @@ -958,7 +958,7 @@ main: { b4: //SEG67 [31] (byte) main::x#1 ← ++ (byte) main::x#5 -- vbuz1=_inc_vbuz1 inc x - //SEG68 [32] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG68 [32] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #$28 bne b1_from_b4 @@ -1026,145 +1026,145 @@ main: { jmp b3_1 //SEG18 main::@3_1 b3_1: - //SEG19 [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG19 [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+1*$28,x jmp b3_2 //SEG20 main::@3_2 b3_2: - //SEG21 [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG21 [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+2*$28,x jmp b3_3 //SEG22 main::@3_3 b3_3: - //SEG23 [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG23 [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+3*$28,x jmp b3_4 //SEG24 main::@3_4 b3_4: - //SEG25 [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG25 [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+4*$28,x jmp b3_5 //SEG26 main::@3_5 b3_5: - //SEG27 [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG27 [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+5*$28,x jmp b3_6 //SEG28 main::@3_6 b3_6: - //SEG29 [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG29 [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+6*$28,x jmp b3_7 //SEG30 main::@3_7 b3_7: - //SEG31 [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG31 [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+7*$28,x jmp b3_8 //SEG32 main::@3_8 b3_8: - //SEG33 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG33 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+8*$28,x jmp b3_9 //SEG34 main::@3_9 b3_9: - //SEG35 [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG35 [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+9*$28,x jmp b3_10 //SEG36 main::@3_10 b3_10: - //SEG37 [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG37 [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$a*$28,x jmp b3_11 //SEG38 main::@3_11 b3_11: - //SEG39 [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 11*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG39 [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $b*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$b*$28,x jmp b3_12 //SEG40 main::@3_12 b3_12: - //SEG41 [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 12*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG41 [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $c*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$c*$28,x jmp b3_13 //SEG42 main::@3_13 b3_13: - //SEG43 [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 13*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG43 [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $d*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$d*$28,x jmp b3_14 //SEG44 main::@3_14 b3_14: - //SEG45 [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 14*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG45 [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $e*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$e*$28,x jmp b3_15 //SEG46 main::@3_15 b3_15: - //SEG47 [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG47 [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $f*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$f*$28,x jmp b3_16 //SEG48 main::@3_16 b3_16: - //SEG49 [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 16*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG49 [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $10*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$10*$28,x jmp b3_17 //SEG50 main::@3_17 b3_17: - //SEG51 [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 17*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG51 [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $11*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$11*$28,x jmp b3_18 //SEG52 main::@3_18 b3_18: - //SEG53 [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 18*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG53 [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $12*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$12*$28,x jmp b3_19 //SEG54 main::@3_19 b3_19: - //SEG55 [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 19*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG55 [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $13*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$13*$28,x jmp b3_20 //SEG56 main::@3_20 b3_20: - //SEG57 [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 20*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG57 [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $14*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$14*$28,x jmp b3_21 //SEG58 main::@3_21 b3_21: - //SEG59 [27] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 21*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG59 [27] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $15*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$15*$28,x jmp b3_22 //SEG60 main::@3_22 b3_22: - //SEG61 [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 22*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG61 [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $16*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$16*$28,x jmp b3_23 //SEG62 main::@3_23 b3_23: - //SEG63 [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 23*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG63 [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $17*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$17*$28,x jmp b3_24 //SEG64 main::@3_24 b3_24: - //SEG65 [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 24*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG65 [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $18*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$18*$28,x jmp b4 @@ -1172,7 +1172,7 @@ main: { b4: //SEG67 [31] (byte) main::x#1 ← ++ (byte) main::x#5 -- vbuxx=_inc_vbuxx inx - //SEG68 [32] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG68 [32] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b1_from_b4 jmp breturn @@ -1294,7 +1294,7 @@ FINAL SYMBOL TABLE (label) main::@4 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::line (byte) main::x (byte) main::x#1 reg byte x 16.5 @@ -1335,105 +1335,105 @@ main: { txa sta SCREEN,x //SEG18 main::@3_1 - //SEG19 [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG19 [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+1*$28,x //SEG20 main::@3_2 - //SEG21 [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG21 [8] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+2*$28,x //SEG22 main::@3_3 - //SEG23 [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG23 [9] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+3*$28,x //SEG24 main::@3_4 - //SEG25 [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG25 [10] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+4*$28,x //SEG26 main::@3_5 - //SEG27 [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG27 [11] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 5*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+5*$28,x //SEG28 main::@3_6 - //SEG29 [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG29 [12] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+6*$28,x //SEG30 main::@3_7 - //SEG31 [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG31 [13] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 7*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+7*$28,x //SEG32 main::@3_8 - //SEG33 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG33 [14] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 8*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+8*$28,x //SEG34 main::@3_9 - //SEG35 [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG35 [15] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 9*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+9*$28,x //SEG36 main::@3_10 - //SEG37 [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 10*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG37 [16] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $a*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$a*$28,x //SEG38 main::@3_11 - //SEG39 [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 11*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG39 [17] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $b*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$b*$28,x //SEG40 main::@3_12 - //SEG41 [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 12*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG41 [18] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $c*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$c*$28,x //SEG42 main::@3_13 - //SEG43 [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 13*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG43 [19] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $d*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$d*$28,x //SEG44 main::@3_14 - //SEG45 [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 14*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG45 [20] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $e*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$e*$28,x //SEG46 main::@3_15 - //SEG47 [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG47 [21] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $f*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$f*$28,x //SEG48 main::@3_16 - //SEG49 [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 16*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG49 [22] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $10*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$10*$28,x //SEG50 main::@3_17 - //SEG51 [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 17*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG51 [23] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $11*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$11*$28,x //SEG52 main::@3_18 - //SEG53 [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 18*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG53 [24] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $12*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$12*$28,x //SEG54 main::@3_19 - //SEG55 [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 19*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG55 [25] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $13*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$13*$28,x //SEG56 main::@3_20 - //SEG57 [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 20*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG57 [26] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $14*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$14*$28,x //SEG58 main::@3_21 - //SEG59 [27] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 21*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG59 [27] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $15*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$15*$28,x //SEG60 main::@3_22 - //SEG61 [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 22*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG61 [28] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $16*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$16*$28,x //SEG62 main::@3_23 - //SEG63 [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 23*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG63 [29] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $17*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$17*$28,x //SEG64 main::@3_24 - //SEG65 [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 24*(byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx + //SEG65 [30] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) $18*(byte/signed byte/word/signed word/dword/signed dword) $28 + (byte) main::x#5) ← (byte) main::x#5 -- pbuc1_derefidx_vbuxx=vbuxx txa sta SCREEN+$18*$28,x //SEG66 main::@4 //SEG67 [31] (byte) main::x#1 ← ++ (byte) main::x#5 -- vbuxx=_inc_vbuxx inx - //SEG68 [32] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG68 [32] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b3 //SEG69 main::@return diff --git a/src/test/ref/unroll-screenfill-while.sym b/src/test/ref/unroll-screenfill-while.sym index 54f1c0214..627a3f99d 100644 --- a/src/test/ref/unroll-screenfill-while.sym +++ b/src/test/ref/unroll-screenfill-while.sym @@ -31,7 +31,7 @@ (label) main::@4 (label) main::@return (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::line (byte) main::x (byte) main::x#1 reg byte x 16.5 diff --git a/src/test/ref/unused-method.log b/src/test/ref/unused-method.log index 5badf52c1..df0d1de36 100644 --- a/src/test/ref/unused-method.log +++ b/src/test/ref/unused-method.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@2 main: scope:[main] from @2 - (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 *((byte*) main::screen#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:main::@return main::@return: scope:[main] from main @@ -28,7 +28,7 @@ SYMBOL TABLE SSA Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks -Constant (const byte*) main::screen#0 = ((byte*))1024 +Constant (const byte*) main::screen#0 = ((byte*))$400 Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(main::screen#0+0) Successful SSA optimization Pass2ConstantAdditionElimination @@ -173,7 +173,7 @@ FINAL SYMBOL TABLE (void()) main() (label) main::@return (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/unused-method.sym b/src/test/ref/unused-method.sym index f13aaaefd..0a03cd6c2 100644 --- a/src/test/ref/unused-method.sym +++ b/src/test/ref/unused-method.sym @@ -4,5 +4,5 @@ (void()) main() (label) main::@return (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/unused-vars.cfg b/src/test/ref/unused-vars.cfg index 203231843..b5bbd80ba 100644 --- a/src/test/ref/unused-vars.cfg +++ b/src/test/ref/unused-vars.cfg @@ -16,7 +16,7 @@ main::@1: scope:[main] from main main::@1 [7] *((const byte*) main::COLS#0 + (byte) main::i#2) ← (const byte) main::col#0 [8] *((const byte*) SCREEN#0 + (byte) main::i#2) ← ++++(byte/signed byte/word/signed word/dword/signed dword) 2>>(byte/signed byte/word/signed word/dword/signed dword) 1 [9] (byte) main::i#1 ← ++ (byte) main::i#2 - [10] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 + [10] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [11] return diff --git a/src/test/ref/unused-vars.log b/src/test/ref/unused-vars.log index 1fb8e639b..016eb6098 100644 --- a/src/test/ref/unused-vars.log +++ b/src/test/ref/unused-vars.log @@ -1,21 +1,21 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte/signed byte/word/signed word/dword/signed dword~) $0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) b#0 ← (byte/signed byte/word/signed word/dword/signed dword~) $0 - (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 + (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) $d021 (byte[]) msg#0 ← (const string) $1 (byte[]) arr#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 9 } (byte) c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) c2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - (word) d#0 ← (word/signed word/dword/signed dword) 1000 + (word) d#0 ← (word/signed word/dword/signed dword) $3e8 to:@2 main: scope:[main] from @2 (word) d#2 ← phi( @2/(word) d#3 ) (byte) b#13 ← phi( @2/(byte) b#14 ) (byte) main::col#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte*) main::COLS#0 ← ((byte*)) (word/dword/signed dword) 55296 + (byte*) main::COLS#0 ← ((byte*)) (word/dword/signed dword) $d800 (byte/signed byte/word/signed word/dword/signed dword~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 3 + (byte/signed byte/word/signed word/dword/signed dword) 3 (byte/signed word/word/dword/signed dword/signed byte~) main::$1 ← (byte/signed byte/word/signed word/dword/signed dword~) main::$0 + (byte/signed byte/word/signed word/dword/signed dword) 3 call s @@ -31,7 +31,7 @@ main::@3: scope:[main] from main (byte) b#1 ← (byte) b#7 (byte/signed word/word/dword/signed dword~) main::$3 ← (byte/signed word/word/dword/signed dword/signed byte~) main::$1 + (byte~) main::$2 (byte) main::e#0 ← (byte/signed word/word/dword/signed dword~) main::$3 - (word/signed word/dword/signed dword~) main::$4 ← (word/signed word/dword/signed dword) 2000 + (word/signed word/dword/signed dword) 2000 + (word/signed word/dword/signed dword~) main::$4 ← (word/signed word/dword/signed dword) $7d0 + (word/signed word/dword/signed dword) $7d0 (word/signed dword/dword~) main::$5 ← (word/signed word/dword/signed dword~) main::$4 + (word) d#1 (word/signed dword/dword~) main::$6 ← (word/signed dword/dword~) main::$5 + (byte) b#1 (word) main::f#0 ← (word/signed dword/dword~) main::$6 @@ -45,12 +45,12 @@ main::@1: scope:[main] from main::@1 main::@3 (byte) main::i#2 ← phi( main::@1/(byte) main::i#1 main::@3/(byte) main::i#0 ) (byte*) main::COLS#1 ← phi( main::@1/(byte*) main::COLS#1 main::@3/(byte*) main::COLS#2 ) (byte) main::col#1 ← phi( main::@1/(byte) main::col#1 main::@3/(byte) main::col#2 ) - (signed byte/signed word/signed dword~) main::$7 ← - (byte/signed byte/word/signed word/dword/signed dword) 13 + (signed byte/signed word/signed dword~) main::$7 ← - (byte/signed byte/word/signed word/dword/signed dword) $d (signed byte) main::x#0 ← (signed byte/signed word/signed dword~) main::$7 *((byte*) main::COLS#1 + (byte) main::i#2) ← (byte) main::col#1 *((byte*) SCREEN#0 + (byte) main::i#2) ← (byte) b#8 - (byte) main::i#1 ← (byte) main::i#2 + rangenext(0,100) - (bool~) main::$8 ← (byte) main::i#1 != rangelast(0,100) + (byte) main::i#1 ← (byte) main::i#2 + rangenext(0,$64) + (bool~) main::$8 ← (byte) main::i#1 != rangelast(0,$64) if((bool~) main::$8) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 @@ -194,24 +194,24 @@ Redundant Phi (byte) b#3 (byte) b#2 Redundant Phi (byte) b#10 (byte) b#13 Redundant Phi (byte) b#12 (byte) b#3 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$8 [36] if((byte) main::i#1!=rangelast(0,100)) goto main::@1 +Simple Condition (bool~) main::$8 [36] if((byte) main::i#1!=rangelast(0,$64)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Constant (const byte) b#0 = 2>>1 -Constant (const byte*) BGCOL#0 = ((byte*))53281 +Constant (const byte*) BGCOL#0 = ((byte*))$d021 Constant (const byte[]) msg#0 = $1 Constant (const byte[]) arr#0 = { 7, 8, 9 } Constant (const byte) c#0 = 1 Constant (const byte) c2#0 = 1 -Constant (const word) d#0 = 1000 +Constant (const word) d#0 = $3e8 Constant (const byte) main::col#0 = 2 -Constant (const byte*) main::COLS#0 = ((byte*))55296 +Constant (const byte*) main::COLS#0 = ((byte*))$d800 Constant (const byte/signed byte/word/signed word/dword/signed dword) main::$0 = 3+3 -Constant (const word/signed word/dword/signed dword) main::$4 = 2000+2000 +Constant (const word/signed word/dword/signed dword) main::$4 = $7d0+$7d0 Constant (const byte[]) main::g#0 = { 4, 5, 6 } Constant (const byte[]) main::h#0 = main::$9 Constant (const byte) main::i#0 = 0 -Constant (const signed byte) main::x#0 = -13 +Constant (const signed byte) main::x#0 = -$d Constant (const byte) s::return#1 = 2 Successful SSA optimization Pass2ConstantIdentification Constant (const byte/signed word/word/dword/signed dword/signed byte) main::$1 = main::$0+3 @@ -230,7 +230,7 @@ Successful SSA optimization PassNEliminateUnusedVars Successful SSA optimization PassNEliminateUnusedVars Successful SSA optimization PassNEliminateUnusedVars Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ -Resolved ranged comparison value if(main::i#1!=rangelast(0,100)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 101 +Resolved ranged comparison value if(main::i#1!=rangelast(0,$64)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $65 Culled Empty Block (label) main::@3 Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks @@ -282,7 +282,7 @@ main::@1: scope:[main] from main main::@1 [7] *((const byte*) main::COLS#0 + (byte) main::i#2) ← (const byte) main::col#0 [8] *((const byte*) SCREEN#0 + (byte) main::i#2) ← ++++(byte/signed byte/word/signed word/dword/signed dword) 2>>(byte/signed byte/word/signed word/dword/signed dword) 1 [9] (byte) main::i#1 ← ++ (byte) main::i#2 - [10] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 + [10] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [11] return @@ -381,7 +381,7 @@ main: { sta SCREEN,y //SEG20 [9] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG21 [10] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG21 [10] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$65 bne b1_from_b1 @@ -470,7 +470,7 @@ main: { sta SCREEN,x //SEG20 [9] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG21 [10] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG21 [10] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$65 bne b1_from_b1 jmp breturn @@ -522,7 +522,7 @@ FINAL SYMBOL TABLE (label) @end (byte*) BGCOL (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte[]) arr (byte) b (byte) c @@ -532,7 +532,7 @@ FINAL SYMBOL TABLE (label) main::@1 (label) main::@return (byte*) main::COLS -(const byte*) main::COLS#0 COLS = ((byte*))(word/dword/signed dword) 55296 +(const byte*) main::COLS#0 COLS = ((byte*))(word/dword/signed dword) $d800 (byte) main::col (const byte) main::col#0 col = (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) main::e @@ -592,7 +592,7 @@ main: { sta SCREEN,x //SEG20 [9] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG21 [10] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG21 [10] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$65 bne b1 //SEG22 main::@return diff --git a/src/test/ref/unused-vars.sym b/src/test/ref/unused-vars.sym index cdb2e5a88..be61b00e0 100644 --- a/src/test/ref/unused-vars.sym +++ b/src/test/ref/unused-vars.sym @@ -3,7 +3,7 @@ (label) @end (byte*) BGCOL (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte[]) arr (byte) b (byte) c @@ -13,7 +13,7 @@ (label) main::@1 (label) main::@return (byte*) main::COLS -(const byte*) main::COLS#0 COLS = ((byte*))(word/dword/signed dword) 55296 +(const byte*) main::COLS#0 COLS = ((byte*))(word/dword/signed dword) $d800 (byte) main::col (const byte) main::col#0 col = (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) main::e diff --git a/src/test/ref/unusedblockproblem.log b/src/test/ref/unusedblockproblem.log index 79b9fc889..030099e18 100644 --- a/src/test/ref/unusedblockproblem.log +++ b/src/test/ref/unusedblockproblem.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:main::@1 main::@1: scope:[main] from main main::@2 (byte*) main::SCREEN#3 ← phi( main/(byte*) main::SCREEN#0 main::@2/(byte*) main::SCREEN#1 ) @@ -21,8 +21,8 @@ main::@4: scope:[main] from main::@3 main::@4 (byte*) main::SCREEN#2 ← phi( main::@3/(byte*) main::SCREEN#4 main::@4/(byte*) main::SCREEN#2 ) (byte) main::line#2 ← phi( main::@3/(byte) main::line#0 main::@4/(byte) main::line#1 ) *((byte*) main::SCREEN#2 + (byte) main::line#2) ← (byte) main::line#2 - (byte) main::line#1 ← (byte) main::line#2 + rangenext(0,24) - (bool~) main::$0 ← (byte) main::line#1 != rangelast(0,24) + (byte) main::line#1 ← (byte) main::line#2 + rangenext(0,$18) + (bool~) main::$0 ← (byte) main::line#1 != rangelast(0,$18) if((bool~) main::$0) goto main::@4 to:main::@return main::@return: scope:[main] from main::@4 @@ -68,9 +68,9 @@ Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) main::SCREEN#1 (byte*) main::SCREEN#0 Redundant Phi (byte*) main::SCREEN#2 (byte*) main::SCREEN#1 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$0 [11] if((byte) main::line#1!=rangelast(0,24)) goto main::@4 +Simple Condition (bool~) main::$0 [11] if((byte) main::line#1!=rangelast(0,$18)) goto main::@4 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) main::SCREEN#0 = ((byte*))1024 +Constant (const byte*) main::SCREEN#0 = ((byte*))$400 Constant (const byte) main::line#0 = 0 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [0] if(true) goto main::@2 @@ -229,7 +229,7 @@ FINAL SYMBOL TABLE (void()) main() (label) main::@2 (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::line diff --git a/src/test/ref/unusedblockproblem.sym b/src/test/ref/unusedblockproblem.sym index de328ff6a..888e51948 100644 --- a/src/test/ref/unusedblockproblem.sym +++ b/src/test/ref/unusedblockproblem.sym @@ -4,6 +4,6 @@ (void()) main() (label) main::@2 (byte*) main::SCREEN -(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) main::line diff --git a/src/test/ref/useglobal.log b/src/test/ref/useglobal.log index e205eccd3..b10c3d1a0 100644 --- a/src/test/ref/useglobal.log +++ b/src/test/ref/useglobal.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 to:@1 main: scope:[main] from @1 (byte*) SCREEN#1 ← phi( @1/(byte*) SCREEN#2 ) @@ -36,7 +36,7 @@ Alias (byte*) SCREEN#0 = (byte*) SCREEN#2 Successful SSA optimization Pass2AliasElimination Redundant Phi (byte*) SCREEN#1 (byte*) SCREEN#0 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) SCREEN#0 = ((byte*))$400 Successful SSA optimization Pass2ConstantIdentification Adding NOP phi() at start of @begin Adding NOP phi() at start of @1 @@ -178,7 +178,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@return diff --git a/src/test/ref/useglobal.sym b/src/test/ref/useglobal.sym index a5a6b884e..bae27d9bf 100644 --- a/src/test/ref/useglobal.sym +++ b/src/test/ref/useglobal.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (void()) main() (label) main::@return diff --git a/src/test/ref/useuninitialized.log b/src/test/ref/useuninitialized.log index f3da2f4e4..17b1062db 100644 --- a/src/test/ref/useuninitialized.log +++ b/src/test/ref/useuninitialized.log @@ -10,7 +10,7 @@ main: scope:[main] from @1 (byte/signed word/word/dword/signed dword~) main::$0 ← (byte) b#4 + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) s#1 ← (byte/signed word/word/dword/signed dword~) main::$0 (byte) b#1 ← (byte/signed byte/word/signed word/dword/signed dword) 3 - (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) main::screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 *((byte*) main::screen#0) ← (byte) b#1 (byte*~) main::$1 ← (byte*) main::screen#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 *((byte*~) main::$1) ← (byte) s#1 @@ -81,7 +81,7 @@ Constant (const byte) b#0 = 0 Constant (const byte) s#0 = 0 Constant (const byte) w#0 = 2 Constant (const byte) b#1 = 3 -Constant (const byte*) main::screen#0 = ((byte*))1024 +Constant (const byte*) main::screen#0 = ((byte*))$400 Successful SSA optimization Pass2ConstantIdentification Constant (const byte) s#1 = b#0+1 Constant (const byte*) main::$1 = main::screen#0+1 @@ -252,7 +252,7 @@ FINAL SYMBOL TABLE (void()) main() (label) main::@return (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 (byte) s (const byte) s#1 s = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) w diff --git a/src/test/ref/useuninitialized.sym b/src/test/ref/useuninitialized.sym index 2b2122ecf..0d7a9ae1c 100644 --- a/src/test/ref/useuninitialized.sym +++ b/src/test/ref/useuninitialized.sym @@ -5,7 +5,7 @@ (void()) main() (label) main::@return (byte*) main::screen -(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) main::screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 (byte) s (const byte) s#1 s = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) w diff --git a/src/test/ref/var-forward-problem.log b/src/test/ref/var-forward-problem.log index ebad8ea67..7081ef8d5 100644 --- a/src/test/ref/var-forward-problem.log +++ b/src/test/ref/var-forward-problem.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main return to:@return @1: scope:[] from @begin - (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) b#0 ← (byte) 'a' call main to:@2 @@ -33,7 +33,7 @@ SYMBOL TABLE SSA Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks -Constant (const byte*) screen#0 = ((byte*))1024 +Constant (const byte*) screen#0 = ((byte*))$400 Constant (const byte) b#0 = 'a' Successful SSA optimization Pass2ConstantIdentification Adding NOP phi() at start of @begin @@ -183,7 +183,7 @@ FINAL SYMBOL TABLE (void()) main() (label) main::@return (byte*) screen -(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/var-forward-problem.sym b/src/test/ref/var-forward-problem.sym index b92799dd2..c286bc4f5 100644 --- a/src/test/ref/var-forward-problem.sym +++ b/src/test/ref/var-forward-problem.sym @@ -6,5 +6,5 @@ (void()) main() (label) main::@return (byte*) screen -(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/var-forward-problem2.log b/src/test/ref/var-forward-problem2.log index 5e3dd8b67..7fac2d12b 100644 --- a/src/test/ref/var-forward-problem2.log +++ b/src/test/ref/var-forward-problem2.log @@ -7,7 +7,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte) b#0 ← (byte) 'a' *((byte*) screen#0) ← (byte) b#0 to:main::@return @@ -61,7 +61,7 @@ Successful SSA optimization Pass2AliasElimination Redundant Phi (byte*) screen#3 (byte*) screen#0 Redundant Phi (byte) b#3 (byte) b#0 Successful SSA optimization Pass2RedundantPhiElimination -Constant (const byte*) screen#0 = ((byte*))1024 +Constant (const byte*) screen#0 = ((byte*))$400 Constant (const byte) b#0 = 'a' Constant (const byte*) screen#2 = 0 Constant (const byte) b#2 = 0 @@ -216,7 +216,7 @@ FINAL SYMBOL TABLE (void()) main() (label) main::@return (byte*) screen -(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/var-forward-problem2.sym b/src/test/ref/var-forward-problem2.sym index b92799dd2..c286bc4f5 100644 --- a/src/test/ref/var-forward-problem2.sym +++ b/src/test/ref/var-forward-problem2.sym @@ -6,5 +6,5 @@ (void()) main() (label) main::@return (byte*) screen -(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/var-init-problem.log b/src/test/ref/var-init-problem.log index 737167298..8115bec7b 100644 --- a/src/test/ref/var-init-problem.log +++ b/src/test/ref/var-init-problem.log @@ -4,7 +4,7 @@ CONTROL FLOW GRAPH SSA (byte*) screen#0 ← (byte*) 0 to:@1 main: scope:[main] from @1 - (byte*) screen#1 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) screen#1 ← ((byte*)) (word/signed word/dword/signed dword) $400 *((byte*) screen#1) ← (byte) 'a' to:main::@return main::@return: scope:[main] from main @@ -45,7 +45,7 @@ Successful SSA optimization Pass2AliasElimination Redundant Phi (byte*) screen#3 (byte*) screen#1 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte*) screen#0 = 0 -Constant (const byte*) screen#1 = ((byte*))1024 +Constant (const byte*) screen#1 = ((byte*))$400 Successful SSA optimization Pass2ConstantIdentification Successful SSA optimization PassNEliminateUnusedVars Culled Empty Block (label) @2 @@ -192,7 +192,7 @@ FINAL SYMBOL TABLE (void()) main() (label) main::@return (byte*) screen -(const byte*) screen#1 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#1 screen = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/var-init-problem.sym b/src/test/ref/var-init-problem.sym index b89205d2a..07605e092 100644 --- a/src/test/ref/var-init-problem.sym +++ b/src/test/ref/var-init-problem.sym @@ -4,5 +4,5 @@ (void()) main() (label) main::@return (byte*) screen -(const byte*) screen#1 screen = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) screen#1 screen = ((byte*))(word/signed word/dword/signed dword) $400 diff --git a/src/test/ref/var-register.cfg b/src/test/ref/var-register.cfg index ed70e0f64..dea83691e 100644 --- a/src/test/ref/var-register.cfg +++ b/src/test/ref/var-register.cfg @@ -25,15 +25,15 @@ main::@3: scope:[main] from main::@2 main::@7 to:main::@7 main::@7: scope:[main] from main::@3 [12] (byte) main::a#1 ← ++ (byte) main::a#2 - [13] if((byte) main::a#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@3 + [13] if((byte) main::a#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@3 to:main::@4 main::@4: scope:[main] from main::@7 [14] (byte) main::y#1 ← ++ (byte) main::y#4 - [15] if((byte) main::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@2 + [15] if((byte) main::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@2 to:main::@5 main::@5: scope:[main] from main::@4 [16] (byte) main::x#1 ← ++ (byte) main::x#7 - [17] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 + [17] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 to:main::@return main::@return: scope:[main] from main::@5 [18] return diff --git a/src/test/ref/var-register.log b/src/test/ref/var-register.log index 73079868b..9f130c57d 100644 --- a/src/test/ref/var-register.log +++ b/src/test/ref/var-register.log @@ -28,21 +28,21 @@ main::@7: scope:[main] from main::@3 (byte) main::y#5 ← phi( main::@3/(byte) main::y#2 ) (byte) main::x#5 ← phi( main::@3/(byte) main::x#2 ) (byte) main::a#3 ← phi( main::@3/(byte) main::a#2 ) - (byte) main::a#1 ← (byte) main::a#3 + rangenext(0,100) - (bool~) main::$2 ← (byte) main::a#1 != rangelast(0,100) + (byte) main::a#1 ← (byte) main::a#3 + rangenext(0,$64) + (bool~) main::$2 ← (byte) main::a#1 != rangelast(0,$64) if((bool~) main::$2) goto main::@3 to:main::@4 main::@4: scope:[main] from main::@7 (byte) main::x#6 ← phi( main::@7/(byte) main::x#5 ) (byte) main::y#3 ← phi( main::@7/(byte) main::y#5 ) - (byte) main::y#1 ← (byte) main::y#3 + rangenext(0,100) - (bool~) main::$3 ← (byte) main::y#1 != rangelast(0,100) + (byte) main::y#1 ← (byte) main::y#3 + rangenext(0,$64) + (bool~) main::$3 ← (byte) main::y#1 != rangelast(0,$64) if((bool~) main::$3) goto main::@2 to:main::@5 main::@5: scope:[main] from main::@4 (byte) main::x#3 ← phi( main::@4/(byte) main::x#6 ) - (byte) main::x#1 ← (byte) main::x#3 + rangenext(0,100) - (bool~) main::$4 ← (byte) main::x#1 != rangelast(0,100) + (byte) main::x#1 ← (byte) main::x#3 + rangenext(0,$64) + (bool~) main::$4 ← (byte) main::x#1 != rangelast(0,$64) if((bool~) main::$4) goto main::@1 to:main::@return main::@return: scope:[main] from main::@5 @@ -51,7 +51,7 @@ main::@return: scope:[main] from main::@5 print: scope:[print] from main::@3 (byte) print::idx#1 ← phi( main::@3/(byte) print::idx#0 ) (byte) print::val#1 ← phi( main::@3/(byte) print::val#0 ) - (byte*) print::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) print::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 *((byte*) print::SCREEN#0 + (byte) print::idx#1) ← (byte) print::val#1 to:print::@return print::@return: scope:[print] from print @@ -130,21 +130,21 @@ Redundant Phi (byte) main::y#2 (byte) main::y#4 Redundant Phi (byte) print::val#1 (byte) print::val#0 Redundant Phi (byte) print::idx#1 (byte) print::idx#0 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$2 [14] if((byte) main::a#1!=rangelast(0,100)) goto main::@3 -Simple Condition (bool~) main::$3 [18] if((byte) main::y#1!=rangelast(0,100)) goto main::@2 -Simple Condition (bool~) main::$4 [22] if((byte) main::x#1!=rangelast(0,100)) goto main::@1 +Simple Condition (bool~) main::$2 [14] if((byte) main::a#1!=rangelast(0,$64)) goto main::@3 +Simple Condition (bool~) main::$3 [18] if((byte) main::y#1!=rangelast(0,$64)) goto main::@2 +Simple Condition (bool~) main::$4 [22] if((byte) main::x#1!=rangelast(0,$64)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte) main::x#0 = 0 Constant (const byte) main::y#0 = 0 Constant (const byte) main::a#0 = 0 -Constant (const byte*) print::SCREEN#0 = ((byte*))1024 +Constant (const byte*) print::SCREEN#0 = ((byte*))$400 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::a#1 ← ++ main::a#2 to ++ -Resolved ranged comparison value if(main::a#1!=rangelast(0,100)) goto main::@3 to (byte/signed byte/word/signed word/dword/signed dword) 101 +Resolved ranged comparison value if(main::a#1!=rangelast(0,$64)) goto main::@3 to (byte/signed byte/word/signed word/dword/signed dword) $65 Resolved ranged next value main::y#1 ← ++ main::y#4 to ++ -Resolved ranged comparison value if(main::y#1!=rangelast(0,100)) goto main::@2 to (byte/signed byte/word/signed word/dword/signed dword) 101 +Resolved ranged comparison value if(main::y#1!=rangelast(0,$64)) goto main::@2 to (byte/signed byte/word/signed word/dword/signed dword) $65 Resolved ranged next value main::x#1 ← ++ main::x#4 to ++ -Resolved ranged comparison value if(main::x#1!=rangelast(0,100)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 101 +Resolved ranged comparison value if(main::x#1!=rangelast(0,$64)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $65 Self Phi Eliminated (byte) main::x#4 Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte) main::x#4 (byte) main::x#7 @@ -208,15 +208,15 @@ main::@3: scope:[main] from main::@2 main::@7 to:main::@7 main::@7: scope:[main] from main::@3 [12] (byte) main::a#1 ← ++ (byte) main::a#2 - [13] if((byte) main::a#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@3 + [13] if((byte) main::a#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@3 to:main::@4 main::@4: scope:[main] from main::@7 [14] (byte) main::y#1 ← ++ (byte) main::y#4 - [15] if((byte) main::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@2 + [15] if((byte) main::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@2 to:main::@5 main::@5: scope:[main] from main::@4 [16] (byte) main::x#1 ← ++ (byte) main::x#7 - [17] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 + [17] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 to:main::@return main::@return: scope:[main] from main::@5 [18] return @@ -344,7 +344,7 @@ main: { b7: //SEG31 [12] (byte) main::a#1 ← ++ (byte) main::a#2 -- vbuz1=_inc_vbuz1 inc a - //SEG32 [13] if((byte) main::a#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG32 [13] if((byte) main::a#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@3 -- vbuz1_neq_vbuc1_then_la1 lda a cmp #$65 bne b3_from_b7 @@ -353,7 +353,7 @@ main: { b4: //SEG34 [14] (byte) main::y#1 ← ++ (byte) main::y#4 -- vbuz1=_inc_vbuz1 inc y - //SEG35 [15] if((byte) main::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG35 [15] if((byte) main::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@2 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$65 bne b2_from_b4 @@ -362,7 +362,7 @@ main: { b5: //SEG37 [16] (byte) main::x#1 ← ++ (byte) main::x#7 -- vbuyy=_inc_vbuyy iny - //SEG38 [17] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 -- vbuyy_neq_vbuc1_then_la1 + //SEG38 [17] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 -- vbuyy_neq_vbuc1_then_la1 cpy #$65 bne b1_from_b5 jmp breturn @@ -485,7 +485,7 @@ main: { b7: //SEG31 [12] (byte) main::a#1 ← ++ (byte) main::a#2 -- vbuz1=_inc_vbuz1 inc a - //SEG32 [13] if((byte) main::a#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG32 [13] if((byte) main::a#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@3 -- vbuz1_neq_vbuc1_then_la1 lda a cmp #$65 bne b3_from_b7 @@ -494,7 +494,7 @@ main: { b4: //SEG34 [14] (byte) main::y#1 ← ++ (byte) main::y#4 -- vbuxx=_inc_vbuxx inx - //SEG35 [15] if((byte) main::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG35 [15] if((byte) main::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$65 bne b2_from_b4 jmp b5 @@ -502,7 +502,7 @@ main: { b5: //SEG37 [16] (byte) main::x#1 ← ++ (byte) main::x#7 -- vbuyy=_inc_vbuyy iny - //SEG38 [17] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 -- vbuyy_neq_vbuc1_then_la1 + //SEG38 [17] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 -- vbuyy_neq_vbuc1_then_la1 cpy #$65 bne b1_from_b5 jmp breturn @@ -593,7 +593,7 @@ FINAL SYMBOL TABLE (void()) print((byte) print::idx , (byte) print::val) (label) print::@return (byte*) print::SCREEN -(const byte*) print::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) print::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) print::idx !reg byte x (byte) print::idx#0 !reg byte x 501.5 (byte) print::val @@ -659,20 +659,20 @@ main: { //SEG30 main::@7 //SEG31 [12] (byte) main::a#1 ← ++ (byte) main::a#2 -- vbuz1=_inc_vbuz1 inc a - //SEG32 [13] if((byte) main::a#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG32 [13] if((byte) main::a#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@3 -- vbuz1_neq_vbuc1_then_la1 lda a cmp #$65 bne b3 //SEG33 main::@4 //SEG34 [14] (byte) main::y#1 ← ++ (byte) main::y#4 -- vbuxx=_inc_vbuxx inx - //SEG35 [15] if((byte) main::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG35 [15] if((byte) main::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$65 bne b2 //SEG36 main::@5 //SEG37 [16] (byte) main::x#1 ← ++ (byte) main::x#7 -- vbuyy=_inc_vbuyy iny - //SEG38 [17] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 101) goto main::@1 -- vbuyy_neq_vbuc1_then_la1 + //SEG38 [17] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $65) goto main::@1 -- vbuyy_neq_vbuc1_then_la1 cpy #$65 bne b1 //SEG39 main::@return diff --git a/src/test/ref/var-register.sym b/src/test/ref/var-register.sym index 91c190853..56d653e80 100644 --- a/src/test/ref/var-register.sym +++ b/src/test/ref/var-register.sym @@ -23,7 +23,7 @@ (void()) print((byte) print::idx , (byte) print::val) (label) print::@return (byte*) print::SCREEN -(const byte*) print::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) print::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte) print::idx !reg byte x (byte) print::idx#0 !reg byte x 501.5 (byte) print::val diff --git a/src/test/ref/voronoi.cfg b/src/test/ref/voronoi.cfg index 417deb059..483900c01 100644 --- a/src/test/ref/voronoi.cfg +++ b/src/test/ref/voronoi.cfg @@ -22,7 +22,7 @@ main::@4: scope:[main] from main::@1 animate: scope:[animate] from main::@4 [10] (byte/signed word/word/dword/signed dword~) animate::$0 ← *((const byte[]) XPOS#0) + (byte/signed byte/word/signed word/dword/signed dword) 1 [11] *((const byte[]) XPOS#0) ← (byte/signed word/word/dword/signed dword~) animate::$0 - [12] if(*((const byte[]) XPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto animate::@1 + [12] if(*((const byte[]) XPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto animate::@1 to:animate::@7 animate::@7: scope:[animate] from animate [13] *((const byte[]) XPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -30,7 +30,7 @@ animate::@7: scope:[animate] from animate animate::@1: scope:[animate] from animate animate::@7 [14] (byte/signed word/word/dword/signed dword~) animate::$3 ← *((const byte[]) YPOS#0) + (byte/signed byte/word/signed word/dword/signed dword) 1 [15] *((const byte[]) YPOS#0) ← (byte/signed word/word/dword/signed dword~) animate::$3 - [16] if(*((const byte[]) YPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto animate::@2 + [16] if(*((const byte[]) YPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto animate::@2 to:animate::@8 animate::@8: scope:[animate] from animate::@1 [17] *((const byte[]) YPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -38,15 +38,15 @@ animate::@8: scope:[animate] from animate::@1 animate::@2: scope:[animate] from animate::@1 animate::@8 [18] (byte/signed word/word/dword/signed dword~) animate::$6 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) - (byte/signed byte/word/signed word/dword/signed dword) 1 [19] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed word/word/dword/signed dword~) animate::$6 - [20] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1)!=(byte/word/signed word/dword/signed dword) 255) goto animate::@3 + [20] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1)!=(byte/word/signed word/dword/signed dword) $ff) goto animate::@3 to:animate::@9 animate::@9: scope:[animate] from animate::@2 - [21] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 40 + [21] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) $28 to:animate::@3 animate::@3: scope:[animate] from animate::@2 animate::@9 [22] (byte/signed word/word/dword/signed dword~) animate::$9 ← *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) + (byte/signed byte/word/signed word/dword/signed dword) 1 [23] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed word/word/dword/signed dword~) animate::$9 - [24] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2)!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto animate::@4 + [24] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2)!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto animate::@4 to:animate::@10 animate::@10: scope:[animate] from animate::@3 [25] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -54,16 +54,16 @@ animate::@10: scope:[animate] from animate::@3 animate::@4: scope:[animate] from animate::@10 animate::@3 [26] (byte/signed word/word/dword/signed dword~) animate::$12 ← *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 1 [27] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed word/word/dword/signed dword~) animate::$12 - [28] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)!=(byte/word/signed word/dword/signed dword) 255) goto animate::@return + [28] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)!=(byte/word/signed word/dword/signed dword) $ff) goto animate::@return to:animate::@11 animate::@11: scope:[animate] from animate::@4 - [29] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 25 + [29] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) $19 [30] (byte/signed word/word/dword/signed dword~) animate::$15 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) + (byte/signed byte/word/signed word/dword/signed dword) 7 [31] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed word/word/dword/signed dword~) animate::$15 - [32] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)<(byte/signed byte/word/signed word/dword/signed dword) 40) goto animate::@return + [32] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)<(byte/signed byte/word/signed word/dword/signed dword) $28) goto animate::@return to:animate::@12 animate::@12: scope:[animate] from animate::@11 - [33] (byte/signed word/word/dword/signed dword~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 + [33] (byte/signed word/word/dword/signed dword~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) $28 [34] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed word/word/dword/signed dword~) animate::$18 to:animate::@return animate::@return: scope:[animate] from animate::@11 animate::@12 animate::@4 @@ -87,12 +87,12 @@ render::@5: scope:[render] from render::@2 [43] (byte) render::col#0 ← (byte) findcol::return#0 [44] *((byte*) render::colline#5 + (byte) render::x#2) ← (byte) render::col#0 [45] (byte) render::x#1 ← ++ (byte) render::x#2 - [46] if((byte) render::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render::@2 + [46] if((byte) render::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render::@2 to:render::@3 render::@3: scope:[render] from render::@5 - [47] (byte*) render::colline#1 ← (byte*) render::colline#5 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [47] (byte*) render::colline#1 ← (byte*) render::colline#5 + (byte/signed byte/word/signed word/dword/signed dword) $28 [48] (byte) render::y#1 ← ++ (byte) render::y#4 - [49] if((byte) render::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render::@1 + [49] if((byte) render::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto render::@1 to:render::@return render::@return: scope:[render] from render::@3 [50] return @@ -102,7 +102,7 @@ findcol: scope:[findcol] from render::@2 to:findcol::@1 findcol::@1: scope:[findcol] from findcol findcol::@19 [52] (byte) findcol::mincol#10 ← phi( findcol/(byte/signed byte/word/signed word/dword/signed dword) 0 findcol::@19/(byte) findcol::mincol#2 ) - [52] (byte) findcol::mindiff#10 ← phi( findcol/(byte/word/signed word/dword/signed dword) 255 findcol::@19/(byte~) findcol::mindiff#13 ) + [52] (byte) findcol::mindiff#10 ← phi( findcol/(byte/word/signed word/dword/signed dword) $ff findcol::@19/(byte~) findcol::mindiff#13 ) [52] (byte) findcol::i#10 ← phi( findcol/(byte/signed byte/word/signed word/dword/signed dword) 0 findcol::@19/(byte) findcol::i#1 ) [53] (byte) findcol::xp#0 ← *((const byte[]) XPOS#0 + (byte) findcol::i#10) [54] (byte) findcol::yp#0 ← *((const byte[]) YPOS#0 + (byte) findcol::i#10) @@ -162,7 +162,7 @@ initscreen::@1: scope:[initscreen] from initscreen initscreen::@1 [77] (byte*) initscreen::screen#2 ← phi( initscreen/(const byte*) SCREEN#0 initscreen::@1/(byte*) initscreen::screen#1 ) [78] *((byte*) initscreen::screen#2) ← (const byte) FILL#0 [79] (byte*) initscreen::screen#1 ← ++ (byte*) initscreen::screen#2 - [80] if((byte*) initscreen::screen#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto initscreen::@1 + [80] if((byte*) initscreen::screen#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto initscreen::@1 to:initscreen::@return initscreen::@return: scope:[initscreen] from initscreen::@1 [81] return diff --git a/src/test/ref/voronoi.log b/src/test/ref/voronoi.log index a5dcbd2e8..606937f7c 100644 --- a/src/test/ref/voronoi.log +++ b/src/test/ref/voronoi.log @@ -1,12 +1,12 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (byte*) COLORS#0 ← ((byte*)) (word/dword/signed dword) 55296 - (byte) FILL#0 ← (byte/word/signed word/dword/signed dword) 230 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (byte*) COLORS#0 ← ((byte*)) (word/dword/signed dword) $d800 + (byte) FILL#0 ← (byte/word/signed word/dword/signed dword) $e6 (byte) numpoints#0 ← (byte/signed byte/word/signed word/dword/signed dword) 6 - (byte[]) XPOS#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 34, (byte/signed byte/word/signed word/dword/signed dword) 21, (byte/signed byte/word/signed word/dword/signed dword) 31 } - (byte[]) YPOS#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 14, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 22 } + (byte[]) XPOS#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) $22, (byte/signed byte/word/signed word/dword/signed dword) $15, (byte/signed byte/word/signed word/dword/signed dword) $1f } + (byte[]) YPOS#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $e, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) $11, (byte/signed byte/word/signed word/dword/signed dword) $16 } (byte[]) COLS#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) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7 } to:@5 main: scope:[main] from @5 @@ -41,14 +41,14 @@ main::@return: scope:[main] from main::@5 animate: scope:[animate] from main::@4 (byte/signed word/word/dword/signed dword~) animate::$0 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) + (byte/signed byte/word/signed word/dword/signed dword) 1 *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte/signed word/word/dword/signed dword~) animate::$0 - (bool~) animate::$1 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) == (byte/signed byte/word/signed word/dword/signed dword) 40 + (bool~) animate::$1 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) == (byte/signed byte/word/signed word/dword/signed dword) $28 (bool~) animate::$2 ← ! (bool~) animate::$1 if((bool~) animate::$2) goto animate::@1 to:animate::@7 animate::@1: scope:[animate] from animate animate::@7 (byte/signed word/word/dword/signed dword~) animate::$3 ← *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) + (byte/signed byte/word/signed word/dword/signed dword) 1 *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte/signed word/word/dword/signed dword~) animate::$3 - (bool~) animate::$4 ← *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) == (byte/signed byte/word/signed word/dword/signed dword) 25 + (bool~) animate::$4 ← *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) == (byte/signed byte/word/signed word/dword/signed dword) $19 (bool~) animate::$5 ← ! (bool~) animate::$4 if((bool~) animate::$5) goto animate::@2 to:animate::@8 @@ -58,7 +58,7 @@ animate::@7: scope:[animate] from animate animate::@2: scope:[animate] from animate::@1 animate::@8 (byte/signed word/word/dword/signed dword~) animate::$6 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) - (byte/signed byte/word/signed word/dword/signed dword) 1 *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed word/word/dword/signed dword~) animate::$6 - (bool~) animate::$7 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) == (byte/word/signed word/dword/signed dword) 255 + (bool~) animate::$7 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) == (byte/word/signed word/dword/signed dword) $ff (bool~) animate::$8 ← ! (bool~) animate::$7 if((bool~) animate::$8) goto animate::@3 to:animate::@9 @@ -68,17 +68,17 @@ animate::@8: scope:[animate] from animate::@1 animate::@3: scope:[animate] from animate::@2 animate::@9 (byte/signed word/word/dword/signed dword~) animate::$9 ← *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 2) + (byte/signed byte/word/signed word/dword/signed dword) 1 *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed word/word/dword/signed dword~) animate::$9 - (bool~) animate::$10 ← *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 2) == (byte/signed byte/word/signed word/dword/signed dword) 25 + (bool~) animate::$10 ← *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 2) == (byte/signed byte/word/signed word/dword/signed dword) $19 (bool~) animate::$11 ← ! (bool~) animate::$10 if((bool~) animate::$11) goto animate::@4 to:animate::@10 animate::@9: scope:[animate] from animate::@2 - *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 40 + *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) $28 to:animate::@3 animate::@4: scope:[animate] from animate::@10 animate::@3 (byte/signed word/word/dword/signed dword~) animate::$12 ← *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 1 *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed word/word/dword/signed dword~) animate::$12 - (bool~) animate::$13 ← *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) == (byte/word/signed word/dword/signed dword) 255 + (bool~) animate::$13 ← *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) == (byte/word/signed word/dword/signed dword) $ff (bool~) animate::$14 ← ! (bool~) animate::$13 if((bool~) animate::$14) goto animate::@5 to:animate::@11 @@ -88,17 +88,17 @@ animate::@10: scope:[animate] from animate::@3 animate::@5: scope:[animate] from animate::@4 to:animate::@return animate::@11: scope:[animate] from animate::@4 - *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 25 + *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) $19 (byte/signed word/word/dword/signed dword~) animate::$15 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) + (byte/signed byte/word/signed word/dword/signed dword) 7 *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed word/word/dword/signed dword~) animate::$15 - (bool~) animate::$16 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) >= (byte/signed byte/word/signed word/dword/signed dword) 40 + (bool~) animate::$16 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) >= (byte/signed byte/word/signed word/dword/signed dword) $28 (bool~) animate::$17 ← ! (bool~) animate::$16 if((bool~) animate::$17) goto animate::@6 to:animate::@12 animate::@6: scope:[animate] from animate::@11 to:animate::@return animate::@12: scope:[animate] from animate::@11 - (byte/signed word/word/dword/signed dword~) animate::$18 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte/signed word/word/dword/signed dword~) animate::$18 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) $28 *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed word/word/dword/signed dword~) animate::$18 to:animate::@return animate::@return: scope:[animate] from animate::@12 animate::@5 animate::@6 @@ -115,7 +115,7 @@ initscreen::@1: scope:[initscreen] from initscreen initscreen::@1 (byte) FILL#1 ← phi( initscreen/(byte) FILL#2 initscreen::@1/(byte) FILL#1 ) *((byte*) initscreen::screen#2) ← (byte) FILL#1 (byte*) initscreen::screen#1 ← ++ (byte*) initscreen::screen#2 - (byte*~) initscreen::$0 ← (byte*) SCREEN#2 + (word/signed word/dword/signed dword) 1000 + (byte*~) initscreen::$0 ← (byte*) SCREEN#2 + (word/signed word/dword/signed dword) $3e8 (bool~) initscreen::$1 ← (byte*) initscreen::screen#1 < (byte*~) initscreen::$0 if((bool~) initscreen::$1) goto initscreen::@1 to:initscreen::@return @@ -153,18 +153,18 @@ render::@5: scope:[render] from render::@2 (byte~) render::$0 ← (byte) findcol::return#4 (byte) render::col#0 ← (byte~) render::$0 *((byte*) render::colline#2 + (byte) render::x#3) ← (byte) render::col#0 - (byte) render::x#1 ← (byte) render::x#3 + rangenext(0,39) - (bool~) render::$1 ← (byte) render::x#1 != rangelast(0,39) + (byte) render::x#1 ← (byte) render::x#3 + rangenext(0,$27) + (bool~) render::$1 ← (byte) render::x#1 != rangelast(0,$27) if((bool~) render::$1) goto render::@2 to:render::@3 render::@3: scope:[render] from render::@5 (byte) numpoints#18 ← phi( render::@5/(byte) numpoints#16 ) (byte) render::y#3 ← phi( render::@5/(byte) render::y#5 ) (byte*) render::colline#3 ← phi( render::@5/(byte*) render::colline#2 ) - (byte*~) render::$2 ← (byte*) render::colline#3 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) render::$2 ← (byte*) render::colline#3 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) render::colline#1 ← (byte*~) render::$2 - (byte) render::y#1 ← (byte) render::y#3 + rangenext(0,24) - (bool~) render::$3 ← (byte) render::y#1 != rangelast(0,24) + (byte) render::y#1 ← (byte) render::y#3 + rangenext(0,$18) + (bool~) render::$3 ← (byte) render::y#1 != rangelast(0,$18) if((bool~) render::$3) goto render::@1 to:render::@return render::@return: scope:[render] from render::@3 @@ -174,7 +174,7 @@ findcol: scope:[findcol] from render::@2 (byte) numpoints#12 ← phi( render::@2/(byte) numpoints#14 ) (byte) findcol::y#8 ← phi( render::@2/(byte) findcol::y#0 ) (byte) findcol::x#5 ← phi( render::@2/(byte) findcol::x#0 ) - (byte) findcol::mindiff#0 ← (byte/word/signed word/dword/signed dword) 255 + (byte) findcol::mindiff#0 ← (byte/word/signed word/dword/signed dword) $ff (byte) findcol::mincol#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) findcol::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:findcol::@1 @@ -626,12 +626,12 @@ Culled Empty Block (label) animate::@5 Culled Empty Block (label) animate::@6 Culled Empty Block (label) @6 Successful SSA optimization Pass2CullEmptyBlocks -Inversing boolean not [20] (bool~) animate::$2 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) != (byte/signed byte/word/signed word/dword/signed dword) 40 from [19] (bool~) animate::$1 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) == (byte/signed byte/word/signed word/dword/signed dword) 40 -Inversing boolean not [25] (bool~) animate::$5 ← *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) != (byte/signed byte/word/signed word/dword/signed dword) 25 from [24] (bool~) animate::$4 ← *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) == (byte/signed byte/word/signed word/dword/signed dword) 25 -Inversing boolean not [31] (bool~) animate::$8 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) != (byte/word/signed word/dword/signed dword) 255 from [30] (bool~) animate::$7 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) == (byte/word/signed word/dword/signed dword) 255 -Inversing boolean not [37] (bool~) animate::$11 ← *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 2) != (byte/signed byte/word/signed word/dword/signed dword) 25 from [36] (bool~) animate::$10 ← *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 2) == (byte/signed byte/word/signed word/dword/signed dword) 25 -Inversing boolean not [43] (bool~) animate::$14 ← *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) != (byte/word/signed word/dword/signed dword) 255 from [42] (bool~) animate::$13 ← *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) == (byte/word/signed word/dword/signed dword) 255 -Inversing boolean not [50] (bool~) animate::$17 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) < (byte/signed byte/word/signed word/dword/signed dword) 40 from [49] (bool~) animate::$16 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) >= (byte/signed byte/word/signed word/dword/signed dword) 40 +Inversing boolean not [20] (bool~) animate::$2 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) != (byte/signed byte/word/signed word/dword/signed dword) $28 from [19] (bool~) animate::$1 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) == (byte/signed byte/word/signed word/dword/signed dword) $28 +Inversing boolean not [25] (bool~) animate::$5 ← *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) != (byte/signed byte/word/signed word/dword/signed dword) $19 from [24] (bool~) animate::$4 ← *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) == (byte/signed byte/word/signed word/dword/signed dword) $19 +Inversing boolean not [31] (bool~) animate::$8 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) != (byte/word/signed word/dword/signed dword) $ff from [30] (bool~) animate::$7 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) == (byte/word/signed word/dword/signed dword) $ff +Inversing boolean not [37] (bool~) animate::$11 ← *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 2) != (byte/signed byte/word/signed word/dword/signed dword) $19 from [36] (bool~) animate::$10 ← *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 2) == (byte/signed byte/word/signed word/dword/signed dword) $19 +Inversing boolean not [43] (bool~) animate::$14 ← *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) != (byte/word/signed word/dword/signed dword) $ff from [42] (bool~) animate::$13 ← *((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) == (byte/word/signed word/dword/signed dword) $ff +Inversing boolean not [50] (bool~) animate::$17 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) < (byte/signed byte/word/signed word/dword/signed dword) $28 from [49] (bool~) animate::$16 ← *((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3) >= (byte/signed byte/word/signed word/dword/signed dword) $28 Inversing boolean not [96] (bool~) findcol::$1 ← (byte) findcol::x#1 != (byte) findcol::xp#0 from [95] (bool~) findcol::$0 ← (byte) findcol::x#1 == (byte) findcol::xp#0 Inversing boolean not [104] (bool~) findcol::$3 ← (byte) findcol::y#1 != (byte) findcol::yp#1 from [103] (bool~) findcol::$2 ← (byte) findcol::y#1 == (byte) findcol::yp#1 Inversing boolean not [130] (bool~) findcol::$13 ← (byte) findcol::diff#7 >= (byte) findcol::mindiff#2 from [129] (bool~) findcol::$12 ← (byte) findcol::diff#7 < (byte) findcol::mindiff#2 @@ -729,15 +729,15 @@ Redundant Phi (byte) findcol::x#1 (byte) findcol::x#5 Redundant Phi (byte) findcol::y#1 (byte) findcol::y#8 Redundant Phi (byte) numpoints#1 (byte) numpoints#12 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) animate::$2 [21] if(*((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0)!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto animate::@1 -Simple Condition (bool~) animate::$5 [26] if(*((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0)!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto animate::@2 -Simple Condition (bool~) animate::$8 [32] if(*((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 1)!=(byte/word/signed word/dword/signed dword) 255) goto animate::@3 -Simple Condition (bool~) animate::$11 [38] if(*((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 2)!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto animate::@4 -Simple Condition (bool~) animate::$14 [44] if(*((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3)!=(byte/word/signed word/dword/signed dword) 255) goto animate::@return -Simple Condition (bool~) animate::$17 [51] if(*((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3)<(byte/signed byte/word/signed word/dword/signed dword) 40) goto animate::@return +Simple Condition (bool~) animate::$2 [21] if(*((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0)!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto animate::@1 +Simple Condition (bool~) animate::$5 [26] if(*((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0)!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto animate::@2 +Simple Condition (bool~) animate::$8 [32] if(*((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 1)!=(byte/word/signed word/dword/signed dword) $ff) goto animate::@3 +Simple Condition (bool~) animate::$11 [38] if(*((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 2)!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto animate::@4 +Simple Condition (bool~) animate::$14 [44] if(*((byte[]) YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3)!=(byte/word/signed word/dword/signed dword) $ff) goto animate::@return +Simple Condition (bool~) animate::$17 [51] if(*((byte[]) XPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 3)<(byte/signed byte/word/signed word/dword/signed dword) $28) goto animate::@return Simple Condition (bool~) initscreen::$1 [62] if((byte*) initscreen::screen#1<(byte*~) initscreen::$0) goto initscreen::@1 -Simple Condition (bool~) render::$1 [80] if((byte) render::x#1!=rangelast(0,39)) goto render::@2 -Simple Condition (bool~) render::$3 [86] if((byte) render::y#1!=rangelast(0,24)) goto render::@1 +Simple Condition (bool~) render::$1 [80] if((byte) render::x#1!=rangelast(0,$27)) goto render::@2 +Simple Condition (bool~) render::$3 [86] if((byte) render::y#1!=rangelast(0,$18)) goto render::@1 Simple Condition (bool~) findcol::$1 [97] if((byte) findcol::x#0!=(byte) findcol::xp#0) goto findcol::@2 Simple Condition (bool~) findcol::$4 [101] if((byte) findcol::x#0<(byte) findcol::xp#0) goto findcol::@4 Simple Condition (bool~) findcol::$3 [105] if((byte) findcol::y#0!=(byte) findcol::yp#0) goto findcol::@3 @@ -745,23 +745,23 @@ Simple Condition (bool~) findcol::$7 [119] if((byte) findcol::y#0<(byte) findcol Simple Condition (bool~) findcol::$13 [131] if((byte) findcol::diff#7>=(byte) findcol::mindiff#10) goto findcol::@8 Simple Condition (bool~) findcol::$14 [135] if((byte) findcol::i#1<(byte) numpoints#15) goto findcol::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) SCREEN#0 = ((byte*))1024 -Constant (const byte*) COLORS#0 = ((byte*))55296 -Constant (const byte) FILL#0 = 230 +Constant (const byte*) SCREEN#0 = ((byte*))$400 +Constant (const byte*) COLORS#0 = ((byte*))$d800 +Constant (const byte) FILL#0 = $e6 Constant (const byte) numpoints#0 = 6 -Constant (const byte[]) XPOS#0 = { 5, 15, 6, 34, 21, 31 } -Constant (const byte[]) YPOS#0 = { 5, 8, 14, 2, 17, 22 } +Constant (const byte[]) XPOS#0 = { 5, $f, 6, $22, $15, $1f } +Constant (const byte[]) YPOS#0 = { 5, 8, $e, 2, $11, $16 } Constant (const byte[]) COLS#0 = { 1, 2, 3, 4, 5, 7 } Constant (const byte) render::y#0 = 0 Constant (const byte) render::x#0 = 0 -Constant (const byte) findcol::mindiff#0 = 255 +Constant (const byte) findcol::mindiff#0 = $ff Constant (const byte) findcol::mincol#0 = 0 Constant (const byte) findcol::i#0 = 0 Constant (const byte) findcol::diff#0 = 0 Constant (const byte) findcol::return#1 = 0 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) initscreen::screen#0 = SCREEN#0 -Constant (const byte*) initscreen::$0 = SCREEN#0+1000 +Constant (const byte*) initscreen::$0 = SCREEN#0+$3e8 Constant (const byte*) render::colline#0 = COLORS#0 Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(XPOS#0+0) @@ -796,9 +796,9 @@ Successful SSA optimization PassNEliminateUnusedVars Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks Resolved ranged next value render::x#1 ← ++ render::x#2 to ++ -Resolved ranged comparison value if(render::x#1!=rangelast(0,39)) goto render::@2 to (byte/signed byte/word/signed word/dword/signed dword) 40 +Resolved ranged comparison value if(render::x#1!=rangelast(0,$27)) goto render::@2 to (byte/signed byte/word/signed word/dword/signed dword) $28 Resolved ranged next value render::y#1 ← ++ render::y#4 to ++ -Resolved ranged comparison value if(render::y#1!=rangelast(0,24)) goto render::@1 to (byte/signed byte/word/signed word/dword/signed dword) 25 +Resolved ranged comparison value if(render::y#1!=rangelast(0,$18)) goto render::@1 to (byte/signed byte/word/signed word/dword/signed dword) $19 Culled Empty Block (label) main::@3 Culled Empty Block (label) main::@5 Culled Empty Block (label) findcol::@3 @@ -824,8 +824,8 @@ Constant inlined initscreen::screen#0 = (const byte*) SCREEN#0 Constant inlined findcol::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined findcol::mincol#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined findcol::mindiff#0 = (byte/word/signed word/dword/signed dword) 255 -Constant inlined initscreen::$0 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000 +Constant inlined findcol::mindiff#0 = (byte/word/signed word/dword/signed dword) $ff +Constant inlined initscreen::$0 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8 Successful SSA optimization Pass2ConstantInlining Simplifying constant plus zero XPOS#0+0 Simplifying constant plus zero XPOS#0+0 @@ -912,7 +912,7 @@ main::@4: scope:[main] from main::@1 animate: scope:[animate] from main::@4 [10] (byte/signed word/word/dword/signed dword~) animate::$0 ← *((const byte[]) XPOS#0) + (byte/signed byte/word/signed word/dword/signed dword) 1 [11] *((const byte[]) XPOS#0) ← (byte/signed word/word/dword/signed dword~) animate::$0 - [12] if(*((const byte[]) XPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto animate::@1 + [12] if(*((const byte[]) XPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto animate::@1 to:animate::@7 animate::@7: scope:[animate] from animate [13] *((const byte[]) XPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -920,7 +920,7 @@ animate::@7: scope:[animate] from animate animate::@1: scope:[animate] from animate animate::@7 [14] (byte/signed word/word/dword/signed dword~) animate::$3 ← *((const byte[]) YPOS#0) + (byte/signed byte/word/signed word/dword/signed dword) 1 [15] *((const byte[]) YPOS#0) ← (byte/signed word/word/dword/signed dword~) animate::$3 - [16] if(*((const byte[]) YPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto animate::@2 + [16] if(*((const byte[]) YPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto animate::@2 to:animate::@8 animate::@8: scope:[animate] from animate::@1 [17] *((const byte[]) YPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -928,15 +928,15 @@ animate::@8: scope:[animate] from animate::@1 animate::@2: scope:[animate] from animate::@1 animate::@8 [18] (byte/signed word/word/dword/signed dword~) animate::$6 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) - (byte/signed byte/word/signed word/dword/signed dword) 1 [19] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed word/word/dword/signed dword~) animate::$6 - [20] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1)!=(byte/word/signed word/dword/signed dword) 255) goto animate::@3 + [20] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1)!=(byte/word/signed word/dword/signed dword) $ff) goto animate::@3 to:animate::@9 animate::@9: scope:[animate] from animate::@2 - [21] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 40 + [21] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) $28 to:animate::@3 animate::@3: scope:[animate] from animate::@2 animate::@9 [22] (byte/signed word/word/dword/signed dword~) animate::$9 ← *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) + (byte/signed byte/word/signed word/dword/signed dword) 1 [23] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed word/word/dword/signed dword~) animate::$9 - [24] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2)!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto animate::@4 + [24] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2)!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto animate::@4 to:animate::@10 animate::@10: scope:[animate] from animate::@3 [25] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -944,16 +944,16 @@ animate::@10: scope:[animate] from animate::@3 animate::@4: scope:[animate] from animate::@10 animate::@3 [26] (byte/signed word/word/dword/signed dword~) animate::$12 ← *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 1 [27] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed word/word/dword/signed dword~) animate::$12 - [28] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)!=(byte/word/signed word/dword/signed dword) 255) goto animate::@return + [28] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)!=(byte/word/signed word/dword/signed dword) $ff) goto animate::@return to:animate::@11 animate::@11: scope:[animate] from animate::@4 - [29] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 25 + [29] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) $19 [30] (byte/signed word/word/dword/signed dword~) animate::$15 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) + (byte/signed byte/word/signed word/dword/signed dword) 7 [31] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed word/word/dword/signed dword~) animate::$15 - [32] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)<(byte/signed byte/word/signed word/dword/signed dword) 40) goto animate::@return + [32] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)<(byte/signed byte/word/signed word/dword/signed dword) $28) goto animate::@return to:animate::@12 animate::@12: scope:[animate] from animate::@11 - [33] (byte/signed word/word/dword/signed dword~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 + [33] (byte/signed word/word/dword/signed dword~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) $28 [34] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed word/word/dword/signed dword~) animate::$18 to:animate::@return animate::@return: scope:[animate] from animate::@11 animate::@12 animate::@4 @@ -977,12 +977,12 @@ render::@5: scope:[render] from render::@2 [43] (byte) render::col#0 ← (byte) findcol::return#0 [44] *((byte*) render::colline#5 + (byte) render::x#2) ← (byte) render::col#0 [45] (byte) render::x#1 ← ++ (byte) render::x#2 - [46] if((byte) render::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render::@2 + [46] if((byte) render::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render::@2 to:render::@3 render::@3: scope:[render] from render::@5 - [47] (byte*) render::colline#1 ← (byte*) render::colline#5 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [47] (byte*) render::colline#1 ← (byte*) render::colline#5 + (byte/signed byte/word/signed word/dword/signed dword) $28 [48] (byte) render::y#1 ← ++ (byte) render::y#4 - [49] if((byte) render::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render::@1 + [49] if((byte) render::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto render::@1 to:render::@return render::@return: scope:[render] from render::@3 [50] return @@ -992,7 +992,7 @@ findcol: scope:[findcol] from render::@2 to:findcol::@1 findcol::@1: scope:[findcol] from findcol findcol::@19 [52] (byte) findcol::mincol#10 ← phi( findcol/(byte/signed byte/word/signed word/dword/signed dword) 0 findcol::@19/(byte) findcol::mincol#2 ) - [52] (byte) findcol::mindiff#10 ← phi( findcol/(byte/word/signed word/dword/signed dword) 255 findcol::@19/(byte~) findcol::mindiff#13 ) + [52] (byte) findcol::mindiff#10 ← phi( findcol/(byte/word/signed word/dword/signed dword) $ff findcol::@19/(byte~) findcol::mindiff#13 ) [52] (byte) findcol::i#10 ← phi( findcol/(byte/signed byte/word/signed word/dword/signed dword) 0 findcol::@19/(byte) findcol::i#1 ) [53] (byte) findcol::xp#0 ← *((const byte[]) XPOS#0 + (byte) findcol::i#10) [54] (byte) findcol::yp#0 ← *((const byte[]) YPOS#0 + (byte) findcol::i#10) @@ -1052,7 +1052,7 @@ initscreen::@1: scope:[initscreen] from initscreen initscreen::@1 [77] (byte*) initscreen::screen#2 ← phi( initscreen/(const byte*) SCREEN#0 initscreen::@1/(byte*) initscreen::screen#1 ) [78] *((byte*) initscreen::screen#2) ← (const byte) FILL#0 [79] (byte*) initscreen::screen#1 ← ++ (byte*) initscreen::screen#2 - [80] if((byte*) initscreen::screen#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto initscreen::@1 + [80] if((byte*) initscreen::screen#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto initscreen::@1 to:initscreen::@return initscreen::@return: scope:[initscreen] from initscreen::@1 [81] return @@ -1271,7 +1271,7 @@ animate: { //SEG22 [11] *((const byte[]) XPOS#0) ← (byte/signed word/word/dword/signed dword~) animate::$0 -- _deref_pbuc1=vbuz1 lda _0 sta XPOS - //SEG23 [12] if(*((const byte[]) XPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto animate::@1 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG23 [12] if(*((const byte[]) XPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto animate::@1 -- _deref_pbuc1_neq_vbuc2_then_la1 lda XPOS cmp #$28 bne b1 @@ -1291,7 +1291,7 @@ animate: { //SEG28 [15] *((const byte[]) YPOS#0) ← (byte/signed word/word/dword/signed dword~) animate::$3 -- _deref_pbuc1=vbuz1 lda _3 sta YPOS - //SEG29 [16] if(*((const byte[]) YPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto animate::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG29 [16] if(*((const byte[]) YPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto animate::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda YPOS cmp #$19 bne b2 @@ -1311,14 +1311,14 @@ animate: { //SEG34 [19] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed word/word/dword/signed dword~) animate::$6 -- _deref_pbuc1=vbuz1 lda _6 sta XPOS+1 - //SEG35 [20] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1)!=(byte/word/signed word/dword/signed dword) 255) goto animate::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG35 [20] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1)!=(byte/word/signed word/dword/signed dword) $ff) goto animate::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 lda XPOS+1 cmp #$ff bne b3 jmp b9 //SEG36 animate::@9 b9: - //SEG37 [21] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 40 -- _deref_pbuc1=vbuc2 + //SEG37 [21] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) $28 -- _deref_pbuc1=vbuc2 lda #$28 sta XPOS+1 jmp b3 @@ -1331,7 +1331,7 @@ animate: { //SEG40 [23] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed word/word/dword/signed dword~) animate::$9 -- _deref_pbuc1=vbuz1 lda _9 sta YPOS+2 - //SEG41 [24] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2)!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto animate::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG41 [24] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2)!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto animate::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda YPOS+2 cmp #$19 bne b4 @@ -1351,14 +1351,14 @@ animate: { //SEG46 [27] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed word/word/dword/signed dword~) animate::$12 -- _deref_pbuc1=vbuz1 lda _12 sta YPOS+3 - //SEG47 [28] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)!=(byte/word/signed word/dword/signed dword) 255) goto animate::@return -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG47 [28] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)!=(byte/word/signed word/dword/signed dword) $ff) goto animate::@return -- _deref_pbuc1_neq_vbuc2_then_la1 lda YPOS+3 cmp #$ff bne breturn jmp b11 //SEG48 animate::@11 b11: - //SEG49 [29] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 25 -- _deref_pbuc1=vbuc2 + //SEG49 [29] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) $19 -- _deref_pbuc1=vbuc2 lda #$19 sta YPOS+3 //SEG50 [30] (byte/signed word/word/dword/signed dword~) animate::$15 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) + (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuz1=_deref_pbuc1_plus_vbuc2 @@ -1369,14 +1369,14 @@ animate: { //SEG51 [31] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed word/word/dword/signed dword~) animate::$15 -- _deref_pbuc1=vbuz1 lda _15 sta XPOS+3 - //SEG52 [32] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)<(byte/signed byte/word/signed word/dword/signed dword) 40) goto animate::@return -- _deref_pbuc1_lt_vbuc2_then_la1 + //SEG52 [32] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)<(byte/signed byte/word/signed word/dword/signed dword) $28) goto animate::@return -- _deref_pbuc1_lt_vbuc2_then_la1 lda XPOS+3 cmp #$28 bcc breturn jmp b12 //SEG53 animate::@12 b12: - //SEG54 [33] (byte/signed word/word/dword/signed dword~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 -- vbuz1=_deref_pbuc1_minus_vbuc2 + //SEG54 [33] (byte/signed word/word/dword/signed dword~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) $28 -- vbuz1=_deref_pbuc1_minus_vbuc2 lda XPOS+3 sec sbc #$28 @@ -1451,14 +1451,14 @@ render: { sta (colline),y //SEG79 [45] (byte) render::x#1 ← ++ (byte) render::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG80 [46] if((byte) render::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG80 [46] if((byte) render::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render::@2 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #$28 bne b2_from_b5 jmp b3 //SEG81 render::@3 b3: - //SEG82 [47] (byte*) render::colline#1 ← (byte*) render::colline#5 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG82 [47] (byte*) render::colline#1 ← (byte*) render::colline#5 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda colline clc adc #$28 @@ -1468,7 +1468,7 @@ render: { !: //SEG83 [48] (byte) render::y#1 ← ++ (byte) render::y#4 -- vbuz1=_inc_vbuz1 inc y - //SEG84 [49] if((byte) render::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG84 [49] if((byte) render::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto render::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$19 bne b1_from_b3 @@ -1503,7 +1503,7 @@ findcol: { //SEG89 [52] phi (byte) findcol::mincol#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:findcol->findcol::@1#0] -- vbuz1=vbuc1 lda #0 sta mincol - //SEG90 [52] phi (byte) findcol::mindiff#10 = (byte/word/signed word/dword/signed dword) 255 [phi:findcol->findcol::@1#1] -- vbuz1=vbuc1 + //SEG90 [52] phi (byte) findcol::mindiff#10 = (byte/word/signed word/dword/signed dword) $ff [phi:findcol->findcol::@1#1] -- vbuz1=vbuc1 lda #$ff sta mindiff //SEG91 [52] phi (byte) findcol::i#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:findcol->findcol::@1#2] -- vbuz1=vbuc1 @@ -1680,7 +1680,7 @@ initscreen: { bne !+ inc screen+1 !: - //SEG148 [80] if((byte*) initscreen::screen#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto initscreen::@1 -- pbuz1_lt_pbuc1_then_la1 + //SEG148 [80] if((byte*) initscreen::screen#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto initscreen::@1 -- pbuz1_lt_pbuc1_then_la1 lda screen+1 cmp #>SCREEN+$3e8 bcc b1_from_b1 @@ -1701,20 +1701,20 @@ initscreen: { COLS: .byte 1, 2, 3, 4, 5, 7 REGISTER UPLIFT POTENTIAL REGISTERS -Statement [12] if(*((const byte[]) XPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto animate::@1 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a +Statement [12] if(*((const byte[]) XPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto animate::@1 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a Statement [13] *((const byte[]) XPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a -Statement [16] if(*((const byte[]) YPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto animate::@2 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a +Statement [16] if(*((const byte[]) YPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto animate::@2 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a Statement [17] *((const byte[]) YPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a -Statement [20] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1)!=(byte/word/signed word/dword/signed dword) 255) goto animate::@3 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a -Statement [21] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 40 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a -Statement [24] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2)!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto animate::@4 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a +Statement [20] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1)!=(byte/word/signed word/dword/signed dword) $ff) goto animate::@3 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a +Statement [21] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) $28 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a +Statement [24] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2)!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto animate::@4 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a Statement [25] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a -Statement [28] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)!=(byte/word/signed word/dword/signed dword) 255) goto animate::@return [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a -Statement [29] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 25 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a +Statement [28] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)!=(byte/word/signed word/dword/signed dword) $ff) goto animate::@return [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a +Statement [29] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) $19 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a Statement [30] (byte/signed word/word/dword/signed dword~) animate::$15 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) + (byte/signed byte/word/signed word/dword/signed dword) 7 [ animate::$15 ] ( main:2::animate:9 [ animate::$15 ] ) always clobbers reg byte a -Statement [32] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)<(byte/signed byte/word/signed word/dword/signed dword) 40) goto animate::@return [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a -Statement [33] (byte/signed word/word/dword/signed dword~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 [ animate::$18 ] ( main:2::animate:9 [ animate::$18 ] ) always clobbers reg byte a -Statement [47] (byte*) render::colline#1 ← (byte*) render::colline#5 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render::y#4 render::colline#1 ] ( main:2::render:7 [ render::y#4 render::colline#1 ] ) always clobbers reg byte a +Statement [32] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)<(byte/signed byte/word/signed word/dword/signed dword) $28) goto animate::@return [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a +Statement [33] (byte/signed word/word/dword/signed dword~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) $28 [ animate::$18 ] ( main:2::animate:9 [ animate::$18 ] ) always clobbers reg byte a +Statement [47] (byte*) render::colline#1 ← (byte*) render::colline#5 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ render::y#4 render::colline#1 ] ( main:2::render:7 [ render::y#4 render::colline#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ render::y#4 render::y#1 ] Statement [60] (byte) findcol::diff#2 ← (byte) findcol::x#0 - (byte) findcol::xp#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::yp#0 findcol::diff#2 ] ( main:2::render:7::findcol:41 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::yp#0 findcol::diff#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ render::x#2 render::x#1 ] @@ -1731,21 +1731,21 @@ Statement [73] (byte~) findcol::$10 ← (byte) findcol::yp#0 - (byte) findcol::y Statement [74] (byte) findcol::diff#3 ← (byte) findcol::diff#5 + (byte~) findcol::$10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ( main:2::render:7::findcol:41 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ) always clobbers reg byte a Statement [75] (byte) findcol::diff#1 ← (byte) findcol::xp#0 - (byte) findcol::x#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::yp#0 findcol::diff#1 ] ( main:2::render:7::findcol:41 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::yp#0 findcol::diff#1 ] ) always clobbers reg byte a Statement [78] *((byte*) initscreen::screen#2) ← (const byte) FILL#0 [ initscreen::screen#2 ] ( main:2::initscreen:5 [ initscreen::screen#2 ] ) always clobbers reg byte a reg byte y -Statement [80] if((byte*) initscreen::screen#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto initscreen::@1 [ initscreen::screen#1 ] ( main:2::initscreen:5 [ initscreen::screen#1 ] ) always clobbers reg byte a -Statement [12] if(*((const byte[]) XPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto animate::@1 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a +Statement [80] if((byte*) initscreen::screen#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto initscreen::@1 [ initscreen::screen#1 ] ( main:2::initscreen:5 [ initscreen::screen#1 ] ) always clobbers reg byte a +Statement [12] if(*((const byte[]) XPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto animate::@1 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a Statement [13] *((const byte[]) XPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a -Statement [16] if(*((const byte[]) YPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto animate::@2 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a +Statement [16] if(*((const byte[]) YPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto animate::@2 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a Statement [17] *((const byte[]) YPOS#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a -Statement [20] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1)!=(byte/word/signed word/dword/signed dword) 255) goto animate::@3 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a -Statement [21] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 40 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a -Statement [24] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2)!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto animate::@4 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a +Statement [20] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1)!=(byte/word/signed word/dword/signed dword) $ff) goto animate::@3 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a +Statement [21] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) $28 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a +Statement [24] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2)!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto animate::@4 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a Statement [25] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a -Statement [28] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)!=(byte/word/signed word/dword/signed dword) 255) goto animate::@return [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a -Statement [29] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 25 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a +Statement [28] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)!=(byte/word/signed word/dword/signed dword) $ff) goto animate::@return [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a +Statement [29] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) $19 [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a Statement [30] (byte/signed word/word/dword/signed dword~) animate::$15 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) + (byte/signed byte/word/signed word/dword/signed dword) 7 [ animate::$15 ] ( main:2::animate:9 [ animate::$15 ] ) always clobbers reg byte a -Statement [32] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)<(byte/signed byte/word/signed word/dword/signed dword) 40) goto animate::@return [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a -Statement [33] (byte/signed word/word/dword/signed dword~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 [ animate::$18 ] ( main:2::animate:9 [ animate::$18 ] ) always clobbers reg byte a -Statement [47] (byte*) render::colline#1 ← (byte*) render::colline#5 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render::y#4 render::colline#1 ] ( main:2::render:7 [ render::y#4 render::colline#1 ] ) always clobbers reg byte a +Statement [32] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)<(byte/signed byte/word/signed word/dword/signed dword) $28) goto animate::@return [ ] ( main:2::animate:9 [ ] ) always clobbers reg byte a +Statement [33] (byte/signed word/word/dword/signed dword~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) $28 [ animate::$18 ] ( main:2::animate:9 [ animate::$18 ] ) always clobbers reg byte a +Statement [47] (byte*) render::colline#1 ← (byte*) render::colline#5 + (byte/signed byte/word/signed word/dword/signed dword) $28 [ render::y#4 render::colline#1 ] ( main:2::render:7 [ render::y#4 render::colline#1 ] ) always clobbers reg byte a Statement [60] (byte) findcol::diff#2 ← (byte) findcol::x#0 - (byte) findcol::xp#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::yp#0 findcol::diff#2 ] ( main:2::render:7::findcol:41 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::yp#0 findcol::diff#2 ] ) always clobbers reg byte a Statement [63] (byte~) findcol::$8 ← (byte) findcol::y#0 - (byte) findcol::yp#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#5 findcol::$8 ] ( main:2::render:7::findcol:41 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#5 findcol::$8 ] ) always clobbers reg byte a Statement [64] (byte) findcol::diff#4 ← (byte) findcol::diff#5 + (byte~) findcol::$8 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 ] ( main:2::render:7::findcol:41 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 ] ) always clobbers reg byte a @@ -1753,7 +1753,7 @@ Statement [73] (byte~) findcol::$10 ← (byte) findcol::yp#0 - (byte) findcol::y Statement [74] (byte) findcol::diff#3 ← (byte) findcol::diff#5 + (byte~) findcol::$10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ( main:2::render:7::findcol:41 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#3 ] ) always clobbers reg byte a Statement [75] (byte) findcol::diff#1 ← (byte) findcol::xp#0 - (byte) findcol::x#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::yp#0 findcol::diff#1 ] ( main:2::render:7::findcol:41 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::yp#0 findcol::diff#1 ] ) always clobbers reg byte a Statement [78] *((byte*) initscreen::screen#2) ← (const byte) FILL#0 [ initscreen::screen#2 ] ( main:2::initscreen:5 [ initscreen::screen#2 ] ) always clobbers reg byte a reg byte y -Statement [80] if((byte*) initscreen::screen#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto initscreen::@1 [ initscreen::screen#1 ] ( main:2::initscreen:5 [ initscreen::screen#1 ] ) always clobbers reg byte a +Statement [80] if((byte*) initscreen::screen#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto initscreen::@1 [ initscreen::screen#1 ] ( main:2::initscreen:5 [ initscreen::screen#1 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ render::y#4 render::y#1 ] : zp ZP_BYTE:2 , reg byte x , reg byte y , Potential registers zp ZP_WORD:3 [ render::colline#5 render::colline#1 ] : zp ZP_WORD:3 , Potential registers zp ZP_BYTE:5 [ render::x#2 render::x#1 ] : zp ZP_BYTE:5 , reg byte x , reg byte y , @@ -1890,7 +1890,7 @@ animate: { inx //SEG22 [11] *((const byte[]) XPOS#0) ← (byte/signed word/word/dword/signed dword~) animate::$0 -- _deref_pbuc1=vbuxx stx XPOS - //SEG23 [12] if(*((const byte[]) XPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto animate::@1 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG23 [12] if(*((const byte[]) XPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto animate::@1 -- _deref_pbuc1_neq_vbuc2_then_la1 lda XPOS cmp #$28 bne b1 @@ -1908,7 +1908,7 @@ animate: { inx //SEG28 [15] *((const byte[]) YPOS#0) ← (byte/signed word/word/dword/signed dword~) animate::$3 -- _deref_pbuc1=vbuxx stx YPOS - //SEG29 [16] if(*((const byte[]) YPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto animate::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG29 [16] if(*((const byte[]) YPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto animate::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda YPOS cmp #$19 bne b2 @@ -1927,14 +1927,14 @@ animate: { sbc #1 //SEG34 [19] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed word/word/dword/signed dword~) animate::$6 -- _deref_pbuc1=vbuaa sta XPOS+1 - //SEG35 [20] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1)!=(byte/word/signed word/dword/signed dword) 255) goto animate::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG35 [20] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1)!=(byte/word/signed word/dword/signed dword) $ff) goto animate::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 lda XPOS+1 cmp #$ff bne b3 jmp b9 //SEG36 animate::@9 b9: - //SEG37 [21] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 40 -- _deref_pbuc1=vbuc2 + //SEG37 [21] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) $28 -- _deref_pbuc1=vbuc2 lda #$28 sta XPOS+1 jmp b3 @@ -1946,7 +1946,7 @@ animate: { adc #1 //SEG40 [23] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed word/word/dword/signed dword~) animate::$9 -- _deref_pbuc1=vbuaa sta YPOS+2 - //SEG41 [24] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2)!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto animate::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG41 [24] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2)!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto animate::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda YPOS+2 cmp #$19 bne b4 @@ -1964,14 +1964,14 @@ animate: { dex //SEG46 [27] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed word/word/dword/signed dword~) animate::$12 -- _deref_pbuc1=vbuxx stx YPOS+3 - //SEG47 [28] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)!=(byte/word/signed word/dword/signed dword) 255) goto animate::@return -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG47 [28] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)!=(byte/word/signed word/dword/signed dword) $ff) goto animate::@return -- _deref_pbuc1_neq_vbuc2_then_la1 lda YPOS+3 cmp #$ff bne breturn jmp b11 //SEG48 animate::@11 b11: - //SEG49 [29] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 25 -- _deref_pbuc1=vbuc2 + //SEG49 [29] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) $19 -- _deref_pbuc1=vbuc2 lda #$19 sta YPOS+3 //SEG50 [30] (byte/signed word/word/dword/signed dword~) animate::$15 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) + (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=_deref_pbuc1_plus_vbuc2 @@ -1980,14 +1980,14 @@ animate: { adc #7 //SEG51 [31] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed word/word/dword/signed dword~) animate::$15 -- _deref_pbuc1=vbuaa sta XPOS+3 - //SEG52 [32] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)<(byte/signed byte/word/signed word/dword/signed dword) 40) goto animate::@return -- _deref_pbuc1_lt_vbuc2_then_la1 + //SEG52 [32] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)<(byte/signed byte/word/signed word/dword/signed dword) $28) goto animate::@return -- _deref_pbuc1_lt_vbuc2_then_la1 lda XPOS+3 cmp #$28 bcc breturn jmp b12 //SEG53 animate::@12 b12: - //SEG54 [33] (byte/signed word/word/dword/signed dword~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 -- vbuaa=_deref_pbuc1_minus_vbuc2 + //SEG54 [33] (byte/signed word/word/dword/signed dword~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) $28 -- vbuaa=_deref_pbuc1_minus_vbuc2 lda XPOS+3 sec sbc #$28 @@ -2051,14 +2051,14 @@ render: { sta (colline),y //SEG79 [45] (byte) render::x#1 ← ++ (byte) render::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG80 [46] if((byte) render::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG80 [46] if((byte) render::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render::@2 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #$28 bne b2_from_b5 jmp b3 //SEG81 render::@3 b3: - //SEG82 [47] (byte*) render::colline#1 ← (byte*) render::colline#5 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG82 [47] (byte*) render::colline#1 ← (byte*) render::colline#5 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda colline clc adc #$28 @@ -2068,7 +2068,7 @@ render: { !: //SEG83 [48] (byte) render::y#1 ← ++ (byte) render::y#4 -- vbuz1=_inc_vbuz1 inc y - //SEG84 [49] if((byte) render::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG84 [49] if((byte) render::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto render::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$19 bne b1_from_b3 @@ -2091,7 +2091,7 @@ findcol: { b1_from_findcol: //SEG89 [52] phi (byte) findcol::mincol#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:findcol->findcol::@1#0] -- vbuxx=vbuc1 ldx #0 - //SEG90 [52] phi (byte) findcol::mindiff#10 = (byte/word/signed word/dword/signed dword) 255 [phi:findcol->findcol::@1#1] -- vbuz1=vbuc1 + //SEG90 [52] phi (byte) findcol::mindiff#10 = (byte/word/signed word/dword/signed dword) $ff [phi:findcol->findcol::@1#1] -- vbuz1=vbuc1 lda #$ff sta mindiff //SEG91 [52] phi (byte) findcol::i#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:findcol->findcol::@1#2] -- vbuz1=vbuc1 @@ -2262,7 +2262,7 @@ initscreen: { bne !+ inc screen+1 !: - //SEG148 [80] if((byte*) initscreen::screen#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto initscreen::@1 -- pbuz1_lt_pbuc1_then_la1 + //SEG148 [80] if((byte*) initscreen::screen#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto initscreen::@1 -- pbuz1_lt_pbuc1_then_la1 lda screen+1 cmp #>SCREEN+$3e8 bcc b1_from_b1 @@ -2395,17 +2395,17 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) COLORS -(const byte*) COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 55296 +(const byte*) COLORS#0 COLORS = ((byte*))(word/dword/signed dword) $d800 (byte[]) COLS (const byte[]) COLS#0 COLS = { (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) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7 } (byte) FILL -(const byte) FILL#0 FILL = (byte/word/signed word/dword/signed dword) 230 +(const byte) FILL#0 FILL = (byte/word/signed word/dword/signed dword) $e6 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte[]) XPOS -(const byte[]) XPOS#0 XPOS = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 34, (byte/signed byte/word/signed word/dword/signed dword) 21, (byte/signed byte/word/signed word/dword/signed dword) 31 } +(const byte[]) XPOS#0 XPOS = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) $22, (byte/signed byte/word/signed word/dword/signed dword) $15, (byte/signed byte/word/signed word/dword/signed dword) $1f } (byte[]) YPOS -(const byte[]) YPOS#0 YPOS = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 14, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 22 } +(const byte[]) YPOS#0 YPOS = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $e, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) $11, (byte/signed byte/word/signed word/dword/signed dword) $16 } (void()) animate() (byte/signed word/word/dword/signed dword~) animate::$0 reg byte x 4.0 (byte/signed word/word/dword/signed dword~) animate::$12 reg byte x 4.0 @@ -2570,7 +2570,7 @@ animate: { inx //SEG22 [11] *((const byte[]) XPOS#0) ← (byte/signed word/word/dword/signed dword~) animate::$0 -- _deref_pbuc1=vbuxx stx XPOS - //SEG23 [12] if(*((const byte[]) XPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto animate::@1 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG23 [12] if(*((const byte[]) XPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto animate::@1 -- _deref_pbuc1_neq_vbuc2_then_la1 txa cmp #$28 bne b1 @@ -2585,7 +2585,7 @@ animate: { inx //SEG28 [15] *((const byte[]) YPOS#0) ← (byte/signed word/word/dword/signed dword~) animate::$3 -- _deref_pbuc1=vbuxx stx YPOS - //SEG29 [16] if(*((const byte[]) YPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto animate::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG29 [16] if(*((const byte[]) YPOS#0)!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto animate::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 txa cmp #$19 bne b2 @@ -2601,11 +2601,11 @@ animate: { sbc #1 //SEG34 [19] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed word/word/dword/signed dword~) animate::$6 -- _deref_pbuc1=vbuaa sta XPOS+1 - //SEG35 [20] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1)!=(byte/word/signed word/dword/signed dword) 255) goto animate::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG35 [20] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1)!=(byte/word/signed word/dword/signed dword) $ff) goto animate::@3 -- _deref_pbuc1_neq_vbuc2_then_la1 cmp #$ff bne b3 //SEG36 animate::@9 - //SEG37 [21] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) 40 -- _deref_pbuc1=vbuc2 + //SEG37 [21] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte/signed byte/word/signed word/dword/signed dword) $28 -- _deref_pbuc1=vbuc2 lda #$28 sta XPOS+1 //SEG38 animate::@3 @@ -2616,7 +2616,7 @@ animate: { adc #1 //SEG40 [23] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte/signed word/word/dword/signed dword~) animate::$9 -- _deref_pbuc1=vbuaa sta YPOS+2 - //SEG41 [24] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2)!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto animate::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG41 [24] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2)!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto animate::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 cmp #$19 bne b4 //SEG42 animate::@10 @@ -2630,12 +2630,12 @@ animate: { dex //SEG46 [27] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed word/word/dword/signed dword~) animate::$12 -- _deref_pbuc1=vbuxx stx YPOS+3 - //SEG47 [28] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)!=(byte/word/signed word/dword/signed dword) 255) goto animate::@return -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG47 [28] if(*((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)!=(byte/word/signed word/dword/signed dword) $ff) goto animate::@return -- _deref_pbuc1_neq_vbuc2_then_la1 txa cmp #$ff bne breturn //SEG48 animate::@11 - //SEG49 [29] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) 25 -- _deref_pbuc1=vbuc2 + //SEG49 [29] *((const byte[]) YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed byte/word/signed word/dword/signed dword) $19 -- _deref_pbuc1=vbuc2 lda #$19 sta YPOS+3 //SEG50 [30] (byte/signed word/word/dword/signed dword~) animate::$15 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) + (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=_deref_pbuc1_plus_vbuc2 @@ -2644,11 +2644,11 @@ animate: { adc #7 //SEG51 [31] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed word/word/dword/signed dword~) animate::$15 -- _deref_pbuc1=vbuaa sta XPOS+3 - //SEG52 [32] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)<(byte/signed byte/word/signed word/dword/signed dword) 40) goto animate::@return -- _deref_pbuc1_lt_vbuc2_then_la1 + //SEG52 [32] if(*((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3)<(byte/signed byte/word/signed word/dword/signed dword) $28) goto animate::@return -- _deref_pbuc1_lt_vbuc2_then_la1 cmp #$28 bcc breturn //SEG53 animate::@12 - //SEG54 [33] (byte/signed word/word/dword/signed dword~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) 40 -- vbuaa=_deref_pbuc1_minus_vbuc2 + //SEG54 [33] (byte/signed word/word/dword/signed dword~) animate::$18 ← *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) - (byte/signed byte/word/signed word/dword/signed dword) $28 -- vbuaa=_deref_pbuc1_minus_vbuc2 sec sbc #$28 //SEG55 [34] *((const byte[]) XPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte/signed word/word/dword/signed dword~) animate::$18 -- _deref_pbuc1=vbuaa @@ -2699,12 +2699,12 @@ render: { sta (colline),y //SEG79 [45] (byte) render::x#1 ← ++ (byte) render::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG80 [46] if((byte) render::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG80 [46] if((byte) render::x#1!=(byte/signed byte/word/signed word/dword/signed dword) $28) goto render::@2 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #$28 bne b2 //SEG81 render::@3 - //SEG82 [47] (byte*) render::colline#1 ← (byte*) render::colline#5 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG82 [47] (byte*) render::colline#1 ← (byte*) render::colline#5 + (byte/signed byte/word/signed word/dword/signed dword) $28 -- pbuz1=pbuz1_plus_vbuc1 lda colline clc adc #$28 @@ -2714,7 +2714,7 @@ render: { !: //SEG83 [48] (byte) render::y#1 ← ++ (byte) render::y#4 -- vbuz1=_inc_vbuz1 inc y - //SEG84 [49] if((byte) render::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG84 [49] if((byte) render::y#1!=(byte/signed byte/word/signed word/dword/signed dword) $19) goto render::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$19 bne b1 @@ -2734,7 +2734,7 @@ findcol: { //SEG88 [52] phi from findcol to findcol::@1 [phi:findcol->findcol::@1] //SEG89 [52] phi (byte) findcol::mincol#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:findcol->findcol::@1#0] -- vbuxx=vbuc1 ldx #0 - //SEG90 [52] phi (byte) findcol::mindiff#10 = (byte/word/signed word/dword/signed dword) 255 [phi:findcol->findcol::@1#1] -- vbuz1=vbuc1 + //SEG90 [52] phi (byte) findcol::mindiff#10 = (byte/word/signed word/dword/signed dword) $ff [phi:findcol->findcol::@1#1] -- vbuz1=vbuc1 lda #$ff sta mindiff //SEG91 [52] phi (byte) findcol::i#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:findcol->findcol::@1#2] -- vbuz1=vbuc1 @@ -2876,7 +2876,7 @@ initscreen: { bne !+ inc screen+1 !: - //SEG148 [80] if((byte*) initscreen::screen#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto initscreen::@1 -- pbuz1_lt_pbuc1_then_la1 + //SEG148 [80] if((byte*) initscreen::screen#1<(const byte*) SCREEN#0+(word/signed word/dword/signed dword) $3e8) goto initscreen::@1 -- pbuz1_lt_pbuc1_then_la1 lda screen+1 cmp #>SCREEN+$3e8 bcc b1 diff --git a/src/test/ref/voronoi.sym b/src/test/ref/voronoi.sym index 48c7854b7..8fc9c1876 100644 --- a/src/test/ref/voronoi.sym +++ b/src/test/ref/voronoi.sym @@ -2,17 +2,17 @@ (label) @begin (label) @end (byte*) COLORS -(const byte*) COLORS#0 COLORS = ((byte*))(word/dword/signed dword) 55296 +(const byte*) COLORS#0 COLORS = ((byte*))(word/dword/signed dword) $d800 (byte[]) COLS (const byte[]) COLS#0 COLS = { (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) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7 } (byte) FILL -(const byte) FILL#0 FILL = (byte/word/signed word/dword/signed dword) 230 +(const byte) FILL#0 FILL = (byte/word/signed word/dword/signed dword) $e6 (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte[]) XPOS -(const byte[]) XPOS#0 XPOS = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 34, (byte/signed byte/word/signed word/dword/signed dword) 21, (byte/signed byte/word/signed word/dword/signed dword) 31 } +(const byte[]) XPOS#0 XPOS = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) $f, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) $22, (byte/signed byte/word/signed word/dword/signed dword) $15, (byte/signed byte/word/signed word/dword/signed dword) $1f } (byte[]) YPOS -(const byte[]) YPOS#0 YPOS = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 14, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 22 } +(const byte[]) YPOS#0 YPOS = { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) $e, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) $11, (byte/signed byte/word/signed word/dword/signed dword) $16 } (void()) animate() (byte/signed word/word/dword/signed dword~) animate::$0 reg byte x 4.0 (byte/signed word/word/dword/signed dword~) animate::$12 reg byte x 4.0 diff --git a/src/test/ref/wfragment1.log b/src/test/ref/wfragment1.log index c04bb77f9..096d38f12 100644 --- a/src/test/ref/wfragment1.log +++ b/src/test/ref/wfragment1.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 to:@12 @@ -9,7 +9,7 @@ CONTROL FLOW GRAPH SSA (byte[]) print_hextab#0 ← (const string) $0 to:@19 @19: scope:[] from @12 - (byte) MAX_OBJECTS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte) MAX_OBJECTS#0 ← (byte/signed byte/word/signed word/dword/signed dword) $10 (word[MAX_OBJECTS#0]) OBJ_WORLD_X#0 ← { fill( MAX_OBJECTS#0, 0) } (byte) action_count#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) READY_FRAMES#0 ← (byte/signed byte/word/signed word/dword/signed dword) 5 @@ -104,9 +104,9 @@ Redundant Phi (byte) move_enemy::obj_slot#1 (byte) move_enemy::obj_slot#0 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) main::$1 [16] if((byte) main::i#1!=rangelast(0,5)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) print_line_cursor#0 = ((byte*))1024 +Constant (const byte*) print_line_cursor#0 = ((byte*))$400 Constant (const byte[]) print_hextab#0 = $0 -Constant (const byte) MAX_OBJECTS#0 = 16 +Constant (const byte) MAX_OBJECTS#0 = $10 Constant (const byte) action_count#0 = 0 Constant (const byte) READY_FRAMES#0 = 5 Constant (const byte) main::i#0 = 0 @@ -406,7 +406,7 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte) MAX_OBJECTS -(const byte) MAX_OBJECTS#0 MAX_OBJECTS = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) MAX_OBJECTS#0 MAX_OBJECTS = (byte/signed byte/word/signed word/dword/signed dword) $10 (word[MAX_OBJECTS#0]) OBJ_WORLD_X (const word[MAX_OBJECTS#0]) OBJ_WORLD_X#0 OBJ_WORLD_X = { fill( MAX_OBJECTS#0, 0) } (byte) READY_FRAMES diff --git a/src/test/ref/wfragment1.sym b/src/test/ref/wfragment1.sym index 0b239e949..31481fee2 100644 --- a/src/test/ref/wfragment1.sym +++ b/src/test/ref/wfragment1.sym @@ -2,7 +2,7 @@ (label) @begin (label) @end (byte) MAX_OBJECTS -(const byte) MAX_OBJECTS#0 MAX_OBJECTS = (byte/signed byte/word/signed word/dword/signed dword) 16 +(const byte) MAX_OBJECTS#0 MAX_OBJECTS = (byte/signed byte/word/signed word/dword/signed dword) $10 (word[MAX_OBJECTS#0]) OBJ_WORLD_X (const word[MAX_OBJECTS#0]) OBJ_WORLD_X#0 OBJ_WORLD_X = { fill( MAX_OBJECTS#0, 0) } (byte) READY_FRAMES diff --git a/src/test/ref/wordexpr.cfg b/src/test/ref/wordexpr.cfg index a4fe2ad23..e87a89b25 100644 --- a/src/test/ref/wordexpr.cfg +++ b/src/test/ref/wordexpr.cfg @@ -13,9 +13,9 @@ main: scope:[main] from @1 main::@1: scope:[main] from main main::@1 [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::i#1 ) [5] (word) main::b#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(word) main::b#1 ) - [6] (word) main::b#1 ← (word) main::b#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 + [6] (word) main::b#1 ← (word) main::b#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 [7] (byte) main::i#1 ← ++ (byte) main::i#2 - [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 + [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [9] return diff --git a/src/test/ref/wordexpr.log b/src/test/ref/wordexpr.log index 881b3be7e..1628a22e3 100644 --- a/src/test/ref/wordexpr.log +++ b/src/test/ref/wordexpr.log @@ -9,11 +9,11 @@ main: scope:[main] from @1 main::@1: scope:[main] from main main::@1 (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) (word) main::b#2 ← phi( main/(word) main::b#0 main::@1/(word) main::b#1 ) - (word/signed word/dword/signed dword~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 8 + (word/signed word/dword/signed dword~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) $28 * (byte/signed byte/word/signed word/dword/signed dword) 8 (word/signed dword/dword~) main::$1 ← (word) main::b#2 + (word/signed word/dword/signed dword~) main::$0 (word) main::b#1 ← (word/signed dword/dword~) main::$1 - (byte) main::i#1 ← (byte) main::i#2 + rangenext(0,10) - (bool~) main::$2 ← (byte) main::i#1 != rangelast(0,10) + (byte) main::i#1 ← (byte) main::i#2 + rangenext(0,$a) + (bool~) main::$2 ← (byte) main::i#1 != rangelast(0,$a) if((bool~) main::$2) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 @@ -50,18 +50,18 @@ Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (word) main::b#1 = (word/signed dword/dword~) main::$1 Successful SSA optimization Pass2AliasElimination -Simple Condition (bool~) main::$2 [8] if((byte) main::i#1!=rangelast(0,10)) goto main::@1 +Simple Condition (bool~) main::$2 [8] if((byte) main::i#1!=rangelast(0,$a)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const word) main::b#0 = 0 Constant (const byte) main::i#0 = 0 -Constant (const word/signed word/dword/signed dword) main::$0 = 40*8 +Constant (const word/signed word/dword/signed dword) main::$0 = $28*8 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ -Resolved ranged comparison value if(main::i#1!=rangelast(0,10)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 11 +Resolved ranged comparison value if(main::i#1!=rangelast(0,$a)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $b Inlining constant with var siblings (const word) main::b#0 Inlining constant with var siblings (const byte) main::i#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined main::$0 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 +Constant inlined main::$0 = (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 Constant inlined main::b#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@3(between main::@1 and main::@1) @@ -98,9 +98,9 @@ main: scope:[main] from @1 main::@1: scope:[main] from main main::@1 [5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(byte) main::i#1 ) [5] (word) main::b#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@1/(word) main::b#1 ) - [6] (word) main::b#1 ← (word) main::b#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 + [6] (word) main::b#1 ← (word) main::b#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 [7] (byte) main::i#1 ← ++ (byte) main::i#2 - [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 + [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [9] return @@ -171,7 +171,7 @@ main: { jmp b1 //SEG17 main::@1 b1: - //SEG18 [6] (word) main::b#1 ← (word) main::b#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 -- vwuz1=vwuz1_plus_vwuc1 + //SEG18 [6] (word) main::b#1 ← (word) main::b#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 -- vwuz1=vwuz1_plus_vwuc1 clc lda b adc #<$28*8 @@ -181,7 +181,7 @@ main: { sta b+1 //SEG19 [7] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG20 [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG20 [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$b bne b1_from_b1 @@ -193,9 +193,9 @@ main: { } REGISTER UPLIFT POTENTIAL REGISTERS -Statement [6] (word) main::b#1 ← (word) main::b#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 [ main::i#2 main::b#1 ] ( main:2 [ main::i#2 main::b#1 ] ) always clobbers reg byte a +Statement [6] (word) main::b#1 ← (word) main::b#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 [ main::i#2 main::b#1 ] ( main:2 [ main::i#2 main::b#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ main::i#2 main::i#1 ] -Statement [6] (word) main::b#1 ← (word) main::b#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 [ main::i#2 main::b#1 ] ( main:2 [ main::i#2 main::b#1 ] ) always clobbers reg byte a +Statement [6] (word) main::b#1 ← (word) main::b#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 [ main::i#2 main::b#1 ] ( main:2 [ main::i#2 main::b#1 ] ) always clobbers reg byte a Potential registers zp ZP_WORD:2 [ main::b#2 main::b#1 ] : zp ZP_WORD:2 , Potential registers zp ZP_BYTE:4 [ main::i#2 main::i#1 ] : zp ZP_BYTE:4 , reg byte x , reg byte y , @@ -250,7 +250,7 @@ main: { jmp b1 //SEG17 main::@1 b1: - //SEG18 [6] (word) main::b#1 ← (word) main::b#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 -- vwuz1=vwuz1_plus_vwuc1 + //SEG18 [6] (word) main::b#1 ← (word) main::b#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 -- vwuz1=vwuz1_plus_vwuc1 clc lda b adc #<$28*8 @@ -260,7 +260,7 @@ main: { sta b+1 //SEG19 [7] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG20 [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG20 [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$b bne b1_from_b1 jmp breturn @@ -348,7 +348,7 @@ main: { //SEG16 [5] phi (word) main::b#2 = (word) main::b#1 [phi:main::@1->main::@1#1] -- register_copy //SEG17 main::@1 b1: - //SEG18 [6] (word) main::b#1 ← (word) main::b#2 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 8 -- vwuz1=vwuz1_plus_vwuc1 + //SEG18 [6] (word) main::b#1 ← (word) main::b#2 + (byte/signed byte/word/signed word/dword/signed dword) $28*(byte/signed byte/word/signed word/dword/signed dword) 8 -- vwuz1=vwuz1_plus_vwuc1 clc lda b adc #<$28*8 @@ -358,7 +358,7 @@ main: { sta b+1 //SEG19 [7] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - //SEG20 [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG20 [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #$b bne b1 //SEG21 main::@return diff --git a/src/test/ref/zpparammin.cfg b/src/test/ref/zpparammin.cfg index 905092c9c..06b81b2ea 100644 --- a/src/test/ref/zpparammin.cfg +++ b/src/test/ref/zpparammin.cfg @@ -31,7 +31,7 @@ main::@4: scope:[main] from main::@3 [18] (byte~) main::$5 ← (byte) sum2::return#0 [19] *((const byte*) SCREEN2#0 + (byte) main::i#2) ← (byte~) main::$5 [20] (byte) main::i#1 ← ++ (byte) main::i#2 - [21] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 + [21] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 to:main::@return main::@return: scope:[main] from main::@4 [22] return diff --git a/src/test/ref/zpparammin.log b/src/test/ref/zpparammin.log index 80cb471e7..ecaebecad 100644 --- a/src/test/ref/zpparammin.log +++ b/src/test/ref/zpparammin.log @@ -1,8 +1,8 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 - (word/signed word/dword/signed dword~) $0 ← (word/signed word/dword/signed dword) 1024 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400 + (word/signed word/dword/signed dword~) $0 ← (word/signed word/dword/signed dword) $400 + (byte/signed byte/word/signed word/dword/signed dword) $28 (byte*) SCREEN2#0 ← ((byte*)) (word/signed word/dword/signed dword~) $0 to:@3 main: scope:[main] from @3 @@ -44,8 +44,8 @@ main::@4: scope:[main] from main::@3 (byte) sum2::return#3 ← phi( main::@3/(byte) sum2::return#0 ) (byte~) main::$5 ← (byte) sum2::return#3 *((byte*) SCREEN2#1 + (byte) main::i#4) ← (byte~) main::$5 - (byte) main::i#1 ← (byte) main::i#4 + rangenext(0,10) - (bool~) main::$6 ← (byte) main::i#1 != rangelast(0,10) + (byte) main::i#1 ← (byte) main::i#4 + rangenext(0,$a) + (bool~) main::$6 ← (byte) main::i#1 != rangelast(0,$a) if((bool~) main::$6) goto main::@1 to:main::@return main::@return: scope:[main] from main::@4 @@ -193,18 +193,18 @@ Redundant Phi (byte) sum2::a#1 (byte) sum2::a#0 Redundant Phi (byte) sum2::b#1 (byte) sum2::b#0 Redundant Phi (byte) sum2::c#1 (byte) sum2::c#0 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$6 [28] if((byte) main::i#1!=rangelast(0,10)) goto main::@1 +Simple Condition (bool~) main::$6 [28] if((byte) main::i#1!=rangelast(0,$a)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) SCREEN#0 = ((byte*))1024 -Constant (const word/signed word/dword/signed dword) $0 = 1024+40 +Constant (const byte*) SCREEN#0 = ((byte*))$400 +Constant (const word/signed word/dword/signed dword) $0 = $400+$28 Constant (const byte) main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) SCREEN2#0 = ((byte*))$0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ -Resolved ranged comparison value if(main::i#1!=rangelast(0,10)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 11 +Resolved ranged comparison value if(main::i#1!=rangelast(0,$a)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $b Inlining constant with var siblings (const byte) main::i#0 -Constant inlined $0 = (word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined $0 = (word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) $28 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@5(between main::@4 and main::@1) @@ -259,7 +259,7 @@ main::@4: scope:[main] from main::@3 [18] (byte~) main::$5 ← (byte) sum2::return#0 [19] *((const byte*) SCREEN2#0 + (byte) main::i#2) ← (byte~) main::$5 [20] (byte) main::i#1 ← ++ (byte) main::i#2 - [21] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 + [21] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 to:main::@return main::@return: scope:[main] from main::@4 [22] return @@ -458,7 +458,7 @@ main: { sta SCREEN2,y //SEG32 [20] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG33 [21] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG33 [21] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$b bne b1_from_b4 @@ -652,7 +652,7 @@ main: { sta SCREEN2,y //SEG32 [20] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG33 [21] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG33 [21] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$b bne b1_from_b4 @@ -738,9 +738,9 @@ FINAL SYMBOL TABLE (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SCREEN2 -(const byte*) SCREEN2#0 SCREEN2 = ((byte*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 40 +(const byte*) SCREEN2#0 SCREEN2 = ((byte*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) $28 (void()) main() (byte~) main::$2 reg byte a 22.0 (byte~) main::$5 reg byte a 22.0 @@ -859,7 +859,7 @@ main: { sta SCREEN2,y //SEG32 [20] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG33 [21] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG33 [21] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$b bne b1 diff --git a/src/test/ref/zpparammin.sym b/src/test/ref/zpparammin.sym index 76abed3ac..b2f524f4f 100644 --- a/src/test/ref/zpparammin.sym +++ b/src/test/ref/zpparammin.sym @@ -2,9 +2,9 @@ (label) @begin (label) @end (byte*) SCREEN -(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) $400 (byte*) SCREEN2 -(const byte*) SCREEN2#0 SCREEN2 = ((byte*))(word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 40 +(const byte*) SCREEN2#0 SCREEN2 = ((byte*))(word/signed word/dword/signed dword) $400+(byte/signed byte/word/signed word/dword/signed dword) $28 (void()) main() (byte~) main::$2 reg byte a 22.0 (byte~) main::$5 reg byte a 22.0 diff --git a/src/test/ref/zpptr.cfg b/src/test/ref/zpptr.cfg index 2ba2b4465..5b828e392 100644 --- a/src/test/ref/zpptr.cfg +++ b/src/test/ref/zpptr.cfg @@ -23,15 +23,15 @@ main::@3: scope:[main] from main::@2 main::@3 [10] (byte*) main::zpptr2#1 ← (byte*) main::zpptr2#0 + (word) main::w#0 [11] *((byte*) main::zpptr2#1) ← (byte) main::k#2 [12] (byte) main::k#1 ← ++ (byte) main::k#2 - [13] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@3 + [13] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@3 to:main::@4 main::@4: scope:[main] from main::@3 [14] (byte) main::i#1 ← ++ (byte) main::i#4 - [15] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2 + [15] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@2 to:main::@5 main::@5: scope:[main] from main::@4 [16] (byte) main::j#1 ← ++ (byte) main::j#6 - [17] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 + [17] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 to:main::@return main::@return: scope:[main] from main::@5 [18] return diff --git a/src/test/ref/zpptr.log b/src/test/ref/zpptr.log index 21656d4b2..6cafee542 100644 --- a/src/test/ref/zpptr.log +++ b/src/test/ref/zpptr.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA @begin: scope:[] from to:@1 main: scope:[main] from @1 - (byte*) main::zpptr#0 ← ((byte*)) (word/signed word/dword/signed dword) 4096 + (byte*) main::zpptr#0 ← ((byte*)) (word/signed word/dword/signed dword) $1000 (byte) main::j#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main main::@5 @@ -29,23 +29,23 @@ main::@3: scope:[main] from main::@2 main::@3 (byte*~) main::$2 ← (byte*) main::zpptr2#0 + (word) main::w#0 (byte*) main::zpptr2#1 ← (byte*~) main::$2 *((byte*) main::zpptr2#1) ← (byte) main::k#2 - (byte) main::k#1 ← (byte) main::k#2 + rangenext(0,10) - (bool~) main::$3 ← (byte) main::k#1 != rangelast(0,10) + (byte) main::k#1 ← (byte) main::k#2 + rangenext(0,$a) + (bool~) main::$3 ← (byte) main::k#1 != rangelast(0,$a) if((bool~) main::$3) goto main::@3 to:main::@4 main::@4: scope:[main] from main::@3 (byte*) main::zpptr#4 ← phi( main::@3/(byte*) main::zpptr#1 ) (byte) main::j#5 ← phi( main::@3/(byte) main::j#2 ) (byte) main::i#3 ← phi( main::@3/(byte) main::i#2 ) - (byte) main::i#1 ← (byte) main::i#3 + rangenext(0,10) - (bool~) main::$4 ← (byte) main::i#1 != rangelast(0,10) + (byte) main::i#1 ← (byte) main::i#3 + rangenext(0,$a) + (bool~) main::$4 ← (byte) main::i#1 != rangelast(0,$a) if((bool~) main::$4) goto main::@2 to:main::@5 main::@5: scope:[main] from main::@4 (byte*) main::zpptr#5 ← phi( main::@4/(byte*) main::zpptr#4 ) (byte) main::j#3 ← phi( main::@4/(byte) main::j#5 ) - (byte) main::j#1 ← (byte) main::j#3 + rangenext(0,10) - (bool~) main::$5 ← (byte) main::j#1 != rangelast(0,10) + (byte) main::j#1 ← (byte) main::j#3 + rangenext(0,$a) + (bool~) main::$5 ← (byte) main::j#1 != rangelast(0,$a) if((bool~) main::$5) goto main::@1 to:main::@return main::@return: scope:[main] from main::@5 @@ -124,21 +124,21 @@ Redundant Phi (byte*) main::zpptr#1 (byte*) main::zpptr#2 Redundant Phi (byte) main::i#2 (byte) main::i#4 Redundant Phi (byte) main::j#2 (byte) main::j#4 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) main::$3 [16] if((byte) main::k#1!=rangelast(0,10)) goto main::@3 -Simple Condition (bool~) main::$4 [20] if((byte) main::i#1!=rangelast(0,10)) goto main::@2 -Simple Condition (bool~) main::$5 [24] if((byte) main::j#1!=rangelast(0,10)) goto main::@1 +Simple Condition (bool~) main::$3 [16] if((byte) main::k#1!=rangelast(0,$a)) goto main::@3 +Simple Condition (bool~) main::$4 [20] if((byte) main::i#1!=rangelast(0,$a)) goto main::@2 +Simple Condition (bool~) main::$5 [24] if((byte) main::j#1!=rangelast(0,$a)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte*) main::zpptr#0 = ((byte*))4096 +Constant (const byte*) main::zpptr#0 = ((byte*))$1000 Constant (const byte) main::j#0 = 0 Constant (const byte) main::i#0 = 0 Constant (const byte) main::k#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::k#1 ← ++ main::k#2 to ++ -Resolved ranged comparison value if(main::k#1!=rangelast(0,10)) goto main::@3 to (byte/signed byte/word/signed word/dword/signed dword) 11 +Resolved ranged comparison value if(main::k#1!=rangelast(0,$a)) goto main::@3 to (byte/signed byte/word/signed word/dword/signed dword) $b Resolved ranged next value main::i#1 ← ++ main::i#4 to ++ -Resolved ranged comparison value if(main::i#1!=rangelast(0,10)) goto main::@2 to (byte/signed byte/word/signed word/dword/signed dword) 11 +Resolved ranged comparison value if(main::i#1!=rangelast(0,$a)) goto main::@2 to (byte/signed byte/word/signed word/dword/signed dword) $b Resolved ranged next value main::j#1 ← ++ main::j#4 to ++ -Resolved ranged comparison value if(main::j#1!=rangelast(0,10)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 11 +Resolved ranged comparison value if(main::j#1!=rangelast(0,$a)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) $b Self Phi Eliminated (byte*) main::zpptr#2 Self Phi Eliminated (byte) main::j#4 Successful SSA optimization Pass2SelfPhiElimination @@ -205,15 +205,15 @@ main::@3: scope:[main] from main::@2 main::@3 [10] (byte*) main::zpptr2#1 ← (byte*) main::zpptr2#0 + (word) main::w#0 [11] *((byte*) main::zpptr2#1) ← (byte) main::k#2 [12] (byte) main::k#1 ← ++ (byte) main::k#2 - [13] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@3 + [13] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@3 to:main::@4 main::@4: scope:[main] from main::@3 [14] (byte) main::i#1 ← ++ (byte) main::i#4 - [15] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2 + [15] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@2 to:main::@5 main::@5: scope:[main] from main::@4 [16] (byte) main::j#1 ← ++ (byte) main::j#6 - [17] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 + [17] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 to:main::@return main::@return: scope:[main] from main::@5 [18] return @@ -354,7 +354,7 @@ main: { sta (zpptr2_1),y //SEG30 [12] (byte) main::k#1 ← ++ (byte) main::k#2 -- vbuz1=_inc_vbuz1 inc k - //SEG31 [13] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG31 [13] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@3 -- vbuz1_neq_vbuc1_then_la1 lda k cmp #$b bne b3_from_b3 @@ -363,7 +363,7 @@ main: { b4: //SEG33 [14] (byte) main::i#1 ← ++ (byte) main::i#4 -- vbuz1=_inc_vbuz1 inc i - //SEG34 [15] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG34 [15] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@2 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$b bne b2_from_b4 @@ -372,7 +372,7 @@ main: { b5: //SEG36 [16] (byte) main::j#1 ← ++ (byte) main::j#6 -- vbuz1=_inc_vbuz1 inc j - //SEG37 [17] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG37 [17] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda j cmp #$b bne b1_from_b5 @@ -511,7 +511,7 @@ main: { sta (zpptr2),y //SEG30 [12] (byte) main::k#1 ← ++ (byte) main::k#2 -- vbuxx=_inc_vbuxx inx - //SEG31 [13] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG31 [13] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$b bne b3_from_b3 jmp b4 @@ -519,7 +519,7 @@ main: { b4: //SEG33 [14] (byte) main::i#1 ← ++ (byte) main::i#4 -- vbuz1=_inc_vbuz1 inc i - //SEG34 [15] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG34 [15] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@2 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$b bne b2_from_b4 @@ -528,7 +528,7 @@ main: { b5: //SEG36 [16] (byte) main::j#1 ← ++ (byte) main::j#6 -- vbuz1=_inc_vbuz1 inc j - //SEG37 [17] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG37 [17] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda j cmp #$b bne b1_from_b5 @@ -601,7 +601,7 @@ FINAL SYMBOL TABLE (word) main::w (word) main::w#0 w zp ZP_WORD:6 2002.0 (byte*) main::zpptr -(const byte*) main::zpptr#0 zpptr = ((byte*))(word/signed word/dword/signed dword) 4096 +(const byte*) main::zpptr#0 zpptr = ((byte*))(word/signed word/dword/signed dword) $1000 (byte*) main::zpptr2 (byte*) main::zpptr2#0 zpptr2 zp ZP_WORD:4 1001.0 (byte*) main::zpptr2#1 zpptr2 zp ZP_WORD:4 2002.0 @@ -686,20 +686,20 @@ main: { sta (zpptr2),y //SEG30 [12] (byte) main::k#1 ← ++ (byte) main::k#2 -- vbuxx=_inc_vbuxx inx - //SEG31 [13] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG31 [13] if((byte) main::k#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$b bne b3 //SEG32 main::@4 //SEG33 [14] (byte) main::i#1 ← ++ (byte) main::i#4 -- vbuz1=_inc_vbuz1 inc i - //SEG34 [15] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG34 [15] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@2 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$b bne b2 //SEG35 main::@5 //SEG36 [16] (byte) main::j#1 ← ++ (byte) main::j#6 -- vbuz1=_inc_vbuz1 inc j - //SEG37 [17] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG37 [17] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) $b) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda j cmp #$b bne b1 diff --git a/src/test/ref/zpptr.sym b/src/test/ref/zpptr.sym index 77b351ed5..02879f192 100644 --- a/src/test/ref/zpptr.sym +++ b/src/test/ref/zpptr.sym @@ -20,7 +20,7 @@ (word) main::w (word) main::w#0 w zp ZP_WORD:6 2002.0 (byte*) main::zpptr -(const byte*) main::zpptr#0 zpptr = ((byte*))(word/signed word/dword/signed dword) 4096 +(const byte*) main::zpptr#0 zpptr = ((byte*))(word/signed word/dword/signed dword) $1000 (byte*) main::zpptr2 (byte*) main::zpptr2#0 zpptr2 zp ZP_WORD:4 1001.0 (byte*) main::zpptr2#1 zpptr2 zp ZP_WORD:4 2002.0